:root{--canvas:#f2efe9;--surface:#fff;--surface2:#f6f3ec;--surface3:#ece7db;--txt:#1c1a17;--muted:#736c60;--line:#e7e1d6;--line-strong:#d8d0c0;--accent:#146b64;--accent-hover:#0f544e;--accent-tint:#dcece9;--accent-fill:var(--accent);--accent-fill-hover:var(--accent-hover);--sand:#b6a07f;--sand-ink:#7c6338;--ok:#3f7d54;--warn:#c07d15;--danger:#c14434;--danger-tint:#f5ded9;--danger-fill:var(--danger);--side-grad-top:#20302c;--side-grad-bottom:#141d1a;--shadow-1:0 1px 2px rgba(60,50,30,.06),0 2px 8px rgba(60,50,30,.07);--shadow-2:0 2px 6px rgba(60,50,30,.07),0 10px 28px rgba(60,50,30,.1);--shadow-3:0 6px 16px rgba(40,32,18,.12),0 20px 48px rgba(40,32,18,.16);--r-sm:10px;--r:12px;--r-lg:16px;--font-ui:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:var(--font-ui);--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:16px;--text-xl:18px;--text-2xl:22px;--text-3xl:24px;--text-display:34px;--tap:44px;--scrim:rgba(28,24,16,.45)}:root[data-theme=dark]{--canvas:#12100c;--surface:#1b1813;--surface2:#232019;--surface3:#2a2620;--txt:#f1ece2;--muted:#a39a89;--line:#2c281f;--line-strong:#3a352a;--accent:#3fb0a5;--accent-hover:#56c2b8;--accent-tint:#123330;--accent-fill:#178076;--accent-fill-hover:#146b64;--sand:#b6a07f;--sand-ink:#b6a07f;--ok:#5aa171;--warn:#d3922e;--danger:#e0705f;--danger-tint:#3a1f1a;--danger-fill:#c14434;--side-grad-top:#0d1512;--side-grad-bottom:#050908;--shadow-1:0 1px 2px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.3);--shadow-2:0 2px 6px rgba(0,0,0,.4),0 10px 28px rgba(0,0,0,.35);--shadow-3:0 6px 16px rgba(0,0,0,.5),0 20px 48px rgba(0,0,0,.45);--scrim:rgba(0,0,0,.6)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;text-size-adjust:100%}[role=button],button{touch-action:manipulation}@media (pointer:coarse){input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px!important}}body{background:var(--canvas);color:var(--txt);font-family:var(--font-ui);font-size:var(--text-md);line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px}::-webkit-scrollbar-track{background:transparent}.uidlg-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,24,20,.45);opacity:0;transition:opacity .14s ease}.uidlg-overlay.show{opacity:1}body.uidlg-lock{overflow:hidden}.uidlg-card{width:100%;max-width:400px;background:var(--surface);color:var(--txt);border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:22px;transition:transform .14s ease}@media (prefers-reduced-motion:no-preference){.uidlg-card{transform:translateY(8px) scale(.98)}.uidlg-overlay.show .uidlg-card{transform:none}}.uidlg-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.uidlg-icon{display:none}.uidlg-title{margin:0;font-size:var(--text-xl);font-weight:650;letter-spacing:-.01em}.uidlg-msg{margin:0 0 14px;color:var(--muted);font-size:var(--text-base);line-height:1.5}.uidlg-input{width:100%;min-height:var(--tap);padding:10px 12px;border:0;border-radius:var(--r-sm);background:var(--surface2);color:var(--txt);font:inherit;font-size:var(--text-md);outline:2px solid transparent;outline-offset:2px;transition:outline-color .12s ease}.uidlg-input:focus{outline-color:var(--accent)}@media (prefers-reduced-motion:no-preference){.uidlg-input.shake{animation:uidlgShake .36s ease}@keyframes uidlgShake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}}.uidlg-err{margin-top:8px;color:var(--danger);font-size:var(--text-sm)}.uidlg-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.uidlg-btn{min-height:var(--tap);padding:0 18px;border:0;border-radius:var(--r-sm);font:inherit;font-size:var(--text-base);font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.uidlg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.uidlg-btn.ghost{background:var(--surface2);color:var(--txt)}.uidlg-btn.ghost:hover{background:var(--surface3)}.uidlg-btn.primary{background:var(--accent-fill);color:#fff}.uidlg-btn.primary:hover{background:var(--accent-fill-hover)}.uidlg-btn.primary.danger{background:var(--danger-fill)}.uidlg-btn.primary.danger:hover{background:color-mix(in srgb,var(--danger-fill) 88%,#000)}.datepicker-picker{background:var(--surface);color:var(--txt);border:0;border-radius:var(--r);box-shadow:var(--shadow-3);font-family:var(--font-ui);font-size:var(--text-sm);padding:8px;max-width:calc(100vw - 24px)}.datepicker-picker span{border-radius:var(--r-sm)}.datepicker .datepicker-cell{width:2.1rem}.datepicker .datepicker-footer .dp-btn,.datepicker .datepicker-header .dp-btn{background:transparent!important;border:0;border-radius:var(--r-sm);color:var(--txt)!important;font:inherit;font-weight:600;min-height:32px;padding:4px 8px;cursor:pointer}.datepicker .datepicker-footer .dp-btn:hover,.datepicker .datepicker-header .dp-btn:hover{background:var(--surface2)!important}.datepicker .datepicker-title{font-weight:700;color:var(--txt)!important}.datepicker .datepicker-cell{color:var(--txt)!important}.datepicker .datepicker-cell.day,.datepicker .datepicker-cell.decade,.datepicker .datepicker-cell.month,.datepicker .datepicker-cell.year{height:1.9rem;line-height:1.9rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.datepicker .datepicker-cell.focused:not(.selected),.datepicker .datepicker-cell:not(.disabled):not(.selected):hover{background:var(--surface2)!important;color:var(--txt)!important}.datepicker .datepicker-cell.selected,.datepicker .datepicker-cell.selected.focused,.datepicker .datepicker-cell.selected:hover{background:var(--accent-fill)!important;color:#fff!important}.datepicker .datepicker-cell.range,.datepicker .datepicker-cell.range:hover,.datepicker .datepicker-cell.today:not(.selected){background:var(--accent-tint)!important;color:var(--accent)!important}.datepicker .datepicker-cell.disabled,.datepicker .datepicker-cell.next,.datepicker .datepicker-cell.prev{color:var(--muted)!important;opacity:.55}.datepicker .dow{color:var(--muted)!important;font-weight:600}