/* ============================================================
   NEI ClaimPro — Design System  v3.0.0
   NEI brand: gold #c9a227 · purple #a78bfa · bg #0a0f1a
   ============================================================ */
:root{
  --gold:#c9a227; --gold-dim:#8a6d0f; --purple:#a78bfa;
  --bg:#0a0f1a; --panel:#111827; --panel2:#1a2236; --panel3:#212b42;
  --text:#e8edf6; --muted:#9aa7bd; --line:#26304a;
  --green:#2ea36b; --green-soft:rgba(46,163,107,.16);
  --red:#c0392b; --red-soft:rgba(192,57,43,.16);
  --amber:#d99b1c; --amber-soft:rgba(217,155,28,.16);
  --blue:#3b82f6;
  --radius:10px; --radius-lg:14px;
  --shadow:0 4px 18px rgba(0,0,0,.28);
  --sidebar-w:246px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.6;font-size:15px;-webkit-font-smoothing:antialiased}
a{color:var(--gold);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3,h4{line-height:1.25;letter-spacing:-.01em;color:#fff}
code{background:var(--panel2);padding:.1rem .35rem;border-radius:4px;
  font-family:ui-monospace,Menlo,monospace;font-size:.85em;color:var(--gold)}

/* ---------- app shell ---------- */
.app-layout{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--panel);
  border-right:1px solid var(--line);display:flex;flex-direction:column;
  position:fixed;top:0;bottom:0;left:0;z-index:60;overflow-y:auto}
.sidebar-header{padding:1.1rem 1rem .8rem;border-bottom:1px solid var(--line);position:relative}
.logo{font-size:1.1rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:.5rem}
.logo i{color:var(--gold)}
.logo-sub{display:block;font-size:.66rem;color:var(--muted);margin-top:.25rem;letter-spacing:.02em}
.sidebar-close{display:none;position:absolute;top:1rem;right:1rem;background:none;border:none;
  color:var(--muted);font-size:1.1rem;cursor:pointer}
.sidebar-nav{display:flex;flex-direction:column;padding:.25rem .5rem}
.nav-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;border-radius:8px;
  color:var(--muted);font-size:.9rem;font-weight:500;transition:.14s}
.nav-item i{width:18px;text-align:center;font-size:.92rem}
.nav-item:hover{background:var(--panel2);color:var(--text);text-decoration:none}
.nav-item.active{background:rgba(201,162,39,.13);color:var(--gold);font-weight:600;
  box-shadow:inset 2px 0 0 var(--gold)}
.sidebar-footer{margin-top:auto;padding:.75rem .5rem 1rem;border-top:1px solid var(--line)}
.user-info{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;
  color:var(--text);font-weight:600}
.user-info i{color:var(--gold);font-size:1.15rem}

.main-content{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-width:0}
.top-bar{display:flex;align-items:center;gap:1rem;padding:1rem 1.6rem;
  background:rgba(10,15,26,.9);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}
.menu-toggle{display:none;background:none;border:none;color:var(--text);font-size:1.15rem;cursor:pointer}
.page-title{font-size:1.25rem;font-weight:650;color:#fff}
.content-area{padding:1.6rem;flex:1}
.app-footer{margin-left:var(--sidebar-w);padding:1.2rem 1.6rem;border-top:1px solid var(--line);
  color:var(--muted);font-size:.76rem;text-align:center}

/* ---------- flash ---------- */
.flash-messages{padding:1rem 1.6rem 0;display:flex;flex-direction:column;gap:.6rem}
.flash{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding:.8rem 1rem;border-radius:var(--radius);font-size:.9rem;border:1px solid var(--line);
  background:var(--panel);box-shadow:var(--shadow)}
.flash-success{border-left:4px solid var(--green);background:var(--green-soft)}
.flash-error{border-left:4px solid var(--red);background:var(--red-soft)}
.flash-warning{border-left:4px solid var(--amber);background:var(--amber-soft)}
.flash-info{border-left:4px solid var(--blue)}
.flash-x{background:none;border:none;color:var(--muted);font-size:1.15rem;cursor:pointer;line-height:1}

/* ---------- buttons ---------- */
.btn-primary,.btn-secondary,.btn-sm,.btn-lg,.btn-back,.btn-csv,.btn-esx,.btn-print,.print-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  border:1px solid transparent;border-radius:8px;font-weight:600;cursor:pointer;
  text-decoration:none;transition:.14s;font-size:.88rem;padding:.6rem 1.1rem;font-family:inherit}
