/* Studio ISA Client Portal - drafting-sheet look:
   paper and ink, hairline rules, condensed lettering, copper accent. */
@font-face{font-family:"Barlow";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/Barlow-400.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/Barlow-500.woff2") format("woff2");}
@font-face{font-family:"Barlow";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/Barlow-600.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/BarlowCondensed-500.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:600;font-style:normal;font-display:swap;src:url("fonts/BarlowCondensed-600.woff2") format("woff2");}
@font-face{font-family:"Barlow Condensed";font-weight:700;font-style:normal;font-display:swap;src:url("fonts/BarlowCondensed-700.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-style:normal;font-display:swap;src:url("fonts/IBMPlexMono-400.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Mono";font-weight:500;font-style:normal;font-display:swap;src:url("fonts/IBMPlexMono-500.woff2") format("woff2");}

:root{
  --paper:#F3F0E8;
  --card:#FBFAF6;
  --line:#CFCABD;
  --ink:#1B1B19;
  --ink-soft:#6B675D;
  --muted:#8A8578;

  --accent:#D08A57;          /* lighter copper - fills, markers, buttons */
  --accent-deep:#C07A46;     /* button hover */
  --accent-text:#7D5334;     /* copper for small text on paper (readable) */
  --accent-soft:#F1DFCB;
  --maroon:#6D3240;          /* from the logo */
  --maroon-soft:#EBD9DD;
  --charcoal:#3D3D3E;        /* from the logo */

  --amber:#C08A1E;   --amber-fill:#F6ECD7;
  --good:#2E6B4E;    --good-fill:#E1EFE7;
  --bad:#B03A2E;     --bad-fill:#F7E6E2;
  --blue:#2F5D8A;    --blue-fill:#E3ECF5;
  --purple:#5B3E9B;  --purple-fill:#ECE7F6;

  --radius:0;


  --font-body:"Barlow","Segoe UI","Helvetica Neue",Arial,sans-serif;
  --font-head:"Barlow Condensed","Barlow","Segoe UI",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",Consolas,"Courier New",monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  font-size:14.5px;
  line-height:1.4;
}
a{color:inherit;text-decoration:none;}
.mono{font-family:var(--font-mono);font-size:.92em;}
.muted{color:var(--ink-soft);}

.app-shell{display:flex;min-height:100vh;}

/* ---------- Mobile menu (hidden on desktop, see @media block below) ---------- */
.menu-toggle{display:none;}
.sidebar-backdrop{display:none;}

/* ---------- Sidebar: the title block ---------- */
.sidebar{
  width:248px;flex-shrink:0;
  background:var(--paper);color:var(--ink);
  border-right:1.5px solid var(--ink);
  display:flex;flex-direction:column;
  position:sticky;top:0;height:100vh;overflow-y:auto;
}
.brand{padding:22px 26px 16px;border-bottom:1.5px solid var(--ink);display:flex;flex-direction:column;gap:12px;}
.brand img{width:172px;height:auto;display:block;}
.brand-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--ink-soft);}

.sidebar nav{display:flex;flex-direction:column;flex:1;padding:12px 0;counter-reset:nv;}
.sidebar nav a{
  display:flex;align-items:center;gap:12px;
  padding:7px 22px 7px 20px;border-left:4px solid transparent;
  font-size:15px;color:var(--ink);letter-spacing:.01em;
}
.sidebar nav a::before{
  counter-increment:nv;content:counter(nv,decimal-leading-zero);
  font-family:var(--font-mono);font-size:11px;color:var(--muted);width:18px;flex-shrink:0;
}
.sidebar nav a:hover{background:#ECE7DA;}
.sidebar nav a.active{background:#E7E2D5;border-left-color:var(--accent);font-weight:600;}
.sidebar nav a.cta{font-weight:600;}

.titleblock{margin:0 18px 12px;border:1.5px solid var(--ink);font-size:12px;}
.tb-row{display:flex;border-bottom:1px solid var(--ink);}
.tb-k{width:88px;flex-shrink:0;padding:7px 10px;border-right:1px solid var(--ink);color:var(--ink-soft);letter-spacing:.08em;font-size:10px;display:flex;align-items:center;}
.tb-v{padding:7px 10px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tb-v.mono{font-weight:400;}
.tb-out{display:block;padding:8px 10px;color:var(--accent-text);font-weight:600;}
.tb-out:hover{background:#ECE7DA;}
.sidebar-foot{font-size:10.5px;color:var(--muted);padding:0 20px 16px;line-height:1.35;}

/* ---------- Main content ---------- */
.content{flex:1;min-width:0;padding:0 44px 40px;}
.crumb{
  height:46px;display:flex;align-items:center;justify-content:space-between;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.14em;color:var(--ink-soft);
}

.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px;gap:16px;flex-wrap:wrap;}
.page-head h1{
  font-family:var(--font-head);font-weight:700;text-transform:uppercase;
  font-size:54px;line-height:1;letter-spacing:.03em;margin:0;color:var(--ink);
}
.page-head p{margin:8px 0 0;color:var(--ink-soft);font-size:15px;}
.page-actions{display:flex;gap:12px;flex-wrap:wrap;}

.btn{
  display:inline-flex;align-items:center;gap:6px;
  border:1.5px solid var(--ink);background:transparent;color:var(--ink);
  padding:10px 18px;border-radius:0;
  font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.03em;cursor:pointer;
}
.btn:hover{background:var(--ink);color:#fff;}
.btn-primary,.btn-amber{background:var(--accent);border-color:var(--accent);color:var(--ink);}
.btn-primary:hover,.btn-amber:hover{background:var(--accent-deep);border-color:var(--accent-deep);color:var(--ink);}
.btn-danger{color:var(--bad);border-color:var(--bad);background:transparent;}
.btn-danger:hover{background:var(--bad);color:#fff;}
.btn-sm{padding:5px 11px;font-size:12.5px;}

/* ---------- Section blocks ("cards" are open, ruled sections) ---------- */
.card{
  background:transparent;border:0;border-top:2px solid var(--ink);border-radius:0;
  padding:16px 0 0;margin-bottom:30px;
}
.card h2{
  font-family:var(--font-head);font-weight:700;font-size:20px;letter-spacing:.12em;
  text-transform:uppercase;margin:0 0 12px;color:var(--ink);
}
.card h2 span{font-family:var(--font-body);text-transform:none;letter-spacing:0;font-weight:400;}

/* ---------- Stat strip ---------- */
.stat-row{
  display:flex;flex-wrap:wrap;margin-bottom:28px;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);
}
.stat-card{
  flex:1;min-width:170px;padding:16px 24px 14px;
  border-left:1px solid var(--line);background:transparent;border-radius:0;
  display:flex;flex-direction:column-reverse;gap:6px;
}
.stat-card:first-child{border-left:0;padding-left:0;}
.stat-card .num{font-family:var(--font-mono);font-weight:500;font-size:54px;line-height:1;letter-spacing:-.02em;color:var(--ink);}
.stat-card .lbl{font-size:11px;letter-spacing:.16em;color:var(--ink-soft);font-weight:600;text-transform:uppercase;margin:0;}

/* ---------- Tables ---------- */
table.data{width:100%;border-collapse:collapse;font-size:14px;}
table.data th{
  text-align:left;background:transparent;color:var(--ink-soft);
  padding:9px 10px;font-weight:600;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);
  position:sticky;top:0;
}
table.data td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.data td.mono{white-space:nowrap;}
table.data tr:hover td{background:#ECE7DA;}
.table-wrap{overflow-x:auto;border:0;}
.table-wrap table.data{border:none;}

.empty-state{
  text-align:center;padding:44px 20px;color:var(--ink-soft);
  border:1px dashed var(--muted);border-radius:0;background:transparent;
}
.empty-state a{color:var(--accent-text);font-weight:600;}

/* ---------- Status tags (outlined, like revision stamps) ---------- */
.badge{
  display:inline-block;padding:2px 9px;border-radius:0;
  border:1.5px solid currentColor;background:transparent;
  font-size:12px;font-weight:600;letter-spacing:.03em;
}
.badge-wip{color:var(--amber);}
.badge-ifc{color:var(--good);}
.badge-ifr,.badge-ifa,.badge-ift{color:var(--blue);}
.badge-asbuilt{color:var(--purple);}
.badge-superseded,.badge-onhold{color:var(--bad);}

/* ---------- Forms ---------- */
form .grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;}
form .grid.cols-3{grid-template-columns:1fr 1fr 1fr;}
form .field{display:flex;flex-direction:column;gap:5px;}
form .field.full{grid-column:1/-1;}
form label{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
form label span, form label small, form label em{text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;}
form input[type=text], form input[type=date], form input[type=number], form input[type=password],
form input[type=email], form select, form textarea{
  border:1px solid var(--muted);border-radius:0;
  padding:9px 10px;font-size:14.5px;font-family:inherit;
  background:var(--card);color:var(--ink);
}
form input:focus, form select:focus, form textarea:focus{
  outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--accent-soft);
}
form textarea{resize:vertical;min-height:64px;}
.form-actions{display:flex;gap:10px;margin-top:18px;}

/* ---------- Flash ---------- */
.flash-stack{margin-bottom:18px;display:flex;flex-direction:column;gap:8px;}
.flash{padding:10px 14px;border-radius:0;font-size:14px;font-weight:500;border:1.5px solid;background:var(--card);}
.flash-success{border-color:var(--good);color:var(--good);background:var(--good-fill);}
.flash-error{border-color:var(--bad);color:var(--bad);background:var(--bad-fill);}

/* ---------- Two-column pages ---------- */
.dash-cols{display:flex;gap:40px;align-items:flex-start;}
.dash-main{flex:1;min-width:0;}
.dash-side{width:360px;flex-shrink:0;}
@media(max-width:1100px){.dash-cols{flex-direction:column;align-items:stretch;}.dash-side{width:100%;}}
.block{margin-bottom:28px;}
.block > h2{
  font-family:var(--font-head);font-weight:700;font-size:20px;letter-spacing:.12em;
  text-transform:uppercase;margin:0 0 10px;
}
.block > h2 small{font-family:var(--font-mono);font-weight:400;font-size:12px;letter-spacing:0;color:var(--ink-soft);float:right;padding-top:6px;text-transform:none;}
.block.attn > h2{color:var(--accent-text);}
/* ---------- Login ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;}
.login-sheet{width:100%;max-width:380px;border:1.5px solid var(--ink);background:var(--card);}
.login-sheet .brand{border-bottom:1.5px solid var(--ink);align-items:flex-start;}
.login-body{padding:22px 26px 26px;}
.login-body h2{font-family:var(--font-head);font-weight:700;font-size:26px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;}
.login-body p{margin:0 0 16px;color:var(--ink-soft);font-size:14px;}

.show-sm{display:none;}

/* ======================= Portal additions ======================= */
.proj-block{padding:14px 26px 14px 24px;border-bottom:1px solid var(--line);}
.proj-block .k{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--muted);}
.proj-block .n{font-weight:600;font-size:15px;margin-top:3px;}
.proj-block .c{font-size:12.5px;color:var(--ink-soft);}
.proj-block a{display:block;margin-top:6px;font-size:12px;color:var(--accent-text);font-weight:600;}
.nav-count{margin-left:auto;font-family:var(--font-mono);font-size:11px;background:var(--accent);color:var(--ink);padding:0 7px;}
.tb-link{display:block;padding:8px 10px;border-bottom:1px solid var(--ink);color:var(--accent-text);font-weight:600;}
.tb-link:hover{background:#ECE7DA;}
button.tb-out{width:100%;text-align:left;border:0;background:transparent;font:inherit;font-weight:600;cursor:pointer;}
.linkish{border:0;background:none;padding:0;font:inherit;color:var(--accent-text);font-weight:600;cursor:pointer;}

.banner{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  border:1.5px solid var(--accent);background:#F8EBDD;padding:12px 16px;margin-bottom:22px;}
.banner .t{font-weight:600;}
.banner .s{font-size:13px;color:var(--ink-soft);}

.lock{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px;white-space:nowrap;}
.lock svg,.dl svg{width:15px;height:15px;flex-shrink:0;}
.dl{display:inline-flex;align-items:center;gap:6px;color:var(--accent-text);font-weight:600;font-size:13px;white-space:nowrap;}
.dl:hover{text-decoration:underline;}
.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none;}
.tag-ok{color:var(--good);}
.tag-wait{color:var(--accent-text);}
.tag-closed{color:var(--muted);}

.side-panel{border:1.5px solid var(--ink);background:var(--card);padding:18px 18px 16px;margin-bottom:20px;}
.side-panel h3{font-family:var(--font-head);font-weight:700;font-size:18px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 8px;}
.side-panel p{margin:0 0 12px;color:var(--ink-soft);font-size:13.5px;}
.side-panel.done{border-color:var(--good);background:var(--good-fill);}
.side-panel.done h3{color:var(--good);}
.side-panel .btn{width:100%;justify-content:center;}
.timeline{list-style:none;margin:0;padding:0;}
.timeline li{display:flex;gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13.5px;}
.timeline li:first-child{border-top:0;}
.timeline .when{display:block;font-family:var(--font-mono);font-size:11px;color:var(--muted);}
.timeline .sq{margin-top:5px;background:var(--muted);}
.timeline .sq.a{background:var(--accent);}
.timeline .sq.g{background:var(--good);}

.cover{border:1px solid var(--line);background:var(--card);padding:18px 22px;white-space:pre-line;line-height:1.6;margin-bottom:24px;}
.meta-line{color:var(--ink-soft);margin-top:6px;}
.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;color:var(--accent-text);text-transform:uppercase;}
.back{display:inline-block;margin:4px 0 14px;color:var(--ink-soft);font-size:13.5px;}
.back:hover{color:var(--ink);}
.sheet-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px;}
.hint{font-size:12.5px;color:var(--accent-text);}
.txn-no{font-family:var(--font-mono);font-weight:500;font-size:40px;margin:4px 0 0;letter-spacing:-.01em;}

/* RFI list + thread */
.rfi-cols{display:grid;grid-template-columns:320px 1fr;gap:28px;align-items:start;}
.rfi-list{border-top:2px solid var(--ink);}
.rfi-list a{display:block;padding:12px 12px 12px 10px;border-bottom:1px solid var(--line);border-left:4px solid transparent;}
.rfi-list a:hover{background:#ECE7DA;}
.rfi-list a.sel{background:#E7E2D5;border-left-color:var(--accent);}
.rfi-list .top{display:flex;justify-content:space-between;gap:8px;align-items:center;}
.rfi-list .sub{font-weight:600;margin:4px 0 2px;}
.rfi-list .meta{font-size:12px;color:var(--ink-soft);}
.thread h2{font-family:var(--font-head);font-weight:700;font-size:26px;margin:6px 0 4px;letter-spacing:.02em;}
.msg{border:1px solid var(--line);background:var(--card);padding:12px 16px;margin-top:14px;}
.msg.isa{border-color:var(--accent);background:#F8EBDD;}
.msg .who{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-soft);margin-bottom:6px;}
.msg .who b{color:var(--ink);}
.msg .body{white-space:pre-line;line-height:1.55;}
.waiting{margin-top:14px;padding:10px 14px;background:var(--amber-fill);color:#6E4F0E;font-size:13.5px;}

/* Terms gate & sign-in */
.sheet-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;}
.sheet{width:100%;max-width:560px;border:1.5px solid var(--ink);background:var(--card);}
.sheet.wide{max-width:820px;}
.sheet-body{padding:22px 26px 26px;}
.sheet-body h1{font-family:var(--font-head);font-weight:700;font-size:30px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;}
.sheet-body > p{margin:0 0 16px;color:var(--ink-soft);}
.bullets{list-style:none;margin:0 0 14px;padding:14px 16px;border:1px solid var(--line);background:#fff;}
.bullets li{position:relative;padding:5px 0 5px 18px;line-height:1.45;}
.bullets li::before{content:"";position:absolute;left:0;top:12px;width:7px;height:7px;background:var(--accent);}
.agree{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:14px;line-height:1.45;cursor:pointer;}
.agree input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent);flex-shrink:0;}
.small{font-size:12px;color:var(--muted);}
form input.code-input{font-family:var(--font-mono);font-size:26px;letter-spacing:.3em;text-align:center;}
.terms-doc h2{font-family:var(--font-head);font-weight:700;font-size:19px;letter-spacing:.06em;margin:22px 0 6px;}
.terms-doc p{line-height:1.6;margin:0 0 10px;}
.stack{display:flex;flex-direction:column;gap:12px;}
.inline-form{display:inline;}
.kv{display:grid;grid-template-columns:220px 1fr;gap:6px 16px;font-size:14px;margin:0 0 12px;}
.kv dt{color:var(--ink-soft);}
.kv dd{margin:0;}
.warn-box{border:1.5px solid var(--bad);background:var(--bad-fill);color:var(--bad);padding:10px 14px;margin-bottom:16px;}
.ok-box{border:1.5px solid var(--good);background:var(--good-fill);color:var(--good);padding:10px 14px;margin-bottom:16px;}
.mt{margin-top:18px;}
.btn svg{width:15px;height:15px;flex-shrink:0;}
form label.agree{font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink);}
form label.agree span{font-size:14px;}
@media(max-width:1100px){.ack-first .dash-side{order:-1;}}
.attn-row{display:flex;flex-direction:column;gap:6px;padding:11px 14px;margin-bottom:10px;border:1.5px solid var(--accent);background:#F8EBDD;}
.attn-tag{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);}
.attn-text{font-size:13.5px;}
.attn-row.bad{border-color:var(--bad);background:var(--bad-fill);}
.attn-row.bad .attn-tag{color:var(--bad);}
.block.attn > h2{color:var(--accent-text);}
.block h2.flush{margin:0;}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:14px;}
.list-row:hover{background:#ECE7DA;}
.list-row .who{font-weight:500;min-width:0;}

@media(max-width:900px){
  .hide-sm{display:none !important;}
  .show-sm{display:block;}
  .sub-line{margin-top:3px;font-size:11.5px;color:var(--ink-soft);}
  .menu-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;z-index:1001;
    width:38px;height:38px;border:1.5px solid var(--ink);background:var(--paper);font-size:19px;line-height:1;color:var(--ink);cursor:pointer;}
  .sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(27,27,25,.45);z-index:998;}
  body.sidebar-open .sidebar-backdrop{display:block;}
  .app-shell{display:block;}
  .sidebar{position:fixed;top:0;left:0;z-index:999;width:82vw;max-width:300px;transform:translateX(-100%);
    transition:transform .2s ease;box-shadow:2px 0 18px rgba(0,0,0,.25);}
  body.sidebar-open .sidebar{transform:translateX(0);}
  body.sidebar-open{overflow:hidden;}
  .content{padding:64px 16px 32px;max-width:100%;}
  .crumb{font-size:10px;flex-wrap:wrap;height:auto;padding:4px 0;}
  .page-head{flex-direction:column;align-items:flex-start;gap:10px;}
  .page-head h1{font-size:30px;}
  .page-actions{width:100%;}
  .page-actions .btn{flex:1 1 auto;justify-content:center;}
  .stat-row{border-top:0;}
  .stat-card{min-width:44%;border-top:1px solid var(--line);padding:12px 14px 10px;}
  .stat-card:first-child{border-left:0;padding-left:14px;}
  .stat-card .num{font-size:32px;}
  form .grid, form .grid.cols-3{grid-template-columns:1fr;}
  .form-actions{flex-direction:column-reverse;}
  .form-actions .btn{width:100%;justify-content:center;}
  table.data{font-size:12.5px;}
  table.data th,table.data td{padding:7px 6px;}
  .rfi-cols{grid-template-columns:1fr;}
  .kv{grid-template-columns:1fr;}
  .sheet-body{padding:18px 16px 20px;}
  .txn-no{font-size:28px;}
}

