@font-face{font-family:SUIT;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/SUIT/SUIT-Regular.woff2)format("woff2")}@font-face{font-family:SUIT;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/SUIT/SUIT-Medium.woff2)format("woff2")}@font-face{font-family:SUIT;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/SUIT/SUIT-SemiBold.woff2)format("woff2")}@font-face{font-family:SUIT;font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/SUIT/SUIT-Bold.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/JetBrainsMono/JetBrainsMono-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/JetBrainsMono/JetBrainsMono-latin-500.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/JetBrainsMono/JetBrainsMono-latin-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--c-brand:#0052ff;--c-brand-hover:#0046db;--c-brand-active:#0039b3;--c-brand-disabled:#b4c4e5;--c-brand-soft:#e6eeff;--c-brand-ink:#001a52;--c-canvas:#fff;--c-surface-soft:#f7f8fa;--c-surface-strong:#eef1f5;--c-surface-sunken:#e5e9f0;--c-surface-dark:#0b1020;--c-surface-dark-elevated:#161c2e;--c-hairline:#dfe3ea;--c-hairline-soft:#eceff3;--c-hairline-strong:#c8cfd9;--c-ink:#0b1020;--c-body:#41495a;--c-muted:#6c7585;--c-soft:#9099a8;--c-on-primary:#fff;--c-on-dark:#fff;--c-on-dark-muted:#a6b0c2;--c-success:#06a66b;--c-success-soft:#e3f6ee;--c-warning:#c77700;--c-warning-soft:#fcf1dc;--c-danger:#d42842;--c-danger-soft:#fbe5e8;--c-info:#0052ff;--c-info-soft:#e6eeff;--c-neutral:#6c7585;--c-neutral-soft:#eef1f5;--c-chart-1:#0052ff;--c-chart-2:#0ea5a6;--c-chart-3:#7c5af0;--c-chart-4:#f08a1c;--c-chart-5:#16a34a;--c-chart-6:#d946a4;--c-chart-7:#475a77;--c-chart-8:#eab308;--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:9999px;--s-elevated:0 6px 24px -8px #0b10201f, 0 2px 6px -2px #0b10200f;--s-focus:0 0 0 3px #0052ff38;--f-sans:"SUIT", -apple-system, "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", Roboto, sans-serif;--f-mono:"JetBrains Mono", "SUIT", ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--f-sans);color:var(--c-body);background:var(--c-canvas);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55}.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.ds-topbar{z-index:60;background:var(--c-canvas);border-bottom:1px solid var(--c-hairline);position:sticky;top:0;padding:0 24px 0 0!important}.ds-shell{height:calc(100vh - 56px);display:flex}.ds-sidebar{border-right:1px solid var(--c-hairline);background:var(--c-surface-soft);border-radius:0;flex-direction:column;flex-shrink:0;align-self:flex-start;width:240px;height:calc(100vh - 56px);padding:12px 8px 32px;position:sticky;top:56px;overflow:hidden auto;display:flex!important}.sb-group{flex-direction:column;width:100%;margin-bottom:2px;display:flex}.ds-sidebar .sb-section,.sb-toggle{cursor:pointer;width:100%;font-family:var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);border-radius:var(--r-sm);box-sizing:border-box;background:0 0;border:none;align-items:center;gap:6px;padding:14px 8px 6px;font-size:11px;font-weight:600;transition:color .12s;display:flex!important}.sb-toggle:hover{color:var(--c-body)}.sb-chevron{opacity:.6;flex-shrink:0;margin-left:auto;transition:transform .22s;width:13px!important;height:13px!important}.sb-group.is-closed .sb-chevron{transform:rotate(-90deg)}.sb-group-items{grid-template-rows:1fr;transition:grid-template-rows .22s;display:grid;overflow:hidden}.sb-group.is-closed .sb-group-items{grid-template-rows:0fr}.sb-group-items>div{min-height:0;overflow:hidden}.ds-sidebar .nav-item{padding:7px 10px 7px 14px;font-size:13px}.ds-sidebar::-webkit-scrollbar{width:4px}.ds-sidebar::-webkit-scrollbar-track{background:0 0}.ds-sidebar::-webkit-scrollbar-thumb{background:var(--c-hairline-strong);border-radius:4px}.ds-sidebar::-webkit-scrollbar-thumb:hover{background:var(--c-muted)}.ds-content{flex:1;height:calc(100vh - 56px);overflow-y:auto}.ds-topbar-brand{border-right:1px solid var(--c-hairline);flex-shrink:0;align-items:center;gap:10px;width:240px;height:100%;padding:0 20px 0 24px;display:flex}.ds-hamburger{border-radius:var(--r-md);cursor:pointer;width:36px;height:36px;color:var(--c-body);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,color .12s;display:none!important}.ds-hamburger:hover{background:var(--c-surface-strong);color:var(--c-ink)}.ds-hamburger:active{background:var(--c-brand-soft);color:var(--c-brand)}.ds-backdrop{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000040;display:none;position:fixed;inset:0}.ds-backdrop.is-open{display:block}.page{max-width:960px;margin:0 auto;padding:0 48px}@media (width<=1023px){.ds-sidebar{z-index:50;height:calc(100vh - 57px);box-shadow:var(--s-elevated);padding-top:4px;transition:transform .26s cubic-bezier(.4,0,.2,1);top:57px;left:0;transform:translate(-100%);width:260px!important;position:fixed!important}.ds-sidebar.is-open{transform:translate(0)}.ds-hamburger{outline:none;border:none!important;display:inline-flex!important}.ds-topbar-brand{border-right:none;width:auto;padding:0 0 0 16px}}@media (width<=767px){.ds-topbar-search,.theme-toggle .toggle-label-light,.theme-toggle .toggle-label-dark{display:none}.theme-toggle{padding:0 10px}.page{padding:0 20px}.cover{padding:48px 0 36px}.cover h1{font-size:36px}.cover-lead{font-size:15px}.cover-meta{gap:24px}section.spec{padding:56px 0}.sec-title{font-size:28px}.subsec-title{margin-top:40px;font-size:18px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}#radius .grid-4{grid-template-columns:repeat(2,1fr)}table.tokens{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}table.tokens td,table.tokens th{white-space:nowrap}table.tokens th[style]{min-width:100px;width:auto!important}.form-state-grid{grid-template-columns:repeat(2,1fr)!important;gap:24px 16px!important}.option-card-grid{grid-template-columns:1fr!important}.pagination .page-btn:not(.is-nav):not(.is-active),.page-ellipsis{display:none}.demo[style*=max-width\:320px] .page-btn{display:inline-flex}}.cover{border-bottom:1px solid var(--c-hairline);padding:96px 0 64px}.cover-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin-bottom:24px;font-size:11px;font-weight:600}.cover h1{letter-spacing:-.02em;color:var(--c-ink);max-width:880px;margin:0 0 24px;font-size:56px;font-weight:600;line-height:1.08}.cover-lead{color:var(--c-body);max-width:720px;margin:0 0 48px;font-size:18px;line-height:1.6}.cover-meta{border-top:1px solid var(--c-hairline-soft);flex-wrap:wrap;gap:48px;padding-top:32px;display:flex}.cover-meta dt{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin-bottom:6px;font-size:11px;font-weight:600}.cover-meta dd{color:var(--c-ink);margin:0;font-size:14px;font-weight:500}section.spec{border-bottom:1px solid var(--c-hairline-soft);padding:96px 0}section.spec:last-of-type{border-bottom:none}.sec-head{max-width:720px;margin-bottom:48px}.sec-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--c-brand);margin-bottom:16px;font-size:11px;font-weight:600}.sec-title{letter-spacing:-.016em;color:var(--c-ink);margin:0 0 16px;font-size:36px;font-weight:600;line-height:1.18}.sec-lead{color:var(--c-body);margin:0;font-size:16px;line-height:1.6}.subsec-title{letter-spacing:-.008em;color:var(--c-ink);margin:64px 0 24px;font-size:22px;font-weight:600;line-height:1.3}.subsec-title:first-child{margin-top:0}table.tokens{border-collapse:collapse;width:100%;margin:24px 0;font-size:13px}table.tokens th,table.tokens td{text-align:left;border-bottom:1px solid var(--c-hairline-soft);vertical-align:middle;padding:14px 16px}table.tokens th{letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);border-bottom:1px solid var(--c-hairline);font-size:11px;font-weight:600}table.tokens td.tok{font-family:var(--f-mono);color:var(--c-ink);font-size:12px}table.tokens td.val{font-family:var(--f-mono);color:var(--c-body);font-size:12px}.grid-2{grid-template-columns:1fr 1fr;gap:24px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.demo{border:1px solid var(--c-hairline);border-radius:var(--r-lg);background:var(--c-canvas);padding:40px 32px}.demo.soft{background:var(--c-surface-soft)}.demo.dark{background:var(--c-surface-dark);color:var(--c-on-dark);border:none}.demo-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.demo-stack{flex-direction:column;gap:16px;display:flex}.demo-label{letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);margin-bottom:12px;font-size:11px;font-weight:600}.demo.dark .demo-label{color:var(--c-on-dark-muted)}.demo-caption{color:var(--c-muted);font-size:13px;font-family:var(--f-mono);margin-top:16px}.divider{background:var(--c-hairline-soft);border:0;height:1px;margin:48px 0}.type-row{border-bottom:1px solid var(--c-hairline-soft);grid-template-columns:220px 1fr;align-items:baseline;gap:32px;padding:20px 0;display:grid}.type-row:last-child{border-bottom:none}.type-meta{font-family:var(--f-mono);color:var(--c-muted);font-size:12px;line-height:1.5}.type-meta strong{color:var(--c-ink);font-family:var(--f-mono);margin-bottom:4px;font-weight:600;display:block}.type-sample{color:var(--c-ink)}.space-row{border-bottom:1px solid var(--c-hairline-soft);grid-template-columns:80px 80px 1fr;align-items:center;gap:24px;padding:12px 0;display:grid}.space-row:last-child{border-bottom:none}.space-tok{font-family:var(--f-mono);color:var(--c-ink);font-size:12px}.space-val{font-family:var(--f-mono);color:var(--c-muted);font-size:12px}.space-bar{background:var(--c-brand-soft);border-radius:2px;height:12px}.radius-card{border:1px solid var(--c-hairline-soft);border-radius:var(--r-lg);flex-direction:column;align-items:center;gap:12px;padding:24px;display:flex}.radius-sample{background:var(--c-brand-soft);border:1px solid var(--c-brand);width:80px;height:80px}.shadow-card{background:var(--c-canvas);border:1px solid var(--c-hairline);border-radius:var(--r-lg);text-align:center;padding:28px}.shadow-sample{background:var(--c-canvas);border-radius:var(--r-lg);width:100%;height:96px;margin-bottom:16px}.ico{display:inline-block}footer.foot{color:var(--c-muted);text-align:center;padding:48px 0 80px;font-size:12px}@media (width<=1024px){.page{padding:0 24px}.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.cover h1{font-size:44px}.sec-title{font-size:30px}section.spec{padding:72px 0}.cover{padding:72px 0 56px}.subsec-title{margin-top:48px}}@media (width<=768px){.page{padding:0 20px}.cover{padding:48px 0 32px}.cover h1{font-size:32px;line-height:1.12}.cover-lead{font-size:16px}.cover-meta{gap:20px 32px;padding-top:24px}section.spec{padding:56px 0}.sec-head{margin-bottom:32px}.sec-title{font-size:24px}.sec-lead{font-size:15px}.subsec-title{margin-top:40px;margin-bottom:16px;font-size:17px}.grid-2,.grid-3,.grid-4,.rules,.sw-grid{grid-template-columns:1fr}.sw-grid{grid-template-columns:repeat(2,1fr)}.type-row{grid-template-columns:1fr;gap:8px;padding:16px 0}.space-row{grid-template-columns:60px 60px 1fr;gap:12px}.toc-inner{gap:4px;height:52px;padding:0 20px}.toc-brand{margin-right:4px;padding-right:12px}.toc-brand-text{display:none}.toc-brand-short{display:inline}.toc-trigger{padding:0 8px;font-size:12px}.toc-menu{scrollbar-width:none;gap:0;overflow-x:auto}.toc-menu::-webkit-scrollbar{display:none}.theme-toggle{flex-shrink:0;padding:0 10px}.theme-toggle .toggle-label-light,.theme-toggle .toggle-label-dark{display:none!important}.app-shell{grid-template-columns:1fr;min-height:auto}.sidebar{border-right:none;border-bottom:1px solid var(--c-hairline);gap:6px;padding:16px;display:flex;overflow-x:auto}.sb-brand,.sb-section{display:none}.sidebar .nav-item{white-space:nowrap;flex-shrink:0}.sidebar .nav-count{display:none}.topbar{gap:8px;height:52px;padding:0 16px}.topbar .search-pill,.topbar-right .btn{display:none}.app-body{padding:20px}.table-wrap{overflow-x:auto}.modal-backdrop{min-height:auto;padding:32px 16px}.modal{width:100%;padding:24px}.drawer-frame{min-height:auto;padding:16px}.drawer{width:100%;padding:22px}.toast{width:100%;max-width:380px}.demo{padding:28px 20px}.demo-row{gap:12px}.kpi-value{font-size:24px}.theme-toggle{padding:0 10px}.cover-meta{flex-direction:column;gap:16px}.chart-bars{height:100px}.float-grid,.float-grid-3{grid-template-columns:1fr;gap:20px}.float-grid .span-2{grid-column:span 1}.empty-state{padding:48px 24px}.pagination{gap:2px}.page-btn{min-width:32px;height:32px;font-size:12px}.page-ellipsis{width:32px;height:32px}.tabs .tab-item{padding:0 12px;font-size:13px}}@media (width<=480px){.cover h1{font-size:28px}.sec-title{font-size:22px}.sw-grid{grid-template-columns:1fr 1fr;gap:8px}}[data-theme=dark]{--c-canvas:#0a0d14;--c-surface-soft:#11151f;--c-surface-strong:#181d2a;--c-surface-sunken:#060810;--c-hairline:#232938;--c-hairline-soft:#1a1f2c;--c-hairline-strong:#323a4d;--c-ink:#f4f5f8;--c-body:#bcc3d0;--c-muted:#8089a0;--c-soft:#5d667a;--c-brand:#5c92ff;--c-brand-hover:#7da9ff;--c-brand-active:#9dbeff;--c-brand-disabled:#2d3445;--c-brand-soft:#5c92ff29;--c-brand-ink:#baceff;--c-success:#2fbf87;--c-success-soft:#2fbf8729;--c-warning:#e89a2d;--c-warning-soft:#e89a2d2e;--c-danger:#f5586d;--c-danger-soft:#f5586d2e;--c-info:#5c92ff;--c-info-soft:#5c92ff29;--c-neutral:#bcc3d0;--c-neutral-soft:#bcc3d01a;--s-elevated:0 8px 28px -8px #000000b3, 0 2px 8px -2px #0006;--s-focus:0 0 0 3px #5c92ff52;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] body{background:var(--c-canvas);color:var(--c-body)}[data-theme=dark] .ds-topbar{background:var(--c-canvas);border-bottom-color:var(--c-hairline)}[data-theme=dark] .ds-sidebar{background:var(--c-surface-soft);border-right-color:var(--c-hairline)}[data-theme=dark] .ds-backdrop{background:#00000080}[data-theme=dark] .check input{background:var(--c-surface-strong);border-color:var(--c-hairline-strong)}[data-theme=dark] .check input:checked{background:var(--c-brand);border-color:var(--c-brand)}[data-theme=dark] .radio input:checked{background:var(--c-canvas)}[data-theme=dark] .shadow-sample{background:var(--c-surface-strong)}[data-theme=dark] .shadow-card{border-color:var(--c-hairline);background:var(--c-canvas)!important}[data-theme=dark] .data-table thead th{background:var(--c-surface-soft)}[data-theme=dark] .avatar{background:var(--c-surface-strong);color:var(--c-ink)}[data-theme=dark] .avatar-blue,[data-theme=dark] .nav-item.is-active{background:var(--c-brand-soft);color:var(--c-brand)}[data-theme=dark] .data-table tbody tr:hover{background:var(--c-surface-soft)}[data-theme=dark] .search-pill{border-color:var(--c-hairline)}[data-theme=dark] .toggle input{background:var(--c-surface-strong)}[data-theme=dark] .toggle:has(input:checked) input{background:var(--c-brand)}[data-theme=dark] .ds-sidebar::-webkit-scrollbar-thumb{background:var(--c-hairline-strong)}[data-theme=dark] #brand .demo:not(.dark){background:#fff;border-color:#dfe3ea}[data-theme=dark] #brand .card{background:var(--c-surface-soft)}[data-theme=dark] .sw-card{border-color:var(--c-hairline)}[data-theme=dark] .swatch{box-shadow:inset 0 0 0 1px #ffffff14}[data-theme=dark] .modal,[data-theme=dark] .drawer,[data-theme=dark] .toast{border:1px solid var(--c-hairline)}[data-theme=dark] .topbar-icon-btn:hover{background:var(--c-surface-soft)}[data-theme=dark] .option-card:has(input:checked) .option-card-title{color:var(--c-ink)}[data-theme=dark] .seg-indicator{background:var(--c-surface-strong);box-shadow:0 1px 2px #0006, 0 0 0 1px var(--c-hairline)}.app-shell{border:1px solid var(--c-hairline);border-radius:var(--r-lg);background:var(--c-canvas);grid-template-columns:240px 1fr;min-height:480px;display:grid;overflow:hidden}.sidebar{background:var(--c-surface-soft);border-right:1px solid var(--c-hairline);padding:20px 12px}.sb-brand{align-items:center;gap:10px;padding:6px 12px 24px;display:flex}.sb-logo{background-image:url(/assets/logo-mark.png);background-position:50%;background-repeat:no-repeat;background-size:contain;flex-shrink:0;width:24px;height:24px}.sb-logo.on-dark{background-image:url(/assets/logo-mark-white.png)}.sb-name{color:var(--c-ink);letter-spacing:-.01em;font-size:15px;font-weight:700}.sb-section{letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);padding:16px 12px 8px;font-size:11px;font-weight:600}.nav-item{border-radius:var(--r-md);color:var(--c-body);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--c-surface-strong);color:var(--c-ink)}.nav-item.is-active{background:var(--c-brand-soft);color:var(--c-brand);font-weight:600}.nav-item .ico{opacity:.9;width:16px;height:16px}.nav-count{font-family:var(--f-mono);color:var(--c-muted);margin-left:auto;font-size:12px}.nav-item.is-active .nav-count{color:var(--c-brand)}.topbar{border-bottom:1px solid var(--c-hairline);background:var(--c-canvas);align-items:center;gap:16px;height:56px;padding:0 24px;display:flex}.crumb{color:var(--c-muted);font-size:13px}.crumb .here{color:var(--c-ink);font-weight:600}.search-pill{background:var(--c-surface-soft);border:1px solid var(--c-hairline);border-radius:var(--r-md);align-items:center;gap:8px;width:280px;height:36px;padding:0 14px;display:flex}.search-pill input{color:var(--c-ink);font-size:13px;font-family:var(--f-sans);background:0 0;border:none;outline:none;flex:1}.topbar-right{align-items:center;gap:12px;margin-left:auto;display:flex}.topbar-icon-btn{border-radius:var(--r-md);cursor:pointer;width:36px;height:36px;color:var(--c-body);justify-content:center;align-items:center;display:inline-flex;position:relative}.topbar-icon-btn:hover{background:var(--c-surface-soft)}.topbar-icon-btn .dot{background:var(--c-brand);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:8px}.app-body{padding:32px}.tabs{border-bottom:1px solid var(--c-hairline);scrollbar-width:none;gap:0;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab-item{height:44px;color:var(--c-muted);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--f-sans);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:7px;margin-bottom:-1px;padding:0 16px;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.tab-item:hover{color:var(--c-ink)}.tab-item.is-active{color:var(--c-brand);border-bottom-color:var(--c-brand);font-weight:600}.tab-item:focus-visible{box-shadow:var(--s-focus);border-radius:var(--r-sm) var(--r-sm) 0 0;outline:none}.tab-count{font-family:var(--f-mono);background:var(--c-surface-strong);color:var(--c-muted);border-radius:var(--r-full);padding:1px 6px;font-size:11px;font-weight:600;line-height:1.6}.tab-item.is-active .tab-count{background:var(--c-brand-soft);color:var(--c-brand)}.tab-panel{padding:24px 0}.tab-panel:not(.is-active){display:none}.tabs-pill{border-bottom:none;flex-wrap:wrap;gap:4px}.tabs-pill .tab-item{border-radius:var(--r-md);border-bottom:none;height:36px;margin-bottom:0;padding:0 14px}.tabs-pill .tab-item.is-active{background:var(--c-brand-soft);color:var(--c-brand)}.tabs-pill .tab-item:hover:not(.is-active){background:var(--c-surface-soft);color:var(--c-ink)}.btn{border-radius:var(--r-md);height:40px;font-family:var(--f-sans);cursor:pointer;white-space:nowrap;border:1px solid #0000;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;line-height:1;text-decoration:none;transition:background .12s,color .12s,border-color .12s,box-shadow .12s;display:inline-flex}.btn:focus-visible{box-shadow:var(--s-focus);outline:none}.btn-primary{background:var(--c-brand);color:var(--c-on-primary)}.btn-primary:hover{background:var(--c-brand-hover)}.btn-primary:active{background:var(--c-brand-active)}.btn-primary.is-disabled{background:var(--c-brand-disabled);cursor:not-allowed}.btn-secondary{background:var(--c-surface-strong);color:var(--c-ink)}.btn-secondary:hover{background:var(--c-surface-sunken)}.btn-outline{color:var(--c-ink);border-color:var(--c-hairline-strong);background:0 0}.btn-outline:hover{border-color:var(--c-ink)}.btn-ghost{color:var(--c-ink);background:0 0}.btn-ghost:hover{background:var(--c-surface-soft)}.btn-danger{color:var(--c-danger);border-color:var(--c-danger);background:0 0}.btn-danger:hover{background:var(--c-danger-soft)}.btn-link{color:var(--c-brand);background:0 0;height:auto;padding:0}.btn-link:hover{color:var(--c-brand-hover);text-decoration:underline}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;padding:0 20px;font-size:15px}.btn .ico{width:14px;height:14px}.float-field{flex-direction:column;gap:6px;width:100%;display:flex}.float-inner{padding-top:18px;display:block;position:relative}.float-control{border:none;border-bottom:1px solid var(--c-hairline-strong);width:100%;height:36px;color:var(--c-ink);font-family:var(--f-sans);background:0 0;border-radius:0;outline:none;padding:6px 0 8px;font-size:15px;line-height:1.4;transition:border-color .18s,padding-bottom .18s}.float-control:focus{border-bottom-color:var(--c-brand);border-bottom-width:2px;padding-bottom:7px}.float-label{color:var(--c-muted);pointer-events:none;transform-origin:0 0;font-size:15px;font-weight:400;transition:transform .18s,color .18s,font-weight .18s;position:absolute;top:24px;left:0}.float-control:focus+.float-label,.float-control:not(:placeholder-shown)+.float-label,.float-field--select.is-filled .float-label,.float-field--select select:focus+.float-label{color:var(--c-muted);font-weight:600;transform:translateY(-22px)scale(.78)}.float-control:focus+.float-label,.float-field--select select:focus+.float-label{color:var(--c-brand)}.float-suffix{color:var(--c-muted);align-items:center;display:inline-flex;position:absolute;bottom:9px;right:0}.float-suffix.is-success{color:var(--c-success)}.float-hint{color:var(--c-muted);padding-left:0;font-size:12px}.float-field.is-error .float-control{border-bottom-color:var(--c-danger)}.float-field.is-error .float-control:focus{border-bottom-color:var(--c-danger);box-shadow:none}.float-field.is-error .float-control+.float-label{color:var(--c-danger)!important}.float-field.is-error .float-hint{color:var(--c-danger)}.float-field.is-disabled .float-control{color:var(--c-soft);cursor:not-allowed;border-bottom-style:dashed}.float-field.is-disabled .float-label{color:var(--c-soft)}textarea.float-control{resize:vertical;height:auto;min-height:80px;padding-top:6px}select.float-control{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--c-muted) 50%), linear-gradient(135deg, var(--c-muted) 50%, transparent 50%);background-position:calc(100% - 8px) calc(50% + 1px),calc(100% - 3px) calc(50% + 1px);background-repeat:no-repeat;background-size:5px 5px;padding-right:24px}select.float-control:focus{background-image:linear-gradient(45deg, transparent 50%, var(--c-brand) 50%), linear-gradient(135deg, var(--c-brand) 50%, transparent 50%)}.float-grid{grid-template-columns:1fr 1fr;gap:24px 32px;display:grid}.float-grid-3{grid-template-columns:1fr 1fr 1fr}.float-grid .span-2{grid-column:span 2}.check{cursor:pointer;color:var(--c-ink);-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:14px;display:inline-flex}.check input[type=checkbox],.check input[type=radio]{appearance:none;border:1.5px solid var(--c-hairline-strong);background:var(--c-canvas);cursor:pointer;border-radius:5px;flex-shrink:0;width:18px;height:18px;margin:0;transition:background .16s,border-color .16s,box-shadow .16s;position:relative}.check input[type=radio]{border-radius:50%}.check:hover input:not(:disabled){border-color:var(--c-brand);box-shadow:0 0 0 4px var(--c-brand-soft)}.check input:checked{background:var(--c-brand);border-color:var(--c-brand)}.check input[type=checkbox]:checked:after{content:"";background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");background-position:50%;background-repeat:no-repeat;background-size:14px 14px;animation:.18s cubic-bezier(.34,1.2,.64,1) forwards check-pop;position:absolute;inset:0;transform:scale(0)}.check input[type=checkbox]:indeterminate{background:var(--c-brand);border-color:var(--c-brand)}.check input[type=checkbox]:indeterminate:after{content:"";background:#fff;border-radius:1px;height:2px;position:absolute;top:7px;left:3px;right:3px}.check input[type=radio]:checked:after{content:"";background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");background-position:50%;background-repeat:no-repeat;background-size:14px 14px;animation:.18s cubic-bezier(.34,1.2,.64,1) forwards dot-pop;position:absolute;inset:0;transform:scale(0)}.check input:focus-visible{box-shadow:var(--s-focus);outline:none}.check input:disabled{cursor:not-allowed;opacity:.5}.check input:disabled+*{color:var(--c-soft)}@keyframes check-pop{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes dot-pop{0%{transform:scale(0)}60%{transform:scale(1.15)}to{transform:scale(1)}}.toggle{cursor:pointer;flex-shrink:0;width:44px;height:24px;display:inline-block;position:relative}.toggle input{appearance:none;border-radius:var(--r-full);background:var(--c-surface-sunken);cursor:pointer;width:100%;height:100%;margin:0;transition:background .2s,box-shadow .16s;position:absolute;inset:0}.toggle:after{content:"";pointer-events:none;background:#fff;border-radius:50%;width:20px;height:20px;transition:left .24s cubic-bezier(.34,1.2,.64,1),width .24s cubic-bezier(.34,1.2,.64,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000002e,0 1px 2px #0000001a}.toggle:has(input:checked) input{background:var(--c-brand)}.toggle:has(input:checked):after{left:22px}.toggle:active:after{width:24px}.toggle:active:has(input:checked):after{width:24px;left:18px}.toggle:hover input:not(:disabled){box-shadow:0 0 0 4px var(--c-brand-soft)}.toggle input:focus-visible{box-shadow:var(--s-focus);outline:none}.toggle:has(input:disabled){opacity:.5;cursor:not-allowed}.toggle-sm{width:36px;height:20px}.toggle-sm:after{width:16px;height:16px}.toggle-sm:has(input:checked):after{left:18px}.toggle-sm:active:has(input:checked):after{left:14px}.toggle-lg{width:52px;height:28px}.toggle-lg:after{width:24px;height:24px}.toggle-lg:has(input:checked):after{left:26px}.toggle-lg:active:has(input:checked):after{left:22px}.option-card{border:1px solid var(--c-hairline);border-radius:var(--r-lg);cursor:pointer;background:var(--c-canvas);-webkit-user-select:none;user-select:none;align-items:flex-start;gap:12px;padding:16px 18px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex;position:relative}.option-card:hover{border-color:var(--c-hairline-strong)}.option-card:has(input:checked){border-color:var(--c-brand);background:var(--c-brand-soft);box-shadow:inset 0 0 0 1px var(--c-brand)}.option-card:has(input:checked) .option-card-title{color:var(--c-brand-ink)}.option-card input[type=radio],.option-card input[type=checkbox]{appearance:none;border:1.5px solid var(--c-hairline-strong);background:var(--c-canvas);cursor:pointer;flex-shrink:0;width:18px;height:18px;margin:2px 0 0;transition:background .16s,border-color .16s,box-shadow .16s;position:relative}.option-card input[type=radio]{border-radius:50%}.option-card input[type=checkbox]{border-radius:5px}.option-card:hover input:not(:disabled){border-color:var(--c-brand);box-shadow:0 0 0 4px var(--c-brand-soft)}.option-card input:checked{background:var(--c-brand);border-color:var(--c-brand)}.option-card input[type=radio]:checked:after{content:"";background:#fff;border-radius:50%;animation:.18s cubic-bezier(.34,1.2,.64,1) forwards dot-pop;position:absolute;inset:4px;transform:scale(0)}.option-card input[type=checkbox]:checked:after{content:"";background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");background-position:50%;background-repeat:no-repeat;background-size:14px 14px;animation:.18s cubic-bezier(.34,1.2,.64,1) forwards check-pop;position:absolute;inset:0;transform:scale(0)}.option-card input:focus-visible{box-shadow:var(--s-focus);outline:none}.option-card-body{flex:1;min-width:0}.option-card-title{color:var(--c-ink);font-size:14px;font-weight:600;line-height:1.4}.option-card-desc{color:var(--c-muted);margin-top:4px;font-size:13px;line-height:1.5}.seg{background:var(--c-surface-soft);border-radius:var(--r-md);border:1px solid var(--c-hairline);padding:3px;display:inline-flex;position:relative}.seg-indicator{background:var(--c-canvas);width:0;box-shadow:0 1px 2px #0b102014, 0 0 0 1px var(--c-hairline);pointer-events:none;z-index:0;border-radius:5px;position:absolute;top:3px;bottom:3px;left:0}.seg.is-ready .seg-indicator{transition:transform .32s cubic-bezier(.34,1.18,.64,1),width .32s cubic-bezier(.34,1.18,.64,1)}.seg-item{z-index:1;height:30px;color:var(--c-body);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--f-sans);white-space:nowrap;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;gap:6px;padding:0 14px;transition:color .2s;display:inline-flex;position:relative}.seg-item:hover{color:var(--c-ink)}.seg-item.is-active{color:var(--c-ink);font-weight:600}.seg-sm{padding:2px}.seg-sm .seg-indicator{top:2px;bottom:2px}.seg-sm .seg-item{height:26px;padding:0 11px;font-size:12px}.seg-lg .seg-item{height:38px;padding:0 18px;font-size:14px}.card{border:1px solid var(--c-hairline);border-radius:var(--r-lg);background:var(--c-canvas);padding:24px}.card-title{color:var(--c-ink);margin:0 0 6px;font-size:16px;font-weight:600}.card-sub{color:var(--c-muted);margin:0;font-size:13px}.kpi-label{letter-spacing:.04em;text-transform:uppercase;color:var(--c-muted);margin-bottom:8px;font-size:12px;font-weight:600}.kpi-value{font-family:var(--f-mono);letter-spacing:-.01em;color:var(--c-ink);font-size:32px;font-weight:500;line-height:1.1}.kpi-delta{font-family:var(--f-mono);align-items:center;gap:4px;margin-top:12px;font-size:13px;font-weight:500;display:inline-flex}.kpi-delta.up{color:var(--c-success)}.kpi-delta.down{color:var(--c-danger)}.data-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--c-hairline);border-radius:var(--r-md);background:var(--c-canvas);width:100%;overflow-x:auto}.data-table{border-collapse:separate;border-spacing:0;background:var(--c-canvas);width:100%;font-size:14px}.data-table thead th{z-index:1;text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);border-bottom:1px solid var(--c-hairline);background:var(--c-surface-soft);white-space:nowrap;padding:12px 16px;font-size:11px;font-weight:600;position:sticky;top:0}.data-table tbody td{border-bottom:1px solid var(--c-hairline-soft);color:var(--c-body);vertical-align:middle;white-space:nowrap;padding:14px 16px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:var(--c-surface-soft)}.data-table th.col-sticky,.data-table td.col-sticky{background:var(--c-canvas);z-index:1;position:sticky;left:0;box-shadow:2px 0 4px -2px #0b102014}.data-table thead th.col-sticky{background:var(--c-surface-soft);z-index:2}.data-table tbody tr:hover td.col-sticky{background:var(--c-surface-soft)}.data-table .pri{color:var(--c-ink);font-weight:600}.data-table .num-cell{font-family:var(--f-mono);color:var(--c-ink)}.data-table th.num-right,.data-table td.num-right{text-align:right}.data-table .empty-value{color:var(--c-soft);font-style:italic}.data-table .chip{white-space:nowrap}.data-table .empty-state-row td{text-align:center;color:var(--c-muted);cursor:default;white-space:normal;padding:48px 16px}.data-table .empty-state-row:hover td{background:var(--c-canvas)}.table-wrap{border:1px solid var(--c-hairline);border-radius:var(--r-lg);overflow:hidden}.avatar{background:var(--c-surface-strong);width:28px;height:28px;color:var(--c-ink);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.avatar-blue{background:var(--c-brand-soft);color:var(--c-brand)}.avatar-stack{display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--c-canvas);margin-left:-8px}.avatar-stack .avatar:first-child{margin-left:0}@media (width<=768px){.data-table{font-size:13px}.data-table thead th,.data-table tbody td{padding:10px 12px}}.badge{border-radius:var(--r-full);align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.badge:before{content:"";border-radius:50%;width:6px;height:6px}.badge-success{color:var(--c-success);background:var(--c-success-soft)}.badge-success:before{background:var(--c-success)}.badge-warning{color:var(--c-warning);background:var(--c-warning-soft)}.badge-warning:before{background:var(--c-warning)}.badge-danger{color:var(--c-danger);background:var(--c-danger-soft)}.badge-danger:before{background:var(--c-danger)}.badge-info{color:var(--c-info);background:var(--c-info-soft)}.badge-info:before{background:var(--c-info)}.badge-neutral{color:var(--c-neutral);background:var(--c-neutral-soft)}.badge-neutral:before{background:var(--c-neutral)}.tag{border-radius:var(--r-sm);background:var(--c-surface-strong);color:var(--c-body);align-items:center;padding:3px 8px;font-size:12px;font-weight:500;display:inline-flex}.swatch{border-radius:var(--r-sm);vertical-align:middle;width:28px;height:28px;margin-right:12px;display:inline-block;box-shadow:inset 0 0 0 1px #0b10200f}.sw-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.sw-card{border:1px solid var(--c-hairline-soft);border-radius:var(--r-md);overflow:hidden}.sw-block{height:88px}.sw-meta{padding:12px}.sw-name{color:var(--c-ink);font-size:13px;font-weight:600}.sw-val{font-family:var(--f-mono);color:var(--c-muted);margin-top:2px;font-size:11px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg, var(--c-surface-soft) 25%, var(--c-surface-strong) 50%, var(--c-surface-soft) 75%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-card{background:var(--c-bg);border:1px solid var(--c-hairline-soft);border-radius:var(--r-md);flex-direction:column;gap:10px;padding:20px;display:flex}.skeleton-row{border-bottom:1px solid var(--c-hairline-soft);align-items:center;gap:12px;padding:12px 0;display:flex}.skeleton-row:last-child{border-bottom:none}.alert{border-radius:var(--r-lg);border:1px solid;gap:12px;padding:14px 16px;font-size:14px;line-height:1.5;display:flex}.alert-icon{flex-shrink:0;margin-top:1px;display:inline-flex}.alert-body{flex:1;min-width:0}.alert-title{color:var(--c-ink);margin:0 0 3px;font-size:14px;font-weight:600}.alert-msg{color:var(--c-body);margin:0;font-size:13px;line-height:1.55}.alert-close{cursor:pointer;color:var(--c-muted);background:0 0;border:none;flex-shrink:0;align-self:flex-start;align-items:center;padding:0;transition:color .12s;display:inline-flex}.alert-close:hover{color:var(--c-ink)}.alert-info{background:var(--c-info-soft);border-color:#0052ff2e}.alert-success{background:var(--c-success-soft);border-color:#06a66b33}.alert-warning{background:var(--c-warning-soft);border-color:#c7770033}.alert-danger{background:var(--c-danger-soft);border-color:#d4284233}.alert-info .alert-icon{color:var(--c-info)}.alert-success .alert-icon{color:var(--c-success)}.alert-warning .alert-icon{color:var(--c-warning)}.alert-danger .alert-icon{color:var(--c-danger)}.alert-msg-only .alert-title{display:none}.alert-msg-only .alert-msg{color:var(--c-ink);font-size:14px}.tooltip-wrap{align-items:center;display:inline-flex;position:relative}.tooltip-box{background:var(--c-surface-dark);color:var(--c-on-dark);border-radius:var(--r-md);white-space:nowrap;box-shadow:var(--s-elevated);pointer-events:none;opacity:0;z-index:100;padding:6px 10px;font-size:12px;font-weight:500;line-height:1.4;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)}.tooltip-box:after{content:"";border:5px solid #0000;border-top-color:var(--c-surface-dark);position:absolute;top:100%;left:50%;transform:translate(-50%)}.tooltip-wrap:hover .tooltip-box{opacity:1;transform:translate(-50%)translateY(0)}.tooltip-box.is-bottom{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)}.tooltip-box.is-bottom:after{border-top-color:#0000;border-bottom-color:var(--c-surface-dark);top:auto;bottom:100%}.tooltip-wrap:hover .tooltip-box.is-bottom{transform:translate(-50%)translateY(0)}.ctx-menu{background:var(--c-canvas);border:1px solid var(--c-hairline);border-radius:var(--r-lg);min-width:200px;box-shadow:var(--s-elevated);flex-direction:column;gap:1px;padding:6px;display:inline-flex}.ctx-item{border-radius:var(--r-sm);color:var(--c-body);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:500;font-family:var(--f-sans);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 12px;transition:background .1s,color .1s;display:flex}.ctx-item:hover{background:var(--c-surface-soft);color:var(--c-ink)}.ctx-item.is-danger{color:var(--c-danger)}.ctx-item.is-danger:hover{background:var(--c-danger-soft);color:var(--c-danger)}.ctx-item .ctx-shortcut{font-family:var(--f-mono);color:var(--c-muted);margin-left:auto;font-size:11px}.ctx-divider{background:var(--c-hairline-soft);height:1px;margin:4px 0}.modal-backdrop{background:var(--c-surface-soft);border-radius:var(--r-lg);justify-content:center;align-items:center;min-height:360px;padding:60px 40px;display:flex}.modal{background:var(--c-canvas);border-radius:var(--r-xl);width:460px;box-shadow:var(--s-elevated);padding:32px}.modal-title{color:var(--c-ink);letter-spacing:-.01em;margin:0 0 8px;font-size:20px;font-weight:600}.modal-body{color:var(--c-body);margin:0 0 24px;font-size:14px;line-height:1.6}.modal-foot{justify-content:flex-end;gap:8px;display:flex}.toast{background:var(--c-canvas);border-radius:var(--r-lg);box-shadow:var(--s-elevated);border:1px solid var(--c-hairline);align-items:flex-start;gap:12px;width:380px;padding:14px 16px;display:flex}.toast-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex}.toast-icon.s{background:var(--c-success-soft);color:var(--c-success)}.toast-icon.w{background:var(--c-warning-soft);color:var(--c-warning)}.toast-icon.d{background:var(--c-danger-soft);color:var(--c-danger)}.toast-icon.i{background:var(--c-info-soft);color:var(--c-info)}.toast-title{color:var(--c-ink);margin:0 0 2px;font-size:14px;font-weight:600}.toast-msg{color:var(--c-body);margin:0;font-size:13px}.toast-close{color:var(--c-muted);cursor:pointer;margin-left:auto;font-size:16px;line-height:1}.drawer-frame{background:var(--c-surface-soft);border-radius:var(--r-lg);justify-content:flex-end;min-height:380px;padding:24px;display:flex}.drawer{background:var(--c-canvas);border-radius:var(--r-lg);width:380px;box-shadow:var(--s-elevated);align-self:stretch;padding:28px}.drawer-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--c-muted);margin-bottom:8px;font-size:11px;font-weight:600}.drawer-title{color:var(--c-ink);margin:0 0 20px;font-size:18px;font-weight:600}.pagination{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.page-btn{border-radius:var(--r-md);min-width:36px;height:36px;font-size:13px;font-weight:500;font-family:var(--f-mono);color:var(--c-body);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0 8px;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.page-btn:hover{background:var(--c-surface-soft);color:var(--c-ink)}.page-btn.is-active{background:var(--c-brand);color:#fff;border-color:var(--c-brand);font-weight:600}.page-btn.is-active:hover{background:var(--c-brand-hover)}.page-btn.is-disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.page-btn.is-nav{border-color:var(--c-hairline);background:var(--c-canvas);font-family:var(--f-sans)}.page-btn.is-nav:hover{border-color:var(--c-hairline-strong);color:var(--c-ink)}.page-btn:focus-visible{box-shadow:var(--s-focus);outline:none}.page-ellipsis{width:36px;height:36px;color:var(--c-muted);letter-spacing:.05em;font-size:13px;font-family:var(--f-mono);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:inline-flex}.pagination-info{font-family:var(--f-mono);color:var(--c-muted);margin-left:8px;font-size:12px}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:64px 32px;display:flex}.empty-icon{border-radius:var(--r-xl);background:var(--c-surface-soft);border:1px solid var(--c-hairline);width:56px;height:56px;color:var(--c-muted);flex-shrink:0;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.empty-title{color:var(--c-ink);margin:0 0 8px;font-size:16px;font-weight:600}.empty-desc{color:var(--c-muted);max-width:340px;margin:0 0 24px;font-size:14px;line-height:1.6}.chart-bars{grid-template-columns:repeat(8,1fr);align-items:end;gap:8px;height:140px;display:grid}.chart-bars>div{border-radius:4px 4px 0 0}.progress{background:var(--c-surface-sunken);border-radius:var(--r-full);width:120px;height:6px;overflow:hidden}.progress>div{background:var(--c-brand);border-radius:var(--r-full);height:100%}.rules{grid-template-columns:1fr 1fr;gap:24px;display:grid}.rule-col{border:1px solid var(--c-hairline);border-radius:var(--r-lg);padding:28px}.rule-col h3{color:var(--c-ink);margin:0 0 16px;font-size:18px;font-weight:600}.rule-col.do h3:before{content:"✓ ";color:var(--c-success)}.rule-col.dont h3:before{content:"✗ ";color:var(--c-danger)}.rule-col ul{color:var(--c-body);margin:0;padding-left:20px}.rule-col li{margin-bottom:10px;font-size:14px;line-height:1.55}.status-flow{flex-wrap:wrap;align-items:center;gap:0;display:flex}.sf-item{align-items:center;gap:0;display:flex}.sf-label{color:var(--c-muted);background:var(--c-surface-soft);border:1px solid var(--c-hairline);white-space:nowrap;padding:6px 14px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s}.sf-item:first-child .sf-label{border-radius:var(--r-full) 0 0 var(--r-full);padding-left:16px}.sf-item:last-child .sf-label{border-radius:0 var(--r-full) var(--r-full) 0;padding-right:16px}.sf-item:not(:last-child) .sf-label{border-right:none}.sf-item.is-done .sf-label{background:var(--c-success-soft);color:var(--c-success);border-color:#06a66b33}.sf-item.is-active .sf-label{background:var(--c-brand);border-color:var(--c-brand);color:#fff}.step-bar{align-items:flex-start;gap:0;display:flex}.step-item{flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.step-item:not(:last-child):after{content:"";background:var(--c-hairline);height:1px;position:absolute;top:16px;left:calc(50% + 16px);right:calc(16px - 50%)}.step-item.is-done:not(:last-child):after{background:var(--c-brand)}.step-dot{border:2px solid var(--c-hairline-strong);background:var(--c-canvas);width:32px;height:32px;font-family:var(--f-mono);color:var(--c-muted);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:background .2s,border-color .2s,color .2s;display:flex;position:relative}.step-item.is-done .step-dot{background:var(--c-brand);border-color:var(--c-brand);color:#fff}.step-item.is-active .step-dot{border-color:var(--c-brand);color:var(--c-brand);box-shadow:0 0 0 4px var(--c-brand-soft)}.step-label{color:var(--c-muted);text-align:center;margin-top:10px;font-size:12px;font-weight:500;line-height:1.4}.step-item.is-active .step-label{color:var(--c-brand);font-weight:600}.step-item.is-done .step-label{color:var(--c-body)}.upload-zone{border:1.5px dashed var(--c-hairline-strong);border-radius:var(--r-lg);text-align:center;cursor:pointer;background:var(--c-canvas);flex-direction:column;align-items:center;padding:40px 32px;transition:border-color .16s,background .16s;display:flex}.upload-zone:hover,.upload-zone.is-over{border-color:var(--c-brand);background:var(--c-brand-soft)}.upload-icon{border-radius:var(--r-xl);background:var(--c-surface-soft);border:1px solid var(--c-hairline);width:48px;height:48px;color:var(--c-muted);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.upload-zone:hover .upload-icon,.upload-zone.is-over .upload-icon{background:var(--c-brand-soft);color:var(--c-brand);border-color:#0052ff33}.upload-title{color:var(--c-ink);margin:0 0 4px;font-size:14px;font-weight:600}.upload-desc{color:var(--c-muted);margin:0;font-size:13px}.upload-desc strong{color:var(--c-brand);font-weight:600}.file-list{flex-direction:column;gap:8px;margin-top:16px;display:flex}.file-item{border-radius:var(--r-md);border:1px solid var(--c-hairline);background:var(--c-canvas);align-items:center;gap:12px;padding:10px 14px;display:flex}.file-icon{border-radius:var(--r-sm);background:var(--c-surface-soft);width:32px;height:32px;color:var(--c-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-icon.is-image{background:var(--c-brand-soft);color:var(--c-brand)}.file-icon.is-doc{background:var(--c-info-soft);color:var(--c-info)}.file-name{color:var(--c-ink);margin:0 0 2px;font-size:13px;font-weight:600}.file-size{font-family:var(--f-mono);color:var(--c-muted);font-size:11px}.file-body{flex:1;min-width:0}.file-remove{cursor:pointer;color:var(--c-muted);background:0 0;border:none;align-items:center;padding:0;display:flex}.file-remove:hover{color:var(--c-danger)}.date-chip{border-radius:var(--r-full);font-family:var(--f-mono);background:var(--c-surface-soft);color:var(--c-body);border:1px solid var(--c-hairline);align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.date-chip.is-urgent{background:var(--c-danger-soft);color:var(--c-danger);border-color:#d4284233}.date-chip.is-warning{background:var(--c-warning-soft);color:var(--c-warning);border-color:#c7770033}.date-chip.is-done{background:var(--c-success-soft);color:var(--c-success);border-color:#06a66b33}.date-range{font-family:var(--f-mono);color:var(--c-body);align-items:center;gap:6px;font-size:13px;display:inline-flex}.date-range .sep{color:var(--c-muted)}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:var(--c-hairline);width:1px;position:absolute;top:8px;bottom:8px;left:7px}.tl-item{padding-bottom:24px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-dot{background:var(--c-canvas);border:2px solid var(--c-hairline-strong);border-radius:50%;width:14px;height:14px;position:absolute;top:4px;left:-24px}.tl-dot.brand{background:var(--c-brand);border-color:var(--c-brand)}.tl-dot.success{background:var(--c-success);border-color:var(--c-success)}.tl-dot.warning{background:var(--c-warning);border-color:var(--c-warning)}.tl-meta{font-family:var(--f-mono);color:var(--c-muted);margin-bottom:4px;font-size:12px}.tl-title{color:var(--c-ink);margin:0 0 4px;font-size:14px;font-weight:600}.tl-body{color:var(--c-body);margin:0;font-size:13px}.ds-swiper{padding:8px 32px 40px!important}.ds-swiper .swiper-slide{height:auto}.ds-swiper .swiper-slide .card{height:100%}.ds-swiper-pagination{bottom:8px!important}.ds-swiper-pagination .swiper-pagination-bullet{background:var(--c-hairline-strong);opacity:1;border-radius:var(--r-full);width:6px;height:6px;transition:background .2s,width .2s}.ds-swiper-pagination .swiper-pagination-bullet-active{background:var(--c-brand);border-radius:var(--r-full);width:18px}.kanban-board{grid-template-columns:repeat(4,1fr);align-items:flex-start;gap:16px;min-height:calc(100vh - 180px);padding:0 0 2rem;display:grid}.kanban-column{background:var(--c-canvas);border:1px solid var(--c-hairline);border-radius:10px;flex-direction:column;min-width:200px;display:flex;overflow:hidden}.kanban-col-header{border-top:3px solid #0000;border-bottom:1px solid var(--c-hairline);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.kanban-col-label{letter-spacing:.02em;font-size:.78rem;font-weight:600}.kanban-col-body{flex-direction:column;gap:10px;min-height:80px;padding:10px;display:flex}.kanban-col-empty{text-align:center;color:var(--c-muted);padding:24px 8px;font-size:.75rem;font-style:italic}.kanban-card{background:var(--c-canvas);border:1px solid var(--c-hairline);cursor:pointer;border-radius:8px;padding:14px 14px 10px;transition:box-shadow .15s,transform .15s;position:relative;box-shadow:0 1px 3px #0b102012}.kanban-card:hover{box-shadow:var(--s-elevated);transform:translateY(-1px)}.kanban-card-overlay{transform:rotate(1.5deg);box-shadow:0 8px 24px #00000024}.kanban-card-top{justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.kanban-company-row{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.kanban-company-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.66rem;font-weight:700;display:flex}.kanban-company-name{color:var(--c-muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.kanban-card-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.kanban-card-grip{color:var(--c-muted);cursor:grab;border-radius:4px;flex-shrink:0;align-items:center;padding:2px;display:flex}.kanban-card-grip:hover{background:var(--c-surface-soft);color:var(--c-ink)}.kanban-card-grip:active{cursor:grabbing}.kanban-card-body{margin-bottom:10px}.kanban-card-name{color:var(--c-ink);text-overflow:ellipsis;white-space:nowrap;margin-bottom:6px;font-size:15px;font-weight:600;line-height:1.35;overflow:hidden}.kanban-card-meta{grid-template-columns:auto 1fr;gap:2px 8px;display:grid}.kanban-card-meta-label{color:var(--c-muted);white-space:nowrap;font-size:11px;line-height:1.6}.kanban-card-meta-value{color:var(--c-ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.6;overflow:hidden}.kanban-meta-mono{font-family:var(--f-mono);font-size:11px}.kanban-meta-amount{font-size:12px;font-weight:600}.kanban-progress{margin-bottom:10px}.kanban-progress-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.kanban-progress-label{color:var(--c-muted);font-size:11px}.kanban-progress-pct{color:var(--c-ink);font-size:11px;font-weight:600;font-family:var(--f-mono)}.kanban-progress-track{border-radius:99px;height:4px;overflow:hidden}.kanban-progress-bar{border-radius:99px;height:100%;transition:width .3s}.kanban-card-footer{border-top:1px solid var(--c-hairline);padding-top:8px}.kanban-pm-row{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.kanban-avatar{background:var(--c-brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.64rem;font-weight:700;display:flex}.kanban-card-pm{color:var(--c-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;overflow:hidden}.kanban-detail-btn{width:100%;color:var(--c-muted);background:var(--c-surface-soft);cursor:pointer;border-radius:var(--r-md);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:4px;padding:7px 12px;font-size:12px;font-weight:500;transition:background .12s,color .12s;display:flex}.kanban-detail-btn:hover{background:var(--c-hairline);color:var(--c-ink)}.kanban-card-company{color:var(--c-muted);margin-top:3px;font-size:.74rem}.kanban-readonly-note{text-align:center;color:var(--c-muted);padding:12px 0 0;font-size:.8rem;font-style:italic}.kc-phase-chip{border-radius:var(--r-full);white-space:nowrap;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.phase-chip-sales{color:#64748b;background:#fafafa}.phase-chip-won{color:#1d4ed8;background:#eff6ff}.phase-chip-analysis{color:#6d28d9;background:#ede9fe}.phase-chip-design{color:#be185d;background:#fce7f3}.phase-chip-development{color:#c2410c;background:#ffedd5}.phase-chip-testing{color:#15803d;background:#dcfce7}.phase-chip-review,.phase-chip-maintenance{color:#ea580c;background:#fff7ed}.phase-chip-completed{color:#16a34a;background:#f0fdf4}.phase-chip-closed{color:#475569;background:#f1f5f9}.kc-track--not_started{background:#f1f5f9}.kc-track--in_progress{background:var(--c-brand-soft)}.kc-track--maintenance,.kc-track--completed{background:#dcfce7}.kc-bar--not_started{background:#cbd5e1}.kc-bar--in_progress{background:var(--c-brand)}.kc-bar--maintenance,.kc-bar--completed{background:#16a34a}.kc-avatar-0{color:#1d4ed8;background:#dbeafe}.kc-avatar-1{color:#6d28d9;background:#ede9fe}.kc-avatar-2{color:#be185d;background:#fce7f3}.kc-avatar-3{color:#065f46;background:#d1fae5}.kc-avatar-4{color:#c2410c;background:#ffedd5}.kc-avatar-5{color:#0e7490;background:#cffafe}@media (width<=900px){.kanban-board{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.desktop-only{display:none!important}.kanban-mobile{flex-direction:column;gap:16px;display:flex}.kanban-mobile-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.kanban-mobile-tabs::-webkit-scrollbar{display:none}.kanban-mobile-tab{white-space:nowrap;border:1px solid var(--c-hairline);background:var(--c-canvas);color:var(--c-muted);cursor:pointer;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.kanban-mobile-tab.is-active{color:#fff}.kanban-mobile-tab .tab-count{font-family:var(--f-mono);background:#ffffff40;border-radius:10px;padding:1px 6px;font-size:11px}.kanban-mobile-tab:not(.is-active) .tab-count{background:var(--c-surface-soft);color:var(--c-muted)}.kanban-mobile-cards{flex-direction:column;gap:12px;display:flex}.kanban-mobile-cards .kanban-card{padding:12px 12px 8px}.kanban-mobile-cards .kanban-card-name{font-size:14px}.kanban-mobile-cards .kanban-meta-amount{font-size:11px}}@media (width>=769px){.mobile-only{display:none!important}}body{background:var(--c-canvas);margin:0}.ds-topbar.app{z-index:60;align-items:center;gap:16px;height:56px;display:flex;position:sticky;top:0;padding:0 20px 0 16px!important}.ds-topbar-brand{border-right:1px solid var(--c-hairline);box-sizing:border-box;justify-content:flex-start;align-items:center;gap:8px;width:224px;height:36px;padding-right:16px;display:flex}.ds-topbar-brand .sb-logo{width:22px;height:22px}.ds-topbar-brand .sb-name{letter-spacing:-.01em;font-size:14px;font-weight:700}.app-crumb{color:var(--c-muted);align-items:center;gap:6px;font-size:13px;display:flex}.app-crumb .here{color:var(--c-ink);font-weight:600}.app-crumb .sep{color:var(--c-soft)}.topbar-breadcrumb{flex-shrink:1;align-items:center;gap:4px;min-width:0;font-size:13px;display:flex;overflow:hidden}.breadcrumb-item{white-space:nowrap;align-items:center;gap:4px;display:flex}.breadcrumb-link{color:var(--c-muted);text-decoration:none;transition:color .12s}.breadcrumb-link:hover{color:var(--c-brand)}.breadcrumb-sep{color:var(--c-muted);-webkit-user-select:none;user-select:none;font-size:12px}.breadcrumb-current{color:var(--c-ink);font-weight:600}.app-topbar-right{align-items:center;gap:6px;margin-left:auto;display:flex}.user-pill{border:1px solid var(--c-hairline);background:var(--c-canvas);height:36px;color:var(--c-ink);cursor:pointer;font-family:var(--f-sans);border-radius:999px;align-items:center;gap:10px;padding:4px 12px 4px 4px;transition:background .12s,border-color .12s;display:inline-flex}.user-pill:hover{background:var(--c-surface-soft);border-color:var(--c-hairline-strong)}.user-pill .avatar{background:var(--c-brand-soft);width:28px;height:28px;color:var(--c-brand);letter-spacing:-.01em;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.user-pill .user-name{font-size:13px;font-weight:500}.user-pill .user-role{color:var(--c-muted);font-size:11px;font-family:var(--f-mono);letter-spacing:.02em}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--c-body);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex;position:relative}.icon-btn:hover{background:var(--c-surface-soft);color:var(--c-ink)}.icon-btn:focus-visible{box-shadow:var(--s-focus);outline:none}.icon-btn .dot{background:var(--c-danger);width:6px;height:6px;box-shadow:0 0 0 2px var(--c-canvas);border-radius:50%;position:absolute;top:8px;right:9px}.icon-btn .icon-moon,.icon-btn .icon-sun{display:inline-flex}.icon-btn .icon-sun,[data-theme=dark] .icon-btn .icon-moon{display:none}[data-theme=dark] .icon-btn .icon-sun{display:inline-flex}[data-theme=dark] .icon-btn .dot{box-shadow:0 0 0 2px var(--c-canvas)}.app-search{width:280px}.app-shell-grid{height:calc(100vh - 56px);display:flex;overflow:hidden}.app-sidebar{background:var(--c-canvas);border-right:1px solid var(--c-hairline);flex-direction:column;flex-shrink:0;width:240px;height:100%;padding:8px 4px 24px;display:flex;overflow:hidden auto}.app-sidebar .sb-group{flex-direction:column;width:100%;margin-bottom:2px;display:flex}.app-sidebar .sb-toggle{cursor:pointer;width:100%;font-family:var(--f-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--c-soft);border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:6px;padding:14px 8px 6px;font-size:11px;font-weight:700;transition:color .12s;display:flex!important}.app-sidebar .sb-toggle:hover{color:var(--c-muted)}.app-sidebar .sb-chevron{opacity:.6;flex-shrink:0;width:13px;height:13px;margin-left:auto;transition:transform .22s}.app-sidebar .sb-group.is-closed .sb-chevron{transform:rotate(-90deg)}.app-sidebar .sb-group-items{grid-template-rows:1fr;transition:grid-template-rows .22s;display:grid;overflow:hidden}.app-sidebar .sb-group.is-closed .sb-group-items{grid-template-rows:0fr}.app-sidebar .sb-group-items>div{min-height:0;overflow:hidden}.app-sidebar .nav-item{padding:7px 8px;font-size:13px}.app-sidebar .nav-badge{background:var(--c-info-soft);min-width:18px;height:18px;color:var(--c-info);font-family:var(--f-mono);letter-spacing:.01em;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.app-sidebar .nav-badge.is-warning{background:var(--c-warning-soft);color:var(--c-warning)}.app-sidebar .nav-badge.is-danger{background:var(--c-danger-soft);color:var(--c-danger)}.app-sidebar .nav-item.is-active .nav-badge:not(.is-warning):not(.is-danger){background:var(--c-canvas)}.sb-profile{border:1px solid var(--c-hairline);background:var(--c-surface-soft);border-radius:10px;outline:none;align-items:center;gap:10px;margin:8px 12px 16px;padding:12px;transition:background .12s;display:flex}.sb-profile[role=button]{cursor:pointer}.sb-profile[role=button]:hover{background:var(--c-surface-strong)}.sb-profile[role=button]:focus-visible{box-shadow:var(--s-focus)}.sb-profile-avatar{letter-spacing:-.01em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:700;display:flex;overflow:hidden}.sb-profile-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.sb-profile-role{font-family:var(--f-mono);color:var(--c-muted);letter-spacing:.08em;text-transform:uppercase;font-size:10px;line-height:1.2}.sb-profile-name{color:var(--c-ink);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;line-height:1.3;overflow:hidden}.sb-profile-company{color:var(--c-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.3;overflow:hidden}.sb-divider{background:var(--c-hairline);height:1px;margin:6px 0 4px}.app-sidebar .sb-section{margin-bottom:4px;padding:0;display:block}.app-sidebar .sb-nav .sb-section+.sb-section{margin-top:16px}.app-sidebar .sb-nav .sb-section:last-child{border-top:1px solid var(--c-hairline);margin-top:12px;padding-top:12px}.sb-section{margin-bottom:4px}.sb-section-title{font-family:var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--c-brand);opacity:.7;-webkit-user-select:none;user-select:none;padding:4px 8px;font-size:10px;font-weight:700}.sb-section-items{flex-direction:column;gap:1px;display:flex}.sb-footer{font-family:var(--f-mono);color:var(--c-soft);letter-spacing:.02em;justify-content:space-between;align-items:center;margin-top:auto;padding:12px 8px 8px;font-size:11px;display:flex}.app-main{background:var(--c-canvas);--main-max:1440px;flex:1;min-width:0;height:100%;padding:32px 40px;overflow-y:auto}.app-main.size-md{--main-max:1280px}.app-main.size-lg{--main-max:1440px}.app-main.size-xl{--main-max:1640px}.app-main-inner{max-width:var(--main-max);margin:0 auto}.page-head{border-bottom:1px solid var(--c-hairline-soft);justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;padding-bottom:28px;display:flex}.page-eyebrow{font-family:var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--c-muted);margin-bottom:8px;font-size:11px;font-weight:500}.page-title{letter-spacing:-.012em;color:var(--c-ink);margin:0;font-size:28px;font-weight:600;line-height:1.25}.page-sub{color:var(--c-muted);margin-top:8px;font-size:14px}.page-actions{align-items:center;gap:8px;display:flex}.topbar-dropdown{z-index:70;background:var(--c-canvas);border:1px solid var(--c-hairline);border-radius:var(--r-lg);width:340px;box-shadow:var(--s-elevated);transform-origin:100% 0;flex-direction:column;animation:.16s cubic-bezier(.2,0,0,1) dd-rise;display:none;position:absolute;top:52px;right:20px;overflow:hidden}.topbar-dropdown.is-open{display:flex}@keyframes dd-rise{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.icon-btn.is-active,.user-pill.is-active{background:var(--c-surface-soft);border-color:var(--c-hairline-strong)}.icon-btn.is-active{background:var(--c-brand-soft);color:var(--c-brand)}.dd-notif{width:360px}.dd-head{border-bottom:1px solid var(--c-hairline-soft);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.dd-head-title{color:var(--c-ink);letter-spacing:-.005em;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.dd-head-title .count{font-family:var(--f-mono);background:var(--c-brand-soft);color:var(--c-brand);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.dd-head-action{color:var(--c-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;gap:3px;padding:4px 6px;font-size:12px;transition:color .12s,background .12s;display:inline-flex}.dd-head-action:hover{color:var(--c-brand);background:var(--c-brand-soft)}.dd-head-action:disabled{opacity:.5;cursor:default}.dd-list{flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.dd-item{appearance:none;text-align:left;width:100%;font:inherit;border:none;border-bottom:1px solid var(--c-hairline-soft);cursor:pointer;background:var(--c-canvas);color:inherit;align-items:flex-start;gap:12px;padding:13px 16px;text-decoration:none;transition:background .12s;display:flex;position:relative}.dd-item:last-child{border-bottom:none}.dd-item:hover{background:var(--c-surface-soft)}.dd-item[data-state=unread],.dd-item.is-unread{background:var(--c-brand-soft)}.dd-item[data-state=unread]:hover,.dd-item.is-unread:hover{background:#d9e8ff}.dd-item-icon{background:var(--c-surface-strong);width:40px;height:40px;color:var(--c-body);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dd-item-icon.is-success{background:var(--c-success-soft);color:var(--c-success)}.dd-item-icon.is-warning{background:var(--c-warning-soft);color:var(--c-warning)}.dd-item-icon.is-danger{background:var(--c-danger-soft);color:var(--c-danger)}.dd-item-icon.is-info{background:var(--c-brand-soft);color:var(--c-brand)}.dd-item-body{flex:1;min-width:0}.dd-item-title{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:13px;font-weight:500;line-height:1.45;overflow:hidden}.dd-item[data-state=unread] .dd-item-title,.dd-item.is-unread .dd-item-title{font-weight:700}.dd-item-msg{color:var(--c-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.dd-item-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:6px;padding-top:1px;display:flex}.dd-item-time{font-family:var(--f-mono);color:var(--c-soft);letter-spacing:.01em;white-space:nowrap;font-size:11px}.dd-item-dot{background:var(--c-brand);visibility:hidden;border-radius:50%;flex-shrink:0;width:8px;height:8px}.dd-item[data-state=unread] .dd-item-dot,.dd-item.is-unread .dd-item-dot{visibility:visible}.dd-foot{border-top:1px solid var(--c-hairline-soft);padding:10px 16px}.dd-foot a{color:var(--c-brand);justify-content:center;align-items:center;gap:5px;padding:4px 0;font-size:13px;font-weight:500;text-decoration:none;transition:opacity .12s;display:flex}.dd-foot a:hover{opacity:.8;text-decoration:underline}.dd-empty{text-align:center;color:var(--c-muted);padding:32px 24px;font-size:13px}.dd-user{width:260px}.dd-user-head{border-bottom:1px solid var(--c-hairline-soft);align-items:center;gap:12px;padding:16px;display:flex}.dd-user-head .avatar{width:40px;height:40px;font-size:14px}.dd-user-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dd-user-name{color:var(--c-ink);letter-spacing:-.005em;font-size:14px;font-weight:600}.dd-user-email{font-family:var(--f-mono);color:var(--c-muted);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.dd-menu{padding:6px}.dd-link{border-radius:var(--r-md);color:var(--c-body);cursor:pointer;text-align:left;width:100%;font-size:13px;font-weight:500;font-family:var(--f-sans);background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;transition:background .12s,color .12s;display:flex}.dd-link:hover{background:var(--c-surface-soft);color:var(--c-ink)}.dd-link .ico{width:15px;height:15px;color:var(--c-muted);flex-shrink:0}.dd-link:hover .ico{color:var(--c-ink)}.dd-link.is-danger{color:var(--c-danger)}.dd-link.is-danger:hover{background:var(--c-danger-soft);color:var(--c-danger)}.dd-link.is-danger .ico{color:var(--c-danger)}.dd-link kbd{font-family:var(--f-mono);color:var(--c-soft);border:1px solid var(--c-hairline);background:var(--c-canvas);border-radius:4px;margin-left:auto;padding:1px 5px;font-size:10px}.dd-divider{background:var(--c-hairline-soft);height:1px;margin:4px}.dd-theme{align-items:center;gap:10px;padding:8px 10px;display:flex}.dd-theme-label{color:var(--c-body);flex:1;align-items:center;gap:10px;font-size:13px;font-weight:500;display:inline-flex}.dd-theme-label .ico{width:15px;height:15px;color:var(--c-muted)}.dd-theme-seg{background:var(--c-surface-strong);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.dd-theme-btn{width:26px;height:24px;color:var(--c-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.dd-theme-btn:hover{color:var(--c-ink)}.dd-theme-btn.is-active{background:var(--c-canvas);color:var(--c-ink);box-shadow:0 1px 2px #0b102014}@media (width<=640px){.topbar-dropdown{width:auto;max-width:360px;margin-left:auto;left:8px;right:8px}.dd-notif,.dd-user{width:auto}}[data-theme=dark] .sb-logo{background-image:url(/assets/logo-mark-white.png)}.sidebar-backdrop{z-index:40;background:#0b102066;display:none;position:fixed;inset:56px 0 0}.sidebar-backdrop.is-open{display:block}.hamburger,.hamburger .icon-close,.hamburger.is-open .icon-open{display:none}.hamburger.is-open .icon-close{display:inline-flex}@media (width<=1024px){.hamburger{display:inline-flex}.app-shell-grid{height:auto;display:block;overflow:visible}.app-main{height:auto;overflow-y:visible}.app-sidebar{z-index:50;width:260px;height:auto;transition:left .22s cubic-bezier(.2,0,0,1);position:fixed;top:56px;bottom:0;left:-260px;box-shadow:0 6px 24px -8px #0b10201f,0 2px 6px -2px #0b10200f}.app-sidebar.is-open{left:0}.app-main{padding:24px}.app-search,.app-crumb,.topbar-breadcrumb{display:none}.ds-topbar-brand{border-right:none;width:auto;padding-right:10px}.app-sidebar .sb-nav{flex:initial!important}}@media (width<=640px){.ds-topbar.app{gap:8px;padding:0 12px 0 8px!important}.user-pill .user-name,.user-pill .user-role{display:none}.user-pill{border:none;gap:0;padding:4px}.user-pill:hover{background:0 0}.app-topbar-right{gap:2px}.app-main{padding:20px 16px}.page-head{flex-direction:column;align-items:flex-start;gap:16px}.page-title{font-size:22px}.page-actions{justify-content:flex-end;width:100%}}.approval-form-layout{grid-template-columns:1fr 300px;align-items:start;gap:24px;display:grid}.approval-form-main,.approval-form-summary{min-width:0}.approval-form-mobile-bar{display:none}@media (width<=900px){.approval-form-layout{padding-bottom:72px;display:block}.approval-form-summary{display:none}.approval-form-mobile-bar{padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));background:var(--c-canvas);border-top:1px solid var(--c-hairline-soft);z-index:100;align-items:center;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 16px #0b102014}}@media (width<=640px){.page-container:has(.approval-form-layout) .page-actions{flex-direction:column;align-items:stretch;gap:8px;width:100%}.page-container:has(.approval-form-layout) .page-actions .btn{justify-content:center;width:100%}}.review-layout{align-items:flex-start;gap:24px;display:flex}.review-pdf-col{flex:0 0 62%;min-width:0}.review-side-col{flex:0 0 38%;min-width:0;position:sticky;top:24px}.pdf-viewer-container{border:1px solid var(--c-hairline);background:#fff;border-radius:8px;min-height:800px;position:relative;overflow:hidden}.pdf-viewer-container iframe{border:none;width:100%;height:100%;min-height:800px;display:block}.review-action-bar-mobile{display:none}@media (width<=1023px){.review-layout{flex-direction:column}.review-pdf-col{flex:0 0 100%;order:2;width:100%}.review-side-col{flex:0 0 100%;order:1;width:100%;position:static!important;top:auto!important}.pdf-viewer-container{height:500px;min-height:0}.pdf-viewer-container iframe{height:100%;min-height:0}.review-page{padding-bottom:88px}.review-action-bar-desktop{display:none}.review-action-bar-mobile{z-index:50;background:var(--c-canvas);border-top:1px solid var(--c-hairline);gap:8px;padding:12px 16px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 12px #0000000d}.review-action-bar-mobile button{flex:1}}.review-page-header{border-bottom:1px solid var(--c-hairline);margin-bottom:24px;padding:4px 0 20px}.review-header-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.review-header-badges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.review-page-title{color:var(--c-ink);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700;line-height:1.3}.btn-back{color:var(--c-muted);cursor:pointer;font-size:13px;font-family:var(--f-sans);background:0 0;border:none;border-radius:6px;align-items:center;gap:4px;padding:5px 10px;transition:color .12s,background .12s;display:inline-flex}.btn-back:hover{color:var(--c-ink);background:var(--c-surface-soft)}@media (width<=640px){.review-page-title{font-size:20px}}html,body{height:100%}body{background:var(--c-canvas);color:var(--c-body);font-family:var(--f-sans);margin:0}.login-page{box-sizing:border-box;background:#f0f2f5;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.login-card{background:#fff;border-radius:20px;width:100%;max-width:960px;display:flex;overflow:hidden;box-shadow:0 8px 48px #0000001f}.login-left{background:#fff;border-right:1px solid #f0f0f0;flex-direction:column;flex:1;min-width:0;padding:48px 40px;display:flex}.login-brand{align-items:center;gap:12px;display:flex}.login-brand-name{color:var(--c-brand);letter-spacing:-.012em;font-size:18px;font-weight:700;line-height:1.2}.login-brand-desc{color:#888;margin-top:4px;font-size:13px;line-height:1.4}.login-illustration{flex:1;justify-content:center;align-items:center;padding:12px 0;display:flex}.login-illustration img{object-fit:contain;width:100%;max-width:500px;height:auto;box-shadow:none;mix-blend-mode:normal;border:none}.login-right{box-sizing:border-box;background:#fff;flex-direction:column;flex-shrink:0;justify-content:center;width:400px;padding:56px 48px;display:flex}.login-label{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--c-brand);margin:0 0 14px;font-size:11px;font-weight:600}.login-title{letter-spacing:-.018em;color:var(--c-ink);margin:0 0 14px;font-size:28px;font-weight:700;line-height:1.25}.login-desc{color:var(--c-muted);margin:0 0 36px;font-size:13px;line-height:1.6}.auth-form-fields{flex-direction:column;gap:28px;margin-bottom:28px;display:flex}.auth-form-row{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.auth-submit{justify-content:center;width:100%;height:48px;font-size:15px}.auth-submit:hover svg{transform:translate(2px)}.auth-submit svg{transition:transform .18s cubic-bezier(.2,0,0,1)}.login-footer{color:#999;text-align:center;font-size:12px;font-family:var(--f-mono);letter-spacing:.02em;margin-top:24px}.login-page,[data-theme=dark] .login-page{background:#f0f2f5}[data-theme=dark] .login-card{background:#fff;box-shadow:0 8px 48px #0000001f}[data-theme=dark] .login-left{background:#fff;border-right-color:#f0f0f0}[data-theme=dark] .login-right{background:#fff}[data-theme=dark] .login-title{color:#1a1a2a}[data-theme=dark] .login-desc{color:#888}[data-theme=dark] .login-footer{color:#aaa}@media (width<=768px){.login-card{border-radius:16px;flex-direction:column;max-width:480px}.login-left{border-bottom:1px solid #f0f0f0;border-right:none;padding:28px 28px 0}.login-illustration{padding:20px 16px}.login-illustration img{max-width:260px}.login-right{width:100%;padding:36px 28px 40px}.login-title{font-size:22px}}@media (width<=480px){.login-page{padding:16px}.login-card{border-radius:12px}.login-left{padding:24px 24px 0}.login-right{padding:28px 24px 32px}.login-illustration img{max-width:200px}}.list-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.list-toolbar .search-pill{flex:0 0 320px;width:320px}.filter-chips{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.chip{border:1px solid var(--c-hairline);border-radius:var(--r-md);background:var(--c-canvas);height:34px;color:var(--c-body);font-family:var(--f-sans);cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;transition:border-color .12s,background .12s,color .12s;display:inline-flex}.chip:hover{border-color:var(--c-hairline-strong);color:var(--c-ink)}.chip:focus-visible{box-shadow:var(--s-focus);outline:none}.chip .chip-val{color:var(--c-ink);font-weight:600}.chip .chip-caret{width:12px;height:12px;color:var(--c-muted)}.chip.is-active,.chip.chip--active{background:var(--c-brand);border:1.5px solid var(--c-brand);color:#fff;font-weight:600}.chip.is-active:hover,.chip.chip--active:hover{background:#0041cc}.chip.is-active .chip-val,.chip.chip--active .chip-val,.chip.is-active .chip-caret,.chip.chip--active .chip-caret{color:#fff}.list-meta{color:var(--c-muted);font-size:12px;font-family:var(--f-mono);letter-spacing:.02em;margin-left:auto}.list-meta strong{color:var(--c-ink);font-weight:600}.emp-cell{align-items:center;gap:12px;display:flex}.emp-cell .avatar{width:36px;height:36px;font-size:13px}.emp-cell-text{flex-direction:column;gap:2px;min-width:0;display:flex}.emp-name{color:var(--c-ink);letter-spacing:-.005em;font-size:14px;font-weight:600}.emp-email{color:var(--c-muted);font-size:12px;font-family:var(--f-mono);letter-spacing:.01em}.pos-cell{flex-direction:column;gap:2px;display:flex}.pos-title{color:var(--c-ink);font-size:14px;font-weight:500}.pos-rank{color:var(--c-muted);font-size:12px}.row-action{border-radius:var(--r-md);width:32px;height:32px;color:var(--c-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.row-action:hover{background:var(--c-surface-strong);color:var(--c-ink)}.row-action:focus-visible{box-shadow:var(--s-focus);outline:none}.table-foot{border-top:1px solid var(--c-hairline-soft);background:var(--c-canvas);justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.table-foot .pagination-info{margin-left:0}.employee-card-list{background:var(--c-canvas);display:none}.employee-card{border-bottom:1px solid var(--c-hairline);background:var(--c-canvas);align-items:center;gap:12px;padding:12px 16px;display:flex}.employee-card:first-child{border-top:1px solid var(--c-hairline)}.emp-card-avatar{flex-shrink:0}.emp-card-avatar .avatar{width:44px;height:44px;font-size:15px}.emp-card-avatar img{object-fit:cover;border-radius:50%;width:44px!important;height:44px!important}.emp-card-body{flex:1;min-width:0}.emp-card-head{align-items:center;gap:8px;margin-bottom:3px;display:flex}.emp-card-name{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.emp-card-meta{color:var(--c-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:12px;overflow:hidden}.emp-card-phone{color:var(--c-muted);font-size:12px;font-family:var(--f-mono)}.approval-card-list{flex-direction:column;display:none}.approval-card{border-bottom:1px solid var(--c-hairline);background:var(--c-canvas);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.approval-card:first-child{border-top:1px solid var(--c-hairline)}.approval-card--clickable{cursor:pointer}.approval-card--clickable:active{background:var(--c-surface-alt)}.approval-card-head{align-items:center;gap:6px;display:flex}.approval-card-title{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.approval-card-meta{color:var(--c-muted);justify-content:space-between;font-size:12px;display:flex}.approval-card-amount{font-family:var(--f-mono);color:var(--c-ink);flex-shrink:0;font-size:12px;font-weight:600}.approval-card-footer{justify-content:space-between;align-items:center;display:flex}.approval-card-date{font-family:var(--f-mono);color:var(--c-muted);font-size:11px}.approval-card-actions{gap:4px;display:flex}.company-card-list{background:var(--c-canvas);display:none}.company-card{border-bottom:1px solid var(--c-hairline);background:var(--c-canvas);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.company-card:first-child{border-top:1px solid var(--c-hairline)}.company-card:active{background:var(--c-surface-alt)}.company-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.company-card-name{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.company-card-meta{color:var(--c-muted);flex-wrap:wrap;gap:6px 12px;font-size:13px;display:flex}.company-card-phone{font-family:var(--f-mono)}.company-card-footer{justify-content:space-between;align-items:center;display:flex}.company-card-date{font-family:var(--f-mono);color:var(--c-muted);font-size:12px}.company-card-arrow{color:var(--c-muted);font-size:14px}.lead-card-list{background:var(--c-canvas);display:none}.lead-card{border-bottom:1px solid var(--c-hairline);background:var(--c-canvas);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.lead-card:first-child{border-top:1px solid var(--c-hairline)}.lead-card:active{background:var(--c-surface-alt)}.lead-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.lead-card-title{color:var(--c-ink);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden}.lead-card-meta{color:var(--c-muted);gap:12px;font-size:13px;display:flex}.lead-card-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.lead-card-amount{font-family:var(--f-mono);color:var(--c-ink);font-size:13px;font-weight:600}.lead-card-prob,.lead-card-date{font-family:var(--f-mono);color:var(--c-muted);font-size:12px}.ticket-card-list{flex-direction:column;gap:12px;display:none}.ticket-card{background:var(--c-canvas);border:1px solid var(--c-hairline);cursor:pointer;border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.ticket-card:active{background:var(--c-surface-soft)}.ticket-card-head{justify-content:space-between;align-items:center;display:flex}.ticket-card-number{font-family:var(--f-mono);color:var(--c-muted);font-size:12px}.ticket-card-title{font-size:14px;font-weight:600;line-height:1.4}.ticket-card-meta{color:var(--c-muted);justify-content:space-between;font-size:12px;display:flex}.ticket-card-footer{justify-content:space-between;align-items:center;display:flex}.ticket-card-date{font-family:var(--f-mono);color:var(--c-muted);font-size:12px}.ticket-chip-group{flex-wrap:wrap;gap:6px;display:flex}.helpdesk-filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.helpdesk-select{border:1px solid var(--c-hairline);border-radius:var(--r-md);background:var(--c-canvas);height:34px;color:var(--c-ink);cursor:pointer;padding:0 10px;font-size:13px}@media (width<=768px){.list-toolbar .search-pill{flex:100%;width:100%}.list-meta{margin-left:0}.emp-email{display:none}.emp-desktop-table,.co-desktop-table,.lead-desktop-table,.ticket-desktop-table{display:none!important}.ticket-card-list{display:flex}.ticket-chip-group{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:2px;overflow-x:auto}.ticket-chip-group::-webkit-scrollbar{display:none}.ticket-chip-group .chip{flex-shrink:0}.helpdesk-filter-row{flex-direction:column;align-items:flex-start}.helpdesk-select{width:100%}.employee-card-list{flex-direction:column;display:flex}.approval-card-list{display:flex}.company-card-list,.lead-card-list{flex-direction:column;display:flex}.table-foot{flex-direction:column;align-items:stretch;gap:12px}.table-foot .pagination-info{text-align:center}.pagination{justify-content:center}.leads-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;padding-bottom:1px;overflow-x:auto}.leads-tabs::-webkit-scrollbar{display:none}}.emp-detail-header{border-bottom:1px solid var(--c-hairline-soft);align-items:flex-start;gap:24px;padding:24px 0;display:flex}.emp-detail-body{flex:1;min-width:0}.emp-detail-meta{grid-template-columns:repeat(4,1fr);gap:20px 32px;max-width:720px;margin-top:18px;display:grid}.emp-detail-actions{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.page-tabs-sticky{z-index:10;background:var(--c-canvas);margin:0 -40px 24px;padding:0 40px;position:sticky;top:-32px;box-shadow:0 2px 8px -2px #0b10200f}.info-grid-2{grid-template-columns:1fr 1fr;gap:24px 40px;display:grid}@media (width<=1024px){.page-tabs-sticky{margin:0 -24px;padding:0 24px;top:56px}}@media (width<=768px){.emp-detail-header{flex-direction:column;gap:16px}.emp-detail-meta{grid-template-columns:repeat(2,1fr);gap:16px 20px;max-width:none}.emp-detail-actions{flex-shrink:1;justify-content:flex-start}.info-grid-2{grid-template-columns:1fr;gap:20px}}@media (width<=640px){.page-tabs-sticky{margin:0 -16px;padding:0 16px}}.leads-summary-grid{grid-template-columns:repeat(4,1fr);display:grid}.leads-summary-item{border-right:1px solid var(--c-hairline-soft);padding:16px 24px}.leads-summary-item:last-child{border-right:none}.leads-summary-item--center{text-align:center}.leads-summary-label{color:var(--c-muted);text-transform:uppercase;letter-spacing:0;margin-bottom:6px;font-size:11px;font-weight:600}@media (width<=768px){.leads-summary-grid{grid-template-columns:repeat(3,1fr)}.leads-summary-item:first-child{border-right:none;border-bottom:1px solid var(--c-hairline-soft);grid-column:1/-1}.leads-summary-item:nth-child(2),.leads-summary-item:nth-child(3){border-right:1px solid var(--c-hairline-soft)}.leads-summary-item:nth-child(4){border-right:none}}.year-tabs{border-bottom:1px solid var(--c-hairline);scrollbar-width:none;-ms-overflow-style:none;gap:0;margin-bottom:20px;display:flex;overflow-x:auto}.year-tabs::-webkit-scrollbar{display:none}.completed-sub-tabs{scrollbar-width:none;-ms-overflow-style:none;border-bottom:1px solid var(--c-hairline-soft);flex-wrap:nowrap;margin-bottom:0;overflow-x:auto}.completed-sub-tabs::-webkit-scrollbar{display:none}.completed-sub-tabs .tab-item{white-space:nowrap;flex-shrink:0}.year-tab{color:var(--c-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:0;margin-bottom:-1px;padding:8px 16px;font-size:14px;font-weight:500;transition:color .12s;display:inline-flex}.year-tab:hover{color:var(--c-ink)}.year-tab.is-active{color:var(--c-brand);border-bottom-color:var(--c-brand);font-weight:600}.approval-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.approval-summary-card{border:1px solid var(--c-hairline);border-radius:var(--r-lg,8px);background:var(--c-canvas);flex-direction:column;gap:6px;padding:16px;display:flex}.approval-summary-label{color:var(--c-muted);align-items:center;gap:4px;font-size:12px;display:flex}.approval-summary-value{font-size:24px;font-family:var(--f-mono);color:var(--c-ink);letter-spacing:-.03em;font-weight:700;line-height:1}.approval-summary-value--green{color:#16a34a}.approval-summary-value--red{color:#dc2626}.approval-summary-value--blue{color:var(--c-brand)}.approval-summary-unit{color:var(--c-muted);font-size:13px;font-weight:400}.completed-filter-wrap{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.completed-search-bar{width:100%;max-width:380px;position:relative}.completed-search-bar input{border:1px solid var(--c-hairline);border-radius:var(--r-md);background:var(--c-canvas);width:100%;height:38px;color:var(--c-ink);box-sizing:border-box;font-size:14px;font-family:var(--f-sans);padding:0 36px;transition:border-color .12s}.completed-search-bar input:focus{border-color:var(--c-brand);box-shadow:var(--s-focus);outline:none}.completed-search-bar input::placeholder{color:var(--c-muted)}.completed-search-icon{color:var(--c-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.completed-search-clear{cursor:pointer;width:20px;height:20px;color:var(--c-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .12s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.completed-search-clear:hover{color:var(--c-ink)}.completed-filter-row{align-items:center;gap:16px;display:flex}.completed-filter-label{min-width:48px;color:var(--c-muted);white-space:nowrap;flex-shrink:0;font-size:13px}.completed-filter-chips{flex-wrap:wrap;gap:8px;display:flex}@media (width<=900px){.approval-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.approval-summary-grid{grid-template-columns:1fr}.completed-search-bar{max-width:100%}}@media (width<=768px){.activity-log-summary{white-space:normal!important;max-width:none!important;text-overflow:unset!important;cursor:default!important;overflow:visible!important}}.proj-info-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.proj-info-company{align-items:center;gap:8px;display:flex}.proj-info-avatar{width:36px;height:36px;font-size:13px;font-weight:700;font-family:var(--f-sans);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.proj-info-company-name{color:var(--c-muted);font-size:13px;font-weight:500}.proj-info-chips{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.proj-info-name{color:var(--c-ink);letter-spacing:-.02em;margin:0 0 24px;font-size:22px;font-weight:700;line-height:1.3}.proj-info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin-bottom:28px;display:grid}.proj-info-item{flex-direction:column;gap:6px;display:flex}.proj-info-label{text-transform:uppercase;letter-spacing:.08em;color:var(--c-soft);font-size:11px;font-weight:600;font-family:var(--f-mono)}.proj-info-value{color:var(--c-ink);font-size:14px}.proj-info-mono{font-family:var(--f-mono);font-size:13px}.proj-info-progress{margin-bottom:24px}.proj-info-progress-header{color:var(--c-body);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;display:flex}.proj-info-progress-track{border-radius:99px;height:6px;overflow:hidden}.proj-info-progress-bar{border-radius:99px;height:100%;transition:width .4s}.proj-info-dday{border-radius:var(--r-md);border:1px solid #0000;justify-content:center;align-items:center;margin-bottom:24px;padding:14px 20px;display:flex}.proj-info-dday--on_track{background:var(--c-surface-soft);border-color:var(--c-hairline)}.proj-info-dday--delayed{background:#fef2f2;border-color:#fca5a5}.proj-info-dday--completed{background:#f0fdf4;border-color:#86efac}.proj-info-dday-text{font-family:var(--f-mono);letter-spacing:-.02em;font-size:20px;font-weight:700}.proj-info-dday--on_track .proj-info-dday-text{color:var(--c-ink)}.proj-info-dday--delayed .proj-info-dday-text{color:#dc2626}.proj-info-dday--completed .proj-info-dday-text{color:#16a34a}.proj-info-members-header{color:var(--c-ink);justify-content:space-between;align-items:center;margin-bottom:14px;font-size:14px;font-weight:600;display:flex}.proj-member-stack{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.proj-member-avatars{align-items:center;display:flex}.proj-member-avatar{border:2px solid var(--c-canvas);width:32px;height:32px;font-size:11px;font-weight:700;font-family:var(--f-sans);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.proj-member-avatar+.proj-member-avatar{margin-left:-8px}.proj-member-avatar-more{background:var(--c-surface-soft);color:var(--c-muted);font-size:10px}.proj-member-names{color:var(--c-muted);font-size:13px}.proj-info-actions{border-top:1px solid var(--c-hairline-soft);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding-top:20px;display:flex}@media (width<=640px){.proj-info-grid{grid-template-columns:1fr 1fr}.proj-info-actions{justify-content:stretch}.proj-info-actions .btn{flex:1;justify-content:center}.proj-info-dday-text{font-size:18px}}.note-timeline{flex-direction:column;display:flex}.note-tl-day{margin-bottom:24px}.note-tl-day:last-child{margin-bottom:0}.note-tl-date{color:var(--c-muted);letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--c-hairline-soft);margin-bottom:4px;padding:0 0 8px 116px;font-size:12px;font-weight:700}.note-tl-row{grid-template-columns:68px 24px 1fr;column-gap:12px;display:grid}.note-tl-time{font-family:var(--f-mono);color:var(--c-muted);text-align:right;padding-top:18px;font-size:12px;line-height:1}.note-tl-axis{position:relative}.note-tl-axis:before{content:"";background:var(--c-hairline);width:1px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.note-tl-row.is-last .note-tl-axis:before{bottom:calc(100% - 34px)}.note-tl-dot{z-index:1;border:2px solid var(--c-canvas);width:10px;height:10px;box-shadow:0 0 0 1px var(--c-hairline);border-radius:50%;position:absolute;top:18px;left:50%;transform:translate(-50%)}.note-tl-card{background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-md);min-width:0;margin-bottom:12px;padding:14px 16px;transition:box-shadow .15s}.note-tl-card:hover{box-shadow:var(--shadow-sm,0 1px 4px #00000014)}@media (width<=640px){.note-tl-date{padding-left:80px}.note-tl-row{grid-template-columns:44px 18px 1fr;column-gap:8px}.note-tl-time{font-size:11px}.note-tl-dot{width:8px;height:8px;top:19px}.note-tl-row.is-last .note-tl-axis:before{bottom:calc(100% - 32px)}}.vdrive-root{flex-direction:column;gap:0;display:flex}.vdrive-lock-banner{border-radius:var(--r-md);color:#92400e;background:#fef9ec;border:1px solid #f5c543;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;font-size:13px;display:flex}.vdrive-folder-tabs{border-bottom:1px solid var(--c-hairline);scrollbar-width:none;gap:0;margin-bottom:0;display:flex;overflow-x:auto}.vdrive-folder-tabs::-webkit-scrollbar{display:none}.vdrive-folder-tab{cursor:pointer;color:var(--c-text-3);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.vdrive-folder-tab:hover{color:var(--c-text-1)}.vdrive-folder-tab.is-active{color:var(--c-primary,#0052ff);border-bottom-color:var(--c-primary,#0052ff)}.vdrive-folder-count{background:var(--c-surface-alt,#f1f5f9);min-width:18px;height:18px;color:var(--c-text-2);border-radius:9px;justify-content:center;align-items:center;padding:0 5px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;display:inline-flex}.vdrive-folder-tab.is-active .vdrive-folder-count{color:var(--c-primary,#0052ff);background:#e6eeff}.vdrive-upload-area{border:1.5px dashed var(--c-hairline);border-radius:var(--r-md);cursor:pointer;background:var(--c-canvas);justify-content:center;align-items:center;gap:10px;min-height:64px;margin:14px 0 4px;padding:18px 24px;transition:border-color .15s,background .15s;display:flex}.vdrive-upload-area:hover,.vdrive-upload-area.is-dragover{border-color:var(--c-primary,#0052ff);background:#f0f5ff}.vdrive-upload-area.is-uploading{opacity:.6;cursor:wait}.vdrive-upload-icon{color:var(--c-text-3);flex-shrink:0}.vdrive-upload-hint{color:var(--c-text-2);font-size:13px}.vdrive-upload-sub{color:var(--c-text-4,#94a3b8);font-size:12px}.vdrive-upload-disabled{background:var(--c-surface);border:1px solid var(--c-hairline);border-radius:var(--r-md);color:var(--c-text-3);align-items:center;gap:8px;margin:14px 0 4px;padding:14px 18px;font-size:13px;display:flex}.vdrive-loading{text-align:center;color:var(--c-text-3);padding:32px;font-size:14px}.vdrive-file-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;max-width:260px;font-weight:500;display:flex;overflow:hidden}.vdrive-file-icon{color:var(--c-text-3);flex-shrink:0}.vdrive-actions{align-items:center;gap:4px;display:flex}.vdrive-delete-btn{color:var(--c-error,#ef4444)!important}.vdrive-checksum{color:var(--c-text-3);background:var(--c-surface-alt,#f1f5f9);border-radius:4px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:12px}.vdrive-delete-msg{margin:0 0 8px;font-size:15px}.vdrive-delete-sub{color:var(--c-text-3);margin:0;font-size:13px}@media (width<=640px){.vdrive-folder-tab{padding:9px 12px;font-size:12px}.vdrive-upload-area{gap:8px;padding:16px}.vdrive-upload-sub{display:none}.vdrive-file-name{max-width:140px}}.badge-ticket-pending{color:var(--c-warning);background:var(--c-warning-soft)}.badge-ticket-pending:before{background:var(--c-warning)}.badge-ticket-progress{color:var(--c-info);background:var(--c-info-soft)}.badge-ticket-progress:before{background:var(--c-info)}.badge-ticket-completed{color:var(--c-success);background:var(--c-success-soft)}.badge-ticket-completed:before{background:var(--c-success)}.badge-ticket-closed{color:var(--c-neutral);background:var(--c-neutral-soft)}.badge-ticket-closed:before{background:var(--c-neutral)}.badge-urgent{color:var(--c-danger);background:var(--c-danger-soft)}.badge-urgent:before{background:var(--c-danger)}.badge-normal{color:var(--c-info);background:var(--c-info-soft)}.badge-normal:before{background:var(--c-info)}.badge-low{color:var(--c-muted);background:var(--c-surface-strong)}.badge-low:before{background:var(--c-muted)}.badge-paid{color:var(--c-danger);background:var(--c-danger-soft);font-weight:700}.badge-paid:before{background:var(--c-danger)}.ticket-detail-layout{grid-template-columns:1fr 380px;align-items:start;gap:20px;display:grid}.ticket-meta-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;margin:0;display:grid}.ticket-meta-divider{border:none;border-top:1px solid var(--c-hairline);grid-column:1/-1;margin:2px 0}.ticket-meta-item{flex-direction:column;gap:4px;display:flex}.ticket-meta-label{color:var(--c-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.ticket-meta-value{color:var(--c-ink);font-size:14px;font-weight:500}.comment-panel{flex-direction:column;height:100%;display:flex}.comment-list{scroll-behavior:smooth;flex-direction:column;gap:12px;height:400px;padding:16px 20px;display:flex;overflow-y:auto}.comment-list::-webkit-scrollbar{width:4px}.comment-list::-webkit-scrollbar-track{background:0 0}.comment-list::-webkit-scrollbar-thumb{background:var(--c-hairline);border-radius:2px}@media (width<=768px){.comment-list{height:300px}}.comment-item{gap:10px;display:flex}.comment-bubble{background:var(--c-surface-soft);border-radius:var(--r-md);flex:1;min-width:0;padding:10px 14px}.comment-bubble.is-mine{background:var(--c-brand-soft)}.comment-bubble.is-client{background:#fff7ed;border:1px solid #fed7aa}.comment-header{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.comment-author{color:var(--c-ink);font-size:13px;font-weight:600}.comment-time{color:var(--c-muted);margin-left:auto;font-size:11px}.comment-body{color:var(--c-body);white-space:pre-wrap;word-break:break-word;font-size:14px}.comment-attach{color:var(--c-brand);margin-top:4px;font-size:12px}.comment-form{flex-direction:column;gap:8px;margin-top:16px;display:flex}.attach-list{flex-direction:column;gap:8px;display:flex}.attach-item{background:var(--c-surface-soft);border-radius:var(--r-md);align-items:center;gap:10px;padding:10px 12px;display:flex}.attach-name{color:var(--c-ink);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:500;overflow:hidden}.attach-meta{color:var(--c-muted);white-space:nowrap;font-size:11px}@media (width<=900px){.ticket-detail-layout{grid-template-columns:1fr}}@media (width<=640px){.ticket-meta-grid{grid-template-columns:repeat(2,1fr)}}.ticket-mobile-tabs{border-bottom:1px solid var(--c-hairline);gap:0;margin-bottom:16px;display:flex}.ticket-mobile-tabs .tab-item{flex:1;justify-content:center;height:44px;padding:0 8px;font-size:14px}.ticket-mobile-comment .form-card{height:auto}.ticket-mobile-comment .comment-input-wrap{background:var(--c-canvas);z-index:10;position:sticky;bottom:0}.dashboard-summary-cards{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;display:grid}.dsc-card{flex-direction:column;min-height:180px;padding:16px 18px;display:flex}.dsc-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.dsc-title{color:var(--c-ink);font-size:14px;font-weight:600}.dsc-list{flex:1;margin:0;padding:0;list-style:none}.dsc-list li{border-bottom:1px solid var(--c-hairline-soft);align-items:center;gap:8px;min-width:0;padding:6px 0;font-size:13px;display:flex}.dsc-item-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dsc-foot{color:var(--c-muted);font-size:12px;font-family:var(--f-mono);text-align:right;margin-top:10px}@media (width<=768px){.dashboard-summary-cards{grid-template-columns:1fr}}.dashboard-grid{grid-template-columns:2fr 1fr;align-items:stretch;gap:20px;display:grid}.dashboard-col-main{min-width:0}.dashboard-col-side{flex-direction:column;min-width:0;display:flex}@media (width<=768px){.dashboard-grid{grid-template-columns:1fr}}.todo-section{flex-direction:column;flex:1;gap:0;min-height:0;margin-bottom:0;padding:20px 24px;display:flex}.todo-head{margin-bottom:14px}.todo-tabs{gap:6px;display:flex}.todo-tab-chip{gap:5px;height:28px;padding:0 10px;font-size:12px}.todo-input-wrap{margin-bottom:8px}.todo-input{border:1px solid var(--c-hairline);border-radius:var(--r-md);background:var(--c-canvas);width:100%;height:36px;font-family:var(--f-sans);color:var(--c-ink);box-sizing:border-box;outline:none;padding:0 12px;font-size:13px;transition:border-color .12s,box-shadow .12s}.todo-input:focus{border-color:var(--c-brand);box-shadow:var(--s-focus)}.todo-input::placeholder{color:var(--c-muted)}.todo-input:disabled{opacity:.6;cursor:not-allowed}.todo-list{scrollbar-width:thin;scrollbar-color:var(--c-hairline-strong) transparent;flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.todo-list::-webkit-scrollbar{width:4px}.todo-list::-webkit-scrollbar-track{background:0 0}.todo-list::-webkit-scrollbar-thumb{background:var(--c-hairline-strong);border-radius:2px}.todo-loading{text-align:center;color:var(--c-muted);padding:20px 0;font-size:13px}.todo-empty-state{padding:32px 16px}.todo-empty-state .empty-title{font-size:14px}.todo-empty-state .empty-desc{margin-bottom:0;font-size:13px}.todo-complete-divider{color:var(--c-muted);font-size:11px;font-weight:600;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;margin:10px 0 4px;display:flex}.todo-complete-divider:before,.todo-complete-divider:after{content:"";background:var(--c-hairline);flex:1;height:1px}.todo-item{border-radius:var(--r-sm);align-items:center;gap:8px;min-width:0;padding:7px 2px;transition:background .1s;display:flex}.todo-item:hover{background:var(--c-surface-soft)}.todo-item:hover .todo-delete{opacity:1}.todo-check-label{cursor:pointer;flex:1;align-items:center;gap:9px;min-width:0;display:flex}.todo-checkbox{width:15px;height:15px;accent-color:var(--c-brand);cursor:pointer;border-radius:var(--r-sm);flex:0 0 15px}.todo-content{color:var(--c-body);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;line-height:1.45;overflow:hidden}.todo-done{color:var(--c-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--c-hairline-strong);text-decoration-color:var(--c-hairline-strong)}.todo-delete{width:22px;height:22px;color:var(--c-muted);border-radius:var(--r-sm);cursor:pointer;opacity:0;background:0 0;border:none;flex:none;justify-content:center;align-items:center;transition:opacity .15s,background .12s,color .12s;display:flex}.todo-delete:hover{background:var(--c-danger-soft);color:var(--c-danger)}.me-head{border-bottom:1px solid var(--c-hairline-soft);align-items:center;gap:20px;margin-bottom:0;padding:8px 0 28px;display:flex}.me-avatar-wrap{cursor:pointer;border-radius:50%;flex-shrink:0;width:64px;height:64px;position:relative}.me-avatar-wrap:hover .me-avatar-overlay{opacity:1}.me-avatar{background:var(--c-brand-soft);width:64px;height:64px;color:var(--c-brand);letter-spacing:-.01em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:inline-flex}.me-avatar-img{object-fit:cover;object-position:center;border-radius:50%;width:64px;height:64px;display:block}.me-avatar-overlay{opacity:0;background:#0000006b;border-radius:50%;justify-content:center;align-items:center;font-size:20px;transition:opacity .18s;display:flex;position:absolute;inset:0}.me-head-info{flex:1;min-width:0}.me-head-name{color:var(--c-ink);letter-spacing:-.012em;margin:0 0 6px;font-size:22px;font-weight:600}.me-head-meta{color:var(--c-muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.me-head-meta .num{font-family:var(--f-mono);letter-spacing:.01em}.me-head-meta .sep{color:var(--c-soft)}.me-tabs-wrap{z-index:5;background:var(--c-canvas);margin:0 -40px;padding:0 40px;position:sticky;top:56px}.me-tabs{border-bottom:1px solid var(--c-hairline);gap:28px}.me-tabs .tab-item{height:44px;padding:0}.me-panel{padding:32px 0 8px}.form-card{border:1px solid var(--c-hairline);border-radius:var(--r-lg);background:var(--c-canvas);margin-bottom:24px;padding:28px 32px}.form-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.form-card-title{color:var(--c-ink);letter-spacing:-.008em;margin:0;font-size:16px;font-weight:600}.form-card-sub{color:var(--c-muted);margin:2px 0 20px;font-size:13px}.me-row{border-bottom:1px solid var(--c-hairline-soft);justify-content:space-between;align-items:center;gap:16px;padding:16px 0;display:flex}.me-row:last-child{border-bottom:none}.me-row-info{flex-direction:column;gap:4px;min-width:0;display:flex}.me-row-label{color:var(--c-ink);font-size:14px;font-weight:600}.me-row-val{color:var(--c-muted);font-size:13px;font-family:var(--f-mono);letter-spacing:.01em}.me-row-val.normal{font-family:var(--f-sans)}.auth-note{border-radius:var(--r-md);background:var(--c-warning-soft);color:var(--c-warning);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.pw-form .float-grid{grid-template-columns:1fr;gap:24px;max-width:480px}.pw-toggle{color:var(--c-muted);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;align-items:center;padding:6px;transition:color .12s,background .12s;display:inline-flex;position:absolute;bottom:6px;right:0}.pw-toggle:hover{color:var(--c-ink);background:var(--c-surface-soft)}.pw-toggle:focus-visible{box-shadow:var(--s-focus);outline:none}.pw-input{padding-right:32px!important}.pw-strength{flex-direction:column;gap:8px;max-width:480px;margin-top:-10px;display:flex}.pw-bars{gap:4px;display:flex}.pw-bar{background:var(--c-surface-strong);border-radius:2px;flex:1;height:4px;transition:background .18s}.pw-strength.is-1 .pw-bar:first-child{background:var(--c-danger)}.pw-strength.is-2 .pw-bar:nth-child(-n+2){background:var(--c-warning)}.pw-strength.is-3 .pw-bar:nth-child(-n+3){background:var(--c-info)}.pw-strength.is-4 .pw-bar:nth-child(-n+4){background:var(--c-success)}.pw-strength-label{color:var(--c-muted);align-items:center;gap:6px;font-size:12px;display:flex}.pw-strength-label .level{color:var(--c-muted);font-weight:600}.pw-strength.is-1 .level{color:var(--c-danger)}.pw-strength.is-2 .level{color:var(--c-warning)}.pw-strength.is-3 .level{color:var(--c-info)}.pw-strength.is-4 .level{color:var(--c-success)}.pw-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.pw-feedback{color:var(--c-success);align-items:center;gap:6px;font-size:13px;display:none}.pw-feedback.is-shown{display:inline-flex}.session-list{flex-direction:column;display:flex}.session{border-bottom:1px solid var(--c-hairline-soft);align-items:center;gap:14px;padding:14px 0;display:flex}.session:last-child{border-bottom:none}.session-icon{border-radius:var(--r-md);background:var(--c-surface-strong);width:36px;height:36px;color:var(--c-body);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.session-info{flex:1;min-width:0}.session-device{color:var(--c-ink);margin-bottom:2px;font-size:14px;font-weight:500}.session-device .badge{margin-left:6px;font-size:11px}.session-meta{color:var(--c-muted);font-size:12px;font-family:var(--f-mono);letter-spacing:.01em}.session-revoke{border:1px solid var(--c-hairline);background:var(--c-canvas);color:var(--c-body);border-radius:var(--r-md);cursor:pointer;height:30px;padding:0 12px;font-size:12px;font-weight:500;transition:border-color .12s,color .12s}.session-revoke:hover{border-color:var(--c-danger);color:var(--c-danger)}.me-toggle{background:var(--c-surface-sunken);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:36px;height:20px;transition:background .18s;position:relative}.me-toggle:after{content:"";background:var(--c-canvas);border-radius:50%;width:16px;height:16px;transition:transform .18s cubic-bezier(.2,0,0,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #0b10201f}.me-toggle.is-on{background:var(--c-brand)}.me-toggle.is-on:after{transform:translate(16px)}.pw-rules{color:var(--c-muted);flex-wrap:wrap;gap:8px 14px;font-size:12px;display:flex}.pw-rule{align-items:center;gap:5px;display:inline-flex}.pw-rule:before{content:"";background:var(--c-surface-strong);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239099A8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>");background-position:50%;background-repeat:no-repeat;background-size:10px 10px;border-radius:50%;width:14px;height:14px;transition:background-color .18s}.pw-rule.is-ok:before{background-color:var(--c-success-soft);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2306A66B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>")}.pw-rule.is-ok{color:var(--c-success)}@media (width<=1024px){.me-tabs-wrap{margin:0 -24px;padding:0 24px}}@media (width<=640px){.me-head{flex-wrap:wrap}.form-card{padding:20px}.pw-form .float-grid{gap:20px}}.settings-layout{min-height:400px;display:flex}.settings-sidebar{border-right:1px solid var(--c-hairline-soft);flex-shrink:0;width:180px;padding:8px 0 24px}.settings-sidebar a{color:var(--c-body);border-right:2px solid #0000;padding:10px 24px;font-size:14px;font-weight:400;text-decoration:none;transition:background .12s;display:block}.settings-sidebar a:hover{background:var(--c-surface-raised,#00000008);color:var(--c-ink)}.settings-sidebar a.is-active{color:var(--c-brand);border-right-color:var(--c-brand);background:#0052ff0f;font-weight:600}.settings-content{flex:1;min-width:0;padding:24px 24px 40px}.settings-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.branding-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=768px){.settings-layout{flex-direction:column}.settings-sidebar{border-right:none;border-bottom:1px solid var(--c-hairline-soft);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;width:100%;padding:0;display:flex;overflow-x:auto}.settings-sidebar::-webkit-scrollbar{display:none}.settings-sidebar a{white-space:nowrap;border-bottom:2px solid #0000;border-right:none;flex:none;padding:10px 16px}.settings-sidebar a.is-active{border-right-color:#0000;border-bottom-color:var(--c-brand)}.settings-content{padding:20px 16px 40px}.settings-content .float-grid,.settings-content .float-grid-3{grid-template-columns:1fr;gap:20px}.settings-content .float-grid .span-2{grid-column:span 1}.branding-grid{grid-template-columns:1fr}.settings-section-head{flex-direction:column;align-items:flex-start}}:root{--cal-color-milestone:#0052ff;--cal-color-milestone-bg:#e8f0ff;--cal-color-leave:#16a34a;--cal-color-leave-bg:#dcfce7;--cal-color-trip:#ea580c;--cal-color-trip-bg:#ffedd5;--cal-color-company:#7c3aed;--cal-color-company-bg:#ede9fe;--cal-color-amber:#d97706;--cal-color-amber-bg:#fef3c7;--cal-color-slate:#475569;--cal-color-slate-bg:#f1f5f9}.calendar-section{flex-direction:column;gap:16px;display:flex}.calendar-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.calendar-nav{align-items:center;gap:6px;display:flex}.calendar-nav-btn{border:1px solid var(--c-hairline);background:var(--c-canvas);width:32px;height:32px;color:var(--c-body);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .12s,border-color .12s;display:inline-flex}.calendar-nav-btn:hover{background:var(--c-surface);border-color:var(--c-hairline-strong)}.calendar-month-label{font-family:var(--f-mono);letter-spacing:.02em;color:var(--c-heading);text-align:center;min-width:120px;font-size:15px;font-weight:600}.calendar-today-btn{border:1px solid var(--c-hairline);background:var(--c-canvas);height:32px;color:var(--c-muted);cursor:pointer;border-radius:8px;padding:0 10px;font-size:12px;font-weight:500;transition:background .12s}.calendar-today-btn:hover{background:var(--c-surface);color:var(--c-body)}.calendar-filter-chips{flex-wrap:wrap;align-items:center;gap:6px;margin-left:auto;display:flex}.cal-add-btn{flex-shrink:0;align-items:center;gap:4px;margin-left:8px;display:inline-flex}.cal-filter-chip{background:var(--c-surface);color:var(--c-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border:1.5px solid #0000;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:500;transition:all .12s;display:inline-flex}.cal-filter-chip:hover{border-color:var(--c-hairline-strong);color:var(--c-body)}.cal-filter-chip.active{color:var(--c-body)}.cal-filter-chip.active[data-type=project_milestone]{border-color:var(--cal-color-milestone);background:var(--cal-color-milestone-bg);color:var(--cal-color-milestone)}.cal-filter-chip.active[data-type=leave]{border-color:var(--cal-color-leave);background:var(--cal-color-leave-bg);color:var(--cal-color-leave)}.cal-filter-chip.active[data-type=business_trip]{border-color:var(--cal-color-trip);background:var(--cal-color-trip-bg);color:var(--cal-color-trip)}.cal-filter-chip.active[data-type=company_event]{border-color:var(--cal-color-company);background:var(--cal-color-company-bg);color:var(--cal-color-company)}.cal-filter-chip.active[data-type=schedule]{border-color:var(--cal-color-amber);background:var(--cal-color-amber-bg);color:var(--cal-color-amber)}.cal-filter-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}[data-type=project_milestone] .cal-filter-dot{background:var(--cal-color-milestone)}[data-type=leave] .cal-filter-dot{background:var(--cal-color-leave)}[data-type=business_trip] .cal-filter-dot{background:var(--cal-color-trip)}[data-type=company_event] .cal-filter-dot{background:var(--cal-color-company)}[data-type=schedule] .cal-filter-dot{background:var(--cal-color-amber)}.calendar-grid{border:1px solid var(--c-hairline);background:var(--c-canvas);border-radius:12px;overflow:hidden}.calendar-weekdays{border-bottom:1px solid var(--c-hairline);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;color:var(--c-muted);letter-spacing:.04em;text-transform:uppercase;padding:8px 0;font-size:11px;font-weight:600}.calendar-weekday:first-child{color:#dc2626}.calendar-weekday:last-child{color:#2563eb}.calendar-cells{grid-template-columns:repeat(7,1fr);display:grid}.calendar-cell{border-right:1px solid var(--c-hairline);border-bottom:1px solid var(--c-hairline);flex-direction:column;gap:2px;min-height:110px;padding:6px 5px 4px;display:flex;overflow:hidden}.calendar-cell:nth-child(7n){border-right:none}.calendar-cell:nth-last-child(-n+7){border-bottom:none}.calendar-cell.other-month{background:var(--c-surface-dim,var(--c-surface));opacity:.55}.calendar-cell.today .cell-date-num{background:var(--c-primary,#0052ff);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:flex}.cell-date-row{align-items:center;margin-bottom:2px;display:flex}.cell-date-num{font-family:var(--f-mono);color:var(--c-body);text-align:center;min-width:22px;padding:3px 0;font-size:12px;font-weight:500;line-height:1}.cell-date-num.sun{color:#dc2626}.cell-date-num.sat{color:#2563eb}.cal-event-pill{background:var(--c-surface);cursor:pointer;border:none;border-radius:4px;align-items:center;gap:4px;min-width:0;padding:2px 5px;transition:opacity .1s,filter .1s;display:flex;overflow:hidden}.cal-event-pill:hover{filter:brightness(.95)}.cal-event-stripe{border-radius:2px;flex-shrink:0;align-self:stretch;width:3px;min-height:12px}.cal-event-stripe.blue{background:var(--cal-color-milestone)}.cal-event-stripe.green{background:var(--cal-color-leave)}.cal-event-stripe.orange{background:var(--cal-color-trip)}.cal-event-stripe.purple{background:var(--cal-color-company)}.cal-event-stripe.amber{background:var(--cal-color-amber)}.cal-event-stripe.slate{background:var(--cal-color-slate)}.cal-event-pill-bg-blue{background:var(--cal-color-milestone-bg)}.cal-event-pill-bg-green{background:var(--cal-color-leave-bg)}.cal-event-pill-bg-orange{background:var(--cal-color-trip-bg)}.cal-event-pill-bg-purple{background:var(--cal-color-company-bg)}.cal-event-pill-bg-amber{background:var(--cal-color-amber-bg)}.cal-event-pill-bg-slate{background:var(--cal-color-slate-bg)}.cal-event-title{color:var(--c-body);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:11px;font-weight:500;overflow:hidden}.cal-event-title.blue{color:#1a3bcc}.cal-event-title.green{color:#15803d}.cal-event-title.orange{color:#b45309}.cal-event-title.purple{color:#5b21b6}.cal-event-title.amber{color:#92400e}.cal-event-title.slate{color:#334155}.cal-more-link{color:var(--c-muted);cursor:pointer;padding:1px 4px;font-size:10px;font-weight:600;transition:color .1s}.cal-more-link:hover{color:var(--c-body)}.calendar-loading{background:var(--c-hairline);border-radius:12px;grid-template-columns:repeat(7,1fr);gap:1px;min-height:440px;display:grid;overflow:hidden}.calendar-loading-cell{background:var(--c-canvas);min-height:110px;padding:8px}.calendar-list{border:1px solid var(--c-hairline);border-radius:12px;flex-direction:column;gap:0;display:flex;overflow:hidden}.calendar-list-day{border-bottom:1px solid var(--c-hairline)}.calendar-list-day:last-child{border-bottom:none}.calendar-list-day-header{background:var(--c-surface);align-items:center;gap:10px;padding:10px 14px 6px;display:flex}.calendar-list-day-date{font-family:var(--f-mono);color:var(--c-body);font-size:12px;font-weight:700}.calendar-list-day-date.today-label{background:var(--c-primary,#0052ff);color:#fff;border-radius:6px;padding:2px 7px;font-size:11px}.calendar-list-day-name{color:var(--c-muted);font-size:11px}.calendar-list-events{flex-direction:column;gap:4px;padding:6px 12px 8px;display:flex}.cal-list-event{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:7px 10px;transition:filter .1s;display:flex}.cal-list-event:hover{filter:brightness(.96)}.cal-list-event.blue{background:var(--cal-color-milestone-bg)}.cal-list-event.green{background:var(--cal-color-leave-bg)}.cal-list-event.orange{background:var(--cal-color-trip-bg)}.cal-list-event.purple{background:var(--cal-color-company-bg)}.cal-list-event.amber{background:var(--cal-color-amber-bg)}.cal-list-event.slate{background:var(--cal-color-slate-bg)}.cal-list-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.cal-list-dot.blue{background:var(--cal-color-milestone)}.cal-list-dot.green{background:var(--cal-color-leave)}.cal-list-dot.orange{background:var(--cal-color-trip)}.cal-list-dot.purple{background:var(--cal-color-company)}.cal-list-dot.amber{background:var(--cal-color-amber)}.cal-list-dot.slate{background:var(--cal-color-slate)}.cal-list-info{flex:1;min-width:0}.cal-list-title{color:var(--c-body);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.cal-list-type{color:var(--c-muted);margin-top:1px;font-size:11px}.cal-detail-header{align-items:center;gap:10px;margin-bottom:18px;display:flex}.cal-detail-type-chip{border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.cal-detail-type-chip.blue{background:var(--cal-color-milestone-bg);color:var(--cal-color-milestone)}.cal-detail-type-chip.green{background:var(--cal-color-leave-bg);color:var(--cal-color-leave)}.cal-detail-type-chip.orange{background:var(--cal-color-trip-bg);color:var(--cal-color-trip)}.cal-detail-type-chip.purple{background:var(--cal-color-company-bg);color:var(--cal-color-company)}.cal-detail-type-chip.amber{background:var(--cal-color-amber-bg);color:var(--cal-color-amber)}.cal-detail-type-chip.slate{background:var(--cal-color-slate-bg);color:var(--cal-color-slate)}.cal-detail-title{color:var(--c-heading);margin-bottom:16px;font-size:18px;font-weight:700;line-height:1.35}.cal-detail-rows{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.cal-detail-row{align-items:flex-start;gap:10px;display:flex}.cal-detail-row-label{color:var(--c-muted);min-width:56px;padding-top:1px;font-size:12px;font-weight:600}.cal-detail-row-val{color:var(--c-body);font-size:13px;font-family:var(--f-mono)}.cal-detail-user{align-items:center;gap:7px;display:flex}.cal-detail-avatar{background:var(--c-surface);border:1px solid var(--c-hairline);width:26px;height:26px;color:var(--c-body);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}@media (width<=640px){.calendar-header{row-gap:8px}.cal-add-btn{width:36px;height:36px;min-width:unset;border-radius:50%;order:0;justify-content:center;margin-left:auto;padding:0}.cal-add-label{display:none}.calendar-filter-chips{order:1;width:100%;margin-left:0}.calendar-cell{min-height:72px;padding:4px 3px 3px}.calendar-grid{display:none}.calendar-list{display:flex}}@media (width>=641px){.calendar-list{display:none}.calendar-grid{display:block}}
