:root{
  --bg:#0b0e0d;
  --bg-panel:#121614;
  --bg-panel-2:#161b19;
  --line:#243330;
  --gold:#cda349;
  --gold-bright:#e8c674;
  --teal:#1b8a80;
  --teal-bright:#2bb3a6;
  --text:#e9ede9;
  --text-dim:#9db0aa;
  --text-faint:#5f7570;
  --good:#3fae6a;
  --fair:#cda349;
  --poor:#c0524a;
  --radius:10px;
  --font-display: Georgia, 'Iowan Old Style', 'Palatino Linotype', serif;
  --font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-size:15px;
  line-height:1.5;
}

a{color:inherit;text-decoration:none;}
button{font-family:inherit;}

/* Topbar */
.topbar{
  display:flex;align-items:center;gap:12px;
  padding:12px 16px;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#0d1110,#0b0e0d);
  position:sticky;top:0;z-index:20;
}
.nav-toggle{
  display:none;background:none;border:1px solid var(--line);color:var(--text);
  border-radius:8px;width:36px;height:36px;font-size:16px;cursor:pointer;
}
.brand{display:flex;flex-direction:column;line-height:1.15;flex:1;}
.brand-mark{
  font-family:var(--font-display);
  font-size:20px;letter-spacing:2px;color:var(--gold-bright);
}
.brand-sub{font-size:11px;color:var(--text-faint);letter-spacing:.4px;}
.sync-indicator{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-dim);}
.sync-indicator .dot{width:8px;height:8px;border-radius:50%;background:var(--teal-bright);box-shadow:0 0 6px var(--teal-bright);}
.sync-indicator.offline .dot{background:var(--poor);box-shadow:0 0 6px var(--poor);}

/* Shell / Nav */
.shell{display:flex;min-height:calc(100vh - 61px);}
.sidenav{
  width:210px;flex:none;border-right:1px solid var(--line);
  padding:14px 8px;background:var(--bg-panel);
}
.sidenav a{
  display:block;padding:10px 12px;border-radius:8px;color:var(--text-dim);
  font-size:14px;margin-bottom:2px;
}
.sidenav a:hover{background:var(--bg-panel-2);color:var(--text);}
.sidenav a.active{background:rgba(205,163,73,.12);color:var(--gold-bright);font-weight:600;}

.view{flex:1;padding:22px;max-width:920px;}

/* Headings */
h1{font-family:var(--font-display);font-size:26px;color:var(--gold-bright);margin:0 0 4px;}
h2{font-family:var(--font-display);font-size:19px;color:var(--gold-bright);margin:28px 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px;}
h3{font-size:14px;color:var(--teal-bright);text-transform:uppercase;letter-spacing:.6px;margin:16px 0 8px;}
.subtitle{color:var(--text-dim);margin-bottom:20px;font-size:13px;}

/* Cards / grid */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px;}
.card{
  background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;
}
.card .num{font-family:var(--font-display);font-size:28px;color:var(--gold-bright);}
.card .label{font-size:12px;color:var(--text-dim);margin-top:2px;}

.panel{background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;}

/* Buttons */
.btn{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--bg-panel-2);border:1px solid var(--line);color:var(--text);
  padding:9px 16px;border-radius:8px;cursor:pointer;font-size:13.5px;
}
.btn:hover{border-color:var(--teal);}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#181206;font-weight:600;}
.btn-gold:hover{background:var(--gold-bright);}
.btn-teal{background:var(--teal);border-color:var(--teal);color:#04120f;font-weight:600;}
.btn-teal:hover{background:var(--teal-bright);}
.btn-danger{border-color:var(--poor);color:var(--poor);}
.btn-danger:hover{background:rgba(192,82,74,.12);}
.btn-sm{padding:5px 10px;font-size:12px;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;}

/* Forms */
label{display:block;font-size:12px;color:var(--text-dim);margin:0 0 4px;}
input[type=text],input[type=date],input[type=time],input[type=number],textarea,select{
  width:100%;background:#0d1211;border:1px solid var(--line);color:var(--text);
  padding:9px 10px;border-radius:7px;font-size:14px;font-family:inherit;margin-bottom:12px;
}
textarea{resize:vertical;min-height:64px;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--teal-bright);outline-offset:0;border-color:var(--teal-bright);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:640px){.field-row{grid-template-columns:1fr;}}
.checkline{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text);margin-bottom:10px;}
.checkline input{width:auto;margin:0;}
.hint{font-size:11.5px;color:var(--text-faint);margin:-8px 0 12px;}

