/* ╔════════════════════════════════════════════════════════╗
   ║  CSGF Plenum                                            ║
   ║  Builds on tg-design-system.css; uses TG Hub shell      ║
   ║  (olive nav, white sidebar, sticky layout).             ║
   ╚════════════════════════════════════════════════════════╝ */

/* ── Local token aliases (kept for app-specific styles below) ── */
:root {
  --bg2:    var(--bg-2);
  --bg3:    var(--surface);
  --border2:var(--border-2);
  --text:   var(--text-1);
  --text2:  var(--text-2);
  --text3:  var(--text-3);
  --serif:  var(--font-serif);
  --sans:   var(--font-sans);
  --mono:   var(--font-mono);
  --nav-h:  58px;
  --panel-w:220px;
  --nav-olive: #5F7D09;
}

body { min-height:100vh; overflow-x:hidden; }

/* ── Login (TG Hub blueprint) ── */
#login-screen{display:none;position:fixed;inset:0;background:var(--nav-olive);align-items:center;justify-content:center;z-index:9999;}
.login-box{background:var(--surface);width:360px;padding:40px 36px 32px;box-sizing:border-box;border-top:3px solid var(--tg-green);}
.login-csgf{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--text-1);letter-spacing:.02em;margin-bottom:2px;}
.login-sub{font-size:12px;color:var(--text-3);letter-spacing:.04em;margin-bottom:22px;}
.login-rule{height:1px;background:var(--border);margin-bottom:18px;}
.lf{margin-bottom:12px;}
.lf label{display:block;font-size:11px;font-weight:600;color:var(--text-2);margin-bottom:5px;letter-spacing:.07em;text-transform:uppercase;}
.lf input{width:100%;box-sizing:border-box;padding:8px 10px;font-family:var(--sans);font-size:14px;border:1px solid var(--border);background:var(--bg);color:var(--text-1);outline:none;}
.lf input:focus{border-color:var(--tg-green);}
.login-btn{width:100%;padding:10px;background:var(--tg-green);color:#fff;border:none;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;letter-spacing:.02em;transition:background .15s;}
.login-btn:hover{background:var(--tg-green-d);}
.login-err{display:none;font-size:12px;color:var(--err);margin-top:10px;}
.login-footer{display:none;}

/* ── App shell ── */
#app{display:block;}

/* ── Top nav (TG Hub pattern) ── */
nav.topnav{background:var(--nav-olive);color:#E8E6E0;display:flex;align-items:center;padding:0 20px;height:var(--nav-h);position:sticky;top:0;z-index:100;gap:14px;}
.nav-left{display:flex;align-items:center;gap:14px;flex-shrink:0;}
.nav-logo{height:46px;width:46px;object-fit:contain;cursor:pointer;flex-shrink:0;}
.nav-brand{font-family:var(--serif);font-size:15px;font-weight:600;letter-spacing:.04em;color:#fff;cursor:pointer;line-height:1;display:flex;align-items:center;}
.nav-center{display:flex;align-items:center;gap:4px;}
.nav-tab{font-size:12px;color:rgba(255,255,255,.72);cursor:pointer;padding:5px 16px;border:1px solid rgba(255,255,255,.28);background:none;font-family:inherit;font-weight:500;line-height:1;}
.nav-tab.active,.nav-tab:hover{color:#fff;border-color:rgba(255,255,255,.55);}
.nav-spacer{flex:1;}
.nav-right{display:flex;align-items:center;gap:10px;}
.hamburger{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.72);font-size:18px;padding:4px 8px;line-height:1;transition:color .15s;}
.hamburger:hover{color:#fff;}
.flag-badge{background:var(--err);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;margin-left:4px;}

/* Role chip — variants */
.topnav-role{font-size:10px;font-weight:600;letter-spacing:.05em;color:rgba(255,255,255,.85);background:rgba(255,255,255,.15);padding:2px 7px;text-transform:uppercase;cursor:default;border:none;white-space:nowrap;}
.role-ma{background:rgba(193,215,88,.22);color:var(--tg-lime);}
.role-dm{background:rgba(144,200,128,.22);color:#C0E0B0;}
.role-io{background:rgba(255,255,255,.08);color:rgba(255,255,255,.6);}
.role-ea{background:rgba(232,144,128,.22);color:#F0B8A8;}
.role-rc{background:rgba(216,144,176,.22);color:#E8B0CC;}
.role-sa{background:rgba(128,184,232,.25);color:#A8D0F0;}

/* Bottom-left demo-build chip (TG Hub pattern) */
.bl-bar{position:fixed;bottom:12px;left:12px;display:flex;gap:6px;z-index:99999;font-family:var(--sans);font-size:10px;font-weight:400;letter-spacing:.05em;}
.demo-badge{background:var(--red);color:#fff;padding:3px 8px;pointer-events:none;}

/* Hamburger-drawer "Viewing as" rows: allow long institution names to wrap */
.hmenu-item.hm-inst{white-space:normal;line-height:1.3;padding-top:5px;padding-bottom:5px;}
.hmenu-item.hm-inst.active{font-weight:600;}

/* ── Hamburger drawer overrides (csgf-plenum has different spec) ── */
.hmenu{background:var(--dark-panel);}
.hmenu-item{padding:3px 20px;border-left:3px solid transparent;}
.hmenu-item.active{border-left-color:var(--tg-green);}
.hmenu-section{padding:14px 20px 4px;}

/* ── Layout ── */
.layout{display:flex;min-height:calc(100vh - var(--nav-h));position:relative;}

/* ── Sidebar (TG Hub blueprint — white surface) ── */
.left-panel{width:var(--panel-w);min-width:var(--panel-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;height:calc(100vh - var(--nav-h));position:sticky;top:var(--nav-h);overflow:hidden;}
.left-panel.collapsed{width:0;min-width:0;overflow:hidden;}

.panel-search{padding:12px 14px;}
.panel-search-input{width:100%;box-sizing:border-box;padding:5px 10px;font-family:var(--sans);font-size:12px;background:var(--bg);border:1px solid var(--border);color:var(--text-1);outline:none;}
.panel-search-input::placeholder{color:var(--text-3);}
.panel-search-input:focus{border-color:var(--tg-green);}

.panel-list{flex:1;overflow-y:auto;padding:4px 0;border-top:1px solid var(--border);}
.panel-item{padding:7px 14px 6px;cursor:pointer;border-left:3px solid transparent;}
.panel-item:hover{background:var(--bg-2);}
.panel-item.active{background:var(--bg-2);border-left-color:var(--tg-green);}
.panel-item.child{padding-left:24px;}
.panel-item-title{font-size:13px;color:var(--text-2);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.panel-item.active .panel-item-title{color:var(--text-1);font-weight:600;}
.panel-item-sub{font-size:11px;color:var(--text-3);margin-top:2px;}
.panel-item.active .panel-item-sub{color:var(--text-2);}
.panel-empty{padding:12px 14px;font-size:12px;color:var(--text-3);font-style:italic;}

/* ── Filter primitives (light surface) — used in main-content landing area ── */
.filter-pills{display:flex;gap:3px;flex-wrap:wrap;}
.filter-pill{padding:2px 8px;font-size:11px;font-weight:500;cursor:pointer;background:transparent;color:var(--text-2);border:1px solid var(--border);}
.filter-pill:hover{background:var(--bg-2);}
.filter-pill.on{background:var(--tg-green);color:#fff;border-color:var(--tg-green);}
.filter-select{padding:4px 7px;font-family:var(--sans);font-size:12px;background:var(--surface);border:1px solid var(--border);color:var(--text-1);outline:none;}
.filter-date-row{display:flex;gap:4px;}
.filter-date-in{padding:4px 7px;font-family:var(--mono);font-size:11px;background:var(--surface);border:1px solid var(--border);color:var(--text-1);outline:none;}
.filter-date-in:focus,.filter-select:focus{border-color:var(--tg-green);}
/* Hide locale placeholder ("dd.mm.åååå") when the date input is empty (uses :invalid + required) */
.filter-date-in:invalid:not(:focus)::-webkit-datetime-edit{color:transparent;}
.filter-date-in:invalid{box-shadow:none;}

/* ── Main content area ── */
.main-content{flex:1;overflow-y:auto;min-width:0;}

/* ── Decisions landing ── */
.decisions-landing{padding:32px 36px;}
.landing-hd{margin-bottom:28px;}
.landing-title{font-family:var(--font-sans);font-size:26px;font-weight:600;color:var(--tg-slate);}
.landing-sub{font-size:13px;color:var(--text3);margin-top:4px;}
.landing-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px;padding:10px 14px;background:var(--bg3);border:1px solid var(--border);}
.landing-new-btn{margin-left:auto;padding:7px 14px;background:var(--tg-green);color:#fff;border:none;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;}
.landing-new-btn:hover{background:var(--tg-green-d);}
.dec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;}
.dec-card{display:flex;flex-direction:column;background:var(--bg3);border:1px solid var(--border);padding:16px;cursor:pointer;border-left:3px solid var(--border);}
.dec-card:hover{border-color:var(--border2);background:var(--bg);}
.dec-card.active-card{border-left-color:var(--tg-green);}
.dec-card.stage-done{border-left-color:var(--border2);opacity:.75;}
.dec-card-id{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:6px;}
.dec-card-title{font-size:14px;font-weight:600;color:var(--text);line-height:1.35;margin-bottom:6px;}
.dec-card-dept{font-size:12px;color:var(--text-2);margin-bottom:8px;line-height:1.4;}
.dec-card-dept .dc-inst{color:var(--text-3);}
.dec-card-dept .dc-dept{color:var(--text-1);font-weight:600;}
/* Footer pinned to bottom so stage/date row aligns across cards of varying content height */
.dec-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:8px;}
.dec-card-stage{font-size:11px;color:var(--text3);}
.dec-card-date{font-size:11px;color:var(--text3);}
.dec-card-child-badge{font-size:10px;padding:1px 6px;background:var(--purple-l);color:var(--purple);font-weight:500;margin-left:6px;}
.landing-section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:10px;margin-top:24px;padding-bottom:6px;border-bottom:1px solid var(--border);}

/* ── Decision detail (full-screen takeover) ── */
.detail-screen{position:fixed;top:var(--nav-h);right:0;bottom:0;left:var(--panel-w);background:var(--bg);z-index:300;display:none;overflow-y:auto;}
.detail-screen.open{display:block;}
.detail-inner{max-width:900px;margin:0 auto;padding:28px 36px 60px;}
.detail-back{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text3);cursor:pointer;margin-bottom:20px;width:fit-content;}
.detail-back:hover{color:var(--text);}
.detail-back-icon{font-size:14px;}
.detail-hd{border-bottom:2px solid var(--border);padding-bottom:16px;margin-bottom:20px;}
.detail-eyebrow{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:6px;}
.detail-title{font-family:var(--font-sans);font-size:22px;font-weight:600;color:var(--tg-slate);line-height:1.25;margin-bottom:4px;}
.detail-created-by{font-size:13px;color:var(--text2);margin-top:3px;}
.detail-meta{font-size:12px;color:var(--text3);margin-top:3px;}
.detail-meta span{color:var(--text3);}
.detail-tabs{display:flex;border-bottom:2px solid var(--border);margin-bottom:18px;}
.detail-tab{padding:8px 14px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text3);cursor:pointer;}
.detail-tab:hover{color:var(--text2);}
.detail-tab.active{color:var(--tg-green);border-bottom-color:var(--tg-green);font-weight:600;}

/* Inline alerts */
.ia{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;margin-bottom:8px;border:1px solid;border-left-width:3px;}
.ia-err{background:var(--err-l);border-color:var(--err-b);border-left-color:var(--err);}
.ia-warn{background:var(--warn-l);border-color:var(--warn-b);border-left-color:var(--warn);}
.ia-ok{background:var(--ok-l);border-color:var(--ok-b);border-left-color:var(--ok);}
.ia-icon{width:16px;height:16px;flex-shrink:0;margin-top:1px;}
.ia-body{flex:1;}
.ia-text{font-size:13px;color:var(--text);line-height:1.55;}
.ia-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;color:var(--tg-green);cursor:pointer;margin-top:6px;text-decoration:none;}
.ia-link:hover{text-decoration:underline;}

/* Stage bar in detail */
.stage-wrap{margin-bottom:16px;}
.stage-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--border);border:1px solid var(--border);}
.stage-cell{background:var(--bg3);padding:8px 10px;}
.stage-cell.done{opacity:.5;}
.stage-cell.active{background:var(--ok-l);border-left:3px solid var(--ok);}
.stage-cell-num{font-size:10px;font-weight:700;color:var(--text3);margin-bottom:2px;}
.stage-cell.active .stage-cell-num{color:var(--ok);}
.stage-cell-name{font-size:12px;font-weight:600;color:var(--text2);line-height:1.3;}
.stage-cell.active .stage-cell-name{color:var(--ok);}
.stage-cell.done .stage-cell-name{color:var(--text3);}
.stage-current{background:var(--bg3);border:1px solid var(--border);border-top:none;padding:10px 14px;}
.stage-current-text{font-size:13px;color:var(--text2);line-height:1.5;}
.legend-row{display:grid;grid-template-columns:130px 1fr;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;}
.legend-row:last-child{border-bottom:none;}
.legend-stage-name{font-weight:600;color:#fff;}
.legend-stage-desc{color:rgba(255,255,255,.65);line-height:1.6;}
.stage-tooltip-wrap{position:relative;}
.stage-tooltip-box{display:none;position:absolute;top:calc(100% + 6px);left:0;background:var(--tg-slate);border:1px solid rgba(255,255,255,.12);padding:14px;width:620px;max-height:280px;overflow-y:auto;z-index:200;box-shadow:0 4px 20px rgba(0,0,0,.35);}
.stage-tooltip-wrap:hover .stage-tooltip-box{display:block;}

/* Advance bar */
.advance-bar{background:var(--bg3);border:1px solid var(--border);padding:14px 16px;margin-top:16px;}
.advance-bar-stage{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:12px;}
.ab-cell{background:var(--bg);padding:6px 10px;font-size:11px;font-weight:600;color:var(--text3);line-height:1.3;}
.ab-cell.done{opacity:.45;}
.ab-cell.active{background:var(--ok-l);color:var(--ok);border-left:3px solid var(--ok);}
.advance-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.advance-label{font-size:12px;color:var(--text2);flex:1;}
.btn-advance{padding:9px 18px;background:var(--tg-slate);color:#fff;border:none;font-family:var(--sans);font-size:13px;font-weight:600;cursor:pointer;}
.btn-advance:hover{background:#333;}
.btn-advance:disabled{opacity:.4;cursor:not-allowed;}
.save-state-wrap{position:relative;display:inline-flex;align-items:center;gap:5px;}
.btn-save-state{padding:8px 12px;background:var(--bg3);color:var(--text2);border:1px solid var(--border);font-family:var(--sans);font-size:12px;cursor:pointer;}
.btn-save-state:hover{border-color:var(--border2);}
.btn-save-state:disabled{opacity:.35;cursor:not-allowed;}
.tooltip-icon{width:15px;height:15px;background:var(--bg2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--text3);cursor:help;flex-shrink:0;}
.tooltip-box{display:none;position:absolute;bottom:calc(100% + 6px);left:0;background:var(--tg-slate);color:#fff;font-size:12px;padding:8px 11px;width:230px;line-height:1.55;z-index:99;}
.save-state-wrap:hover .tooltip-box{display:block;}
.btn-concern{padding:8px 12px;background:var(--err-l);color:var(--err);border:1px solid var(--err-b);font-family:var(--sans);font-size:12px;cursor:pointer;}

/* Collapsible cards */
.card{background:var(--bg3);border:1px solid var(--border);margin-bottom:10px;overflow:hidden;}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;user-select:none;}
.card-header:hover{background:var(--bg2);}
.card-label{font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);}
.card-chevron{font-size:11px;color:var(--text3);transition:transform .15s;flex-shrink:0;}
.card-chevron.coll{transform:rotate(-90deg);}
.card-body{padding:12px 14px 14px;}
.card-body.hidden{display:none;}

/* Fields */
.field{display:flex;flex-direction:column;gap:3px;margin-bottom:10px;}
.field:last-child{margin-bottom:0;}
.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.field label{font-size:12px;font-weight:600;color:var(--text2);}
.expand-btn{background:none;border:none;cursor:pointer;color:var(--text3);padding:1px 3px;font-size:13px;line-height:1;flex-shrink:0;}
.expand-btn:hover{color:var(--tg-green);}
.field input,.field textarea,.field select{font-family:var(--sans);font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border);padding:7px 9px;outline:none;resize:vertical;line-height:1.6;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--tg-green);}
.field textarea{min-height:68px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.standards-ref{margin-top:6px;font-size:11px;color:var(--text3);line-height:1.7;}
.standards-ref a{color:var(--tg-green);text-decoration:underline;cursor:pointer;}

/* Approval panel */
.approval-panel{border:1px solid var(--purple-l);background:#F8F7FE;padding:14px 16px;margin-bottom:14px;border-left:3px solid var(--purple);}
.approval-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--purple);margin-bottom:5px;}
.approval-desc{font-size:12px;color:var(--text2);margin-bottom:10px;line-height:1.6;}
.approval-note{font-size:11px;color:var(--text3);margin-top:8px;font-style:italic;}
.approval-holders{display:flex;gap:8px;flex-wrap:wrap;}
.approval-holder{display:flex;align-items:center;gap:7px;padding:7px 9px;background:var(--bg3);border:1px solid var(--border);flex:1;min-width:130px;}
.approval-av{width:24px;height:24px;background:var(--purple-l);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--purple);flex-shrink:0;}
.approval-name{font-size:12px;font-weight:500;flex:1;}
.cs-label{font-size:11px;padding:2px 6px;font-weight:500;}
.cs-signed{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.cs-pending{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.cs-initiator{background:#E4EEF8;color:#0A3C70;border:1px solid #80B0E0;}
.btn-approve{padding:4px 10px;background:var(--purple);color:#fff;border:none;font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;}

/* Options editor */
.options-editor{display:flex;flex-direction:column;gap:10px;}
.option-editor-item{border:1px solid var(--border);background:var(--bg);padding:12px 14px;}
.option-editor-hd{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.option-editor-lbl{font-size:12px;font-weight:600;color:var(--text);flex:1;}
.option-remove-btn{background:none;border:none;color:var(--text3);cursor:pointer;font-size:15px;padding:0 2px;}
.option-remove-btn:hover{color:var(--err);}
.option-field{display:flex;flex-direction:column;gap:3px;margin-bottom:8px;}
.option-field:last-child{margin-bottom:0;}
.option-field label{font-size:11px;font-weight:600;color:var(--text2);}
.option-field input,.option-field textarea{font-family:var(--sans);font-size:13px;color:var(--text);background:var(--bg3);border:1px solid var(--border);padding:6px 8px;outline:none;resize:vertical;line-height:1.6;}
.option-field textarea{min-height:72px;}
.option-field input:focus,.option-field textarea:focus{border-color:var(--tg-green);}
.btn-add-option{padding:7px 12px;background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;margin-top:4px;}
.btn-add-option:hover{background:var(--tg-green);color:#fff;border-color:var(--tg-green);}

/* Options selector (DM) */
.options-selector{border:1px solid var(--border);margin-bottom:0;}
.option-select-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;background:var(--bg3);}
.option-select-item:last-child{border-bottom:none;}
.option-select-item:hover{background:var(--bg);}
.option-select-item.selected{background:var(--ok-l);border-left:3px solid var(--ok);}
.option-select-title{font-size:13px;font-weight:600;color:var(--text);flex:1;}
.option-select-item.selected .option-select-title{color:var(--ok);}
.option-radio{width:14px;height:14px;border:1px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.option-select-item.selected .option-radio{border-color:var(--ok);background:var(--ok);}
.option-radio-dot{width:6px;height:6px;background:#fff;display:none;}
.option-select-item.selected .option-radio-dot{display:block;}
.option-detail-panel{border:1px solid var(--border);border-top:none;background:var(--bg3);padding:16px;margin-bottom:14px;}
.option-detail-empty{font-size:13px;color:var(--text3);font-style:italic;}
.option-detail-title{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--tg-slate);margin-bottom:10px;}
.option-detail-desc{font-size:14px;color:var(--text2);line-height:1.75;}

/* Vote */
.vote-box{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--tg-green);padding:16px;margin-bottom:14px;}
.vote-box-title{font-size:13px;font-weight:600;color:var(--tg-slate);margin-bottom:10px;}
.vote-btns{display:flex;gap:8px;margin-bottom:10px;}
.vote-btn{flex:1;padding:10px 8px;border:1px solid var(--border);background:var(--bg);font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text2);cursor:pointer;text-align:center;}
.vote-btn:hover{border-color:var(--border2);}
.vote-btn.sel-support{border-color:var(--tg-green);background:var(--ok-l);color:var(--ok);font-weight:600;}
.vote-btn.sel-object{border-color:var(--err);background:var(--err-l);color:var(--err);font-weight:600;}
.vote-btn.sel-abstain{border-color:var(--tg-slate);background:var(--bg2);color:var(--tg-slate);font-weight:600;}
.vote-note{font-size:12px;color:var(--text3);line-height:1.55;font-style:italic;}
.obj-box{margin-top:10px;display:none;}
.obj-box.vis{display:block;}
.obj-box label{font-size:12px;font-weight:600;color:var(--text2);display:block;margin-bottom:4px;}
.obj-box textarea{width:100%;font-family:var(--sans);font-size:13px;padding:8px 10px;border:1px solid var(--border);background:var(--bg);color:var(--text);min-height:72px;outline:none;resize:vertical;line-height:1.6;}
.obj-box textarea:focus{border-color:var(--err);}
.btn-confirm-choice{width:100%;padding:10px;background:var(--tg-green);color:#fff;border:none;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;margin-top:10px;}
.btn-confirm-choice:hover{background:var(--tg-green-d);}
.btn-confirm-choice:disabled{opacity:.45;cursor:not-allowed;background:var(--tg-slate);}
.btn-submit-vote{width:100%;padding:10px;background:var(--tg-green);color:#fff;border:none;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;margin-top:10px;}
.btn-submit-vote:hover{background:var(--tg-green-d);}
.concealment-notice{display:flex;align-items:center;gap:8px;padding:8px 11px;background:var(--bg2);border:1px solid var(--border);font-size:12px;color:var(--text2);margin-bottom:10px;}
.ratification-box{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--tg-green);padding:16px;margin-bottom:14px;}
.ratification-title{font-size:13px;font-weight:600;color:var(--tg-slate);margin-bottom:6px;}
.ratification-outcome{font-size:14px;color:var(--text2);line-height:1.6;margin-bottom:14px;padding:10px 12px;background:var(--bg);border:1px solid var(--border);}

/* DM view wrapper */
.dm-view{padding:28px 36px;}
.dm-asked{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);margin-bottom:8px;}
.dm-title{font-family:var(--font-sans);font-size:20px;font-weight:600;color:var(--tg-slate);line-height:1.25;margin-bottom:5px;}
.dm-meta{font-size:12px;color:var(--text3);margin-bottom:20px;}
.dm-summary{background:var(--bg3);border:1px solid var(--border);border-left:3px solid var(--border2);padding:14px 16px;font-size:14px;color:var(--text2);line-height:1.7;margin-bottom:18px;}
.dm-sentinel{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid var(--border);background:var(--bg3);font-size:12px;color:var(--text2);}
.s-led{width:8px;height:8px;flex-shrink:0;}
.led-ok{background:var(--ok);}.led-warn{background:var(--warn);}.led-err{background:var(--err);}
.dm-raise{margin-top:8px;text-align:center;}
.dm-raise a{font-size:12px;color:var(--text3);cursor:pointer;text-decoration:underline;}

/* Participants */
.p-row{display:flex;align-items:center;gap:8px;padding:8px 9px;background:var(--bg);border:1px solid var(--border);margin-bottom:4px;}
.p-av{width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;}
.p-name{font-size:13px;font-weight:500;flex:1;}
.p-badge{font-size:10px;padding:1px 6px;font-weight:600;}
.vp{font-size:11px;padding:2px 7px;font-weight:500;}
.vp-support{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.vp-object{background:var(--err-l);color:var(--err);border:1px solid var(--err-b);}
.vp-abstain{background:var(--bg2);color:var(--tg-slate);border:1px solid var(--border);}
.vp-pending,.vp-na{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.vp-submitted{background:#E4EEF8;color:#0A3C70;border:1px solid #80B0E0;}
.p-remove{background:none;border:none;color:var(--text3);cursor:pointer;font-size:15px;padding:0 2px;}
.p-remove:hover{color:var(--err);}
.add-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
.add-row input,.add-row select{font-family:var(--sans);font-size:12px;padding:6px 8px;border:1px solid var(--border);background:var(--bg);color:var(--text);outline:none;}
/* Green "add / create" action chip. Renamed from .btn-sm so that .btn-sm can act as a pure size modifier (per TG Hub design system). */
.btn-add{padding:6px 10px;background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);font-family:var(--sans);font-size:12px;font-weight:600;cursor:pointer;}
.btn-add:hover{background:var(--tg-green);color:#fff;border-color:var(--tg-green);}
.badge-style-ma{background:#EDF2D8;color:#3A5006;border:1px solid #B8D070;}
.badge-style-dm{background:#EAF4E8;color:#2A5A1A;border:1px solid #A8D0A0;}
.badge-style-io{background:#F0F0EC;color:#5E6368;border:1px solid #D4D0C4;}
.badge-style-ea{background:#FAF0EC;color:#8B2010;border:1px solid #DDB8A8;}
.badge-style-rc{background:#F4EAF4;color:#6A1A6A;border:1px solid #D0A8D0;}
.badge-style-sa{background:#E4EEF8;color:#0A3C70;border:1px solid #80B0E0;}

/* Vote composition */
.weight-row{display:flex;align-items:center;gap:8px;padding:8px 9px;background:var(--bg);border:1px solid var(--border);margin-bottom:4px;}
.weight-name{font-size:13px;font-weight:500;flex:1;}
.weight-in{width:60px;font-family:var(--mono);font-size:13px;padding:4px 7px;border:1px solid var(--border);background:var(--bg3);text-align:right;outline:none;}
.weight-in:focus{border-color:var(--tg-green);}
.weight-rec{font-size:11px;color:var(--text3);}
.weight-changed{font-size:11px;color:var(--warn);}
.weight-total{font-size:13px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);}
.wt-ok{color:var(--ok);}.wt-err{color:var(--err);}

/* Audit */
.audit-entry{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);}
.audit-entry:last-child{border-bottom:none;}
.audit-time{font-family:var(--mono);font-size:11px;color:var(--text3);white-space:nowrap;}
.audit-body{font-size:12px;color:var(--text2);line-height:1.5;flex:1;}
.audit-actor{font-weight:600;color:var(--text);}
.audit-tag{font-size:10px;padding:1px 5px;font-weight:600;margin-left:4px;}
.at-system{background:var(--bg2);color:var(--text3);}
.at-gate{background:var(--purple-l);color:var(--purple);}
.at-flag{background:var(--err-l);color:var(--err);}
.at-vote{background:var(--ok-l);color:var(--ok);}
.at-sentinel{background:var(--warn-l);color:var(--warn);}

/* Nested decisions in detail */
.nested-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);margin-bottom:4px;cursor:pointer;}
.nested-item:hover{background:var(--bg2);}
.nested-title{font-size:13px;color:var(--text);flex:1;}
.parent-link{display:flex;align-items:center;gap:6px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);margin-bottom:12px;cursor:pointer;font-size:12px;color:var(--text2);}
.parent-link:hover{background:var(--bg2);}

/* Standards page */
.std-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border:1px solid var(--border);margin-bottom:4px;background:var(--bg3);}
.std-id{font-family:var(--mono);font-size:12px;color:var(--purple);width:120px;flex-shrink:0;padding-top:2px;}
.std-info{flex:1;}
.std-name{font-size:13px;font-weight:600;margin-bottom:2px;}
.std-summary{font-size:12px;color:var(--text2);line-height:1.5;margin-bottom:4px;}
.std-abstract{font-size:12px;color:var(--text3);line-height:1.55;margin-top:4px;display:none;}
.std-item.expanded .std-abstract{display:block;}
.std-toggle{font-size:11px;color:var(--tg-green);cursor:pointer;text-decoration:underline;}
.std-pill{font-size:10px;padding:2px 7px;font-weight:600;flex-shrink:0;align-self:flex-start;}
.std-ok{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.std-no{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}

/* Flags page */
.flag-item{display:flex;gap:10px;padding:12px 14px;border:1px solid var(--border);margin-bottom:5px;background:var(--bg3);border-left:3px solid var(--border2);}
.flag-item.sev-high{border-left-color:var(--err);}
.flag-item.sev-med{border-left-color:var(--tg-terra);}
.flag-sev{font-size:10px;padding:2px 6px;font-weight:700;flex-shrink:0;align-self:flex-start;}
.fs-low{background:var(--bg2);color:var(--text3);}
.fs-med{background:var(--warn-l);color:var(--warn);border:1px solid var(--warn-b);}
.fs-high{background:var(--err-l);color:var(--err);border:1px solid var(--err-b);}
.flag-content{flex:1;}
.flag-title{font-size:13px;font-weight:600;color:var(--text);}
.flag-desc{font-size:12px;color:var(--text2);margin-top:3px;line-height:1.5;}
.flag-meta{font-size:11px;color:var(--text3);margin-top:4px;font-style:italic;}
.flag-acts{display:flex;gap:6px;margin-top:8px;}
.btn-resolve{padding:4px 9px;background:var(--bg2);color:var(--text2);border:1px solid var(--border);font-family:var(--sans);font-size:11px;cursor:pointer;}
.btn-escalate{padding:4px 9px;background:var(--err-l);color:var(--err);border:1px solid var(--err-b);font-family:var(--sans);font-size:11px;cursor:pointer;}

/* System views */
.sys-hd{margin-bottom:20px;padding-bottom:14px;border-bottom:2px solid var(--border);}
.sys-title{font-family:var(--font-sans);font-size:20px;font-weight:600;color:var(--tg-slate);}
.sys-sub{font-size:12px;color:var(--text3);margin-top:4px;line-height:1.6;}
.param-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);margin-bottom:4px;background:var(--bg);}
.param-label{font-size:13px;color:var(--text);flex:1.5;}
.param-val{font-family:var(--mono);font-size:12px;background:var(--bg3);border:1px solid var(--border);padding:3px 7px;width:90px;text-align:right;color:var(--text);outline:none;}
.param-val:focus{border-color:var(--tg-green);}
.init-phase{border:1px solid var(--border);margin-bottom:6px;}
.init-hd{display:flex;align-items:center;gap:9px;padding:9px 13px;background:var(--bg);border-bottom:1px solid var(--border);}
.init-num{width:20px;height:20px;background:var(--tg-green);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.init-title-txt{font-size:13px;font-weight:600;flex:1;}
.init-st{font-size:10px;padding:2px 6px;font-weight:600;}
.ip-done{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.ip-active{background:var(--warn-l);color:var(--warn);border:1px solid var(--warn-b);}
.ip-pending{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.init-body{padding:11px 13px;background:var(--bg3);font-size:13px;color:var(--text2);line-height:1.65;}

/* Page wrapper */
.page{padding:32px 36px;max-width:960px;}
.page.wide{max-width:none;}

/* Standards split */
.std-source-badge{font-size:10px;padding:2px 7px;font-weight:600;flex-shrink:0;align-self:flex-start;margin-left:6px;}
.std-global{background:#E4EEF8;color:#0A3C70;border:1px solid #80B0E0;}
.std-local{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.std-escalation{font-size:11px;color:var(--tg-terra);margin-top:4px;font-style:italic;}
.std-escalation-badge{font-size:10px;padding:1px 6px;font-weight:600;background:var(--warn-l);color:var(--warn);border:1px solid var(--warn-b);}
.ugso-panel{border:1px solid #80B0E0;background:#E4EEF8;padding:12px 14px;margin-top:10px;border-left:3px solid #0A3C70;}
.ugso-panel-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#0A3C70;margin-bottom:5px;}
.ugso-panel-desc{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:10px;}
.escalation-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;background:var(--bg3);border:1px solid var(--border);margin-bottom:4px;}
.escalation-ref{font-family:var(--mono);font-size:11px;color:var(--purple);flex-shrink:0;width:100px;}
.escalation-status{font-size:10px;padding:2px 6px;font-weight:600;flex-shrink:0;}
.esc-submitted{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.esc-review{background:var(--warn-l);color:var(--warn);border:1px solid var(--warn-b);}
.esc-amended{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}

/* CDP section */
.cdp-card{background:var(--bg3);border:1px solid var(--border);padding:18px;margin-bottom:10px;border-left:3px solid var(--tg-green);}
.cdp-card-title{font-family:var(--font-sans);font-size:15px;font-weight:600;color:var(--tg-slate);margin-bottom:4px;}
.cdp-card-meta{font-size:11px;color:var(--text3);margin-bottom:10px;display:flex;gap:12px;flex-wrap:wrap;}
.cdp-card-desc{font-size:13px;color:var(--text2);line-height:1.7;margin-bottom:12px;}
.cdp-outcomes{margin-bottom:12px;}
.cdp-outcomes-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:6px;}
.cdp-outcome-item{font-size:12px;color:var(--text2);padding:3px 0;border-bottom:1px solid var(--border);display:flex;gap:8px;}
.cdp-outcome-item:last-child{border-bottom:none;}
.cdp-outcome-check{color:var(--tg-green);flex-shrink:0;}
.cdp-roles{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px;}
.cdp-role-tag{font-size:10px;padding:2px 7px;font-weight:500;background:var(--bg2);color:var(--text2);border:1px solid var(--border);}
.cdp-prereq{font-size:11px;color:var(--tg-terra);margin-bottom:10px;font-style:italic;}
.cdp-status{font-size:10px;padding:3px 9px;font-weight:600;}
.cdp-complete{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.cdp-incomplete{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.cdp-required{background:var(--err-l);color:var(--err);border:1px solid var(--err-b);}
.comp-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);margin-bottom:4px;background:var(--bg3);}
.comp-user-av{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;background:var(--purple-l);color:var(--purple);}
.comp-user-name{font-size:13px;font-weight:600;flex:1;}
.comp-user-role{font-size:11px;color:var(--text3);}
.comp-bar{display:flex;gap:4px;flex-wrap:wrap;}
.comp-pill{font-size:10px;padding:2px 7px;font-weight:500;}
.comp-done{background:var(--ok-l);color:var(--ok);border:1px solid var(--ok-b);}
.comp-pending{background:var(--bg2);color:var(--text3);border:1px solid var(--border);}
.comp-required{background:var(--err-l);color:var(--err);border:1px solid var(--err-b);}
.onboarding-card{background:var(--bg3);border:2px solid var(--tg-green);padding:20px;margin-bottom:16px;}
.onboarding-title{font-family:var(--font-sans);font-size:16px;font-weight:600;color:var(--tg-slate);margin-bottom:6px;}
.onboarding-desc{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:14px;}
.onboarding-steps{margin-bottom:14px;}
.onboarding-step{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);align-items:flex-start;}
.onboarding-step:last-child{border-bottom:none;}
.onboarding-step-num{width:20px;height:20px;background:var(--tg-green);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.onboarding-step-done{background:var(--ok);}
.onboarding-step-text{font-size:13px;color:var(--text2);flex:1;padding-top:2px;}
.tg-advisory-box{border:1px solid var(--tg-terra);background:#FDF5F2;padding:12px 14px;margin-top:10px;border-left:3px solid var(--tg-terra);}
.tg-advisory-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tg-terra);margin-bottom:4px;}
.tg-advisory-desc{font-size:12px;color:var(--text2);line-height:1.6;margin-bottom:8px;}
