@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-400-normal-BrHNak5F.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-400-normal-BbWidj28.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-700-normal-GZI4o3u0.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-latin-700-normal-BK6Glc0m.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--scale: 1.1;--tap: 3.25rem;--tap-sm: 2.75rem;--gap: .75rem;--radius: 12px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(20, 18, 14, .06), 0 4px 14px rgba(20, 18, 14, .07);--shadow-lg: 0 10px 40px rgba(20, 18, 14, .22);--font: "Atkinson Hyperlegible", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;--sidebar-w: 18.5rem;--dur: .16s;--bg: #f5f3ee;--surface: #ffffff;--surface-2: #efece5;--surface-3: #e5e1d8;--text: #1d1b18;--text-2: #56524b;--text-3: #6f6a61;--border: #d3cec3;--border-strong: #a9a397;--primary: #3a3fbd;--primary-hover: #2f33a3;--primary-weak: #e7e8fb;--primary-text: #2a2e97;--on-primary: #ffffff;--danger: #b3261e;--danger-weak: #fbe9e7;--success: #1c7a43;--success-weak: #e3f4ea;--warning: #8a5a00;--warning-weak: #fff3d6;--focus: #e8590c;--overlay: rgba(20, 18, 14, .45);--c-blue: #d7e6ff;--t-blue: #103f91;--c-cyan: #d2f1f8;--t-cyan: #0b5566;--c-teal: #d1f0e8;--t-teal: #0e5a4a;--c-green: #dbf1d5;--t-green: #24561a;--c-yellow: #fff0bf;--t-yellow: #6b4c00;--c-orange: #ffe0c7;--t-orange: #7c3a06;--c-red: #fddcdc;--t-red: #8c1d1d;--c-pink: #fbdcef;--t-pink: #7c1d59;--c-purple: #e8defc;--t-purple: #4b2596;--c-gray: #e6e3dd;--t-gray: #3e3a33}html[data-target=normal]{--tap: 2.75rem;--tap-sm: 2.5rem;--gap: .6rem}html[data-target=grande]{--tap: 3.25rem;--tap-sm: 2.75rem;--gap: .75rem}html[data-target=extra]{--tap: 4rem;--tap-sm: 3.25rem;--gap: 1rem}html[data-theme=dark]{--bg: #16171b;--surface: #1f2126;--surface-2: #282a31;--surface-3: #33363e;--text: #f1efe9;--text-2: #c4c0b7;--text-3: #a39f96;--border: #3d4048;--border-strong: #5b5f69;--primary: #8f95ff;--primary-hover: #a9adff;--primary-weak: #2a2d52;--primary-text: #c3c6ff;--on-primary: #10123a;--danger: #ff8a80;--danger-weak: #3d1f1d;--success: #6fd49a;--success-weak: #1b3326;--warning: #ffcc66;--warning-weak: #3a2f14;--focus: #ffb347;--overlay: rgba(0, 0, 0, .6);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .3);--c-blue: #1e3358;--t-blue: #cfe0ff;--c-cyan: #173f49;--t-cyan: #c4f0fa;--c-teal: #173f37;--t-teal: #c3f0e4;--c-green: #1f3b1c;--t-green: #cfeec7;--c-yellow: #43380f;--t-yellow: #ffe9a6;--c-orange: #4a2d14;--t-orange: #ffd8b8;--c-red: #4a1f1f;--t-red: #ffd0d0;--c-pink: #4a1c38;--t-pink: #ffd3ee;--c-purple: #33245a;--t-purple: #e3d6ff;--c-gray: #34332f;--t-gray: #e8e5de}html[data-theme=contrast]{--bg: #000;--surface: #000;--surface-2: #111;--surface-3: #222;--text: #fff;--text-2: #fff;--text-3: #f2f2f2;--border: #fff;--border-strong: #fff;--primary: #ffe600;--primary-hover: #fff27a;--primary-weak: #332e00;--primary-text: #ffe600;--on-primary: #000;--danger: #ff6b6b;--danger-weak: #2a0000;--success: #5dff9a;--success-weak: #002a10;--warning: #ffe600;--warning-weak: #2a2600;--focus: #00e5ff;--overlay: rgba(0, 0, 0, .8);--c-blue: #000;--t-blue: #8ec5ff;--c-cyan: #000;--t-cyan: #7ff3ff;--c-teal: #000;--t-teal: #7fffd9;--c-green: #000;--t-green: #93ff7f;--c-yellow: #000;--t-yellow: #ffe600;--c-orange: #000;--t-orange: #ffb36b;--c-red: #000;--t-red: #ff8a8a;--c-pink: #000;--t-pink: #ff9ad8;--c-purple: #000;--t-purple: #d2b3ff;--c-gray: #000;--t-gray: #fff}html[data-theme=contrast] .chip,html[data-theme=contrast] .card,html[data-theme=contrast] .btn{border:2px solid currentColor!important}html[data-motion=reduce]{--dur: 0ms}html[data-motion=reduce] *,html[data-motion=reduce] *:before,html[data-motion=reduce] *:after{animation-duration:0ms!important;transition-duration:0ms!important;scroll-behavior:auto!important}*,*:before,*:after{box-sizing:border-box}html{font-size:calc(100% * var(--scale));-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;font-size:1rem;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{line-height:1.2;margin:0 0 .5rem;font-weight:700}h1{font-size:1.75rem}h2{font-size:1.35rem}h3{font-size:1.15rem}p{margin:0 0 .75rem}a{color:var(--primary-text);text-underline-offset:3px}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}::selection{background:var(--primary-weak)}:focus-visible{outline:4px solid var(--focus)!important;outline-offset:2px;border-radius:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.5rem;top:-4rem;z-index:1000;background:var(--primary);color:var(--on-primary);padding:.75rem 1rem;border-radius:var(--radius);font-weight:700}.skip-link:focus{top:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:var(--tap);padding:0 1.15rem;border-radius:var(--radius);border:2px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur),border-color var(--dur),transform var(--dur);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn:hover{background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}html[data-theme=dark] .btn-danger,html[data-theme=contrast] .btn-danger{color:#000}.btn-danger-soft{color:var(--danger);border-color:var(--danger);background:var(--surface)}.btn-danger-soft:hover{background:var(--danger-weak)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-soft{background:var(--primary-weak);border-color:transparent;color:var(--primary-text)}.btn-soft:hover{border-color:var(--primary)}.btn-lg{min-height:calc(var(--tap) + .75rem);font-size:1.15rem;padding:0 1.5rem;border-radius:var(--radius-lg)}.btn-xl{min-height:calc(var(--tap) * 1.6);font-size:1.25rem;padding:.75rem 1.5rem;border-radius:var(--radius-lg)}.btn-block{width:100%}.btn-sm{min-height:var(--tap-sm);padding:0 .85rem;font-size:.95rem}.btn-toast{min-height:var(--tap-sm);background:var(--surface);color:var(--text)}.icon-btn{display:inline-grid;place-items:center;width:var(--tap);height:var(--tap);flex:0 0 auto;border-radius:var(--radius);border:2px solid transparent;background:transparent;color:var(--text);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.icon-btn:hover{background:var(--surface-2)}.icon-btn.bordered{border-color:var(--border);background:var(--surface)}.icon-btn.active{background:var(--primary-weak);color:var(--primary-text);border-color:var(--primary)}.icon-btn-toast{color:inherit}.icon-btn-sm{width:var(--tap-sm);height:var(--tap-sm)}.row{display:flex;align-items:center;gap:var(--gap);flex-wrap:wrap}.row-nowrap{display:flex;align-items:center;gap:var(--gap)}.col{display:flex;flex-direction:column;gap:var(--gap)}.spacer{flex:1}.muted{color:var(--text-2)}.small{font-size:.9rem}.center{text-align:center}.nowrap{white-space:nowrap}.w100{width:100%}.mt{margin-top:1rem}.mb{margin-bottom:1rem}.input,.textarea,.select{width:100%;min-height:var(--tap);padding:.6rem .9rem;border-radius:var(--radius);border:2px solid var(--border-strong);background:var(--surface);color:var(--text);font-size:1.05rem}.textarea{min-height:calc(var(--tap) * 2.2);resize:vertical;line-height:1.45}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);outline:3px solid var(--primary-weak);outline-offset:0}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input.invalid{border-color:var(--danger)}.label{display:flex;align-items:center;gap:.5rem;font-weight:700;margin-bottom:.35rem;color:var(--text)}.help{color:var(--text-2);font-size:.92rem;margin-top:.3rem}.error-text{color:var(--danger);font-weight:700;font-size:.95rem;margin-top:.3rem}.input-wrap{position:relative;display:flex;gap:.5rem;align-items:stretch}.input-wrap>.input,.input-wrap>.textarea{flex:1}.checkline{display:flex;align-items:center;gap:.75rem;min-height:var(--tap);cursor:pointer;font-weight:700}.checkline input{width:1.6rem;height:1.6rem;accent-color:var(--primary)}.switch{display:inline-flex;align-items:center;gap:.75rem;min-height:var(--tap);padding:0 1rem 0 .5rem;border-radius:999px;border:2px solid var(--border-strong);background:var(--surface);cursor:pointer;font-weight:700}.switch .knob{width:3.2rem;height:1.9rem;border-radius:999px;background:var(--surface-3);position:relative;transition:background var(--dur)}.switch .knob:after{content:"";position:absolute;top:.2rem;left:.2rem;width:1.5rem;height:1.5rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform var(--dur)}.switch[aria-checked=true]{border-color:var(--success);background:var(--success-weak)}.switch[aria-checked=true] .knob{background:var(--success)}.switch[aria-checked=true] .knob:after{transform:translate(1.3rem)}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .65rem;border-radius:999px;font-size:.92rem;font-weight:700;line-height:1.6;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--c-gray);color:var(--t-gray)}.chip-blue{background:var(--c-blue);color:var(--t-blue)}.chip-cyan{background:var(--c-cyan);color:var(--t-cyan)}.chip-teal{background:var(--c-teal);color:var(--t-teal)}.chip-green{background:var(--c-green);color:var(--t-green)}.chip-yellow{background:var(--c-yellow);color:var(--t-yellow)}.chip-orange{background:var(--c-orange);color:var(--t-orange)}.chip-red{background:var(--c-red);color:var(--t-red)}.chip-pink{background:var(--c-pink);color:var(--t-pink)}.chip-purple{background:var(--c-purple);color:var(--t-purple)}.chip-gray{background:var(--c-gray);color:var(--t-gray)}.chip-link{background:var(--primary-weak);color:var(--primary-text)}.choice-grid{display:flex;flex-wrap:wrap;gap:.6rem}.choice-btn{min-height:var(--tap);padding:0 1rem;border-radius:999px;border:2px solid var(--border);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;touch-action:manipulation}.choice-btn:not([class*=chip-]):not([class*=bg-]){background:var(--surface);color:var(--text);border-color:var(--border-strong)}.choice-btn[aria-pressed=true],.choice-btn[aria-checked=true]{border-color:var(--text);box-shadow:inset 0 0 0 2px var(--text)}.choice-btn:not([class*=chip-]):not([class*=bg-])[aria-checked=true],.choice-btn:not([class*=chip-]):not([class*=bg-])[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary);box-shadow:none}.choice-btn:not([class*=chip-]):not([class*=bg-])[aria-checked=true]:before{content:"✓";font-weight:700}.choice-btn .tick{width:1.2rem;display:inline-grid;place-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:1.25rem}.card-button{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;transition:border-color var(--dur),transform var(--dur)}.card-button:hover{border-color:var(--primary)}.card-title{font-size:1.15rem;font-weight:700;margin:0}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .55rem;border-radius:999px;font-size:.85rem;font-weight:700;background:var(--surface-2);color:var(--text-2)}.badge-ok{background:var(--success-weak);color:var(--success)}.badge-warn{background:var(--warning-weak);color:var(--warning)}.badge-danger{background:var(--danger-weak);color:var(--danger)}.badge-primary{background:var(--primary-weak);color:var(--primary-text)}.alert{display:flex;gap:.75rem;align-items:flex-start;padding:1rem;border-radius:var(--radius);background:var(--warning-weak);color:var(--text);border:2px solid var(--warning)}.alert-info{background:var(--primary-weak);border-color:var(--primary)}.alert-danger{background:var(--danger-weak);border-color:var(--danger)}.alert-ok{background:var(--success-weak);border-color:var(--success)}.layout{display:flex;min-height:100vh;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;height:100dvh;overflow:auto;padding:1rem .85rem 1.25rem}.brand{display:flex;align-items:center;gap:.65rem;font-weight:700;font-size:1.2rem;padding:.25rem .4rem 1rem;color:var(--text);text-decoration:none}.brand-logo{width:2.4rem;height:2.4rem;border-radius:10px;flex:0 0 auto}.nav-section{margin-top:1.1rem}.nav-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700;margin:0 .5rem .4rem}.nav-item{display:flex;align-items:center;gap:.7rem;min-height:var(--tap);padding:0 .75rem;border-radius:var(--radius);color:var(--text);text-decoration:none;font-weight:700;border:2px solid transparent;cursor:pointer;background:transparent;width:100%;text-align:left;font-size:1rem}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--primary-weak);color:var(--primary-text);border-color:var(--primary)}.nav-item .nav-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-sub{padding-left:1.25rem;display:flex;flex-direction:column;gap:.2rem;margin:.2rem 0 .4rem}.nav-sub .nav-item{min-height:var(--tap-sm);font-weight:400}.nav-sub .nav-item.active{font-weight:700}.main{flex:1;min-width:0;display:flex;flex-direction:column}.page{padding:1.5rem clamp(1rem,3vw,2.5rem) 6rem;max-width:1400px;width:100%;margin:0 auto}.page-narrow{max-width:900px}.page-header{display:flex;align-items:center;gap:var(--gap);flex-wrap:wrap;margin-bottom:1.25rem}.page-header h1{margin:0}.topbar{display:none;position:sticky;top:0;z-index:30;background:var(--surface);border-bottom:1px solid var(--border);min-height:calc(var(--tap) + 1rem);padding:.5rem;align-items:center;gap:.5rem;padding-top:max(.5rem,env(safe-area-inset-top))}.topbar-title{flex:1;font-weight:700;font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottomnav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:40;background:var(--surface);border-top:1px solid var(--border);padding:.35rem .35rem max(.35rem,env(safe-area-inset-bottom));grid-template-columns:repeat(4,1fr);gap:.25rem}.bottomnav a,.bottomnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:calc(var(--tap) + .6rem);border-radius:var(--radius);color:var(--text-2);text-decoration:none;font-size:.8rem;font-weight:700;background:none;border:2px solid transparent;cursor:pointer}.bottomnav .active{color:var(--primary-text);background:var(--primary-weak)}.bottomnav .scan-tab{color:var(--on-primary);background:var(--primary)}@media(max-width:900px){.sidebar{display:none}.topbar{display:flex}.bottomnav{display:grid}.page{padding:1rem 1rem 8rem}h1{font-size:1.45rem}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fade var(--dur) ease-out}.dialog{background:var(--surface);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(640px,100%);max-height:calc(100dvh - 2rem);display:flex;flex-direction:column;overflow:hidden;animation:pop var(--dur) ease-out}.dialog-wide{width:min(980px,100%)}.dialog-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1rem 1rem 1.25rem;border-bottom:1px solid var(--border)}.dialog-header h2{margin:0;flex:1;font-size:1.3rem}.dialog-body{padding:1.25rem;overflow:auto;flex:1}.dialog-footer{display:flex;gap:var(--gap);justify-content:flex-end;padding:1rem 1.25rem;border-top:1px solid var(--border);flex-wrap:wrap}.drawer-overlay{justify-content:flex-end;align-items:stretch;padding:0}.drawer{background:var(--surface);width:min(640px,100%);height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slidein var(--dur) ease-out}@media(max-width:700px){.overlay:not(.drawer-overlay){align-items:flex-end;padding:0}.dialog{width:100%;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.dialog-footer{padding-bottom:max(1rem,env(safe-area-inset-bottom))}.dialog-footer .btn{flex:1}.drawer{width:100%}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes slidein{0%{transform:translate(30px);opacity:.4}}.menu{position:fixed;z-index:120;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:.4rem;min-width:16rem;max-width:calc(100vw - 1rem);max-height:70vh;overflow:auto;animation:pop var(--dur) ease-out}.menu-item{display:flex;align-items:center;gap:.75rem;width:100%;min-height:var(--tap);padding:0 .85rem;border:0;border-radius:10px;background:none;cursor:pointer;font-weight:700;text-align:left;font-size:1rem}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2)}.menu-item.danger{color:var(--danger)}.menu-sep{height:1px;background:var(--border);margin:.35rem .25rem}.menu-label{padding:.5rem .85rem .25rem;font-size:.82rem;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.toasts{position:fixed;z-index:200;left:50%;transform:translate(-50%);top:max(1rem,env(safe-area-inset-top));display:flex;flex-direction:column;gap:.5rem;width:min(34rem,calc(100% - 1.5rem))}@media(max-width:900px){.toasts{top:calc(var(--tap) + 1.5rem + env(safe-area-inset-top))}}.toast{display:flex;align-items:center;gap:.75rem;padding:.6rem .6rem .6rem 1rem;border-radius:var(--radius);background:#23211d;color:#fff;box-shadow:var(--shadow-lg);animation:pop var(--dur) ease-out;font-weight:700}html[data-theme=dark] .toast{background:#f1efe9;color:#16171b}html[data-theme=contrast] .toast{background:#000;color:#fff;border:3px solid #ffe600}.toast-error{background:var(--danger)!important;color:#fff!important}.toast-text{flex:1}.hero-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin-bottom:2rem}.action-card{display:flex;align-items:center;gap:1rem;padding:1.25rem;border-radius:var(--radius-lg);border:2px solid var(--border);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;text-align:left;min-height:6.5rem;color:var(--text);text-decoration:none;font:inherit}.action-card:hover{border-color:var(--primary)}.action-card .ac-icon{width:3.5rem;height:3.5rem;border-radius:14px;display:grid;place-items:center;flex:0 0 auto}.action-card.primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.action-card.primary .ac-icon{background:#ffffff2e}.action-card .ac-title{font-weight:700;font-size:1.15rem}.action-card .ac-sub{opacity:.85;font-size:.95rem}.bases-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.base-card{display:flex;flex-direction:column;gap:.75rem;min-height:8.5rem}.base-icon{width:3rem;height:3rem;border-radius:12px;display:grid;place-items:center}.bg-blue{background:var(--c-blue);color:var(--t-blue)}.bg-cyan{background:var(--c-cyan);color:var(--t-cyan)}.bg-teal{background:var(--c-teal);color:var(--t-teal)}.bg-green{background:var(--c-green);color:var(--t-green)}.bg-yellow{background:var(--c-yellow);color:var(--t-yellow)}.bg-orange{background:var(--c-orange);color:var(--t-orange)}.bg-red{background:var(--c-red);color:var(--t-red)}.bg-pink{background:var(--c-pink);color:var(--t-pink)}.bg-purple{background:var(--c-purple);color:var(--t-purple)}.bg-gray{background:var(--c-gray);color:var(--t-gray)}.base-head{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.base-head h1{margin:0;font-size:1.5rem}.tabs{display:flex;gap:.4rem;overflow-x:auto;padding:.25rem .1rem .5rem;scrollbar-width:thin}.tab{display:inline-flex;align-items:center;gap:.5rem;min-height:var(--tap);padding:0 1rem;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);font-weight:700;cursor:pointer;white-space:nowrap;color:var(--text);text-decoration:none}.tab[aria-selected=true],.tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}.tab .count{font-weight:400;opacity:.75}.viewbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.75rem}.view-pill{display:inline-flex;align-items:center;gap:.4rem}.toolbar-search{flex:1 1 14rem;min-width:12rem}.toolbar-btn.on{background:var(--primary-weak);border-color:var(--primary);color:var(--primary-text)}.grid-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);max-height:calc(100dvh - 15rem)}@media(max-width:900px){.grid-wrap{max-height:none}}table.grid{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.grid th,.grid td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:0;text-align:left;vertical-align:middle}.grid thead th{position:sticky;top:0;z-index:3;background:var(--surface-2);font-weight:700}.grid .th-inner{display:flex;align-items:center;gap:.45rem;min-height:var(--tap);padding:0 .4rem 0 .75rem}.grid .th-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid .sticky-col{position:sticky;left:0;z-index:2;background:var(--surface)}.grid thead .sticky-col{z-index:4;background:var(--surface-2)}.grid .sticky-col-2{position:sticky;z-index:2;background:var(--surface);box-shadow:2px 0 0 var(--border)}.grid thead .sticky-col-2{z-index:4;background:var(--surface-2)}.grid tbody tr{cursor:pointer}.grid tbody tr:hover td{background:var(--surface-2)}.grid tbody tr.selected td{background:var(--primary-weak)}.grid tbody tr:focus-visible{outline:4px solid var(--focus);outline-offset:-4px}.grid td .cell{padding:.45rem .75rem;min-height:var(--tap);display:flex;align-items:center;gap:.35rem;overflow:hidden}.grid.h-short td .cell{min-height:var(--tap-sm)}.grid.h-medium td .cell{min-height:calc(var(--tap) * 1.4)}.grid.h-tall td .cell{min-height:calc(var(--tap) * 2.2);align-items:flex-start}.cell-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.h-tall .cell-text,.h-medium .cell-text{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.cell-num{justify-content:flex-end;font-variant-numeric:tabular-nums}.rownum{width:4.5rem;min-width:4.5rem;color:var(--text-3);font-size:.9rem}.rownum .cell{justify-content:space-between;padding:0 .35rem 0 .5rem!important}.row-check{width:1.6rem;height:1.6rem;accent-color:var(--primary);cursor:pointer}.group-row td{background:var(--surface-3)!important;cursor:pointer}.group-row .cell{font-weight:700}.add-row td{background:var(--surface)!important}.summary-row td{position:sticky;bottom:0;background:var(--surface-2)!important;z-index:2;font-size:.9rem}.col-resize{width:10px;align-self:stretch;cursor:col-resize;margin-right:-.4rem;flex:0 0 auto;touch-action:none}.col-resize:hover{background:var(--primary-weak)}.thumbs{display:flex;gap:.3rem}.thumb{width:2.1rem;height:2.1rem;border-radius:6px;object-fit:cover;border:1px solid var(--border);background:var(--surface-2);display:grid;place-items:center;font-size:.65rem;font-weight:700;color:var(--text-2)}.stars{color:#d49a00;letter-spacing:.05em}html[data-theme=dark] .stars{color:#ffcc4d}.check-cell{width:1.9rem;height:1.9rem;border-radius:6px;border:2px solid var(--border-strong);display:inline-grid;place-items:center}.check-cell.on{background:var(--success);border-color:var(--success);color:#fff}.cards-list{display:flex;flex-direction:column;gap:.75rem}.rec-card{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.1rem;cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--shadow)}.rec-card:hover{border-color:var(--primary)}.rec-card-title{font-weight:700;font-size:1.1rem;overflow-wrap:anywhere}.rec-card-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.5rem 1rem}.rec-kv{min-width:0}.rec-kv .k{font-size:.82rem;color:var(--text-2);font-weight:700;display:flex;gap:.3rem;align-items:center}.rec-kv .v{overflow-wrap:anywhere}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}.gallery .rec-card{padding:0;overflow:hidden}.gallery .cover{aspect-ratio:4/3;background:var(--surface-2);display:grid;place-items:center;color:var(--text-3);overflow:hidden}.gallery .cover img{width:100%;height:100%;object-fit:cover}.gallery .card-body{padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem}.kanban{display:flex;gap:1rem;overflow-x:auto;padding-bottom:1rem;align-items:flex-start;min-height:50vh}.kcol{flex:0 0 min(20rem,86vw);background:var(--surface-2);border-radius:var(--radius-lg);padding:.75rem;display:flex;flex-direction:column;gap:.6rem;max-height:calc(100dvh - 14rem)}.kcol.over{outline:3px dashed var(--primary)}.kcol-head{display:flex;align-items:center;gap:.5rem;font-weight:700;padding:.25rem}.kcol-body{display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;min-height:4rem;padding:.15rem}.kcard{position:relative}.kcard.dragging{opacity:.5}.kcard .move-btn{align-self:flex-end}.drag-handle{cursor:grab;touch-action:none}.cal-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.cal-title{font-size:1.3rem;font-weight:700;min-width:12rem;text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-dow{text-align:center;font-weight:700;color:var(--text-2);padding:.3rem 0;text-transform:capitalize}.cal-day{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-height:7.5rem;padding:.35rem;display:flex;flex-direction:column;gap:.25rem}.cal-day.other{opacity:.5}.cal-day.today{border:3px solid var(--primary)}.cal-daynum{display:flex;align-items:center;justify-content:space-between;font-weight:700}.cal-ev{font-size:.85rem;padding:.25rem .45rem;border-radius:8px;background:var(--primary-weak);color:var(--primary-text);border:0;text-align:left;cursor:pointer;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:2rem}.agenda{display:flex;flex-direction:column;gap:.75rem}.agenda-day h3{font-size:1rem;margin:.5rem 0;text-transform:capitalize}.form-view{max-width:760px;margin:0 auto}.form-view .card{padding:1.5rem}.field-block{margin-bottom:1.4rem}.rec-head{display:flex;align-items:center;gap:.5rem;padding:.75rem .75rem .75rem 1.25rem;border-bottom:1px solid var(--border);padding-top:max(.75rem,env(safe-area-inset-top))}.rec-head h2{flex:1;margin:0;font-size:1.3rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-body{flex:1;overflow:auto;padding:1.25rem 1.25rem 2rem}.rec-field{padding:.9rem 0 1rem;border-bottom:1px dashed var(--border)}.rec-field:last-child{border-bottom:0}.rec-footer{border-top:1px solid var(--border);padding:.75rem 1rem;display:flex;gap:.5rem;flex-wrap:wrap;padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.saved{color:var(--success);font-weight:700;font-size:.9rem;display:inline-flex;gap:.3rem;align-items:center}.computed-val{padding:.6rem .9rem;border-radius:var(--radius);background:var(--surface-2);min-height:var(--tap);display:flex;align-items:center;gap:.5rem}.linked-list{display:flex;flex-direction:column;gap:.5rem}.linked-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .35rem .35rem .9rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface)}.linked-item .name{flex:1;font-weight:700;overflow-wrap:anywhere}.att-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.75rem}.att-item{border:2px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-2);display:flex;flex-direction:column}.att-item button.att-open{border:0;padding:0;background:none;cursor:pointer;aspect-ratio:1;display:grid;place-items:center;overflow:hidden}.att-item img{width:100%;height:100%;object-fit:cover}.att-name{font-size:.8rem;padding:.3rem .4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--surface)}.suggestions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem}.suggestions .btn{font-weight:400}.mic-btn.listening{background:var(--danger);color:#fff;border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b3261e80}50%{box-shadow:0 0 0 10px #b3261e00}}.interim{font-style:italic;color:var(--text-2);margin-top:.3rem}.comment{padding:.75rem 1rem;border-radius:var(--radius);background:var(--surface-2)}.comment-meta{font-size:.85rem;color:var(--text-2);display:flex;gap:.5rem;align-items:center}.hist-item{padding:.6rem 0;border-bottom:1px solid var(--border)}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.6rem}.type-tile{display:flex;gap:.75rem;align-items:flex-start;padding:.8rem;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;min-height:var(--tap);font:inherit;color:inherit}.type-tile[aria-checked=true]{border-color:var(--primary);background:var(--primary-weak)}.type-tile .tt-name{font-weight:700}.type-tile .tt-desc{font-size:.85rem;color:var(--text-2)}.dropzone{border:3px dashed var(--border-strong);border-radius:var(--radius-lg);padding:2rem 1.25rem;text-align:center;background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:1rem}.dropzone.drag{border-color:var(--primary);background:var(--primary-weak)}.scan-list{display:flex;flex-direction:column;gap:.75rem}.review{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:1.25rem;align-items:start}@media(max-width:1000px){.review{grid-template-columns:1fr}}.doc-preview{position:sticky;top:1rem;background:var(--surface-2);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border)}.doc-preview{max-height:calc(100dvh - 2rem);overflow:auto}.doc-preview img{width:100%;display:block}@media(max-width:1000px){.doc-preview{position:static;max-height:60vh}}.conf-baja{border-color:var(--warning)!important;background:var(--warning-weak)}.plan-card{border-left:6px solid var(--primary)}.plan-card.create{border-left-color:var(--success)}.plan-card.off{opacity:.55}.plan-val{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:start;padding:.6rem 0;border-top:1px dashed var(--border)}.plan-val input[type=checkbox]{width:1.7rem;height:1.7rem;margin-top:.6rem;accent-color:var(--primary)}.pe-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1rem}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-12{grid-column:span 12}.span-3{grid-column:span 3}@media(max-width:1100px){.span-3,.span-4,.span-5,.span-6,.span-7,.span-8{grid-column:span 6}}@media(max-width:700px){.pe-grid>*{grid-column:span 12!important}}.stat{display:flex;flex-direction:column;gap:.2rem}.stat .k{color:var(--text-2);font-weight:700;font-size:.9rem}.stat .v{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}.stat .v.big{font-size:2.1rem}.progress{height:1rem;background:var(--surface-3);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--success);border-radius:999px}.step-item{display:flex;align-items:center;gap:.75rem;padding:.6rem 0;border-top:1px solid var(--border)}.step-item .st-name{flex:1;font-weight:700}.missing-item{display:flex;gap:.75rem;align-items:center;padding:.6rem 0;border-top:1px solid var(--border)}.ficha-row{display:grid;grid-template-columns:minmax(10rem,16rem) minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.45rem 0;border-top:1px solid var(--border)}.ficha-row .fk{color:var(--text-2);font-weight:700}.ficha-row .fv{font-size:1.05rem;overflow-wrap:anywhere}@media(max-width:700px){.ficha-row{grid-template-columns:minmax(0,1fr) auto}.ficha-row .fk{grid-column:1 / -1}}.empty{text-align:center;padding:3rem 1rem;color:var(--text-2);display:flex;flex-direction:column;align-items:center;gap:1rem}.empty svg{color:var(--text-3)}.spinner{width:2.5rem;height:2.5rem;border-radius:50%;border:4px solid var(--surface-3);border-top-color:var(--primary);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;color:var(--text-2)}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:1rem;background:radial-gradient(1200px 600px at 10% -10%,var(--primary-weak),transparent 60%),var(--bg)}.login-card{width:min(30rem,100%);padding:2rem}.login-card .brand{justify-content:center;font-size:1.6rem;padding-bottom:.25rem}.pw-wrap{position:relative}.pw-wrap .input{padding-right:4rem}.pw-wrap .icon-btn{position:absolute;right:.2rem;top:50%;transform:translateY(-50%)}.kbd{font-family:ui-monospace,monospace;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:0 .35rem;font-size:.9rem}.table-simple{width:100%;border-collapse:collapse}.table-simple th,.table-simple td{text-align:left;padding:.6rem .5rem;border-bottom:1px solid var(--border)}.filter-row{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(8rem,1fr) minmax(8rem,1.3fr) auto;gap:.5rem;align-items:start;padding:.6rem 0;border-bottom:1px dashed var(--border)}@media(max-width:700px){.filter-row{grid-template-columns:1fr auto}.filter-row>:nth-child(2),.filter-row>:nth-child(3){grid-column:1 / 2}}.sortable-item{display:flex;align-items:center;gap:.5rem;padding:.35rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:.5rem}.sortable-item .name{flex:1;font-weight:700;display:flex;align-items:center;gap:.5rem;min-width:0}@media print{.sidebar,.topbar,.bottomnav,.no-print,.toasts{display:none!important}.page{padding:0;max-width:none}body{background:#fff;color:#000}.card{box-shadow:none;border:1px solid #999;break-inside:avoid}}.btn svg,.icon-btn svg,.alert svg,.nav-item svg,.chip svg,.badge svg,.choice-btn svg,.menu-item svg,.tab svg,.label svg{flex-shrink:0}.btn-block,.btn-xl{white-space:normal;text-align:center;line-height:1.25}.grid .th-inner .btn{text-align:left}.kcard .rec-kv .v,.gallery .rec-kv .v{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.main{overflow-x:clip}.step-item,.missing-item{flex-wrap:wrap}.step-item .st-name{flex:1 1 12rem;min-width:0}.missing-item>div{min-width:12rem}@media(max-width:1000px){.review{grid-template-columns:minmax(0,1fr)}.doc-preview{max-height:45vh}}@media(max-width:700px){.rec-head{flex-wrap:wrap}.rec-head h2{order:10;flex-basis:100%;white-space:normal;font-size:1.2rem}.rec-footer .btn-primary{flex:1 1 100%}}.check-hit{display:inline-grid;place-items:center;min-width:2.75rem;min-height:2.75rem;cursor:pointer;border-radius:8px}.check-hit:hover{background:var(--primary-weak)}.rownum{width:5.5rem;min-width:5.5rem}.mt-sm{margin-top:.5rem}.mt-lg{margin-top:1.75rem}.spinner-sm{width:1.6rem;height:1.6rem;border-width:3px;flex:0 0 auto}@media(max-width:520px){.hide-narrow{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}.portal{min-height:100dvh;background:var(--bg)}.portal-top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem clamp(.75rem,3vw,2rem);background:var(--surface);border-bottom:1px solid var(--border)}.portal-top .brand{padding:0}@media(max-width:420px){.portal-top-title{font-size:1rem}}.portal-main{max-width:52rem;margin:0 auto;padding:1.25rem clamp(.75rem,3vw,1.5rem) 5rem}.portal-status-label{display:flex;align-items:center;gap:.6rem;font-size:1.9rem;margin:.35rem 0 0;line-height:1.2}.portal-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem}.portal-steps li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.35rem;position:relative;color:var(--text-2)}.portal-steps li:before{content:"";position:absolute;top:1.1rem;left:calc(-50% + 1.3rem);right:calc(50% + 1.3rem);height:4px;background:var(--surface-3);border-radius:4px}.portal-steps li:first-child:before{display:none}.portal-steps li.done:before,.portal-steps li.current:before{background:var(--success)}.portal-steps .dot{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;font-weight:700;background:var(--surface-3);color:var(--text-2);border:3px solid transparent}.portal-steps li.done .dot{background:var(--success);color:#fff}.portal-steps li.current .dot{background:var(--primary);color:var(--on-primary);box-shadow:0 0 0 4px var(--primary-weak)}.portal-steps li.current{color:var(--text);font-weight:700}.portal-steps .lbl{font-size:.85rem;line-height:1.2}@media(max-width:640px){.portal-steps{grid-template-columns:1fr;gap:.15rem}.portal-steps li{flex-direction:row;text-align:left;gap:.75rem;padding:.15rem 0}.portal-steps li:before{display:none}.portal-steps .lbl{font-size:1rem}.portal-steps .dot{width:2rem;height:2rem}}.portal-req{border-left:6px solid var(--warning)}.portal-req.st-revision{border-left-color:var(--primary)}.portal-req.st-aprobado{border-left-color:var(--success)}.portal-req.st-rechazado{border-left-color:var(--danger)}.portal-req-title{display:flex;gap:.5rem;align-items:flex-start;margin:0;font-size:1.2rem;line-height:1.3}.portal-req-title svg{flex:0 0 auto;margin-top:.1rem}.portal-tray{display:flex;flex-direction:column;gap:.75rem;padding:.9rem;border:2px dashed var(--border-strong);border-radius:var(--radius-lg)}.tray-items{display:flex;flex-wrap:wrap;gap:.6rem}.tray-item{position:relative;margin:0;width:7.5rem;display:flex;flex-direction:column;gap:.25rem}.tray-item img,.tray-file{width:100%;height:9rem;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}.tray-file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;padding:.4rem;font-size:.75rem;word-break:break-all;text-align:center}.tray-item figcaption{font-size:.85rem;text-align:center;color:var(--text-2)}.tray-remove{position:absolute;top:.25rem;right:.25rem;background:var(--surface);border:1px solid var(--border-strong)}.code-input{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;letter-spacing:.15em;font-size:1.35rem;text-transform:uppercase}.pa-req{display:flex;flex-wrap:wrap;gap:.75rem 1rem;padding:1rem 0;border-top:1px solid var(--border)}.pa-req:first-child{border-top:0}.pa-req>.col{flex:1 1 22rem;min-width:0}.pa-req .pa-actions{flex:0 1 auto;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;align-items:flex-start;max-width:100%}@media(max-width:760px){.pa-req .pa-actions{justify-content:flex-start}}.pa-client{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.85rem 0;border-top:1px solid var(--border)}.pa-client:first-child{border-top:0}.pa-code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:2.4rem;font-weight:700;letter-spacing:.12em;text-align:center;padding:1rem;border-radius:var(--radius-lg);background:var(--surface-2);border:2px dashed var(--border-strong)}.nav-badge{margin-left:auto;background:var(--danger);color:#fff;border-radius:999px;min-width:1.6rem;padding:0 .45rem;font-size:.8rem;font-weight:700;line-height:1.6rem;text-align:center}.tab .nav-badge{margin-left:.35rem}.linklike{background:none;border:0;padding:.35rem .1rem;min-height:2.2rem;font:inherit;color:var(--primary-text, var(--primary));text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:700}.portal-req .btn,.portal .alert .btn{white-space:normal;max-width:100%;text-align:left;height:auto}