/* Field audit rows */
.fa-row{display:grid;grid-template-columns:170px 110px 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line);}
.fa-label{font-size:13px;color:var(--text);}
.fa-rate{display:flex;gap:8px;font-size:12px;color:var(--text-dim);}
.fa-rate label{display:flex;align-items:center;gap:3px;margin:0;color:inherit;}
.fa-note{margin:0;padding:6px 8px;font-size:13px;}
@media(max-width:640px){.fa-row{grid-template-columns:1fr;gap:6px;}}

/* Rooms grid */
.room-grid{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 16px;}
.room-chip{
  border:1px solid var(--line);border-radius:20px;padding:5px 11px;font-size:12px;
  cursor:pointer;color:var(--text-dim);background:var(--bg-panel-2);
}
.room-chip.selected{background:var(--gold);color:#181206;border-color:var(--gold);font-weight:600;}

/* Assumption / repeatable blocks */
.repeat-block{border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:10px;position:relative;background:#0e1312;}
.repeat-remove{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--poor);cursor:pointer;font-size:13px;}

/* Tables / lists */
table{width:100%;border-collapse:collapse;font-size:13.5px;}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);}
th{color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.4px;}
tr:hover td{background:rgba(255,255,255,.02);}
.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;}
.badge-good{background:rgba(63,174,106,.15);color:var(--good);}
.badge-fair{background:rgba(205,163,73,.15);color:var(--fair);}
.badge-poor{background:rgba(192,82,74,.15);color:var(--poor);}
.badge-outline{border:1px solid var(--line);color:var(--text-dim);}

/* Trial viewer */
.trial-doc{white-space:pre-wrap;font-family:var(--font-mono);font-size:12.5px;background:#0d1211;border:1px solid var(--line);border-radius:8px;padding:14px;max-height:520px;overflow:auto;}

/* Filters */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.filter-row input, .filter-row select{width:auto;min-width:140px;margin:0;}

/* Uploads */
.upload-zone{border:1.5px dashed var(--line);border-radius:8px;padding:16px;text-align:center;color:var(--text-dim);font-size:13px;cursor:pointer;margin-bottom:12px;}
.upload-zone:hover{border-color:var(--teal-bright);color:var(--teal-bright);}
.attach-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.attach-item{width:74px;font-size:10px;color:var(--text-dim);text-align:center;}
.attach-item img{width:74px;height:74px;object-fit:cover;border-radius:6px;border:1px solid var(--line);}
.attach-item .a-file{width:74px;height:74px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:6px;font-size:22px;background:var(--bg-panel-2);}

/* Toast */
.toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(20px);
  background:var(--gold);color:#181206;padding:10px 18px;border-radius:8px;
  font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:.25s ease;z-index:100;
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Empty state */
.empty{border:1px dashed var(--line);border-radius:var(--radius);padding:34px 20px;text-align:center;color:var(--text-dim);}
.empty .big{font-size:30px;margin-bottom:8px;}

/* Wizard steps */
.steps{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px;}
.step-pill{font-size:11px;padding:5px 10px;border-radius:20px;border:1px solid var(--line);color:var(--text-faint);}
.step-pill.active{border-color:var(--gold);color:var(--gold-bright);}
.step-pill.done{border-color:var(--teal);color:var(--teal-bright);}

/* Responsive nav */
@media(max-width:820px){
  .nav-toggle{display:inline-flex;align-items:center;justify-content:center;}
  .sidenav{
    position:fixed;left:0;top:61px;bottom:0;transform:translateX(-100%);
    transition:transform .2s ease;z-index:30;width:230px;box-shadow:4px 0 18px rgba(0,0,0,.4);
  }
  .sidenav.open{transform:translateX(0);}
  .view{padding:16px;}
  .field-row{grid-template-columns:1fr;}
}
