:root{--ink:#203d54;--muted:#5c6c7d;--green:#256954;--soft:#e6f3ed;--line:#dce4eb;--bg:#f2f5f8;--white:#fff;--warn:#8a4d0c;--bad:#a52e37;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.5}
*{box-sizing:border-box}body{margin:0}a{color:#165d84}button,input,select,textarea{font:inherit}button,.button{display:inline-flex;justify-content:center;align-items:center;gap:.5rem;background:var(--ink);color:white;border:1px solid var(--ink);border-radius:7px;padding:.64rem 1rem;min-height:44px;cursor:pointer;text-decoration:none;font-weight:600}button:hover,.button:hover{filter:brightness(1.12)}button:disabled{opacity:.55;cursor:wait}.secondary{background:white;color:var(--ink);border-color:#bdcbd7}.plain{background:transparent;border-color:transparent;color:var(--ink)}.danger{color:var(--bad);border-color:#e4b9be;background:white}.small{font-size:.875rem;padding:.4rem .7rem}.skip{position:absolute;left:-10000px}.skip:focus{left:10px;top:10px;background:white;z-index:200;padding:10px}*:focus-visible{outline:3px solid #3489bf;outline-offset:3px}input,select,textarea{width:100%;border:1px solid #b8c6d3;background:white;color:var(--ink);padding:.68rem .75rem;border-radius:6px;min-height:44px}textarea{resize:vertical;min-height:100px}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--green)}label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.4rem}label.check{display:flex;align-items:center;gap:10px;min-height:45px}.muted,small{color:var(--muted)}small{font-size:.8rem}.eyebrow{font-size:.8rem;letter-spacing:.14em;font-weight:750;color:var(--green)}h1{font-size:2rem;line-height:1.18;margin:.4rem 0 1rem;letter-spacing:-.025em}h2{font-size:1.25rem;line-height:1.3;margin:0 0 1rem}h3{font-size:1.08rem;margin:.6rem 0}p{margin:.7rem 0 1rem}ul{padding-left:1.3rem}.login{width:min(460px,calc(100% - 36px));margin:9vh auto;padding:32px;background:white;border:1px solid var(--line);border-radius:12px}.login form{display:grid;gap:16px}.brand{font-size:1.28rem;font-weight:800;letter-spacing:.055em;display:flex;align-items:center;gap:11px}.brand img{width:34px;height:34px}.shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--ink);color:#fff;padding:28px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:30px}.sidebar .brand{font-size:1.1rem}.sidebar nav{display:grid;gap:6px}.sidebar nav button{background:transparent;border:0;color:#d3dfeb;text-align:left;justify-content:flex-start;padding:11px 14px;font-size:.95rem;font-weight:500}.sidebar nav button.active{background:#36566f;color:#fff;font-weight:650}.sidebar .foot{margin-top:auto;font-size:.875rem;color:#d2dfeb}.sidebar .plain{color:white}.main{padding:30px 38px 60px;max-width:1700px;width:100%;margin:auto}.top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:30px}.top .status{font-size:.875rem;color:var(--muted)}.mobile-menu{display:none}.titlebar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin:0 0 24px}.actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:22px 0}.metric{background:white;border:1px solid var(--line);padding:20px;border-radius:9px;min-width:0}.metric .value{font-size:1.85rem;font-weight:750;letter-spacing:-.025em;margin:8px 0 2px;overflow-wrap:anywhere}.metric .label{font-size:.875rem;font-weight:550;color:var(--muted)}.metric small{display:block}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:20px;min-width:0}.two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px}.next{border-left:5px solid var(--green)}.pill{display:inline-block;border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:600;background:#edf2f7;color:var(--ink);white-space:nowrap}.pill.good{color:#236349;background:#e7f4ec}.pill.bad{color:#942b30;background:#fdecef}.pill.warn{color:#84500d;background:#fff1ce}.alert{padding:14px 18px;border-left:4px solid #bd8329;background:#fff5dc;margin:18px 0;color:#754507;border-radius:4px;font-size:.92rem}.error{color:var(--bad);background:#fff0f1;padding:12px;border-radius:6px}.error:empty{display:none}.success{color:var(--green)}.progress-head{display:flex;justify-content:space-between;gap:12px}.bar{width:100%;height:10px;background:#e5ebf0;border-radius:6px;overflow:hidden;margin:13px 0}.bar i{display:block;height:100%;background:var(--green);border-radius:6px}progress{width:100%;height:18px;accent-color:var(--green)}.gate{display:grid;grid-template-columns:105px 1fr auto;gap:12px;border-bottom:1px solid var(--line);padding:13px 0}.gate:last-child{border:0}.gate time{font-weight:650;font-size:.9rem}.gate .meta{font-size:.85rem;color:var(--muted)}.filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:18px}.filter>div{max-width:280px;flex:1;min-width:145px}.filter input,.filter select{background:#fff}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin:14px 0;background:white}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;white-space:nowrap;background:#eaf0f5;color:#304e65;font-size:.84rem;padding:13px 15px;border-bottom:1px solid var(--line)}td{padding:13px 15px;border-bottom:1px solid #e7ecf0;vertical-align:top}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f8fbfc}td.n,th.n{text-align:right;white-space:nowrap}td.long{min-width:250px;max-width:540px}td.actions-cell{white-space:nowrap}.detail{font-size:.83rem;color:var(--muted);margin-top:4px;max-width:520px}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}.tabs button{background:white;color:var(--ink);border-color:var(--line);font-size:.9rem}.tabs button.active{background:var(--ink);color:white}.empty{padding:28px;color:var(--muted);background:#fafcfd;border:1px dashed #c5d0dc;border-radius:8px}.cash-chart{width:100%;height:auto;display:block;overflow:visible}.chart-note{font-size:.85rem;color:var(--muted)}.swatch{width:12px;height:12px;display:inline-block;background:#2f7c68;border-radius:2px;margin-right:6px}.definition{display:grid;grid-template-columns:1fr auto;gap:10px;border-bottom:1px solid var(--line);padding:12px 0}.definition b{font-variant-numeric:tabular-nums}dialog{border:1px solid var(--line);border-radius:12px;width:min(760px,calc(100% - 24px));max-height:90vh;padding:0;color:var(--ink);box-shadow:0 22px 70px #0b294542}dialog::backdrop{background:#10263c88}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 25px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0}.modal-body{padding:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field.wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.modal-actions .danger{margin-right:auto}#toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:white;padding:13px 20px;border-radius:8px;max-width:calc(100% - 48px);z-index:300;display:none}#toast.show{display:block}.doc-list{display:grid;gap:12px}.doc-item{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:13px 0}.scope{border-left:4px solid #3d7e6b}.number{font-variant-numeric:tabular-nums}.inline-code{overflow-wrap:anywhere;background:#edf1f5;padding:2px 5px}.secret{font-family:ui-monospace,monospace;overflow-wrap:anywhere;background:#edf4f8;padding:16px;user-select:all}.admin-form{display:grid;gap:14px;max-width:600px}.strong{font-weight:700}.doc-note{border-top:1px solid var(--line);padding-top:12px;margin-top:16px;color:var(--muted);font-size:.88rem}.radio-note{font-size:.85rem;color:var(--muted);margin-top:7px}
@media(max-width:1100px){.main{padding:25px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.two{grid-template-columns:1fr}.sidebar{padding:25px 12px}.shell{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:740px){.shell{display:block}.sidebar{display:none;position:static;height:auto;padding:20px}.sidebar.open{display:flex}.sidebar nav{grid-template-columns:1fr 1fr}.sidebar .foot{display:block}.main{padding:18px 16px 50px}.mobile-menu{display:inline-flex}.top{margin-bottom:22px;flex-wrap:wrap}.top .status{max-width:70%}.titlebar{display:block}.titlebar .actions{margin-top:15px}h1{font-size:1.7rem}.metric{padding:15px}.metric .value{font-size:1.25rem}.panel{padding:18px}.cards{gap:10px}.gate{grid-template-columns:1fr}.gate time{color:var(--green)}.gate .pill{grid-column:1;width:max-content}.form-grid{grid-template-columns:1fr}.modal-body{padding:18px}.field.wide{grid-column:auto}.doc-item{align-items:flex-start;flex-direction:column;gap:8px}.filter>div{min-width:130px}.modal-actions{flex-wrap:wrap}.chart-note{font-size:.8rem}}
@media print{.sidebar,.top,.actions,.filter,button,.tabs{display:none!important}.shell{display:block}.main{padding:0}.panel,.metric{break-inside:avoid}body{background:white}.table-wrap{overflow:visible}.cards{grid-template-columns:repeat(4,1fr)}}

/* Sahindal Interactive · Portal 2.0 */
:root{--ink:#202938;--muted:#748094;--green:#18815d;--line:#e1e6ee;--bg:#f4f6f9;--blue:#396ee8;--bad:#c14350;--warn:#936113;font-family:Inter,"Segoe UI",system-ui,sans-serif;color:var(--ink);font-size:14px;line-height:1.5}
body{background:var(--bg)}button,.button{background:var(--blue);border-color:var(--blue);border-radius:8px;font-weight:600;min-height:40px;transition:background .15s,box-shadow .15s}button:hover,.button:hover{filter:none;box-shadow:0 3px 10px #15294c16}.secondary{background:white;color:#34435b;border-color:#d6deea}.plain{background:transparent;border-color:transparent;color:#5b6d89}.danger{background:#fff;color:var(--bad);border-color:#e8bbc1}.small{font-size:.82rem;min-height:32px;padding:.35rem .65rem}input,select,textarea{border-color:#ccd5e2;min-height:42px;border-radius:7px}a{color:#3868ce}h1{font-size:2rem;letter-spacing:-.04em;margin-bottom:8px}h2{font-size:1.13rem;letter-spacing:-.015em}h3{font-size:1rem}.eyebrow{font-size:.69rem;color:#748298;letter-spacing:.12em;text-transform:uppercase;margin:0 0 7px;font-weight:750}.shell{grid-template-columns:248px minmax(0,1fr)}.sidebar{background:#121924;color:#fff;padding:29px 18px 18px;gap:22px;height:100dvh;overflow-y:auto}.brand{font-size:1.28rem;line-height:1.15;letter-spacing:-.02em;align-items:center;gap:12px}.brand img{height:40px;width:40px;object-fit:contain;flex-shrink:0}.brand span{display:block}.brand small{display:block;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;font-weight:500;margin-top:6px;color:#99aac4}.sidebar .brand{font-size:1.35rem;padding-left:9px}.project-switch{background:#1b2534;border:1px solid #2b3749;padding:13px 12px 12px;border-radius:10px}.project-switch label{font-size:.61rem;font-weight:650;letter-spacing:.12em;color:#8698b2;margin-bottom:4px}.project-switch select{background:transparent;color:#fff;border:0;padding:4px 0;min-height:30px;font-size:.96rem;font-weight:650}.project-switch select option{background:#1b2534}.project-switch small{display:block;font-size:.68rem;color:#8395ae;margin-top:3px}.sidebar nav{gap:4px}.sidebar nav button{font-size:.86rem;color:#a9b8cd;padding:10px 12px;min-height:41px;gap:12px;border-radius:7px}.sidebar nav svg{width:18px;height:18px;flex:none}.sidebar nav button.active{background:#2b4b8c;color:#fff;box-shadow:inset 3px 0 0 #79a2ff}.sidebar nav button:hover{background:#223149;color:#fff}.sidebar .foot{border-top:1px solid #2b3545;padding-top:20px;display:flex;align-items:center;gap:10px;font-size:.82rem;color:#e4ebf4}.sidebar .foot small{display:block;font-size:.64rem;color:#8191a9;margin-top:3px}.owner-avatar{width:32px;height:32px;border-radius:50%;background:#2d394c;display:grid;place-items:center;font-weight:700;color:#bfcde2;font-size:.75rem;flex:none}.account-line{display:flex;align-items:center;justify-content:space-between;font-size:.66rem;color:#8091a9;margin-top:-10px;gap:4px}.account-line .plain{color:#9cabc2;min-height:25px;font-size:.67rem;padding:0}.version-label{font-size:.62rem;color:#62738e;margin-top:-18px}.main{padding:24px 32px 44px;max-width:1840px;margin:0 auto}.top{margin-bottom:28px;gap:10px}.breadcrumb{font-size:.79rem;font-weight:500;color:#6c7e98}.breadcrumb span{padding:0 8px;color:#a8b3c2}.top .status{font-size:.7rem}.top .plain{font-size:.7rem}.titlebar{margin-bottom:14px;align-items:center}.titlebar .muted{font-size:.87rem;margin:0}.titlebar .pill{font-size:.65rem;margin-left:6px}.live-dot{display:inline-block;width:6px;height:6px;background:#259970;border-radius:50%;margin-right:5px;vertical-align:middle}.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:12px}.dashboard-toolbar p{font-size:.8rem;color:#7d8a9e;margin:0}.dashboard-toolbar label{display:flex;align-items:center;gap:8px;font-size:.72rem;color:#7b8799;margin:0;white-space:nowrap}.dashboard-toolbar select{width:115px;min-height:30px;font-size:.75rem;padding:3px 7px;background:transparent;border-color:#d8e0ea}.cards{gap:14px;margin:14px 0 22px}.metric{border-color:var(--line);padding:17px 19px;border-radius:10px;box-shadow:0 2px 2px #263e5802}.metric .label{display:flex;justify-content:space-between;gap:5px;align-items:center;font-size:.76rem;font-weight:550}.metric .label button{padding:0;min-height:16px;color:#9aabbe}.metric .value{font-size:1.78rem;font-weight:720;letter-spacing:-.045em;line-height:1.2;margin:10px 0 8px;font-variant-numeric:tabular-nums}.metric .value>span:not(.negative):not(.positive){font-size:1.1rem;font-weight:500;color:#728198}.metric small{font-size:.68rem;color:#7b889b;line-height:1.6}.metric small b{font-weight:650;color:#566881}.release-metric .value{font-size:1.6rem}.metric-baseline{display:block}.positive,.success{color:#18815d!important}.negative{color:#c14350!important}.pill{font-size:.72rem;background:#eef2f8;color:#697a93}.pill.good{background:#e6f5ed;color:#1f865f}.pill.bad{background:#fce9ec;color:#b93a48}.pill.warn{background:#fff2d7;color:#9a681d}.panel{padding:22px;border-radius:11px;margin-bottom:0;border-color:var(--line);box-shadow:0 2px 3px #24375802}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.panel-heading h2{margin:0}.panel-heading .eyebrow{margin-bottom:5px}.panel-heading>.eyebrow{margin:0;color:#3672b0}.panel-heading .plain{white-space:nowrap;padding:0;font-size:.73rem;color:#6a7b96}.dashboard-primary{display:grid;grid-template-columns:1.15fr 1fr;gap:18px;margin:20px 0 27px}.next{border-left:3px solid #477bec;background:linear-gradient(115deg,#fbfdff,#fff)}.next h2{font-size:1.2rem}.next p{font-size:.86rem;color:#677a94;max-width:650px}.next-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:23px}.next-bottom>.muted{font-size:.72rem}.next-bottom .actions button{font-size:.75rem;min-height:35px}.progress-head{font-size:.8rem;color:#6b7a90}progress{display:block;height:7px;appearance:none;border:0;background:#e8edf5;border-radius:6px;margin:12px 0 18px;overflow:hidden}progress::-webkit-progress-bar{background:#e8edf5;border-radius:6px}progress::-webkit-progress-value{background:#487bea;border-radius:6px}progress::-moz-progress-bar{background:#487bea;border-radius:6px}.capacity-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.capacity-numbers b{display:block;font-size:1.2rem;font-variant-numeric:tabular-nums}.capacity-numbers small{font-size:.67rem}.capacity-panel .chart-note{font-size:.67rem;margin-bottom:0;margin-top:15px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:24px 0 16px}.section-heading h2{font-size:1.1rem;margin:0}.section-heading p{margin-bottom:0}.segmented{display:inline-flex;background:#e7ecf3;padding:3px;border-radius:8px}.segmented button{font-size:.73rem;padding:5px 14px;min-height:29px;border:0;background:transparent;color:#7a879c;border-radius:6px}.segmented button.active{background:white;color:#3f64ac;box-shadow:0 1px 4px #1d30491a}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;align-items:start}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.66rem;color:#78869a;margin:0 0 8px}.chart-legend span{display:inline-flex;gap:5px;align-items:center}.chart-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.trend-chart{width:100%;height:auto;display:block;overflow:visible}.chart-note{font-size:.72rem;color:#7c8a9e;line-height:1.6}.chart-foot{border-top:1px solid #edf0f5;padding-top:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.73rem;color:#77859a}.chart-foot b{color:#52657e}.chart-data{font-size:.68rem;color:#7c8da4;margin-top:7px}.chart-data summary{cursor:pointer}.chart-data[open]{max-height:280px;overflow:auto}.chart-data table{font-size:.71rem}.chart-data td,.chart-data th{padding:8px}.chart-data td.long{min-width:85px}.mini-kpis{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:0 0 18px;border-bottom:1px solid #edf0f5}.mini-kpis b{display:block;font-size:1.2rem;margin-top:4px}.mini-kpis small{font-size:.68rem}.payment-row{display:grid;grid-template-columns:56px 1fr auto auto;align-items:center;gap:12px;border-bottom:1px solid #edf0f5;padding:13px 0}.payment-row:last-child{border:0}.payment-row b{font-size:.79rem}.payment-row small{display:block;font-size:.65rem;color:#8694a6;margin-top:3px}.payment-date{font-weight:650;font-size:.8rem;color:#62748e}.payment-date small{font-weight:400}.payment-row strong{font-size:.84rem;white-space:nowrap}.payment-row button{font-size:.66rem;padding:3px 8px;min-height:29px}.gate{grid-template-columns:82px 1fr auto;padding:13px 0;gap:10px}.gate time{font-size:.74rem;color:#718098}.gate b{font-size:.8rem}.gate .meta{font-size:.66rem;margin-top:4px}.gate .pill{font-size:.62rem;align-self:start}.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 32px}.phase-grid .progress-head{font-size:.72rem;gap:10px}.phase-grid progress{margin:9px 0 5px}.phase-grid small{font-size:.66rem}.dashboard-footnote{font-size:.68rem;color:#8d99aa;margin-top:18px}.compact-alert{font-size:.77rem;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff7e8;border-color:#d3a34f;padding:10px 14px}.compact-alert button{font-size:.73rem;white-space:nowrap;min-height:25px;padding:0;color:#9b722f}.tabs{border-bottom:1px solid #dfe5ee;padding-bottom:10px;gap:5px}.tabs button{font-size:.79rem;padding:6px 12px;min-height:34px;border:0;background:transparent;color:#788aa3}.tabs button.active{background:#e5edff;color:#3868ce}.empty{background:#f9fbfe;border-color:#d9e2ed;font-size:.81rem;padding:22px}.table-wrap{border-color:var(--line);border-radius:9px}table{font-size:.81rem}th{background:#f0f3f8;color:#74839a;font-weight:600;font-size:.73rem;padding:12px 14px}td{padding:13px 14px;border-color:#edf0f5}tbody tr:hover{background:#f8faff}.detail{font-size:.73rem}.definition{font-size:.82rem}.form-help{font-size:.79rem;color:#79899c;background:#f1f5fb;padding:12px;border-radius:7px}dialog{border-radius:13px;box-shadow:0 24px 80px #111b3652}dialog::backdrop{background:#111b3677}.modal-head{background:#f8faff}.login{max-width:460px;margin:9vh auto;padding:36px;box-shadow:0 15px 55px #1b355016}.login .brand{margin-bottom:26px;color:#263958}.login .brand small{color:#7689a7}.login h1{font-size:1.85rem}.login form{margin-top:25px}.two{margin:18px 0;gap:18px}.doc-item{font-size:.86rem}#toast{background:#1d2d47;box-shadow:0 5px 24px #12213b25;font-size:.86rem}
@media(min-width:1700px){.main{padding:30px 42px 55px}.metric .value{font-size:2rem}.release-metric .value{font-size:1.85rem}.panel{padding:25px}.sidebar{padding-top:35px}.chart-note{font-size:.77rem}.gate .meta{font-size:.73rem}}
@media(max-width:1200px){.shell{grid-template-columns:220px minmax(0,1fr)}.sidebar{padding:24px 13px;gap:18px}.sidebar .brand{font-size:1.16rem}.main{padding:22px}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid,.dashboard-primary{grid-template-columns:1fr}.phase-grid{grid-template-columns:repeat(2,1fr)}.top .status{font-size:.63rem}.chart-grid .panel{width:100%}.trend-chart{max-height:285px}}
@media(max-width:760px){.shell{display:block}.sidebar{display:none;height:auto;position:static;gap:18px}.sidebar.open{display:flex}.sidebar nav{grid-template-columns:1fr 1fr}.sidebar .foot{margin-top:0;padding-top:15px}.sidebar .version-label{margin-top:0}.account-line{margin-top:0}.main{padding:17px 14px 40px}.top{margin-bottom:20px;align-items:flex-start}.top .status{max-width:none;font-size:.62rem;text-align:right}.mobile-menu{display:inline-flex}.titlebar{display:block}.titlebar h1{font-size:1.8rem}.titlebar .actions{margin-top:15px}.titlebar .actions button{font-size:.8rem;flex:1}.dashboard-toolbar p{display:none}.dashboard-toolbar{justify-content:flex-end;margin-top:16px}.cards{gap:10px}.metric{padding:14px}.metric .value{font-size:1.45rem}.release-metric .value{font-size:1.28rem}.metric .label{font-size:.69rem}.metric small{font-size:.63rem}.panel{padding:18px}.compact-alert{align-items:flex-start;flex-direction:column}.dashboard-primary{margin-top:15px;gap:14px}.chart-grid{gap:14px}.section-heading{align-items:flex-start;flex-wrap:wrap}.phase-grid{grid-template-columns:1fr 1fr;gap:18px}.payment-row{gap:7px;grid-template-columns:45px 1fr auto}.payment-row button{grid-column:2/4;justify-self:end}.payment-row strong{font-size:.76rem}.gate{grid-template-columns:75px 1fr;gap:9px}.gate .pill{grid-column:2}.gate time{font-size:.69rem}.mini-kpis{gap:8px}.panel-heading .plain{font-size:.66rem}.next-bottom{align-items:flex-start}.dashboard-footnote .plain{display:block;padding-left:0}.login{padding:25px}}
@media(max-width:390px){.metric .value{font-size:1.2rem}.metric .label{font-size:.65rem}.release-metric .value{font-size:1.1rem}.metric small{font-size:.59rem}.phase-grid{grid-template-columns:1fr}}
@media print{body{background:white}.main{max-width:none}.dashboard-toolbar,.segmented,.chart-data,.dashboard-footnote button{display:none}.chart-grid,.dashboard-primary{grid-template-columns:1fr 1fr}.panel,.metric{box-shadow:none}.cards.dashboard-kpis{grid-template-columns:repeat(4,1fr)}}

/* Portal 2.2: task counts, prototype stages, protected concept gallery. */
.chart-wide{grid-column:1/-1;min-width:0}.chart-wide>.panel{margin:0}.mockup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.mockup-card{margin:0;background:white;border:1px solid #dce4eb;border-radius:12px;overflow:hidden}.mockup-card>a{display:block;background:#e7edf4;text-align:center}.mockup-card img{height:420px;width:100%;object-fit:contain;display:block}.mockup-card figcaption{padding:18px}.mockup-card h2{margin:0 0 8px}.mockup-card p{line-height:1.6}.mockup-card small{display:block;color:#67788e}.stage-notice{border-left:4px solid #477cf3;background:#eef3ff;padding:16px 20px;margin:0 0 20px;line-height:1.6}.stage-notice a{font-weight:600}.count-summary{font-size:24px;font-weight:700;color:#1d3550}.chart-data{max-height:300px;overflow:auto}@media(max-width:1100px){.mockup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.mockup-grid{grid-template-columns:1fr}.mockup-card img{height:auto;max-height:600px}}
/* Portal 2.3: shared forecast and calendar */
.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.chart-grid>.panel{height:100%}.chart-summary{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:.76rem;margin-bottom:17px}.chart-summary b{font-size:1.04rem}.chart-summary span{color:#728198}.accepted-mini{display:block;font-weight:700;font-size:.78rem}.release-key{display:flex;gap:8px 17px;flex-wrap:wrap;font-size:.67rem;margin:13px 0}.release-key>span{display:grid;grid-template-columns:8px auto;gap:2px 5px;align-items:center;color:#65748c}.release-key i{width:5px;height:16px;background:var(--marker);grid-row:1/3;border-radius:2px}.release-key b{color:#34465f;grid-column:2}.release-key small{grid-column:2;font-size:.59rem}.capacity-period{margin:22px 0 14px;background:#f3f6fb;padding:12px;border-radius:7px;font-size:.76rem}.capacity-period span{display:block;margin-top:4px;color:#65748c}.calendar-controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:15px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:20px;align-items:start}.calendar-months{display:grid;grid-template-columns:1fr;gap:22px}.calendar-months.all-months{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-month h3{font-size:.88rem;margin:0 0 12px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{font-size:.7rem;text-align:center;color:#7d8da1;padding:4px 0}.cal-day{display:flex;flex-direction:column;position:relative;align-items:stretch;justify-content:flex-start;gap:3px;min-width:0;min-height:68px;padding:6px;border:1px solid #dce4ee;border-radius:6px;color:#4a5b72;background:#f7f9fc;font-size:.8rem;font-weight:500;box-shadow:none}.cal-number{display:flex;justify-content:space-between;line-height:1.3;font-weight:650}.cal-hours{font-size:.62rem;line-height:1.3;text-align:left;white-space:nowrap}.cal-events{display:flex;gap:3px;flex-wrap:wrap;margin-top:auto;min-height:5px}.cal-dot{display:inline-block;width:5px;height:5px;min-width:5px;border-radius:50%;background:#df9a2f}.cal-dot.desiredRelease{background:#8555c4}.cal-dot.plannedRelease{background:#64748b}.cal-dot.estimatedRelease{background:#167da0}.cal-dot.milestone{background:#df9a2f}.cal-day.worked,.calendar-legend i.worked{background:#e3f3eb;border-color:#9acbb5;color:#166849}.cal-day.missing,.calendar-legend i.missing{background:#fbe9ed;border-color:#e8b6c1;color:#ac4054}.cal-day.planned,.calendar-legend i.planned{background:#eaf0ff;border-color:#becdf3;color:#375cab}.cal-day.vacation,.calendar-legend i.vacation{background:#ede8fa;border-color:#cbbcef;color:#694aa3}.cal-day.sick,.calendar-legend i.sick{background:#fff0d9;border-color:#e9ca99;color:#9a5e17}.cal-day.free,.calendar-legend i.free{background:#f5f6f8;border-color:#e3e7ed;color:#97a1b0}.cal-day.is-today{outline:2px solid #3668d6;outline-offset:1px}.cal-day.is-selected{box-shadow:inset 0 0 0 2px #1b304d}.cal-day:hover{filter:brightness(.97);transform:translateY(-1px)}.cal-blank{min-width:0}.cal-blank.outside{color:#c1c9d2;font-size:.7rem;padding:7px}.today-dot{color:#3668d6}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px 13px;margin:17px 0 8px;font-size:.63rem;color:#6d7d92}.calendar-legend>span{display:inline-flex;gap:5px;align-items:center}.calendar-legend i{width:9px;height:9px;border:1px solid;border-radius:2px}.calendar-legend i.milestone{border-color:#df9a2f;background:#df9a2f;border-radius:50%}.calendar-scroll{max-height:680px;overflow:auto;padding:3px}.calendar-compact .calendar-scroll{max-height:325px}.calendar-compact .cal-day,.all-months .cal-day{min-height:42px;padding:3px;font-size:.65rem;gap:1px}.calendar-compact .cal-hours,.all-months .cal-hours{font-size:.51rem}.calendar-compact .calendar-grid,.all-months .calendar-grid{gap:3px}.calendar-compact .calendar-month h3{font-size:.74rem;margin-bottom:7px}.calendar-compact .calendar-legend{margin-top:12px}.calendar-compact .chart-note{margin-bottom:0}.calendar-compact .week-grid .cal-day{min-height:74px;font-size:.85rem}.calendar-compact .week-grid .cal-hours{font-size:.65rem}.calendar-editor .form-grid{gap:11px}.calendar-editor label{font-size:.74rem}.calendar-editor input,.calendar-editor select{font-size:.82rem;padding:8px}.calendar-editor .field.wide{grid-column:1/-1}.calendar-editor .actions{margin:12px 0}.calendar-editor .actions button{font-size:.76rem}.calendar-editor .form-help{font-size:.73rem;line-height:1.6}.day-details{border-top:1px solid #e1e7f0;margin-top:22px;padding-top:17px;font-size:.82rem}.day-details p{margin-bottom:12px}.day-details h4{margin:20px 0 8px}.calendar-preview:not(:empty){padding:12px;border-left:3px solid #3c70e4;background:#eff4ff;font-size:.79rem}.calendar-preview p{margin-bottom:0}.calendar-list{margin-top:20px}.calendar-editor [hidden]{display:none!important}.dashboard-range{margin-top:22px}.phase-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stage-notice{font-size:.82rem}.metric small .metric-baseline{line-height:1.5}.calendar-panel .release-key{margin-bottom:0}
@media(min-width:1700px){.calendar-compact .calendar-months.all-months{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-compact .calendar-scroll{max-height:355px}}
@media(max-width:1100px){.calendar-layout{grid-template-columns:1fr}.calendar-editor .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-grid>.panel{padding:17px}.payment-row{grid-template-columns:43px 1fr auto;gap:7px}.payment-row button{grid-column:2/4;justify-self:end}.phase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-compact .calendar-months.all-months{grid-template-columns:1fr}.calendar-compact .calendar-scroll{max-height:340px}.chart-summary span{font-size:.67rem}}
@media(max-width:900px){.chart-grid{grid-template-columns:1fr}.calendar-compact .calendar-months.all-months{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-compact .calendar-scroll{max-height:380px}.trend-chart{max-height:none}}
@media(max-width:480px){.calendar-months.all-months{grid-template-columns:1fr}.calendar-compact .calendar-months.all-months{grid-template-columns:1fr}.calendar-editor .actions{align-items:stretch}.calendar-editor .actions button{flex:1}.cal-day{min-height:55px;padding:4px}.calendar-layout{display:block}.calendar-editor{margin-top:16px}.phase-grid{grid-template-columns:1fr}.release-key{gap:10px}.chart-summary{display:block}.chart-summary span{display:block;margin-top:5px}}
@media print{.calendar-scroll{max-height:none;overflow:visible}.calendar-editor form,.calendar-controls{display:none}.calendar-layout{grid-template-columns:1fr}.chart-grid{grid-template-columns:1fr 1fr}.cal-day{break-inside:avoid}}

/* Layout 2.3.1: next step and capacity share the calendar's full height. */
.dashboard-focus{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-areas:"next calendar" "capacity calendar";
  gap:18px;
  align-items:stretch;
  margin-bottom:20px;
}
.dashboard-focus>[data-panel="next"]{grid-area:next}
.dashboard-focus>[data-panel="capacity"]{grid-area:capacity}
.dashboard-focus>[data-panel="calendar"]{grid-area:calendar}
.dashboard-focus>.panel{min-width:0;margin-bottom:0}
.dashboard-milestones{margin-bottom:20px}
.dashboard-milestones>.panel{width:100%;margin-bottom:0}
@media(max-width:900px){
  .dashboard-focus{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"next" "capacity" "calendar";
    gap:14px;
  }
}
@media print{
  .dashboard-focus{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-areas:"next calendar" "capacity calendar";
  }
}


/* Keep the full Charlie project name readable in the inherited sidebar. */
#project-select{font-size:12px;padding-left:0;padding-right:0}
