/* TaskConstruct UI
   Layout: night-blue side rail with icon navigation, light working canvas,
   one accent (site green) reserved for the primary action, progress and "today". */
:root{
  --canvas:#f7f6f1; --surface:#ffffff; --sunken:#f0eee7; --line:#e4e1d8; --line-strong:#cfcbc0;
  --ink:#14211b; --ink-2:#36473f; --muted:#68786f;
  --rail:#e6f1e8; --rail-ink:#2c4a3c; --rail-muted:#5d7a6b; --rail-hover:#d6e9da; --rail-active:#c5e0cb; --rail-accent:#0f7f40; --rail-line:#bcd8c3; --rail-strong:#17392a; --rail-field:rgba(255,255,255,.75); --rail-bg:linear-gradient(160deg,#f3f8f3 0%,#e8f2ea 45%,#d6e9d9 100%); --rail-edge:1px solid #d3e5d7;
  --accent:#0f7f40; --accent-ink:#ffffff; --accent-soft:#dcf3e5;
  --blue:#2f6fde; --blue-soft:#e8f0fd;
  --ok:#1f8a4c; --ok-soft:#e3f4ea; --warn:#b26a00; --warn-soft:#fdf0d9; --bad:#c62f2f; --bad-soft:#fbe6e6; --info:#2f6fde; --info-soft:#e8f0fd;
  --shadow:0 1px 2px rgb(16 24 32 / .06), 0 4px 16px rgb(16 24 32 / .05);
  --shadow-lg:0 12px 40px rgb(16 24 32 / .18);
  --r-sm:6px; --r:10px; --r-lg:14px;
  --font:"Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --canvas:#0d1512; --surface:#141f1a; --sunken:#1a2822; --line:#23342c; --line-strong:#31453b;
  --ink:#e6efea; --ink-2:#c2d0c8; --muted:#8a9d93;
  --rail:#08180f; --rail-ink:#cfe3da; --rail-muted:#76978a; --rail-hover:#10271c; --rail-active:#173727; --rail-accent:#5fd18c; --rail-line:#1f4433; --rail-strong:#fff; --rail-field:#08180f; --rail-bg:#08180f; --rail-edge:0;
  --accent:#34c46f; --accent-ink:#04210f; --accent-soft:#123222;
  --blue:#6aa0ff; --blue-soft:#1a2b45;
  --ok:#5fcf8d; --ok-soft:#173326; --warn:#f0b54a; --warn-soft:#3a2c10; --bad:#ff7d7d; --bad-soft:#3d1d1f; --info:#6aa0ff; --info-soft:#1a2b45;
  --shadow:0 1px 2px rgb(0 0 0 / .3); --shadow-lg:0 12px 40px rgb(0 0 0 / .5);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --canvas:#0d1512; --surface:#141f1a; --sunken:#1a2822; --line:#23342c; --line-strong:#31453b;
  --ink:#e6efea; --ink-2:#c2d0c8; --muted:#8a9d93;
  --rail:#08180f; --rail-ink:#cfe3da; --rail-muted:#76978a; --rail-hover:#10271c; --rail-active:#173727; --rail-accent:#5fd18c; --rail-line:#1f4433; --rail-strong:#fff; --rail-field:#08180f; --rail-bg:#08180f; --rail-edge:0;
  --accent:#34c46f; --accent-ink:#04210f; --accent-soft:#123222;
  --blue:#6aa0ff; --blue-soft:#1a2b45;
  --ok:#5fcf8d; --ok-soft:#173326; --warn:#f0b54a; --warn-soft:#3a2c10; --bad:#ff7d7d; --bad-soft:#3d1d1f; --info:#6aa0ff; --info-soft:#1a2b45;
  --shadow:0 1px 2px rgb(0 0 0 / .3); --shadow-lg:0 12px 40px rgb(0 0 0 / .5);
  color-scheme:dark}

*{box-sizing:border-box}
html,body{height:100%;margin:0}
[hidden]{display:none!important}
img{max-width:100%}
body{background:var(--canvas);color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
button,input,select,textarea{font:inherit;color:inherit}
h1{font-size:26px;line-height:1.15;font-weight:700;letter-spacing:-.015em;margin:0;text-wrap:balance}
h2{font-size:15px;font-weight:650;margin:0;letter-spacing:-.005em}
h3{font-size:13px;font-weight:600;margin:0}
.ico{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Shell ---------- */
.app{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
aside{background:var(--rail-bg);border-right:var(--rail-edge);color:var(--rail-ink);padding:18px 14px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:17px;letter-spacing:-.01em;color:var(--rail-strong);padding:2px 6px}
.brand i{display:block;width:30px;height:30px;border-radius:8px;background:url(/logo.svg) center/contain no-repeat;flex:none}
.auth-card .brand{color:var(--ink)}
.switcher{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:var(--r);background:var(--rail-hover)}
.switcher label{font-size:11.5px;color:var(--rail-muted)}
.switcher select{width:100%;border:1px solid var(--rail-line);background:var(--rail-field);color:var(--rail-strong);border-radius:var(--r-sm);padding:7px 8px;font-weight:600;cursor:pointer}
.switcher select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.switcher .proj-full{font-size:13.5px;font-weight:650;line-height:1.35;color:var(--rail-strong);overflow-wrap:anywhere}
.switcher .meta{font-size:12px;color:var(--rail-muted);line-height:1.4}
nav{display:flex;flex-direction:column;gap:2px}
nav .sect{font-size:11.5px;color:var(--rail-muted);padding:12px 10px 4px}
nav button,nav a.nl{all:unset;cursor:pointer;display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:8px;font-weight:500;color:var(--rail-ink)}
nav button:hover,nav a.nl:hover{background:var(--rail-hover);color:var(--rail-strong)}
nav button[aria-current="true"],nav a.nl[aria-current="true"]{background:var(--rail-active);color:var(--rail-strong);font-weight:650;box-shadow:inset 3px 0 0 var(--rail-accent)}
nav button:focus-visible,nav a.nl:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
nav button span.lbl,nav a.nl span.lbl{flex:1}
nav .cnt{font-size:11px;font-weight:700;min-width:20px;text-align:center;border-radius:10px;padding:1px 6px;background:var(--bad);color:#fff}
.rail-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r);background:var(--rail-hover)}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;color:#fff}
.user-chip{display:flex;flex-direction:column;min-width:0;flex:1;font-size:12px;color:var(--rail-muted)}
.user-chip b{color:var(--rail-strong);font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iconbtn{all:unset;cursor:pointer;display:grid;place-items:center;width:30px;height:30px;border-radius:7px;color:var(--rail-muted)}
.iconbtn:hover{background:var(--rail-active);color:var(--rail-strong)}
.iconbtn:focus-visible{outline:2px solid var(--accent)}

main{padding-block:26px 56px;padding-inline:32px;min-width:0;max-width:none;width:100%}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:22px}
.head .sub{color:var(--muted);font-size:13px;margin-top:4px}
.head-actions{display:flex;gap:8px;flex-wrap:wrap}
.eyebrow{font-size:12px;color:var(--muted);font-weight:500}

/* ---------- Controls ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);padding:7px 13px;border-radius:8px;cursor:pointer;font-weight:550;font-size:13.5px;color:var(--ink);transition:background .12s,border-color .12s}
.btn:hover{border-color:var(--muted)}
.btn .ico{width:16px;height:16px}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:650}
.btn.primary:hover{filter:brightness(.96)}
.btn.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent)}
.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:650}
.btn:disabled{opacity:.55;cursor:default}
.btn:focus-visible,.linkbtn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.linkbtn{all:unset;cursor:pointer;color:var(--blue);font-weight:550;font-size:13px}
.linkbtn:hover{text-decoration:underline}

/* ---------- Surfaces ---------- */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:20px;min-width:0;box-shadow:var(--shadow)}
.panel-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-h .sub{color:var(--muted);font-size:12.5px;font-weight:400}
.grid2{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px}
.grid2 .panel{margin-bottom:0}
.stack{display:flex;flex-direction:column;gap:20px}
.note{font-size:12.5px;color:var(--muted)}
.empty{padding:28px 18px;color:var(--muted);text-align:center}

/* KPI strip: one panel split into segments rather than separate cards */
.kpis{display:grid;grid-template-columns:repeat(var(--kc,4),minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:20px;box-shadow:var(--shadow);overflow:hidden}
.kpi{padding:16px 20px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.kpi:first-child{border-left:0}
.kpi b{display:block;font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.2}
.kpi small{color:var(--muted);font-size:12.5px}
.kpi .eyebrow{font-size:12.5px}
.ring{display:flex;align-items:center;gap:14px}
.ring svg{width:54px;height:54px;flex:none;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:7}
.ring .trk{stroke:var(--sunken)} .ring .val{stroke:var(--accent);stroke-linecap:round}

/* S-curve */
.scurve{padding:10px 14px 6px}
.scurve svg{width:100%;height:auto;display:block}
.scurve .grid{stroke:var(--line);stroke-width:1}
.scurve .axis{fill:var(--muted);font-size:11px;font-family:var(--font)}
.scurve .plan{fill:none;stroke:var(--blue);stroke-width:2.5}
.scurve .area{fill:var(--blue);opacity:.08}
.scurve .today{stroke:var(--accent);stroke-width:2;stroke-dasharray:4 4}
.scurve .actual{fill:var(--surface);stroke-width:3}
.scurve .tag{font-size:12px;font-weight:650;font-family:var(--font);paint-order:stroke;stroke:var(--surface);stroke-width:5px;stroke-linejoin:round}
.legend{display:flex;gap:16px;font-size:12.5px;color:var(--muted);flex-wrap:wrap;align-items:center}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}

/* Tables */
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-weight:550;font-size:12px;color:var(--muted);text-align:left;padding:10px 16px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}
td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:last-child td{border-bottom:0}
tbody tr.click{cursor:pointer;transition:background .1s}
tbody tr.click:hover{background:var(--sunken)}
tbody tr.click:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
td.num,th.num{text-align:right;white-space:nowrap}
td.mono{white-space:nowrap;color:var(--ink-2);font-weight:550}
td b{font-weight:600}
tfoot td{font-weight:700;border-top:1px solid var(--line-strong);border-bottom:0;background:var(--sunken)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:2px 9px 2px 8px;border-radius:999px;white-space:nowrap;background:var(--sunken);color:var(--ink-2)}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.8}
.chip.plain::before{display:none}
.chip.ok{background:var(--ok-soft);color:var(--ok)} .chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.bad{background:var(--bad-soft);color:var(--bad)} .chip.info{background:var(--info-soft);color:var(--info)}
.neg{color:var(--bad)} .pos{color:var(--ok)}
.bar{height:6px;background:var(--sunken);border-radius:3px;overflow:hidden;min-width:60px}
.bar span{display:block;height:100%;background:var(--blue);border-radius:3px}
.bar.over span{background:var(--bad)}

/* Attention list & feed */
.att{list-style:none;margin:0;padding:6px 0}
.att li{display:flex;gap:12px;align-items:flex-start;padding:10px 18px;cursor:pointer}
.att li:hover{background:var(--sunken)}
.att li:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.att .dot{width:8px;height:8px;border-radius:50%;margin-top:7px;flex:none}
.att .dot.bad{background:var(--bad)} .att .dot.warn{background:var(--warn)}
.att li div{min-width:0;flex:1}
.att b{font-weight:600}
.att small{color:var(--muted);display:block;font-size:12.5px}
.feed{list-style:none;margin:0;padding:8px 0;max-height:360px;overflow:auto}
.feed li{display:flex;gap:12px;padding:9px 18px;font-size:13.5px}
.feed li .avatar{width:28px;height:28px;font-size:11px}
.feed small{color:var(--muted);display:block;font-size:12px}

/* Gantt */
.gantt{min-width:760px;font-size:13px}
.g-row{display:grid;grid-template-columns:240px 1fr;min-height:40px;align-items:center}
.g-row:nth-child(even){background:color-mix(in srgb,var(--sunken) 45%,transparent)}
.g-name{padding:6px 16px;display:flex;justify-content:space-between;gap:8px;cursor:pointer;min-width:0}
.g-name span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.g-name:hover{color:var(--blue)}
.g-name:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.g-track{position:relative;height:40px}
.g-bar{position:absolute;top:12px;height:16px;border-radius:999px;background:var(--blue-soft);overflow:hidden}
.g-bar i{display:block;height:100%;background:var(--blue);border-radius:999px}
.g-bar.late{background:var(--bad-soft)} .g-bar.late i{background:var(--bad)}
.g-head{display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid var(--line)}
.g-months{position:relative;height:34px}
.g-months span{position:absolute;top:9px;font-size:12px;color:var(--muted);padding-left:6px;border-left:1px solid var(--line);height:25px}
.g-today{position:absolute;top:0;bottom:0;width:0;border-left:2px solid var(--accent);z-index:1}

/* Drawer (record editor) */
.scrim{position:fixed;inset:0;background:rgb(8 20 14 / .42);display:flex;justify-content:center;align-items:center;padding:24px;z-index:40;animation:fade .15s ease}
.modal{background:var(--surface);width:min(620px,100%);max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);display:flex;flex-direction:column;box-shadow:0 24px 64px rgb(0 0 0 / .28),var(--shadow-lg);border:1px solid var(--line);border-radius:12px;animation:pop .18s ease;overflow:auto;position:relative}
.modal header{cursor:move;user-select:none;-webkit-user-select:none;touch-action:none;padding:18px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:var(--surface);z-index:1}
.modal header h2{font-size:17px}
.modal form{padding:20px 22px;display:grid;grid-template-columns:1fr 1fr;gap:14px;flex:1;align-content:start}
.modal label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:550;color:var(--ink-2);min-width:0}
.modal label.full,.modal .full{grid-column:1/-1}
.modal input,.modal select,.modal textarea{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:9px 11px;font-size:14px;color:var(--ink);width:100%;font-weight:400}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.modal input:disabled{background:var(--sunken)}
.modal footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:8px;padding-top:16px;border-top:1px solid var(--line)}
.modal footer div{display:flex;gap:8px}
.modal .actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}
.modal .readonly-val{color:var(--ink);font-size:14px;font-weight:400;white-space:pre-wrap}
.x{all:unset;cursor:pointer;display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--muted);font-size:20px}
.x:hover{background:var(--sunken);color:var(--ink)}
.x:focus-visible{outline:2px solid var(--blue)}
@keyframes pop{from{transform:scale(.97);opacity:.4}to{transform:none;opacity:1}}
.modal.dragging{animation:none;box-shadow:0 30px 80px rgb(0 0 0 / .34)}
.modal header .x{cursor:pointer}
.m-tools{display:flex;align-items:center;gap:6px}.m-tools .btn.sm{padding:5px 9px;font-size:12.5px}
@media (max-width:600px){.m-tools .btn.sm{font-size:0;gap:0}.m-tools .btn.sm svg{margin:0}}
@media (max-width:600px){.scrim{padding:0;align-items:stretch}.modal,.modal.mid,.modal.wide{width:100%;max-height:none;height:100%;border-radius:0;border:0;transform:none!important}.modal header{cursor:default}}
@keyframes slide{from{transform:translateX(24px);opacity:.4}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}
.toast{position:fixed;bottom:calc(22px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--surface);padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:550;z-index:20;box-shadow:var(--shadow-lg)}
.err{color:var(--bad);font-size:13px;min-height:1em}