.btn-primary{background:var(--gold);color:#0a0f1a}
.btn-primary:hover{filter:brightness(1.08);text-decoration:none}
.btn-secondary,.btn-back{background:var(--panel2);color:var(--text);border-color:var(--line)}
.btn-secondary:hover,.btn-back:hover{border-color:var(--gold);color:var(--gold);text-decoration:none}
.btn-sm{padding:.4rem .75rem;font-size:.8rem;background:var(--panel2);color:var(--text);border-color:var(--line)}
.btn-sm:hover{border-color:var(--gold);color:var(--gold);text-decoration:none}
.btn-lg{padding:.85rem 1.7rem;font-size:.98rem;background:var(--gold);color:#0a0f1a}
.btn-csv,.btn-esx,.btn-print,.print-btn{background:var(--panel2);color:var(--text);border-color:var(--line)}
.btn-csv:hover,.btn-esx:hover,.btn-print:hover,.print-btn:hover{border-color:var(--gold);color:var(--gold);text-decoration:none}
button:disabled{opacity:.55;cursor:not-allowed}

/* ---------- panels / cards ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.6rem}
.stat-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:1.1rem 1.2rem;position:relative;overflow:hidden}
.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold)}
.stat-value{font-size:1.85rem;font-weight:700;color:#fff;line-height:1.1;font-variant-numeric:tabular-nums}
.stat-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;
  font-weight:700;margin-top:.3rem}
.info-box,.summary-box,.claim-info,.estimate-summary,.photos-section,.form-section,.section{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:1.3rem;margin-bottom:1.3rem}
.info-grid,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;margin-bottom:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.section-title,.section-header h2,.section-header h3{font-size:1.05rem;font-weight:650;color:#fff}
.section-title i,.section-header i{color:var(--gold);margin-right:.4rem}

/* project header */
.project-header{background:linear-gradient(180deg,var(--panel2),var(--panel));
  border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.4rem;margin-bottom:1.3rem}
.project-header h1,.project-header h2{font-size:1.4rem;margin-bottom:.3rem}
.project-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;color:var(--muted);font-size:.86rem}
.project-meta i{color:var(--gold);margin-right:.3rem}

/* ---------- tables ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel)}
.data-table{width:100%;border-collapse:collapse;font-size:.88rem}
.data-table th{background:var(--panel2);color:var(--gold);text-align:left;padding:.7rem .85rem;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;
  border-bottom:1px solid var(--line);white-space:nowrap}
.data-table td{padding:.7rem .85rem;border-bottom:1px solid var(--line);vertical-align:top}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table tbody tr:hover{background:var(--panel2)}
.data-table td.num,.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.data-table tr.needs-review{background:rgba(217,155,28,.07)}

/* provenance display — the differentiator */
.prov{font-size:.74rem;color:var(--muted);display:block;margin-top:.2rem}
.prov-id{color:var(--gold);font-weight:600}
.pill{display:inline-block;font-size:.68rem;font-weight:700;padding:.14rem .5rem;border-radius:5px;
  background:var(--green-soft);color:#6ee7a8;white-space:nowrap;letter-spacing:.02em}
.pill-review{background:var(--amber-soft);color:#f0c674}
.pill-muted{background:var(--panel3);color:var(--muted)}

/* estimate rows / summary */
.est-row,.summary-row,.row{display:flex;justify-content:space-between;gap:1rem;
  padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.9rem}
.est-row:last-child,.summary-row:last-child,.row:last-child{border-bottom:none}
.est-total,.total{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 0 .2rem;
  margin-top:.5rem;border-top:2px solid var(--gold);font-size:1.12rem;font-weight:700;color:#fff}
.subtotal{font-weight:600}
.acv{color:var(--purple);font-weight:600}
.cat{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700}

/* ---------- forms ---------- */
.form-group{margin-bottom:1rem;display:flex;flex-direction:column;gap:.35rem}
.form-group label{font-size:.72rem;font-weight:700;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em}
.form-group label i{color:var(--gold);margin-right:.3rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],
input[type=tel],select,textarea{
  width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:8px;
  padding:.65rem .8rem;color:var(--text);font-size:.92rem;font-family:inherit;transition:.14s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(201,162,39,.14)}
input::placeholder,textarea::placeholder{color:#64748b}
textarea{min-height:90px;resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),
  linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:2.2rem}

/* upload */
.upload-area{border:2px dashed var(--line);border-radius:var(--radius-lg);padding:2.2rem 1.2rem;
  text-align:center;background:var(--panel2);cursor:pointer;transition:.16s}
.upload-area:hover{border-color:var(--gold);background:rgba(201,162,39,.05)}
.upload-area i{font-size:2rem;color:var(--gold);margin-bottom:.6rem;display:block}
.upload-hint{font-size:.8rem;color:var(--muted);margin-top:.4rem}

/* photos */
.photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:1rem}
.photo-card{background:var(--panel2);border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;transition:.16s}
.photo-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.photo-preview,.preview-thumb{width:100%;height:150px;object-fit:cover;display:block;background:var(--panel3)}
.photo-analysis{padding:.7rem .8rem;font-size:.8rem;color:var(--muted);line-height:1.5}

/* ---------- badges & status ---------- */
.badge,.status{display:inline-flex;align-items:center;gap:.3rem;padding:.24rem .6rem;
  border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.badge{background:var(--panel3);color:var(--text)}
.badge-water{background:rgba(59,130,246,.18);color:#93c5fd}
.badge-fire{background:var(--red-soft);color:#fca5a5}
.badge-mold{background:var(--green-soft);color:#6ee7a8}
.status-draft{background:var(--panel3);color:var(--muted)}
.status-analyzing{background:var(--amber-soft);color:#f0c674}
.status-estimated{background:var(--green-soft);color:#6ee7a8}

/* export bar */
.export-bar{display:flex;flex-wrap:wrap;gap:.6rem;padding:1rem 1.3rem;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:1.3rem}

/* empty state */
.empty-state{text-align:center;padding:3rem 1.5rem;color:var(--muted);
  background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius-lg)}
.empty-state i{font-size:2.4rem;color:var(--line);margin-bottom:.8rem;display:block}
.empty-state h3{color:var(--text);margin-bottom:.4rem;font-size:1.05rem}

/* ---------- auth ---------- */
.auth-body{display:grid;place-items:center;min-height:100vh;padding:1.5rem;
  background:radial-gradient(1100px 600px at 50% -10%,#16223c 0%,var(--bg) 62%)}
.auth-container{width:100%;max-width:410px}
.auth-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  padding:2.2rem 2rem;box-shadow:0 18px 48px rgba(0,0,0,.42)}
.auth-brand{font-size:.68rem;font-weight:800;color:var(--gold);letter-spacing:.16em;
  text-transform:uppercase;text-align:center;margin-bottom:.5rem}
.auth-logo{font-size:1.5rem;font-weight:700;color:#fff;text-align:center;
  display:flex;align-items:center;justify-content:center;gap:.5rem}
.auth-logo i{color:var(--gold)}
.auth-sub{text-align:center;color:var(--muted);font-size:.85rem;margin:.35rem 0 1.5rem}
.auth-form .form-group{margin-bottom:1rem}
.auth-form .btn-primary{width:100%;margin-top:.4rem;padding:.75rem}
.auth-footer-text{text-align:center;color:var(--muted);font-size:.76rem;margin-top:1.4rem;line-height:1.7}
.pw-wrap{position:relative}
.pw-toggle{position:absolute;right:0;top:0;bottom:0;width:52px;background:var(--panel2);
  border:1px solid var(--line);border-radius:0 8px 8px 0;color:var(--muted);cursor:pointer;
  font-size:.75rem;font-weight:600;transition:.14s}
.pw-toggle:hover{color:var(--gold)}

/* ---------- report / print ---------- */
.report-wrap{max-width:900px;margin:0 auto;padding:1.5rem}
.report-header,.header{display:flex;justify-content:space-between;align-items:flex-start;
  gap:1.5rem;flex-wrap:wrap;padding-bottom:1.1rem;margin-bottom:1.3rem;border-bottom:2px solid var(--gold)}
.header-left .title,.title{font-size:1.4rem;font-weight:700;color:#fff}
.header-right{text-align:right;color:var(--muted);font-size:.85rem}
.sub{color:var(--muted);font-size:.85rem}
.footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--line);
  color:var(--muted);font-size:.76rem;text-align:center}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .sidebar{transform:translateX(-100%);transition:transform .22s ease}
  .sidebar.open{transform:translateX(0);box-shadow:0 0 40px rgba(0,0,0,.55)}
  .sidebar-close{display:block}
  .main-content,.app-footer{margin-left:0}
  .menu-toggle{display:block}
  .content-area{padding:1.1rem}
  .stat-value{font-size:1.5rem}
}
@media print{
  .sidebar,.top-bar,.export-bar,.app-footer,.flash-messages,.menu-toggle,.print-btn,.btn-print{display:none!important}
  body{background:#fff;color:#000}
  .main-content,.app-footer{margin-left:0}
  .report-wrap,.info-box,.summary-box,.section{background:#fff;border-color:#bbb;color:#000}
  .data-table th{background:#0f2144;color:#fff}
  .data-table td{border-color:#bbb;color:#000}
  h1,h2,h3,h4,.title,.stat-value{color:#000}
  a{color:#000;text-decoration:none}
}
