[data-portal-root]{--portal-bg:#f4f6fd;--portal-glow-1:rgba(124,92,255,0.16);--portal-glow-2:rgba(236,72,153,0.1);--portal-glow-3:rgba(48,58,247,0.1);--portal-surface:rgba(255,255,255,0.84);--portal-solid:#ffffff;--portal-sunken:#eef0f9;--portal-line:rgba(20,22,70,0.1);--portal-line-strong:#8187b3;--portal-text:#14163a;--portal-body:#383c62;--portal-muted:#585d82;--portal-accent:#303af7;--portal-accent-text:#2830d4;--portal-accent-soft:rgba(48,58,247,0.08);--portal-ok:#157a3c;--portal-ok-soft:#e4f5ea;--portal-warn:#a9500a;--portal-warn-soft:#fdf1da;--portal-bad:#b42318;--portal-bad-soft:#fdecea;--portal-info:#2830d4;--portal-info-soft:#e8eaff;--portal-shadow:0 1px 2px rgba(20,22,58,0.04),0 8px 28px rgba(51,54,147,0.08);--background:var(--portal-bg);--foreground:var(--portal-text);--card:var(--portal-surface);--card-foreground:var(--portal-text);--popover:var(--portal-solid);--popover-foreground:var(--portal-text);--border:var(--portal-line);--input:var(--portal-line-strong);--ring:var(--portal-accent);--muted:var(--portal-sunken);--muted-foreground:var(--portal-muted);--accent:var(--portal-accent-soft);--accent-foreground:var(--portal-text);--destructive:var(--portal-bad);--primary:#333693;--primary-foreground:#ffffff;--secondary:#972c27;--secondary-foreground:#ffffff;--radius:0.875rem;color-scheme:light;color:var(--foreground);background:radial-gradient(900px 640px at -6% 8%,var(--portal-glow-1),transparent 62%),radial-gradient(760px 560px at 106% 92%,var(--portal-glow-2),transparent 62%),radial-gradient(640px 420px at 72% -12%,var(--portal-glow-3),transparent 62%),var(--portal-bg);min-height:60vh;padding:28px 16px 64px}[data-portal-root][data-portal-theme=dark]{--portal-bg:#0a0b1d;--portal-glow-1:rgba(124,92,255,0.24);--portal-glow-2:rgba(236,72,153,0.13);--portal-glow-3:rgba(48,58,247,0.2);--portal-surface:rgba(23,25,52,0.8);--portal-solid:#191b3d;--portal-sunken:rgba(255,255,255,0.05);--portal-line:rgba(255,255,255,0.1);--portal-line-strong:rgba(255,255,255,0.42);--portal-text:#eff0ff;--portal-body:#cbceeb;--portal-muted:#a3a7cd;--portal-accent:#6670ff;--portal-accent-text:#a9afff;--portal-accent-soft:rgba(102,112,255,0.16);--portal-ok:#7fe0a2;--portal-ok-soft:rgba(46,160,90,0.16);--portal-warn:#f9c26b;--portal-warn-soft:rgba(245,158,11,0.15);--portal-bad:#fda4a4;--portal-bad-soft:rgba(239,68,68,0.15);--portal-info:#a9afff;--portal-info-soft:rgba(102,112,255,0.16);--portal-shadow:0 0 0 1px rgba(255,255,255,0.05),0 12px 32px rgba(0,0,0,0.4);--primary:#a9afff;--primary-foreground:#0a0b1d;--destructive:#f26b6b;color-scheme:dark}@media (prefers-color-scheme:dark){[data-portal-root][data-portal-theme=system]{--portal-bg:#0a0b1d;--portal-glow-1:rgba(124,92,255,0.24);--portal-glow-2:rgba(236,72,153,0.13);--portal-glow-3:rgba(48,58,247,0.2);--portal-surface:rgba(23,25,52,0.8);--portal-solid:#191b3d;--portal-sunken:rgba(255,255,255,0.05);--portal-line:rgba(255,255,255,0.1);--portal-line-strong:rgba(255,255,255,0.42);--portal-text:#eff0ff;--portal-body:#cbceeb;--portal-muted:#a3a7cd;--portal-accent:#6670ff;--portal-accent-text:#a9afff;--portal-accent-soft:rgba(102,112,255,0.16);--portal-ok:#7fe0a2;--portal-ok-soft:rgba(46,160,90,0.16);--portal-warn:#f9c26b;--portal-warn-soft:rgba(245,158,11,0.15);--portal-bad:#fda4a4;--portal-bad-soft:rgba(239,68,68,0.15);--portal-info:#a9afff;--portal-info-soft:rgba(102,112,255,0.16);--portal-shadow:0 0 0 1px rgba(255,255,255,0.05),0 12px 32px rgba(0,0,0,0.4);--primary:#a9afff;--primary-foreground:#0a0b1d;--destructive:#f26b6b;color-scheme:dark}}[data-portal-root] .font-semibold{font-weight:700}@media (prefers-reduced-motion:reduce){[data-portal-root] *,[data-portal-root] :after,[data-portal-root] :before{transition:none!important;animation:none!important}}[data-portal-root] .portal-shell{max-width:1380px;margin:0 auto;display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}[data-portal-root] .portal-side{flex:1 1 256px;position:relative;overflow:hidden;padding:22px 16px 16px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box;min-width:0}[data-portal-root] .portal-side:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(45deg,#333693,#972c27)}[data-portal-root] .portal-main{flex:999 1 600px;min-width:0}[data-portal-root] .portal-mark{background:#fff;box-shadow:inset 0 0 0 1.5px #333693;font-size:14px;letter-spacing:-.04em}[data-portal-root] .portal-avatar,[data-portal-root] .portal-mark{width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}[data-portal-root] .portal-avatar{font-size:13px;color:#fff;background:linear-gradient(135deg,#3550f5,#7b3ff2)}[data-portal-root] .portal-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}[data-portal-root] .portal-nav{display:flex;flex-direction:column;gap:2px}[data-portal-root] .portal-nav a{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:12px;color:var(--portal-body);text-decoration:none;font-weight:500;white-space:nowrap;transition:background .15s,color .15s}[data-portal-root] .portal-nav a:hover{background:var(--portal-accent-soft);color:var(--portal-text)}[data-portal-root] .portal-nav a[aria-current=page]{background:var(--portal-accent-soft);color:var(--portal-accent-text);font-weight:700}[data-portal-root] .portal-prefs{display:flex;flex-direction:column;gap:10px;padding-top:14px;border-top:1px solid var(--portal-line)}[data-portal-root] .portal-seg{display:flex;gap:4px;padding:3px;border-radius:12px;background:var(--portal-sunken);min-width:0}[data-portal-root] .portal-seg button{flex:1 1 0;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:0 6px;border:0;border-radius:9px;background:transparent;color:var(--portal-body);font:inherit;font-size:12px;font-weight:700;cursor:pointer}[data-portal-root] .portal-seg button:has(>svg){flex-direction:column;gap:2px;padding:4px;line-height:1.15}[data-portal-root] .portal-seg button:hover{color:var(--portal-text)}[data-portal-root] .portal-seg button[aria-pressed=true]{background:var(--portal-solid);color:var(--portal-text);box-shadow:0 1px 3px rgba(0,0,0,.12)}[data-portal-root] .portal-iconbtn{width:44px;height:44px;flex-shrink:0;border:0;border-radius:10px;background:transparent;color:var(--portal-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}[data-portal-root] .portal-iconbtn:hover:not(:disabled){background:var(--portal-accent-soft);color:var(--portal-text)}[data-portal-root] .portal-iconbtn:disabled{opacity:.5;cursor:default}[data-portal-root] .portal-iconbtn:focus-visible,[data-portal-root] .portal-nav a:focus-visible,[data-portal-root] .portal-seg button:focus-visible{outline:2px solid var(--portal-accent);outline-offset:2px}@media (max-width:760px){[data-portal-root]{padding:12px 12px 40px}[data-portal-root] .portal-shell{gap:14px}[data-portal-root] .portal-side{flex-basis:100%;padding:18px 14px 12px;gap:12px}[data-portal-root] .portal-nav{flex-direction:row;gap:6px;overflow-x:auto;margin:0 -14px;padding:4px 14px 6px;scrollbar-width:thin}[data-portal-root] .portal-nav a{flex:0 0 auto;background:var(--portal-sunken);padding:0 14px}[data-portal-root] .portal-prefs{flex-direction:row;flex-wrap:wrap;padding-top:12px}[data-portal-root] .portal-prefs .portal-seg{flex:1 1 220px}}[data-portal-root] [data-portal-city-search] label{color:var(--foreground)}[data-portal-root] [data-portal-city-search] input[role=combobox]{background:var(--portal-solid);color:var(--foreground);border-color:var(--input);border-radius:var(--radius-md,12px);min-height:48px;padding-inline-end:3rem}[data-portal-root][data-portal-theme=dark] [data-portal-city-search] input[role=combobox]{background:rgba(255,255,255,.04)}@media (prefers-color-scheme:dark){[data-portal-root][data-portal-theme=system] [data-portal-city-search] input[role=combobox]{background:rgba(255,255,255,.04)}}[data-portal-root] [data-portal-city-search] input[role=combobox]::placeholder{color:var(--muted-foreground);opacity:1}[data-portal-root] [data-portal-city-search] input[role=combobox]:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px var(--portal-accent-soft)}[data-portal-root] [data-portal-city-search] input[role=combobox][aria-invalid=true]{border-color:var(--destructive)}[data-portal-root] [data-portal-city-search] input[role=combobox]+button{right:2px;min-width:44px;min-height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--muted-foreground)}[data-portal-root] [data-portal-city-search] input[role=combobox]+button:hover{color:var(--foreground);background:var(--portal-accent-soft)}[data-portal-root] [data-portal-city-search] input[role=combobox]+button:focus-visible{outline:2px solid var(--portal-accent);outline-offset:2px}[data-portal-root] [data-portal-city-search] ul[role=listbox]{background:var(--popover);color:var(--popover-foreground);border-color:var(--input);border-radius:var(--radius-md,12px);box-shadow:var(--portal-shadow);z-index:30}[data-portal-root] [data-portal-city-search] li[role=option]{border-color:var(--border)}[data-portal-root] [data-portal-city-search] li[role=option][aria-selected=true]{background:var(--portal-accent-soft)}[data-portal-root] [data-portal-city-search] li[role=option]>span:first-child{color:var(--foreground)}[data-portal-root] [data-portal-city-search] li[role=option]>span+span,[data-portal-root] [data-portal-city-search] p[aria-live]{color:var(--muted-foreground)}[data-portal-root] [data-portal-city-search] p[aria-live].text-red-600{color:var(--destructive)}[data-portal-root] .portal-auth-frame{max-width:1180px;margin:0 auto}[data-portal-root] .portal-auth-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px}[data-portal-root] .portal-auth-top .portal-prefs{flex-direction:row;flex-wrap:wrap;padding-top:0;border-top:0}[data-portal-root] .portal-auth-center{display:flex;justify-content:center;padding:48px 0 16px}[data-portal-root] .portal-auth{position:relative;overflow:hidden;width:100%;max-width:460px;box-sizing:border-box;padding:36px 34px 30px;display:flex;flex-direction:column;gap:18px}[data-portal-root] .portal-auth:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(45deg,#333693,#972c27)}[data-portal-root] .portal-auth-badge{width:56px;height:56px;border-radius:16px;display:inline-flex;align-items:center;justify-content:center;background:var(--portal-accent-soft);color:var(--portal-accent-text)}[data-portal-root] .portal-auth-badge[data-tone=ok]{background:var(--portal-ok-soft);color:var(--portal-ok)}[data-portal-root] .portal-auth-badge[data-tone=bad]{background:var(--portal-bad-soft);color:var(--portal-bad)}[data-portal-root] .portal-auth-badge[data-tone=warn]{background:var(--portal-warn-soft);color:var(--portal-warn)}[data-portal-root] .portal-auth-link{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font:inherit;font-weight:700;color:var(--portal-accent-text);text-decoration:none;text-underline-offset:4px;cursor:pointer}[data-portal-root] .portal-auth-link:hover{text-decoration:underline}[data-portal-root] .portal-auth-link:focus-visible{outline:2px solid var(--portal-accent);outline-offset:2px;border-radius:4px}@media (max-width:760px){[data-portal-root] .portal-auth-top .portal-prefs{width:100%}[data-portal-root] .portal-auth-top .portal-seg{flex:1 1 auto}[data-portal-root] .portal-auth-center{padding:24px 0 8px}[data-portal-root] .portal-auth{padding:28px 20px 24px}}[data-portal-root] .portal-card{min-width:0;border:1px solid var(--portal-line);border-radius:18px;background:var(--portal-surface);box-shadow:var(--portal-shadow)}[data-portal-root] .portal-rows>li+li{border-top:1px solid var(--portal-line)}[data-portal-root] .portal-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.5;background:var(--portal-sunken);color:var(--portal-body)}[data-portal-root] .portal-chip[data-tone=ok]{background:var(--portal-ok-soft);color:var(--portal-ok)}[data-portal-root] .portal-chip[data-tone=warn]{background:var(--portal-warn-soft);color:var(--portal-warn)}[data-portal-root] .portal-chip[data-tone=bad]{background:var(--portal-bad-soft);color:var(--portal-bad)}[data-portal-root] .portal-chip[data-tone=acc]{background:var(--portal-accent-soft);color:var(--portal-accent-text)}[data-portal-root] [data-slot=button]{min-height:44px;min-width:44px}[data-portal-root] [data-slot=input]{min-height:44px}[data-portal-root] .portal-dialog-overlay{position:fixed;inset:0;z-index:100000;background:rgba(20,22,58,.35)}[data-portal-root][data-portal-theme=dark] .portal-dialog-overlay{background:rgba(0,0,0,.55)}@media (prefers-color-scheme:dark){[data-portal-root][data-portal-theme=system] .portal-dialog-overlay{background:rgba(0,0,0,.55)}}[data-portal-root] .portal-dialog{position:fixed;inset:0;z-index:100001;margin:auto;box-sizing:border-box;width:min(460px,calc(100vw - 32px));height:fit-content;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;padding:24px;border:1px solid var(--portal-line);border-radius:18px;background:var(--portal-solid);color:var(--portal-text);box-shadow:var(--portal-shadow)}[data-portal-root] .portal-dialog:focus-visible{outline:2px solid var(--portal-accent);outline-offset:2px}[data-portal-root] .portal-dialog-icon{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--portal-accent-soft);color:var(--portal-accent-text)}[data-portal-root] .portal-dialog-icon[data-tone=danger]{background:var(--portal-bad-soft);color:var(--portal-bad)}[data-portal-root] .portal-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:6px}@media (max-width:760px){[data-portal-root] .portal-dialog{padding:20px}[data-portal-root] .portal-dialog-actions{flex-direction:column-reverse}[data-portal-root] .portal-dialog-actions>*{width:100%}}[data-portal-root] form [id],[data-portal-root] form button,[data-portal-root] form input,[data-portal-root] form select,[data-portal-root] form textarea{scroll-margin-bottom:calc(var(--portal-savebar) + 2rem)}[data-portal-root] .portal-savebar [id],[data-portal-root] .portal-savebar button{scroll-margin-bottom:0}@media (max-height:560px){[data-portal-root] .portal-savebar{position:static}}