/* Application shell and reusable layout. Page-specific differences live in pages.css. */
.layout { display:flex; min-height:100vh; }
body[data-navigating]::before { content:""; position:fixed; top:0; left:0; right:0; height:2px; background:var(--accent); z-index:1000; }
.primary-nav a.is-pending { box-shadow:inset 3px 0 var(--accent); }
#navigation-status { position:fixed; bottom:20px; right:24px; max-width:460px; padding:12px 18px; border:1px solid var(--line); border-radius:8px; background:var(--card); color:var(--text); box-shadow:0 4px 20px #0002; z-index:1000; }
.sidebar { flex:0 0 226px; padding:24px 16px; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; overflow-y:auto; }
.sidebar a { color:var(--sidebar-link-blue); text-decoration:none; font-weight:500; padding:10px 12px; border-radius:8px; white-space:nowrap; margin:2px 0; }
.sidebar a:hover { background:var(--nav-hover); color:var(--card); }
.sidebar a.active { color:var(--card); }
.sidebar .brand { display:flex; align-items:center; gap:10px; color:var(--card); font-weight:700; line-height:1.25; margin-bottom:0; padding:5px 7px; }
.sidebar .brand:hover { background:transparent; }
.brand-mark { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:9px; font-size:11px; letter-spacing:.04em; }
.brand-sub { color:var(--brand-sub-ink); font-size:12px; padding:0 49px 23px; border-bottom:1px solid var(--brand-sub-line); margin:0 0 18px; }
.primary-nav { display:grid; }
.primary-nav a { display:flex; align-items:center; gap:10px; min-height:43px; font-size:14px; }
.nav-icon { display:inline-flex; align-items:center; justify-content:center; width:22px; color:var(--nav-icon-ink); font-size:16px; }
.primary-nav a.active .nav-icon { color:var(--card); }
.nav-label { color:var(--nav-label-ink); font-size:10px; font-weight:700; letter-spacing:.09em; padding:16px 12px 5px; text-transform:uppercase; }
.nav-step { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; margin-right:8px; border-radius:50%; background:var(--nav-step-bg); font-size:10px; }
.sidebar-foot { margin-top:auto; padding:16px 10px 4px; font-size:11px; }
.status-dot { display:inline-block; width:7px; height:7px; background:var(--status-dot); border-radius:50%; margin-right:4px; }
main { min-width:0; }
.section { margin-top:28px; }
.section-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:10px; }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; }
.two-col { display:grid; align-items:start; }
.sticky-panel { position:sticky; }
@media (max-width:980px) { .two-col { grid-template-columns:1fr; } }
@media (max-width:980px) { .sticky-panel { position:static; } }
@media (max-width:720px) { .layout { display:block; } }
@media (max-width:720px) { .sidebar { position:static; width:100%; height:auto; padding:8px; flex-direction:row; overflow-x:auto; align-items:center; } }
@media (max-width:720px) { .sidebar .brand { margin:0 8px 0 0; padding:4px; } }
@media (max-width:720px) { .brand-mark,.brand-sub,.nav-label,.sidebar-foot { display:none; } }
@media (max-width:720px) { .primary-nav { display:flex; } }
@media (max-width:720px) { .sidebar a { padding:8px 10px; } }
@media (max-width:720px) { .nav-step { display:none; } }
@media (max-width:720px) { main { padding:20px 14px 38px; } }
@media (max-width:720px) { .grid { grid-template-columns:repeat(2,1fr); } }
.sidebar .nav-group { color:var(--sidebar-group-ink); font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:0 12px; margin:12px 0 4px; }
.form-grid input,.form-grid select,.form-grid textarea,.document-start-form input,.document-start-form select { width:100%; }
@media (max-width:820px) { .form-grid,.product-form { grid-template-columns:1fr; } }
@media (max-width:820px) { .form-grid .span-2,.product-form button { grid-column:1; } }
.sidebar { width:212px; flex-basis:212px; background:var(--sidebar-bg); padding-top:32px; }
.sidebar a.active { background:var(--sidebar-active-bg); box-shadow:inset 3px 0 var(--sidebar-active-bar); }
.brand-mark { background:var(--brand-mark-bg); color:var(--brand-mark-ink); }
.sidebar .brand { font-size:15px; }
.nav-group { font-size:11px; color:var(--nav-group-ink); padding:12px 12px 5px; }
.primary-nav { gap:2px; }
.sidebar-foot { color:var(--sidebar-foot-ink); }
.form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:18px 0; }
.form-grid .wide { grid-column:span 2; }
.form-options { display:flex; flex-wrap:wrap; gap:16px 24px; margin:18px 0; }
.form-options label,.route-checks label { gap:7px; }
.sticky-panel { top:24px; align-self:start; }
.sticky-panel>.panel:not(:where(.panel--inset)):first-child { border-top:3px solid var(--panel-accent-line); }
.product-opportunities { display:grid; margin-top:24px; }
@media(max-width:1150px) { main { padding:28px 24px; } }
@media(max-width:1150px) { .two-col { grid-template-columns:minmax(0,1fr) 270px; } }
@media(max-width:1150px) { .sidebar { width:190px; flex-basis:190px; } }
@media(max-width:850px) { .sidebar { position:relative; width:auto; flex-basis:auto; height:auto; } }
@media(max-width:850px) { .layout { display:block; } }
@media(max-width:850px) { .primary-nav { display:flex; flex-wrap:wrap; } }
@media(max-width:850px) { .nav-group,.sidebar-foot,.brand-sub { display:none; } }
@media(max-width:850px) { .sidebar .brand { margin-bottom:10px; } }
@media(max-width:850px) { .primary-nav a { font-size:12px; min-height:32px; padding:6px; } }
@media(max-width:850px) { .sticky-panel { width:100%; position:static; } }
@media(max-width:850px) { .form-grid,.search-composer .form-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:850px) { .product-opportunities { grid-template-columns:1fr; } }
@media(max-width:850px) { .form-grid .wide { grid-column:1/-1; } }
@media(min-width:1280px) { .product-opportunities { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.comparison-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.comparison-grid>div { background:var(--soft); padding:16px; border-radius:10px; }
@media(max-width:850px) { .comparison-grid { grid-template-columns:1fr; } }
main { max-width:none; margin:0; flex:1 1 0; padding:28px 28px 64px; overflow-x:visible; }
.layout { width:100%; }
.sidebar { flex-shrink:0; }
main>* { min-width:0; }
.form-grid { align-items:start; }
.form-grid label { display:flex; flex-direction:column; justify-content:flex-start; align-self:start; gap:7px; min-width:0; }
.form-grid label input,.form-grid label select { margin-top:0; min-height:44px; align-self:start; }
.form-grid label textarea { margin-top:0; min-height:96px; resize:vertical; }
.form-grid input[type=checkbox],.form-options input[type=checkbox] { min-height:0; flex:none; width:17px; height:17px; }
.form-options label,.route-checks label { display:flex; flex-direction:row; align-items:center; }
.form-grid .span-2 { grid-column:1/-1; }
.form-grid .form-options { margin:4px 0; }
.two-col { grid-template-columns:minmax(0,1fr) minmax(240px,300px); gap:24px; }
.two-col>* { min-width:0; width:100%; }
.product-opportunities { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.section-head { flex-wrap:wrap; }
.model-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.model-guide article { padding:18px; background:var(--model-guide-bg); border-radius:10px; }
.model-guide p { font-size:14px; margin:8px 0 0; }
@media(min-width:1700px) { main { padding:32px 36px; } }
@media(max-width:1200px) { .two-col { grid-template-columns:minmax(0,1fr) 250px; } }
@media(max-width:1200px) { .product-opportunities { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:850px) { main { padding:22px 16px 50px; } }
@media(max-width:850px) { .model-guide { grid-template-columns:1fr; } }
@media(max-width:850px) { .two-col { display:flex; flex-direction:column; } }
@media(max-width:850px) { .sticky-panel { order:0; } }
@media(max-width:850px) { .sticky-panel>#decision { display:block; } }
@media(max-width:850px) { .form-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:560px) { .form-grid,.search-composer .form-grid,.route-row { grid-template-columns:1fr; } }
@media(max-width:560px) { .form-grid .wide { grid-column:1; } }
@media(max-width:560px) { .product-opportunities { grid-template-columns:1fr; } }
@media(min-width:761px) { .sidebar { padding-top:18px; } }
@media(min-width:761px) { .primary-nav { gap:2px; } }
@media(min-width:761px) { .primary-nav a { min-height:36px; padding:7px 10px; margin:0; } }
@media(min-width:761px) { .brand-sub { padding-bottom:14px; margin-bottom:10px; } }
:where(.ui-refined) .section { margin-top:var(--sp-5); }
:where(.ui-refined) .section-head { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:var(--sp-3); margin-bottom:var(--sp-3); }
:where(.ui-refined) .comparison-grid > div { background:var(--soft); padding:var(--sp-4); border-radius:var(--r-md); }
:where(.ui-refined) .sticky-panel { position:sticky; top:var(--sp-5); align-self:start; }
:where(.ui-refined) .sticky-panel > .panel:not(:where(.panel--inset)):first-child { border-top:3px solid var(--accent); }
@media (max-width:850px) { :where(.ui-refined) .sticky-panel { position:static; width:100%; order:0; } }
@media (max-width:850px) { :where(.ui-refined) .sticky-panel > #decision { display:block; } }
