

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');
:root {
 color-scheme: light;
 --page:#f7f1e9; --paper:#fffdfa; --panel:#fdfaf5; --panel2:#f3ebe1; --panel3:#eee2d4; --line:#e3d7c9; --line2:#d4c3b0;
 --ink:#30251c; --ink-strong:#24190f; --muted:#817367; --quiet:#a09183; --brown:#412f20; --brown2:#322316;
 --orange:#f4781c; --orange-deep:#c35d0e; --gold:#d9bd83; --gold2:#b9975e;
 --tint:#fff0df; --hover:#f8f0e6; --selected:#fff3e8; --green:#347a57; --green-bg:#e3f3e7;
 --warn:#9f651a; --warn-bg:#fff2da; --red:#a84a49; --red-bg:#f8e7e4; --focus:0 0 0 3px #f4781c36;
 --shadow-card:0 1px 1px #49301d0c,0 8px 23px -17px #4e311c50,0 20px 42px -34px #4b301a43;
 --shadow-float:0 18px 55px -20px #2e1e13a1,0 4px 17px -6px #321d1177;
 --control-h:35px; --table-row-h:42px; --card-pad:17px;
 font-family:Poppins,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:13px;
}
:root[data-density="comfort"]{--control-h:43px;--table-row-h:53px;--card-pad:22px;}
:root[data-theme="dark"] {
 color-scheme:dark; --page:#201c19;--paper:#312a23;--panel:#302922;--panel2:#3b322b;--panel3:#4a3a2d;--line:#534337;--line2:#67503f;
 --ink:#f2e8df;--ink-strong:#fff5eb;--muted:#bdae9f;--quiet:#9f8d7e;--brown:#241c16;--brown2:#1e1612;
 --orange:#f58a35;--orange-deep:#ffaf6a;--gold:#d9bd83;--gold2:#c3a475;--tint:#543b29;--hover:#45382f;--selected:#543d2b;
 --green:#99d4ae;--green-bg:#284b39;--warn:#efc387;--warn-bg:#594329;--red:#ffb1a7;--red-bg:#5f3633;
 --shadow-card:0 1px 0 #ffffff08,0 14px 35px -20px #050302b7;--shadow-float:0 26px 65px #090605ce;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--page);color:var(--ink);line-height:1.5}
button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--orange);outline-offset:2px}a{color:inherit;text-decoration:none}
svg.i{width:17px;height:17px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:none}
.app{display:grid;grid-template-columns:222px minmax(0,1fr);min-height:100vh}
.sidebar{background:radial-gradient(ellipse at -30% -10%,#9a603140,transparent 45%),linear-gradient(163deg,#4e3928 0%,#372619 54%,#291c13 100%);color:#f6ead9;display:flex;flex-direction:column;gap:19px;padding:23px 13px 19px;box-shadow:7px 0 33px -20px #21170bb5;position:relative;z-index:3}
.logo{display:flex;align-items:center;gap:11px;padding:0 10px;margin-bottom:11px}.logo-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#ffb76d,#ee761b 72%);box-shadow:0 8px 23px #f4781c38;color:#3b2719;font-size:23px;font-weight:700;letter-spacing:-.06em}.logo strong{font-size:13px;letter-spacing:.085em}.logo small{display:block;color:#cbb499;font-size:9px;letter-spacing:.14em;text-transform:uppercase;margin-top:0}
.section-label{padding:6px 13px 7px;font-size:9px;letter-spacing:.18em;color:#c5aa8b;font-weight:700;text-transform:uppercase}
.side-nav{display:grid;gap:3px}.side-link{width:100%;min-height:39px;display:flex;align-items:center;gap:11px;background:transparent;color:#d9c7b4;border:1px solid transparent;border-radius:9px;text-align:left;font-size:11.5px;padding:0 13px;transition:background .17s,color .17s}.side-link:hover{background:#ffffff12;color:#fff}.side-link.active{background:linear-gradient(90deg,#c3763438,#ffffff08);border-color:#dcbd8c36;color:#fff4e7;box-shadow:inset 3px 0 #f4781c}.side-link.active .i{color:#ffa862}.side-link .side-tail{margin-left:auto;font-size:9px;color:#ddbb90}
.side-spacer{flex:1}.side-foot{padding:14px 10px 0;border-top:1px solid #dcc4a12c;display:flex;align-items:center;gap:10px}.avatar{background:linear-gradient(135deg,#d9bd83,#f4dfb4);width:31px;height:31px;border-radius:9px;color:#503523;font-weight:700;display:grid;place-items:center;font-size:10px;border:1px solid #fce5ba77}.side-foot strong{font-size:11px;display:block}.side-foot small{font-size:9.5px;color:#c9b096}
.main{min-width:0;position:relative;background:radial-gradient(ellipse 740px 240px at 75% -80px,#f4bf8744,transparent 75%),var(--page)}
:root[data-theme="dark"] .main{background:radial-gradient(ellipse 740px 260px at 75% -80px,#8e48252b,transparent 75%),var(--page)}
.topbar{position:sticky;top:0;z-index:7;height:58px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 31px;background:color-mix(in srgb,var(--paper) 86%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.crumb{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px;white-space:nowrap}.crumb b{font-weight:600;color:var(--ink)}.crumb .i{width:13px;height:13px;color:var(--quiet)}
.top-actions{display:flex;align-items:center;gap:8px}.top-search{display:flex;align-items:center;gap:9px;border:1px solid var(--line);color:var(--muted);background:var(--panel2);padding:0 11px;height:32px;border-radius:8px;min-width:185px;font-size:10.5px}.kbd{border:1px solid var(--line2);border-radius:4px;padding:1px 4px;margin-left:auto;color:var(--quiet);font-size:9px}.icon-btn{border:1px solid var(--line);background:linear-gradient(150deg,var(--paper),var(--panel2));display:grid;place-items:center;width:33px;height:33px;border-radius:8px;color:var(--muted);transition:border-color .15s,background .15s}.icon-btn:hover{border-color:var(--gold2);color:var(--ink)}.user-avatar{height:31px;width:31px;border-radius:9px;background:linear-gradient(150deg,#eddbbe,#d9bd83);display:grid;place-items:center;font-size:10px;color:#553b25;font-weight:700;border:1px solid #ceae80}
.content{max-width:1560px;margin:auto;padding:26px 31px 58px}
.preview-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:19px;flex-wrap:wrap}.preview-badge{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:650;color:var(--orange-deep);text-transform:uppercase;letter-spacing:.1em}.preview-badge::before{content:"";width:7px;height:7px;background:var(--orange);border-radius:50%;box-shadow:0 0 0 3px #f4781c22}.preview-controls{display:flex;gap:6px;align-items:center}.tiny-control{height:27px;display:flex;gap:6px;align-items:center;border:1px solid var(--line);background:var(--paper);padding:0 9px;border-radius:7px;font-size:10px;color:var(--muted)}.tiny-control:hover{border-color:var(--gold2);color:var(--ink)}.tiny-control[aria-pressed="true"]{background:var(--selected);border-color:var(--gold2);color:var(--ink)}
.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}.page-kicker{font-size:10px;color:var(--orange-deep);letter-spacing:.16em;text-transform:uppercase;font-weight:700;margin-bottom:5px}.heading h1{font-size:23px;line-height:1.2;letter-spacing:-.055em;color:var(--ink-strong);font-weight:650;margin:0 0 5px}.heading p{font-size:11px;margin:0;color:var(--muted)}.heading-actions{display:flex;gap:8px;align-items:center}
.btn{border:1px solid var(--line2);color:var(--ink);border-radius:8px;min-height:var(--control-h);display:inline-flex;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:11px;font-weight:600;white-space:nowrap;box-shadow:0 1px 2px #2b190d0d;background:linear-gradient(180deg,var(--paper),var(--panel2));transition:filter .16s,transform .16s,border-color .16s}.btn:hover{border-color:var(--gold2);filter:brightness(.99)}.btn.primary{background:linear-gradient(125deg,#ffb068,#f4781c 58%,#e66a11);border-color:#ea7c28;color:#382416;box-shadow:inset 0 1px 0 #ffddb7bd,0 7px 14px -9px #ee6a19b9}.btn.primary:hover{transform:translateY(-1px);filter:brightness(1.045)}.btn.quiet{background:transparent;box-shadow:none}.btn.small{min-height:29px;padding:0 9px;font-size:10px}
.hero{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.85fr);gap:13px;margin-bottom:13px}
.hero-main{min-width:0;position:relative;overflow:hidden;border:1px solid #97734c;border-radius:13px;background:radial-gradient(circle at 93% 20%,#e7893c50,transparent 40%),linear-gradient(118deg,#4f3a29,#3b2a1d 64%,#68462d);color:#fff5e8;min-height:154px;box-shadow:0 18px 35px -28px #312015ae}
.hero-content{position:relative;z-index:1;max-width:63%;padding:20px 22px}.hero-eyebrow{font-size:9px;letter-spacing:.16em;font-weight:750;color:#eaca9c;text-transform:uppercase}.hero-content h2{font-size:19px;line-height:1.28;letter-spacing:-.045em;margin:8px 0 6px;font-weight:600}.hero-content p{font-size:10.5px;color:#e4cfb5;line-height:1.6;margin:0 0 11px}.hero-link{font-size:10px;color:#ffbd7c;font-weight:700;background:none;border:0;padding:0;display:inline-flex;gap:5px;align-items:center}
.hero-art{position:absolute;right:0;top:0;width:45%;height:100%;pointer-events:none}.art-ring{position:absolute;border:1px solid #eacb9750;border-radius:50%;width:176px;height:176px;right:28px;top:-8px}.art-ring:before,.art-ring:after{content:"";position:absolute;border:1px solid #eacb972d;border-radius:50%;inset:20px}.art-ring:after{inset:43px}.art-card{position:absolute;width:155px;height:73px;right:29px;top:43px;border:1px solid #f5d6a86e;border-radius:11px;background:linear-gradient(120deg,#fff8e329,#e7a96e0d);box-shadow:0 11px 25px #291a1435;transform:rotate(-8deg);backdrop-filter:blur(3px);padding:12px}.art-bar{height:6px;background:#f6dcc9a8;border-radius:9px;margin-bottom:9px;width:75%}.art-bar:nth-child(2){width:48%;background:#f7a65d}.art-bar:nth-child(3){width:67%;opacity:.43}
.hero-side{background:linear-gradient(135deg,var(--paper),var(--panel2));border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-card);padding:16px 17px;display:flex;flex-direction:column;justify-content:space-between;gap:13px}.hero-side .mini-label{font-size:10px;color:var(--muted)}.hero-side strong{display:block;font-size:13px;letter-spacing:-.02em;margin-top:2px}.mini-progress{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.mini-progress i{height:15px;background:linear-gradient(180deg,#f8bb82,#ed7c26);border-radius:3px}.mini-progress i:nth-child(9){opacity:.65}.mini-progress i:nth-child(n+10){background:var(--panel3)}.progress-foot{display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.progress-foot b{color:var(--green);font-weight:700}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.kpi{border:1px solid var(--line);border-radius:12px;padding:14px var(--card-pad);background:linear-gradient(145deg,var(--paper),var(--panel2));box-shadow:var(--shadow-card);min-width:0;position:relative;overflow:hidden;transition:transform .16s,border-color .16s}.kpi:hover{transform:translateY(-2px);border-color:var(--gold2)}.kpi.special{background:linear-gradient(130deg,#f5e6d3,#ffe4c5);border-color:#e9c19a}.kpi.gold{background:linear-gradient(125deg,#fbf5e7,#f1e2c6);border-color:#e6d0ae}:root[data-theme="dark"] .kpi.special{background:linear-gradient(130deg,#62442c,#533521)}:root[data-theme="dark"] .kpi.gold{background:linear-gradient(130deg,#4d3d2a,#403122)}
.kpi-top{display:flex;justify-content:space-between;gap:8px;align-items:center;color:var(--muted);font-size:10px}.kpi-icon{width:27px;height:27px;border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;color:var(--orange-deep);background:#fffaf594}.kpi-value{font-size:26px;font-weight:650;letter-spacing:-.07em;line-height:1.2;margin:9px 0 5px;color:var(--ink-strong);font-variant-numeric:tabular-nums}.kpi-foot{font-size:9.5px;color:var(--muted)}.kpi-foot em{font-style:normal;color:var(--green);font-weight:700}.kpi-foot .alert{color:var(--orange-deep)}.kpi .spark{position:absolute;right:13px;bottom:17px;width:65px;height:29px;opacity:.64}.kpi .spark path{fill:none;stroke:var(--orange);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.workgrid{display:grid;grid-template-columns:minmax(0,1.74fr) minmax(270px,.73fr);gap:13px;align-items:start}
.surface{background:linear-gradient(155deg,var(--paper),var(--panel));border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:12px;min-width:0;overflow:hidden}.surface-head{padding:15px 17px 13px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.surface-title{font-size:13px;font-weight:650;letter-spacing:-.02em;color:var(--ink-strong)}.surface-sub{color:var(--quiet);font-size:10px;margin-top:3px}.view-switch{display:flex;background:var(--panel2);padding:3px;gap:3px;border-radius:8px;border:1px solid var(--line)}.view-switch button{display:grid;place-items:center;border:0;background:transparent;color:var(--muted);height:25px;width:28px;border-radius:6px}.view-switch button.active{background:var(--paper);color:var(--orange-deep);box-shadow:0 1px 4px #2d1c120d}.filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;background:linear-gradient(180deg,var(--panel),var(--paper));border-bottom:1px solid var(--line)}
.search-field{display:flex;align-items:center;gap:8px;height:var(--control-h);border:1px solid var(--line2);border-radius:8px;padding:0 10px;background:var(--paper);color:var(--muted);min-width:140px;flex:1}.search-field:focus-within{border-color:var(--orange);box-shadow:var(--focus)}.search-field input{width:100%;min-width:0;border:0;background:transparent;outline:0;font-size:10.5px;color:var(--ink)}.search-field input::placeholder{color:var(--quiet)}
.picker{position:relative;min-width:142px}.picker>button{height:var(--control-h);width:100%;display:flex;align-items:center;justify-content:space-between;gap:7px;background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:0 11px;font-size:10.5px}.picker>button:hover,.picker>button[aria-expanded=true]{border-color:var(--gold2)}.picker>button[aria-expanded=true]{box-shadow:var(--focus)}.picker-chevron{width:14px;height:14px}.picker-menu{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;min-width:195px;z-index:50;background:var(--paper);border:1px solid var(--line2);border-radius:10px;padding:6px;box-shadow:var(--shadow-float)}.picker.open .picker-menu{display:block}.picker-menu .pick-search{width:100%;height:30px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--ink);font-size:10px;outline:none;margin-bottom:5px}.pick-option{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:10px;padding:8px 9px;border:0;background:transparent;border-radius:6px;color:var(--ink);font-size:10.5px}.pick-option:hover,.pick-option:focus-visible{background:var(--hover)}.pick-option[aria-selected=true]{background:var(--selected);color:var(--orange-deep);font-weight:650}.picker select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.filter-count{margin-left:auto;font-size:10px;color:var(--muted)}
.table-wrap{overflow-x:auto;scrollbar-color:var(--line2) transparent}
table{width:100%;border-collapse:collapse;min-width:660px;text-align:left;white-space:nowrap}thead{background:linear-gradient(180deg,var(--panel2),var(--panel))}th{padding:10px 12px;color:var(--muted);font-weight:600;font-size:9px;letter-spacing:.04em;border-bottom:1px solid var(--line)}th:first-child,td:first-child{padding-left:17px}th:last-child,td:last-child{padding-right:14px}th button{font:inherit;border:0;background:none;color:inherit;padding:0;display:inline-flex;gap:5px;align-items:center}th button:hover{color:var(--orange-deep)}td{height:var(--table-row-h);padding:7px 12px;border-bottom:1px solid color-mix(in srgb,var(--line) 57%,transparent);font-size:10.5px;color:var(--muted)}
tbody tr{background:transparent;cursor:pointer;transition:background .13s}tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 34%,var(--paper))}tbody tr:hover{background:var(--hover)}tbody tr.selected{background:var(--selected);box-shadow:inset 3px 0 var(--orange)}tbody tr:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
.workflow-cell{display:flex;align-items:center;gap:9px}.wf-icon{width:28px;height:28px;flex:none;display:grid;place-items:center;background:linear-gradient(140deg,#fbe0c4,#f4c59b);color:#a3561d;border:1px solid #f2c8a6;border-radius:8px}:root[data-theme="dark"] .wf-icon{background:#65452d;color:#ffb77e;border-color:#745338}.wf-title{display:block;color:var(--ink);font-size:10.5px;font-weight:620}.wf-id{display:block;font-size:9px;color:var(--quiet);margin-top:1px}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;font-size:9px;font-weight:600;border:1px solid transparent}.pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.pill.running{color:var(--green);background:var(--green-bg);border-color:color-mix(in srgb,var(--green) 15%,transparent)}.pill.paused{color:var(--warn);background:var(--warn-bg)}.pill.error{color:var(--red);background:var(--red-bg)}.owner-cell{display:flex;align-items:center;gap:6px}.owner-avatar{height:21px;width:21px;display:grid;place-items:center;border-radius:6px;color:#6c4529;background:#ecddc8;font-size:8px;font-weight:700}.owner-avatar.alt{background:#dedee3;color:#53505a}.row-more{border:0;color:var(--muted);background:transparent;width:27px;height:27px;border-radius:7px;display:grid;place-items:center}.row-more:hover{background:var(--panel3);color:var(--ink)}.table-footer{padding:10px 15px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:10px}.pager{display:flex;gap:5px}.pager button{border:1px solid var(--line);background:var(--paper);color:var(--muted);min-width:27px;height:26px;border-radius:6px}.pager button.active{background:var(--tint);border-color:var(--gold2);color:var(--orange-deep);font-weight:700}
.aside-stack{display:grid;gap:13px}.activity-body{padding:8px 16px 14px}.activity-row{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}.activity-row:last-child{border-bottom:0}.a-dot{width:26px;height:26px;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:8px;flex:none;color:var(--orange-deep)}.activity-row strong{font-size:10.5px;font-weight:650;color:var(--ink);display:block}.activity-row p{font-size:9.5px;color:var(--muted);line-height:1.6;margin:3px 0 4px}.activity-row time{font-size:9px;color:var(--quiet)}
.component-demo{padding:14px 16px 16px}.micro-label{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--orange-deep);font-weight:750;margin-bottom:9px}.material-samples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px}.material-samples div{height:39px;border-radius:7px;border:1px solid var(--line);box-shadow:0 6px 10px -10px #412f2055}.material-samples div:nth-child(1){background:var(--paper)}.material-samples div:nth-child(2){background:var(--panel2)}.material-samples div:nth-child(3){background:linear-gradient(145deg,#593d29,#2b1e15);border-color:#6b4a31}.sample-text{font-size:9.5px;color:var(--muted);line-height:1.75}.demo-controls{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.muted-link{font-size:10px;font-weight:650;color:var(--orange-deep);background:transparent;border:0;padding:0}.muted-link:hover{text-decoration:underline}
.bottom-note{font-size:10px;color:var(--quiet);padding:17px 2px 0;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.bottom-note a{color:var(--orange-deep);text-decoration:underline;text-underline-offset:3px}
.backdrop{display:none;position:fixed;inset:0;background:#21150db0;backdrop-filter:blur(3px);z-index:20}.backdrop.open{display:block}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:21;width:min(490px,100vw);background:var(--paper);box-shadow:var(--shadow-float);transform:translateX(102%);visibility:hidden;transition:transform .21s ease,visibility .21s;display:flex;flex-direction:column}.drawer.open{visibility:visible;transform:none}.drawer-head{padding:19px 21px 16px;border-bottom:1px solid var(--line);background:linear-gradient(145deg,var(--paper),var(--panel2));display:flex;justify-content:space-between;gap:14px}.drawer-head .drawer-kicker{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);font-weight:700}.drawer-head h2{font-size:17px;letter-spacing:-.04em;margin:5px 0;color:var(--ink-strong)}.drawer-head p{font-size:10px;color:var(--muted);margin:0}.drawer-body{padding:19px 21px;overflow:auto;flex:1}.drawer-section{border:1px solid var(--line);background:var(--panel);border-radius:10px;padding:15px;margin-bottom:15px}.drawer-section-title{font-size:10px;font-weight:700;color:var(--ink);margin-bottom:12px;display:flex;align-items:center;gap:7px}.field{margin-bottom:11px}.field:last-child{margin-bottom:0}.field label{display:block;color:var(--muted);font-size:10px;font-weight:600;margin-bottom:5px}.field input,.field textarea{width:100%;border:1px solid var(--line2);border-radius:7px;background:var(--paper);color:var(--ink);padding:0 10px;height:var(--control-h);outline:0;font-size:11px}.field textarea{padding:10px;min-height:73px;resize:vertical;line-height:1.6}.field input:focus,.field textarea:focus{border-color:var(--orange);box-shadow:var(--focus)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.hint{font-size:9px;color:var(--quiet);margin-top:4px}.drawer-footer{border-top:1px solid var(--line);background:var(--panel2);padding:14px 21px;display:flex;gap:8px;justify-content:space-between}.form-meta{color:var(--muted);font-size:10px;padding:10px 0}
.modal-backdrop{display:none;position:fixed;inset:0;z-index:30;background:#1c140ec7;backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:20px}.modal-backdrop.open{display:flex}.modal{background:var(--paper);border:1px solid var(--line2);border-radius:13px;box-shadow:var(--shadow-float);width:min(405px,100%);overflow:hidden}.modal-top{padding:22px 22px 15px}.modal-symbol{width:37px;height:37px;border-radius:10px;background:var(--warn-bg);color:var(--warn);display:grid;place-items:center;margin-bottom:11px}.modal h3{font-size:15px;letter-spacing:-.03em;margin:0 0 6px;color:var(--ink-strong)}.modal p{font-size:11px;color:var(--muted);line-height:1.75;margin:0}.modal-actions{padding:13px 22px;background:var(--panel2);border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;bottom:22px;right:24px;z-index:55;max-width:min(390px,calc(100vw - 40px));min-width:240px;background:linear-gradient(145deg,#483323,#302217);color:#fff7e9;border:1px solid #d9bd835c;border-radius:10px;padding:12px 15px;box-shadow:var(--shadow-float);font-size:11px;display:none;gap:10px;align-items:center}.toast.show{display:flex}.toast .i{color:#ffb46b}
.empty{padding:38px;text-align:center;font-size:12px;color:var(--muted)}.empty .i{width:25px;height:25px;margin-bottom:10px}
@media(max-width:1260px){.hero{grid-template-columns:1fr 290px}.workgrid{grid-template-columns:minmax(0,1.5fr) minmax(255px,.8fr)}.top-search{min-width:150px}}
@media(max-width:1080px){.app{grid-template-columns:70px minmax(0,1fr)}.sidebar{align-items:center;padding:18px 9px}.logo{padding:0}.logo>div:last-child,.section-label,.side-link span,.side-link .side-tail,.side-foot>div:last-child{display:none}.side-link{width:45px;justify-content:center;padding:0}.side-spacer{min-height:50px}.side-foot{padding:12px 0}.hero{grid-template-columns:1.5fr 1fr}}
@media(max-width:920px){.workgrid{grid-template-columns:minmax(0,1fr)}.aside-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.top-search{display:none}}
@media(max-width:690px){.app{display:block}.sidebar{height:54px;position:relative;flex-direction:row;padding:8px 13px;align-items:center;gap:10px}.logo{margin:0}.logo-mark{height:32px;width:32px}.side-nav{display:flex;gap:2px}.side-link{height:37px;width:37px;min-height:37px}.side-foot,.sidebar .side-spacer{display:none}.topbar{height:48px;padding:0 14px}.content{padding:17px 14px 40px}.heading h1{font-size:20px}.heading{margin-bottom:15px}.hero{grid-template-columns:minmax(0,1fr)}.hero-main{min-height:142px}.hero-side{min-height:105px}.hero-content{max-width:80%}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.aside-stack{grid-template-columns:1fr}.filters{padding:11px}.surface-head{padding:13px}.preview-bar{margin-bottom:14px}.preview-controls{width:100%}.top-actions{gap:5px}.crumb{font-size:10px}}
@media(max-width:420px){.heading-actions{width:100%}.heading-actions .btn{flex:1}.hero-content{max-width:94%}.hero-art{opacity:.4}.kpi-value{font-size:22px}.kpi{padding:11px}.picker{min-width:122px}.drawer-footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

.d-panel-head .d-panel-spark{color:var(--orange-deep)}
/* V3.1 — Emersion layered desktop & taskbar */
html{scroll-padding-top:75px}body{padding-bottom:70px}
.content{max-width:1590px;padding-bottom:100px}
.d-top{margin:12px 0 17px;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.d-kicker{color:var(--orange-deep);font-size:10px;letter-spacing:.13em;font-weight:750;text-transform:uppercase}
.d-hero{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;overflow:hidden;border-radius:14px;padding:24px 26px;background:radial-gradient(ellipse at 87% 5%,#f59a4963,transparent 48%),linear-gradient(115deg,#4e3928,#2c2119);border:1px solid #926d4b;color:#f9eddf;box-shadow:0 18px 45px -30px #2b1b11b8}
.d-hero h1{font-weight:650;font-size:24px;letter-spacing:-.05em;margin:7px 0}.d-hero p{color:#e6d1bd;font-size:10.5px;line-height:1.8;margin:0;max-width:665px}.d-hero .d-kicker{color:#dfb77e}
.d-hero-emblem{width:130px;height:96px;position:relative;flex:none}.d-hero-emblem span{position:absolute;width:97px;height:65px;border:1px solid #edcfa4a9;border-radius:9px;background:linear-gradient(140deg,#ffd9aa70,#d77e3230);box-shadow:0 13px 30px #24171166;transform:rotate(-11deg);right:20px;top:10px}
.d-hero-emblem span:nth-child(2){transform:rotate(7deg);right:-10px;top:32px;background:linear-gradient(140deg,#fff6e968,#a86a303a)}
.d-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin:14px 0 18px}.d-stat{border:1px solid var(--line);border-radius:11px;background:linear-gradient(145deg,var(--paper),var(--panel2));padding:14px 17px;box-shadow:var(--shadow-card)}.d-stat.highlight{border-color:#e7bd8b;background:linear-gradient(135deg,#fae9d6,#fbe2c2)}:root[data-theme=dark] .d-stat.highlight{background:linear-gradient(135deg,#5a3e29,#493327)}
.d-stat span{display:block;font-size:10px;color:var(--muted)}.d-stat strong{display:block;font-size:23px;letter-spacing:-.06em;line-height:1.5;font-weight:700;color:var(--ink-strong)}.d-stat em{font-size:9px;font-style:normal;color:var(--green)}
.d-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.68fr);gap:13px;align-items:start}
.d-panel{min-width:0;border:1px solid var(--line);background:linear-gradient(150deg,var(--paper),var(--panel));border-radius:12px;box-shadow:var(--shadow-card);overflow:hidden}
.d-panel-head{padding:15px 17px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}
.d-panel-head h2{margin:0;font-size:13px;color:var(--ink-strong);letter-spacing:-.015em}.d-panel-head p{margin:3px 0 0;color:var(--muted);font-size:9.5px}
.d-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.d-filter{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:11px 14px;background:var(--panel2);border-bottom:1px solid var(--line)}
.d-search{display:flex;align-items:center;gap:8px;flex:1;min-width:165px;border:1px solid var(--line2);height:var(--control-h);border-radius:8px;padding:0 9px;background:var(--paper);color:var(--muted)}.d-search:focus-within{box-shadow:var(--focus);border-color:var(--orange)}.d-search .i{width:14px;height:14px}
.d-search input{outline:0;border:0;background:transparent;width:100%;color:var(--ink);font-size:10.5px}.d-filter select{border:1px solid var(--line2);background:var(--paper);border-radius:8px;height:var(--control-h);font:inherit;font-size:10px;color:var(--ink);padding:0 9px}
.d-table-outer{overflow-x:auto}.d-table{width:100%;border-collapse:collapse;min-width:600px;text-align:left}.d-table th{font-size:9px;color:var(--muted);font-weight:650;background:var(--panel2);padding:9px 12px;border-bottom:1px solid var(--line)}.d-table td{height:var(--table-row-h);border-bottom:1px solid color-mix(in srgb,var(--line) 65%,transparent);font-size:10px;padding:7px 12px;color:var(--muted)}.d-table th:first-child,.d-table td:first-child{padding-left:17px}.d-table tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 32%,transparent)}.d-table tbody tr:hover{background:var(--hover)}.d-table tbody tr[data-active=true]{box-shadow:inset 3px 0 var(--orange);background:var(--selected)}.d-table .d-name{display:flex;align-items:center;gap:10px;font-weight:650;color:var(--ink);font-size:10.5px}.d-table .d-name-icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(145deg,#fbe5cc,#f4bb89);border:1px solid #efc599;color:#a85513;flex:none}:root[data-theme=dark] .d-table .d-name-icon{background:#5c3f2b;border-color:#75513b;color:#f6ae69}
.d-pill{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:4px 8px;font-size:9px;font-weight:650}.d-pill:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.d-pill.good{color:var(--green);background:var(--green-bg)}.d-pill.attention{color:var(--warn);background:var(--warn-bg)}.d-pill.bad{color:var(--red);background:var(--red-bg)}
.d-table-foot{display:flex;justify-content:space-between;gap:10px;padding:10px 15px;font-size:10px;color:var(--muted)}
.d-mini-list{padding:9px 13px}.d-mini{width:100%;border:1px solid transparent;background:transparent;border-radius:9px;display:flex;align-items:center;gap:10px;padding:11px;min-height:54px;text-align:left;color:var(--ink)}.d-mini:hover{background:var(--hover);border-color:var(--line)}.d-mini-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;border:1px solid var(--line);background:linear-gradient(145deg,var(--paper),var(--panel2));color:var(--orange-deep);flex:none}
.d-mini strong{display:block;font-size:10.5px}.d-mini span{display:block;font-size:9px;color:var(--muted);margin-top:3px}.d-hint{padding:14px 15px;border-top:1px solid var(--line);background:var(--panel2);font-size:9.5px;line-height:1.8;color:var(--muted)}.d-hint strong{color:var(--ink)}
.d-lower{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:13px}.d-story{padding:12px 15px}.d-story-line{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.d-story-line:last-child{border:0}.d-story-line .icon{display:grid;place-items:center;width:25px;height:25px;border-radius:7px;background:var(--tint);color:var(--orange-deep);flex:none}.d-story-line strong{font-size:10px;color:var(--ink);display:block}.d-story-line span{font-size:9px;color:var(--muted);display:block;margin-top:3px}
.d-rule{font-size:9.5px;line-height:1.75;color:var(--muted);margin:0 0 9px}.d-rule b{color:var(--ink)}
/* Taskbar */
.d-taskbar{position:fixed;bottom:0;left:0;right:0;z-index:230;height:62px;display:flex;align-items:center;gap:9px;padding:8px 14px 8px 12px;color:#f8e9d8;background:linear-gradient(115deg,#3f2d20,#2b2018 70%,#4c3222);border-top:1px solid #c49d6677;box-shadow:0 -10px 35px -18px #1d130dbf;backdrop-filter:blur(13px)}
.d-task-brand{display:flex;align-items:center;gap:9px;border:1px solid #ffffff24;border-radius:9px;background:#ffffff0b;padding:0 10px 0 6px;height:43px;flex:none;color:#fff6e8;font-size:10px;font-weight:700}.d-task-brand .mark{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(135deg,#ffb772,#ec7722);color:#332011;font-size:21px;letter-spacing:-.065em}.d-task-brand:hover{background:#ffffff20}
.d-task-sep{height:27px;width:1px;background:#ffffff33;flex:none}
.d-task-list{display:flex;gap:6px;align-items:center;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#d9bd8366 transparent;height:100%}
.d-task{position:relative;min-width:115px;max-width:185px;flex:0 1 165px;height:42px;border:1px solid #e9cfa12a;border-radius:8px;background:#ffffff0c;display:flex;align-items:center;gap:8px;padding:0 11px;color:#e8d7c2;text-align:left;font:inherit;font-size:10px;transition:background .15s,border-color .15s}
.d-task:hover{background:#ffffff20;border-color:#edce9466}.d-task.active{background:linear-gradient(140deg,#d19a5b3b,#f4bd7a13);color:#fff7ed;border-color:#d9bd8377}.d-task.active:after{content:"";position:absolute;bottom:0;left:11px;right:11px;height:2px;background:var(--orange);border-radius:4px}
.d-task.minimized{opacity:.67}.d-task .i{width:15px;height:15px;color:#efb57d}
.d-task-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.d-task-dot{width:6px;height:6px;background:#ee9b55;border-radius:50%;flex:none}
.d-task-count{background:#ffffff1a;border:1px solid #ffffff29;border-radius:7px;padding:5px 7px}
.d-task-guide{font-size:9px;color:#bfa68b;margin-top:3px}
.d-task-trigger{width:37px;height:37px;border:1px solid #ffffff34;background:#ffffff0d;border-radius:8px;color:#eed9bd;display:grid;place-items:center;flex:none}.d-task-trigger:hover{background:#ffffff20}
.d-task-menu{position:absolute;bottom:68px;left:13px;min-width:244px;border:1px solid var(--line2);background:var(--paper);color:var(--ink);border-radius:11px;padding:8px;box-shadow:var(--shadow-float);display:none}.d-task-menu.open{display:block}
.d-task-menu strong{display:block;padding:7px 10px 9px;font-size:10.5px}.d-task-menu button{border:0;width:100%;padding:9px 10px;text-align:left;border-radius:7px;background:transparent;color:var(--ink);font-size:10px}.d-task-menu button:hover{background:var(--hover)}
/* Nonmodal managed windows */
.d-window-area{position:fixed;inset:0 0 62px 0;z-index:30;pointer-events:none}
.d-win{position:absolute;display:flex;flex-direction:column;width:690px;height:480px;min-width:340px;min-height:270px;max-width:calc(100vw - 12px);max-height:calc(100vh - 76px);border:1px solid var(--line2);border-radius:12px;background:var(--paper);box-shadow:0 25px 75px -22px #21130fc7,0 3px 12px #20110c52;pointer-events:auto;resize:both;overflow:hidden;isolation:isolate;transition:box-shadow .12s,border-color .12s}
.d-win.active{border-color:#d4a777;box-shadow:0 28px 75px -17px #1f130ed9,0 0 0 1px #d9bd8340}
.d-win.minimized{display:none}
/* OS-style maximization: fill the actual Window Manager work area, whose
   fixed bounds already exclude Taskbar. No ornamental desktop gutter, rounded
   frame or floating shadow in maximized mode; keep titlebar and window actions.
   Restoring the window uses the original bounds from toggleMax(), unchanged. */
.d-window-area>.d-win.maximized{
 left:0!important;top:0!important;
 width:100%!important;height:100%!important;
 min-width:0!important;min-height:0!important;
 max-width:none!important;max-height:none!important;
 border:0!important;border-radius:0!important;box-shadow:none!important;
 transition:none!important;resize:none!important;
}
.d-win-titlebar{height:49px;display:flex;align-items:center;gap:9px;padding:0 9px 0 14px;flex:none;border-bottom:1px solid var(--line);background:linear-gradient(112deg,var(--panel2),var(--paper) 70%);cursor:grab;user-select:none;touch-action:none}.d-win-titlebar:active{cursor:grabbing}
.d-win-badge{height:29px;width:29px;border-radius:8px;background:linear-gradient(135deg,#ffe0b9,#f2b579);display:grid;place-items:center;color:#a34d18;border:1px solid #edbc89;flex:none}:root[data-theme=dark] .d-win-badge{background:#654329;color:#f9ab70;border-color:#8b6349}
.d-win-title{min-width:0;flex:1}.d-win-title strong{display:block;font-size:10.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-strong)}.d-win-title small{display:block;font-size:8.5px;color:var(--muted);margin-top:1px}
.d-win-chrome{display:flex;gap:3px;align-items:center}.d-win-control{height:28px;width:30px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--muted);border-radius:6px}.d-win-control .i{width:15px;height:15px}
.d-win-control:hover{background:var(--hover);color:var(--ink);border-color:var(--line)}.d-win-control.close:hover{background:var(--red-bg);color:var(--red)}
.d-win-body{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}.d-win-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 15px;border-top:1px solid var(--line);background:var(--panel2);flex:none}.d-win-bottom .msg{font-size:9px;color:var(--muted)}.d-win-bottom .actions{display:flex;gap:8px}
.d-win-content{padding:18px 19px;flex:1}.d-w-h{font-size:12px;font-weight:700;margin:0 0 13px;color:var(--ink-strong)}.d-w-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.d-w-field{display:flex;flex-direction:column;gap:5px;min-width:0}.d-w-field.wide{grid-column:1/-1}.d-w-field label{font-size:9.5px;font-weight:650;color:var(--muted)}.d-w-field input,.d-w-field textarea,.d-w-field select{background:var(--paper);color:var(--ink);font:inherit;font-size:10.5px;border:1px solid var(--line2);border-radius:8px;padding:0 11px;height:var(--control-h);min-width:0;width:100%;outline:0}
.d-w-field textarea{min-height:92px;resize:vertical;padding:10px;line-height:1.7}.d-w-field input:focus,.d-w-field textarea:focus{box-shadow:var(--focus);border-color:var(--orange)}
.d-w-muted{color:var(--muted);font-size:10px;line-height:1.8}.d-w-kicker{font-size:9px;color:var(--orange-deep);text-transform:uppercase;letter-spacing:.13em;font-weight:750}
.d-w-section{border:1px solid var(--line);border-radius:9px;background:linear-gradient(140deg,var(--panel),var(--panel2));padding:12px 13px;margin-bottom:13px}
.d-w-section h4{font-size:11px;color:var(--ink);margin:0 0 7px}
.d-w-chips{display:flex;gap:6px;flex-wrap:wrap}.d-w-chips .chip{font-size:9px;background:var(--tint);border:1px solid var(--line);border-radius:6px;padding:5px 8px;color:var(--orange-deep)}
.d-flow-window .d-win-content{padding:0;display:flex;flex:1;min-height:0}.d-flow-tools{width:164px;flex:none;border-right:1px solid var(--line);background:linear-gradient(var(--panel2),var(--panel));padding:13px}.d-flow-tools strong{font-size:10px;display:block;margin-bottom:10px}.d-flow-node-option{border:1px solid var(--line);width:100%;background:var(--paper);color:var(--ink);border-radius:8px;display:flex;align-items:center;gap:8px;padding:10px;margin-bottom:8px;text-align:left;font-size:10px}.d-flow-node-option:hover{border-color:var(--orange);background:var(--selected)}
.d-flow-canvas{flex:1;min-width:0;overflow:auto;display:flex;align-items:center;justify-content:center;position:relative;background-color:var(--panel);background-image:radial-gradient(color-mix(in srgb,var(--muted) 22%,transparent) .8px,transparent .8px);background-size:18px 18px;padding:25px}
.d-flow-pipe{display:flex;align-items:center;gap:13px;min-width:max-content}.d-flow-node{width:136px;min-height:107px;background:linear-gradient(145deg,var(--paper),var(--panel2));border:1px solid var(--line2);border-radius:10px;box-shadow:var(--shadow-card);padding:12px}.d-flow-node .d-w-kicker{margin-bottom:8px}.d-flow-node strong{font-size:10.5px;color:var(--ink);display:block}.d-flow-node small{color:var(--muted);font-size:9px;line-height:1.6;display:block;margin-top:5px}.d-flow-join{color:var(--gold2);width:23px;height:1px;background:var(--gold2);position:relative;flex:none}.d-flow-join:after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-right:1px solid var(--gold2);border-top:1px solid var(--gold2);transform:rotate(45deg)}
.d-flow-inspector{width:160px;flex:none;border-left:1px solid var(--line);padding:13px;background:var(--paper)}.d-flow-inspector strong{font-size:10px;color:var(--ink)}.d-flow-inspector p{font-size:9px;line-height:1.7;color:var(--muted)}
.d-w-status{display:inline-flex;align-items:center;gap:6px;background:var(--green-bg);color:var(--green);border-radius:6px;padding:5px 9px;font-size:9px;font-weight:700}
.d-window-meta{font-size:9px;color:var(--quiet);margin-top:10px;display:block}
.d-win.resize-locked{resize:none}
.d-dialog-layer{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:#1a100bc0;backdrop-filter:blur(4px);z-index:270}.d-dialog-layer.open{display:flex}
.d-dialog{width:min(410px,100%);border:1px solid var(--line2);background:var(--paper);border-radius:12px;overflow:hidden;box-shadow:var(--shadow-float)}.d-dialog-head{display:flex;align-items:center;gap:10px;padding:17px 19px;background:linear-gradient(105deg,var(--warn-bg),var(--panel2));border-bottom:1px solid var(--line)}.d-dialog-head .mark{display:grid;place-items:center;width:35px;height:35px;background:var(--paper);border:1px solid var(--line);border-radius:9px;color:var(--warn)}
.d-dialog-head h3{font-size:13px;color:var(--ink);margin:0}.d-dialog-head small{color:var(--muted);font-size:9px}.d-dialog-content{padding:17px 19px;color:var(--muted);font-size:10.5px;line-height:1.8}
.d-dialog-foot{border-top:1px solid var(--line);background:var(--panel2);padding:12px 19px;display:flex;gap:8px;justify-content:flex-end}
.d-toast{position:fixed;z-index:300;right:22px;bottom:77px;display:none;gap:10px;align-items:center;padding:12px 16px;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:9px;background:linear-gradient(120deg,var(--green-bg),var(--paper));color:var(--ink);box-shadow:var(--shadow-float);font-size:10px}.d-toast.show{display:flex}
.d-desktop-footer{display:flex;justify-content:space-between;gap:12px;margin-top:19px;color:var(--muted);font-size:9px}.d-desktop-footer a{color:var(--orange-deep);text-decoration:underline}
@media(max-width:1120px){.d-layout{grid-template-columns:1fr}.d-flow-inspector{display:none}}
@media(max-width:720px){body{padding-bottom:65px}.d-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.d-hero-emblem{display:none}.d-hero{padding:20px}.d-lower{grid-template-columns:1fr}.d-taskbar{padding:7px 8px;height:57px;gap:6px}.d-task-brand{padding:0 5px;border:none;background:transparent}.d-task-brand .label{display:none}.d-task-brand .mark{width:32px;height:32px}.d-task-right,.d-task-sep{display:none}.d-task{min-width:100px;max-width:155px;flex:0 0 115px;height:40px;padding:0 8px}.d-window-area{bottom:57px}.d-win,.d-win.maximized{left:0!important;top:0!important;width:100vw!important;height:calc(100vh - 57px)!important;max-width:none!important;max-height:none!important;border-radius:0!important;resize:none!important;min-width:0!important;min-height:0!important}.d-win:not(.active){display:none}.d-flow-tools{width:118px;padding:10px}.d-flow-inspector{display:none}.d-w-grid{grid-template-columns:1fr}.d-w-field.wide{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.d-win{transition:none!important}}

@media(max-width:720px){
 .topbar{min-width:0;gap:7px}
 .topbar .crumb{min-width:0;max-width:calc(100vw - 155px);overflow:hidden;gap:5px}
 .topbar .crumb > span:not(:first-child), .topbar .crumb > svg{display:none}
 .topbar .crumb b{overflow:hidden;text-overflow:ellipsis}
 .topbar .top-actions{flex:none}
}

/* V3.2 — fixed Flow canvas origin, responsive taskbar and polished launcher */
.d-flow-canvas{justify-content:flex-start;overflow-x:auto;overflow-y:auto;scrollbar-gutter:stable;overscroll-behavior:contain;min-width:0;min-height:0}
.d-flow-pipe{width:max-content;min-width:max-content;flex:none;justify-content:flex-start;margin-left:auto;margin-right:auto}
.d-flow-node{flex:none}
.d-win .d-win-titlebar{cursor:grab}
.d-taskbar{gap:7px}
.d-task-list{scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:thin}
.d-task{flex:0 0 150px;min-width:118px;max-width:168px;justify-content:flex-start}
.d-task-scroll{display:grid;place-items:center;flex:none;width:26px;height:36px;border:1px solid #f1d7b03b;border-radius:7px;background:#fff8eb0d;color:#f3d9bb}
.d-task-scroll .i{height:15px;width:15px}
.d-task-scroll:hover{background:#ffffff23;border-color:#d9bd8377}
.d-task-scroll:disabled{opacity:.23;cursor:default}
.d-task-scroll:disabled:hover{background:#fff8eb0d;border-color:#f1d7b03b}
.d-task-overflow{height:37px;min-width:37px;display:flex;align-items:center;justify-content:center;gap:4px;flex:none;border-radius:8px;border:1px solid #d9bd8370;background:linear-gradient(140deg,#f4781c23,#f0b76a20);color:#ffe9ce;font-size:10px;font-weight:650}
.d-task-overflow:hover{background:#f4781c36}
.d-task-overflow .i{width:15px;height:15px}
.d-taskbar .d-task-count{border:0;background:transparent;padding:3px;color:#d9c0a0}
.d-task-brand{background:linear-gradient(130deg,#ffe3b118,#fff9e905);border-color:#e2b77a4d}
.d-task-brand:hover{background:#f4bf7b2f}
.d-task-brand .mark{box-shadow:0 3px 13px #eb7d293f}
.d-task-popover{position:absolute;bottom:calc(100% + 8px);left:12px;width:min(345px,calc(100vw - 24px));max-height:min(540px,75vh);overflow:hidden;display:none;flex-direction:column;border:1px solid var(--line2);border-radius:14px;background:var(--paper);color:var(--ink);box-shadow:0 22px 65px -15px #1c130ee0;z-index:260}
.d-task-popover.open{display:flex}
.d-task-popover-head{flex:none;display:flex;align-items:center;gap:12px;padding:16px 17px 14px;background:radial-gradient(circle at 95% 1%,#f0a25038,transparent 56%),linear-gradient(130deg,#4b3524,#302116);color:#fff3e5;border-bottom:1px solid #d9bd836e}
.d-task-popover-brand{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,#ffbd78,#ed7c26);font-size:24px;font-weight:700;letter-spacing:-.065em;color:#3d2718;box-shadow:0 7px 16px #b45c2055}
.d-task-popover-head strong{display:block;font-size:12px;letter-spacing:-.015em}
.d-task-popover-head small{display:block;font-size:9.5px;color:#dcc3a3;margin-top:2px}
.d-task-popover-head .d-menu-close{margin-left:auto;border:1px solid #ffffff35;background:#ffffff16;color:#fff3e3;display:grid;place-items:center;width:29px;height:29px;border-radius:8px;font-size:18px}
.d-task-popover-body{padding:11px;overflow:auto;scrollbar-color:var(--line2) transparent}
.d-task-group{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--orange-deep);padding:8px 8px 6px;font-weight:750}
.d-task-popover-foot{flex:none;padding:11px 13px;border-top:1px solid var(--line);background:linear-gradient(140deg,var(--panel2),var(--paper));display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:9px}
.d-menu-empty{font-size:10.5px;color:var(--muted);padding:12px}
.d-taskbar [hidden]{display:none!important}
@media(max-width:1000px){
.d-task-brand .label{display:none}
.d-task-brand{padding:0 5px}
}
@media(max-width:720px){
.d-taskbar{gap:6px}
.d-task{flex:0 0 42px!important;min-width:42px!important;max-width:42px!important;height:39px;justify-content:center;padding:0}
.d-task .d-task-label{display:none}
.d-task .i{height:19px;width:19px}
.d-task-scroll{width:24px;height:34px}
.d-task-overflow{height:35px;width:35px;min-width:35px}
.d-task-popover{left:7px;bottom:calc(100% + 4px);width:min(345px,calc(100vw - 14px))}
.d-task-popover-head{padding:14px 15px}
.d-flow-tools{width:112px}
}

/* V3.2 owner correction — icon-only Start, geometrically centered mark. */
.d-task-brand{width:44px;min-width:44px;max-width:44px;height:43px;padding:0!important;display:grid;place-items:center;flex:none;gap:0}
.d-task-brand .mark{width:32px;height:32px;display:grid;place-items:center;margin:0;padding:0;line-height:1;flex:none}
.d-task-brand .mark-glyph{display:block;font-size:22px;line-height:1;font-weight:700;letter-spacing:-.065em;transform:translate(-1px,-1px)}
.d-task-scroll.prev .i{transform:rotate(90deg)}
.d-task-scroll.next .i{transform:rotate(-90deg)}
.d-taskbar .d-task-brand:focus-visible{outline:2px solid #ffbb82;outline-offset:2px}
@media(max-width:720px){.d-task-brand{width:42px;min-width:42px;max-width:42px;height:41px;padding:0!important}}
/* Public <afw-menu-item> visual contract. Internal m-* markup belongs to this package. */
.d-menu-action{display:flex!important;align-items:center;gap:10px;text-align:left;width:100%;padding:9px!important;min-height:48px!important;background:transparent;border:1px solid transparent!important;border-radius:9px!important;color:var(--ink)}
.d-menu-action:hover{background:var(--hover);border-color:var(--line)!important}
.d-menu-action .m-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:linear-gradient(145deg,var(--paper),var(--panel2));color:var(--orange-deep);flex:none}
.d-menu-action .m-icon .i{width:16px;height:16px}
.d-menu-action .m-text{display:block;min-width:0}
.d-menu-action .m-text strong{display:block;font-size:10.5px;color:var(--ink);font-weight:650}
.d-menu-action .m-text small{display:block;font-size:9px;color:var(--muted);margin-top:2px}
.d-menu-action .m-meta{margin-left:auto;font-size:9px;color:var(--muted);font-weight:600;flex:none}
/* AFW v0.11 — Desktop Mission Control, live readonly DOM mirrors. */
.d-win.afw-inactive-desktop{display:none!important}
.afw-desktop-switcher{display:flex;align-items:center;justify-content:center;flex:none;position:relative}
.afw-ds-launch{display:flex;align-items:center;justify-content:center;gap:4px;flex:none;width:53px;height:39px;padding:0 5px;border:1px solid #e5ab6c85;border-radius:9px;background:linear-gradient(145deg,#f4781c38,#d9bd8323);color:#fff0df;font:inherit;cursor:pointer}
.afw-ds-launch:hover,.afw-ds-launch[aria-expanded=true]{background:linear-gradient(145deg,#f4781c6b,#eab97e30);border-color:#f7bc7e}
.afw-ds-launch-symbol{display:grid;place-items:center;width:24px;height:27px;border-radius:6px}
.afw-ds-launch-symbol .i{width:20px;height:20px}
.afw-ds-launch-count{display:grid;place-items:center;border:1px solid #f4c59665;border-radius:5px;min-width:17px;height:20px;font-size:10px;font-weight:800;color:#ffcb92;background:#fff5e710}
.afw-desktop-switcher button:focus-visible{outline:2px solid #f4a75d;outline-offset:2px}
.afw-mission-layer{position:fixed;inset:0;z-index:400;pointer-events:none}
.afw-mission-layer[hidden]{display:none!important}
.afw-mission-backdrop{position:fixed;inset:0;display:block;border:0;background:#1c110dbd;backdrop-filter:blur(5px);pointer-events:auto;cursor:default}
.afw-mission-window{position:fixed;right:50%;bottom:76px;transform:translateX(50%);width:min(1130px,calc(100vw - 40px));max-height:min(790px,calc(100vh - 100px));display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;border:1px solid var(--gold2);border-radius:17px;background:var(--paper);color:var(--ink);box-shadow:0 40px 120px #170b08cd}
.afw-mission-header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none;padding:20px 24px;background:radial-gradient(circle at 86% 0,#f5a0594b,transparent 45%),linear-gradient(125deg,#4a3424,#2c2018);color:#fff6e9;border-bottom:1px solid #ac855d}
.afw-mission-heading{display:flex;align-items:center;gap:13px;min-width:0}
.afw-mission-logo{display:grid;place-items:center;flex:none;width:47px;height:47px;border-radius:12px;background:linear-gradient(145deg,#fac58e,#ee7d29);color:#4a2e1a;box-shadow:0 6px 16px #180c0655}
.afw-mission-logo .i{width:24px;height:24px}
.afw-mission-kicker{font-size:9px;letter-spacing:.13em;font-weight:800;color:#ffbf80}
.afw-mission-heading h2{font-size:20px;margin:3px 0 4px;line-height:1.2;letter-spacing:-.03em;color:#fff7ed}
.afw-mission-heading p{margin:0;font-size:10px;color:#ddc8af}
.afw-mission-header-actions{display:flex;gap:10px;align-items:center;flex:none}
.afw-mission-total{border:1px solid #dcc29660;background:#fff7e60e;border-radius:99px;padding:6px 11px;font-size:10px;white-space:nowrap}
.afw-mission-add-top{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 13px;border-radius:8px;background:linear-gradient(145deg,#ffc187,#ed7b28);border:1px solid #ffc289;color:#342012;font:inherit;font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}
.afw-mission-add-top:hover{filter:brightness(1.07)}
.afw-mission-plus{font-size:21px;font-weight:400;line-height:1}
.afw-mission-add-top:disabled{opacity:.45;cursor:not-allowed}
.afw-mission-close{width:36px;height:36px;display:grid;place-items:center;border:1px solid #ffffff4a;border-radius:8px;background:#ffffff1c;color:#fff4e3;font:inherit;font-size:21px;cursor:pointer}
.afw-mission-close:hover{background:#fff3e72b}
.afw-mission-content{min-height:0;overflow:auto;padding:20px 24px 15px;scrollbar-width:thin}
.afw-mission-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}
.afw-mission-section-heading strong{font-size:12px;color:var(--ink)}
.afw-mission-section-heading span{font-size:10px;color:var(--muted)}
.afw-mission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.afw-ds-card-container{position:relative;min-width:0;background:var(--panel);border:1px solid var(--line2);border-radius:14px;overflow:hidden;box-shadow:0 3px 14px #37261a12;transition:border-color .16s,transform .16s}
.afw-ds-card-container:hover{transform:translateY(-2px);border-color:var(--gold2);box-shadow:0 10px 24px #30201426}
.afw-ds-card-container.selected{border:2px solid var(--orange);box-shadow:0 0 0 3px #f4781c1a}
.afw-desktop-tab{display:flex;flex-direction:column;gap:0;width:100%;min-width:0;background:transparent;border:0;border-radius:14px;text-align:left;color:var(--ink);padding:0;font:inherit;cursor:pointer}
.afw-ds-card-head{display:flex;align-items:center;gap:8px;height:43px;padding:0 92px 0 12px;min-width:0}
.afw-ds-card-number{display:grid;place-items:center;flex:none;width:24px;height:24px;border:1px solid var(--line2);border-radius:7px;background:var(--paper);font-size:10px;font-weight:800}
.afw-ds-card-container.selected .afw-ds-card-number{background:var(--orange);border-color:var(--orange);color:#382211}
.afw-desktop-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:800}
.afw-ds-card-state{font-size:9px;font-weight:800;color:var(--muted);white-space:nowrap}
.afw-ds-card-container.selected .afw-ds-card-state{color:var(--orange-deep)}
.afw-ds-card-actions{position:absolute;top:8px;right:10px;display:flex;align-items:center;gap:5px;z-index:2}
.afw-ds-card-edit,.afw-ds-card-delete{display:grid;place-items:center;width:29px;height:28px;border-radius:7px;background:var(--paper);border:1px solid var(--line2);color:var(--orange-deep);font:inherit;cursor:pointer;transition:background .14s,border-color .14s}
.afw-ds-card-edit .i,.afw-ds-card-delete .i{width:15px;height:15px}
.afw-ds-card-edit:hover{background:var(--hover);border-color:var(--orange)}
.afw-ds-card-delete{color:var(--muted)}
.afw-ds-card-delete:hover{color:#b34736;border-color:#bf5946;background:color-mix(in srgb,var(--paper) 90%,#b34736)}
.afw-ds-card-delete:disabled{opacity:.38;cursor:not-allowed}
.afw-ds-card-delete:disabled:hover{color:var(--muted);background:var(--paper);border-color:var(--line2)}
.afw-ds-live-view{width:calc(100% - 24px);aspect-ratio:16/9.15;position:relative;overflow:hidden;isolation:isolate;align-self:center;border:1px solid var(--line2);border-radius:9px;background:var(--paper);contain:layout paint}
.afw-ds-live-stage{position:absolute;top:0;left:0;transform-origin:top left;pointer-events:none;overflow:hidden;background:var(--paper)}
.afw-ds-live-stage *, .afw-ds-live-stage{pointer-events:none!important;user-select:none!important;caret-color:transparent!important}
.afw-ds-live-stage .afw-ds-mirror-dashboard{position:absolute;left:0;top:0;min-height:100%;max-width:none;overflow:hidden}
.afw-ds-live-stage .afw-ds-live-window{position:absolute;display:flex!important;opacity:1;visibility:visible;resize:none!important;box-sizing:border-box}
.afw-ds-live-stage .afw-ds-live-window.minimized,.afw-ds-live-stage .afw-ds-live-window.afw-inactive-desktop{display:none!important}
.afw-ds-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;padding:8px 13px}
.afw-ds-card-count{font-size:10px;color:var(--muted)}
.afw-ds-card-enter{font-size:10px;font-weight:800;color:var(--orange-deep)}
.afw-ds-card-editor{display:flex;gap:6px;align-items:center;padding:10px 12px;border-top:1px solid var(--line2);background:var(--panel2)}
.afw-ds-card-editor[hidden]{display:none!important}
.afw-ds-name-input{flex:1;min-width:0;height:31px;border-radius:7px;background:var(--paper);border:1px solid var(--gold2);padding:0 9px;color:var(--ink);font:inherit;font-size:11px}
.afw-ds-edit-save,.afw-ds-edit-cancel{height:31px;border-radius:7px;border:1px solid var(--line2);padding:0 10px;background:var(--paper);color:var(--ink);font:inherit;font-size:10px;cursor:pointer}
.afw-ds-edit-save{background:var(--selected);border-color:var(--gold2);font-weight:700}
/* Card-local deletion confirmation, never delete a desktop with open windows. */
.afw-ds-card-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:9px 12px;border-top:1px solid var(--line2);background:var(--panel2)}
.afw-ds-card-confirm[hidden]{display:none!important}
.afw-ds-confirm-copy{font-size:10px;font-weight:750;flex:1;min-width:95px;color:var(--ink)}
.afw-ds-delete-accept,.afw-ds-delete-reject{min-height:30px;padding:0 10px;border-radius:7px;border:1px solid var(--line2);font:inherit;font-size:10px;font-weight:750;cursor:pointer;background:var(--paper);color:var(--ink)}
.afw-ds-delete-accept{border-color:#b34736;background:#a93f30;color:#fff}
.afw-ds-delete-accept:hover{background:#922e24}
.afw-ds-delete-reject:hover{border-color:var(--orange)}
.afw-mission-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 24px;flex:none;border-top:1px solid var(--line2);background:var(--panel2);font-size:10px;color:var(--muted)}
.afw-mission-key{display:inline-block;border:1px solid var(--line2);border-radius:5px;padding:2px 5px;background:var(--paper);font-size:9px;color:var(--ink)}
@media(prefers-reduced-motion:reduce){.afw-ds-card-container{transition:none}}
@media(max-width:860px){.afw-mission-header{padding:16px}.afw-mission-content{padding:16px}.afw-mission-grid{gap:10px}.afw-mission-heading p{display:none}.afw-mission-total{display:none}}
@media(max-width:670px){
.afw-ds-launch{height:35px;width:45px}
.afw-ds-launch-symbol{width:20px}
.afw-ds-launch-symbol .i{width:18px;height:18px}
.afw-mission-window{right:50%;transform:translateX(50%);bottom:69px;width:calc(100vw - 14px);max-height:calc(100vh - 82px)}
.afw-mission-header{padding:12px;gap:8px}
.afw-mission-logo{width:34px;height:34px}
.afw-mission-logo .i{width:19px;height:19px}
.afw-mission-kicker{font-size:7px}
.afw-mission-heading h2{font-size:16px}
.afw-mission-add-top{font-size:9px;padding:0 7px;min-height:32px;gap:4px}
.afw-mission-close{height:32px;width:28px}
.afw-mission-header-actions{gap:4px}
.afw-mission-content{padding:12px}
.afw-mission-section-heading span{display:none}
.afw-mission-grid{grid-template-columns:1fr;gap:9px}
.afw-ds-live-view{aspect-ratio:3/4;min-height:270px}
.afw-mission-footer{padding:10px 12px;font-size:8px;flex-wrap:wrap}
}
/* V3.3 — universal content layer gallery, configurable layer vs presentation */
.layer-lab{margin-top:16px;border-radius:13px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-card);background:linear-gradient(150deg,var(--paper),var(--panel))}
.layer-lab-head{display:flex;gap:15px;justify-content:space-between;align-items:center;padding:18px 21px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,var(--panel2),var(--paper))}
.layer-lab-head strong{font-size:13px;letter-spacing:-.02em;color:var(--ink-strong)}
.layer-lab-head p{font-size:10px;color:var(--muted);margin:4px 0 0}
.layer-label{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--orange-deep);font-weight:750}
.layer-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:18px}
.layer-card{display:flex;flex-direction:column;min-width:0;padding:14px;gap:8px;border-radius:11px;border:1px solid var(--line);background:linear-gradient(135deg,var(--paper),var(--panel2))}
.layer-card h3{font-size:11px;letter-spacing:-.02em;margin:0;color:var(--ink-strong)}
.layer-card p{font-size:9.5px;line-height:1.65;margin:0;color:var(--muted);min-height:57px}
.layer-card button{margin-top:auto;width:100%}
.layer-visual{position:relative;height:100px;border-radius:9px;background:radial-gradient(circle at 87% 1%,#f5b27f99,transparent 54%),linear-gradient(140deg,#4f3929,#2c211a);border:1px solid #ac7e5480;overflow:hidden}
.layer-visual:before{content:"";position:absolute;left:13px;right:13px;bottom:13px;top:13px;border:1px solid #e7cba344;border-radius:6px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 11px,#f0d2a020 11px,#f0d2a020 12px)}
.layer-preview{position:absolute;border:1px solid #e7be85b5;background:linear-gradient(120deg,#fffaf0ef,#f1dac0);border-radius:6px;box-shadow:0 10px 18px #170e0970}
.layer-preview.wizard{left:23%;right:18%;top:19%;bottom:17%}
.layer-preview.wizard:before{content:"";display:block;margin:12px 12px;height:8px;width:65%;background:#a66a3e55;border-radius:3px}
.layer-preview.wizard:after{content:"";display:block;margin:12px;height:5px;width:80%;background:#d5a67d66;border-radius:3px}
.layer-preview.full{inset:5% 5% 6%}
.layer-preview.full:before{content:"";position:absolute;left:7%;top:12%;bottom:10%;width:21%;border-radius:4px;background:#8a5739}
.layer-preview.full:after{content:"";position:absolute;left:35%;top:15%;right:9%;bottom:12%;border:1px dashed #b69268;border-radius:4px}
.layer-preview.glass{left:16%;right:15%;top:13%;bottom:13%;border:1px solid #fff6ddbe;background:#fff0d850;backdrop-filter:blur(6px)}
.layer-preview.glass:before{content:"";position:absolute;left:15%;right:15%;top:26%;height:5px;background:#fff8eaad;border-radius:3px}
.layer-preview.guard{left:22%;right:22%;top:16%;bottom:15%}
.layer-preview.guard:before{content:"!";font-weight:800;color:#a96e2e;font-size:19px;text-align:center;display:block;margin:8px 0 0}
.layer-preview.guard:after{content:"";height:4px;display:block;background:#d2ad82;margin:10px 13px;border-radius:3px}
.layer-config{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;align-items:end;padding:14px 18px 17px;border-top:1px solid var(--line);background:linear-gradient(130deg,var(--panel2),var(--paper))}
.layer-control{display:flex;flex-direction:column;gap:6px;min-width:0}.layer-control label{font-size:9.5px;font-weight:650;color:var(--muted)}
.layer-control select{font:inherit;font-size:10px;background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-radius:8px;padding:0 8px;width:100%;height:var(--control-h)}
.layer-lab-note{padding:0 20px 15px;font-size:9px;line-height:1.75;color:var(--muted)}
/* Native dialog uses top layer; modal background truly inert, unlike a decorative overlay. */
#layerDemo{position:fixed;inset:0;margin:auto;border:0;padding:0;outline:none;overflow:hidden;width:min(760px,calc(100vw - 28px));height:min(560px,calc(100dvh - 34px));max-width:none;max-height:none;border-radius:16px;box-shadow:0 36px 100px #120a06bf,0 5px 20px #0e09045c;background:var(--paper);color:var(--ink)}
#layerDemo:not([open]){display:none}
#layerDemo::backdrop{background:color-mix(in srgb,#120c08 68%,transparent);backdrop-filter:blur(4px)}
#layerDemo[data-variant="glass"]{background:color-mix(in srgb,var(--paper) 67%,transparent);backdrop-filter:blur(22px) saturate(1.5);border:1px solid color-mix(in srgb,var(--gold2) 70%,transparent)}
#layerDemo[data-variant="glass"]::backdrop{background:#26170f83;backdrop-filter:blur(6px)}
#layerDemo[data-variant="immersive"]{background:var(--page);border-radius:12px}
#layerDemo[data-mode="nonmodal"]{box-shadow:0 21px 62px #140a06a8;border:1px solid var(--line2);top:70px;left:auto;right:24px;bottom:auto;margin:0;width:min(620px,calc(100vw - 35px));height:min(510px,calc(100dvh - 130px))}
#layerDemo[data-size="small"]{width:min(460px,calc(100vw - 28px));height:min(420px,calc(100dvh - 32px))}
#layerDemo[data-size="wide"]{width:min(960px,calc(100vw - 28px));height:min(650px,calc(100dvh - 30px))}
#layerDemo[data-size="full"]{width:calc(100vw - 20px);height:calc(100dvh - 20px);border-radius:12px}
#layerDemo[data-mode="nonmodal"][data-size="full"]{width:calc(100vw - 35px);height:calc(100dvh - 150px)}
.layer-shell{display:flex;flex-direction:column;height:100%;min-height:0}
.layer-chrome{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:17px 21px;border-bottom:1px solid var(--line);background:linear-gradient(115deg,var(--panel2),var(--paper));flex:none}
.layer-chrome strong{display:block;font-size:12px;color:var(--ink-strong)}.layer-chrome small{display:block;font-size:9px;color:var(--muted);margin-top:4px}
.layer-close{display:grid;place-items:center;width:33px;height:33px;flex:none;border-radius:8px;background:var(--paper);border:1px solid var(--line);color:var(--ink);font-size:20px;line-height:1}
.layer-close:hover{background:var(--hover)}
.layer-close.disabled{opacity:.4;cursor:not-allowed}
.layer-content{flex:1;min-height:0;overflow:auto;padding:22px}
.layer-content h2{font-size:19px;letter-spacing:-.05em;margin:3px 0 8px;color:var(--ink-strong)}.layer-content p{font-size:10.5px;line-height:1.8;color:var(--muted)}
.layer-footer{flex:none;border-top:1px solid var(--line);background:var(--panel2);padding:12px 20px;display:flex;justify-content:space-between;gap:12px;align-items:center}
.layer-progress{height:6px;overflow:hidden;border-radius:20px;background:var(--panel3)}.layer-progress>span{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#e6b778,var(--orange));transition:width .2s}
.layer-steps{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted);margin:10px 0 16px}
.layer-step{padding:5px 8px;border:1px solid var(--line);border-radius:7px}
.layer-step.active{background:var(--tint);border-color:var(--gold2);color:var(--orange-deep);font-weight:700}
.layer-wizard-media{min-height:78px;border-radius:11px;padding:15px 17px;margin:12px 0;background:radial-gradient(ellipse at right top,#f0a95a77,transparent 48%),linear-gradient(125deg,#4b3525,#342318);color:#fff1e1;display:flex;align-items:center;gap:13px}
.layer-wizard-media .icon{width:43px;height:43px;flex:none;display:grid;place-items:center;border:1px solid #f6d9ac7a;border-radius:12px;background:#ffffff24}
.layer-wizard-media strong{font-size:12px;display:block}.layer-wizard-media span{font-size:9.5px;color:#e9ccaa}
.layer-input{display:flex;flex-direction:column;gap:7px;margin:13px 0}.layer-input label{font-size:10px;font-weight:650;color:var(--ink)}
.layer-input input{width:100%;height:var(--control-h);font:inherit;font-size:11px;border:1px solid var(--line2);border-radius:8px;padding:0 10px;background:var(--paper);color:var(--ink)}
.layer-input input:focus{outline:none;border-color:var(--orange);box-shadow:var(--focus)}
.layer-immersion{height:100%;display:grid;grid-template-columns:170px minmax(0,1fr);gap:0}
.layer-immersion-sidebar{padding:18px;background:linear-gradient(145deg,#443020,#2a1d14);color:#ead5b9;display:flex;flex-direction:column;gap:8px}
.layer-immersion-sidebar strong{font-size:11px;margin-bottom:12px;color:#fff2db}
.layer-immersion-sidebar span{font-size:10px;padding:9px 10px;border-radius:7px}
.layer-immersion-sidebar span.active{background:#e69b4c36;color:#fff1dd;border:1px solid #d9bd8352}
.layer-immersion-main{overflow:auto;display:flex;flex-direction:column;min-width:0}
.layer-immersion-top{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-bottom:1px solid var(--line);gap:10px}
.layer-immersion-top strong{font-size:12px}.layer-immersion-body{padding:21px;flex:1}
.layer-immersion-canvas{border-radius:12px;border:1px dashed var(--line2);min-height:210px;display:flex;gap:12px;align-items:center;justify-content:flex-start;overflow:auto;padding:30px;background:radial-gradient(var(--line2) .7px,transparent .7px);background-size:17px 17px}
.layer-immersion-node{min-width:130px;padding:13px;border-radius:10px;border:1px solid var(--line2);box-shadow:var(--shadow-card);background:var(--paper);font-size:10px;color:var(--ink);font-weight:650}
.layer-immersion-node small{display:block;font-weight:400;font-size:9px;color:var(--muted);margin-top:5px}
.layer-glass-body{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;height:100%;gap:9px;padding:25px}
.layer-glass-emblem{display:grid;place-items:center;width:66px;height:66px;border-radius:20px;background:linear-gradient(135deg,#f7be7e,#e97e23);color:#3b2717;font-weight:700;font-size:35px;box-shadow:0 15px 35px -17px #aa5a1c}
.layer-glass-body h2{font-size:20px;margin:0;color:var(--ink-strong)}
.layer-glass-body p{max-width:380px;color:var(--muted);line-height:1.8;font-size:10.5px;margin:0}
.layer-glass-body .layer-close{position:absolute;top:14px;right:14px}
.layer-required{max-width:450px;margin:auto}
.layer-required label.checkbox{display:flex;gap:9px;align-items:center;font-size:10.5px;margin:18px 0;padding:12px;border-radius:9px;border:1px solid var(--line);background:var(--panel2)}
.layer-required label.checkbox input{width:17px;height:17px;accent-color:var(--orange)}
.layer-required-status{border-left:3px solid var(--warn);background:var(--warn-bg);padding:10px 13px;font-size:10px;color:var(--ink);border-radius:6px;margin-top:14px}
.layer-lab .btn{white-space:normal;min-height:35px}
@media(max-width:1000px){.layer-presets{grid-template-columns:repeat(2,minmax(0,1fr))}.layer-config{grid-template-columns:repeat(2,minmax(0,1fr))}.layer-config>button{grid-column:1/-1}}
@media(max-width:720px){.layer-lab-head{padding:15px}.layer-presets{gap:8px;padding:11px}.layer-card{padding:11px}.layer-card p{min-height:78px}.layer-visual{height:78px}.layer-config{padding:13px}.layer-content{padding:16px}
#layerDemo:not([data-mode="nonmodal"]){width:100vw!important;height:100dvh!important;border-radius:0!important}
.layer-immersion{grid-template-columns:65px minmax(0,1fr)}.layer-immersion-sidebar{padding:10px 5px}.layer-immersion-sidebar span{font-size:8px;padding:8px 4px}.layer-immersion-sidebar strong{font-size:8px}
#layerDemo[data-mode="nonmodal"]{right:6px;top:20px;width:calc(100vw - 12px);height:calc(100dvh - 85px)}
}
/* V3.3 — viewport-based, independently scrolling views.
 * Shell: fixed flex regions. Only the view beneath pointer scrolls.
 * Never rely on absolute positioning alone to suppress scroll chaining.
 */
html,body{height:100%;width:100%;min-height:0;overflow:hidden!important;overscroll-behavior:none}
body{padding:0!important}
.app{position:fixed!important;inset:0 0 62px 0!important;height:auto!important;min-height:0!important;display:flex!important;flex-direction:row!important;align-items:stretch;overflow:hidden!important;width:100%}
.app .sidebar{flex:0 0 222px;width:222px;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;position:relative}
.app .main{height:100%;min-width:0;min-height:0;overflow:hidden;display:flex;flex:1 1 auto;flex-direction:column;align-items:stretch}
.app .main .topbar{flex:0 0 58px;min-height:58px;position:relative!important;top:auto!important}
.app .main .content{display:block;flex:1 1 auto;min-width:0;min-height:0;width:100%;max-width:1590px;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:contain;overscroll-behavior-y:contain;margin:0 auto!important;scrollbar-width:thin;scroll-behavior:auto}
.app .main .content,.app .sidebar,.d-win-body,.d-flow-canvas,.d-task-list,.d-task-popover-body,#layerDemo,.layer-shell,.layer-content,.layer-immersion-main,.layer-immersion-canvas{overscroll-behavior:contain}
.d-window-area{overflow:hidden}
.d-win{overscroll-behavior:contain}
.d-win-body{overflow-y:auto}
#layerDemo{overscroll-behavior:contain;overflow:hidden}
#layerDemo .layer-shell{min-height:0;overflow:hidden}
#layerDemo .layer-content{overflow-y:auto;overscroll-behavior:contain}
#layerDemo .layer-immersion-main{min-height:0;overflow-y:auto;overscroll-behavior:contain}
#layerDemo .layer-immersion-canvas{overscroll-behavior:contain}
.d-task-popover-body{overscroll-behavior:contain}
body.has-blocking-layer .app .sidebar,
body.has-blocking-layer .app .content,
body.has-blocking-layer .d-win-body,
body.has-blocking-layer .d-flow-canvas,
body.has-blocking-layer .d-task-popover-body{overflow-y:hidden!important}
body.has-blocking-layer .app,
body.has-blocking-layer .d-window-area,
body.has-blocking-layer .d-taskbar{pointer-events:none}
@media(max-width:1080px){
 .app .sidebar{flex:0 0 70px;width:70px}
}
@media(max-width:690px){
 .app{inset:0 0 57px 0!important;flex-direction:column!important}
 .app .sidebar{flex:0 0 54px!important;width:100%!important;height:54px;min-height:54px;overflow-y:hidden;overflow-x:auto;overscroll-behavior-x:contain}
 .app .main{height:auto;min-height:0;flex:1 1 auto;width:100%}
 .app .main .topbar{flex:0 0 48px;min-height:48px}
 .app .main .content{padding-bottom:75px}
}


/* Scrollable demo content and the nonmodal layer's independent elevation */
.layer-scroll-sample{margin:14px 0;border:1px solid var(--line);border-radius:9px;background:var(--panel2);overflow:hidden}
.layer-scroll-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 13px;border-bottom:1px solid var(--line);min-height:44px}
.layer-scroll-row:last-child{border:0}
.layer-scroll-row strong{font-size:10px;font-weight:650;color:var(--ink)}
.layer-scroll-row span{font-size:9px;color:var(--muted);text-align:right}
#layerDemo[data-mode="nonmodal"]{z-index:260}


/* V3.4 — scroll track anchored to the far-right edge of main workspace.
   Full-width scroll OWNER; centered content remains a separate inner container. */
.app .main .content{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-gutter:stable;
}
/* Every AFW background page uses exactly the same layout envelope as
   the legacy Dashboard. PageRouter is a display:contents host, so apply
   spacing to its actual route pages, not the empty host (which remains
   present even when the Dashboard is active). */
.app .main .content>.d-content-inner,
.app .main .content>#afwPageHost>.afw-route-page{
  box-sizing:border-box;
  width:100%;
  max-width:1590px;
  min-width:0;
  margin:0 auto;
  padding:26px 31px 100px;
}
@media(max-width:690px){
 .app .main .content>.d-content-inner,
 .app .main .content>#afwPageHost>.afw-route-page{padding:17px 14px 75px}
}
/* v3.2's broad .d-mini span rule turned the icon tile into display:block and
   added a 3px top margin. Override explicitly for the icon tile. */
.d-mini>.d-mini-icon{
  width:36px;
  height:36px;
  display:grid!important;
  place-items:center;
  align-content:center;
  justify-content:center;
  flex:0 0 36px;
  margin:0!important;
  padding:0;
  background:linear-gradient(145deg,var(--paper),var(--panel2));
  color:var(--orange-deep)!important;
}
.d-mini>.d-mini-icon>svg.i{
  display:block;
  width:17px;
  height:17px;
  justify-self:center;
  align-self:center;
  margin:0!important;
}
.d-mini>span:not(.d-mini-icon){margin-top:0}
.d-taskbar #taskPrev[hidden],
.d-taskbar #taskNext[hidden]{
  display:none!important;
}

/* LIVING DEMO / STUDIO */

/* Living Demo v0.1 — independently maintained shared showroom skin */
.ld-head{border:1px solid #956a45;border-radius:14px;background:radial-gradient(ellipse at 89% -33%,#f0a15a63,transparent 53%),linear-gradient(110deg,#493321,#2c2118);box-shadow:0 19px 35px -27px #24120aae;color:#fff3e4;margin:0 0 12px;padding:21px 24px}
.ld-head-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.ld-overline{font-size:9px;font-weight:750;letter-spacing:.15em;color:#eac18b}
.ld-status{color:#e6d5bd;border:1px solid #ddba8269;border-radius:6px;padding:5px 8px;font-size:9px;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.ld-status i{background:#aad29b;border-radius:50%;height:6px;width:6px}
.ld-head h2{font-size:22px;letter-spacing:-.05em;color:#fff5e9;margin:8px 0 5px}
.ld-head p{font-size:10.5px;line-height:1.75;color:#ddc9b2;max-width:660px;margin:0}
.ld-launch-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:18px}
.ld-launch-card{border:1px solid #e4c59866;background:#ffffff13;border-radius:9px;min-width:0;min-height:72px;display:flex;align-items:center;gap:9px;text-align:left;color:#fff4e6;padding:10px;transition:background .14s,border-color .14s}
.ld-launch-card:hover{background:#ffca8b22;border-color:#e5b16e}
.ld-launch-icon{width:31px;height:31px;flex:none;display:grid;place-items:center;border:1px solid #f2d09d7d;background:#ffd29920;border-radius:8px;font-size:17px;color:#ffd5a1}
.ld-launch-card>span:nth-child(2){min-width:0;flex:1}
.ld-launch-card strong{display:block;font-size:10px;font-weight:650;color:#fff5e8}
.ld-launch-card small{display:block;margin-top:4px;font-size:8.5px;line-height:1.5;color:#d8c0a4}
.ld-launch-arrow{color:#e0b17c;font-size:15px}
.ld-release-panel{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0 14px;display:flex;gap:10px;align-items:start;background:linear-gradient(155deg,var(--paper),var(--panel2));box-shadow:var(--shadow-card)}
.ld-release-panel strong{color:var(--orange-deep);font-size:10px;flex:none}
.ld-release-panel span{font-size:9.5px;color:var(--muted);line-height:1.6}
.ld-release-panel b{color:var(--ink)}
.ld-gallery-win .d-win-body{background:linear-gradient(150deg,var(--paper),var(--panel));overscroll-behavior:contain}
.ld-gallery-win .d-win-content{padding:0;min-width:0;min-height:0}
.ld-gallery{display:flex;flex-direction:column;height:100%;min-height:100%;min-width:0}
.ld-gallery-header{display:flex;justify-content:space-between;gap:15px;align-items:start;padding:17px 21px 14px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--panel2),var(--paper))}
.ld-gallery-header .hint{font-size:9px;letter-spacing:.11em;text-transform:uppercase;font-weight:750;color:var(--orange-deep)}
.ld-gallery-header h2{font-size:15px;letter-spacing:-.035em;margin:4px 0;color:var(--ink-strong)}
.ld-gallery-header p{font-size:9.5px;margin:0;color:var(--muted);line-height:1.6}
.ld-review-label{font-size:9px;border:1px solid var(--line);padding:5px 8px;border-radius:6px;color:var(--muted);background:var(--paper);white-space:nowrap}
.ld-gallery-main{flex:1;padding:16px 20px 24px;min-height:0}
.ld-section{margin-bottom:16px;min-width:0}
.ld-section h3{font-size:11px;margin:0 0 10px;font-weight:700;color:var(--ink-strong)}
.ld-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.ld-panel{background:linear-gradient(145deg,var(--paper),var(--panel2));border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}
.ld-panel.wide{grid-column:1/-1}
.ld-panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px}
.ld-panel-header strong{font-size:10.5px;color:var(--ink)}
.ld-panel-header small{font-size:9px;color:var(--muted)}

/* Semantic panels only; existing desktop d-panel styles remain governed by app-shell. */
[data-afw-component="panel"][data-afw-surface="flat"]{background:var(--paper);box-shadow:none;border:1px solid var(--line)}
[data-afw-component="panel"][data-afw-surface="raised"]{background:var(--panel);box-shadow:0 8px 24px #24170d18;border:1px solid var(--line)}
[data-afw-component="panel"][data-afw-surface="glass"]{background:color-mix(in srgb,var(--panel) 78%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line)}
[data-afw-component="panel"][data-afw-padding="none"]{padding:0}
[data-afw-component="panel"][data-afw-padding="sm"]{padding:10px}
[data-afw-component="panel"][data-afw-padding="md"]{padding:16px}
[data-afw-component="panel"][data-afw-padding="lg"]{padding:24px}
.ld-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ld-row+.ld-row{margin-top:11px}
.ld-button{font:inherit;font-size:10px;font-weight:650;min-height:var(--control-h);padding:0 12px;display:inline-flex;gap:7px;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--line2);background:linear-gradient(155deg,var(--paper),var(--panel2));color:var(--ink);box-shadow:inset 0 1px #ffffff22;line-height:1.2}
.ld-button:hover:not(:disabled){border-color:var(--gold2);background:var(--hover);color:var(--ink)}
.ld-button.primary{background:linear-gradient(140deg,#ffc083,#f4781c 67%,#df6718);border-color:#ea7c28;color:#392417}
.ld-button.primary:hover:not(:disabled){background:linear-gradient(140deg,#ffca95,#fa8330 65%,#e46a1c);color:#352013}
.ld-button.danger{background:linear-gradient(140deg,#bd534d,#922d38);border-color:#af4448;color:#fffaf8!important}
.ld-button.danger:hover:not(:disabled),.ld-button.danger:focus-visible{background:linear-gradient(140deg,#ce6660,#a73943);color:#fffaf8!important}
.ld-button.ghost{background:transparent;border-color:transparent;box-shadow:none}
.ld-button.small{min-height:28px;font-size:9px;padding:0 9px}
.ld-button.icon-only{width:var(--control-h);padding:0;flex:none}
.ld-button.icon-only svg.i{display:block;width:16px;height:16px;margin:0}
.ld-button:disabled{opacity:.45;cursor:not-allowed}
.ld-button:focus-visible,.ld-field input:focus-visible,.ld-field textarea:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* Shared foundation for all Button variants, including desktop chrome and taskbar. */
[data-afw-component="button"]{touch-action:manipulation}
[data-afw-component="button"]:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

/* Public Button API v1 — semantic attributes, no caller CSS classes required. */
[data-afw-component="button"][data-afw-variant] {font:inherit; font-size:11px; font-weight:650; display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-h);padding:0 13px;border:1px solid var(--line2);border-radius:8px;background:linear-gradient(145deg,var(--paper),var(--panel2));color:var(--ink);cursor:pointer;line-height:1.2;white-space:nowrap;vertical-align:middle}
[data-afw-component="button"][data-afw-variant]:hover:not(:disabled){filter:brightness(1.045);border-color:var(--gold2)}
[data-afw-component="button"][data-afw-variant="primary"]{background:linear-gradient(140deg,#ffc083,#f4781c 67%,#df6718);border-color:#ea7c28;color:#392417}
[data-afw-component="button"][data-afw-variant="secondary"]{background:var(--panel2);border-color:var(--line2)}
[data-afw-component="button"][data-afw-variant="success"]{background:#1e735c;border-color:#28876d;color:#fff}
[data-afw-component="button"][data-afw-variant="warning"]{background:#bd8a2e;border-color:#d49b36;color:#271d10}
[data-afw-component="button"][data-afw-variant="danger"]{background:linear-gradient(140deg,#bd534d,#922d38);border-color:#af4448;color:#fffaf8}
[data-afw-component="button"][data-afw-variant="ghost"],[data-afw-component="button"][data-afw-variant="quiet"]{background:transparent;border-color:transparent;box-shadow:none}
[data-afw-component="button"][data-afw-variant="outline"]{background:transparent;border-color:var(--orange);color:var(--orange-deep)}
[data-afw-component="button"][data-afw-variant="outline"]:hover:not(:disabled){background:var(--hover)}
[data-afw-component="button"][data-afw-size="xs"]{min-height:24px;font-size:9px;padding:0 7px}
[data-afw-component="button"][data-afw-size="sm"]{min-height:29px;font-size:10px;padding:0 9px}
[data-afw-component="button"][data-afw-size="md"]{min-height:var(--control-h);font-size:11px}
[data-afw-component="button"][data-afw-size="lg"]{min-height:44px;font-size:12px;padding:0 17px}
[data-afw-component="button"][data-afw-shape="square"]{border-radius:3px}
[data-afw-component="button"][data-afw-shape="pill"]{border-radius:100px}
[data-afw-component="button"][data-afw-full="true"]{width:100%}
[data-afw-component="button"][data-afw-icon-only="true"]{aspect-ratio:1;padding:0;min-width:var(--control-h)}
[data-afw-component="button"][data-afw-size="xs"][data-afw-icon-only="true"]{min-width:24px}
[data-afw-component="button"][data-afw-size="sm"][data-afw-icon-only="true"]{min-width:29px}
[data-afw-component="button"][data-afw-size="lg"][data-afw-icon-only="true"]{min-width:44px}
[data-afw-component="button"][data-afw-variant]:disabled{opacity:.5;cursor:not-allowed}
[data-afw-component="button"][data-afw-variant]:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.afw-button-spinner{width:13px;height:13px;display:inline-block;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:afw-spin .75s linear infinite}
@keyframes afw-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.afw-button-spinner{animation-duration:2s}}
.ld-state{display:inline-flex;align-items:center;gap:6px;border-radius:6px;font-size:9px;font-weight:700;padding:5px 8px;background:var(--panel3);color:var(--muted)}
.ld-state:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}
.ld-state.success{background:var(--green-bg);color:var(--green)}
.ld-state.warning{background:var(--warn-bg);color:var(--warn)}
.ld-state.error{background:var(--red-bg);color:var(--red)}

[data-afw-component="status"][data-afw-tone] {display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:100px;line-height:1.2}
[data-afw-component="status"][data-afw-tone="info"]{background:#d5e8f6;color:#235876}
[data-afw-component="status"][data-afw-tone="neutral"]{background:var(--panel2);color:var(--ink)}
[data-afw-component="status"][data-afw-tone="success"],[data-afw-component="status"][data-afw-tone="active"]{background:#d6eee5;color:#1b684f}
[data-afw-component="status"][data-afw-tone="warning"],[data-afw-component="status"][data-afw-tone="pending"]{background:#faeccb;color:#826019}
[data-afw-component="status"][data-afw-tone="error"]{background:#f7d9da;color:#933940}
[data-afw-component="status"][data-afw-size="sm"]{font-size:9px;padding:3px 7px}
[data-afw-component="status"][data-afw-size="md"]{font-size:10px;padding:5px 10px}
.ld-field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:10px}
.ld-field>label{font-weight:650;color:var(--ink)}
.ld-field input,.ld-field textarea,.ld-field select{border:1px solid var(--line2);border-radius:8px;height:var(--control-h);min-width:0;width:100%;padding:0 10px;background:var(--paper);color:var(--ink);font:inherit;font-size:10.5px;outline:0}
.ld-field textarea{height:88px;resize:vertical;padding:10px}
.ld-field input:focus,.ld-field textarea:focus{border-color:var(--orange);box-shadow:var(--focus)}
.ld-field.is-invalid input{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 12%,transparent)}
.ld-help{font-size:9px;line-height:1.55;color:var(--muted)}
.ld-help.error{color:var(--red)}

.afw-field[data-afw-size="sm"] input,.afw-field[data-afw-size="sm"] textarea{min-height:29px}
.afw-field[data-afw-size="lg"] input,.afw-field[data-afw-size="lg"] textarea{min-height:44px}
.afw-field input[aria-invalid="true"],.afw-field textarea[aria-invalid="true"]{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.ld-choice{display:flex;align-items:center;gap:8px;font-size:10px;color:var(--ink);min-height:29px}
.ld-choice input{width:16px;height:16px;margin:0;accent-color:var(--orange)}

[data-afw-component="choice"]:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.ld-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ld-form-grid .wide{grid-column:1/-1}

/* Form composition D2: reuses shared Field, Select, Choice, Button, Status. */
.ld-af-panel{margin-top:14px;overflow:hidden}
.ld-af-panel .ld-panel-header{margin-bottom:13px}
.ld-af-form{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--paper);overflow:hidden}
.ld-af-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);background:var(--panel2)}
.ld-af-head h3{font-size:15px;line-height:1.4;margin:0;color:var(--ink-strong)}
.ld-af-head p{font-size:10px;color:var(--muted);margin:4px 0 0}
.ld-af-dirty[data-dirty=true]{color:var(--orange-deep);font-weight:700}
.ld-af-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;padding:17px 18px}
.ld-af-fields>.ld-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ld-af-fields>.wide{grid-column:1/-1}
.ld-af-fields label{font-size:10px;color:var(--ink-strong);font-weight:650}
.ld-af-fields label b{color:var(--red)}
.ld-af-fields input,.ld-af-fields textarea{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;border:1px solid var(--line2);border-radius:7px;background:var(--paper);color:var(--ink);padding:9px 11px;font:inherit;font-size:10.5px}
.ld-af-fields input{min-height:var(--control-h)}
.ld-af-fields textarea{min-height:74px;resize:vertical}
.ld-af-fields input[aria-invalid=true]{border-color:var(--red)}
.ld-af-fields input:focus-visible,.ld-af-fields textarea:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.ld-af-fields [hidden],.ld-af-panel [hidden]{display:none!important}
.ld-af-fields .ld-filter-combo{width:100%;min-width:0}
.ld-af-checkline{grid-column:1/-1;font-size:10px}
.ld-af-checkline label{display:flex;align-items:center;gap:8px}
.ld-af-checkline input{width:16px;min-height:16px;height:16px;accent-color:var(--orange)}
.ld-af-check{display:block;min-height:13px;font-size:9px;color:var(--muted);line-height:1.5}
.ld-af-check[data-tone=success]{color:var(--green)}
.ld-af-check[data-tone=error]{color:var(--red)}
.ld-af-config{margin:0 18px 14px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel2);font-size:10px}
.ld-af-config summary{cursor:pointer;color:var(--orange-deep);font-weight:700}
.ld-af-config p{margin:7px 0 0;color:var(--muted);font-size:9px}
.ld-af-options{display:flex;flex-wrap:wrap;gap:10px 16px;padding:13px 0 5px}
.ld-af-options label{display:flex;align-items:center;gap:6px;font-size:9.5px;color:var(--ink)}
.ld-af-options input{accent-color:var(--orange)}
.ld-af-status{font-size:10px;line-height:1.6;color:var(--muted);padding:10px 18px;background:var(--panel2);border-top:1px solid var(--line)}
.ld-af-status[data-tone=error]{color:var(--red);background:var(--red-bg)}
.ld-af-status[data-tone=success]{color:var(--green)}
.ld-af-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:12px 18px;border-top:1px solid var(--line)}
.ld-af-panel .ld-af-actions button:disabled{opacity:.58}
@media(max-width:720px){
 .ld-af-fields{grid-template-columns:minmax(0,1fr);padding:13px;gap:12px}
 .ld-af-head{padding:13px}
 .ld-af-head h3{font-size:13px}
 .ld-af-actions{padding:12px}
 .ld-af-config{margin:0 12px 12px}
 .ld-af-status{padding:10px 12px}
}

/* v0.24 usability: the interactive scenario is visually first, static examples second. */
.ld-af-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 12px;padding:13px 15px;border:1px solid var(--orange);border-radius:9px;background:var(--panel2)}
.ld-af-guide strong{font-size:11px;color:var(--ink-strong);display:block}
.ld-af-guide p{margin:5px 0 0;font-size:10px;line-height:1.6;color:var(--muted);max-width:560px}
.ld-af-guide-actions{display:flex;gap:7px;flex-wrap:wrap}
.ld-af-guide-actions .ld-button{white-space:nowrap}
.ld-af-legacy-title{display:flex;gap:9px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:24px 0 12px;padding:10px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ld-af-legacy-title strong{font-size:11px;color:var(--ink-strong)}
.ld-af-legacy-title span{font-size:9px;letter-spacing:.02em;color:var(--muted);font-weight:650}
@media(max-width:720px){.ld-af-guide{padding:11px}.ld-af-guide-actions .ld-button{flex:1 1 auto;white-space:normal}.ld-af-legacy-title{margin-top:17px}}
.ld-file{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ld-file label{display:inline-flex;align-items:center;gap:7px;cursor:pointer;border:1px solid var(--line2);background:var(--paper);border-radius:8px;font-size:10px;font-weight:650;min-height:var(--control-h);padding:0 11px}
.ld-file label input{position:absolute;width:1px;height:1px;opacity:0}.ld-file label:focus-within{outline:2px solid var(--orange);outline-offset:2px}
.ld-file small{color:var(--muted);font-size:9.5px}
/* AFW Visual Studio — shared DataTable pattern candidate.
   Uses existing Emersion tokens; only table-local density changes. */
.ld-panel.ld-dt{padding:0;overflow:hidden;background:var(--paper);border-color:var(--line)}
.ld-dt-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding:19px 21px 17px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,var(--paper),var(--panel2))}
.ld-dt-eyebrow{display:block;margin-bottom:5px;font-size:9px;letter-spacing:.085em;font-weight:700;color:var(--orange-deep)}
.ld-dt-eyebrow span{color:var(--quiet);padding:0 4px}
.ld-dt-heading h3{font-size:16px;letter-spacing:-.025em;font-weight:700;line-height:1.4;margin:0;color:var(--ink-strong)}
.ld-dt-heading p{font-size:10px;color:var(--muted);margin:5px 0 0;line-height:1.5}
.ld-dt-heading-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ld-dt-heading-actions .ld-button{white-space:nowrap}
.ld-dt .ld-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:0;padding:13px 20px;border-bottom:1px solid var(--line);background:var(--paper)}
.ld-dt-search{flex:1 1 235px;min-width:160px;position:relative}
.ld-dt-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:19px;line-height:1;color:var(--quiet);pointer-events:none;z-index:1}
.ld-dt-search input{width:100%;height:var(--control-h);border:1px solid var(--line2);border-radius:7px;background:var(--paper);color:var(--ink);padding:0 12px 0 34px;min-width:0;font-size:10.5px}
.ld-dt-search input:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.ld-dt .ld-toolbar .ld-filter-combo{flex:0 1 150px;min-width:127px}
.ld-dt .ld-toolbar .ld-filter-combo .ld-combo-control{min-width:0}
.ld-dt .ld-toolbar .ld-count{font-size:10px;color:var(--muted);font-weight:600;white-space:nowrap}
.ld-dt-toolbar-spacer{flex:1 1 8px}
.ld-dt-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 20px;background:var(--panel2);border-bottom:1px solid var(--line);font-size:9px;color:var(--muted)}
.ld-dt-mobilehint{display:none}
.ld-dt-density{display:flex;align-items:center;gap:5px}
.ld-dt-density>span{margin-right:5px;font-weight:600}
.ld-dt .ld-dt-toggle{font:inherit;font-size:9px;min-height:26px;border:1px solid transparent;border-radius:6px;background:transparent;padding:4px 9px;color:var(--muted)}
.ld-dt .ld-dt-toggle[aria-pressed=true]{background:var(--paper);border-color:var(--line2);color:var(--ink-strong);font-weight:700;box-shadow:0 1px 2px #00000008}
.ld-dt .ld-dt-toggle:focus-visible{outline:2px solid var(--orange)}
.ld-tablewrap{overflow-x:auto;min-width:0;max-width:100%;scrollbar-color:var(--line2) transparent}
.ld-tablewrap:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
.ld-table{width:100%;min-width:630px;border-collapse:collapse;table-layout:auto;text-align:left}
.ld-table th{background:var(--paper);color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.035em;text-transform:uppercase;border-bottom:1px solid var(--line);padding:10px 14px;white-space:nowrap}
.ld-table td{padding:11px 14px;border-bottom:1px solid var(--line);font-size:10.5px;color:var(--ink);vertical-align:middle;line-height:1.5}
.ld-table td strong{font-size:10.5px;font-weight:650;color:var(--ink-strong)}
.ld-table td .ld-dt-id{font-size:9px;display:block;margin-top:3px;color:var(--muted);font-variant-numeric:tabular-nums}
.ld-table tr:last-child td{border-bottom:0}
.ld-table tbody tr:hover{background:var(--hover)}
.ld-table tbody tr[data-selected=true]{background:var(--selected)}
.ld-table .ld-dt-selectcol{width:43px;padding-left:17px;padding-right:7px}
.ld-table td:first-child{width:43px;padding-left:17px;padding-right:7px}
.ld-table .ld-dt-actioncol{text-align:right}
.ld-table td:last-child{text-align:right;white-space:nowrap}
.ld-table input[type=checkbox]{width:16px;height:16px;accent-color:var(--orange)}
.ld-table .ld-dt-sort{display:inline-flex;align-items:center;gap:6px;margin:-5px -7px;padding:5px 7px;border:0;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;min-height:26px}
.ld-table .ld-dt-sort:hover{background:var(--hover);color:var(--ink-strong)}
.ld-table .ld-dt-sort[aria-pressed=true]{color:var(--ink-strong)}
.ld-table [data-ld-sort-arrow]{font-size:12px;color:var(--orange-deep)}
.ld-dt[data-ld-table-density=compact] .ld-table td{padding-top:9px;padding-bottom:9px}
.ld-dt[data-ld-table-density=comfort] .ld-table td{padding-top:17px;padding-bottom:17px}
.ld-dt[data-ld-table-density=comfort] .ld-table td strong{font-size:11px}
.ld-dt .ld-dt-empty td{text-align:center;padding:38px 14px;color:var(--muted)}
.ld-dt-empty strong{font-size:12px;display:block;color:var(--ink-strong)}
.ld-dt-empty span{display:block;margin-top:6px;font-size:10px}
.ld-dt-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 19px;border-top:1px solid var(--line);background:var(--panel2)}
.ld-dt-bulk,.ld-dt-paging{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ld-dt-bulk strong{font-size:10px;color:var(--ink-strong)}
.ld-dt-bulk button{min-height:27px}
.ld-dt-paging{font-size:9.5px;color:var(--muted)}
.ld-dt-paging label{font-size:9px}
.ld-dt-paging select{height:29px;padding:0 7px;border:1px solid var(--line2);border-radius:6px;background:var(--paper);color:var(--ink);min-width:58px}
.ld-dt-range{margin-right:5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ld-dt .ld-dt-page{width:28px;height:28px;min-height:28px;display:grid;place-items:center;padding:0;border:1px solid var(--line2);border-radius:6px;background:var(--paper);color:var(--ink-strong);font-size:18px}
.ld-dt .ld-dt-page:disabled{opacity:.4;cursor:default}
.ld-dt-page-no{min-width:30px;text-align:center;font-variant-numeric:tabular-nums}
.ld-dt-sr{position:absolute;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px}
@media(max-width:730px){
 .ld-dt-heading{padding:15px 13px;gap:11px}
 .ld-dt-heading-actions{width:100%}
 .ld-dt .ld-toolbar{padding:11px 12px;gap:8px}
 .ld-dt-search{flex:1 0 100%}
 .ld-dt .ld-toolbar .ld-filter-combo{flex:1 1 132px}
 .ld-dt-toolbar-spacer{display:none}
 .ld-dt-meta{padding:8px 12px}
 .ld-dt-meta-note{display:none}
 .ld-dt-mobilehint{display:block;width:100%;font-size:9px;color:var(--muted)}
 .ld-dt-bottom{padding:10px 12px}
 .ld-dt-paging{width:100%;justify-content:space-between;gap:5px}
}

/* v0.22.0 — one table, configurable controls and simulated asynchronous adapter. */
.ld-dt [hidden]{display:none!important}
.ld-dt-demo{padding:10px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel2) 58%,var(--paper));font-size:9.5px}
.ld-dt-source-controls{display:flex;align-items:center;flex-wrap:wrap;gap:11px}
.ld-dt-source-controls label{display:flex;align-items:center;gap:7px;color:var(--muted);font-weight:600}
.ld-dt-source-controls select{height:31px;background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-radius:7px;padding:0 10px;font-size:10px;max-width:220px}
.ld-dt-source-controls input{accent-color:var(--orange)}
.ld-dt-demo details{margin-top:9px;border-top:1px dashed var(--line);padding-top:7px}
.ld-dt-demo summary{font-weight:600;color:var(--orange-deep);cursor:pointer;list-style-position:inside}
.ld-dt-options{display:flex;gap:7px 14px;flex-wrap:wrap;padding:11px 0 5px}
.ld-dt-options label{display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;color:var(--ink);font-size:9.5px}
.ld-dt-options input{accent-color:var(--orange)}
.ld-dt-alert{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 19px;font-size:10px;line-height:1.5;border-bottom:1px solid var(--line);background:var(--tint);color:var(--ink)}
.ld-dt-alert[data-state="error"]{background:var(--red-bg);color:var(--red)}
.ld-dt-alert[data-state="loading"]{background:var(--panel2);color:var(--muted)}
.ld-dt [data-ld-unpaged]{font-size:9px;line-height:1.5;color:var(--muted);margin-left:auto}
.ld-dt .ld-toolbar [data-ld-part="filters"],.ld-dt .ld-toolbar [data-ld-part="sort"]{display:block;flex:0 1 155px;min-width:130px}
.ld-dt .ld-toolbar [data-ld-part="filters"] .ld-filter-combo,.ld-dt .ld-toolbar [data-ld-part="sort"] .ld-filter-combo{width:100%}
.ld-dt .ld-table [data-ld-plain-label]{font-weight:700}
@media(max-width:730px){
 .ld-dt-demo{padding:10px 12px}
 .ld-dt-source-controls{align-items:stretch}
 .ld-dt-source-controls>label:first-child{flex-wrap:wrap}
 .ld-dt .ld-toolbar [data-ld-part="filters"],.ld-dt .ld-toolbar [data-ld-part="sort"]{flex:1 1 128px;min-width:120px}
 .ld-dt-alert{padding:10px 12px}
}
.ld-smallnote{font-size:9.5px;line-height:1.7;color:var(--muted);margin:9px 0}
.ld-layergrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ld-layer-card{display:flex;gap:10px;align-items:start;border:1px solid var(--line);background:linear-gradient(145deg,var(--paper),var(--panel2));border-radius:9px;padding:12px}
.ld-layer-card .icon{width:35px;height:35px;display:grid;place-items:center;flex:none;color:var(--orange-deep);font-size:17px;border-radius:9px;background:var(--tint)}
.ld-layer-card strong{display:block;font-size:10px;color:var(--ink)}.ld-layer-card p{margin:4px 0 8px;font-size:9px;color:var(--muted);line-height:1.6}
.ld-layer-card button{margin-top:3px}
.ld-footer{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}
.ld-footer p{font-size:9px;color:var(--muted);margin:0}
.ld-screen-links{display:flex;gap:8px;flex-wrap:wrap}
.ld-screen-links button{font-size:9px}
@media(max-width:1250px){.ld-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:730px){.ld-head{padding:17px}.ld-head h2{font-size:19px}.ld-head-row{align-items:start}.ld-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ld-launch-card{padding:8px;min-height:75px}.ld-launch-card small{font-size:8px}.ld-release-panel{flex-direction:column}.ld-gallery-header{padding:15px}.ld-gallery-main{padding:12px}.ld-grid,.ld-form-grid,.ld-layergrid{grid-template-columns:1fr}.ld-panel.wide,.ld-form-grid .wide{grid-column:auto}}
/* Living Demo v0.2 — catalogue as purposeful information architecture */
.side-nav .side-link[hidden]{display:none!important}
.ld-scope-note{display:flex;align-items:center;flex-wrap:wrap;gap:9px;background:linear-gradient(140deg,var(--selected),var(--paper));border:1px solid color-mix(in srgb,var(--orange) 22%,var(--line));border-radius:10px;padding:12px 14px;margin:10px 0;color:var(--ink)}
.ld-scope-note .ld-scope-kicker{font-size:9px;letter-spacing:.09em;font-weight:800;color:var(--orange-deep)}
.ld-scope-note strong{font-size:10px;color:var(--ink-strong)}
.ld-scope-note>span:last-child{font-size:9.5px;color:var(--muted);line-height:1.55;flex-basis:100%}
.ld-demo-divider{padding:15px 0 10px;border-top:1px solid var(--line);margin-top:25px}
.ld-demo-divider span{font-size:9px;letter-spacing:.1em;color:var(--orange-deep);font-weight:750}
.ld-demo-divider h2{font-size:15px;letter-spacing:-.03em;color:var(--ink-strong);margin:5px 0}
.ld-demo-divider p{font-size:9.5px;color:var(--muted);margin:0}
.ld-launch-icon svg.i{width:17px;height:17px;display:block}
.ld-gallery-header{min-height:90px}
.ld-catalog-index{display:flex;flex-direction:column;gap:16px}
.ld-catalog-method{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:10px;background:linear-gradient(125deg,var(--tint),var(--panel2));border:1px solid var(--line);font-size:10px;color:var(--muted);line-height:1.7}
.ld-catalog-method strong{font-size:10.5px;color:var(--ink)}
.ld-catalog-group{padding-bottom:14px;border-bottom:1px solid var(--line)}
.ld-catalog-group:last-of-type{border-bottom:0}
.ld-catalog-group-head{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.ld-catalog-group h3{font-size:11.5px;letter-spacing:-.02em;color:var(--ink-strong);margin:0}
.ld-catalog-group p{font-size:9.5px;color:var(--muted);margin:0}
.ld-pattern-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.ld-pattern-card{border:1px solid var(--line);border-radius:10px;background:linear-gradient(125deg,var(--paper),var(--panel2));display:flex;gap:10px;align-items:flex-start;text-align:left;padding:13px 12px;min-width:0;min-height:93px;color:var(--ink)}
.ld-pattern-card:hover{border-color:var(--gold2);background:var(--hover);box-shadow:var(--shadow-card)}
.ld-pattern-card:focus-visible,.ld-breadcrumb:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.ld-pattern-symbol{width:35px;height:35px;flex:none;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#fbe9d4,#f7c590);color:#9e531b;border:1px solid #eecb9f}
:root[data-theme=dark] .ld-pattern-symbol{background:#5a3a25;color:#efad7a;border-color:#79533b}
.ld-pattern-symbol .i{width:17px;height:17px;display:block}
.ld-pattern-text{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.ld-pattern-text strong{font-size:10.5px;color:var(--ink-strong)}
.ld-pattern-text small{font-size:9px;line-height:1.5;color:var(--muted)}
.ld-pattern-status{color:var(--orange-deep);font-size:8px;font-weight:750;letter-spacing:.07em;line-height:1.5}
.ld-pattern-link{font-size:16px;color:var(--gold2);flex:none}
.ld-catalog-foot{font-size:9.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:11px;line-height:1.7}
.ld-review-label,.ld-pattern-status{white-space:normal}
.ld-breadcrumb{border:1px solid var(--line2);background:var(--paper);color:var(--orange-deep);font-size:9.5px;font-weight:650;border-radius:7px;padding:7px 10px;margin-bottom:13px}
.ld-breadcrumb:hover{background:var(--hover)}
.ld-example-stage{border:1px solid var(--line);border-radius:11px;overflow:visible;margin-bottom:14px;background:var(--paper)}
.ld-example-stage-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line);background:linear-gradient(130deg,var(--panel2),var(--paper));border-radius:10px 10px 0 0}
.ld-example-stage-head strong{font-size:11px;color:var(--ink-strong)}
.ld-example-stage-head span{font-size:8.5px;font-weight:700;color:var(--muted);letter-spacing:.06em}
.ld-example-surface{padding:17px;min-height:96px}
.ld-guidance{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 15px}
.ld-guidance article{border:1px solid var(--line);border-radius:10px;background:linear-gradient(140deg,var(--paper),var(--panel2));padding:12px}
.ld-guidance h3{font-size:10px;color:var(--ink-strong);margin:0 0 6px}
.ld-guidance p{font-size:9.5px;color:var(--muted);line-height:1.7;margin:0}
.ld-gallery-win .d-win-body{overflow-y:auto;scrollbar-gutter:stable}
.ld-gallery-win .ld-gallery{min-height:100%}
@media(max-width:720px){
 .ld-pattern-grid,.ld-guidance{grid-template-columns:1fr}
 .ld-pattern-card{min-height:77px}
 .ld-scope-note{align-items:flex-start;flex-direction:column}
}
/* AFW Visual Studio — API workbench, only within demo windows */
.api-studio {--api-border:var(--line);height:100%;display:flex;flex-direction:column;min-height:0}
.api-studio .ld-gallery-header{flex:0 0 auto;padding-bottom:13px}
.api-header-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.api-pill{font-size:9px;font-weight:650;border:1px solid var(--line);border-radius:100px;padding:6px 9px;color:var(--ink);background:var(--panel2)}
.api-studio-body{display:grid;grid-template-columns:225px minmax(0,1fr);gap:0;min-height:0;flex:1;overflow:hidden;border:1px solid var(--line);border-radius:13px;background:var(--panel)}
.api-studio-side{background:var(--panel2);border-right:1px solid var(--line);overflow-y:auto;padding:14px 10px;scrollbar-width:thin}
.api-nav-title{font-size:9px;color:var(--muted);font-weight:800;letter-spacing:.09em;margin:10px 7px 8px}
.api-nav-button{width:100%;text-align:left;display:block;border:1px solid transparent;background:transparent;border-radius:8px;padding:10px 11px;color:var(--ink);font:inherit;font-size:11px;font-weight:600;margin:2px 0;cursor:pointer}
.api-nav-button:hover{background:var(--hover)}
.api-nav-button.selected{background:var(--paper);border-color:var(--gold2);box-shadow:0 2px 8px #4c2c1420}
.api-search{width:calc(100% - 10px);margin:3px 5px 8px;border:1px solid var(--line2);background:var(--paper);padding:8px 9px;border-radius:8px;font:inherit;font-size:10px;color:var(--ink)}
.api-inventory-row{padding:8px 7px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.api-inventory-row[hidden]{display:none}
.api-inventory-row strong{display:block;font-size:10px;font-weight:700;color:var(--ink)}
.api-inventory-row small{display:block;font-size:9px;color:var(--muted);line-height:1.45;margin-top:3px}
.api-inventory-row em{font-size:8px;white-space:nowrap;font-style:normal;color:var(--orange-deep)}
.api-workbench{min-width:0;min-height:0;overflow:auto;padding:20px 22px 25px;scrollbar-width:thin}
.api-workbench-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.api-workbench-heading small{font-size:9px;letter-spacing:.08em;color:var(--orange-deep);font-weight:800}
.api-workbench-heading h3{font-size:19px;letter-spacing:-.035em;margin:5px 0 0;color:var(--ink)}
.api-draft{font-size:8px;color:var(--muted);padding:6px 9px;border:1px solid var(--line);border-radius:6px;text-align:right;white-space:nowrap}
.api-description{font-size:11px;color:var(--muted);margin:9px 0 17px}
.api-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;background:var(--panel2);padding:13px;border:1px solid var(--line);border-radius:10px;margin-bottom:19px}
.api-control{min-width:0;display:flex;flex-direction:column;gap:6px;font-size:10px;color:var(--muted);font-weight:650}
.api-control .ld-combo{min-width:0}
.api-checks{grid-column:1/-1;display:flex;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--ink)}
.api-checks label{display:flex;gap:5px;align-items:center;cursor:pointer}
.api-preview-label,.api-code-label{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:17px 0 8px;font-size:10px}
.api-preview-label strong,.api-code-label strong{letter-spacing:.06em;font-weight:800}
.api-preview-label small,.api-code-label span{color:var(--muted);font-size:9px}
.api-preview{min-height:112px;border:1px dashed var(--gold2);background:var(--paper);border-radius:10px;padding:20px;display:flex;align-items:center;justify-content:flex-start;overflow:auto}
.api-preview>.api-tags{display:flex;flex-wrap:wrap;gap:8px}
.api-preview>.api-stack{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.api-preview>.api-stack .ld-field{width:min(330px,100%)}
.api-preview .d-menu-action{max-width:350px}
.api-preview>.ld-panel{width:100%;max-width:460px}
.api-code{white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;padding:14px 15px;border-radius:9px;color:var(--ink);background:var(--panel2);border:1px solid var(--line);margin:0;min-height:62px}
.api-footnote{margin:11px 0 0;font-size:10px;line-height:1.5;color:var(--muted)}
.api-studio-footer{display:flex;justify-content:space-between;gap:8px;padding:12px 3px 0;color:var(--muted);font-size:9px}
.api-matrix{display:flex;flex-direction:column;gap:9px;width:100%}
.api-matrix-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.api-matrix-row strong{width:70px;font-size:10px}
@media(max-width:760px){.api-studio .ld-gallery-header{display:block}.api-header-meta{justify-content:flex-start;margin-top:10px}.api-studio-body{grid-template-columns:1fr;overflow:auto}.api-studio-side{border-right:none;border-bottom:1px solid var(--line);max-height:190px}.api-nav-button{display:inline-block;width:auto;margin:3px;padding:7px 9px}.api-inventory{display:none}.api-workbench{overflow:visible;padding:15px}.api-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.api-workbench-heading{flex-wrap:wrap}.api-draft{white-space:normal}.api-studio-footer{flex-wrap:wrap}}


/* Public entry point uses the same semantic button contract as API Studio. */
.api-entry-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:10px 0 14px;padding:14px 17px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 2px 14px #412f2012}
.api-entry-bar div{display:flex;flex-direction:column;gap:3px;min-width:0}
.api-entry-bar small{font-size:9px;letter-spacing:.09em;color:var(--orange-deep);font-weight:800}
.api-entry-bar strong{font-size:12px;font-weight:750;color:var(--ink)}
.api-entry-bar span{font-size:10px;color:var(--muted);line-height:1.5}
.api-entry-bar button{flex:none}
@media(max-width:730px){.api-entry-bar{align-items:flex-start;flex-direction:column}.api-entry-bar button{width:100%}}
/* Shared semantic toast contract — info never impersonates success. */
.d-toast{border-left-color:var(--orange);background:linear-gradient(120deg,var(--tint),var(--paper) 78%);max-width:min(390px,calc(100vw - 24px));min-width:0}
.d-toast>svg.i{width:17px;height:17px;flex:0 0 17px;color:var(--orange-deep)}
.d-toast[data-tone=success]{border-left-color:var(--green);background:linear-gradient(115deg,var(--green-bg),var(--paper) 75%)}
.d-toast[data-tone=success]>svg.i{color:var(--green)}
.d-toast[data-tone=warning]{border-left-color:var(--warn);background:linear-gradient(115deg,var(--warn-bg),var(--paper) 75%)}
.d-toast[data-tone=warning]>svg.i{color:var(--warn)}
.d-toast[data-tone=error]{border-left-color:var(--red);background:linear-gradient(115deg,var(--red-bg),var(--paper) 75%)}
.d-toast[data-tone=error]>svg.i{color:var(--red)}
@media(max-width:720px){.d-toast{right:12px;bottom:70px}}
.layer-form-tabs{display:flex;flex:none;gap:5px;align-items:stretch;overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 18px;background:linear-gradient(120deg,var(--panel2),var(--paper));border-bottom:1px solid var(--line);min-height:47px}
.layer-form-tabs [role=tab]{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font:inherit;font-size:10px;font-weight:600;color:var(--muted);padding:12px 13px 10px;background:transparent;border:0;border-bottom:3px solid transparent}
.layer-form-tabs [role=tab]:hover{color:var(--ink);background:var(--hover)}
.layer-form-tabs [role=tab][aria-selected=true]{color:var(--orange-deep);border-bottom-color:var(--orange);font-weight:750}
.layer-form-tabs [role=tab]:focus-visible{outline:2px solid var(--orange);outline-offset:-3px}
@media(max-width:720px){
.layer-form-tabs{padding:0 8px;min-height:44px}
.layer-form-tabs [role=tab]{font-size:9px;padding:11px 10px 9px}
}
/* AFW Living Demo 0.3: canonical tabbed form modal (candidate). Header, tabs and
   footer do not scroll. Only .layer-form-scroll scrolls. */
.layer-shell{position:relative}
.layer-form-scroll{flex:1;min-height:0;overflow-y:auto;padding:22px 24px 32px;overscroll-behavior:contain;scrollbar-gutter:stable}
.layer-form-scroll [role=tabpanel][hidden]{display:none!important}
.layer-form-scroll [role=tabpanel]>.layer-label{margin:0 0 7px}
.layer-form-scroll [role=tabpanel]>h2{font-size:18px}
.layer-form-scroll [role=tabpanel]>p{max-width:640px}
.layer-form-scroll .layer-input{max-width:650px}
.layer-form-scroll textarea,.layer-form-scroll select,.layer-form-local input{display:block;width:100%;padding:9px 11px;max-width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--line2);border-radius:8px;font:inherit;font-size:10.5px}
.layer-form-scroll textarea{resize:vertical;min-height:82px;line-height:1.6}
.layer-form-scroll select{height:var(--control-h);padding:0 9px}
.layer-form-scroll input:focus-visible,.layer-form-scroll textarea:focus-visible,.layer-form-scroll select:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.layer-form-scroll input[aria-invalid=true]{border-color:var(--red);box-shadow:0 0 0 2px color-mix(in srgb,var(--red) 11%,transparent)}
.layer-form-help{font-size:9px;line-height:1.55;color:var(--muted)}
.layer-form-help.invalid{color:var(--red)}
.layer-form-hint{font-size:10px;line-height:1.7;border-radius:8px;border:1px solid var(--line);background:var(--panel2);padding:12px 14px;color:var(--muted);max-width:650px}
.layer-form-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line);min-height:51px}
.layer-form-toggle:nth-of-type(even){background:color-mix(in srgb,var(--panel2) 52%,transparent)}
.layer-form-toggle strong{display:block;color:var(--ink);font-size:10px}
.layer-form-toggle small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.layer-form-toggle input{width:17px;height:17px;accent-color:var(--orange);flex:none}
.layer-form-local{max-width:610px;border:1px solid var(--line);border-radius:10px;padding:15px;background:var(--panel2);display:flex;flex-direction:column;gap:8px;margin-top:15px}
.layer-form-local>label{font-size:10px;font-weight:700;color:var(--ink)}
.layer-form-local-row{display:flex;gap:9px;align-items:center}
.layer-form-local-row input{flex:1;min-width:0;min-height:var(--control-h)}
.layer-form-local-row button{white-space:nowrap}
.layer-form-local small{font-size:9px;line-height:1.6;color:var(--muted)}
.layer-form-rule-list{font-size:10px;line-height:1.85;color:var(--ink);margin:13px 0;padding-left:25px}
.layer-form-rule-list li{padding:4px 0}
.layer-form-footer{position:relative;z-index:1;min-height:66px;padding:12px 23px;background:linear-gradient(120deg,var(--panel2),var(--paper));box-shadow:0 -4px 12px #26130708;flex-wrap:wrap}
.layer-form-status{font-size:9.5px;color:var(--muted);line-height:1.5;min-width:0}
.layer-form-status.changed{color:var(--orange-deep);font-weight:750}
.layer-form-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px;margin-left:auto}
.layer-form-footer .btn{min-height:var(--control-h)}
.layer-form-guard[hidden]{display:none!important}
.layer-form-guard{position:absolute;inset:0;z-index:40;display:flex;justify-content:center;align-items:center;padding:16px;background:#170e08b9;backdrop-filter:blur(4px)}
.layer-form-guard-card{width:min(465px,100%);padding:23px;border:1px solid var(--line2);background:var(--paper);color:var(--ink);border-radius:13px;box-shadow:var(--shadow-float)}
.layer-form-guard-card h2{font-size:18px;color:var(--ink-strong);margin:5px 0 10px}
.layer-form-guard-card p{font-size:10.5px;line-height:1.75;color:var(--muted);margin:0 0 16px}
.layer-form-guard-card .btn.danger{background:linear-gradient(125deg,#c25d55,#9f343e);color:#fffaf6;border-color:#a64343}
.layer-form-guard-card .btn.danger:hover{background:linear-gradient(125deg,#d16b62,#af3e46);color:#fffaf6}
@media(max-width:720px){
.layer-form-scroll{padding:14px 15px 22px;scrollbar-gutter:auto}
.layer-form-footer{padding:10px 13px;gap:9px;min-height:63px}
.layer-form-local-row{flex-wrap:wrap}
.layer-form-local-row .btn{flex:1}
.layer-form-guard-card{padding:18px}
}
/* Select component styles; reads shared design tokens. */
.ld-combo-trigger:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
.ld-combo{position:relative;min-width:0}
.ld-combo-control{border:1px solid var(--line2);border-radius:8px;display:flex;align-items:center;gap:0;background:var(--paper);height:var(--control-h)}
.ld-combo:focus-within .ld-combo-control{border-color:var(--orange);box-shadow:var(--focus)}
.ld-combo-trigger{display:flex;align-items:center;min-width:0;flex:1;height:100%;border:0;background:transparent;color:var(--ink);font-size:10.5px;text-align:left;padding:0 10px}
.ld-combo-trigger .placeholder{color:var(--muted)}
.ld-combo-clear,.ld-combo-expand{border:0;background:transparent;width:30px;height:30px;flex:none;display:grid;place-items:center;color:var(--muted);font-size:16px}
.ld-combo-clear:hover,.ld-combo-expand:hover{background:var(--hover);color:var(--ink)}
.ld-combo-clear[hidden]{display:none}
.ld-combo-popup{display:none;position:absolute;left:0;right:0;top:calc(100% + 5px);z-index:1000;background:var(--paper);border:1px solid var(--line2);border-radius:9px;padding:8px;box-shadow:var(--shadow-float);min-width:190px}
.ld-combo.open .ld-combo-popup{display:block}
.ld-combo-popup>input{height:31px;border:1px solid var(--line2);background:var(--paper);border-radius:6px;padding:0 8px;color:var(--ink);font-size:10px;width:100%;outline:0}
.ld-combo-options{max-height:155px;overflow-y:auto;margin-top:7px;overscroll-behavior:contain}
.ld-combo-option{display:flex;width:100%;text-align:left;align-items:center;min-height:31px;background:transparent;border:1px solid transparent;border-radius:6px;color:var(--ink);font-size:10px;padding:5px 9px}
.ld-combo-option:hover,.ld-combo-option:focus{background:var(--hover);border-color:var(--line)}
.ld-combo-option[aria-selected=true]{color:var(--orange-deep);background:var(--selected);font-weight:650}
.ld-combo-empty{font-size:9px;color:var(--muted);padding:7px}
/* Native select remains state source; shared visual combobox is used in
   tables AND dashboard filters, not a second unrelated design. */
select[data-afw-modern-select].afw-select-native{display:none!important}
.ld-filter-combo{min-width:145px;max-width:240px;width:auto;flex:0 0 auto}
.ld-filter-combo .ld-combo-trigger{font-weight:600;white-space:nowrap;overflow:hidden}
.ld-filter-combo .ld-combo-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.ld-filter-combo .ld-combo-clear{font-size:16px}
.ld-filter-combo .ld-combo-expand .i{width:13px;height:13px}
.ld-filter-combo .ld-combo-popup{min-width:200px}
.ld-filter-combo.open.above .ld-combo-popup{top:auto;bottom:calc(100% + 5px)}
@media(max-width:720px){.ld-filter-combo{min-width:134px;max-width:min(240px,100%)}}

/* One Select primitive across gallery forms, modal forms, toolbars and layer configuration. */
.ld-field .ld-filter-combo,
.layer-control .ld-filter-combo,
.layer-form-scroll .ld-filter-combo{width:100%;max-width:100%;min-width:0}
.ld-field .ld-combo-control,
.layer-control .ld-combo-control,
.layer-form-scroll .ld-combo-control{width:100%}
.layer-control .ld-filter-combo{font-size:10px}
.layer-control .ld-filter-combo .ld-combo-trigger{font:inherit;font-size:10px}
.layer-form-scroll .ld-filter-combo{max-width:650px}
.layer-form-scroll select[data-afw-modern-select].afw-select-native{display:none!important}
.layer-form-scroll .ld-filter-combo .ld-combo-popup,
.layer-control .ld-filter-combo .ld-combo-popup{z-index:15}

.afw-select-field [data-afw-size="sm"]+.ld-combo{min-height:29px}
.afw-select-field [data-afw-size="lg"]+.ld-combo{min-height:44px}
.afw-select-field [aria-invalid="true"]+.ld-combo .ld-combo-control{border-color:var(--red)}

/* Select v0.26 opt-in multiple and remote modes share the native Select bridge. */
.ld-pick-demo{margin-top:15px;padding:16px}
.ld-pick-lead{font-size:10.5px;color:var(--muted);line-height:1.55;margin:10px 0 13px}
.ld-pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.ld-pick-grid .ld-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ld-pick-grid label{font-size:10px;color:var(--ink-strong);font-weight:650}
.ld-pick-grid .ld-field.wide{grid-column:1/-1}
.ld-pick-grid .ld-filter-combo{width:100%;max-width:none;min-width:0}
.ld-pick-grid .ld-combo-control{width:100%}
.ld-pick-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);background:var(--panel2);border-radius:7px;padding:10px 12px;margin-top:13px;font-size:10px}
.ld-pick-bar label{display:flex;align-items:center;gap:7px;cursor:pointer;font-weight:650}
.ld-pick-bar input{accent-color:var(--orange)}
.ld-pick-bar span{color:var(--muted);flex:1 1 250px;text-align:right}
.ld-smart-combo .ld-combo-trigger{font-weight:550}
.ld-smart-combo .ld-smart-summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ld-smart-combo .ld-combo-popup{min-width:225px}
.ld-smart-combo .ld-combo-options{max-height:215px;overscroll-behavior:contain}
.ld-smart-combo .ld-combo-option[aria-selected=true]{font-weight:700}
.ld-smart-combo .ld-smart-message{font-size:9px;line-height:1.5;color:var(--muted);margin:6px 4px 0}
.ld-smart-combo .ld-smart-more{font-size:10px;min-height:30px;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;color:var(--ink);padding:5px 9px;margin-top:7px;width:100%}
.ld-smart-combo .ld-smart-more:hover{background:var(--hover)}
.ld-smart-combo [hidden],.ld-pick-demo [hidden]{display:none!important}
@media(max-width:720px){
 .ld-pick-grid{grid-template-columns:1fr;gap:12px}
 .ld-pick-grid .ld-field.wide{grid-column:auto}
 .ld-pick-demo{padding:12px}
 .ld-pick-bar span{text-align:left}
}

.ld-smart-combo .ld-combo-option:disabled{opacity:.45;cursor:not-allowed}

/* v0.27.0: distinct remote request states and accessible multi-selection marks. */
.ld-smart-combo .ld-smart-error{
 display:flex;align-items:flex-start;gap:10px;
 padding:12px 11px;margin-top:8px;
 border-radius:8px;border:1px solid var(--red);
 background:var(--red-bg);color:var(--ink);
}
.ld-smart-combo .ld-smart-error-icon{
 display:grid;place-items:center;flex:0 0 18px;
 width:18px;height:18px;border-radius:50%;
 color:var(--red);border:1.5px solid currentColor;
 font-size:12px;font-weight:800;line-height:1;
}
.ld-smart-combo .ld-smart-error-detail{flex:1;min-width:0}
.ld-smart-combo .ld-smart-error-detail strong{
 display:block;color:var(--ink-strong);
 font-size:11.5px;line-height:1.5;font-weight:700;
}
.ld-smart-combo .ld-smart-error-detail p{
 margin:4px 0 9px;font-size:10.5px;line-height:1.55;color:var(--muted);
}
.ld-smart-combo .ld-smart-retry{
 display:inline-flex;align-items:center;justify-content:center;
 width:auto;min-height:34px;margin:0;
 padding:6px 12px;border:1px solid var(--line2);
 background:var(--paper);color:var(--ink-strong);
 font-size:10.5px;font-weight:700;
}
.ld-smart-combo .ld-smart-retry:hover{border-color:var(--orange);background:var(--hover)}
.ld-smart-combo .ld-smart-retry:focus-visible{
 outline:2px solid var(--orange);outline-offset:2px;
}
.ld-smart-combo .ld-smart-empty{
 display:flex;flex-direction:column;gap:4px;
 padding:17px 10px;text-align:center;
}
.ld-smart-combo .ld-smart-empty strong{
 font-size:10.5px;color:var(--ink-strong);font-weight:650;
}
.ld-smart-combo .ld-smart-empty span{
 font-size:10px;color:var(--muted);line-height:1.5;
}
.ld-smart-combo .ld-smart-loading{
 display:flex;gap:9px;align-items:center;min-height:45px;
 padding:10px;color:var(--muted);font-size:10.5px;
}
.ld-smart-combo .ld-smart-spinner{
 display:block;flex:0 0 16px;width:16px;height:16px;
 border:2px solid var(--line2);border-top-color:var(--orange);
 border-radius:50%;animation:ld-smart-spin .8s linear infinite;
}
@keyframes ld-smart-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.ld-smart-combo .ld-smart-spinner{animation:none}}
.ld-smart-combo .ld-combo-option{
 display:flex;align-items:center;gap:10px;min-height:40px;
 padding:8px 10px;line-height:1.45;
}
.ld-smart-combo .ld-combo-option:focus-visible{
 outline:2px solid var(--orange);outline-offset:-2px;
}
.ld-smart-combo .ld-smart-check{
 display:grid;place-items:center;flex:0 0 18px;
 width:18px;height:18px;box-sizing:border-box;
 border-radius:4px;border:1.5px solid var(--line2);
 background:var(--paper);color:var(--paper);
}
.ld-smart-combo .ld-smart-check-tick{
 display:none;font-size:14px;font-weight:800;line-height:1;
}
.ld-smart-combo .ld-combo-option[aria-selected=true] .ld-smart-check{
 border-color:var(--orange);background:var(--orange);color:#fff;
}
.ld-smart-combo .ld-combo-option[aria-selected=true] .ld-smart-check-tick{display:block}
.ld-smart-combo .ld-smart-option-label{flex:1;min-width:0;overflow-wrap:anywhere}
.ld-smart-combo .ld-combo-option:disabled .ld-smart-check{opacity:.65}
.ld-smart-combo [hidden]{display:none!important}
.ld-dp-gallery{margin-top:16px;padding:16px}
.ld-dp-intro{margin:9px 0 15px;font-size:10.5px;line-height:1.6;color:var(--muted)}
.ld-dp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.ld-dp-grid .ld-dp-example{min-width:0;border:1px solid var(--line);border-radius:9px;padding:14px;background:var(--paper)}
.ld-dp-example h4{margin:0 0 7px;font-size:12px;color:var(--ink-strong)}
.ld-dp-example>p{font-size:10px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.ld-dp-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:11px}
.ld-dp-card[data-dp-mode=range] .ld-dp-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.ld-dp-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ld-dp-field label{font-size:10px;font-weight:650;color:var(--ink-strong)}
.ld-dp-input-row{display:flex;gap:6px;align-items:stretch;min-width:0}
.ld-dp-input-row input{flex:1 1 0;min-width:0;width:100%;box-sizing:border-box;min-height:36px;padding:7px 8px;font:inherit;font-size:10.5px;border:1px solid var(--line2);border-radius:7px;color:var(--ink);background:var(--paper)}
.ld-dp-input-row input[aria-invalid=true]{border-color:var(--red)}
.ld-dp-open{flex:0 0 36px;width:36px;min-height:36px;background:var(--panel2);border:1px solid var(--line2);border-radius:7px;color:var(--ink);font-size:18px}
.ld-dp-input-row:has(input[type=time]) .ld-dp-open{display:none}
.ld-dp-input-row input:focus-visible,.ld-dp-open:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.ld-dp-zone{margin-top:12px;border:1px solid var(--line);border-radius:7px;background:var(--panel2);padding:9px 11px;display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;font-size:10px}
.ld-dp-zone span{color:var(--muted)}
.ld-dp-zone strong{color:var(--ink-strong)}
.ld-dp-zone small{flex:1 1 100%;color:var(--muted);font-size:9.5px;line-height:1.5}
.ld-dp-feedback{font-size:10px;line-height:1.6;color:var(--muted);margin-top:10px;min-height:18px}
.ld-dp-feedback[data-error=true]{color:var(--red);font-weight:650}
.ld-dp-card [hidden]{display:none!important}
.ld-dp-calendar{margin-top:10px;padding:12px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);max-width:320px}
.ld-dp-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:9px}
.ld-dp-calendar-head strong{font-size:12px;color:var(--ink-strong);text-transform:capitalize}
.ld-dp-calendar-head button,.ld-dp-calendar-foot button{min-height:32px;padding:5px 10px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:6px;font-size:11px;cursor:pointer}
.ld-dp-week,.ld-dp-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.ld-dp-week span{text-align:center;font-size:9px;font-weight:700;color:var(--muted);padding:5px 0}
.ld-dp-day{display:grid;place-items:center;min-height:32px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--ink);font-size:10.5px;cursor:pointer}
.ld-dp-day:hover:not(:disabled){background:var(--hover);border-color:var(--line2)}
.ld-dp-day[data-today=true]{border-color:var(--orange)}
.ld-dp-day[data-in-range=true]{background:var(--tint)}
.ld-dp-day[aria-pressed=true]{background:var(--orange);color:#fff;font-weight:700}
.ld-dp-day:disabled{opacity:.28;cursor:not-allowed}
.ld-dp-day:focus-visible,.ld-dp-calendar button:focus-visible{outline:2px solid var(--orange);outline-offset:1px}
.ld-dp-calendar-foot{display:flex;justify-content:space-between;gap:8px;margin-top:10px}
@media(max-width:750px){.ld-dp-grid{grid-template-columns:1fr}.ld-dp-gallery{padding:12px}.ld-dp-grid .ld-dp-example{padding:12px}}
@media(max-width:360px){.ld-dp-card[data-dp-mode=range] .ld-dp-fields{grid-template-columns:1fr}}
/* One visual calendar opener. The input stays a real editable native date field. */
.ld-dp-input-row input[type=date]::-webkit-calendar-picker-indicator{display:none}
.ld-dp-open{display:grid;place-items:center;font-size:0;position:relative}
.ld-dp-open::before{
 content:"";display:block;width:16px;height:16px;box-sizing:border-box;
 border:1.5px solid currentColor;border-radius:3px;
 background:linear-gradient(to bottom,currentColor 0 4px,transparent 4px 100%);
 opacity:.75;
}
.ld-dp-open::after{
 content:"";position:absolute;top:19px;left:15px;
 width:4px;height:4px;border-radius:1px;background:currentColor;
}

/* v0.30 — Emersion anchored popup. Portaled to <body> to avoid Form/Window reflow. */
.ld-dp-floating{
 position:fixed;left:0;top:0;z-index:150000;
 box-sizing:border-box;max-width:calc(100vw - 16px);
 background:var(--paper);border:1px solid var(--line2);border-radius:11px;
 box-shadow:0 12px 36px rgba(30,31,32,.19),0 3px 9px rgba(30,31,32,.08);
 padding:12px;overflow:auto;max-height:calc(100vh - 16px);
}
.ld-dp-floating[hidden],.ld-dp-input-row input[hidden]{display:none!important}
.ld-dp-calendar{width:300px;margin:0}
.ld-dp-calendar-head{margin-bottom:10px;padding-bottom:9px;border-bottom:1px solid var(--line)}
.ld-dp-calendar-head strong{font-size:13px}
.ld-dp-calendar-head button{width:34px;min-height:34px;display:grid;place-items:center;
 font-size:19px;border-radius:7px;background:var(--panel2)}
.ld-dp-week{margin-bottom:5px}
.ld-dp-week span{font-size:9.5px;padding:5px 0}
.ld-dp-day{min-height:34px;font-size:11px;border-radius:7px}
.ld-dp-calendar-foot{padding-top:10px;margin-top:10px;border-top:1px solid var(--line)}
.ld-dp-calendar-foot button{min-height:34px;font-weight:600}
.ld-dp-open{
 display:flex!important;align-items:center!important;justify-content:center!important;
 flex:0 0 36px;min-width:36px;width:36px;height:36px;
 padding:0!important;line-height:1!important;position:relative;
 color:var(--ink);cursor:pointer;
}
.ld-dp-open svg{display:block;flex:none;width:18px;height:18px;max-width:18px;max-height:18px}
.ld-dp-open::before,.ld-dp-open::after{display:none!important;content:none!important}
.ld-dp-open:hover{border-color:var(--orange);color:var(--orange-deep)}
.ld-dp-open[aria-expanded=true]{border-color:var(--orange);color:var(--orange-deep);background:var(--hover)}
.ld-dp-input-row input[type=date]::-webkit-calendar-picker-indicator{display:none}
.ld-dp-input-row input[type=text]{font-variant-numeric:tabular-nums}
.ld-dp-input-row input::selection{background:var(--orange);color:#fff}
.ld-dp-timepopup{width:286px}
.ld-dp-timehead{display:flex;align-items:baseline;justify-content:space-between;
 gap:8px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:11px}
.ld-dp-timehead strong{font-size:13px;color:var(--ink-strong)}
.ld-dp-timehead span{font-size:9.5px;color:var(--muted)}
.ld-dp-timecolumns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ld-dp-timecolumns>div{min-width:0}
.ld-dp-timecolumns>div>strong{display:block;font-size:10.5px;color:var(--ink-strong);margin-bottom:6px}
.ld-dp-timelist{height:188px;overflow:auto;overscroll-behavior:contain;
 padding:3px;background:var(--panel2);border:1px solid var(--line);border-radius:8px}
.ld-dp-timelist button{display:block;width:100%;min-height:33px;padding:5px 10px;
 font:inherit;font-size:11px;font-weight:550;text-align:center;
 background:transparent;border:1px solid transparent;border-radius:6px;
 color:var(--ink);cursor:pointer;font-variant-numeric:tabular-nums}
.ld-dp-timelist button:hover{background:var(--hover)}
.ld-dp-timelist button[aria-pressed=true]{background:var(--orange);color:#fff;font-weight:750}
.ld-dp-timelist button:focus-visible{outline:2px solid var(--orange);outline-offset:-2px}
.ld-dp-timefoot{display:flex;flex-direction:column;gap:10px;
 margin-top:11px;padding-top:10px;border-top:1px solid var(--line)}
.ld-dp-timefoot span{font-size:9.5px;color:var(--muted);line-height:1.5}
.ld-dp-timefoot button{align-self:flex-end;min-height:34px;padding:6px 14px;
 background:var(--panel2);border:1px solid var(--line2);
 color:var(--ink-strong);font-weight:650;font-size:10.5px;border-radius:7px;cursor:pointer}
.ld-dp-timefoot button:hover{border-color:var(--orange);background:var(--hover)}
@media(max-width:350px){
 .ld-dp-floating{padding:9px}
 .ld-dp-day{min-height:31px}
 .ld-dp-timepopup{width:280px}
}
/* AFW v0.13 Mobile Workspace. Desktop sizing and visual tokens remain unchanged. */
.afw-mobile-top,.afw-mobile-nav-backdrop{display:none!important}
@media(max-width:720px){
/* One functional top bar, not a miniature desktop navigation ribbon. */
.app{inset:0 0 calc(49px + env(safe-area-inset-bottom,0px)) 0!important}
.app .main .topbar{flex:0 0 50px!important;min-height:50px!important;height:50px!important;padding:0 10px!important;z-index:12}
.app .sidebar{position:fixed!important;z-index:310!important;top:0;left:0;bottom:calc(49px + env(safe-area-inset-bottom,0px));width:min(300px,84vw)!important;height:auto!important;max-height:calc(100dvh - 49px - env(safe-area-inset-bottom,0px));min-height:0!important;flex:none!important;display:flex!important;flex-direction:column!important;align-items:stretch!important;overflow-y:hidden!important;overflow-x:hidden!important;gap:10px!important;padding:16px 12px 10px!important;transform:translateX(-104%);transition:transform .2s ease,visibility .2s;visibility:hidden;box-shadow:20px 0 45px #24160e66}
.app.afw-mobile-nav-open .sidebar{transform:translateX(0);visibility:visible}
.app .sidebar .logo{padding:0 10px;margin-bottom:3px;flex:0 0 auto!important}
.app .sidebar .logo>div:last-child,.app .sidebar .side-link span,.app .sidebar .section-label,.app .sidebar .side-foot>div:last-child{display:block!important}
.app .sidebar .side-nav{display:grid!important;gap:3px!important;flex:1 1 auto!important;min-height:0!important;align-content:start!important;overflow-y:auto!important;overflow-x:hidden!important;width:auto!important;scrollbar-width:thin;overscroll-behavior:contain;padding-right:3px}
.app .sidebar .side-link{height:42px!important;min-height:42px!important;width:100%!important;justify-content:flex-start!important;text-align:left;padding:0 13px!important}
.app .sidebar .side-foot{display:flex!important;flex:0 0 auto!important;margin-top:0!important;padding-top:10px!important;padding-bottom:2px!important;min-height:53px}
.afw-mobile-nav-backdrop{position:fixed;inset:0;z-index:300;border:0;background:#1d130cb8;backdrop-filter:blur(3px);cursor:default}
.app.afw-mobile-nav-open>.afw-mobile-nav-backdrop{display:block!important}
.app .main .topbar>.crumb,.app .main .topbar>.top-actions{display:none!important}
.afw-mobile-top{position:relative;display:flex!important;align-items:center;gap:9px;width:100%;min-width:0;height:100%}
.afw-mobile-top-button{display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--line2);border-radius:9px;background:var(--panel2);color:var(--ink);font:inherit;font-size:19px;cursor:pointer}
.afw-mobile-top-button .i{width:20px;height:20px}
.afw-mobile-context{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.afw-mobile-context strong{font-size:12px;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.afw-mobile-context span{font-size:8px;letter-spacing:.12em;font-weight:750;color:var(--orange-deep)}
.afw-mobile-avatar{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,#f3ad68,#f4781c);color:#382113;font-size:10px;font-weight:800}
.afw-mobile-more{position:absolute;right:38px;top:calc(100% + 6px);z-index:340;width:min(265px,calc(100vw - 20px));padding:12px;background:var(--paper);border:1px solid var(--line2);border-radius:12px;box-shadow:0 16px 45px #1e130d57;display:flex;flex-direction:column;gap:6px}
.afw-mobile-more[hidden]{display:none!important}
.afw-mobile-more strong{font-size:11px;margin:2px 2px 8px}
.afw-mobile-more button,.afw-mobile-more a{font:inherit;text-align:left;font-size:11px;padding:10px 9px;border:0;border-radius:7px;background:var(--panel2);color:var(--ink);text-decoration:none;cursor:pointer}
.afw-mobile-more button:hover,.afw-mobile-more a:hover{background:var(--selected)}
.d-top .preview-controls{display:none!important}
.d-top .preview-badge{font-size:9px}
.app .main .content>.d-content-inner, .app .main .content>#afwPageHost>.afw-route-page{padding-top:14px}
/* Mobile-only 49px Taskbar. Available width is shared by quick windows, both
   overview controls show count UNDER icon. No desktop edge arrows. */
.d-taskbar{height:calc(49px + env(safe-area-inset-bottom,0px))!important;padding:4px 2px calc(4px + env(safe-area-inset-bottom,0px)) 3px!important;gap:4px!important;align-items:center}
#taskbar{padding-left:3px!important;padding-right:2px!important}
.d-taskbar .d-task-brand{height:39px!important;width:37px!important;min-width:37px!important;max-width:37px!important;padding:0!important}
.d-taskbar .d-task-brand .mark{width:30px;height:30px}
.d-taskbar .d-task-sep{display:none}
.d-taskbar .d-task{flex:0 0 37px!important;min-width:37px!important;max-width:37px!important;height:37px!important;padding:0!important}
.d-taskbar .d-task-scroll{display:none!important}
.d-taskbar #taskOverview{flex:none;min-width:36px!important;width:36px!important;height:39px!important;padding:3px 0!important;display:flex;flex-direction:column;justify-content:center;gap:1px}
.d-taskbar #taskOverview .i{width:18px;height:18px}
.d-taskbar #taskOverviewCount{font-size:9px;line-height:10px;min-height:10px}
.d-taskbar #afwDesktopSwitcher{flex:none}
.d-taskbar #afwDesktopManage{display:flex;flex-direction:column;gap:1px;width:36px!important;height:39px!important;min-width:36px!important;padding:3px 0!important}
.d-taskbar .afw-ds-launch-symbol{height:19px;width:22px}
.d-taskbar .afw-ds-launch-symbol .i{height:18px;width:18px}
.d-taskbar .afw-ds-launch-count{height:10px;min-width:0;border:0;background:none;border-radius:0;line-height:10px;font-size:9px;color:#ffcb92;padding:0}
.d-taskbar #taskShowDesktop{display:grid!important;place-items:center;flex:none;position:relative;width:32px!important;min-width:32px!important;max-width:32px!important;height:42px!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;margin-left:auto!important}
.d-taskbar #taskShowDesktop .i{display:none!important}
.d-taskbar #taskShowDesktop::after{content:"";display:block;width:5px;height:29px;border-radius:5px;background:#d9bd8390;transition:background .15s,width .15s}
.d-taskbar #taskShowDesktop[aria-pressed=true]::after{background:#f4781c;width:6px;box-shadow:0 0 0 2px #f4781c25}
.d-window-area{bottom:calc(49px + env(safe-area-inset-bottom,0px))!important}
.d-win,.d-win.maximized{height:calc(100dvh - 49px - env(safe-area-inset-bottom,0px))!important}
body{padding-bottom:0!important}
.afw-mission-window{bottom:calc(60px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:720px) and (prefers-reduced-motion:reduce){.app .sidebar{transition:none}}
/* AFW v0.14 — consistent task/window overview affordances.
   Button counts are below their icon on desktop AND mobile.
   A visible thin Show Desktop strip has a larger real hit target. */
#taskbar{padding-left:12px;padding-right:35px}
.d-taskbar #taskOverview{
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 gap:1px;flex:none;width:40px;min-width:40px;height:42px;padding:3px 0;
}
.d-taskbar #taskOverview .i{width:18px;height:18px}
.d-taskbar #taskOverviewCount{display:block;min-height:11px;font-size:10px;line-height:11px;font-weight:750}
.d-taskbar #afwDesktopManage{
 display:flex;flex-direction:column;justify-content:center;align-items:center;
 gap:1px;width:42px;min-width:42px;height:42px;padding:3px 0;
}
.d-taskbar .afw-ds-launch-symbol{display:grid;place-items:center;width:23px;height:20px}
.d-taskbar .afw-ds-launch-symbol .i{width:18px;height:18px}
.d-taskbar .afw-ds-launch-count{
 display:block;min-width:0;height:11px;line-height:11px;
 border:0;border-radius:0;background:transparent;padding:0;
 font-size:10px;font-weight:750;color:#ffcb92;
}
.d-taskbar #taskShowDesktop{
 position:fixed;right:0;bottom:10px;width:29px;min-width:29px;max-width:29px;
 height:42px;margin:0!important;padding:0;border:0;background:transparent;
 box-shadow:none;display:grid;place-items:center;
}
.d-taskbar #taskShowDesktop .i{display:none}
.d-taskbar #taskShowDesktop::after{
 content:"";display:block;width:5px;height:29px;border-radius:5px;
 background:#d9bd83a8;transition:background .15s,width .15s;
}
.d-taskbar #taskShowDesktop:hover::after{background:#f5bf89}
.d-taskbar #taskShowDesktop[aria-pressed=true]::after{width:6px;background:#f4781c;box-shadow:0 0 0 2px #f4781c25}
@media(max-width:720px){
 #taskbar{padding-left:3px!important;padding-right:2px!important}
 /* Use all remaining space for actual open windows. 5 compact tasks
    fit on 375px screens; narrower screens can swipe horizontally. */
 .d-taskbar #taskList{
   flex:1 1 0;min-width:0;max-width:none;display:flex;gap:3px;
   overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
   touch-action:pan-x;overscroll-behavior-x:contain;
   -webkit-overflow-scrolling:touch;
 }
 .d-taskbar #taskList::-webkit-scrollbar{display:none}
 .d-taskbar #taskList[data-scroll-more="true"]{
   -webkit-mask-image:linear-gradient(to right,#000 0%,#000 88%,transparent 100%);
   mask-image:linear-gradient(to right,#000 0%,#000 88%,transparent 100%);
 }
 .d-taskbar #taskList[data-scroll-back="true"]{
   -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%);
   mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 88%,transparent 100%);
 }
 .d-taskbar #taskList[data-scroll-back="true"][data-scroll-more="false"]{
   -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 100%);
   mask-image:linear-gradient(to right,transparent 0%,#000 12%,#000 100%);
 }
 .d-taskbar #taskOverview{margin-left:0!important;min-width:36px;width:36px;height:39px}
 .d-taskbar #afwDesktopManage{width:36px;min-width:36px;height:39px}
 .d-taskbar #taskShowDesktop{
  position:relative!important;right:auto!important;bottom:auto!important;
  width:28px!important;min-width:28px!important;max-width:28px!important;
  height:42px!important;margin-left:0!important;
 }
 .d-taskbar #taskShowDesktop::after{height:29px}
}
@media(prefers-reduced-motion:reduce){
 .d-taskbar #taskShowDesktop::after{transition:none}
}

/* v0.16: Window Overview is a mobile sheet, not a desktop dropdown.
   #windowOverview previously had inline right:55px, forcing x:-25px at
   375px viewport. On mobile the existing DOM is portaled to <body>, and
   Overview uses safe viewport positioning, bounded scrolling and scrim.
   Desktop dropdown placement remains unchanged. */
#afwTaskPopoverScrim{display:none}
@media(max-width:720px){
 #afwTaskPopoverScrim{
  display:none;position:fixed;inset:0 0 calc(49px + env(safe-area-inset-bottom,0px)) 0;
  z-index:9300;pointer-events:none;background:rgba(32,19,12,.44);
  backdrop-filter:blur(2px);
 }
 body:has(#windowOverview.open) #afwTaskPopoverScrim{display:block}
 #windowOverview.d-task-popover{
  position:fixed!important;
  left:8px!important;right:8px!important;
  bottom:calc(49px + env(safe-area-inset-bottom,0px) + 8px)!important;
  width:auto!important;
  max-width:none!important;
  max-height:calc(100dvh - 49px - env(safe-area-inset-bottom,0px) - 50px - 24px)!important;
  margin:0!important;
  z-index:9310!important;
  overflow:hidden;
  border-radius:15px;
  box-shadow:0 20px 65px rgba(23,13,8,.54);
 }
 #windowOverview .d-task-popover-body{
  flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
 }
 #windowOverview .d-task-popover-head, #windowOverview .d-task-popover-foot{
  flex:0 0 auto;
 }
}

/* COMPONENT SELECT */
/* AFW admin-first PageRouter: background page and windows are independent. */
.afw-page-host{display:contents}
.afw-route-page[hidden],.afw-route-card[hidden],.afw-route-restore[hidden],.afw-route-empty[hidden]{display:none!important}
.afw-route-screen{display:grid;gap:17px;min-width:0}
.afw-route-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;
 background:radial-gradient(ellipse at 91% 5%,#9b69304a,transparent 45%),
 linear-gradient(115deg,#493323,#342316 75%,#5c3d26);color:#fff4e4;
 border:1px solid #856044;border-radius:15px;padding:27px 30px;min-height:160px}
.afw-route-kicker{font-size:9px;letter-spacing:.13em;font-weight:750;color:#e2b88b;text-transform:uppercase}
.afw-route-hero h1{font-size:27px;line-height:1.2;font-weight:750;letter-spacing:-.045em;margin:8px 0 8px;color:#fff5ea}
.afw-route-hero p{font-size:12px;line-height:1.6;max-width:650px;margin:0;color:#dfcbb5}
.afw-route-hero-mark{display:grid;place-items:center;border-radius:18px;width:72px;height:72px;min-width:72px;
 background:#ffffff12;border:1px solid #efd4ae52;color:#ffc28d}
.afw-route-hero-mark .i{width:33px;height:33px}
.afw-route-section-header{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap;margin-top:4px}
.afw-route-section-header strong{font-size:16px;font-weight:700;color:var(--ink-strong)}
.afw-route-section-header p{font-size:11px;color:var(--muted);margin:3px 0 0}
.afw-route-search{display:flex;align-items:center;gap:8px;min-width:220px;width:min(330px,100%);height:36px;
 padding:0 11px;border:1px solid var(--line2);background:var(--paper);border-radius:9px}
.afw-route-search:focus-within{border-color:var(--orange);box-shadow:var(--focus)}
.afw-route-search .i{width:15px;height:15px;color:var(--orange-deep)}
.afw-route-search input{outline:none;border:0;background:transparent;min-width:0;width:100%;color:var(--ink);font-size:11px}
.afw-route-cards{display:grid;gap:9px}
.afw-route-card{display:flex;align-items:center;gap:16px;background:linear-gradient(100deg,var(--paper),var(--panel2));
 padding:16px;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-card);min-width:0}
.afw-route-card:hover{border-color:var(--gold2)}
.afw-route-card-icon{display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;border-radius:11px;
 border:1px solid #edc8a2;background:#ffead4;color:var(--orange-deep)}
.afw-route-card-icon .i{width:23px;height:23px}
.afw-route-card-content{flex:1;min-width:0}
.afw-route-card-content span{color:var(--orange-deep);font-size:9px;font-weight:750;letter-spacing:.09em}
.afw-route-card h3{margin:3px 0;font-size:13px;color:var(--ink-strong)}
.afw-route-card p{margin:0;font-size:10.5px;color:var(--muted)}
.afw-route-card .ld-button{flex:none}
.afw-route-restore{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 13px;
 background:var(--selected);border:1px solid var(--gold2);color:var(--ink);border-radius:9px;
 font-size:11px;box-shadow:var(--shadow-card);margin:0 0 13px}
.afw-route-restore-dot{width:7px;height:7px;background:var(--orange);border-radius:50%;box-shadow:0 0 0 3px #f4781c29}
.afw-route-restore-button{margin-left:auto;border:1px solid var(--gold2);background:var(--paper);color:var(--ink);
 border-radius:7px;font-size:10.5px;font-weight:700;padding:5px 9px;cursor:pointer}
.afw-route-restore [data-afw-restore]{margin-left:auto}
.afw-route-empty{border:1px dashed var(--line2);padding:28px;text-align:center;border-radius:9px;color:var(--muted);font-size:12px}
.afw-route-foot{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 2px;
 border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
@media(max-width:720px){
 .afw-route-hero{padding:18px;gap:9px;min-height:128px}
 .afw-route-hero h1{font-size:21px}
 .afw-route-hero p{font-size:10.5px}
 .afw-route-hero-mark{width:42px;height:42px;min-width:42px;border-radius:10px}
 .afw-route-hero-mark .i{width:22px;height:22px}
 .afw-route-section-header{display:grid;gap:9px}
 .afw-route-search{min-width:0;width:100%}
 .afw-route-card{gap:10px;padding:12px 10px;flex-wrap:wrap}
 .afw-route-card-icon{width:35px;height:35px;flex-basis:35px}
 .afw-route-card h3{font-size:11.5px}
 .afw-route-card p{font-size:10px}
 .afw-route-card .ld-button{margin-left:auto}
 .afw-route-restore{font-size:10px}
}

/* v0.20 — shared content architecture across background admin pages.
   Uses existing theme tokens and shared AFW buttons/icons; no new owners. */
.afw-route-screen{gap:16px}
.afw-route-hero{min-height:150px}
.afw-route-eyebrow{display:block;color:var(--orange-deep);font-size:9px;font-weight:750;letter-spacing:.13em}
.afw-route-section-header{margin-top:2px}
.afw-route-section-header h2{font-size:16px;font-weight:700;letter-spacing:-.025em;margin:3px 0;color:var(--ink-strong);line-height:1.25}
.afw-route-section-header p{font-size:11px;line-height:1.5}
.afw-route-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(235px,285px);gap:13px;align-items:start;min-width:0}
.afw-route-results,.afw-route-guide{min-width:0;border:1px solid var(--line);border-radius:12px;background:linear-gradient(155deg,var(--paper),var(--panel));box-shadow:var(--shadow-card);overflow:hidden}
.afw-route-results-head{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 17px;border-bottom:1px solid var(--line);color:var(--quiet);font-size:10px}
.afw-route-results-head span:first-child{color:var(--muted);font-weight:750;font-size:9px;letter-spacing:.13em}
.afw-route-cards{gap:0}
.afw-route-card{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:14px 16px;min-height:75px;gap:13px}
.afw-route-card:last-child{border-bottom:0}
.afw-route-card:nth-child(even){background:color-mix(in srgb,var(--panel2) 35%,transparent)}
.afw-route-card:hover{background:var(--hover);border-color:var(--line)}
.afw-route-card-icon{width:39px;height:39px;flex-basis:39px;border-radius:10px;background:var(--tint);border-color:var(--gold2)}
.afw-route-card-icon .i{width:20px;height:20px}
.afw-route-card-content span.afw-route-card-kind{font-size:9px;letter-spacing:.09em}
.afw-route-card h3{font-size:12.5px;line-height:1.35;margin:3px 0 2px}
.afw-route-card p{font-size:10.5px;line-height:1.4}
.afw-route-card .ld-button{min-width:76px}
.afw-route-guide-head{padding:19px 18px 15px}
.afw-route-guide-icon{width:35px;height:35px;display:grid;place-items:center;background:var(--selected);color:var(--orange-deep);border:1px solid var(--gold2);border-radius:9px;margin-bottom:14px}
.afw-route-guide-icon .i{width:18px;height:18px}
.afw-route-guide h3{font-size:14px;line-height:1.3;margin:6px 0 7px;color:var(--ink-strong);letter-spacing:-.025em}
.afw-route-guide p{margin:0;font-size:10.5px;line-height:1.65;color:var(--muted)}
.afw-route-steps{list-style:none;padding:15px 18px;margin:0;border-top:1px solid var(--line);display:grid;gap:13px}
.afw-route-steps li{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:10.5px;line-height:1.5}
.afw-route-steps li span{display:grid;place-items:center;flex:0 0 20px;height:20px;background:var(--panel2);border:1px solid var(--line2);border-radius:6px;font-weight:700;color:var(--orange-deep);font-size:9px}
.afw-route-guide-action{padding:15px 18px;background:var(--panel2);border-top:1px solid var(--line);display:grid;gap:10px}
.afw-route-guide-action .ld-button{justify-content:center;width:100%;white-space:normal;min-height:34px;text-align:center}
.afw-route-guide-action small{font-size:9px;color:var(--quiet);line-height:1.4}
.afw-route-empty{margin:14px;padding:24px;text-align:center}
.afw-route-empty strong{display:block;color:var(--ink-strong);font-size:12px}
.afw-route-empty p{font-size:10.5px;margin:8px 0 14px}
.afw-route-empty button{font:inherit;color:var(--orange-deep);background:var(--paper);border:1px solid var(--gold2);border-radius:7px;padding:7px 12px;cursor:pointer}
.afw-route-empty button:focus-visible{outline:2px solid var(--orange);outline-offset:2px}
@media(max-width:980px){
 .afw-route-content{grid-template-columns:minmax(0,1fr)}
 .afw-route-guide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .afw-route-guide-head{grid-row:span 2}
 .afw-route-guide-action{align-self:end}
}
@media(max-width:720px){
 .afw-route-screen{gap:13px}
 .afw-route-content,.afw-route-guide{display:grid;grid-template-columns:minmax(0,1fr)}
 .afw-route-guide-head{grid-row:auto}
 .afw-route-card{gap:10px;min-height:68px;padding:12px}
 .afw-route-card .ld-button{margin-left:auto}
 .afw-route-card-icon{flex-basis:35px;width:35px;height:35px}
 .afw-route-guide-head,.afw-route-steps,.afw-route-guide-action{padding:14px}
}

/* Programmatically focused heading for route announcement; not a keyboard control. */
.afw-route-hero h1[tabindex="-1"]:focus{outline:none}
