html, body { height:100%; overflow:hidden; }
.app-shell { height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); }
.sidebar { position:relative; display:flex; flex-direction:column; gap:16px; padding:18px 14px; background:var(--surface); border-right:1px solid var(--border); min-width:0; transition:width .2s ease; }
.brand-block { display:flex; align-items:center; gap:10px; min-height:48px; overflow:hidden; }
.brand-mark { width:42px; height:42px; flex:0 0 42px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:var(--accent); color:#fff; font-weight:900; }
.brand-copy { min-width:0; display:flex; flex-direction:column; }
.brand-copy strong { white-space:nowrap; }
.brand-copy span { color:var(--muted); font-size:11px; white-space:nowrap; }
.sidebar-toggle { align-self:flex-start; width:38px; height:38px; border:1px solid var(--border); border-radius:11px; background:var(--surface-soft); color:var(--text); cursor:pointer; }
.sidebar-nav { display:grid; gap:7px; }
.nav-item { display:flex; align-items:center; gap:11px; min-height:42px; padding:0 12px; border-radius:12px; text-decoration:none; color:var(--muted); font-weight:750; overflow:hidden; white-space:nowrap; }
.nav-item.is-active { color:var(--accent); background:var(--accent-soft); box-shadow:inset 3px 0 0 var(--accent); }
.nav-item.is-disabled { opacity:.48; cursor:not-allowed; }
.nav-icon { width:23px; text-align:center; font-size:18px; }
.sidebar-footer { margin-top:auto; color:var(--muted); font-size:12px; padding:0 12px; }
body.sidebar-collapsed .app-shell { grid-template-columns:76px minmax(0,1fr); }
body.sidebar-collapsed .brand-copy, body.sidebar-collapsed .nav-label { display:none; }
body.sidebar-collapsed .nav-item { justify-content:center; padding:0; }
body.sidebar-collapsed .sidebar-footer { text-align:center; padding:0; font-size:10px; }

.main-area { min-width:0; height:100vh; display:grid; grid-template-rows:auto minmax(0,1fr); }
.topbar { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:20px 26px 16px; border-bottom:1px solid var(--border); background:var(--surface); }
.topbar h1 { margin:0 0 6px; font-size:25px; }
.topbar p { margin:0; color:var(--muted); }
.topbar-actions { display:flex; gap:10px; }
.selector { position:relative; }
.selector summary { list-style:none; min-height:38px; padding:9px 12px; border:1px solid var(--border); border-radius:11px; background:var(--surface-soft); cursor:pointer; font-weight:750; white-space:nowrap; }
.selector summary::-webkit-details-marker { display:none; }
.selector-menu { position:absolute; top:46px; right:0; min-width:150px; display:grid; padding:7px; border:1px solid var(--border); border-radius:12px; background:var(--surface); box-shadow:var(--shadow); z-index:20; }
.selector-menu a { padding:9px 10px; border-radius:8px; text-decoration:none; }
.selector-menu a:hover { background:var(--accent-soft); color:var(--accent); }
.content-area { min-height:0; overflow:auto; padding:18px 26px 26px; }
.workspace-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr); grid-template-rows:auto minmax(220px,1fr); gap:16px; min-height:100%; }
.panel { padding:18px; min-width:0; }
.panel-status { grid-column:1 / -1; }
.status-grid { margin-top:16px; display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:12px; }
.status-card { padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--surface-soft); }
.status-card span { display:block; color:var(--muted); font-size:12px; margin-bottom:7px; }
.status-card strong { font-size:17px; }
.panel-decisions { min-height:0; }
.panel-decisions .decision-list { margin-top:16px; }
.panel-next { display:flex; flex-direction:column; }
.next-stage { margin-top:18px; display:flex; gap:16px; align-items:center; padding:18px; border:1px dashed var(--accent); border-radius:15px; background:var(--accent-soft); }
.next-stage p { margin:0; line-height:1.5; }
.next-number { font-size:34px; font-weight:900; color:var(--accent); }
@media (max-width:1100px) { .workspace-grid{grid-template-columns:1fr;} .panel-status{grid-column:auto;} .status-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }

