/* FlowMach Customer Portal — portal.css v3.0 */
:root{--p-navy:#0a1f3d;--p-blue:#0050b4;--p-cyan:#00b4d8;--p-off:#f5f7fa;--p-border:#e2e8f0;--p-muted:#64748b;--p-charcoal:#1e293b;--p-danger:#dc2626;--p-success:#059669;--p-grad:linear-gradient(135deg,#0050b4,#00b4d8);--p-grad-dark:linear-gradient(135deg,#0a1f3d 0%,#0050b4 100%);--p-r:8px;--p-r-lg:12px}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
.fmp-portal{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--p-charcoal);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:calc(100vh - 70px);background:var(--p-off)}
.fmp-portal img{max-width:100%;display:block}
.fmp-portal a{text-decoration:none;color:var(--p-blue)}
/* Inputs */
.fmp-input{width:100%;padding:11px 14px;border:1.5px solid var(--p-border);border-radius:var(--p-r);font-size:14px;font-family:inherit;color:var(--p-charcoal);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s}
.fmp-input:focus{border-color:var(--p-blue);box-shadow:0 0 0 3px rgba(0,80,180,.08)}
.fmp-input::placeholder{color:#94a3b8}
textarea.fmp-input{resize:vertical;min-height:110px}
select.fmp-input{cursor:pointer}
/* Buttons */
.fmp-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 24px;font-size:13.5px;font-weight:700;border-radius:var(--p-r);transition:transform .2s,box-shadow .2s,opacity .2s;cursor:pointer;border:none;white-space:nowrap;font-family:inherit}
.fmp-btn-primary{background:var(--p-grad);color:#fff;box-shadow:0 2px 12px rgba(0,80,180,.3)}
.fmp-btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 22px rgba(0,80,180,.4);color:#fff}
.fmp-btn-outline{background:transparent;color:var(--p-blue);border:1.5px solid var(--p-blue)}
.fmp-btn-outline:hover{background:var(--p-blue);color:#fff}
.fmp-btn-sm{padding:8px 16px!important;font-size:12.5px!important}
.fmp-btn-lg{padding:14px 32px!important;font-size:15px!important}
/* Labels */
.fmp-label{display:block;font-size:12.5px;font-weight:600;color:var(--p-navy);margin-bottom:6px}
.fmp-req{color:var(--p-danger);margin-left:2px}
/* Alerts */
.fmp-alert{padding:13px 16px;border-radius:var(--p-r);font-size:13.5px;margin-bottom:16px;display:flex;align-items:flex-start;gap:10px}
.fmp-alert-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.fmp-alert-info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}
.fmp-alert-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}
.fmp-alert-warning{background:#fffbeb;border:1px solid #fde68a;color:#92400e}
/* Badges */
.fmp-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.3px}
/* ── AUTH PAGES ── */
.fmp-auth-page{min-height:calc(100vh - 70px);display:flex;align-items:center;justify-content:center;padding:48px 24px;background:var(--p-off)}
.fmp-auth-card{background:#fff;border:1.5px solid var(--p-border);border-radius:var(--p-r-lg);padding:40px;width:100%;max-width:460px;box-shadow:0 4px 24px rgba(0,80,180,.1)}
.fmp-auth-logo{text-align:center;margin-bottom:28px}
.fmp-auth-title{font-size:22px;font-weight:800;color:var(--p-navy);margin-bottom:6px}
.fmp-auth-sub{font-size:14px;color:var(--p-muted);margin-bottom:26px}
.fmp-auth-sep{text-align:center;margin:18px 0;position:relative}
.fmp-auth-sep::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--p-border)}
.fmp-auth-sep span{position:relative;z-index:1;background:#fff;padding:0 12px;font-size:12px;color:var(--p-muted)}
.fmp-auth-form-group{margin-bottom:14px}
.fmp-auth-submit{width:100%;justify-content:center}
.fmp-auth-footer{text-align:center;margin-top:18px;font-size:13.5px;color:var(--p-muted)}
.fmp-auth-footer a{color:var(--p-blue);font-weight:600}
/* ── CONSULTATION PAGE ── */
.fmp-consult-page{padding:72px 0;background:var(--p-off)}
.fmp-consult-page .fmp-wrap{max-width:960px}
.fmp-consult-box{background:#fff;border:1.5px solid var(--p-border);border-radius:var(--p-r-lg);overflow:hidden;box-shadow:0 4px 24px rgba(0,80,180,.07)}
.fmp-consult-head{background:var(--p-grad-dark);color:#fff;padding:26px 32px}
.fmp-consult-head h3{font-size:20px;font-weight:800;margin-bottom:4px}
.fmp-consult-head p{opacity:.75;font-size:13.5px}
.fmp-consult-body{padding:32px}
.fmp-form-section{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--p-blue);padding-bottom:10px;margin-bottom:18px;border-bottom:1px solid var(--p-border);margin-top:26px}
.fmp-form-section:first-child{margin-top:0}
.fmp-form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.fmp-form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px}
.fmp-form-full{margin-bottom:14px}
@media(max-width:640px){.fmp-form-grid-2,.fmp-form-grid-3{grid-template-columns:1fr}}
/* Upload area */
.fmp-upload{border:2px dashed var(--p-border);border-radius:var(--p-r);padding:26px;text-align:center;cursor:pointer;transition:all .2s;background:#fafafa;display:block;margin-bottom:4px}
.fmp-upload:hover{border-color:var(--p-blue);background:#f0f6ff}
.fmp-upload input{display:none}
.fmp-upload-ico{width:48px;height:48px;background:rgba(0,80,180,.08);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px}
.fmp-upload-title{font-size:13.5px;font-weight:600;color:var(--p-navy);margin-bottom:4px}
.fmp-upload-hint{font-size:12px;color:var(--p-muted)}
.fmp-file-list{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.fmp-file-tag{display:inline-flex;align-items:center;gap:5px;background:var(--p-off);border:1px solid var(--p-border);border-radius:4px;padding:4px 10px;font-size:12px;color:var(--p-charcoal)}
/* Submit bar */
.fmp-consult-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:20px 32px;background:var(--p-off);border-top:1px solid var(--p-border)}
/* Success overlay */
.fmp-success-overlay{position:fixed;inset:0;z-index:9999;background:rgba(10,31,61,.72);display:flex;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}
.fmp-success-modal{background:#fff;border-radius:var(--p-r-lg);padding:48px 40px;text-align:center;max-width:480px;width:100%;box-shadow:0 12px 48px rgba(0,80,180,.18)}
.fmp-success-icon{width:80px;height:80px;background:var(--p-grad);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;box-shadow:0 8px 28px rgba(0,80,180,.3)}
.fmp-case-id-box{background:var(--p-off);border:1.5px solid var(--p-border);border-radius:var(--p-r);padding:14px;margin:18px 0}
.fmp-case-id-label{font-size:11px;color:var(--p-muted);text-transform:uppercase;letter-spacing:1.5px;font-weight:700;margin-bottom:4px}
.fmp-case-id-value{font-size:28px;font-weight:800;color:var(--p-blue);font-family:monospace;letter-spacing:2px}
/* ── DASHBOARD ── */
.fmp-dash-page{padding:32px 0}
.fmp-dash-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:28px}
.fmp-dash-title{font-size:clamp(20px,3vw,28px);font-weight:800;color:var(--p-navy)}
.fmp-dash-subtitle{font-size:14px;color:var(--p-muted);margin-top:3px}
/* KPIs */
.fmp-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:24px}
.fmp-kpi{background:#fff;border:1.5px solid var(--p-border);border-radius:var(--p-r);padding:18px 20px}
.fmp-kpi-num{font-size:30px;font-weight:800;color:var(--p-blue);line-height:1}
.fmp-kpi-label{font-size:11.5px;color:var(--p-muted);font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}
/* Layout */
.fmp-dash-layout{display:grid;grid-template-columns:220px 1fr;gap:22px}
@media(max-width:880px){.fmp-dash-layout{grid-template-columns:1fr}}
/* Sidebar */
.fmp-sidebar{background:#fff;border:1.5px solid var(--p-border);border-radius:var(--p-r-lg);padding:8px 0;height:fit-content;position:sticky;top:90px}
.fmp-nav-item{display:flex;align-items:center;gap:10px;padding:11px 18px;font-size:13.5px;font-weight:600;color:var(--p-charcoal);cursor:pointer;border-left:3px solid transparent;transition:all .15s}
.fmp-nav-item:hover{color:var(--p-blue);background:var(--p-off)}
.fmp-nav-item.active{color:var(--p-blue);background:#eff6ff;border-left-color:var(--p-blue)}
.fmp-nav-divider{height:1px;background:var(--p-border);margin:6px 0}
.fmp-nav-count{margin-left:auto;background:var(--p-blue);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px}
/* Cards */
.fmp-card{background:#fff;border:1.5px solid var(--p-border);border-radius:var(--p-r-lg);overflow:hidden}
.fmp-card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--p-border)}
.fmp-card-title{font-size:15px;font-weight:700;color:var(--p-navy);display:flex;align-items:center;gap:8px}
.fmp-card-body{padding:22px}
/* Table */
.fmp-table-wrap{overflow-x:auto}
.fmp-table{width:100%;border-collapse:collapse;font-size:13.5px}
.fmp-table th{text-align:left;padding:11px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--p-muted);background:var(--p-off);border-bottom:1px solid var(--p-border);white-space:nowrap}
.fmp-table td{padding:13px 14px;border-bottom:1px solid var(--p-border);vertical-align:middle}
.fmp-table tr:last-child td{border-bottom:none}
.fmp-table tr:hover td{background:#fafafe}
.fmp-case-id-link{font-family:monospace;font-size:13px;font-weight:700;color:var(--p-blue);cursor:pointer}
.fmp-case-id-link:hover{text-decoration:underline}
/* Messages */
.fmp-msg-list{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow-y:auto;margin-bottom:18px}
.fmp-msg{border-radius:var(--p-r);padding:14px 16px;max-width:85%}
.fmp-msg-eng{background:var(--p-off);border:1px solid var(--p-border);align-self:flex-start}
.fmp-msg-cust{background:var(--p-grad);color:#fff;align-self:flex-end}
.fmp-msg-meta{font-size:11px;opacity:.65;margin-bottom:5px;font-weight:600}
.fmp-msg-text{font-size:14px;line-height:1.65}
/* Progress */
.fmp-progress{display:flex;align-items:flex-start}
.fmp-step{flex:1;text-align:center;position:relative}
.fmp-step::before{content:'';position:absolute;top:15px;left:50%;right:-50%;height:2px;background:var(--p-border);z-index:0}
.fmp-step:last-child::before{display:none}
.fmp-step.done::before{background:var(--p-blue)}
.fmp-step-dot{width:30px;height:30px;border-radius:50%;border:2px solid var(--p-border);background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 7px;position:relative;z-index:1;font-size:12px;font-weight:700;color:var(--p-muted)}
.fmp-step.done .fmp-step-dot{background:var(--p-blue);border-color:var(--p-blue);color:#fff}
.fmp-step.current .fmp-step-dot{border-color:var(--p-blue);color:var(--p-blue);box-shadow:0 0 0 4px rgba(0,80,180,.1)}
.fmp-step-label{font-size:11px;color:var(--p-muted);font-weight:600}
.fmp-step.done .fmp-step-label{color:var(--p-blue)}
.fmp-step.current .fmp-step-label{color:var(--p-navy);font-weight:700}
/* Panes */
.fmp-pane{display:none}
.fmp-pane.active{display:block}
/* Wrap */
.fmp-wrap{max-width:1200px;margin:0 auto;padding:0 24px}
@media(min-width:1024px){.fmp-wrap{padding:0 48px}}
/* File grid */
.fmp-files-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.fmp-file-card{display:flex;flex-direction:column;gap:7px;padding:14px;border:1.5px solid var(--p-border);border-radius:var(--p-r);background:var(--p-off);text-decoration:none;transition:border-color .2s}
.fmp-file-card:hover{border-color:var(--p-blue)}
.fmp-file-card span{font-size:12px;font-weight:600;color:var(--p-charcoal);word-break:break-word;line-height:1.4}
.fmp-file-card small{font-size:11px;color:var(--p-muted)}
/* Empty state */
.fmp-empty{text-align:center;padding:56px 24px}
.fmp-empty-ico{font-size:48px;margin-bottom:14px}
.fmp-empty h3{font-size:18px;font-weight:700;color:var(--p-navy);margin-bottom:8px}
.fmp-empty p{color:var(--p-muted);margin-bottom:22px}