/* Sign-in */
.auth-wrap{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.auth-side{background:var(--rail);color:var(--rail-ink);padding:48px;display:flex;flex-direction:column;justify-content:space-between;gap:24px;position:relative;overflow:hidden}
.auth-side h2{font-size:34px;line-height:1.1;color:#fff;font-weight:750;letter-spacing:-.02em;margin:0}
.auth-side p{color:var(--rail-muted);max-width:42ch;margin:0}
.auth-side .gridlines{position:absolute;inset:0;opacity:.07;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.auth-main{display:grid;place-items:center;padding-block:40px;padding-inline:20px}
.auth-card{width:min(380px,100%);display:flex;flex-direction:column;gap:18px}
.auth-card form{display:flex;flex-direction:column;gap:14px}
.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:550;color:var(--ink-2)}
.auth-card input{border:1px solid var(--line-strong);background:var(--surface);border-radius:8px;padding:10px 12px;font-size:15px;color:var(--ink)}
.auth-card input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.auth-card .btn.primary{padding:11px 14px;justify-content:center;font-size:14.5px}
.auth-card .btn{justify-content:center}

/* People, access, misc */
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px 18px;padding:14px 18px}
.checks label{display:flex;gap:10px;align-items:center;font-size:13.5px;padding:8px 10px;border-radius:8px;border:1px solid var(--line)}
.checks label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.checks small{color:var(--muted)}
.checks input{accent-color:var(--blue);width:16px;height:16px}
.group-h{padding:16px 18px 0;color:var(--ink-2);font-weight:600;font-size:13px}
.settings{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;padding:16px 18px}
.settings label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:550;color:var(--ink-2)}
.settings input,.settings select{border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;background:var(--surface);min-width:200px}
.person{display:flex;align-items:center;gap:10px}
.person .avatar{width:30px;height:30px;font-size:11px}
.callout{background:var(--accent-soft);border-radius:var(--r);padding:12px 14px;margin-bottom:16px;font-size:13px}
.secret{font-size:17px;font-weight:600;letter-spacing:.02em;background:var(--sunken);border:1px dashed var(--line-strong);border-radius:8px;padding:12px;user-select:all;word-break:break-all;text-align:center}
.loading{padding:40px 16px;color:var(--muted)}
.mobile-bar{display:none}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .app{grid-template-columns:1fr}
  aside{position:sticky;top:0;height:auto;z-index:5;padding:10px 16px;gap:10px;flex-direction:column}
  .switcher{padding:8px 10px;flex-direction:row;align-items:center;gap:10px}
  .switcher label,.switcher .meta{display:none}
  nav{flex-direction:row;overflow-x:auto;gap:4px;scrollbar-width:none}
  nav .sect{display:none}
  nav button,nav a.nl{white-space:nowrap;padding:7px 10px}
  nav button[aria-current="true"],nav a.nl[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--rail-accent)}
  .rail-foot{display:none}
  .mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}
  .mobile-bar .brand{font-size:15px}
  .brand.desk{display:none}
  main{padding-inline:16px;padding-block:18px 48px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi:nth-child(3){border-left:0}
  .kpi:nth-child(n+3){border-top:1px solid var(--line)}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .auth-wrap{grid-template-columns:1fr}
  .auth-side{display:none}
}
@media (max-width:480px){
  .modal form{grid-template-columns:1fr}
  .kpi{padding:14px}
  .kpi b{font-size:22px}
  h1{font-size:22px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* fixes */
#root{min-height:100%}
.auth-wrap{min-height:100vh}
.auth-card .brand{display:none}
.kpi.ring{flex-direction:row;align-items:center;gap:14px}
.kpi.ring>div{display:flex;flex-direction:column;gap:2px;min-width:0}
@media (max-width:960px){.auth-card .brand{display:flex}}

/* ---------- Attachments & photos ---------- */
.attach{display:flex;flex-direction:column;gap:10px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--r);background:color-mix(in srgb,var(--sunken) 50%,transparent)}
.attach-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:600;font-size:13px;color:var(--ink-2)}
.attach-h span{display:inline-flex;align-items:center;gap:6px}
.attach-h .ico{width:16px;height:16px}
.attach .btn{padding:5px 10px;font-size:12.5px;cursor:pointer}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.thumb{all:unset;cursor:zoom-in;display:block;aspect-ratio:1;max-width:100%;border-radius:8px;overflow:hidden;background:var(--sunken);border:1px solid var(--line)}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.thumb:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.doclist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.doclist li{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;background:var(--surface);border:1px solid var(--line);min-width:0}
.doclist li .ico{width:16px;height:16px;color:var(--muted)}
.doclist a{color:var(--blue);font-weight:550;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.doclist a:hover{text-decoration:underline}
.doclist small{color:var(--muted);font-size:12px;white-space:nowrap}
.iconbtn.sm{width:26px;height:26px;color:var(--muted)}
.iconbtn.sm:hover{background:var(--sunken);color:var(--bad)}
.iconbtn.sm .ico{width:15px;height:15px}
.armed{background:var(--bad-soft)!important;color:var(--bad)!important}
.clipchip{gap:3px;padding:1px 7px;vertical-align:1px;margin-left:4px}
.clipchip .ico{width:12px;height:12px}
.filelink{display:inline-flex;align-items:center;gap:5px;color:var(--blue);font-weight:550;text-decoration:none}
.filelink .ico{width:15px;height:15px}
.filelink:hover{text-decoration:underline}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;padding:12px 18px 4px}
.pcard{margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}
.pcard .thumb{aspect-ratio:4/3;border-radius:10px}
.pcard figcaption{display:flex;flex-direction:column;gap:1px;min-width:0}
.pcard figcaption b{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard figcaption small{color:var(--muted);font-size:12px}
.panel-h label.btn{cursor:pointer}
.lightbox{position:fixed;inset:0;z-index:30;background:rgb(5 14 10 / .93);display:flex;flex-direction:column;color:#fff;animation:fade .15s ease}
.lb-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;padding-top:calc(14px + env(safe-area-inset-top,0px))}
.lb-meta{display:flex;flex-direction:column;min-width:0}
.lb-meta b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-meta span{font-size:12.5px;color:#aab6c2}
.lb-actions{display:flex;gap:6px;flex:none}
.lbbtn{all:unset;cursor:pointer;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#dfe6ec;font-size:22px}
.lbbtn:hover{background:rgb(255 255 255 / .12)}
.lbbtn:focus-visible{outline:2px solid var(--accent)}
.lbbtn.armed{background:#c62f2f!important;color:#fff!important}
.lb-stage{flex:1;display:flex;align-items:center;justify-content:center;gap:10px;padding:0 12px 18px;min-height:0}
.lb-stage img{max-width:min(100%,1400px);max-height:100%;object-fit:contain;border-radius:6px}
.lbnav{all:unset;cursor:pointer;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgb(255 255 255 / .1);flex:none}
.lbnav:hover{background:rgb(255 255 255 / .2)}
.lbnav .ico{width:22px;height:22px}
.lb-cap{display:flex;gap:8px;padding:0 18px 18px;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
.lb-cap input{flex:1;min-width:0;border-radius:8px;border:1px solid #2f4a3d;background:#0d2a20;color:#fff;padding:9px 11px}
@media (max-width:600px){.pgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 14px}.lbnav{display:none}}
.modal label.btn{flex-direction:row;color:var(--ink);font-weight:550}

/* ---------- Inspections ---------- */
.ins-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;color:var(--muted)}
.ck-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.ck-sum .bar{flex:1;min-width:120px}
.cklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.ck{padding:10px 12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;border-left:3px solid transparent}
.ck:first-child{border-top:0}
.ck.pass{border-left-color:var(--ok)} .ck.fail{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad-soft) 55%,transparent)} .ck.na{border-left-color:var(--line-strong)}
.ck-row{display:flex;gap:10px;align-items:flex-start}
.ck-n{flex:none;width:22px;color:var(--muted);font-size:12.5px;font-weight:600;padding-top:3px}
.ck-t{flex:1;min-width:0;font-size:13.5px;color:var(--ink);padding-top:2px}
.segs{flex:none;display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden}
.seg{all:unset;cursor:pointer;padding:5px 10px;font-size:12.5px;font-weight:600;color:var(--muted);border-left:1px solid var(--line-strong);min-width:30px;text-align:center}
.seg:first-child{border-left:0}
.seg:hover:not([disabled]){background:var(--sunken);color:var(--ink)}
.seg:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.seg[disabled]{cursor:default}
.seg.pass.on{background:var(--ok);color:#fff} .seg.fail.on{background:var(--bad);color:#fff} .seg.na.on{background:var(--ink-2);color:var(--surface)}
.modal .ck-note,.ck-note{margin-left:32px;width:calc(100% - 32px);border:1px solid var(--line-strong);border-radius:6px;padding:6px 9px;font-size:13px;background:var(--surface)}
.ck-note-ro{margin-left:32px;font-size:13px;color:var(--ink-2)}
.ck-p{margin-left:32px;align-self:flex-start}
.mini{display:flex;flex-direction:column;gap:4px;min-width:120px}
.mini small{font-size:12px;color:var(--muted)}
.mini-bar{display:flex}
.mini-bar span{display:block;height:100%;border-radius:0}
.mini-bar .p{background:var(--ok)} .mini-bar .f{background:var(--bad)} .mini-bar .n{background:var(--line-strong)}
@media (max-width:520px){.ck-row{flex-wrap:wrap}.ck-t{flex-basis:calc(100% - 32px)}.segs{margin-left:32px}}

/* ---------- Reports page ---------- */
.rp-form{display:flex;flex-direction:column;gap:16px;padding:16px 18px 18px}
.rp-presets{display:flex;flex-wrap:wrap;gap:6px}
.rp-pre.on{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.rp-dates{display:flex;gap:12px;flex-wrap:wrap}
.rp-dates label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:550;color:var(--ink-2)}
.rp-dates input{border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;background:var(--surface);color:var(--ink)}
.rp-ver{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.rp-ver legend{font-size:12.5px;font-weight:550;color:var(--ink-2);margin-bottom:6px}
.rp-ver label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.rp-ver label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.rp-ver input{accent-color:var(--blue);margin-top:3px}
.rp-ver span{display:flex;flex-direction:column;gap:2px}
.rp-ver small{color:var(--muted);font-size:12.5px}
.exlist{list-style:none;margin:0;padding:6px 0}
.exlist li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 18px;border-bottom:1px solid var(--line)}
.exlist li:last-child{border-bottom:0}
.exlist li>span{display:flex;align-items:center;gap:10px;min-width:0}
.exlist li>span .ico{color:var(--muted)}
.exlist b{font-weight:600}
.exlist small{color:var(--muted);font-size:12px}
.exlist .btn{padding:5px 11px;font-size:12.5px}

/* ---------- Printable report (always light, A4) ---------- */
.rp-toolbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 18px;background:var(--rail);color:var(--rail-ink);font-size:13px}
.rp-toolbar>div{display:flex;gap:8px}
.report{--r-ink:#14211b;--r-muted:#5b6b62;--r-line:#d8e0db;--r-soft:#f1f5f2;--r-accent:#0f7f40;
  background:#fff;color:var(--r-ink);width:min(210mm,100%);margin:24px auto;padding:16mm 15mm;box-shadow:var(--shadow-lg);font-size:11.5px;line-height:1.45;color-scheme:light}
.report .scurve .grid{stroke:var(--r-line)} .report .scurve .axis{fill:var(--r-muted)} .report .scurve .actual{fill:#fff} .report .scurve .tag{stroke:#fff}
.rp-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;border-bottom:3px solid var(--r-ink);padding-bottom:12px}
.rp-co{font-weight:700;font-size:12px;letter-spacing:.02em;color:var(--r-muted)}
.report h1{font-size:22px;margin:4px 0 2px;color:var(--r-ink)}
.rp-sub{font-size:13px;font-weight:600}
.rp-block{border-collapse:collapse;font-size:10.5px;min-width:230px}
.rp-block th,.rp-block td{border:1px solid var(--r-ink);padding:3px 7px;text-align:left;background:none;color:var(--r-ink)}
.rp-block th{font-weight:600;width:70px;background:var(--r-soft)}
.rp-head{border-bottom-color:var(--r-accent)!important}
.rp-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:14px 0 4px;border:1px solid var(--r-line);border-radius:6px;overflow:hidden}
.rp-kpis div{padding:9px 11px;border-left:1px solid var(--r-line);display:flex;flex-direction:column}
.rp-kpis div:first-child{border-left:0}
.rp-kpis span{font-size:10px;color:var(--r-muted)}
.rp-kpis b{font-size:19px;line-height:1.25}
.rp-kpis small{font-size:10px;color:var(--r-muted)}
.rp-sec{margin-top:16px;break-inside:avoid-page}
.rp-sec h2{font-size:13px;display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--r-line);padding-bottom:4px;margin-bottom:6px;color:var(--r-ink)}
.rp-sec h2 span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;background:var(--r-accent);font-size:10.5px;color:#fff}
.rp-t{width:100%;border-collapse:collapse;font-size:10.5px}
.rp-t th{background:var(--r-soft);color:var(--r-muted);font-weight:600;font-size:10px;text-align:left;padding:4px 6px;border-bottom:1px solid var(--r-line);white-space:nowrap}
.rp-t td{padding:4px 6px;border-bottom:1px solid var(--r-line);vertical-align:top;color:var(--r-ink)}
.rp-t tr{break-inside:avoid}
.rp-t .num{text-align:right;white-space:nowrap}
.rp-t .nw{white-space:nowrap}
.rp-note{color:var(--r-muted);font-size:10px;margin-top:1px}
.rp-none{color:var(--r-muted);font-style:italic;margin:2px 0}
.rp-line{margin:2px 0 6px}
.rp-late{color:#c62f2f}
.rp-curve{max-width:460px}
.rp-curve .scurve{padding:0}
.rp-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.rp-photos figure{margin:0;break-inside:avoid}
.rp-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px;display:block}
.rp-photos figcaption{font-size:10px;margin-top:3px;display:flex;justify-content:space-between;gap:6px}
.rp-photos small{color:var(--r-muted);white-space:nowrap}
.rp-sign{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:26px;break-inside:avoid}
.rp-sign div{display:flex;flex-direction:column;border-top:1px solid var(--r-ink);padding-top:6px}
.rp-sign span{font-size:10px;color:var(--r-muted)}
.rp-sign b{font-size:12px;min-height:16px}
.rp-sign small{font-size:10px;color:var(--r-muted)}
@media (max-width:700px){.report{padding:18px 14px;margin:0}.rp-head{flex-direction:column}.rp-kpis{grid-template-columns:1fr 1fr}.rp-kpis div:nth-child(3){border-left:0}.rp-photos{grid-template-columns:1fr 1fr}}
@page{size:A4;margin:12mm}
@media print{
  body{background:#fff}
  .rp-toolbar,.toast{display:none!important}
  .report{box-shadow:none;margin:0;padding:0;width:auto}
  .rp-kpis,.rp-sec h2 span{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-block th,.rp-t th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---------- Notifications & account ---------- */
.bell{position:relative}
.bell .bdg{position:absolute;top:1px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--bad);color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center}
.acct-btn{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;flex:1;min-width:0;border-radius:8px;padding:2px}
.acct-btn:hover .user-chip b{text-decoration:underline}
.acct-btn:focus-visible{outline:2px solid var(--accent)}
.notes{display:flex;flex-direction:column;min-height:0;flex:1}
.notes-h{display:flex;justify-content:space-between;align-items:center;padding:12px 22px;font-size:13px;color:var(--muted);border-bottom:1px solid var(--line)}
.nlist{list-style:none;margin:0;padding:0}
.nlist li{border-bottom:1px solid var(--line)}
.nlist li button{all:unset;cursor:pointer;display:flex;gap:12px;padding:12px 22px;width:100%;box-sizing:border-box}
.nlist li button:hover{background:var(--sunken)}
.nlist li button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.nlist li.unread{background:color-mix(in srgb,var(--blue-soft) 60%,transparent)}
.nlist li.unread b::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue);margin-right:7px;vertical-align:2px}
.nico{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:var(--sunken);color:var(--ink-2)}
.nico .ico{width:16px;height:16px}
.ntext{display:flex;flex-direction:column;gap:2px;min-width:0}
.ntext b{font-weight:600;font-size:13.5px}
.ntext span{font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ntext small{font-size:12px;color:var(--muted)}
.notes-f{padding:14px 22px;margin-top:auto;border-top:1px solid var(--line)}
.acct-card{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:var(--r)}
.acct-card .avatar{width:42px;height:42px;font-size:14px}
.acct-card div{display:flex;flex-direction:column;min-width:0}
.acct-card b{font-weight:650}
.acct-card span,.acct-card small{color:var(--muted);font-size:12.5px}
.prefs{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.prefs legend{font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.modal .prefs label{flex-direction:row;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--ink)}
.modal .prefs label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.prefs input{width:16px!important;height:16px;margin-top:2px;accent-color:var(--blue);flex:none}
.prefs span{display:flex;flex-direction:column;gap:2px}
.prefs small{color:var(--muted);font-weight:400;font-size:12.5px}
.modal footer div .btn+.btn{margin-left:0}
.email-stat{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 18px;font-size:13.5px;color:var(--ink-2)}
.email-err{list-style:none;margin:0;padding:0 18px 14px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.email-err small{display:block;color:var(--bad);font-size:12px}
.acct-card .avatar{color:#fff;font-size:14px}

/* sign-in welcome note */
.auth-side{justify-content:flex-start}
.welcome{position:relative;display:flex;flex-direction:column;gap:22px;max-width:46ch;margin-block:auto}
.welcome .lead{font-size:15px;line-height:1.55;color:var(--rail-ink);max-width:none}
.wl-block{display:flex;flex-direction:column;gap:10px}
.wl-block h3{font-size:12.5px;font-weight:650;color:var(--rail-accent);margin:0}
.wl-steps{margin:0;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:8px}
.wl-steps li{counter-increment:s;display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45}
.wl-steps li::before{content:counter(s);flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--rail-accent);color:var(--rail-accent);font-size:11.5px;font-weight:700;display:grid;place-items:center;margin-top:-1px}
.wl-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.wl-list li{font-size:13.5px;line-height:1.45;padding-left:14px;border-left:2px solid var(--rail-line)}
.wl-list b{color:#fff;font-weight:650}
.wl-foot{position:relative;font-size:12.5px;color:var(--rail-muted);margin:0}
.welcome .lead2{font-size:13.5px;line-height:1.55;color:var(--rail-muted);margin:-12px 0 0}
@media (max-width:960px){
  .auth-side{display:flex;order:2;padding:28px 20px 36px;gap:20px}
  .auth-side>.brand{display:none}
  .auth-side h2{font-size:24px}
  .auth-main{padding-block:28px 24px}
}

/* ===== Per-project roles ===== */
.switcher .my-role{margin-top:6px;font-size:12px;color:var(--rail-muted)}
.switcher .my-role b{color:var(--rail-accent);font-weight:650}
.callout.ok{background:var(--ok-soft)} .callout.bad{background:var(--bad-soft)}
.modal .callout{margin:0}
.callout div{margin-top:4px;color:var(--ink-2)}
.action-box{border:1px solid var(--line-strong);border-radius:var(--r);padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:12px;background:var(--sunken)}
.action-box h3{grid-column:1/-1;margin:0;font-size:14px}
.action-box .full,.action-box .actions,.action-box p{grid-column:1/-1}
.role-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border-block:1px solid var(--line)}
.role-guide div{background:var(--surface);padding:10px 14px;display:flex;flex-direction:column;gap:2px}
.role-guide b{font-size:13px} .role-guide small{color:var(--muted);font-size:12px;line-height:1.35}
.role-sel{min-width:170px}
tr.dim td{color:var(--muted)} tr.dim .avatar{opacity:.55}
tr.cur td{background:var(--accent-soft)}
.proj-chips{display:flex;flex-wrap:wrap;gap:4px;max-width:340px}
@media (max-width:640px){.action-box{grid-template-columns:1fr}}
.send-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.send-opt{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line-strong);border-radius:var(--r);padding:10px;background:var(--surface);cursor:pointer;font-weight:400}
.send-opt:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.send-opt.off{opacity:.55;cursor:not-allowed}
.send-opt input{margin-top:3px;accent-color:var(--accent)}
.send-opt span{display:flex;flex-direction:column;gap:2px} .send-opt b{font-size:13px} .send-opt small{color:var(--muted);font-size:12px;line-height:1.35}
.send-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.modal .send-opt{flex-direction:row;align-items:flex-start;text-align:left;color:var(--ink)}
.modal .send-opt input{width:auto;padding:0;flex:none}

/* ===== Contracts & specifications folder ===== */
.cf-up{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.cf-up label:not(.btn){display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:550;color:var(--ink-2)}
.cf-up select{border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
.cf-up .cf-int,.modal .cf-int{flex-direction:row!important;align-items:center;gap:6px;padding-bottom:9px;cursor:pointer}
.modal .cf-int input{width:auto;padding:0}
.cf-bar{display:flex;gap:12px;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px 18px;border-bottom:1px solid var(--line)}
.cf-chips{display:flex;gap:6px;flex-wrap:wrap}
.chipbtn{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.chipbtn small{color:var(--muted);margin-left:2px}
.chipbtn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)} .chipbtn.on small{color:inherit;opacity:.8}
#cfQ{border:1px solid var(--line-strong);border-radius:8px;padding:8px 11px;min-width:240px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
tr.grp td{background:var(--sunken);font-weight:650;font-size:12.5px;color:var(--ink-2);padding-top:8px;padding-bottom:8px}
tr.grp .ico{width:15px;height:15px;margin-right:6px;vertical-align:-3px}
.chip .ico{width:12px;height:12px;margin-right:3px;vertical-align:-2px}
td.nw,.nw{white-space:nowrap}
@media (max-width:640px){#cfQ{min-width:0;width:100%}}
td.nw .iconbtn{display:inline-grid;vertical-align:middle;margin-left:2px}

/* ===== Progress billing ===== */
.modal.wide{width:min(1000px,100%)}
.modal.mid{width:min(880px,100%)}
.claim-t{width:100%;border-collapse:collapse;font-size:13px}
.claim-t th,.claim-t td{padding:8px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.claim-t th{font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.claim-t .num{text-align:right;white-space:nowrap}
.modal .pct-in{width:78px;padding:5px 7px;text-align:right;font-variant-numeric:tabular-nums}
.claim-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);margin-top:14px;overflow:hidden}
.claim-sum div{background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.claim-sum span{font-size:11.5px;color:var(--muted)} .claim-sum b{font-size:16px;font-variant-numeric:tabular-nums}
.claim-sum .due{background:var(--accent-soft)} .claim-sum .due b{color:var(--accent);font-size:18px}
:root[data-theme="dark"] .claim-sum .due b{color:var(--ok)}
.claim-head{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.claim-trail{margin:0;padding:10px 14px 10px 28px;background:var(--sunken);border-radius:var(--r);font-size:13px;display:flex;flex-direction:column;gap:4px}
.rp-sign3{grid-template-columns:repeat(3,1fr)!important}
.rp-due{max-width:560px} .rp-tot td{font-weight:700;border-top:2px solid var(--ink)}
.empty .linkbtn{background:none;border:0;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}
@media (max-width:720px){.claim-sum{grid-template-columns:1fr 1fr}.claim-head{grid-template-columns:1fr 1fr}}

/* ===== Dashboards ===== */
.seg-switch{display:inline-flex;border:1px solid var(--line-strong);border-radius:10px;padding:3px;background:var(--surface);gap:2px}
.seg-switch button{border:0;background:none;padding:7px 12px;border-radius:7px;font:inherit;font-size:13px;font-weight:550;color:var(--muted);cursor:pointer}
.seg-switch button[aria-selected="true"]{background:var(--accent);color:var(--accent-ink)}
.queue td{vertical-align:middle}
.qtype{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.age{display:inline-block;min-width:44px;text-align:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:650;background:var(--sunken);color:var(--ink-2);font-variant-numeric:tabular-nums}
.age.warn{background:var(--warn-soft);color:var(--warn)} .age.bad{background:var(--bad-soft);color:var(--bad)}
.look{list-style:none;margin:0;padding:4px 0}
.look li{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 18px;cursor:pointer;border-bottom:1px solid var(--line)}
.look li:last-child{border-bottom:0} .look li:hover{background:var(--sunken)}
.look li div:first-child{display:flex;flex-direction:column;min-width:0} .look small{color:var(--muted);font-size:12px}
.look .mini{width:120px;flex:none}
.dash-photos{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;padding:0 18px 16px}
.dash-photos .thumb{aspect-ratio:1;border-radius:6px;overflow:hidden;padding:0;border:0;cursor:pointer}
.dash-photos img{width:100%;height:100%;object-fit:cover;display:block}
.perf{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line)}
.perf div{background:var(--surface);padding:14px 18px;display:flex;flex-direction:column;gap:2px}
.perf span{font-size:12px;color:var(--muted)} .perf b{font-size:22px;font-variant-numeric:tabular-nums} .perf small{font-size:12px;color:var(--muted)}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
@media (max-width:640px){.dash-photos{grid-template-columns:repeat(3,1fr)}.perf{grid-template-columns:1fr}}

/* ===== RFI & submittal logs ===== */
.sublog td{vertical-align:top} .sublog th{white-space:nowrap}
.sub-hist{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.sub-hist h3{margin:0 0 8px;font-size:13.5px}
.sub-hist ol{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:10px}
.sub-hist li{position:relative;font-size:13px;display:flex;flex-direction:column;gap:2px}
.sub-hist li::before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--info);border:2px solid var(--surface)}
.sub-hist li.reviewed::before{background:var(--accent)} .sub-hist li.status::before{background:var(--warn)}
.sub-hist small{color:var(--muted);font-size:12px} .sub-hist li div{color:var(--ink-2)}
.sublog .tcol{min-width:220px;max-width:380px}
.sublog .tcol .note{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Drawing viewer & markups ===== */
.dv{position:fixed;inset:0;z-index:9;background:#1d2420;display:flex;flex-direction:column;color:#e9efec}
.dv-top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:#0d2a20;border-bottom:1px solid #24503f;flex-wrap:wrap}
.dv-title{display:flex;gap:10px;align-items:center;min-width:0;flex-wrap:wrap}
.dv-title b{font-size:15px} .dv-title span:not(.chip){color:#b8c9c0;font-size:13.5px}
.dv-act{display:flex;gap:6px;align-items:center}
.dv-pg{font-size:12.5px;color:#b8c9c0;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}
.dv .lbbtn{font-size:18px}
.dv-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 14px;background:#f4f7f5;color:var(--ink);border-bottom:1px solid #cbd5cf}
.dv-tools button{border:1px solid #cbd5cf;background:#fff;border-radius:7px;padding:6px 11px;font:inherit;font-size:13px;cursor:pointer;color:#14211b}
.dv-tools button.on{background:#0f7f40;border-color:#0f7f40;color:#fff}
.dv-tools button:disabled{opacity:.45;cursor:default}
.dv-tools button.primary{background:#0f7f40;border-color:#0f7f40;color:#fff;font-weight:650}
.dv-tools .dv-col{width:26px;height:26px;padding:0;border-radius:50%;background:var(--c);border:2px solid #fff;box-shadow:0 0 0 1px #cbd5cf}
.dv-tools .dv-col.on{box-shadow:0 0 0 2px #14211b}
.dv-sep{width:1px;height:22px;background:#cbd5cf;margin:0 4px}
#dvTitle{flex:1;min-width:180px;border:1px solid #cbd5cf;border-radius:7px;padding:7px 10px;font:inherit;font-size:13px}
.dv-share{display:flex;gap:6px;align-items:center;font-size:13px}
.dv-body{flex:1;display:flex;min-height:0}
.dv-stage{flex:1;overflow:auto;position:relative;padding:16px}
.dv-page{position:relative;margin:0 auto;width:max-content;box-shadow:0 4px 30px rgb(0 0 0 / .45);background:#fff}
.dv-page canvas,.dv-page img{display:block}
.dv-page svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.dv-page svg.drawing{pointer-events:auto;cursor:crosshair;touch-action:none}
.dv-page svg g.focus :is(path,rect,ellipse){filter:drop-shadow(0 0 3px rgb(255 200 0 / .9))}
.dv-text{position:absolute;transform:translateY(-50%);border:2px solid #e03131;border-radius:4px;padding:4px 6px;font:600 14px/1.2 inherit;min-width:180px;z-index:2}
.dv-stamp{position:sticky;bottom:12px;left:0;margin:12px auto 0;width:max-content;background:#c62f2f;color:#fff;font-weight:700;letter-spacing:.06em;padding:8px 16px;border-radius:8px}
.dv-empty{color:#b8c9c0;text-align:center;padding:80px 20px;display:flex;flex-direction:column;gap:8px}
.dv-side{width:320px;flex:none;background:var(--surface);color:var(--ink);overflow:auto;border-left:1px solid var(--line)}
.dv-sec{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.dv-sec h3{margin:0;font-size:13.5px}
.dv-revs,.dv-mks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.dv-revs button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px}
.dv-revs button.on{border-color:var(--accent);background:var(--accent-soft)}
.dv-revs small{grid-column:1/-1;color:var(--muted);font-size:12px}
.dv-mks li{display:grid;grid-template-columns:auto 1fr auto;gap:2px 8px;align-items:start;padding:8px;border:1px solid var(--line);border-radius:8px}
.dv-mks li.on{border-color:#f0b54a;background:var(--warn-soft)}
.dv-eye input{width:16px;height:16px;margin-top:2px;accent-color:var(--accent)}
.dv-mk{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0}
.dv-mk small{color:var(--muted);font-size:12px}
.dv-rfi{grid-column:2/3;font-size:12.5px;text-align:left}
.rfi-mk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;background:var(--warn-soft);padding:8px 12px;border-radius:var(--r)}
.rfi-mk .ico{width:16px;height:16px}
@media (max-width:820px){.dv-body{flex-direction:column}.dv-side{width:auto;max-height:40vh;border-left:0;border-top:1px solid var(--line)}}

/* ===== Meetings ===== */
.mt-head{display:grid;grid-template-columns:1.3fr 1.6fr 1fr .8fr 1.3fr;gap:10px}
.mt-att h3,.mt-h3{margin:0 0 8px;font-size:13.5px}
.mt-att ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px}
.mt-att li label{flex-direction:row!important;align-items:flex-start;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:550}
.mt-att li input{width:auto;margin-top:2px;accent-color:var(--accent)}
.mt-att li span{display:flex;flex-direction:column} .mt-att li small{color:var(--muted);font-weight:400;font-size:12px}
.mt-add{display:flex;gap:8px;margin-top:8px} .mt-add input{flex:1}
.mi-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mi{border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.mi-action{border-left-color:var(--warn)} .mi-decision{border-left-color:var(--accent)}
.mi-h{display:flex;gap:8px;align-items:center}
.mi-h select{width:120px;flex:none} .mi-h input{flex:1}
.mi-n{font-weight:700;color:var(--muted);width:20px;text-align:right;flex:none}
.mi-act{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.mi-act select{width:auto;min-width:180px} .mi-act input[data-f=owner_name]{width:220px}
.mi-act label{flex-direction:row!important;align-items:center;gap:6px;font-weight:550}
.mi-act input[type=date]{width:auto} .mi-done input{width:auto;accent-color:var(--accent)}
.mt-addi{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.mins{display:flex;flex-direction:column;gap:10px;font-size:13.5px}
.mins h3{margin:6px 0 0;font-size:13.5px}
.mins-meta{display:flex;gap:8px 14px;flex-wrap:wrap;color:var(--muted);font-size:13px}
.mins-att small,.mins-t small{color:var(--muted)}
.mins-t{width:100%;border-collapse:collapse}
.mins-t th,.mins-t td{padding:8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.mins-t th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.mins-t td div{color:var(--ink-2);margin-top:3px;white-space:pre-wrap}
.mins-t tr.k-action td:nth-child(3){color:var(--warn);font-weight:650} .mins-t tr.k-decision td:nth-child(3){color:var(--accent);font-weight:650}
.mins-from{font-size:11.5px}
.report .mins{font-size:12.5px} .report .mins h3{font-size:13px}
@media (max-width:820px){.mt-head{grid-template-columns:1fr 1fr}}

/* ===== Correspondence ===== */
.cr-to{display:flex;gap:16px;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.cr-to legend{font-size:12.5px;font-weight:550;color:var(--ink-2);padding:0 4px}
.cr-to label{flex-direction:row!important;align-items:center;gap:6px;color:var(--ink)}
.cr-to input{width:auto;accent-color:var(--accent)}
.letter{border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}
.letter.compact{padding:10px 12px;gap:6px;font-size:13px}
.lt-h{display:flex;gap:10px;align-items:center} .lt-h span{color:var(--muted);font-size:13px}
.lt-meta{border-collapse:collapse;font-size:13px} .lt-meta th{text-align:left;color:var(--muted);font-weight:550;padding:2px 14px 2px 0;white-space:nowrap} .lt-meta td{padding:2px 0}
.letter h4{margin:4px 0 0;font-size:15px} .letter.compact h4{font-size:13.5px}
.lt-body{white-space:pre-wrap;line-height:1.55;font-size:14px}
.letter.compact .lt-body{max-height:5.5em;overflow:hidden;font-size:13px;color:var(--ink-2)}
.lt-parent{display:flex;flex-direction:column;gap:4px;opacity:.85}
.lt-replies{display:flex;flex-direction:column;gap:8px} .lt-replies h3{margin:0;font-size:13.5px}
.lt-reply{all:unset;cursor:pointer;display:block} .lt-reply:hover .letter{border-color:var(--accent)}
.lt-subj{font-size:15px;margin:18px 0 8px} .lt-body.print{font-size:13px;margin-bottom:14px}
.letter .lt-meta{width:auto} .letter .lt-meta th,.letter .lt-meta td{border:0;background:none}
.letter table.lt-meta{width:auto!important;min-width:0!important} .letter .lt-meta th{width:120px}

/* ===== Delays ===== */
.dl-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;counter-reset:s}
.dl-steps li{border:1px solid var(--line);border-top:4px solid var(--line-strong);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.dl-steps li b{color:var(--ink);font-size:13px}
.dl-steps li.done{border-top-color:var(--accent);background:var(--accent-soft)}
.causes{list-style:none;margin:0;padding:12px 18px 16px;display:flex;flex-direction:column;gap:8px}
.causes li{display:grid;grid-template-columns:220px 1fr 50px;gap:12px;align-items:center;font-size:13px}
.causes b{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:720px){.dl-steps{grid-template-columns:1fr 1fr}.causes li{grid-template-columns:1fr 1fr 40px}}

/* ===== Camera photos ===== */
.pcard .thumb{position:relative}
.pside,.pstamp{position:absolute;top:6px;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em}
.pside{left:6px;background:#1971c2;color:#fff} .pside.cm{background:#7048e8}
.pstamp{right:6px;background:rgba(0,0,0,.6);color:#fff}
.cam-prev{background:#111;border-radius:var(--r);overflow:hidden;display:flex;justify-content:center}
.cam-prev img{max-width:100%;max-height:52vh;display:block}

/* ===== Phone layout: simple bottom bar (Dashboard · Take photo · Photos · More) ===== */
.mnav,.msheet-wrap{display:none}
@media (max-width:760px){
  aside nav{display:none}
  .desk-only{display:none!important}
  main{padding-bottom:110px}
  .mnav{display:grid;grid-template-columns:1fr 1.2fr 1fr 1fr;align-items:end;position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--rail);border-top:1px solid var(--rail-line);padding:6px 8px calc(8px + env(safe-area-inset-bottom));gap:4px}
  .mnav button,.mnav a.nl,.mnav .mcam{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--rail-muted);font-size:11.5px;font-weight:600;padding:6px 0;position:relative;-webkit-tap-highlight-color:transparent}
  .mnav .ico{width:22px;height:22px}
  .mnav button[aria-current="true"],.mnav a.nl[aria-current="true"]{color:var(--rail-accent)}
  .mnav .mcam{color:var(--rail-strong)}
  .mnav .mcam .ico{width:28px;height:28px;box-sizing:content-box;padding:15px;border-radius:50%;background:var(--accent);color:var(--accent-ink);margin-top:-30px;border:4px solid var(--rail);box-shadow:0 6px 18px rgb(0 0 0 / .35)}
  .mdot{position:absolute;top:4px;right:calc(50% - 16px);width:8px;height:8px;border-radius:50%;background:var(--bad)}
  .msheet-wrap{display:flex;position:fixed;inset:0;z-index:12;background:rgb(8 20 14 / .45);align-items:flex-end}
  .msheet{background:var(--surface);width:100%;border-radius:16px 16px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom));max-height:80vh;overflow:auto;animation:slideup .18s ease}
  .msheet-h{display:flex;justify-content:space-between;align-items:center;padding:0 4px 10px}
  .msheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .msheet-grid button,.msheet-grid a.nl{all:unset;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 6px;border:1px solid var(--line);border-radius:12px;font-size:12.5px;font-weight:600;text-align:center;position:relative;color:var(--ink)}
  .msheet-grid .ico{width:22px;height:22px;color:var(--accent)}
  .msheet-grid .cnt{position:absolute;top:6px;right:8px;background:var(--bad);color:#fff;font-style:normal;font-size:11px;border-radius:999px;padding:0 6px}
  .head-actions .seg-switch{display:none}
}
@keyframes slideup{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
.co-sys{display:grid!important;grid-template-columns:repeat(2,1fr);gap:6px}

/* ===== Offline ===== */
.offbar{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;margin-bottom:14px;padding:10px 14px;border-radius:10px;font-size:13.5px;font-weight:600;line-height:1.35}
.offbar.off{background:#3a2c10;color:#ffd98a} .offbar.sync{background:var(--info-soft);color:var(--info)} .offbar.bad{background:var(--bad-soft);color:var(--bad)}
:root:not([data-theme="dark"]) .offbar.off{background:#fdf0d9;color:#8a5200}
.obx{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.obx li{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.obx li div{display:flex;flex-direction:column;gap:2px} .obx small{color:var(--muted);font-size:12px}
.up-thumbs{display:flex;flex-wrap:wrap;gap:6px}.up-thumbs img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}.up-thumbs span{align-self:center;color:var(--muted);font-weight:600}

/* ===== Help ===== */
#hQ{border:1px solid var(--line-strong);border-radius:8px;padding:8px 11px;min-width:240px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
.help-list{display:flex;flex-direction:column;padding:0 18px 8px;gap:6px}
.help{border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.help summary{cursor:pointer;padding:11px 14px;font-weight:650;list-style:none;display:flex;justify-content:space-between;gap:10px}
.help summary::after{content:"+";color:var(--muted);font-weight:400}
.help[open] summary::after{content:"−"}
.help[open] summary{border-bottom:1px solid var(--line)}
.help ol{margin:0;padding:10px 14px 12px 34px;display:flex;flex-direction:column;gap:6px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}
@media (max-width:640px){#hQ{min-width:0;width:100%}}

/* ---------- Email (Gmail) ---------- */
main.wide{max-width:none}
.mail-head{margin-bottom:14px}
.mail{display:grid;grid-template-columns:var(--mside,200px) var(--mlist,360px) minmax(0,1fr);height:calc(100vh - 150px);min-height:480px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.mail-side{display:flex;flex-direction:column;gap:12px;padding:14px 10px;border-right:1px solid var(--line);background:var(--sunken);min-height:0}
.mail-compose{justify-content:center;padding:10px 14px;border-radius:12px}
.mail-boxes{display:flex;flex-direction:column;gap:1px;overflow:auto;min-height:0;flex:1}
.mail-boxes button{display:flex;align-items:center;gap:10px;border:0;background:none;padding:7px 10px;border-radius:0 999px 999px 0;cursor:pointer;text-align:left;color:var(--ink-2)}
.mail-boxes button span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-boxes button b{font-size:12px}
.mail-boxes button:hover{background:var(--line)}
.mail-boxes button[aria-current="true"]{background:var(--accent-soft);color:var(--ink);font-weight:650}
.mail-boxes .ico{width:16px;height:16px}
.mail-lh{font-size:11.5px;color:var(--muted);padding:10px 10px 2px}
.mail-acct{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);padding:8px 10px 0;border-top:1px solid var(--line)}
.mail-acct span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-acct .linkbtn{align-self:flex-start;font-size:12px}
.mail-list{display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;min-width:0}
.mail-bar{display:flex;gap:6px;align-items:center;padding:10px;border-bottom:1px solid var(--line)}
.mail-bar select{display:none}
.mail-search{flex:1;min-width:0}
.mail-search input{width:100%;border:1px solid var(--line);background:var(--sunken);border-radius:999px;padding:7px 14px}
.mail-search input:focus{outline:2px solid var(--blue);outline-offset:-1px;background:var(--surface)}
#mList{overflow:auto;flex:1;min-height:0}
.mthreads{list-style:none;margin:0;padding:0}
.mthreads li{border-bottom:1px solid var(--line)}
.mthreads li button{display:grid;grid-template-columns:22px minmax(0,1fr) auto;grid-template-areas:"star who when" ". sub sub";gap:2px 8px;width:100%;border:0;background:none;text-align:left;padding:9px 12px 10px 8px;cursor:pointer;color:var(--ink-2)}
.mthreads li button:hover{background:var(--sunken)}
.mthreads li.on button{background:var(--blue-soft)}
.mthreads li.unread button{background:color-mix(in srgb,var(--surface) 70%,var(--accent-soft));color:var(--ink)}
.mthreads li.unread .mt-who,.mthreads li.unread .mt-sub b,.mthreads li.unread .mt-when{font-weight:750}
.mt-star{grid-area:star;color:var(--line-strong);display:grid;place-items:center;align-self:start;padding-top:1px}
.mt-star .ico{width:16px;height:16px}
.mt-star.on{color:#e3a21a}.mt-star.on .ico{fill:#f4b400;stroke:#e3a21a}
.mt-who{grid-area:who;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}
.mt-who small{color:var(--muted);font-weight:500}
.mt-when{grid-area:when;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap}
.mt-when .ico{width:13px;height:13px}
.mt-sub{grid-area:sub;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.mt-sub b{color:var(--ink-2);font-weight:550}
.mail-pager{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:8px 10px;font-size:12px;color:var(--muted)}
.mail-pager span{margin-right:6px}
.mail-read{overflow:auto;min-height:0;min-width:0;padding:0 22px 22px}
.mail-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--muted)}
.mail-empty .ico{width:40px;height:40px;stroke-width:1.3}
.mr-head{display:flex;align-items:center;gap:10px;padding:16px 0 12px;position:sticky;top:0;background:var(--surface);z-index:1}
.mr-head h2{flex:1;font-size:19px;font-weight:650;line-height:1.3}
.mr-back{display:none}
.mr-tools{display:flex;gap:2px}
.mr-tools .starred{color:#e3a21a}.mr-tools .starred .ico{fill:#f4b400}
.mmsg{border-top:1px solid var(--line);padding:12px 0}
.mmsg header{display:flex;align-items:flex-start;gap:10px;cursor:pointer}
.mmsg.open header{cursor:default}
.mm-who{flex:1;min-width:0;font-size:13.5px}
.mm-who span{color:var(--muted);font-size:12.5px}
.mm-to{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mmsg time{font-size:12px;color:var(--muted);white-space:nowrap}
.mm-body{display:block;width:100%;border:0;margin-top:12px;background:#fff;border-radius:6px;color-scheme:light}
.mm-img{margin-top:10px;font-size:12.5px;background:var(--sunken);border-radius:8px;padding:6px 10px;color:var(--muted)}
.mm-saved{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.mm-saved .chip{border:0;cursor:pointer}
.mm-saved .ico{width:14px;height:14px}
.mm-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.mm-file{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;text-decoration:none;color:var(--ink);max-width:260px}
.mm-file:hover{border-color:var(--muted)}
.mm-file span{display:flex;flex-direction:column;min-width:0}
.mm-file b{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mm-file small{color:var(--muted);font-size:11.5px}
.mm-act{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.mm-act .btn{border-radius:999px}
.mail-setup{max-width:620px;padding:30px 30px 28px;display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.mail-setup .ms-ico{width:48px;height:48px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}
.mail-setup .ms-ico .ico{width:26px;height:26px}
.mail-setup h2{font-size:19px}
.mail-setup p{margin:0;color:var(--ink-2)}
.mail-setup ul{margin:0 0 8px;padding-left:20px;color:var(--ink-2)}
.compose{position:fixed;right:24px;bottom:0;width:540px;max-width:calc(100vw - 32px);height:min(560px,calc(100vh - 80px));background:var(--surface);border-radius:12px 12px 0 0;box-shadow:var(--shadow-lg);z-index:15;display:flex;flex-direction:column;border:1px solid var(--line)}
.compose.min{height:auto}.compose.min .cx-body{display:none}
.compose header{display:flex;align-items:center;justify-content:space-between;padding:9px 12px 9px 16px;background:var(--rail);color:var(--rail-strong);border-radius:12px 12px 0 0}
.compose header b{flex:1;cursor:pointer;font-weight:600}
.compose header button{border:0;background:none;color:var(--rail-strong);font-size:20px;line-height:1;width:28px;height:28px;cursor:pointer;border-radius:6px}
.compose header button:hover{background:var(--rail-hover)}
.cx-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:0 16px}
.cx-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:4px 0}
.cx-row span{color:var(--muted);font-size:13px;min-width:30px}
.cx-row input{flex:1;border:0;background:none;padding:6px 0;min-width:0}
.cx-row input:focus{outline:none}
.cx-row:focus-within{border-bottom-color:var(--blue)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cx-body textarea{flex:1;border:0;background:none;resize:none;padding:12px 0;min-height:120px;line-height:1.55}
.cx-body textarea:focus{outline:none}
.cx-quote{font-size:12px;color:var(--muted);padding-bottom:6px}
.cx-files{display:flex;flex-wrap:wrap;gap:6px;max-height:110px;overflow:auto}
.cx-file{display:inline-flex;align-items:center;gap:6px;background:var(--sunken);border-radius:6px;padding:4px 4px 4px 8px;font-size:12.5px;max-width:100%}
.cx-file .ico{width:14px;height:14px}
.cx-file small{color:var(--muted)}
.cx-file button{border:0;background:none;cursor:pointer;font-size:16px;color:var(--muted);padding:0 4px}
.cx-warn{flex-basis:100%;font-size:12.5px;color:var(--bad)}
.cx-err{color:var(--bad);font-size:13px}
.compose footer{display:flex;align-items:center;gap:6px;padding:10px 0 12px}
.compose footer .btn.primary{border-radius:999px;padding:8px 22px}
.compose footer label.iconbtn{cursor:pointer}
.cx-note{margin-left:auto;font-size:11.5px;color:var(--muted)}
.pf-bar{display:flex;gap:8px;margin-bottom:10px}
.pf-bar select{flex:1;min-width:0}
.pf-bar input{flex:1;min-width:0}
.pf-list{max-height:52vh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.pf-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer}
.pf-row:last-child{border-bottom:0}
.pf-row:hover{background:var(--sunken)}
.pf-row span{display:flex;flex-direction:column;min-width:0}
.pf-row b{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-row small{color:var(--muted);font-size:12px}
.pf .actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:12px}
.pf .actions .note{margin-right:auto}
.fe-files{border:1px solid var(--line);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:4px}
.fe-files legend{font-size:12.5px;color:var(--muted);padding:0 4px}
.fe-files small{color:var(--muted)}
@media (max-width:1180px){
  .mail{grid-template-columns:var(--mlist,340px) minmax(0,1fr)}
  .mail-side .col-grip{display:none}
  .mail-side{display:none}
  .mail-bar select{display:block;max-width:120px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface)}
  .mail-list .mail-bar::before{content:none}
}
@media (max-width:760px){
  .col-grip{display:none}
  .mail{grid-template-columns:1fr;height:calc(100vh - 260px);border-radius:var(--r)}
  .mail.reading .mail-list{display:none}
  .mail:not(.reading) .mail-read{display:none}
  .mail-read{padding:0 14px 16px}
  .mr-back{display:grid}
  .mr-head h2{font-size:17px}
  .compose{right:0;left:0;width:auto;max-width:none;height:calc(100vh - 40px);border-radius:12px 12px 0 0;z-index:30}
  .cx-note{display:none}
}
.mail .iconbtn,.compose footer .iconbtn{color:var(--muted)}
.mail .iconbtn:hover,.compose footer .iconbtn:hover{background:var(--sunken);color:var(--ink)}
.mail .iconbtn:disabled{opacity:.35;cursor:default;background:none}

/* ---------- Management dashboard ---------- */
.mg-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.mg-mix{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.hchip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;padding:2px 9px 2px 7px;border-radius:999px;white-space:nowrap;background:var(--sunken);color:var(--ink-2)}
.hchip i{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none}
.hchip.bad{background:var(--bad-soft);color:var(--bad)}.hchip.bad i{background:var(--bad)}
.hchip.warn{background:var(--warn-soft);color:var(--warn)}.hchip.warn i{background:var(--warn);border-radius:1px;transform:rotate(45deg)}
.hchip.ok{background:var(--ok-soft);color:var(--ok)}.hchip.ok i{background:var(--ok)}
.hchip.sm{font-size:11.5px;padding:1px 8px 1px 6px}
.chip.sm{font-size:11px;padding:0 7px}
.mg-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.mg-bar .cf-chips{margin-right:auto}
.mg-sort{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.mg-sort select{border:1px solid var(--line-strong);border-radius:8px;padding:6px 8px;background:var(--surface);color:var(--ink)}
.mg-table td{vertical-align:top}
.mg-name{min-width:200px}
.mg-name .mono{font-size:12px;color:var(--muted);display:block}
.mg-health{min-width:150px;max-width:220px}
.mg-health .note{margin-top:4px;line-height:1.35}
.mg-prog{display:flex;align-items:center;gap:10px;min-width:170px}
.mg-track{position:relative;flex:1;height:8px;background:var(--sunken);border-radius:4px}
.mg-act{position:absolute;left:0;top:0;bottom:0;background:var(--ok);border-radius:4px}
.mg-act.behind{background:var(--warn)}
.mg-plan{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;background:var(--ink);border-radius:1px}
.mg-pv{white-space:nowrap;font-size:12.5px}
.mg-pv small{color:var(--muted)}
.mg-cards{display:none}
.mg-att{list-style:none;margin:0;padding:0}
.mg-att li{border-top:1px solid var(--line)}
.mg-att button{display:grid;grid-template-columns:96px 84px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;border:0;background:none;text-align:left;padding:10px 18px;cursor:pointer;color:var(--ink)}
.mg-att button:disabled{cursor:default}
.mg-att button:not(:disabled):hover{background:var(--sunken)}
.mg-att .mono{font-size:12.5px;color:var(--muted)}
.mg-at{font-weight:550}
@media (max-width:1180px){.mg-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.mg-kpis .kpi:nth-child(4){border-left:0}.mg-kpis .kpi:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width:760px){
  .mg-kpis{grid-template-columns:1fr 1fr}.mg-kpis .kpi{border-left:1px solid var(--line)!important;border-top:1px solid var(--line)}.mg-kpis .kpi:nth-child(odd){border-left:0!important}.mg-kpis .kpi:nth-child(-n+2){border-top:0}
  .mg-kpis .kpi:last-child{grid-column:1/-1;border-left:0!important}
  .mg-desk{display:none}
  .mg-cards{display:flex;flex-direction:column}
  .mg-card{display:flex;flex-direction:column;gap:10px;border:0;border-top:1px solid var(--line);background:none;text-align:left;padding:14px 16px;color:var(--ink);font:inherit}
  .mg-card:first-child{border-top:0}
  .mg-ch{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
  .mg-ch .mono{color:var(--muted);font-size:12px}
  .mg-cg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .mg-cg span{display:flex;flex-direction:column;font-size:11.5px;color:var(--muted)}
  .mg-cg b{font-size:14px;color:var(--ink)}
  .mg-bar .mg-sort{flex:1}.mg-bar .mg-sort select{flex:1}
  .mg-att button{grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:10px 16px}
  .mg-att .note{grid-column:2}
}
@media print{.mg-bar,.mnav{display:none!important}.mg-desk{display:block!important}.mg-cards{display:none!important}}
.mg-open{display:grid;grid-template-columns:auto auto;gap:1px 10px;align-content:start;font-size:12.5px;white-space:nowrap}
.mg-open span{color:var(--muted)}
.mg-open b{font-weight:600}
.mg-upd{margin-top:4px;font-size:11.5px}
.mg-table th,.mg-table td{padding-inline:10px}
.mg-name{min-width:180px}
@media (max-width:760px){
  .mg-att button{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"sev code" "txt txt" "nm nm";gap:4px 10px}
  .mg-att button>.hchip{grid-area:sev;justify-self:start}
  .mg-att button>.mono{grid-area:code}
  .mg-att button>.mg-at{grid-area:txt}
  .mg-att button>.note{grid-area:nm;grid-column:auto}
}
.mg-bill{min-width:90px;max-width:150px}
.mg-att .mono{white-space:nowrap}
.mg-health{max-width:190px}
.mg-prog{min-width:150px}
.mg-open b{text-align:left}
.mg-open .chip.sm{margin-left:2px}

/* ---------- Fold the side menu (Email) ---------- */
.rail-handle{display:none}
@media (min-width:961px){
  .app.rail-min{grid-template-columns:22px minmax(0,1fr)}
  .rail-handle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:sticky;top:0;height:100vh;width:22px;padding:0;border:0;cursor:pointer;
    background:var(--rail);color:var(--rail-accent);box-shadow:inset -3px 0 0 var(--rail-accent);transition:width .12s,background .12s;z-index:6}
  .rail-handle span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:12px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--rail-ink)}
  .rail-handle .ico{width:16px;height:16px;stroke-width:2.4}
  .rail-handle:hover,.rail-handle:focus-visible{background:var(--rail-active);outline:none}
  .rail-handle:focus-visible{box-shadow:inset -3px 0 0 var(--rail-accent),0 0 0 2px var(--blue)}
}
@media (max-width:960px){.rail-toggle{display:none!important}}
@media (min-width:961px){.app.rail-min>aside{display:none}}

/* ---------- Pop-out windows (other monitors) ---------- */
.app.solo{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
.app.solo>aside,.app.solo>.mnav{display:none!important}
.app.solo main{max-width:none;padding-top:18px}
.solo-bar{position:sticky;top:0;z-index:7;display:flex;align-items:center;gap:12px;padding:8px 18px;background:var(--rail);color:var(--rail-ink)}
.solo-bar .brand{padding:0}
.solo-bar .brand i{width:24px;height:24px}
.solo-bar b{color:var(--rail-strong);font-size:14.5px}
.solo-bar select{border:1px solid var(--rail-line);background:var(--rail-field);color:var(--rail-strong);border-radius:var(--r-sm);padding:5px 8px;font-weight:600;max-width:360px}
.solo-bar>span:not(.brand){color:var(--rail-muted);font-size:13px}
.solo-sp{flex:1}
.solo-bar .btn{background:var(--rail-hover);border-color:var(--rail-line);color:var(--rail-ink);padding:5px 10px}
.solo-bar .btn:hover{border-color:var(--rail-muted)}
.solo-bar .iconbtn{color:var(--rail-ink)}
.solo .mail{height:calc(100vh - 160px)}
.scr-pick{display:flex;flex-direction:column;gap:8px;padding:4px 0}
.scr-pick .btn{justify-content:flex-start}
.scr-pick small{color:var(--muted);margin-left:auto}
.solo-bar a.btn{text-decoration:none}
main.wide:has(.mailwrap){padding-top:14px}
.mail{height:calc(100vh - 42px)}
.solo .mail{height:calc(100vh - 92px)}
@media (max-width:760px){.mail{height:calc(100vh - 210px)}}
.mail-top{display:flex;justify-content:flex-end;gap:8px;margin-bottom:8px;min-height:0}
.mail-top:empty{display:none}
.mail-top .btn{padding:4px 11px;font-size:12.5px}
.mail{height:calc(100vh - 80px)}
.solo .mail{height:calc(100vh - 92px)}
@media (max-width:960px){.mail-top{display:none}}
@media (max-width:760px){.mail{height:calc(100vh - 210px)}}
.mail-top{align-items:center}
.mail-top h1{font-size:22px}
.mail{height:calc(100vh - 86px)}
@media (max-width:960px){.mail-top{display:flex}.mail-top .btn{display:none}.mail-top h1{font-size:20px}}
.theme-pick .seg{display:flex;flex-wrap:wrap;gap:8px 18px}
.theme-pick .seg label{display:flex;align-items:center;gap:6px;cursor:pointer}
.first-time{border-top:1px solid var(--line);padding-top:14px}
.first-time h3{font-size:13px;color:var(--accent);margin:0 0 8px}
.first-time ol{margin:0;padding:0;list-style:none;counter-reset:ft;display:flex;flex-direction:column;gap:7px}
.first-time li{counter-increment:ft;display:flex;gap:10px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);line-height:1.4}
.first-time li::before{content:counter(ft);flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--accent);color:var(--accent);font-size:11.5px;font-weight:700;display:grid;place-items:center;margin-top:1px}

/* ---------- Sign-in (light green welcome panel + card) ---------- */
.lg-wrap{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:#fbfcfb}
.lg-side{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:26px;padding:34px 72px 26px;color:#2c4a3c;
  background:linear-gradient(160deg,#f3f8f3 0%,#e8f2ea 45%,#d6e9d9 100%)}
.lg-side::before{content:"";position:absolute;inset:0;opacity:.35;background-image:linear-gradient(rgba(15,127,64,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(15,127,64,.06) 1px,transparent 1px);background-size:56px 56px;pointer-events:none}
.lg-beam{position:absolute;left:28%;top:46%;width:120%;height:90px;transform:rotate(-38deg);background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.1));pointer-events:none}
.lg-beam2{left:44%;top:60%;height:60px;opacity:.6}
.lg-top{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px}
.lg-top .brand{font-size:19px;padding:0;color:#17392a}
.lg-top .brand i{width:36px;height:36px;box-shadow:0 6px 16px rgba(15,127,64,.25)}
.lg-pill{font-size:12px;color:#2c4a3c;border:1px solid rgba(23,57,42,.2);border-radius:999px;padding:7px 13px;background:rgba(255,255,255,.55)}
.lg-hero{position:relative;display:flex;flex-direction:column;gap:20px;margin-block:auto;max-width:600px}
.lg-eyebrow{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#1d5a3d}
.lg-hero h2{margin:-4px 0 0;font-size:clamp(40px,4.6vw,60px);line-height:1.04;font-weight:750;letter-spacing:-.045em;color:#183f2d}
.lg-lead{margin:0;font-size:15.5px;line-height:1.7;color:#4c6558;max-width:58ch}
.lg-rows{display:flex;flex-direction:column;border-top:1px solid rgba(23,57,42,.14)}
.lg-row{display:flex;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid rgba(23,57,42,.14)}
.lg-row b{display:block;color:#183f2d;font-size:14px}
.lg-row span:not(.lg-ico){font-size:12.5px;color:#5b7468}
.lg-ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:rgba(15,127,64,.1);color:#1e7a4b;flex:none}
.ai{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.lg-cta{display:flex;align-items:center;gap:16px;margin-top:6px}
.lg-cta b{display:block;color:#183f2d;font-size:14px}
.lg-cta span:not(.lg-round){font-size:13px;color:#5b7468}
.lg-round{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(15,127,64,.1);color:#1e7a4b;flex:none}
.lg-foot{position:relative;display:flex;justify-content:space-between;border-top:1px solid rgba(23,57,42,.14);padding-top:16px;font-size:11.5px;color:#5b7468}
.lg-main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 22px;background:#fbfcfb}
.lg-card-main{width:min(420px,100%);display:flex;flex-direction:column;gap:16px;margin-block:auto;background:#fff;border:1px solid #e3ebe5;border-radius:22px;padding:30px 34px 26px;box-shadow:0 20px 60px rgba(24,63,45,.08)}
.lg-mbrand{display:none;color:#17392a;padding:0}
.lg-legal{width:min(500px,100%);display:flex;justify-content:space-between;font-size:11px;color:#8a9a91;margin-top:24px}
.lg-eyebrow.dark{color:#1e7a4b;font-size:11px;margin-bottom:-6px}
.lg-card-main h1{font-size:27px;line-height:1.12;letter-spacing:-.03em;color:#14211b}
.lg-sub{margin:-6px 0 4px;color:#68786f;font-size:12.5px}
.lg-card-main form{display:flex;flex-direction:column;gap:14px}
.lg-field{display:flex;flex-direction:column;gap:7px}
.lg-lab{display:flex;justify-content:space-between;align-items:baseline}
.lg-lab label{font-size:12.5px;font-weight:650;color:#14211b}
.lg-input{position:relative;display:flex;align-items:center}
.lg-input>.ai{position:absolute;left:13px;color:#7c8c84;width:16px;height:16px}
.lg-input input{flex:1;border:1px solid #d8e1db;background:#fff;border-radius:10px;padding:11px 40px 11px 38px;font-size:14.5px;color:#14211b;min-width:0}
.lg-input input::placeholder{color:#9aa8a0}
.lg-input input:focus{outline:none;border-color:#1e7a4b;box-shadow:0 0 0 3px rgba(30,122,75,.14)}
.lg-eye{all:unset;position:absolute;right:10px;cursor:pointer;color:#7c8c84;display:grid;place-items:center;width:26px;height:26px;border-radius:6px}
.lg-eye:hover{color:#14211b}
.lg-check{display:flex;align-items:center;gap:9px;font-size:12.5px;color:#4c5e55;cursor:pointer}
.lg-check input{width:16px;height:16px;accent-color:#1e7a4b}
.lg-btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:13px 14px;background:linear-gradient(90deg,#1b8a52,#0f6f3e);color:#fff;font-weight:700;font-size:14.5px;cursor:pointer;box-shadow:0 8px 20px rgba(15,111,62,.22)}
.lg-btn:hover{filter:brightness(1.05)}
.lg-btn:disabled{opacity:.6;cursor:default}
.lg-btn.ghost{background:#fff;color:#14211b;border:1px solid #d8e1db;box-shadow:none}
.lg-btn .ai{width:16px;height:16px}
.lg-link{all:unset;cursor:pointer;color:#1e7a4b;font-weight:700}
.lg-link.sm{font-size:11.5px}
.lg-link:hover{text-decoration:underline}
.lg-link:focus-visible{outline:2px solid #2f6fde;outline-offset:2px}
.lg-link .ai{width:12px;height:12px;vertical-align:-1px}
.lg-back{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#68786f;align-self:flex-start}
.lg-back:hover{color:#14211b}
.lg-back .ai{width:15px;height:15px}
.lg-note{display:flex;gap:12px;align-items:flex-start;border:1px solid #e3ebe5;background:#f5f9f6;border-radius:12px;padding:14px 16px;font-size:11.5px;color:#68786f;line-height:1.5;margin-top:10px}
.lg-note>.ai{color:#1e7a4b;width:20px;height:20px;padding:2px;border-radius:50%;background:#e2f1e7}
.lg-note b{display:block;color:#14211b;font-size:12.5px;margin-bottom:3px}
.lg-note span b{display:inline;font-size:inherit}
.lg-note.ok{border-color:#bfe2cc;background:#eaf6ee}
.lg-join{margin:0;text-align:center;font-size:12px;color:#68786f}
@media (max-width:1100px){.lg-side{padding:30px 40px 22px}}
@media (max-width:960px){
  .lg-wrap{grid-template-columns:1fr}
  .lg-side{display:none}
  .lg-mbrand{display:flex}
  .lg-main{min-height:100vh;justify-content:flex-start;padding:28px 16px 18px}
  .lg-card-main{padding:24px 20px 22px;border-radius:18px}
}
.lg-card-main .err:empty{display:none}

/* Submittal revisions */
tr.rev-row td{background:var(--sunken);font-size:13px;color:var(--ink-2);padding-top:7px;padding-bottom:7px}
tr.rev-row td:first-child{padding-left:22px}
tr.rev-row td div{margin-top:2px}
.rev-tree{color:var(--muted);font-family:var(--font)}
.clip-tag{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--muted)}
.clip-tag .ico{width:13px;height:13px}
.rev-box.hot{border-color:var(--bad);background:var(--bad-soft)}
.rev-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rev-head span:not(.chip){color:var(--muted);font-size:13px}
.rev-files{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.rev-files h4{margin:0 0 6px;font-size:12.5px;color:var(--muted);font-weight:650}
.rev-files>div{margin-bottom:8px;font-size:13px}
/* Submittal transmittal form, e-signature and CM stamp */
.trans-box{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;border-top:1px dashed var(--line-strong);padding-top:12px}
.trans-box h4{grid-column:1/-1;margin:0;font-size:13px}
.trans-box .full{grid-column:1/-1}
.ticks{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.ticks legend{font-size:13px;font-weight:600;margin-bottom:6px;padding:0}
label.tick{display:inline-flex;flex-direction:row;align-items:center;gap:6px;font-weight:400;font-size:13px;cursor:pointer}
label.tick input{accent-color:var(--accent);width:auto;margin:0}
.btn.sm{padding:4px 10px;font-size:12px;min-height:0}
.sig-box{display:flex;flex-direction:column;gap:8px}
.sig-h{display:flex;flex-direction:column;gap:2px} .sig-h b{font-size:13px} .sig-h .note{font-size:12px}
.sig-draw canvas{width:100%;max-width:560px;aspect-ratio:560/150;height:auto;background:#fff;border:1px solid var(--line-strong);border-radius:var(--r);touch-action:none;cursor:crosshair;display:block}
.sig-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:6px}
.sig-saved{display:flex;align-items:center;gap:12px}
.sig-saved img{height:64px;max-width:260px;background:#fff;border:1px solid var(--line-strong);border-radius:var(--r);padding:4px}
.stamp-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}
.stamp-opt{display:flex;gap:8px;align-items:center;border:1.5px solid var(--line-strong);border-radius:var(--r);padding:10px;background:var(--surface);cursor:pointer;font-weight:500;font-size:13px}
.stamp-opt input{accent-color:var(--accent);margin:0}
.stamp-opt span{display:flex;align-items:center;gap:8px}
.stamp-opt b{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:2px solid currentColor;font-size:13px}
.stamp-opt.ok b{color:var(--ok)} .stamp-opt.bad b{color:var(--bad)}
.stamp-opt.ok:has(input:checked){border-color:var(--ok);background:var(--ok-soft)}
.stamp-opt.bad:has(input:checked){border-color:var(--bad);background:var(--bad-soft)}
.gen-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gen-box li{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-left:4px solid var(--accent);border-radius:var(--r);padding:10px 12px;background:var(--surface)}
.gen-box li.ok{border-left-color:var(--ok);background:var(--ok-soft)} .gen-box li.bad{border-left-color:var(--bad);background:var(--bad-soft)}
.gen-box li>span{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.gen-box li b{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.gen-box li a:not(.btn){font-weight:600;overflow-wrap:anywhere}
.gen-box li small{color:var(--muted);font-size:12px}
@media (max-width:640px){.trans-box{grid-template-columns:1fr}.gen-box li{flex-wrap:wrap}}
.sig-draw canvas{user-select:none;-webkit-user-select:none}
.gen-box a.btn{text-decoration:none;white-space:nowrap}
/* Daily production reports */
.dpr-tbl{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.dpr-tbl-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.dpr-tbl-h b{font-size:13px}
.dpr-tbl table{width:100%;border-collapse:collapse;font-size:13px}
.dpr-tbl th{text-align:left;font-size:11px;font-weight:600;color:var(--muted);padding:4px 4px;border-bottom:1px solid var(--line)}
.dpr-tbl td{padding:3px 4px;border-bottom:1px solid var(--line)}
.dpr-tbl td input{width:100%;min-width:52px;padding:6px 8px;font-size:13px}
.dpr-tbl td input.num{text-align:right}
.dpr-tbl td:last-child{width:34px}
.dpr-tbl>.btn{align-self:flex-start}
.dpr-photos{display:flex;flex-direction:column;gap:10px;border:1px dashed var(--line-strong);border-radius:var(--r);padding:12px}
.dpr-ph-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end}
.dpr-ph-bar label:first-child{min-width:170px}
.dpr-ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.dpr-ph{position:relative;display:flex;flex-direction:column;gap:4px;border:2px solid var(--line);border-radius:var(--r);padding:4px;cursor:pointer;background:var(--surface);font-weight:400}
.dpr-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:calc(var(--r) - 2px);opacity:.75}
.dpr-ph input{position:absolute;z-index:2;top:10px;left:10px;width:20px;height:20px;accent-color:var(--accent);margin:0}
.dpr-ph span{font-size:12px;line-height:1.3;overflow-wrap:anywhere} .dpr-ph small{display:block;color:var(--muted);font-size:11px}
.dpr-ph.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)} .dpr-ph.on img{opacity:1}
.dpr-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.dpr-txt b{font-size:13px;display:block;margin-bottom:2px} .dpr-txt div{white-space:pre-wrap}
@media (max-width:640px){.dpr-tbl .tw{overflow-x:auto}.dpr-tbl table{min-width:520px}}
.dpr-tbl td select{width:100%;min-width:70px;padding:6px 4px;font-size:13px}
.dpr-tbl .tw{overflow-x:auto}.dpr-tbl table{min-width:620px}
.modal form>*{min-width:0}

/* ===== Compact pop-up windows (all modules) ===== */
.modal header{padding:10px 14px 10px 18px}
.modal header h2{font-size:15.5px}
.modal header .x{width:30px;height:30px}
.modal form{padding:12px 18px 14px;gap:8px 14px}
.modal label{gap:3px;font-size:12px}
.modal input,.modal select,.modal textarea{padding:6px 9px;font-size:13.5px;border-radius:6px}
.modal select{padding-right:4px}
.modal textarea{field-sizing:content;min-height:calc(2lh + 14px);max-height:45vh;line-height:1.4;resize:vertical}
.modal .btn{padding:5px 11px;font-size:13px;gap:6px}
.modal .btn.sm{padding:3px 9px;font-size:12px}
.modal footer{margin-top:2px;padding-top:10px}
.modal .actions{padding-top:10px}
.modal .callout{padding:8px 11px;font-size:12.5px}
.modal .callout div{margin-top:2px}
.modal .note{font-size:12px}
.modal .attach{padding:9px 11px;gap:6px}
.modal .thumbs{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:6px}
.modal .doclist li{padding:4px 8px}
.modal .sub-hist{padding:8px 12px}
.modal .sub-hist h3{margin-bottom:6px;font-size:13px}
.modal .sub-hist ol{gap:6px}
.modal .sub-hist li{font-size:12.5px;gap:0}
.modal .action-box{padding:10px 12px;gap:8px 12px}
.modal .gen-box ul{gap:6px}
.modal .gen-box li{padding:6px 10px;gap:8px}
.modal .send-opt{padding:7px 9px}
.modal .trans-box{gap:8px 12px;padding-top:8px}
.modal .dpr-tbl{gap:4px;margin-bottom:4px}
.modal .dpr-tbl th{padding:2px 4px}
.modal .dpr-tbl td{padding:2px 3px}
.modal .dpr-tbl td input,.modal .dpr-tbl td select{padding:4px 7px;font-size:13px}
.modal .dpr-photos{padding:9px 11px;gap:6px}
.modal .prefs label{padding:7px 10px}
.modal>div[style*="padding:16px 18px"]{padding:12px 16px!important;gap:8px!important}
@media (max-width:600px){.modal form{padding:10px 12px 12px}.modal header{padding:8px 10px 8px 14px}}
.modal input[type=date],.modal input[type=time],.modal input[type=datetime-local]{padding-top:4px;padding-bottom:4px;min-height:0}
.modal input:not([type=checkbox]):not([type=radio]),.modal select{height:32px}
.modal footer{margin-top:0}

/* ===== Two-week look-ahead ===== */
.la-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--line)}
.la{border-collapse:separate;border-spacing:0;width:100%;min-width:980px;font-size:12.5px;table-layout:fixed}
.la th,.la td{border-bottom:1px solid var(--line);padding:0;text-align:center;vertical-align:middle}
.la thead th{font-weight:600;color:var(--ink-2);background:var(--surface)}
.la .la-name{width:220px;text-align:left;padding:6px 10px 6px 16px;position:sticky;left:0;background:var(--surface);z-index:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.la thead .la-name{cursor:default;color:var(--muted);font-size:12px}
.la tbody .la-name:hover{color:var(--blue)}
.la .la-d{width:86px;font-size:11.5px;color:var(--muted);white-space:nowrap;padding:0 6px}
.la .la-p{width:46px;font-size:11.5px;color:var(--muted);font-family:var(--mono,monospace)}
.la-wk{padding:6px 4px!important;font-size:12.5px;border-left:2px solid var(--line-strong)}
.la-wk small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.la-wk.now{background:var(--accent-soft)!important;color:var(--accent)}
.la-mo{font-size:11.5px;padding:3px 0!important;border-left:1px solid var(--line)}
.la-dn{font-size:13px;padding:3px 0 0!important;border-bottom:0!important}
.la-dw{font-size:10.5px;color:var(--muted)!important;font-weight:500!important;padding:0 0 4px!important;text-transform:uppercase;letter-spacing:.02em}
.la .wk0{border-left:2px solid var(--line-strong)}
.la .sun{background:color-mix(in srgb,var(--sunken) 70%,transparent)!important}
.la thead .today{background:var(--accent)!important;color:var(--accent-ink,#fff)!important}
.la td.today{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.la-c{height:34px;position:relative}
.la-c i{position:absolute;left:0;right:0;top:11px;height:12px}
.la-c i.plan{background:var(--blue-soft)} .la-c i.done{background:var(--blue)} .la-c i.late{background:var(--bad)}
.la-c i.s{left:3px;border-top-left-radius:6px;border-bottom-left-radius:6px}
.la-c i.e{right:3px;border-top-right-radius:6px;border-bottom-right-radius:6px}
.la tbody tr:nth-child(even) td,.la tbody tr:nth-child(even) th{background-color:color-mix(in srgb,var(--sunken) 35%,var(--surface))}

/* ===== Billing: schedule of values, G703 grid, G702 summary ===== */
.modal.xwide{width:min(1500px,100%)}
@media (max-width:600px){.modal.xwide{width:100%}}
.sov-t .sov-head td{background:color-mix(in srgb,var(--sunken) 60%,var(--surface))}
.sov-t .sov-sec{font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:12.5px}
.sov-t .sov-grp{font-weight:650;padding-left:18px!important}
.sov-t .sov-d{padding-left:26px}
.sov-mv{width:80px}.sov-mv .iconbtn{font-size:9px;width:22px;height:22px;display:inline-grid}
.sv-money{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px 12px}
@media (max-width:600px){.sv-money{grid-template-columns:1fr 1fr}}
.g703-wrap{overflow:auto;max-height:58vh;border:1px solid var(--line);border-radius:8px}
.g703{border-collapse:separate;border-spacing:0;font-size:12px;min-width:1500px;width:100%}
.g703 th,.g703 td{padding:4px 6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);white-space:nowrap}
.g703 thead th{position:sticky;top:0;background:var(--sunken);font-size:11px;font-weight:600;color:var(--ink-2);text-align:center;z-index:2;white-space:normal;line-height:1.2}
.g703 thead tr:nth-child(2) th{top:24px}
.g703 thead th small{display:block;font-weight:500;color:var(--muted);font-size:10px}
.g703 thead th.grp{border-bottom:1px solid var(--line-strong)}
.g703 td.g-desc{white-space:normal;min-width:220px;max-width:320px}
.g703 tr.g7-head td{background:color-mix(in srgb,var(--sunken) 55%,var(--surface));font-weight:700}
.g703 tr.g7-head.group td{font-weight:600;font-style:italic}
.g703 tfoot td{font-weight:700;background:var(--sunken);position:sticky;bottom:0}
.g703 td.g-edit{background:color-mix(in srgb,var(--blue-soft) 45%,transparent)}
.g703 .g-in{width:92px;height:26px!important;padding:2px 6px!important;font-size:12px!important;text-align:right}
.g703 .g-cl{display:block;font-size:10px;color:var(--muted)}
.g702{border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:2px;max-width:640px;margin-left:auto;font-size:13px}
.g702>div{display:flex;justify-content:space-between;gap:12px;padding:2px 0}
.g702>div span i{display:inline-block;width:28px;font-style:normal;color:var(--muted)}
.g702>div.sub{padding-left:28px;font-size:12.5px;color:var(--ink-2)}
.g702>div.due{border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);padding:5px 0;font-size:14px}
.g702>div.due b{color:var(--accent)}
.g702 b{font-variant-numeric:tabular-nums}

/* ===== Printable G702 / G703 ===== */
.aia{max-width:1400px;margin:0 auto;background:#fff;color:#111;padding:16px;font-family:Arial,Helvetica,sans-serif}
.aia-page{padding:6px 0 18px;border-bottom:1px dashed #bbb;margin-bottom:18px}
.aia-top{display:flex;align-items:baseline;gap:24px;border-bottom:2px solid #1d4f91;padding-bottom:4px}
.aia-top h1{font-size:18px;margin:0;color:#1d4f91;text-transform:uppercase;letter-spacing:.02em}
.aia-top span{font-size:10px;color:#1d4f91}.aia-top span:last-child{margin-left:auto}
.aia-hdr{display:grid;grid-template-columns:1.2fr 1.2fr 1fr .5fr;gap:14px;font-size:11px;padding:8px 0;border-bottom:1px solid #111}
.aia-hdr b{font-size:10.5px;text-transform:uppercase}.aia-hdr .mt{display:block;margin-top:8px}.aia-hdr .pre{white-space:pre-wrap}
.aia-dist div{font-size:11px}
.aia-kv{border-collapse:collapse;font-size:11px;width:100%}
.aia-kv th{text-align:left;font-weight:700;text-transform:uppercase;font-size:10px;padding:1px 6px 1px 0;white-space:nowrap}.aia-kv td{padding:1px 0}
.aia-body{display:grid;grid-template-columns:1fr 1fr;gap:22px;padding-top:8px}
.aia h2{font-size:13px;margin:8px 0 4px;text-transform:uppercase}
.aia .sm{font-size:10.5px;line-height:1.35;margin:4px 0;text-align:justify}.aia .sm.i{font-style:italic}
.aia-lines{width:100%;border-collapse:collapse;font-size:11.5px}
.aia-lines td{padding:2px 4px}.aia-lines td.n{width:22px;font-weight:700}
.aia-lines td small{display:block;font-size:9.5px;color:#444}
.aia-lines td.num{border-bottom:1px solid #111;width:140px;text-align:right;font-variant-numeric:tabular-nums}
.aia-lines tr.due td{font-weight:700;font-size:12.5px}
.aia-co{width:100%;border-collapse:collapse;font-size:10.5px;margin-top:10px}
.aia-co th,.aia-co td{border:1px solid #111;padding:2px 5px;text-align:left}.aia-co .num{text-align:right}
.aia-co tr.tot td{font-weight:700}
.aia-sign{margin:8px 0 10px;font-size:11px}
.aia-sign .sigline{border-bottom:1px solid #111;min-height:44px;display:flex;flex-direction:column;justify-content:flex-end;margin-top:4px;position:relative;padding-left:4px}
.aia-sign .sigline small{font-size:10px;color:#444}
.aia-sign .date{text-align:right;font-size:11px;margin-top:2px}
.g-sig{max-height:46px;max-width:200px;object-fit:contain;position:absolute;left:4px;bottom:22px;mix-blend-mode:multiply}
.aia-amt{display:flex;justify-content:space-between;border-bottom:2px solid #111;font-size:13px;padding:4px 0;margin:6px 0}
.aia-cs{display:flex;justify-content:space-between;gap:20px;padding:6px 0}.aia-cs .aia-kv{width:auto}
.aia-703{width:100%;border-collapse:collapse;font-size:9.5px;table-layout:fixed}
.aia-703 col.c-no{width:4%}.aia-703 col.c-desc{width:16.2%}.aia-703 col.c-m{width:7.2%}.aia-703 col.c-q{width:3.6%}.aia-703 col.c-u{width:4.2%}.aia-703 col.c-p{width:4.2%}
.aia-703 td{overflow-wrap:anywhere}
.aia-703 th,.aia-703 td{border:1px solid #333;padding:2px 3px}
.aia-703 thead th{background:#eef2f7;font-weight:700;text-align:center;font-size:8px;line-height:1.15;white-space:normal;overflow-wrap:break-word;vertical-align:middle}
.aia-703 tr.letters th{background:#fff;font-size:9px}
.aia-703 td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.aia-703 tr.h td{font-weight:700;background:#f6f6f6}.aia-703 tr.h.group td{font-style:italic;font-weight:600;background:#fff}
.aia-703 tfoot td{font-weight:700;border-top:2px solid #111}
@media print{
  @page{size:A4 landscape;margin:8mm}
  .rp-toolbar{display:none!important}
  body,html{background:#fff!important}
  .aia{padding:0;max-width:none}
  .aia-page{border:0;margin:0;padding:0}
  .g703p{break-before:page}
  .aia-703 thead{display:table-header-group}.aia-703 tr{break-inside:avoid}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media print{
  .aia-hdr{padding:4px 0;font-size:10px;gap:10px}
  .aia-body{gap:16px;padding-top:4px}
  .aia h2{font-size:11.5px;margin:4px 0 2px}
  .aia .sm{font-size:9px;line-height:1.25;margin:2px 0}
  .aia-lines{font-size:10.5px}.aia-lines td{padding:1px 4px}.aia-lines td small{font-size:8.5px}
  .aia-co{font-size:9px;margin-top:6px}.aia-co th,.aia-co td{padding:1px 4px}
  .aia-sign{margin:4px 0 6px;font-size:10px}.aia-sign .sigline{min-height:36px}
  .g-sig{max-height:36px;bottom:18px}
  .aia-amt{font-size:12px;margin:3px 0}
  .aia-page:first-child{break-after:page;break-inside:avoid}
  .g703p{break-before:auto}
}

/* ===== Landscape pop-ups for large monitors, maximize ===== */
.modal{width:min(1200px,94vw);max-height:calc(100vh - 32px);container-type:inline-size}
.modal.mid{width:min(1320px,95vw)}
.modal.wide{width:min(1440px,96vw)}
.modal.xwide{width:min(1720px,97vw)}
.scrim{padding:16px}
@container (min-width:1000px){
  .modal form:not(.dpr-form){grid-template-columns:repeat(4,minmax(0,1fr))}
  .modal form .claim-head{grid-column:1/-1}
}
.modal.max{position:fixed;inset:10px;width:auto!important;max-width:none;max-height:none;height:auto;transform:none!important}
.modal header .mx{font-size:15px}
.modal header .mx svg{width:16px;height:16px}
.callout.lock{background:var(--sunken);border:1px solid var(--line-strong);display:flex;gap:6px;align-items:flex-start}
.callout.lock .ico{width:15px;height:15px;flex:none;margin-top:2px}
.modal select:disabled,.modal textarea:disabled,.modal input:disabled{background:var(--sunken);color:var(--ink);opacity:1;cursor:default}
@media (max-width:600px){.modal.max{inset:0}.modal header .mx{display:none}}

/* ===== Inspection checklist editing ===== */
.modal input.ck-tin{border:1px solid transparent;background:transparent;padding:3px 6px;height:auto!important;font-size:13.5px;border-radius:5px}
.modal input.ck-tin:hover{border-color:var(--line-strong)}
.modal input.ck-tin:focus{border-color:var(--blue);background:var(--surface)}
.ck-del{flex:none;font-size:16px;line-height:1;color:var(--muted)}
.ck-del:hover{color:var(--bad)}
.ck-add{display:flex;gap:8px;align-items:center}
.ck-add input{flex:1}

/* ===== Google set-up ===== */
.gsetup{max-width:900px}
.gs-steps{margin:4px 0 8px 18px;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13.5px;text-align:left}
.gs-kv{margin-top:6px;display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.gs-copy{display:flex;align-items:center;gap:6px}
.gs-copy code{background:var(--sunken);padding:3px 6px;border-radius:5px;color:var(--ink);font-size:12px;overflow-wrap:anywhere}
.gs-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;width:100%;text-align:left}
.gs-form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:550}
.gs-form input{border:1px solid var(--line-strong);border-radius:7px;padding:8px 10px;font-size:13.5px;background:var(--surface);color:var(--ink)}
.gs-form .err,.gs-form>div{grid-column:1/-1}
@media (max-width:700px){.gs-form{grid-template-columns:1fr}}
.mail-setup.ms-simple{max-width:460px;margin:40px auto;align-items:center;text-align:center}
.btn.big{font-size:16px;padding:12px 26px;margin-top:8px}
.mail-acct .btn.sm{align-self:flex-start;margin-top:4px}
/* Email: drag the column edges to resize (widths are remembered) */
.mail-side,.mail-list{position:relative}
.col-grip{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:col-resize;z-index:5;touch-action:none}
.col-grip::after{content:'';position:absolute;left:3px;top:0;width:2px;height:100%;background:transparent;transition:background .15s}
.col-grip:hover::after,body.col-dragging .col-grip::after{background:var(--accent)}
body.col-dragging{cursor:col-resize;user-select:none}
body.col-dragging iframe{pointer-events:none}
/* Email uses the full width: no side or bottom gutters, the box runs edge to edge */
main.wide:has(.mailwrap){padding-inline:0;padding-bottom:0}
main.wide:has(.mailwrap) .mail-top{padding-inline:16px}
main.wide:has(.mailwrap) .mail{border-radius:0;border-left:0;border-right:0;border-bottom:0;box-shadow:none;height:calc(100vh - 52px)}
.solo main.wide:has(.mailwrap) .mail{height:calc(100vh - 92px)}
@media (max-width:760px){main.wide:has(.mailwrap) .mail{height:calc(100vh - 190px)}}
/* Full schedule: MS Project-style Gantt */
:root{--ms-wkend:rgba(120,120,120,.09);--ms-bar:#8fb4ef;--ms-bar-b:#3d6fc4;--ms-prog:#1d3f8a;--ms-sum:#2b2b2b;--ms-link:#3a3a3a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ms-wkend:rgba(255,255,255,.05);--ms-sum:#d8d8d8;--ms-link:#bdbdbd;--ms-prog:#c9dbff}}
:root[data-theme="dark"]{--ms-wkend:rgba(255,255,255,.05);--ms-sum:#d8d8d8;--ms-link:#bdbdbd;--ms-prog:#c9dbff}
.msp{overflow:auto;max-height:calc(100vh - 205px);border-top:1px solid var(--line);font-size:12px;position:relative;background:var(--surface)}
.msp.print{max-height:none;overflow:visible;border:1px solid #999}
.ms-h,.ms-r{display:flex;width:max-content;min-width:100%}
.ms-h{position:sticky;top:0;z-index:6;background:var(--sunken)}
.ms-l{position:sticky;left:0;z-index:4;display:flex;flex:none;background:var(--surface);border-right:2px solid var(--line)}
.ms-h .ms-l{z-index:7;background:var(--sunken)}
.ms-l .c{flex:none;box-sizing:border-box;padding:0 6px;height:24px;display:flex;align-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ms-l .c-n,.ms-l .c-pc{justify-content:flex-end;color:var(--muted)}.ms-l .c-dur{justify-content:flex-end}
.ms-h .ms-l .c{height:44px;align-items:flex-end;padding-bottom:6px;font-weight:600;font-size:11.5px;color:var(--ink-2)}
.ms-r .ms-l{cursor:pointer}
.ms-r:hover .ms-l,.ms-r:hover .ms-l .c{background:var(--accent-soft)}
.ms-r .ms-l:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.ms-r.sum .c{font-weight:700}
.ms-nm{display:flex;align-items:center;gap:2px;min-width:0}
.ms-nm .t{overflow:hidden;text-overflow:ellipsis}
.ms-tg{all:unset;cursor:pointer;width:16px;flex:none;text-align:center;font-size:11px;color:var(--ink-2)}
.ms-tg:hover{color:var(--accent)}.ms-sp{width:16px;flex:none}
.ms-t{position:relative;flex:none}
.ms-t1,.ms-t2{position:relative;height:22px;border-bottom:1px solid var(--line)}
.ms-t1 span,.ms-t2 span{position:absolute;top:0;height:100%;box-sizing:border-box;border-left:1px solid var(--line);font-size:11px;line-height:21px;padding:0 4px;overflow:hidden;white-space:nowrap;color:var(--ink-2)}
.ms-t1 span{font-weight:600}
.ms-t2 span{text-align:center;padding:0 1px}
.ms-b{position:relative;width:max-content;min-width:100%}
.ms-r .ms-t{height:24px;box-sizing:border-box;border-bottom:1px solid var(--line);border-bottom-color:color-mix(in srgb,var(--line) 45%,transparent)}
.ms-bar{position:absolute;top:6px;height:12px;box-sizing:border-box;background:var(--ms-bar);border:1px solid var(--ms-bar-b);border-radius:2px;display:block}
.ms-bar b{display:block;height:4px;margin-top:3px;background:var(--ms-prog);max-width:100%}
.ms-bar.late{background:#f2b3b3;border-color:var(--bad)}
.ms-sum{position:absolute;top:7px;height:5px;background:var(--ms-sum);display:block}
.ms-sum::before,.ms-sum::after{content:'';position:absolute;top:5px;border-top:5px solid var(--ms-sum);border-left:4px solid transparent;border-right:4px solid transparent}
.ms-sum::before{left:-4px}.ms-sum::after{right:-4px}
.ms-mile{position:absolute;top:7px;width:10px;height:10px;margin-left:-5px;background:var(--ms-sum);transform:rotate(45deg);display:block}
.ms-lab{position:absolute;top:0;line-height:24px;font-size:11px;color:var(--muted);white-space:nowrap}
.ms-svg{position:absolute;top:0;z-index:2;pointer-events:none;overflow:visible;color:var(--ms-link)}
.ms-links path{fill:none;stroke:var(--ms-link);stroke-width:1;marker-end:url(#msArr)}
.ms-today{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:4 3}
@media (max-width:760px){.msp{max-height:none}.ms-l .c-pr,.ms-l .c-rs,.ms-l .c-dur{display:none}}
/* Already sent: the Send button is shown gray and inactive; "Send again" re-opens it for a reminder */
.btn.sent-btn,.btn.sent-btn:disabled{background:var(--sunken);color:var(--muted);border-color:var(--line);opacity:1;cursor:default}
.send-done{display:flex;align-items:center;gap:12px}
.send-more{display:flex;flex-direction:column;gap:10px}
/* Email list: unread first, with a small heading for each group */
.mthreads .mt-group{list-style:none;padding:8px 16px 6px;font:600 11px/1 var(--mono,ui-monospace,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--sunken);border-bottom:1px solid var(--line)}
.mthreads .mt-group small{font-weight:600;color:var(--accent);margin-left:4px}
/* Labels with unread mail are bold with their count, as in Gmail */
.mail-boxes button.has-unread span{font-weight:700;color:var(--ink)}
.mail-boxes button.has-unread b{color:var(--ink)}
/* Address suggestions while composing */
.cx-acrow{position:relative}
.cx-sug{position:absolute;left:44px;right:8px;top:100%;z-index:30;margin:2px 0 0;padding:4px 0;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 28px -12px rgba(0,0,0,.35);max-height:300px;overflow:auto}
.cx-sug li{display:flex;align-items:center;gap:10px;padding:7px 12px;cursor:pointer}
.cx-sug li[aria-selected="true"],.cx-sug li:hover{background:var(--accent-soft)}
.cx-sug .cx-av{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:600;font-size:13px;flex:none}
.cx-sug b{display:block;font-weight:600;font-size:13.5px}
.cx-sug small{display:block;color:var(--muted);font-size:12px}
.mail-boxes button.mlabel{padding-left:calc(10px + var(--ld,0) * 16px);align-items:flex-start}
.mail-boxes button.mlabel .ico{margin-top:2px;flex:none}
.mail-boxes button.mlabel span{white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.mail-boxes button.mlabel span b{font-size:inherit;font-weight:700}
.mail-boxes button.mlabel{gap:4px}
.mail-boxes .ml-x{width:18px;height:18px;flex:none;display:inline-grid;place-items:center;border-radius:4px;margin-top:1px;color:var(--ink-3,#8a8a8a)}
.mail-boxes .ml-x[data-mlx]:hover{background:var(--line);color:var(--ink)}
.mail-boxes .ml-x .ico{width:12px;height:12px;transition:transform .15s}
.mail-boxes .ml-x.open .ico{transform:rotate(90deg)}
.mail-boxes button.mlabel>.ico{margin-right:6px}

/* Email list: tick boxes and actions on several emails */
.mail-tools{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:2;min-height:40px}
.mail-tools .mb-n{font-size:12.5px;color:var(--ink-2);margin:0 8px 0 4px;font-weight:650}
.mail-tools .mb-hint{font-size:12px;color:var(--ink-3,#8a8a8a);margin-left:6px}
.mail-tools .mb-act{display:inline-flex;align-items:center;gap:5px;border:0;background:none;padding:6px 8px;border-radius:6px;cursor:pointer;color:var(--ink-2);font-size:12.5px}
.mail-tools .mb-act:hover{background:var(--line);color:var(--ink)}
.mail-tools .mb-act .ico{width:15px;height:15px}
.mt-chk{display:grid;place-items:center;width:30px;flex:none;cursor:pointer}
.mt-chk input{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}
.mthreads li{display:flex;align-items:stretch}
.mthreads li.mt-group{display:block}
.mthreads li>.mt-chk{padding-left:6px}
.mthreads li>button{flex:1;min-width:0}
.mthreads li.unread>.mt-chk{background:color-mix(in srgb,var(--surface) 70%,var(--accent-soft))}
.mthreads li.on>.mt-chk{background:var(--blue-soft)}
.mthreads li.sel>.mt-chk,.mthreads li.sel>button{background:#c2dbff55}
.mm-others{font-size:12px;font-weight:650;color:var(--ink-3,#8a8a8a);text-transform:uppercase;letter-spacing:.04em;padding:14px 0 6px;border-top:1px solid var(--line);margin-top:8px}
.lp-list{max-height:min(60vh,520px);overflow:auto;margin-top:10px;display:flex;flex-direction:column}
.lp #lpQ{width:100%}
.lp-row{display:flex;align-items:center;gap:8px;border:0;background:none;text-align:left;padding:8px 10px;border-radius:6px;cursor:pointer;color:var(--ink)}
.lp-row:hover{background:var(--sunken)}
.lp-row .ico{width:15px;height:15px;color:var(--ink-3,#8a8a8a)}
.mail-acct .ma-btns{display:flex;gap:6px;flex-wrap:wrap}
/* Signature editor */
.sig-tb{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;border:1px solid var(--line);border-bottom:0;border-radius:8px 8px 0 0;background:var(--sunken)}
.sig-tb button,.sig-tb select,.sig-tb label{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:4px 9px;cursor:pointer;font-size:13px;display:inline-flex;align-items:center;gap:5px;color:var(--ink)}
.sig-tb .sig-col input{width:22px;height:18px;border:0;padding:0;background:none}
.sig-tb .ico{width:15px;height:15px}
.sig-box{min-height:180px;max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:0 0 8px 8px;padding:12px;background:#fff;color:#202124;font:13px/1.45 Arial,Helvetica,sans-serif}
.sig-box img{max-width:100%}
.sig-ed .actions{display:flex;gap:8px;align-items:center;margin-top:12px}
/* Compose: signature preview, several windows */
.cx-sigview iframe{width:100%;height:150px;border:0;border-top:1px dashed var(--line);margin-top:4px;background:#fff}
.compose{transition:right .15s}
.compose.min{width:260px!important}

/* Project Lists */
.pl-list{display:flex;flex-direction:column;gap:10px;padding:4px 18px 14px}
.pl-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);overflow:hidden}
.pl-head{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:12px 14px;cursor:pointer;text-align:left;color:var(--ink)}
.pl-head:hover{background:var(--sunken)}
.pl-card.open>.pl-head{border-bottom:1px solid var(--line);background:var(--sunken)}
.pl-caret{display:grid;place-items:center;width:20px;color:var(--ink-3,#8a8a8a)}
.pl-caret .ico{width:14px;height:14px;transition:transform .15s}
.pl-card.open .pl-caret .ico{transform:rotate(90deg)}
.pl-name{flex:1;min-width:0;display:flex;flex-direction:column}
.pl-name small{color:var(--ink-3,#8a8a8a);font-size:12px}
.pl-n{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.pl-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}

/* Management dashboard: one strip per project */
.mg-strips{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.mg-strip{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1fr 1fr 1fr 1fr;width:100%;text-align:left;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm,0 1px 2px rgba(0,0,0,.04));padding:0;cursor:pointer;overflow:hidden}
.mg-strip:disabled{cursor:default}
button.mg-strip:hover{border-color:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.mg-strip.mg-total{background:var(--sunken);cursor:default}
.mgs-t{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-left:1px solid var(--line);min-width:0}
.mgs-t:first-child{border-left:0}
.mgs-t .eyebrow{font-size:12.5px;color:var(--ink-2)}
.mgs-t>b{font-size:21px;font-weight:750;letter-spacing:-.01em;line-height:1.2;font-variant-numeric:tabular-nums}
.mgs-name>b{font-size:16px;line-height:1.3}
.mgs-name .hchip{align-self:flex-start;margin-top:2px}
.mgs-t small{font-size:12px;color:var(--ink-3,#8a8a8a);line-height:1.35}
.mgs-t .mg-track{flex:none;height:8px;width:100%;margin:4px 0 2px;background:var(--line)}
.mgs-t .neg{color:var(--bad,#c0392b)}
@media (max-width:1100px){.mg-strip{grid-template-columns:repeat(4,1fr)}.mgs-t:nth-child(5){border-left:0}.mgs-t:nth-child(n+5){border-top:1px solid var(--line)}}
@media (max-width:640px){.mg-strip{grid-template-columns:1fr 1fr}.mgs-name{grid-column:1/-1}.mgs-t{border-left:0;border-top:1px solid var(--line)}.mgs-t:first-child{border-top:0}.mgs-t:nth-child(odd):not(:first-child){border-left:1px solid var(--line)}}
@media print{.mg-strip{break-inside:avoid;box-shadow:none}}
/* Drawing register: revisions issued after NTP nested under the contract issue */
.dw-reg tr.dw-has td{border-bottom-color:transparent}
.dw-reg tr.dw-sub td{background:var(--sunken);font-size:13px;padding-top:6px;padding-bottom:6px}
.dw-reg tr.dw-sub td:first-child{padding-left:22px}
.dw-reg .dw-arrow{color:var(--muted);font-weight:700}
.dv-revs li.dv-after button{margin-left:14px;width:calc(100% - 14px)}
.sov-mv .iconbtn.sov-ins{font-size:15px;font-weight:700;color:var(--accent)}
/* Look-ahead rows follow the full schedule: ID, outline, summary headings; look-ahead details nested */
.la{min-width:1100px}
.la .la-id{width:38px;font-size:11.5px;color:var(--muted);font-family:var(--mono,monospace)}
.la .la-u{width:50px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.la .la-name{width:260px}
.la .la-nw{display:flex;align-items:center;gap:4px;min-width:0}
.la .la-nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.la tbody .la-name{display:table-cell}
.la tr.la-sum .la-name{font-weight:700;color:var(--ink)}
.la tr.la-sum td,.la tr.la-sum th{background:color-mix(in srgb,var(--sunken) 70%,var(--surface))!important}
.la tr.la-det .la-name{font-weight:400;color:var(--ink-2);font-style:italic}
.la tr.la-det td,.la tr.la-det th{background:color-mix(in srgb,var(--accent-soft) 35%,var(--surface))!important}
.la .la-tag{color:var(--accent);font-style:normal;font-weight:700;margin-right:5px}
.la-c i.sum{background:var(--ink-2);height:6px;top:14px}
.la-add{all:unset;cursor:pointer;flex:none;width:18px;height:18px;line-height:18px;text-align:center;border-radius:5px;color:var(--accent);font-weight:700;font-size:14px;opacity:.35;margin-left:4px}
.la tr:hover .la-add,.la-add:focus-visible{opacity:1;background:var(--accent-soft)}
@media print{.la-add{display:none}}
.la .la-tools{display:flex;gap:1px;flex:none}
.la .la-tools .la-add{font-size:11px;width:17px}
.la .la-tools .la-add[data-ladd]{font-size:14px}
.la .la-tools .la-add[data-arm]{opacity:1;width:auto;padding:0 5px;background:var(--bad);color:#fff;font-size:11px}
.la .la-name{width:300px}
.la tr:not(:hover):not(:focus-within) .la-tools .la-add[data-lamv]:not([data-arm]){display:none}
form label.chk{flex-direction:row!important;display:flex;align-items:center;gap:8px;font-weight:500}form label.chk[hidden]{display:none}form label.chk input{width:auto;margin:0}
.pl-ntf{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);white-space:nowrap;cursor:pointer}.pl-ntf input{margin:0}tr.dim .pl-ntf{opacity:.45}
.pa-pick{display:flex;flex-direction:row;align-items:center;gap:10px;text-align:left}.pa-pick .person{cursor:pointer}.pa-pick input{margin:0}.pa-t td{vertical-align:middle}
.pa-t td{text-align:left!important}.pa-t .pa-pick{justify-content:flex-start;width:100%}.pa-t .pa-pick input[type=checkbox]{width:18px!important;height:18px;flex:none;margin:0}.pa-t .pa-pick .person{flex:1;justify-content:flex-start;text-align:left}.pa-t select{width:100%}.pa-t th:last-child,.pa-t td:last-child{width:260px}

/* Ask AI */
.ai-fab{position:fixed;right:20px;bottom:20px;z-index:35;display:flex;align-items:center;gap:8px;padding:11px 18px 11px 14px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:650;cursor:pointer;box-shadow:var(--shadow-lg)}
.ai-fab .ico{width:20px;height:20px}
.ai-fab:hover{filter:brightness(1.07)}
.ai-fab:focus-visible{outline:3px solid var(--accent-soft);outline-offset:2px}
.ai-box{position:fixed;inset:0;margin:auto;z-index:38;width:min(860px,calc(100vw - 48px));height:min(760px,calc(100vh - 64px));display:flex;flex-direction:column;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);overflow:hidden}
.ai-box[hidden],.ai-fab[hidden]{display:none}
.ai-box header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line)}
.ai-box header>div{display:flex;align-items:center;gap:6px;min-width:0}
.ai-box header>div:first-child{flex-direction:column;align-items:flex-start;gap:0}
.ai-box header b{display:flex;align-items:center;gap:6px}
.ai-box header b .ico{width:18px;height:18px;color:var(--accent)}
.ai-box header small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}
.ai-log{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--canvas)}
.ai-m{max-width:92%;padding:9px 12px;border-radius:12px;line-height:1.5;font-size:14px;overflow-wrap:anywhere}
.ai-m.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);white-space:pre-wrap;border-bottom-right-radius:4px}
.ai-m.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.ai-m.bad{align-self:flex-start;background:var(--surface);border:1px solid var(--bad);color:var(--bad)}
.ai-m p{margin:0 0 6px}.ai-m p:last-of-type{margin-bottom:0}
.ai-m ul,.ai-m ol{margin:4px 0 6px;padding-left:20px}
.ai-m h4{margin:8px 0 4px;font-size:14px}
.ai-m code{background:var(--sunken);padding:0 4px;border-radius:4px;font-size:13px}
.ai-copy{display:block;margin-top:6px;font-size:12px}
.ai-hi{display:flex;flex-direction:column;gap:8px}
.ai-hi p{margin:0;color:var(--ink-2);font-size:14px}
.ai-hi .note{font-size:12px;color:var(--muted)}
.ai-sug{all:unset;cursor:pointer;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:13.5px}
.ai-sug:hover{border-color:var(--accent)}
.ai-sug:focus-visible{outline:2px solid var(--accent)}
.ai-in{display:flex;gap:8px;padding:10px;border-top:1px solid var(--line);align-items:flex-end}
.ai-in textarea{flex:1;resize:none;min-height:42px;max-height:140px;font:inherit;font-size:14px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink)}
.ai-foot{padding:0 12px 8px;font-size:11.5px;color:var(--muted)}
.ai-dots{display:inline-flex;gap:3px;margin-right:6px}
.ai-dots i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:aidot 1s infinite}
.ai-dots i:nth-child(2){animation-delay:.15s}.ai-dots i:nth-child(3){animation-delay:.3s}
@keyframes aidot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (max-width:960px){
  .ai-fab{bottom:84px;right:12px;padding:10px 14px 10px 12px}
  .ai-box{inset:0;width:auto;height:auto;border-radius:0;border:0}
}
@media print{.ai-fab,.ai-box{display:none!important}}
a.btn{text-decoration:none}

/* HR */
.hr-kpi{all:unset;cursor:pointer;padding:16px 20px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:2px;min-width:0}
.hr-kpi:first-child{border-left:0}
.hr-kpi:hover{background:var(--sunken)}
.hr-kpi.on{box-shadow:inset 0 -3px 0 var(--accent)}
.hr-kpi:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.hr-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px}
.hr-tabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);padding:9px 14px;border-radius:10px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.hr-tabs button .ico{width:17px;height:17px}
.hr-tabs button[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.hr-how{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12.5px;color:var(--muted)}
.hr-how span{display:inline-flex;align-items:center;gap:5px}
.hr-how i{font-style:normal;width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-grid;place-items:center;font-size:11px;font-weight:700}
.hr-how b{color:var(--line-strong);font-weight:400}
.hr-files ul,.hr-hist ul{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}
.hr-files li{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hr-files a{display:inline-flex;align-items:center;gap:6px}
.hr-files a .ico{width:16px;height:16px}
.hr-hist li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hr-check{display:flex;flex-direction:column;gap:6px}
#hrQ{border:1px solid var(--line-strong);border-radius:8px;padding:9px 11px;min-width:220px;background:var(--surface);color:var(--ink);font:inherit;font-size:13.5px}
#hrF .actions,#hhF .actions{justify-content:flex-end}
@media (max-width:640px){#hrQ{min-width:0;width:100%}}
@media (max-width:960px){.hr-kpis{--kc:2!important}.hr-kpi:nth-child(odd){border-left:0}.hr-kpi{border-top:1px solid var(--line)}}
.hr-files label.btn{display:inline-flex;width:auto;align-self:flex-start}
.hr-br{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.hr-br>span{font-size:12.5px;font-weight:650;color:var(--muted);margin-right:4px;text-transform:uppercase;letter-spacing:.04em}
.hr-br button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);padding:6px 12px;border-radius:999px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.hr-br button small{font-size:11.5px;color:var(--muted);font-weight:600}
.hr-br button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.hr-br button[aria-pressed="true"] small{color:inherit;opacity:.75}
.hr-bcards{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:12px;margin:0 0 16px}
.hr-bcard{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.hr-bcard:hover{border-color:var(--line-strong)}
.hr-bcard.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent),var(--shadow)}
.hr-bcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.hr-bname{font-size:13px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}
.hr-bcard>b{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:4px}
.hr-bcard>small{color:var(--muted);font-size:12.5px}
.hr-bd{display:flex;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.hr-bd span{flex:1;display:flex;flex-direction:column;font-size:11.5px;color:var(--muted);min-width:0}
.hr-bd i{font-style:normal;font-size:17px;font-weight:700;color:var(--ink)}
.hr-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--sunken);color:var(--ink-2);font-size:11.5px;font-weight:700;margin-left:2px}
.hr-badge.warn{background:var(--bad);color:#fff}
.hr-tabs button[aria-selected="true"] .hr-badge{background:rgb(255 255 255 / .25);color:inherit}
@media (max-width:1100px){.hr-bcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.hr-bcards{grid-template-columns:repeat(2,minmax(0,1fr))}.hr-bcards .hr-bcard:first-child{grid-column:1/-1}}
a.lg-cta{text-decoration:none;color:inherit;border-radius:12px}a.lg-cta:hover b{text-decoration:underline}
/* HR employee sheet */
.hr-emp .hr-head{display:flex;gap:16px;align-items:center}
.hr-emp .hr-head>div:last-child{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.hr-emp .hr-head b{font-size:18px}
.hr-emp .hr-head small{color:var(--muted)}
.hr-photo{width:84px;height:84px;border-radius:14px;overflow:hidden;background:var(--sunken);display:grid;place-items:center;flex:none;border:1px solid var(--line)}
.hr-photo img{width:100%;height:100%;object-fit:cover}
.hr-photo .ico{width:34px;height:34px;color:var(--muted)}
.hr-sec{border:1px solid var(--line);border-radius:12px;padding:10px 14px 14px;margin:0}
.hr-sec legend{font-weight:700;color:var(--ink-2);padding:0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.hr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 12px}
.hr-grid .span2{grid-column:span 2}
@media (max-width:760px){.hr-grid{grid-template-columns:1fr 1fr}.hr-grid .span2{grid-column:1/-1}}
@media (max-width:480px){.hr-grid{grid-template-columns:1fr}}
.hr-st button{padding:6px 10px;font-size:12.5px}
.hr-sets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 18px 14px}
.hr-set{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.hr-set-h b{display:block;font-size:15px}.hr-set-h small{color:var(--muted);font-size:12px}
.hr-set ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.hr-set li{display:flex;align-items:center;gap:8px;min-width:0}
.hr-set li>span:not(.avatar){flex:1;min-width:0}.hr-set li>span b{display:block;font-size:13.5px}.hr-set li>span small{display:block;color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.hr-set select{border:1px dashed var(--line-strong);border-radius:8px;padding:7px 8px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px}
@media (max-width:1000px){.hr-sets{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.hr-sets{grid-template-columns:1fr}}
.hi-skip{margin:6px 0 0;padding-left:18px;font-size:13px;color:var(--ink-2);max-height:180px;overflow:auto}
.nowrap{white-space:nowrap}

/* HR employee form: compact */
.modal.wide:has(.hr-emp){width:min(1180px,100%)}
.hr-emp{gap:8px 14px!important}
.hr-emp label{font-size:12px;gap:2px}
.hr-emp .hr-grid input,.hr-emp .hr-grid select,.hr-docs input{padding:4px 8px;font-size:13px;height:30px}
.hr-sec{padding:6px 12px 10px}
.hr-sec legend{font-size:11.5px}
.hr-emp .hr-photo{width:64px;height:64px}
.hr-docs{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(130px,1fr) 140px 140px minmax(200px,1.4fr);border:1px solid var(--line);border-radius:8px;margin-top:8px;overflow:hidden}
.hr-docs-h,.hr-docs-r{display:contents}
.hr-docs-h span{background:var(--sunken);font-size:11.5px;font-weight:650;color:var(--muted);padding:6px 8px;text-transform:uppercase;letter-spacing:.03em}
.hr-docs-r>span{padding:5px 8px;border-top:1px solid var(--line);display:flex;align-items:center;gap:6px;min-width:0;font-size:13px}
.hr-docs-l{font-weight:600}
.hr-docs .hr-vt{width:90px;flex:none}
.hr-docs-a{flex-wrap:wrap}
.hr-att{display:inline-flex;align-items:center;gap:2px;max-width:100%;background:var(--sunken);border-radius:6px;padding:2px 4px 2px 6px}
.hr-att a{display:inline-flex;align-items:center;gap:4px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px}
.hr-att a .ico{width:14px;height:14px;flex:none}
.hr-att .linkbtn{font-size:15px;line-height:1;padding:0 3px}
.hr-docs-a .btn.sm{padding:3px 8px;font-size:12px}
@media (max-width:820px){.hr-docs{grid-template-columns:1fr 1fr}.hr-docs-h{display:none}.hr-docs-r>span:first-child{grid-column:1/-1;background:var(--sunken)}}
.hr-emp .hr-files{border:1px solid var(--line);border-radius:12px;padding:6px 12px 10px;margin:0}.hr-emp .hr-files legend{font-size:11.5px;font-weight:700;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em;padding:0 6px}
.hr-emp input.ro{background:var(--sunken);color:var(--ink);font-weight:600;cursor:default}

.ai-scrim{display:none!important}
.ai-scrim[hidden]{display:none}
.ai-box .ai-log{padding:20px 24px}
.ai-box .ai-m{font-size:15px;max-width:85%}
.ai-box .ai-in{padding:12px 16px}
.ai-box .ai-in textarea{font-size:15px;min-height:52px}
@media (max-width:960px){.ai-box{transform:none}}

.ai-box header{cursor:move;user-select:none}
.ai-box.dragging{opacity:.96}
.ai-box{box-shadow:0 18px 60px rgb(16 24 32 / .28),0 2px 6px rgb(16 24 32 / .12)}
.ai-solo .ai-box{inset:0;margin:0;width:auto;height:auto;border-radius:0;border:0;transform:none!important}
.ai-solo .ai-box header{cursor:default}
.ai-solo #aiPop{display:none}
/* HR: folders and editable lists */
.hr-folder{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);border-radius:8px;padding:3px 10px 3px 8px;font:inherit;font-size:12.5px;cursor:pointer}
.hr-folder .ico{width:17px;height:17px;color:var(--muted)}
.hr-folder.has .ico{color:var(--warn)}
.hr-folder.has{color:var(--ink);font-weight:600}
.hr-folder[aria-expanded="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
.hr-fold{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;padding:10px 12px;background:var(--canvas);border-top:1px solid var(--line)}
.hr-fold[hidden]{display:none}
.hr-fold-files ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.hr-fold-files li{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 10px;min-width:0}
.hr-fold-files li a{display:flex;align-items:center;gap:6px;flex:1;min-width:0;text-decoration:none;color:var(--ink);font-size:13px}
.hr-fold-files li a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hr-fold-files li a:hover span{text-decoration:underline}
.hr-fold-files li a .ico{width:16px;height:16px;flex:none;color:var(--muted)}
.hr-fold-files small{color:var(--muted);font-size:11.5px;white-space:nowrap}
.hr-fold-note{display:flex;flex-direction:column;gap:3px;font-size:12px}
.hr-fold-note textarea{font-size:13px;min-height:70px}
@media (max-width:760px){.hr-fold{grid-template-columns:1fr}}
.hr-lab{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.hr-lab .linkbtn{font-size:11.5px;font-weight:600}
.hr-listed{grid-column:1/-1;border:1px solid var(--accent);border-radius:10px;padding:10px 12px;background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.hr-listed[hidden]{display:none}
.hr-listed-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.hr-listed ul{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:6px 14px;max-height:220px;overflow:auto}
.hr-listed li{display:flex;align-items:center;gap:6px}
.hr-listed li input{flex:1;height:28px;padding:3px 8px;font-size:13px}
.hr-listed li .btn.sm{padding:3px 8px;font-size:12px}
.hr-listed-add{display:flex;gap:6px;max-width:460px}
.hr-listed-add input{flex:1;height:30px;padding:4px 8px;font-size:13px}
/* Photos: one folder per day (YYYYMMDD) */
.pfolders{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;padding:14px 18px 4px}
.pfolder{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:12px;padding:8px 8px 10px;background:var(--surface);transition:border-color .12s,box-shadow .12s}
.pfolder:hover{border-color:var(--accent);box-shadow:var(--shadow)}
.pfolder:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pf-cover{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:3px;height:120px;border-radius:8px;overflow:hidden;background:var(--sunken)}
.pf-cover img{width:100%;height:100%;object-fit:cover;display:block}
.pf-cover img:first-child{grid-row:1/3}
.pf-cover img:only-child{grid-column:1/3}
.pf-cover:has(img:nth-child(2):last-child) img:nth-child(2){grid-row:1/3}
.pf-name{display:flex;align-items:center;gap:6px;padding:0 4px}
.pf-name .ico{width:18px;height:18px;color:var(--warn)}
.pf-name b{font-size:15px;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.pfolder>small{padding:0 4px;color:var(--muted);font-size:12px}
.pf-bar{display:flex;align-items:center;gap:12px;padding:12px 18px 0;flex-wrap:wrap}
.pf-crumb{display:flex;align-items:center;gap:6px}
.pf-crumb .ico{width:18px;height:18px;color:var(--warn)}
.pf-crumb small{color:var(--muted);margin-left:4px}
@media (max-width:600px){.pfolders{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:10px 14px}.pf-cover{height:96px}}
.hr-other .hr-other-bar{display:flex;align-items:center;gap:8px}
.hr-other .hr-fold{margin:8px -12px -10px;border-radius:0 0 12px 12px}
.ai-src{display:flex;align-items:center;gap:5px;margin-top:6px;color:var(--muted);font-size:11.5px}.ai-src .ico{width:13px;height:13px}
.ai-tw{overflow:auto;margin:6px 0}.ai-tw table{border-collapse:collapse;font-size:13.5px}.ai-tw th,.ai-tw td{border:1px solid var(--line);padding:4px 10px;text-align:left}.ai-tw th{background:var(--sunken);font-weight:650}

/* Purchase orders */
.po-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px 18px 2px; }
.po-stats > div { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: var(--surface); display: flex; flex-direction: column; gap: 2px; }
.po-stats span { font-size: 12px; color: var(--muted); } .po-stats b { font-size: 18px; } .po-stats small { color: var(--muted); font-size: 12px; }
.po-form .po-sec { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px 12px; margin: 0; }
.po-form .po-sec legend { font-weight: 600; padding: 0 6px; }
.po-form .po-w2 { grid-column: span 2; }
.po-items table { width: 100%; border-collapse: collapse; }
.po-items th { text-align: left; font-size: 12px; color: var(--muted); font-weight: 600; padding: 4px; border-bottom: 1px solid var(--line); }
.po-items td { padding: 3px 4px; vertical-align: top; }
.po-items th:nth-child(1) { width: auto; } .po-items th:nth-child(2) { width: 80px; } .po-items th:nth-child(3) { width: 84px; } .po-items th:nth-child(4) { width: 110px; } .po-items th:nth-child(5) { width: 110px; } .po-items th:nth-child(6) { width: 36px; }
.po-items input, .po-items textarea { width: 100%; box-sizing: border-box; margin: 0; }
.po-items textarea { resize: none; overflow: hidden; min-height: 34px; }
.po-items .po-q, .po-items .po-p { text-align: right; }
.po-items .po-a { padding-top: 10px; white-space: nowrap; }
.po-items > .btn { margin-top: 6px; }
.po-tot { margin: 8px 0 0 auto; width: min(100%, 360px); display: grid; gap: 4px; }
.po-tot > div { display: grid; grid-template-columns: 1fr 90px 110px; gap: 8px; align-items: center; }
.po-tot > div > span, .po-tot label { grid-column: 1 / 3; font-size: 13px; color: var(--muted); display: block; text-align: right; }
.po-tot > div > label { grid-column: 1; } .po-tot input { text-align: right; margin: 0; }
.po-tot b { text-align: right; } .po-tot .po-grand { border-top: 2px solid var(--line); padding-top: 6px; } .po-tot .po-grand span { color: var(--ink); font-weight: 600; } .po-tot .po-grand b { font-size: 16px; }
.po-show-h { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; } .po-show-h > b { font-size: 18px; } .po-show-t { margin-left: auto; font-size: 18px; font-weight: 700; }
.po-show-g { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 10px; }
.po-lines .po-sumrow td { border-top: 0; color: var(--muted); } .po-lines .po-sumrow.grand td { font-weight: 700; color: var(--ink); border-top: 2px solid var(--line); }
@media (max-width: 760px) {
  .po-stats { grid-template-columns: 1fr; } .po-form .po-sec { grid-template-columns: 1fr 1fr; } .po-show-g { grid-template-columns: 1fr; }
  .po-items thead { display: none; } .po-items tr { display: grid; grid-template-columns: 1fr 1fr 1fr 36px; gap: 4px; border-bottom: 1px solid var(--line); padding: 6px 0; }
  .po-items td:first-child { grid-column: 1 / -1; } .po-items .po-a { grid-column: 1 / 4; text-align: right; padding-top: 0; }
}
.po-supact { display: flex; align-items: flex-end; gap: 10px; padding-bottom: 2px; }
.po-supcard { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 14px; color: var(--ink-2); }
.po-supcard:empty { display: none; }
.sup-card { border: 1px solid var(--line-strong); border-radius: 10px; padding: 10px 12px 12px; background: var(--sunken); }
.sup-card h3 { margin: 0 0 8px; font-size: 15px; }
.sup-ed { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
.sup-ed .po-w2 { grid-column: span 2; }
.sup-act { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; }
.sup-mgr .sup-bar { margin-bottom: 4px; }
.sup-bar { display: flex; gap: 10px; } .sup-bar input { flex: 1; margin: 0; }

@media (max-width: 760px) { .sup-ed { grid-template-columns: 1fr 1fr; } }

/* HR timesheets */
.ts-bar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--line); }
.ts-per { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ts-pp { display: flex; flex-direction: column; min-width: 190px; text-align: center; } .ts-pp b { font-size: 16px; }
.ts-br { display: inline-flex; }
.ts-jump { display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); } .ts-jump input { margin: 0; width: auto; }
.ts-sum { display: flex; gap: 16px; font-size: 13px; color: var(--muted); } .ts-sum b { color: var(--ink); font-size: 15px; }
.ts-form .ts-top { display: flex; gap: 22px; flex-wrap: wrap; align-items: flex-end; }
.ts-top > div { display: flex; flex-direction: column; } .ts-top > div > b { font-size: 16px; } .ts-top small { color: var(--muted); }
.ts-fill { flex-direction: row !important; align-items: center; gap: 6px; flex-wrap: wrap; margin-left: auto; padding: 6px 8px; border: 1px dashed var(--line-strong); border-radius: 8px; }
.ts-fill input, .ts-fill select { margin: 0; width: auto; padding: 4px 6px; }
.ts-grid table { width: 100%; border-collapse: collapse; }
.ts-grid th { font-size: 12px; color: var(--muted); text-align: left; padding: 4px; border-bottom: 1px solid var(--line); }
.ts-grid td { padding: 2px 4px; border-bottom: 1px solid var(--line); }
.ts-grid input, .ts-grid select { margin: 0; padding: 4px 6px; width: 100%; box-sizing: border-box; min-width: 0; }
.ts-grid input[type=time] { width: 122px; }
.ts-grid select { min-width: 130px; } .ts-grid input[data-f=remarks] { min-width: 120px; }
.ts-grid .ts-we td { background: var(--sunken); }
.ts-grid .ts-wk td { font-weight: 700; font-size: 12px; color: var(--accent); padding-top: 8px; border-bottom: 0; }
.ts-grid .ts-h, .ts-grid .ts-r { font-variant-numeric: tabular-nums; } .ts-grid .ts-o { color: var(--bad); font-weight: 600; }
.ts-tot { display: flex; gap: 22px; flex-wrap: wrap; justify-content: flex-end; font-size: 14px; } .ts-tot .ts-grand { font-size: 15px; } .ts-tot b { color: var(--accent); }
.ts-codes { width: 100%; } .ts-codes input { margin: 0; width: 100%; }
.ts-logo-row { display: flex; align-items: center; gap: 12px; margin-top: 6px; } .ts-logo-row img { width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.ts-hb { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; border: 1px solid var(--line); border-radius: 10px; padding: 6px 12px 10px; margin: 0; } .ts-hb legend { font-weight: 600; padding: 0 6px; }
@media (max-width: 760px) { .ts-hb { grid-template-columns: 1fr; } .ts-fill { margin-left: 0; } }

/* Search box in a module log's filter bar (RFIs, submittals) */
.cf-tools { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cf-search { position: relative; display: flex; align-items: center; }
.cf-search > .ico { position: absolute; left: 10px; width: 16px; height: 16px; color: var(--muted); pointer-events: none; }
.cf-search input { margin: 0; padding-left: 32px; padding-right: 30px; width: 240px; }
.cf-search .iconbtn { position: absolute; right: 4px; }
@media (max-width: 760px) { .cf-search, .cf-search input { width: 100%; } .cf-tools { width: 100%; } }
.cf-search input::-webkit-search-cancel-button { display: none; }

/* AI balance and consumption */
.ai-bal { display: grid; grid-template-columns: 1.4fr 1fr auto; gap: 12px; align-items: center; margin: 0 18px 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--sunken); }
.ai-bal > div { display: flex; flex-direction: column; gap: 2px; } .ai-bal b { font-size: 22px; } .ai-bal small { color: var(--muted); font-size: 12px; }
.ai-bal-act { flex-direction: row !important; gap: 8px !important; flex-wrap: wrap; justify-content: flex-end; }
.ai-prices { display: grid; gap: 8px; border: 1px solid var(--line); border-radius: 10px; padding: 6px 12px 10px; margin: 0; } .ai-prices legend { font-weight: 600; padding: 0 6px; }
.ai-prices > div { display: grid; grid-template-columns: 1fr 110px 110px; gap: 10px; align-items: end; } .ai-prices input { margin: 0; }
.ai-use { display: grid; gap: 12px; padding: 14px 18px; } .ai-use .seg-switch { justify-self: start; }
@media (max-width: 760px) { .ai-bal { grid-template-columns: 1fr; } .ai-bal-act { justify-content: flex-start; } .ai-prices > div { grid-template-columns: 1fr 1fr; } .ai-prices > div > span { grid-column: 1 / -1; } }
.ts-t { display: flex; flex-direction: column; gap: 2px; }
.ts-nd { display: flex; flex-direction: row !important; align-items: center; gap: 4px; font-size: 11px; color: var(--muted); white-space: nowrap; margin: 0; } .ts-nd input { width: auto !important; margin: 0; padding: 0; }
.ts-rep-f { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; } .ts-rep-f input { margin: 0; } .ts-rep-f .note { flex: 1; min-width: 220px; }
.ts-rep .ts-sub td { background: var(--sunken); }
/* Payroll */
.pay-top { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; } .pay-top label { margin: 0; } .pay-top input { margin: 0; width: auto; } .pay-top .note { flex: 1 1 100%; margin: 0; }
.pay-t .pay-in { width: 84px; margin: 0; padding: 4px 6px; text-align: right; } .pay-t .pay-in.man { border-color: var(--warn); background: #fff8e6; } .pay-t .pay-in.need { border-color: var(--bad); }
.pay-t td, .pay-t th { white-space: nowrap; }

/* Product Check Compliance */
.pcc-box { border: 1px solid var(--line); border-radius: 10px; padding: 6px 12px 10px; margin: 0; } .pcc-box legend { font-weight: 600; padding: 0 6px; }
.pcc-pick { max-height: 190px; overflow: auto; display: grid; gap: 2px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 8px; background: var(--surface); margin-bottom: 6px; }
.pcc-pick .chk { display: flex; flex-direction: row; gap: 8px; align-items: flex-start; margin: 0; font-weight: 400; } .pcc-pick input { width: auto; margin: 3px 0 0; }
.pcc-q { margin: 0 0 6px; } .pcc-up { margin-top: 2px; }
.pcc-run { display: flex; gap: 14px; align-items: center; padding: 18px; border: 1px dashed var(--line-strong); border-radius: 10px; }
.pcc-spin, .pcc-run .spin { width: 26px; height: 26px; border-radius: 50%; border: 3px solid var(--line); border-top-color: var(--accent); animation: pccspin 0.9s linear infinite; flex: none; display: inline-block; }
@keyframes pccspin { to { transform: rotate(360deg); } }
.pcc-head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .pcc-head b { font-size: 16px; }
.pcc-sum { background: var(--sunken); border-radius: 10px; padding: 10px 12px; line-height: 1.5; }
.pcc-meta { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 13px; }
.pcc-t td { vertical-align: top; } .pcc-t tr.pcc-bad td:first-child { box-shadow: inset 3px 0 0 var(--bad); } .pcc-t tr.pcc-warn td:first-child { box-shadow: inset 3px 0 0 var(--warn); }
.pcc-h3 { font-size: 14px; margin: 4px 0 6px; } .pcc-q2 { margin: 0; padding-left: 20px; display: grid; gap: 3px; }
.pcc-up { display: inline-flex !important; width: auto !important; flex-direction: row !important; }
.ti-err { max-height: 340px; overflow: auto; margin-top: 8px; }
.ts-selc { width: 34px; text-align: center; } .ts-selc input { width: auto; margin: 0; }
tbody tr.ts-on, tbody tr.ts-on:hover { background: color-mix(in srgb, var(--blue) 14%, transparent); }
tbody tr[data-tssheet] { user-select: none; }
.ts-hint { color: var(--muted, #6b7280); }
/* Settings: email and Google Drive side by side, compact */
.set-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;margin-bottom:20px}
.set-row>.panel{margin:0;display:flex;flex-direction:column}
.set-row .panel-h{flex-wrap:wrap;gap:8px;padding:12px 16px}
.set-row .panel-h h2{font-size:15px}
.set-row .panel-h .sub{font-size:12px}
.set-row .head-actions{flex-wrap:wrap;gap:6px}
.set-row .head-actions .btn{padding:5px 10px;font-size:12.5px}
.set-row .email-stat{padding:10px 16px;font-size:12.5px;gap:8px;align-items:flex-start}
.set-row .email-err{margin:0 16px 10px}
.set-row .note{font-size:12px}
@media (max-width:900px){.set-row{grid-template-columns:1fr}}
/* Branch details */
.br-wrap{display:flex;gap:16px;align-items:flex-start;padding:4px 18px 14px}
.br-logo{flex:0 0 72px;height:72px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:10px;background:#fff}
.br-logo img{max-width:64px;max-height:64px}
.br-t{flex:1;min-width:0}
.br-f{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:10px}
.br-f legend{font-weight:600}
@media (max-width:700px){.br-wrap{flex-direction:column}.br-f{grid-template-columns:1fr}}
.ts-rnote{margin:0;padding:8px 18px 0;font-size:12.5px}
.ts-hrs{width:62px;padding:3px 4px;text-align:right}.ts-hrs:disabled{background:transparent;border-color:transparent;color:var(--ink);opacity:1}
.ts-more{display:flex;gap:12px;align-items:center;justify-content:center;padding:12px 18px}

.dup-list{display:grid;gap:14px;max-height:62vh;overflow:auto}
.dup-g{border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.dup-g h3{margin:0 0 6px;font-size:14px}
.dup-a{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:8px}
.dup-ok{margin:0;display:flex;gap:6px;align-items:center;color:var(--green,#1a7f37)}
.dup-wrap{padding:14px 18px}
/* Management dashboard: Projects / Workforce tabs and the workforce cards */
.mg-tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--line)}
.mg-tab{all:unset;cursor:pointer;padding:9px 14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.mg-tab small{font-weight:400;font-size:12px;color:var(--muted)}
.mg-tab.on{color:var(--ink);border-bottom-color:var(--accent)}
.mg-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mg-wcards{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));align-items:start;gap:12px;margin:0 0 16px}
.mg-wcard{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0}
.mg-wcard:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mg-wtot{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}
.mg-wh{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.mg-wn b{display:block;font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.15;margin-top:4px}
.mg-wn small,.mg-wsec small{display:block;color:var(--muted);font-size:12px}
.mg-wsec{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
.mg-wsec b{display:block;font-size:17px;font-weight:700;margin:2px 0}
@media (max-width:1100px){.mg-wcards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.mg-wcards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.mg-wcards{grid-template-columns:1fr}}
@media print{.mg-tabs{display:none!important}}
.mg-occ{list-style:none;margin:6px 0 4px;padding:0;display:flex;flex-direction:column;gap:4px}
.mg-occ li{display:grid;grid-template-columns:minmax(0,1fr) 56px 28px;align-items:center;gap:8px;font-size:12.5px}
.mg-on{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mg-ob{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.mg-ob i{display:block;height:100%;background:var(--accent);border-radius:3px}
.mg-occ b{text-align:right;font-size:13px}
.mg-wsec .linkbtn{font-size:12px}
.hr-bact{display:flex;align-items:center;gap:6px;font-size:12.5px;margin-top:6px;cursor:pointer}
.hr-set.off{opacity:.6;background:var(--bg)}
.hr-set-h .chip{margin-top:6px;display:inline-block}
.hr-dash{margin:0 0 16px}
/* HR registers and lists */
.hrx-k{display:flex;flex-wrap:wrap;gap:10px;padding:12px 18px 4px}
.hrx-k>div{flex:1 1 140px;min-width:0;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.hrx-k b{display:block;font-size:20px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hrx-k small{color:var(--muted);font-size:12px}
.hrx-chips{padding:10px 18px 8px;flex-wrap:wrap}
.hrx-c{text-align:center}.hrx-c input{width:16px;height:16px;cursor:pointer}
.hrx-bar{display:block;height:8px}
tr.hrx-today td{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.hrx-steps{display:flex;flex-wrap:wrap;gap:6px 18px;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.hrx-nm{min-width:190px}
.hr-dash-occ{display:block;columns:4;column-gap:28px;padding:14px 18px;margin:0}
.hr-dash-occ li{break-inside:avoid;margin-bottom:5px;cursor:pointer;border-radius:4px}
.hr-dash-occ li:hover .mg-on{color:var(--accent);text-decoration:underline}
@media (max-width:1200px){.hr-dash-occ{columns:3}}@media (max-width:860px){.hr-dash-occ{columns:2}}@media (max-width:520px){.hr-dash-occ{columns:1}}
.hr-ph{width:44px;padding-right:0!important}
.hr-av{display:inline-flex;width:34px;height:34px;border-radius:50%;overflow:hidden;background:var(--line);align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--muted);vertical-align:middle}
.hr-av img{width:100%;height:100%;object-fit:cover}
/* Settings: cloud storage */
.st-body{padding:14px 18px 16px}
.st-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.st-top b{font-size:22px;font-weight:700}
.st-bar{display:flex;height:14px;border-radius:7px;background:var(--line);overflow:hidden}
.st-bar i{display:block;height:100%}
.st-f{background:var(--accent)}.st-d{background:var(--blue,#2f6fdf)}.st-o{background:#9aa39c}.st-e{background:var(--line)}
.st-leg{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:8px;font-size:12.5px;color:var(--muted)}
.st-leg span{display:inline-flex;align-items:center;gap:6px}.st-leg b{color:var(--ink)}
.st-leg i{display:inline-block;width:10px;height:10px;border-radius:2px}
.st-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:16px}
.st-list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}
.st-list li{display:grid;grid-template-columns:minmax(0,1fr) 60px 64px 44px;gap:8px;align-items:center;font-size:12.5px}
.st-list b{text-align:right;font-size:12.5px}.st-list small{text-align:right;color:var(--muted)}
@media (max-width:900px){.st-cols{grid-template-columns:1fr}}
.bk-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}
.bk-form label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}
.bk-form input{width:110px}
.cf-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:0 18px 10px;padding:8px 12px;border-radius:10px;background:color-mix(in srgb,var(--blue) 10%,transparent)}
.cf-ck{width:34px;padding-right:0!important}.cf-ck input{width:16px;height:16px;cursor:pointer}
.cf-intchip svg,.cf-chips .chipbtn svg{width:13px;height:13px;vertical-align:-2px;margin-right:3px}
/* Project-column timesheet (Saipan) */
.tsp th,.tsp td{padding:4px 5px}
.ts-24{width:64px;text-align:center;font-variant-numeric:tabular-nums}.ts-24.bad{border-color:var(--red,#c0392b);background:color-mix(in srgb,#c0392b 8%,transparent)}
.tsp-h input{width:62px;text-align:right}
.tsp-c{width:96px;max-width:96px;vertical-align:top}
.tsp-c select{display:block;width:92px;max-width:92px;font-size:11.5px;padding:3px 4px}.tsp-c select+select{margin-top:4px}
.tsp-week .seg-switch,.ts-top .seg-switch{flex-direction:row}
.tsp-lab{text-align:left;vertical-align:middle}.tsp-lab small{display:block;font-weight:400;color:var(--muted)}
.tsp-t small{display:block;font-size:10.5px}
.tsp tfoot td{background:var(--bg);font-weight:600}
.ts-dtw{position:relative;display:inline-block}
.ts-dt{width:108px!important;max-width:108px;font-variant-numeric:tabular-nums;padding-left:6px!important;padding-right:4px!important}
.ts-dtw i{position:absolute;left:calc(7px + 5.6ch);top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted);opacity:.55;pointer-events:none;font-variant-numeric:tabular-nums}
.ts-dtw.has-t i{display:none}.ts-dt.bad{border-color:#c0392b;background:color-mix(in srgb,#c0392b 8%,transparent)}
.tsp-c{width:64px;max-width:64px;padding:2px!important;vertical-align:bottom}
.tsp-pj{position:relative;display:flex;align-items:center;justify-content:center;height:118px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer;overflow:hidden}
.tsp-pjn{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11.5px;font-weight:600;line-height:1.15;padding:6px 2px;max-height:112px;overflow:hidden;text-align:center;white-space:normal}
.tsp-pj select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.tsp-c select.tsp-code{display:block;width:64px;max-width:64px;margin-top:4px;font-size:11.5px;padding:3px 2px;text-align:center;text-align-last:center}
.tsp-h input{width:56px}
.tsp td.tsp-tot,.tsp th.tsp-tot{padding-left:12px!important;padding-right:12px!important;white-space:nowrap}
.att li.att-g{display:flex;justify-content:space-between;align-items:center;padding:8px 18px 4px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--bg);border-top:1px solid var(--line);cursor:default}
.att li.att-g:first-child{border-top:0}
.att li.att-g small{font-weight:600;color:var(--muted)}
tr.q-grp td{background:var(--bg);font-size:12.5px}
tr.q-grp td b{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* Purchase order form, compact */
.po-form .po-sec{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 10px;padding:6px 12px 10px}
.po-form .po-w3{grid-column:span 3}
.po-form .po-sec label{font-size:12.5px}
.po-form .po-sec input,.po-form .po-sec select,.po-form .po-sec textarea,.po-items input,.po-items textarea,.po-tot input{padding-top:5px!important;padding-bottom:5px!important;min-height:32px}
.po-form .po-sec textarea{resize:vertical}
.po-supin{display:flex;gap:6px;align-items:center}.po-supin select{flex:1;min-width:0}.po-supin .iconbtn[hidden]{display:none}
.po-items td{padding:2px 4px}.po-items textarea{min-height:32px}
.po-items .po-a{padding-top:8px}
.po-foot{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.po-foot label{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.po-foot .po-tot{margin:0;width:auto}
@media (max-width:900px){.po-form .po-sec{grid-template-columns:1fr 1fr}.po-form .po-w3{grid-column:1/-1}.po-foot{grid-template-columns:1fr}}
.po-eta { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; } .po-eta input { width: auto; margin: 0; padding: 4px 8px; }
.attach.drop-on { outline: 2px dashed var(--accent, #0f7f40); outline-offset: 2px; background: color-mix(in srgb, #0f7f40 8%, transparent); }
/* Submittal: compact, so the whole record and the Send section fit without scrolling. */
.modal form.sub-c{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px}
.sub-c textarea{min-height:0;height:36px;resize:vertical}
.sub-c .attach{padding:8px 12px;gap:6px}
.sub-c .action-box{padding:10px 12px;gap:6px 12px}
.sub-c .action-box h3{font-size:13.5px}
.sub-c .send-opt{padding:6px 8px}
.sub-c .send-opt small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub-c .trans-box{padding-top:6px;gap:6px 12px}
.sub-c .ticks legend{font-size:12.5px}
.sub-c .sig-box{min-height:0;max-height:none;overflow:visible;padding:8px 10px;gap:4px}
.sub-c .sig-draw canvas{max-width:360px}
.sub-c .sig-saved img{height:44px}
.sub-c .gen-box ul{margin:0}
.sub-c .trans-box{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start}
.sub-c .trans-box>label[for="subPurp"],.sub-c .trans-box>.tick,.sub-c .trans-box>label[for="subDevNote"]{grid-column:1}
.sub-c .trans-box>.tick{align-self:start!important}
.sub-c .trans-box>#sigBox{grid-column:2;grid-row:2/span 3}
.sub-c .sig-h .note{font-size:11.5px;line-height:1.3}
@media (max-width:760px){.modal form.sub-c{grid-template-columns:1fr 1fr}.sub-c .trans-box{grid-template-columns:1fr}.sub-c .trans-box>*{grid-column:1!important;grid-row:auto!important}}
.sub-c>label[for="f-title"],.sub-c>label[for="f-review_notes"]{grid-column:span 2}
.sub-c>label[for="f-review_notes"] textarea{height:38px}
.sub-c .sig-foot{gap:6px 10px;margin-top:4px}
.sub-c .sig-foot>.note{flex-basis:100%;font-size:11.5px}
.sub-c .sig-draw canvas{max-width:320px}
@media (max-width:760px){.sub-c>label[for="f-title"],.sub-c>label[for="f-review_notes"]{grid-column:1/-1}}
/* CM review of a submittal: compact too (stamp choices in one row, comments beside the signature). */
.sub-c .sub-hist{padding:8px 12px}
.sub-c .sub-hist h3{margin:0 0 4px}
.sub-c .sub-hist ol{gap:4px}
.sub-c .sub-hist li{font-size:12.5px;gap:0}
.sub-c .stamp-box{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.sub-c .stamp-opt{padding:6px 10px}
.sub-c .stamp-opt b{width:22px;height:22px;font-size:12px}
.sub-c .stamp-box>label[for="rvNote"]{grid-column:1}
.sub-c .stamp-box>label[for="rvNote"] textarea{height:120px}
.sub-c .stamp-box>#sigBox{grid-column:2;grid-row:auto}
.sub-c .stamp-box>.actions{grid-column:1/-1;margin:0;display:flex;justify-content:flex-end}
@media (max-width:760px){.sub-c .stamp-box{grid-template-columns:1fr}.sub-c .stamp-box>*{grid-column:1!important}}
/* Submitted (locked) submittal: notes, generated PDFs side by side, history beside the revision / sent boxes. */
.sub-c>.callout{margin:0;padding:6px 10px;font-size:12.5px}
.sub-c .gen-box ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:8px}
.sub-c .gen-box li small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.modal form.sub-c>.sub-hist{grid-column:1/span 2;grid-row:span 2}
.modal form.sub-c>.rev-box,.modal form.sub-c>.send-box.sent{grid-column:3/-1}
.sub-c .rev-box,.sub-c .send-box.sent{padding:8px 12px;gap:4px 12px}
.sub-c .rev-box .send-foot,.sub-c .send-box.sent .send-foot{margin:0}
@media (max-width:760px){.modal form.sub-c>.sub-hist,.modal form.sub-c>.rev-box,.modal form.sub-c>.send-box.sent{grid-column:1/-1;grid-row:auto}}
/* RFI: same compact layout as submittals. */
.rfi-c>label[for="f-question"],.rfi-c>label[for="f-answer"]{grid-column:span 2}
.rfi-c:not(:has(>label[for="f-answer"]))>label[for="f-question"]{grid-column:1/-1}
.rfi-c>label[for="f-question"] textarea,.rfi-c>label[for="f-answer"] textarea{height:72px}
.rfi-c>#pendBox{grid-column:1/span 2}
.rfi-c>#sigBox{grid-column:3/-1;border:1px solid var(--line);border-radius:var(--r)}
.rfi-c .sig-foot label.tick{display:none}
.sub-c .stamp-box>label[for="ansBox"]{grid-column:1}
.sub-c .stamp-box>label[for="ansBox"] textarea{height:120px}
@media (max-width:760px){.rfi-c>#pendBox,.rfi-c>#sigBox,.rfi-c>label[for="f-question"],.rfi-c>label[for="f-answer"]{grid-column:1/-1}}
.modal form.rfi-c>.sub-hist{grid-column:1/-1;grid-row:auto}
/* Daily production report in the Contractor's Daily Report (CDR) format: compact. */
.modal form.cdr-f{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px}
.cdr-f #dTables{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:0 14px}
.cdr-f #dTables>[data-tbl="activity_rows"],.cdr-f #dTables>[data-tbl="material_rows"]{grid-column:1/-1}
.cdr-f .dpr-tbl{margin-bottom:6px;gap:4px}
.cdr-f .dpr-tbl table{min-width:0}
.cdr-f .dpr-tbl td{padding:2px 3px}
.cdr-f .dpr-tbl td input,.cdr-f .dpr-tbl td select{padding:4px 6px;min-width:0}
.cdr-f>label.full,.cdr-f>.cdr-test{grid-column:span 2}
.cdr-f>label[for="d_issues"]{grid-column:1/-1}
.cdr-f textarea{min-height:0;height:52px}
.cdr-temp{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500;grid-column:span 1}
.cdr-temp div{display:grid;grid-template-columns:auto 1fr 1fr;gap:4px;align-items:center}
.cdr-temp div b{font-size:11px;color:var(--muted)}
.cdr-temp input{padding:4px 6px;min-width:0}
.cdr-temp div{grid-template-columns:auto 1fr 1fr auto 1fr 1fr}
.cdr-test{display:flex;flex-direction:column;gap:4px}
.cdr-test .tick{font-weight:500}
.cdr-f .dpr-photos{padding:8px 10px;gap:6px}
@media (max-width:760px){.modal form.cdr-f{grid-template-columns:1fr 1fr}.cdr-f #dTables{grid-template-columns:1fr}.cdr-f>label.full,.cdr-f>.cdr-test{grid-column:1/-1}}
.dpr-tbl-r{display:inline-flex;align-items:center;gap:10px}
.dpr-tbl-h .btn.sm{padding:3px 9px;font-size:12px}
.cdr-f #dTables>.dpr-tbl{grid-column:auto}
.cdr-f #dTables>[data-tbl="activity_rows"]{grid-column:1/-1}
.cdr-f #dTables>[data-tbl="material_rows"]{grid-column:1/-1}
.cdr-f .dpr-tbl th{padding:2px 3px}
.cdr-f .dpr-ph-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.cdr-f>label[for="d_issues"]{grid-column:span 2}
/* Signature pad: white with a guide line (CSS only, so the saved signature is just the ink). */
.sig-draw canvas{background:linear-gradient(#cfd8d3,#cfd8d3) no-repeat center 80%/92% 1px,#fff}
.sig-saved img{background:#fff;object-fit:contain}
.dpr-copy{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dpr-pick{width:auto;max-width:220px;padding:3px 8px;font-size:12px;border-radius:999px}
.dpr-listed{border:1px solid var(--line-strong);border-radius:var(--r);padding:8px 10px;background:var(--sunken);display:flex;flex-direction:column;gap:6px}
.dpr-listed-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.dpr-listed-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px 10px;max-height:240px;overflow:auto}
.dpr-li{display:flex;align-items:center;gap:6px}
.dpr-li input:not([type]){flex:1;min-width:0;padding:4px 6px;font-size:13px}
.dpr-li .tick{font-size:12px;white-space:nowrap}
.dpr-listed-f{display:flex;gap:8px;align-items:center}.dpr-listed-f span{flex:1}
.sched-bar{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.sched-bar-t{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sched-bar-t>span{flex:1;min-width:240px}
.sched-bar-t .ico{width:15px;height:15px}
.sched-hist summary{cursor:pointer;font-size:12.5px;color:var(--muted)}
.sched-hist ol{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.sched-resp{display:flex;gap:8px;align-items:center}
.sched-resp textarea{flex:1;min-height:0;height:36px}
