@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");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{--radius: .7rem;--background: #fbfbfa;--foreground: #16161a;--card: #ffffff;--card-foreground: #16161a;--popover: #ffffff;--popover-foreground: #16161a;--primary: #1d1d20;--primary-foreground: #fafafa;--accent-solid: #1d1d20;--secondary: #f1f1ef;--secondary-foreground: #2a2a2e;--muted: #f3f3f1;--muted-foreground: #6b6b73;--accent: #f0f0ee;--accent-foreground: #1d1d20;--destructive: #c0362c;--destructive-foreground: #ffffff;--success: #1f7a4d;--success-foreground: #ffffff;--warning: #9a6b00;--warning-foreground: #ffffff;--border: #e7e7e3;--input: #dededa;--ring: #1d1d20;--chart-1: #1d1d20;--chart-2: #45454c;--chart-3: #6b6b73;--chart-4: #9a9aa2;--chart-5: #c4c4ca;--chart-grid: #ececea;--chart-axis: #b8b8b2}.dark,[data-theme=dark]{--background: #0e0e10;--foreground: #ededf0;--card: #161618;--card-foreground: #ededf0;--popover: #161618;--popover-foreground: #ededf0;--primary: #ededf0;--primary-foreground: #0e0e10;--accent-solid: #ededf0;--secondary: #1f1f22;--secondary-foreground: #ededf0;--muted: #1b1b1e;--muted-foreground: #9a9aa2;--accent: #222226;--accent-foreground: #ededf0;--destructive: #f06a60;--destructive-foreground: #1a0c0a;--success: #4ade80;--success-foreground: #052012;--warning: #fbbf24;--warning-foreground: #2a1c00;--border: #262629;--input: #2b2b2f;--ring: #ededf0;--chart-1: #ededf0;--chart-2: #b9b9c0;--chart-3: #8a8a92;--chart-4: #5d5d65;--chart-5: #3a3a40;--chart-grid: #232327;--chart-axis: #3a3a40}[data-accent=pumpkin]{--primary: #b5631d;--primary-foreground: #fff7ef;--accent-solid: #b5631d;--ring: #b5631d}.dark[data-accent=pumpkin]{--primary: #e0894a;--primary-foreground: #1a0c00;--accent-solid: #e0894a;--ring: #e0894a}[data-accent=slate]{--primary: #3b4a63;--primary-foreground: #f5f7fb;--accent-solid: #3b4a63;--ring: #3b4a63}.dark[data-accent=slate]{--primary: #8ea3c4;--primary-foreground: #0b1018;--accent-solid: #8ea3c4;--ring: #8ea3c4}[data-chart=accent]{--chart-1: var(--accent-solid);--chart-2: color-mix(in oklab, var(--accent-solid) 55%, var(--muted-foreground));--chart-3: var(--muted-foreground);--chart-4: color-mix(in oklab, var(--muted-foreground) 55%, var(--border));--chart-5: var(--border)}[data-chart=multi]{--chart-1: #3b4a63;--chart-2: #6b8f71;--chart-3: #b5631d;--chart-4: #7a6a8a;--chart-5: #8a8a92}.dark[data-chart=multi]{--chart-1: #8ea3c4;--chart-2: #9cc0a3;--chart-3: #e0894a;--chart-4: #b6a6c6;--chart-5: #b9b9c0}:root{--font-geist-sans: "Geist Variable", ui-sans-serif, system-ui, sans-serif;--font-geist-mono: "Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace}*,*:before,*:after{box-sizing:border-box;border-color:var(--border)}body{margin:0;background-color:var(--background);color:var(--foreground);font-family:var(--font-geist-sans);background-image:radial-gradient(80rem 50rem at 50% -20rem,color-mix(in oklab,var(--foreground) 4%,transparent),transparent 70%);background-attachment:fixed}::selection{background-color:color-mix(in oklab,var(--accent-solid) 22%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background-color:var(--border);border-radius:9999px}*::-webkit-scrollbar-thumb:hover{background-color:var(--muted-foreground)}.portal-center{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.portal-spinner{width:1.75rem;height:1.75rem;border:2.5px solid var(--border);border-top-color:var(--accent-solid);border-radius:9999px;animation:portal-spin .8s linear infinite}@keyframes portal-spin{to{transform:rotate(360deg)}}.login-card{width:100%;max-width:22rem;display:flex;flex-direction:column;padding:1.75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 1px 2px #0000000d}.login-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:.875rem}.login-brand-icon,.portal-brand-icon{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:calc(var(--radius) - 2px);background:var(--primary);color:var(--primary-foreground)}.portal-brand-icon{width:2rem;height:2rem}.login-brand-name{font-weight:700;font-size:1.05rem;line-height:1.2}.login-brand-sub{font-size:.7rem;font-weight:600;letter-spacing:.14em;color:var(--muted-foreground)}.login-hint{margin:0 0 1.1rem;font-size:.85rem;line-height:1.45;color:var(--muted-foreground)}.login-label{font-size:.8rem;font-weight:600;margin-bottom:.3rem}.login-input{height:2.4rem;margin-bottom:.9rem;padding:0 .7rem;font:inherit;font-size:.9rem;color:var(--foreground);background:var(--background);border:1px solid var(--input);border-radius:calc(var(--radius) - 2px)}.login-input:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.login-error{margin-bottom:.9rem;padding:.55rem .7rem;font-size:.83rem;color:var(--destructive);background:color-mix(in oklab,var(--destructive) 9%,transparent);border:1px solid color-mix(in oklab,var(--destructive) 30%,transparent);border-radius:calc(var(--radius) - 2px)}.login-submit{height:2.5rem;font:inherit;font-size:.9rem;font-weight:600;color:var(--primary-foreground);background:var(--primary);border:none;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:opacity .12s ease}.login-submit:hover{opacity:.92}.login-submit:disabled{opacity:.6;cursor:default}.login-submit:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.portal-shell{min-height:100dvh;display:flex;flex-direction:column}.portal-topbar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;height:3.5rem;padding:0 1.25rem;background:color-mix(in oklab,var(--background) 85%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.portal-brand{display:flex;align-items:center;gap:.6rem}.portal-brand-name{font-weight:700}.portal-brand-sub{font-size:.65rem;font-weight:600;letter-spacing:.14em;color:var(--muted-foreground)}.portal-theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:auto;color:var(--muted-foreground);background:transparent;border:1px solid transparent;border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .12s ease,color .12s ease}.portal-theme-toggle:hover{color:var(--foreground);background:var(--accent)}.portal-theme-toggle:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.portal-identity{display:flex;align-items:center;gap:.6rem;min-width:0}.portal-avatar{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;font-size:.72rem;font-weight:700;background:var(--secondary);color:var(--secondary-foreground);border:1px solid var(--border)}.portal-identity-text{display:flex;flex-direction:column;min-width:0}.portal-identity-name{font-size:.85rem;font-weight:600;line-height:1.2}.portal-identity-role{font-size:.72rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-main{flex:1;width:100%;max-width:44rem;margin:0 auto;padding:2.5rem 1.25rem 2rem}.portal-title{margin:0 0 .35rem;font-size:1.45rem;font-weight:700;letter-spacing:-.01em}.portal-subtitle{margin:0 0 1.75rem;font-size:.9rem;color:var(--muted-foreground)}.portal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:.875rem}.portal-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:1.1rem 1.1rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease}.portal-tile:hover{border-color:var(--accent-solid);transform:translateY(-1px);box-shadow:0 4px 16px #00000012}.portal-tile:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.portal-tile-icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-bottom:.6rem;border-radius:calc(var(--radius) - 2px);background:var(--secondary);color:var(--foreground)}.portal-tile-name{font-size:.95rem;font-weight:650}.portal-tile-tagline{font-size:.78rem;color:var(--muted-foreground)}.portal-actions{display:flex;gap:.6rem;margin-top:2.25rem}.portal-btn{padding:.5rem .9rem;font:inherit;font-size:.83rem;font-weight:600;color:var(--foreground);background:var(--card);border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);cursor:pointer;transition:background-color .12s ease}.portal-btn:hover{background:var(--accent)}.portal-btn:disabled{opacity:.6;cursor:default}.portal-btn-danger{color:var(--destructive);border-color:color-mix(in oklab,var(--destructive) 35%,var(--border))}.portal-btn-danger:hover{background:color-mix(in oklab,var(--destructive) 8%,transparent)}.portal-btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.portal-footer{padding:1rem 1.25rem;font-size:.72rem;color:var(--muted-foreground);text-align:center;border-top:1px solid var(--border)}