.sidebar-account { margin-top:auto; display:grid; gap:4px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); overflow:hidden; }
.sidebar-account > strong { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sidebar-account > span { color:var(--muted); font-size:11px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sidebar-account form { margin-top:6px; }
.sidebar-logout { width:100%; min-height:34px; display:flex; align-items:center; gap:9px; padding:0 9px; border:0; border-radius:9px; background:transparent; color:var(--muted); font-weight:750; cursor:pointer; }
.sidebar-logout:hover { background:var(--accent-soft); color:var(--accent); }
body.sidebar-collapsed .sidebar-account { padding:6px; align-items:center; }
body.sidebar-collapsed .sidebar-account > strong, body.sidebar-collapsed .sidebar-account > span { display:none; }
body.sidebar-collapsed .sidebar-logout { justify-content:center; padding:0; }
body.sidebar-collapsed .sidebar-footer { margin-top:0; }

.auth-body { height:auto; min-height:100vh; overflow:auto; }
.auth-page-shell { min-height:100vh; display:grid; grid-template-columns:minmax(360px,42%) minmax(520px,58%); }
.auth-brand-panel { position:relative; display:flex; flex-direction:column; justify-content:center; padding:70px clamp(48px,7vw,110px); background:linear-gradient(145deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#10243f)); color:#fff; overflow:hidden; }
.auth-brand-panel::after { content:""; position:absolute; width:420px; height:420px; right:-170px; bottom:-170px; border:70px solid rgba(255,255,255,.08); border-radius:50%; }
.auth-brand-mark { width:66px; height:66px; display:flex; align-items:center; justify-content:center; border-radius:20px; background:#fff; color:var(--accent); font-weight:900; font-size:21px; margin-bottom:28px; }
.auth-brand-panel h1 { margin:0 0 10px; font-size:42px; line-height:1.08; }
.auth-brand-panel p { margin:0; max-width:520px; color:rgba(255,255,255,.82); font-size:17px; line-height:1.55; }
.auth-value-list { margin-top:38px; display:grid; gap:13px; max-width:520px; }
.auth-value-list > div { display:flex; gap:11px; align-items:flex-start; font-size:14px; line-height:1.45; }
.auth-value-list span { width:24px; height:24px; flex:0 0 24px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.16); font-weight:900; }
.auth-main { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:84px 36px 42px; }
.auth-top-actions { position:absolute; top:24px; right:28px; }
.auth-card { width:min(620px,100%); padding:28px; border:1px solid var(--border); border-radius:20px; background:var(--surface); box-shadow:var(--shadow); }
.dashboard-grid { grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr); }
.account-status-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.status-card small { display:block; margin-top:7px; color:var(--muted); font-size:11px; overflow-wrap:anywhere; }
.trial-panel { min-height:0; }
.trial-summary { margin-top:16px; display:grid; grid-template-columns:150px minmax(0,1fr); gap:18px; align-items:stretch; }
.trial-days { display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid var(--accent); border-radius:16px; background:var(--accent-soft); min-height:150px; }
.trial-days strong { font-size:52px; line-height:1; color:var(--accent); }
.trial-days span { margin-top:7px; color:var(--muted); font-size:12px; text-align:center; }
.trial-details { display:grid; gap:10px; }
.trial-details > div { display:flex; justify-content:space-between; gap:16px; padding:12px 14px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
.trial-details span { color:var(--muted); font-size:12px; }
.trial-details strong { text-align:right; font-size:13px; }
.trial-summary.is-expired .trial-days { border-color:var(--danger); background:color-mix(in srgb,var(--danger) 8%,var(--surface)); }
.trial-summary.is-expired .trial-days strong { color:var(--danger); }
.trial-note { margin-top:14px; color:var(--muted); font-size:12px; line-height:1.45; }
.session-panel p { line-height:1.5; }
@media (max-width:1200px) { .auth-page-shell{grid-template-columns:38% minmax(0,62%);} .auth-brand-panel{padding:60px 36px;} .account-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:900px) { .auth-page-shell{grid-template-columns:1fr;} .auth-brand-panel{display:none;} .auth-main{min-height:100vh;} }

.wizard-panel, .niche-detail-panel { min-height:100%; }
.wizard-panel { max-width:1180px; margin:0 auto; }
.wizard-panel .wizard-progress { margin-top:34px; }
.niche-detail-panel { overflow:auto; }

/* Patch 000.001.004: simplified client shell */
.brand-copy span { display:none; }
.page-description:empty { display:none; }
.topbar-button { min-height:38px; padding:0 13px; border:1px solid var(--border); border-radius:11px; background:var(--surface-soft); color:var(--text); font-weight:750; cursor:pointer; white-space:nowrap; }
.topbar-button:hover { border-color:var(--accent); color:var(--accent); }
.sidebar-bottom { margin-top:auto; display:grid; gap:8px; }
.sidebar-version { padding:0 10px; color:var(--muted); font-size:11px; }
.sidebar-bottom form { margin:0; }
.sidebar-bottom .sidebar-logout { width:100%; min-height:42px; padding:0 12px; border:1px solid var(--border); border-radius:12px; background:var(--surface-soft); }
body.sidebar-collapsed .sidebar-bottom .sidebar-version { padding:0; text-align:center; font-size:9px; overflow:hidden; }
body.sidebar-collapsed .sidebar-bottom .sidebar-logout { justify-content:center; padding:0; }
.dashboard-grid { grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); grid-template-rows:auto minmax(260px,1fr); }
.session-panel { min-height:0; }
.organization-form .form-grid.three-columns { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1100px) { .organization-form .form-grid.three-columns { grid-template-columns:1fr; } }
