:root{
  --ink:#15233a; --slate:#33445f; --muted:#6b7787; --line:#e3e7ee; --bg:#f5f7fa; --paper:#fff;
  --gold:#c19a3e; --teal:#1f7a6d; --navy:#15233a;
  --partner:#2f6f4f; --partner-bg:#eef7f1; --creditor:#9a3b2e; --creditor-bg:#fbeeea; --neutral:#5b6b86;
  --hi:#9a3b2e; --med:#b07d24; --lo:#5b6b86;
}
@font-face{font-family:'Buttershine';src:url('/fonts/Buttershine-Serif.otf') format('opentype');font-weight:400;font-display:swap}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink);background:var(--bg);font-size:15px;line-height:1.5;}
a{color:var(--teal);text-decoration:none} a:hover{text-decoration:underline}
h1,h2,h3{color:var(--ink);margin:0 0 8px}
.display,.page-head>div>h1,.sheet h1{font-family:'Buttershine',Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:.4px}

/* top bar */
.topbar{background:linear-gradient(180deg,#1d3050,#15233a);color:#fff;padding:0 26px;display:flex;align-items:center;gap:22px;height:60px;
  border-bottom:2px solid var(--gold);box-shadow:0 2px 10px rgba(0,0,0,.18);position:sticky;top:0;z-index:50}
.topbar .brand{font-family:'Buttershine',Georgia,serif;font-weight:400;letter-spacing:.5px;color:#fff;font-size:23px;line-height:1.05}
.topbar .brand small{font-family:-apple-system,"Segoe UI",Inter,sans-serif;display:block;font-weight:600;font-size:9px;letter-spacing:2.5px;text-transform:uppercase;color:var(--gold);margin-top:2px}
.topbar nav{display:flex;gap:2px;margin-left:14px}
.topbar nav a{color:#c3d0e2;padding:8px 13px;border-radius:6px;font-size:13.5px;font-weight:600;transition:.12s}
.topbar nav a:hover{background:rgba(255,255,255,.10);color:#fff;text-decoration:none}
.topbar nav a.on{background:rgba(193,154,62,.18);color:#fff;text-decoration:none;box-shadow:inset 0 -2px 0 var(--gold)}
.topbar .right{display:flex;align-items:center;gap:14px;font-size:13px;color:#b9c5d8}
.topbar .right a{color:#cdd7e6}

.wrap{max-width:1180px;margin:24px auto;padding:0 22px}
.page-head{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.page-head .spacer{flex:1}

/* buttons */
.btn{display:inline-block;border:1px solid var(--line);background:#fff;color:var(--ink);padding:8px 14px;border-radius:4px;
  font-weight:700;font-size:14px;cursor:pointer;text-decoration:none}
.btn:hover{text-decoration:none;border-color:#c7cedb}
.btn-primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-gold{background:var(--gold);color:#fff;border-color:var(--gold)}
.btn-sm{padding:6px 10px;font-size:13px}
.btn-ghost{background:none}

/* deal subnav */
.subnav{display:flex;gap:6px;border-bottom:1px solid var(--line);margin:6px 0 18px}
.subnav a{padding:9px 14px;font-weight:700;color:var(--muted);border-bottom:2px solid transparent}
.subnav a.on{color:var(--ink);border-bottom-color:var(--gold)}
.subnav a:hover{text-decoration:none;color:var(--ink)}

/* cards */
.card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:18px 20px;margin-bottom:16px}
.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}
.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0 18px}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 16px;min-width:120px}
.stat .l{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}
.stat .v{font-size:26px;font-weight:800;line-height:1.1;margin-top:3px}

/* tables */
table{width:100%;border-collapse:collapse;background:var(--paper)}
.flash{background:#eef7f1;border:1px solid #bfe0cc;color:#1b6b3a;padding:9px 13px;border-radius:6px;margin-bottom:14px}
.err{background:#fbeeea;border:1px solid #efc6bd;color:#9a3b2e;padding:9px 13px;border-radius:6px;margin-bottom:14px}

/* board */
/* break out wider than the page wrap so all columns fit without horizontal scroll */
.board-wide{width:min(96vw,1500px);margin-left:calc(50% - min(96vw,1500px)/2)}
.board{overflow:visible;border:1px solid var(--line);border-radius:8px;background:#fff}
.board table{table-layout:fixed;width:100%;font-size:13px}
.board th{background:#eef1f6;color:var(--slate);text-align:left;font-size:10.5px;letter-spacing:.3px;text-transform:uppercase;
  padding:9px 8px;border-bottom:2px solid #dfe4ec;position:sticky;top:0;white-space:nowrap}
.board tbody tr:nth-child(even){background:#fbfcfe}
.board td{padding:7px 7px;border-bottom:1px solid var(--line);vertical-align:top;word-wrap:break-word;overflow-wrap:anywhere}
.board textarea,.board input{width:100%;border:1px solid transparent;background:transparent;border-radius:5px;
  padding:6px 7px;font:inherit;font-size:12.5px;color:var(--ink);resize:none;overflow:hidden;line-height:1.4;display:block}
.board textarea:hover,.board input:hover{background:#fff;border-color:#e7ebf2}
.board textarea:focus,.board input:focus{background:#fffdf5;border-color:#e0cf95;outline:none}
/* selects: remove native chrome, add our own caret with room so it never overlaps text */
.board select{width:100%;min-width:0;font:inherit;font-size:12px;font-weight:700;color:var(--ink);cursor:pointer;
  -webkit-appearance:none;appearance:none;border:1px solid #dfe4ec;border-radius:6px;background-color:#fff;
  padding:6px 22px 6px 8px;line-height:1.3;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%236b7787' stroke-width='1.6' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 9px center}
.board select:focus{outline:none;border-color:#b9c3d4;box-shadow:0 0 0 2px #e8edf5}
/* value-driven colors (applied by JS) */
.board select.pri-High{color:var(--hi)} .board select.pri-Medium{color:var(--med)} .board select.pri-Low{color:var(--lo)}
.board select.ln-partner{color:var(--partner);background-color:var(--partner-bg);border-color:#c3e1cf}
.board select.ln-creditor{color:var(--creditor);background-color:var(--creditor-bg);border-color:#eccabf}
.board select.ln-neutral{color:var(--neutral)}
.board select.st-open{color:var(--med);background-color:#fff7e6;border-color:#f0dcae}
.board select.st-proposed{color:#2a5b9a;background-color:#eaf1fb;border-color:#c4d6ef}
.board select.st-agreed{color:var(--partner);background-color:var(--partner-bg);border-color:#c3e1cf}
.board select.st-conceded,.board select.st-parked{color:var(--muted);background-color:#f2f4f7}
.board .rm{color:#b7c0cf;border:0;background:none;cursor:pointer;font-size:18px;padding:2px 4px;line-height:1}
.board .rm:hover{color:var(--creditor)}
/* drag handle + reorder */
.board .drag{cursor:grab;color:#c4cbd7;text-align:center;font-size:15px;user-select:none;width:24px}
.board .drag:active{cursor:grabbing}
.board tr.dragging{opacity:.45;background:#eef3fb}
.board tr.drop-target td{box-shadow:inset 0 2px 0 var(--gold)}
.board .acts{white-space:nowrap;text-align:right}
.board .mv{display:inline-flex;flex-direction:column;vertical-align:middle;margin-right:2px}
.board .mv button{border:0;background:none;cursor:pointer;color:#aab3c2;font-size:10px;line-height:1;padding:1px 2px}
.board .mv button:hover{color:var(--ink)}
/* owner / assignee chip */
.owner{display:flex;align-items:center;gap:6px}
.owner .ava{width:22px;height:22px;border-radius:50%;color:#fff;font-size:9.5px;font-weight:800;
  align-items:center;justify-content:center;flex:0 0 auto;display:none}
.board select.owner-sel{font-weight:700;min-width:0}
.lane-partner{border-left:4px solid var(--partner)}
.lane-creditor{border-left:4px solid var(--creditor)}
.lane-neutral{border-left:4px solid #cdd5e1}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}

/* forms */
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:6px;padding:9px 11px;font:inherit}
.inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* password field with show/hide eyeball */
.pw{position:relative}
.pw input{padding-right:40px !important;width:100%}
.pw .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;
  font-size:16px;opacity:.55;padding:4px;line-height:1}
.pw .eye:hover{opacity:1}
.muted-link{font-size:12.5px;color:var(--muted)}

/* economics */
.lanes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lane{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.lane h3{margin:0;padding:12px 14px;font-size:15px;color:#fff}
.lane.partner h3{background:var(--partner)} .lane.creditor h3{background:var(--creditor)} .lane.hybrid h3{background:var(--slate)}
.lane .lines{padding:10px 14px}
.lane .lines .row{display:flex;justify-content:space-between;gap:8px;padding:5px 0;border-bottom:1px solid #f0f2f6;font-size:13.5px}
.lane .tot{display:flex;justify-content:space-between;font-weight:800;padding:10px 14px;border-top:2px solid var(--line);background:#fafbfd}
.lane .sec{padding:8px 14px;font-size:12.5px;color:var(--creditor);background:#fbeeea}
.lane .note{padding:8px 14px;font-size:12.5px;color:var(--slate);background:#f1f4f8}
.tabnum{font-variant-numeric:tabular-nums}

/* term sheet */
.sheet{background:#fff;border:1px solid var(--line);border-radius:8px;padding:40px 46px;max-width:820px;margin:0 auto}
.sheet h1{font-size:22px;border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:8px}
.sheet .sub{color:var(--muted);font-size:13px;margin-bottom:22px}
.sheet h2{font-size:15px;margin:22px 0 8px;color:var(--navy)}
.sheet [contenteditable]:focus{outline:none;background:#fffdf5}
.sheet p{margin:0 0 9px;font-size:14.5px;line-height:1.6}
.sheet .summary{background:#fafbfd;border:1px solid var(--line);border-radius:8px;padding:14px 18px;margin:14px 0}
.sheet .summary .row{display:flex;justify-content:space-between;padding:4px 0;font-size:14px}

/* ===== Deal Hub (overview) ===== */
.pipeline{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0 0 18px}
.pipeline .st{flex:1;text-align:center;padding:11px 6px;font-size:12.5px;font-weight:700;color:var(--muted);background:#fff;border-right:1px solid var(--line)}
.pipeline .st:last-child{border-right:0}
.pipeline .st.done{color:#fff;background:var(--teal)}
.pipeline .st.cur{color:#fff;background:var(--navy)}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 20px}
.kpi{background:var(--navy);color:#fff;border-radius:12px;padding:16px 18px}
.kpi.gold{background:var(--gold)}
.kpi .lab{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:#bcd0e8}
.kpi.gold .lab{color:#fff6e0}
.kpi input{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:7px;color:#fff;font-size:27px;font-weight:800;width:100%;padding:4px 9px;margin-top:7px;font-family:inherit}
.kpi input:focus{outline:none;border-color:#fff;background:rgba(255,255,255,.16)}
.dd-sel.s-Complete{color:var(--partner);background:var(--partner-bg);border-color:#c3e1cf}
.dd-sel.s-Overdue{color:var(--creditor);background:var(--creditor-bg);border-color:#eccabf}
.dd-sel.s-Pending{color:var(--muted);background:#f2f4f7}
.dd-sel.s-Open,.dd-sel.s-Active{color:#2a5b9a;background:#eaf1fb;border-color:#c4d6ef}

.subnav{flex-wrap:wrap;row-gap:2px}

/* ===== use / phase / status color tokens ===== */
.u-Townhomes{--uc:#6aa9a0}.u-Commercial{--uc:#c19a3e}.u-Restaurants{--uc:#9a3b2e}
.u-Hospitality{--uc:#2a5b9a}.u-Public.Spaces,.u-PublicSpaces{--uc:#2f6f4f}.u-Parking{--uc:#98a4b3}.u-Marina{--uc:#1f7a6d}

/* ===== Site Plan / Massing Builder ===== */
.sp-wrap{display:grid;grid-template-columns:1fr 320px;gap:16px;align-items:start}
@media(max-width:900px){.sp-wrap{grid-template-columns:1fr}}
.sp-stage{border:1px solid var(--line);border-radius:10px;background:#eef3f1;overflow:hidden;position:relative}
.sp-stage svg{display:block;width:100%;height:auto;touch-action:none;background:
  linear-gradient(0deg,#dfeae6,#eef3f1);}
.sp-bldg{cursor:move}
.sp-bldg rect{stroke:#0003;stroke-width:1.5;rx:4}
.sp-bldg text{fill:#fff;font-size:11px;font-weight:700;pointer-events:none}
.sp-bldg .sf{font-size:9px;font-weight:500;opacity:.9}
.sp-bldg.sel rect{stroke:#15233a;stroke-width:3}
.sp-handle{fill:#15233a;cursor:nwse-resize}
.sp-water{fill:#bcd9e0;opacity:.7}
.sp-panel{position:sticky;top:16px}
.sp-metric{background:var(--navy);color:#fff;border-radius:10px;padding:12px 14px;margin-bottom:10px}
.sp-metric .l{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#9fb0c9}
.sp-metric .v{font-size:24px;font-weight:800;line-height:1.1;margin-top:3px}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.sp-stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 10px}
.sp-stat .l{font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.sp-stat .v{font-size:16px;font-weight:800}
.sp-legend{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;margin:6px 0}
.sp-legend span{display:inline-flex;align-items:center;gap:4px}
.sp-legend i{width:11px;height:11px;border-radius:2px;display:inline-block}
.sp-edit{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:10px}
.sp-edit .field{margin-bottom:8px}
.sp-feas{background:var(--gold);color:#fff;border-radius:10px;padding:12px 14px;margin-bottom:10px}
.sp-feas .row{display:flex;justify-content:space-between;font-size:13px;padding:2px 0}
.sp-feas .tot{font-weight:800;border-top:1px solid #fff6;margin-top:4px;padding-top:5px;font-size:15px}

/* ===== Cost database ===== */
.cost-search{display:flex;gap:8px;margin:0 0 14px;max-width:560px}
.cost-search input{flex:1;border:1px solid var(--line);border-radius:8px;padding:11px 14px;font-size:15px}
.cost-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:18px}
.cost-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--uc,#5b6b86);border-radius:10px;padding:13px 15px}
.cost-card .cat{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--uc,var(--muted));font-weight:700}
.cost-card .it{font-weight:700;font-size:14.5px;margin:3px 0}
.cost-card .amt{font-size:22px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.cost-card .src{font-size:11.5px;color:var(--muted);margin-top:6px;border-top:1px solid var(--line);padding-top:6px}
.cost-card .qty{font-size:12px;color:var(--slate)}
.cat-Land{--uc:#7a6a3a}.cat-Bulkhead{--uc:#1f7a6d}.cat-Foundation{--uc:#9a3b2e}.cat-Environmental{--uc:#2f6f4f}
.cat-Site.Prep,.cat-SitePrep{--uc:#b07d24}.cat-Utilities{--uc:#2a5b9a}.cat-Drainage{--uc:#3a6b8a}
.cat-Predevelopment{--uc:#7a4fa0}.cat-Capital{--uc:#15233a}.cat-TIRZ{--uc:#a83267}.cat-Marina{--uc:#1f7a6d}

/* ===== Horizontal PM Kanban ===== */
.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;align-items:start}
@media(max-width:900px){.kanban{grid-template-columns:1fr 1fr}}
.kcol{background:#eef1f6;border:1px solid var(--line);border-radius:10px;padding:10px;min-height:120px}
.kcol h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--slate);margin:2px 4px 10px;display:flex;justify-content:space-between}
.kcol h3 .n{background:#fff;border:1px solid var(--line);border-radius:999px;padding:0 7px;font-size:11px}
.kcol.over{background:#e6eefb;outline:2px dashed #9bb6e6}
.kcard{background:#fff;border:1px solid var(--line);border-left:4px solid var(--pc,#98a4b3);border-radius:8px;padding:9px 11px;margin-bottom:8px;cursor:grab;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.kcard.dragging{opacity:.5}
.kcard .ph{font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--pc,var(--muted));font-weight:700}
.kcard .tk{font-size:13.5px;font-weight:600;margin:2px 0;line-height:1.3}
.kcard .ow{font-size:11.5px;color:var(--muted)}
.kcard .rm{float:right;border:0;background:none;color:#c7ccd6;cursor:pointer;font-size:15px;line-height:1}
.kcard .rm:hover{color:var(--creditor)}
.ph-Mobilization{--pc:#2a5b9a}.ph-Site.Work,.ph-SiteWork{--pc:#b07d24}.ph-Bulkhead.&.Marine,.ph-Bulkhead{--pc:#1f7a6d}
.ph-Utilities{--pc:#7a4fa0}.ph-Roads.&.Drainage,.ph-Roads{--pc:#3a6b8a}.ph-Vertical.Readiness,.ph-Vertical{--pc:#2f6f4f}.ph-Closeout{--pc:#9a3b2e}
.kphase-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--slate);margin:0 0 14px}
.kphase-legend span{display:inline-flex;align-items:center;gap:5px}
.kphase-legend i{width:11px;height:11px;border-radius:3px;display:inline-block}

/* header global search */
.topbar .gsearch{margin-left:auto;display:flex;align-items:center}
.topbar .gsearch input{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:7px;
  color:#fff;padding:6px 11px;font-size:13px;width:190px}
.topbar .gsearch input::placeholder{color:#9fb0c9}
.topbar .right{margin-left:18px}

/* ===== app footer (Powered by Avamar) ===== */
.app-footer{display:flex;align-items:center;justify-content:center;gap:9px;margin:36px auto 22px;
  color:var(--muted);font-size:12px;letter-spacing:.5px}
.app-footer img{height:24px;width:auto;opacity:.9}

/* ===== 3D Site (GPS) ===== */
.s3-wrap{display:grid;grid-template-columns:1fr 260px;gap:14px;align-items:start}
@media(max-width:900px){.s3-wrap{grid-template-columns:1fr}}
.s3-map{height:560px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.s3-panel{position:sticky;top:16px;display:flex;flex-direction:column;gap:10px}
.s3-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 13px}
.s3-h{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:8px}
.s3-presets{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.s3-presets button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:5px 9px;font-size:12px;cursor:pointer;font-weight:600}
.s3-presets button:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.s3-upload{display:block;border:1px dashed var(--line);border-radius:8px;padding:9px;text-align:center;font-size:12.5px;cursor:pointer;color:var(--slate)}
.s3-upload:hover{background:#f7f9fc}
.s3-pal{display:flex;gap:4px;margin-top:8px}
.s3-pal i{width:20px;height:20px;border-radius:4px;display:inline-block;border:1px solid #0001}

/* ===== Site Plan layers panel + selection ===== */
.sp-wrap{grid-template-columns:212px 1fr 248px !important}
@media(max-width:1000px){.sp-wrap{grid-template-columns:1fr !important}}
.sp-layers{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;position:sticky;top:16px;max-height:82vh;overflow:auto}
.sp-lh{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:9px;display:flex;justify-content:space-between;align-items:center}
.sp-lcount{color:var(--muted);font-weight:700;font-size:11px}
.sp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}
.sp-litem{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:7px;cursor:pointer;border:1px solid transparent;font-size:13px}
.sp-litem:hover{background:#f5f7fa}
.sp-litem.on{background:rgba(193,154,62,.14);border-color:var(--gold)}
.sp-litem .sw{width:13px;height:13px;border-radius:3px;flex:none;box-shadow:0 0 0 1px #0001}
.sp-litem .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.sp-litem .mt{color:var(--muted);font-weight:600;font-size:11px}
.sp-bldg{cursor:pointer}
.sp-bldg.sel rect{stroke:var(--gold);stroke-width:2.5}
@keyframes sppulse{0%{opacity:1}40%{opacity:.3}100%{opacity:1}}
.sp-bldg.flash rect{animation:sppulse .55s ease 2}

/* ===== 3D Site draw toolbar + 3-col ===== */
.s3-wrap3{grid-template-columns:214px 1fr 252px !important}
@media(max-width:1000px){.s3-wrap3{grid-template-columns:1fr !important}}
.s3-toolbar{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 11px;margin-bottom:10px;flex-wrap:wrap}
.s3-tools{display:flex;gap:5px}
.s3-tool{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}
.s3-tool:hover{background:#f5f7fa}
.s3-tool.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.s3-hint{font-size:12px;color:var(--muted)}
.s3-save{font-size:12.5px;color:var(--teal);font-weight:700}
.s3-layers{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px;position:sticky;top:16px;max-height:82vh;overflow:auto}
.s3-chk{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--slate);cursor:pointer}
.s3-chk input{width:15px;height:15px}

/* ===== Financial model ===== */
.mdl-actions{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.mdl-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;margin-bottom:16px}
@media(max-width:1000px){.mdl-grid{grid-template-columns:1fr}}
.mdl-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px 16px;margin-bottom:16px}
.mdl-h{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:10px}
.mdl-key{color:#2a6df4;font-weight:700}
.mdl-table{width:100%;border-collapse:collapse;font-size:13.5px}
.mdl-table td,.mdl-table th{padding:5px 6px;border-bottom:1px solid #eef1f6;vertical-align:middle}
.mdl-table th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left}
.mdl-table .num{text-align:right}
.mdl-table tfoot td{border-bottom:none;padding-top:8px}
.mdl-in{border:1px solid #cfe0ff;background:#f4f8ff;color:#15233a;border-radius:6px;padding:6px 8px;font-size:13.5px;width:100%;font-weight:600}
.mdl-in:focus{outline:none;border-color:#2a6df4;background:#fff}
.mdl-in.num{text-align:right}
.mdl-in.lbl{font-weight:600}
.mdl-out{font-weight:800;color:var(--ink)}
.mdl-table .del{color:#bbb;font-weight:700;text-decoration:none;padding:0 4px}
.mdl-table .del:hover{color:var(--creditor)}
.mdl-returns{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.mdl-returns label{font-size:12px;color:var(--muted);font-weight:600;display:flex;flex-direction:column;gap:3px;position:relative}
.mdl-returns .suf{position:absolute;right:9px;top:25px;color:#9aa7bd;font-size:12px}
.mdl-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.mdl-kpi{background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.mdl-kpi.hi{background:linear-gradient(180deg,#fbf6ea,#fff);border-color:var(--gold)}
.mdl-kpi .l{font-size:10.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);font-weight:700}
.mdl-kpi .v{font-size:19px;font-weight:800;margin-top:3px}
.mdl-phases .win{font-size:12px;color:var(--slate);white-space:nowrap}
.mdl-gen{background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:13px 15px;margin-top:6px}
.kcard .kmo{float:right;font-size:9.5px;font-weight:700;color:#fff;background:var(--navy);border-radius:4px;padding:1px 5px;letter-spacing:.3px}

/* ===== Pitch charts ===== */
.chart-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:16px}
.chart-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.chart-card .chead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.chart-card .chead h3{margin:0;font-size:14.5px}
.chart-card canvas{max-height:280px}

/* ===== Gantt Chart ===== */
.gc{position:relative;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.gc-head{display:flex;background:var(--navy);color:#fff}
.gc-labelcol{flex:0 0 300px;width:300px;padding:0 10px;display:flex;align-items:center;font-size:10.5px;letter-spacing:.5px;text-transform:uppercase}
.gc-track{flex:1;display:grid;grid-template-columns:repeat(15,1fr);position:relative}
.gc-head .gc-track .mcell{text-align:center;font-size:10px;padding:7px 0;border-left:1px solid rgba(255,255,255,.14);line-height:1.3}
.gc-head .gc-track .mcell .yr{display:block;font-size:8.5px;color:#9fb0c9}
.gc-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line)}
.gc-row:nth-child(even){background:#fbfcfe}
.gc-drag{flex:0 0 22px;display:flex;align-items:center;justify-content:center;color:#c4cbd7;cursor:grab;user-select:none}
.gc-row.dragging{opacity:.5;background:#eef3fb}
.gc-label{flex:0 0 278px;width:278px;border:1px solid transparent;background:transparent;font:inherit;font-size:12px;padding:7px 6px;resize:none;overflow:hidden;line-height:1.35;color:var(--ink)}
.gc-label:hover{background:#fff;border-color:#e7ebf2}.gc-label:focus{background:#fffdf5;border-color:#e0cf95;outline:none}
.gc-grid{background-image:repeating-linear-gradient(to right,#eef1f5 0,#eef1f5 1px,transparent 1px,transparent calc(100%/15))}
.gc-bar{align-self:center;height:18px;border-radius:4px;cursor:grab;position:relative;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1);min-height:18px}
.gc-bar.dragging{opacity:.7;cursor:grabbing}
.gc-bar .rz{position:absolute;right:0;top:0;width:9px;height:100%;cursor:ew-resize;border-radius:0 4px 4px 0}
.gc-bar.c-primary{background:#1f6f6a}.gc-bar.c-shared{background:#6aa9a0}.gc-bar.c-funding{background:#d98a3d}.gc-bar.c-internal{background:#98a4b3}
.gc-acts{flex:0 0 96px;display:flex;align-items:center;gap:4px;padding:0 6px;white-space:nowrap}
.gc-acts select{font-size:11px;padding:3px 4px;border:1px solid var(--line);border-radius:5px}
.gc-acts .mv button{border:0;background:none;cursor:pointer;color:#aab3c2;font-size:10px;line-height:1;display:block;padding:0}
.gc-acts .rm{border:0;background:none;cursor:pointer;color:#b7c0cf;font-size:16px}
.gc-acts .rm:hover{color:var(--creditor)}
.gc-mslayer{position:absolute;top:0;bottom:0;pointer-events:none;z-index:5}
.gc-msline{position:absolute;top:30px;bottom:0;width:2px;background:#d98a3d;opacity:.85}
.gc-msline .flag{position:absolute;top:-2px;left:3px;font-size:9.5px;font-weight:700;color:#15233a;background:#fff;border:1px solid #f0d6b8;border-radius:3px;padding:1px 4px;white-space:nowrap}
.gc-legend{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 12px;font-size:12px;color:var(--slate)}
.gc-legend .sw{display:inline-block;width:13px;height:13px;border-radius:3px;vertical-align:-2px;margin-right:5px}
.ms-editor{margin-top:18px}
.ms-editor .rowline{display:flex;gap:8px;margin-bottom:7px;align-items:center}
.ms-editor select,.ms-editor input{border:1px solid var(--line);border-radius:6px;padding:7px 9px;font:inherit;font-size:13px}

@media print{
  .topbar,.subnav,.no-print{display:none !important}
  body,.wrap{background:#fff;margin:0;padding:0;max-width:none}
  .sheet{border:0;padding:18px 8px;max-width:none}
}
@media(max-width:760px){ .lanes{grid-template-columns:1fr} }
