:root{--sans:"Geist Variable", system-ui, -apple-system, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--heading:var(--sans);--mono:ui-monospace, "SF Mono", Consolas, monospace;--background:oklch(98.5% .002 75);--foreground:oklch(14.5% .005 50);--card:oklch(100% 0 0);--card-foreground:oklch(14.5% .005 50);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.5% .005 50);--primary:oklch(14.5% .005 50);--primary-foreground:oklch(98.5% .002 75);--secondary:oklch(97% .001 75);--secondary-foreground:oklch(25% .005 50);--muted:oklch(97% .001 75);--muted-foreground:oklch(55.6% .01 60);--accent:oklch(97% .001 75);--accent-foreground:oklch(25% .005 50);--destructive:oklch(57.7% .245 27.325);--success:oklch(62% .17 150);--warning:oklch(75% .16 75);--info:oklch(60% .14 250);--input:oklch(92.2% .004 60);--ring:oklch(14.5% .005 50);--border:oklch(92.2% .004 60);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(60% .2 280);--chart-3:oklch(50% .15 300);--chart-4:oklch(45% .18 260);--chart-5:oklch(35% .12 280);--radius:.5rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:var(--radius);--radius-xl:.75rem;--radius-2xl:.75rem;--radius-3xl:.75rem;--radius-4xl:.75rem;--sidebar:oklch(100% 0 0);--sidebar-foreground:oklch(14.5% .005 50);--sidebar-primary:oklch(14.5% .005 50);--sidebar-primary-foreground:oklch(98.5% .002 75);--sidebar-accent:oklch(97% .001 75);--sidebar-accent-foreground:oklch(25% .005 50);--sidebar-border:oklch(92.2% .004 60);--sidebar-ring:oklch(70.8% .005 60);--card-shadow:0 2px 8px #1c19170a, 0 8px 24px #1c19170f;--shadow-sm:0 1px 2px #1c19170d;--shadow-md:0 4px 12px #1c191714;--shadow-lg:0 12px 32px #1c19171f}.dark{--background:oklch(13% .018 248);--foreground:oklch(94% .012 248);--card:oklch(18% .02 248);--card-foreground:oklch(96% .01 248);--popover:oklch(16% .02 248);--popover-foreground:oklch(96% .01 248);--primary:oklch(78% .16 72);--primary-foreground:oklch(14% .018 248);--secondary:oklch(22% .022 248);--secondary-foreground:oklch(93% .012 248);--muted:oklch(23% .018 248);--muted-foreground:oklch(72% .025 252);--accent:oklch(26% .045 72);--accent-foreground:oklch(90% .1 76);--destructive:oklch(68% .2 24);--success:oklch(74% .17 155);--warning:oklch(82% .16 78);--info:oklch(72% .13 240);--input:oklch(100% 0 0/.16);--ring:var(--primary);--border:oklch(100% 0 0/.11);--chart-1:oklch(78% .16 72);--chart-2:oklch(72% .13 240);--chart-3:oklch(74% .17 155);--chart-4:oklch(68% .2 24);--chart-5:oklch(70% .12 310);--sidebar:oklch(11.5% .018 248);--sidebar-foreground:oklch(94% .012 248);--sidebar-primary:var(--primary);--sidebar-primary-foreground:var(--primary-foreground);--sidebar-accent:oklch(19% .02 248);--sidebar-accent-foreground:oklch(96% .01 248);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:var(--primary);--card-shadow:0 2px 10px #00000047, 0 12px 32px #0000006b;--shadow-sm:0 1px 2px #0000005c;--shadow-md:0 6px 18px #0000006b;--shadow-lg:0 18px 48px #0000008f}*{box-sizing:border-box}html{font-family:var(--sans);scroll-behavior:smooth}body{background:var(--background);color:var(--foreground);font:16px/1.5 var(--sans);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}.dark body{background-color:var(--background);background-image:linear-gradient(180deg, color-mix(in oklab, var(--primary) 6%, transparent), transparent 34%), linear-gradient(color-mix(in oklab, var(--border) 42%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--border) 42%, transparent) 1px, transparent 1px);background-position:top,0 0,0 0;background-size:auto,40px 40px,40px 40px;background-attachment:fixed}h1,h2,h3,h4,h5,h6,p{margin:0}a{color:inherit;text-decoration:none}code{font-family:var(--mono);background:var(--muted);color:var(--foreground);border-radius:6px;padding:2px 6px;font-size:13px}.text-ellipsis,.mono-ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;display:block;overflow:hidden}.mono-ellipsis{font-family:var(--mono);font-size:13px}.text-clamp-2,.text-clamp-3{-webkit-box-orient:vertical;min-width:0;max-width:100%;display:-webkit-box;overflow:hidden}.text-clamp-2{-webkit-line-clamp:2}.text-clamp-3{-webkit-line-clamp:3}.bounded-text{overflow-wrap:anywhere;word-break:break-word;min-width:0;max-width:100%}*{scrollbar-width:thin;scrollbar-color:color-mix(in oklab, var(--muted-foreground) 30%, transparent) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:color-mix(in oklab, var(--muted-foreground) 28%, transparent);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:color-mix(in oklab, var(--muted-foreground) 50%, transparent);background-clip:padding-box}::-webkit-scrollbar-track{background:0 0}.layout{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);width:15rem;height:100vh;color:var(--sidebar-foreground);border-right:1px solid var(--sidebar-border);flex-direction:column;flex:none;transition:width .22s;display:flex;position:sticky;top:0}.dark .sidebar{background:var(--sidebar)}.sidebar-header{padding:16px 14px}.brand{cursor:pointer;text-align:left;width:100%;height:44px;color:inherit;border-radius:var(--radius-md);background:0 0;border:0;align-items:center;gap:12px;padding:0;transition:background .15s;display:flex}.brand:hover{background:var(--sidebar-accent)}.brand-logo{border-radius:var(--radius-md);color:#fff;background:#000;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.brand-logo svg{width:22px;height:22px}.brand-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.brand-name{white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:700;line-height:1.1;overflow:hidden}.brand-sub{color:var(--muted-foreground);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.1;overflow:hidden}.brand-toggle{width:16px;height:16px;color:var(--muted-foreground);flex:none;margin-left:auto;margin-right:2px;transition:transform .22s}.sidebar-content{flex:1;padding:0 8px 16px;overflow:hidden auto}.nav-group{margin-top:8px}.nav-group-label{height:36px;color:var(--foreground);white-space:nowrap;align-items:center;padding:0 8px;font-size:14px;font-weight:700;display:flex}.nav-list{flex-direction:column;gap:2px;margin:0;padding:0 0 0 4px;list-style:none;display:flex}.nav-link{border-radius:var(--radius-md);width:100%;color:var(--sidebar-foreground);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:8px;font-family:inherit;font-size:14px;line-height:1.25;transition:background .15s,color .15s;display:flex}.nav-link svg{opacity:.85;flex:none;width:16px;height:16px}.nav-link:hover{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground)}.nav-link.active{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground);font-weight:500}.nav-link span{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.nav-chev{flex:none;width:16px;height:16px;margin-left:auto;transition:transform .32s cubic-bezier(.22,1,.36,1)}.nav-node.open>.nav-parent .nav-chev{transform:rotate(180deg)}.nav-sub-wrap{opacity:0;max-height:0;transition:max-height .32s cubic-bezier(.22,1,.36,1),opacity .32s,transform .32s,margin-top .32s;overflow:hidden;transform:translateY(-6px)}.nav-node.open>.nav-sub-wrap{opacity:1;max-height:300px;margin-top:2px;transform:none}.nav-sub{border-left:1px solid var(--sidebar-border);flex-direction:column;gap:2px;margin:0 0 0 14px;padding:2px 0 2px 8px;list-style:none;display:flex}.nav-sublink{padding:7px 8px;font-size:13px}.nav-sublink svg{width:15px;height:15px}.sidebar-footer{border-top:1px solid color-mix(in oklab, var(--sidebar-border) 60%, transparent);padding:8px}.sidebar.collapsed{width:64px}.sidebar.collapsed .sidebar-header{padding:14px 0}.sidebar.collapsed .brand{justify-content:center;gap:0}.sidebar.collapsed .brand-meta,.sidebar.collapsed .brand-toggle,.sidebar.collapsed .nav-group-label,.sidebar.collapsed .nav-chev,.sidebar.collapsed .nav-sub-wrap,.sidebar.collapsed .nav-link span,.sidebar.collapsed .ds-profile .pm,.sidebar.collapsed .ds-profile .chev{display:none}.sidebar.collapsed .nav-list{padding-left:0}.sidebar.collapsed .nav-link{justify-content:center;padding:8px}.sidebar.collapsed .nav-group{border-top:1px solid color-mix(in oklab, var(--sidebar-border) 50%, transparent);margin-top:6px;padding-top:6px}.sidebar.collapsed .nav-group:first-child{border-top:0;padding-top:0}.sidebar.collapsed .ds-profile{justify-content:center;padding:8px}.sidebar.collapsed .ds-menu{bottom:8px;left:calc(100% + 8px)}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{z-index:30;background:color-mix(in oklab, var(--background) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.topbar-title{flex-direction:column;min-width:0;line-height:1.2;display:flex}.topbar-title b{font-size:16px;font-weight:600;font-family:var(--heading);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-title small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.topbar-right{align-items:center;gap:12px;display:flex}.topbar-notify{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);width:34px;height:32px;color:var(--foreground);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex;position:relative}.topbar-notify:hover{background:var(--muted);border-color:color-mix(in oklab, var(--primary) 36%, var(--border))}.topbar-notify:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 40%, transparent);outline:none}.topbar-notify svg{width:16px;height:16px}.topbar-notify-dot{border:2px solid var(--card);background:var(--destructive);border-radius:999px;width:7px;height:7px;position:absolute;top:6px;right:7px}.content{width:100%;max-width:none;padding:32px clamp(24px,2.2vw,44px) 120px}.section{margin-bottom:56px;padding-top:8px;scroll-margin-top:84px}.section-head{margin-bottom:18px}.section-head h2{font-family:var(--heading);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:22px;font-weight:600;overflow:hidden}.section-head p{color:var(--muted-foreground);max-width:72ch;margin-top:6px;font-size:14px}.section-divider{background:var(--border);border:0;height:1px;margin:0 0 28px}.demo{background:var(--card);color:var(--card-foreground);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--border), var(--card-shadow);margin-top:16px;padding:24px}.demo+.demo{margin-top:18px}.demo-title{color:var(--muted-foreground);text-transform:uppercase;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;margin-bottom:16px;font-size:13px;font-weight:600;overflow:hidden}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.grid{gap:14px;display:grid}.label-line{color:var(--muted-foreground);margin-bottom:8px;font-size:13px}.swatches{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.swatch{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);overflow:hidden}.swatch-chip{height:64px}.swatch-meta{padding:10px 12px}.swatch-name{font-size:13px;font-weight:600}.swatch-val{color:var(--muted-foreground);font-size:11px;font-family:var(--mono);word-break:break-all;margin-top:3px}.swatch.bordered .swatch-chip{box-shadow:inset 0 0 0 1px var(--border)}.text-levels>div{border-bottom:1px dashed var(--border);padding:8px 0}.text-levels>div:last-child{border-bottom:0}.t-fg{color:var(--foreground)}.t-secondary{color:var(--secondary-foreground)}.t-muted{color:var(--muted-foreground)}.t-primary{color:var(--primary)}.t-destructive{color:var(--destructive)}.type-row{border-bottom:1px dashed var(--border);align-items:baseline;gap:18px;padding:12px 0;display:flex}.type-row:last-child{border-bottom:0}.type-row .tag{font-size:11px;font-family:var(--mono);color:var(--muted-foreground);flex:none;width:120px}.t-h1{letter-spacing:0;font-size:28px;font-weight:600;font-family:var(--heading)}.t-h2{letter-spacing:0;font-size:22px;font-weight:600;font-family:var(--heading)}.t-h3{font-size:18px;font-weight:600}.t-base{font-size:16px}.t-sm{font-size:14px}.t-xs{font-size:12px}.radius-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px;display:grid}.radius-item{text-align:center}.radius-box{background:var(--muted);border:1px solid var(--border);height:72px}.radius-item small{color:var(--muted-foreground);font-size:12px;font-family:var(--mono);margin-top:8px;display:block}.space-item{align-items:center;gap:14px;padding:6px 0;display:flex}.space-item .bar{background:var(--primary);border-radius:4px;height:16px}.space-item small{color:var(--muted-foreground);font-size:12px;font-family:var(--mono);width:120px}.shadow-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;display:grid}.shadow-box{border-radius:var(--radius-md);background:var(--card);height:96px;color:var(--muted-foreground);justify-content:center;align-items:flex-end;padding:10px;font-size:12px;display:flex}.btn{white-space:nowrap;cursor:pointer;border-radius:var(--radius-lg);-webkit-user-select:none;user-select:none;text-overflow:ellipsis;background-clip:padding-box;border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:6px;max-width:100%;height:32px;padding:0 10px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex;overflow:hidden}.btn:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 50%, transparent)}.btn:active{transform:translateY(1px)}.btn:disabled{pointer-events:none;opacity:.5;cursor:not-allowed}.btn svg{width:16px;height:16px}.btn-default{background:var(--primary);color:var(--primary-foreground)}.btn-default:hover{background:color-mix(in oklab, var(--primary) 85%, var(--background))}.btn-soft{background:var(--muted);color:var(--foreground)}.btn-soft:hover{background:color-mix(in oklab, var(--muted) 80%, var(--background))}.btn-outline{border-color:var(--border);background:var(--background)}.btn-outline:hover{background:var(--muted)}.btn-secondary{background:var(--secondary);color:var(--secondary-foreground)}.btn-secondary:hover{background:color-mix(in oklab, var(--secondary) 80%, var(--background))}.btn-ghost{background:0 0}.btn-ghost:hover{background:var(--muted)}.btn-destructive{background:color-mix(in oklab, var(--destructive) 10%, transparent);color:var(--destructive)}.btn-destructive:hover{background:color-mix(in oklab, var(--destructive) 20%, transparent)}.btn-destructive-solid{background:var(--destructive);color:#fff;box-shadow:0 2px 8px #dc262633}.btn-destructive-solid:hover{background:color-mix(in oklab, var(--destructive) 90%, black)}.btn-link{color:var(--primary);background:0 0;padding:0 2px}.btn-link:hover{text-underline-offset:4px;text-decoration:underline}.btn-xs{border-radius:var(--radius-md);height:24px;padding:0 8px;font-size:12px}.btn-sm{border-radius:var(--radius-md);height:28px;padding:0 10px;font-size:.8rem}.btn-lg{height:36px;padding:0 16px}.btn-icon{width:32px;height:32px;padding:0}.btn-icon.btn-sm{width:28px;height:28px}.spinner{border:2px solid;border-right-color:#0000;border-radius:999px;flex:none;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.btn .spinner{border-width:2px;width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.field{flex-direction:column;gap:6px;max-width:340px;display:flex}.field-label{color:var(--foreground);font-size:14px;font-weight:500}.input{border-radius:var(--radius-2xl);border:1px solid var(--input);width:100%;height:36px;color:var(--foreground);background:0 0;outline:none;padding:0 16px;font-size:14px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--muted-foreground)}.input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 45%, transparent)}.input.sm{height:32px;padding:0 12px}.input.xs{height:28px;padding:0 10px;font-size:12px}.input.invalid{border-color:var(--destructive);box-shadow:0 0 0 3px color-mix(in oklab, var(--destructive) 20%, transparent)}.input:disabled{opacity:.5;cursor:not-allowed}.input-wrap{position:relative}.input-wrap svg{width:16px;height:16px;color:var(--muted-foreground);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-wrap .input{padding-left:36px}.date-picker{width:fit-content;position:relative}.date-trigger{border:1px solid var(--input);border-radius:var(--radius-lg);background:var(--background);width:min(360px,100vw - 56px);height:36px;color:var(--foreground);cursor:pointer;font:inherit;text-align:left;outline:none;align-items:center;gap:8px;padding:0 10px;font-size:14px;transition:border-color .15s,box-shadow .15s;display:inline-flex}.date-trigger.sm{width:220px}.date-trigger:focus-visible,.date-picker.open .date-trigger{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 45%, transparent)}.date-trigger svg{width:16px;height:16px;color:var(--muted-foreground);flex:none}.date-trigger span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.date-trigger .muted{color:var(--muted-foreground)}.date-popover{z-index:60;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--popover);width:min(720px,100vw - 32px);max-height:min(640px,100vh - 88px);color:var(--popover-foreground);box-shadow:var(--shadow-md);padding:10px;display:none;position:absolute;top:calc(100% + 8px);left:0;overflow:auto}.date-picker.open .date-popover{animation:.1s ease-out pop;display:block}.date-popover.single{width:320px}.date-popover.range{width:min(720px,100vw - 32px)}.date-popover.time{width:280px}.date-popover.datetime{width:360px}.date-popover-head{justify-content:space-between;align-items:center;height:36px;padding:0 4px;font-size:14px;font-weight:500;display:flex}.date-month-title{text-align:center;flex:1;min-width:0}.date-nav{border-radius:var(--radius-md);width:28px;height:28px;color:var(--foreground);cursor:pointer;font:inherit;background:0 0;border:0;place-items:center;font-size:18px;line-height:1;display:grid}.date-nav:hover{background:var(--accent);color:var(--accent-foreground)}.date-picker-body{gap:10px;display:flex}.date-presets{border-right:1px solid var(--border);flex-direction:column;gap:2px;min-width:68px;padding-right:8px;display:flex}.date-presets button{border-radius:var(--radius-md);height:28px;color:var(--foreground);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0 8px;font-size:13px}.date-presets button:hover,.date-presets button.active{background:var(--accent);color:var(--accent-foreground)}.date-calendars{flex:1;grid-template-columns:repeat(2,minmax(240px,1fr));gap:10px;display:grid}.date-calendar{min-width:0}.date-weekdays,.date-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-weekdays span{height:26px;color:var(--muted-foreground);place-items:center;font-size:12px;display:grid}.date-day{border-radius:var(--radius-md);min-width:0;height:32px;color:var(--foreground);cursor:pointer;font:inherit;background:0 0;border:0;place-items:center;font-size:13px;display:grid}.date-day:hover{background:var(--accent);color:var(--accent-foreground)}.date-day:disabled:hover{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent);background:0 0}.date-day.muted{color:color-mix(in oklab, var(--muted-foreground) 60%, transparent)}.date-day:disabled{cursor:default;opacity:.45}.date-day.in-range{background:color-mix(in oklab, var(--accent) 72%, transparent)}.date-day.active,.date-day.range-edge{background:var(--primary);color:var(--primary-foreground)}.time-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.time-field{flex-direction:column;gap:6px;display:flex}.time-field label{color:var(--muted-foreground);font-size:12px}.date-time-divider{border:0;border-top:1px solid var(--border);margin:10px 0}.date-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:10px;padding-top:10px;display:flex}.list-search-panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--card-shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.list-search-left,.list-search-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.textarea{border-radius:var(--radius-2xl);border:1px solid var(--input);width:100%;min-height:80px;color:var(--foreground);resize:vertical;background:0 0;outline:none;padding:8px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.textarea:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 45%, transparent)}.select{width:fit-content;min-width:180px;position:relative}.select-trigger{border-radius:var(--radius-lg);border:1px solid var(--input);width:100%;height:32px;color:var(--foreground);cursor:pointer;background:0 0;outline:none;justify-content:space-between;align-items:center;gap:6px;padding:0 8px 0 10px;font-size:14px;transition:border-color .15s,box-shadow .15s;display:flex}.select-trigger:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 45%, transparent)}.select-trigger svg{width:16px;height:16px;color:var(--muted-foreground);transition:transform .2s}.select.open .select-trigger svg{transform:rotate(180deg)}.select-menu{z-index:40;background:var(--popover);min-width:100%;color:var(--popover-foreground);border-radius:var(--radius-lg);box-shadow:0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent), var(--shadow-md);padding:4px;display:none;position:absolute;top:calc(100% + 4px);left:0}.select.open .select-menu{animation:.1s ease-out pop;display:block}@keyframes pop{0%{opacity:0;transform:scale(.97)translateY(-4px)}to{opacity:1;transform:none}}.select-item{border-radius:var(--radius-md);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.select-item:hover{background:var(--accent);color:var(--accent-foreground)}.select-item .check{opacity:0;width:16px;height:16px}.select-item.selected .check{opacity:1}.ms-select{width:100%;max-width:320px;position:relative}.ms-trigger{border:1px solid var(--input);width:100%;height:36px;color:var(--foreground);border-radius:var(--radius-md);cursor:pointer;background:0 0;outline:none;align-items:center;gap:8px;padding:0 12px;font-size:14px;transition:border-color .15s,box-shadow .15s;display:inline-flex;position:relative}.ms-trigger:focus-visible,.ms-select.open .ms-trigger{border-color:var(--ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--ring) 45%, transparent)}.ms-badge{border:1px solid var(--input);border-radius:var(--radius-md);background:var(--background);width:24px;height:24px;color:var(--foreground);flex:none;place-items:center;display:inline-grid;overflow:hidden}.ms-badge svg{width:16px;height:16px}.ms-badge.lg{width:36px;height:36px}.ms-badge.lg svg{width:22px;height:22px}.ms-trigger .ms-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;padding-right:84px;overflow:hidden}.ms-trailing{color:var(--muted-foreground);pointer-events:none;white-space:nowrap;font-size:12px;position:absolute;top:50%;right:32px;transform:translateY(-50%)}.ms-chevron{width:16px;height:16px;color:var(--muted-foreground);pointer-events:none;transition:transform .2s;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.ms-select.open .ms-chevron{transform:translateY(-50%)rotate(180deg)}.ms-menu{z-index:40;background:var(--popover);min-width:100%;max-height:320px;color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:4px;display:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.ms-select.open .ms-menu{animation:.1s ease-out pop;display:block}.ms-item{cursor:pointer;border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px 32px 6px 8px;transition:background .15s,color .15s;display:flex;position:relative}.ms-item:hover,.ms-item.selected{background:var(--accent);color:var(--accent-foreground)}.ms-text{flex-direction:column;flex:1;min-width:0;display:flex}.ms-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.ms-desc{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11px;overflow:hidden}.ms-points{max-width:80px;color:var(--muted-foreground);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:12px;overflow:hidden}.ms-check{opacity:0;width:16px;height:16px;position:absolute;right:8px}.ms-item.selected .ms-check{opacity:1}.switch{background:var(--input);cursor:pointer;border:0;border-radius:999px;flex:none;align-items:center;width:36px;height:20px;padding:0;transition:background .2s;display:inline-flex;position:relative}.switch.sm{width:28px;height:16px}.switch[data-checked=true]{background:var(--primary)}.switch .thumb{background:var(--background);border-radius:999px;width:16px;height:16px;transition:transform .2s;position:absolute;left:2px}.dark .switch[data-checked=true] .thumb{background:var(--primary-foreground)}.dark .switch .thumb{background:var(--foreground)}.switch.sm .thumb{width:12px;height:12px}.switch[data-checked=true] .thumb{transform:translate(calc(100% - 2px))}.switch:disabled{opacity:.5;cursor:not-allowed}.segmented{background:var(--muted);border-radius:var(--radius-lg);align-items:center;gap:0;padding:3px;display:inline-flex}.segmented button{cursor:pointer;color:var(--muted-foreground);border-radius:var(--radius-md);background:0 0;border:0;align-items:center;gap:6px;height:28px;padding:0 14px;font-size:13px;font-weight:500;transition:all .15s;display:inline-flex}.segmented button svg{width:15px;height:15px}.segmented button:hover{color:var(--foreground)}.segmented button.active{background:var(--card);color:var(--foreground);box-shadow:var(--shadow-sm)}.dark .segmented button.active{background:color-mix(in oklab, var(--foreground) 12%, transparent)}.badge{text-overflow:ellipsis;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;min-width:0;max-width:100%;height:20px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex;overflow:hidden}.badge svg{width:12px;height:12px}.badge-default{background:var(--primary);color:var(--primary-foreground)}.badge-secondary{background:var(--secondary);color:var(--secondary-foreground)}.badge-destructive{background:color-mix(in oklab, var(--destructive) 10%, transparent);color:var(--destructive)}.badge-outline{border-color:var(--border);color:var(--foreground)}.badge-ghost{color:var(--muted-foreground)}.badge-success{background:color-mix(in oklab, var(--success) 14%, transparent);color:var(--success)}.badge-info{background:color-mix(in oklab, var(--info) 14%, transparent);color:var(--info)}.badge-warning{background:color-mix(in oklab, var(--warning) 18%, transparent);color:color-mix(in oklab, var(--warning) 70%, var(--foreground))}.status-dot{border:1px solid var(--border);background:var(--background);border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:12px;font-weight:500;display:inline-flex}.status-dot .dot{border-radius:999px;width:8px;height:8px}.dot-run{background:#10b981;box-shadow:0 0 8px #10b98173}.dot-fail{background:var(--destructive);box-shadow:0 0 8px #dc262659}.dot-wait{background:#f59e0b;box-shadow:0 0 8px #f59e0b59}.dot-off{background:var(--muted-foreground)}.card{border-radius:var(--radius-md);background:var(--card);color:var(--card-foreground);box-shadow:0 0 0 1px var(--border), var(--card-shadow);flex-direction:column;gap:16px;max-width:360px;padding:16px 0;font-size:14px;display:flex;overflow:hidden}.card-header{flex-direction:column;gap:4px;min-width:0;padding:0 16px;display:flex}.card-title{font-family:var(--heading);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500;line-height:1.35;overflow:hidden}.card-desc{color:var(--muted-foreground);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;display:-webkit-box;overflow:hidden}.card-body{color:var(--muted-foreground);overflow-wrap:anywhere;min-width:0;padding:0 16px}.card-footer{border-top:1px solid var(--border);background:color-mix(in oklab, var(--muted) 50%, transparent);align-items:center;gap:8px;margin-bottom:-16px;padding:16px;display:flex}.action-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px;display:grid}.action-card{--action-accent:var(--border);--action-accent-soft:color-mix(in oklab, var(--action-accent) 10%, transparent);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);min-width:0;min-height:280px;color:var(--card-foreground);box-shadow:var(--card-shadow);flex-direction:column;gap:14px;padding:16px;display:flex;position:relative;overflow:hidden}.action-card:before{content:"";background:var(--action-accent);height:3px;position:absolute;inset:0 0 auto}.action-card.accent-danger{--action-accent:var(--destructive)}.action-card.accent-warning{--action-accent:var(--warning)}.action-card.accent-info{--action-accent:var(--info)}.action-card.accent-success{--action-accent:var(--success)}.action-card.accent-neutral{--action-accent:var(--muted-foreground)}.action-card-head{grid-template-columns:auto 1fr auto;align-items:start;gap:10px;display:grid}.action-card-icon{background:var(--action-accent-soft);width:28px;height:28px;color:var(--action-accent);border-radius:999px;place-items:center;display:grid}.action-card-icon svg{width:16px;height:16px}.action-card-title{flex-direction:column;gap:2px;min-width:0;display:flex}.action-card-title b{text-overflow:ellipsis;white-space:nowrap;color:var(--foreground);font-size:15px;font-weight:600;overflow:hidden}.action-card-title small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted-foreground);font-family:var(--mono);font-size:11px;overflow:hidden}.action-card-text{color:var(--muted-foreground);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;line-height:1.7;display:-webkit-box;overflow:hidden}.action-card-body{flex-direction:column;flex:1;gap:10px;display:flex}.action-card-surface{border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in oklab, var(--muted) 34%, transparent);padding:12px}.action-card-list{gap:8px;display:grid}.action-card-list-row{color:var(--foreground);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;display:grid}.action-card-list-row small{color:var(--muted-foreground)}.action-card-metrics{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.action-card-metric{flex-direction:column;gap:4px;min-width:0;display:flex}.action-card-metric small{color:var(--muted-foreground);font-size:11px}.action-card-metric b{color:var(--foreground);font-size:18px;font-weight:600}.action-card-trend{color:var(--success);font-size:12px}.action-card-trend.down{color:var(--destructive)}.action-card-log{border-radius:var(--radius-md);background:color-mix(in oklab, var(--foreground) 10%, var(--muted));color:var(--foreground);font-family:var(--mono);padding:10px;font-size:12px;line-height:1.6;display:block;overflow:auto}.action-card-quote{border-left:3px solid var(--action-accent);color:var(--muted-foreground);padding-left:10px;font-size:13px;line-height:1.7}.action-card-footer{margin-top:auto}.action-card-footer .btn{width:100%}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}table.tbl{border-collapse:collapse;table-layout:fixed;width:100%;font-size:14px}table.tbl thead th{text-align:left;height:40px;color:var(--foreground);border-bottom:1px solid var(--border);background:color-mix(in oklab, var(--muted) 40%, transparent);padding:0 12px;font-weight:500}table.tbl tbody td{border-bottom:1px solid var(--border);padding:10px 12px}table.tbl th,table.tbl td{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:1px;overflow:hidden}table.tbl tbody tr:last-child td{border-bottom:0}table.tbl tbody tr{transition:background .15s}table.tbl tbody tr:hover{background:color-mix(in oklab, var(--muted) 50%, transparent)}.progress{background:var(--muted);border-radius:999px;width:100%;max-width:360px;height:6px;overflow:hidden}.progress>i{background:var(--primary);border-radius:999px;height:100%;display:block}.skeleton{background:var(--muted);border-radius:var(--radius-md);animation:1.8s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.page-loading{border:1px solid var(--border);border-radius:var(--radius-lg);background:linear-gradient(180deg, color-mix(in oklab, var(--card) 92%, transparent), color-mix(in oklab, var(--muted) 36%, transparent));justify-content:center;align-items:center;min-height:280px;padding:32px;display:flex}.loading-card{border-radius:var(--radius-md);background:color-mix(in oklab, var(--card) 94%, transparent);min-width:220px;box-shadow:0 0 0 1px var(--border), var(--shadow-sm);text-align:center;color:var(--muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:28px;display:flex}.loading-card .spinner{width:28px;height:28px;color:var(--primary);border-width:3px}.loading-card strong{color:var(--foreground);font-size:15px;font-weight:600}.loading-card p{max-width:320px;margin:0;font-size:13px;line-height:1.6}.loading-overlay{z-index:20;background:color-mix(in oklab, var(--background) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.loading-overlay .loading-card{min-width:180px;padding:20px}.panel-loading{min-height:220px;position:relative;overflow:hidden}.empty-state{border:1px dashed var(--border);border-radius:var(--radius-lg);background:color-mix(in oklab, var(--muted) 28%, transparent);text-align:center;min-height:180px;color:var(--muted-foreground);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.empty-state .state-icon{border-radius:var(--radius-md);background:var(--background);width:40px;height:40px;color:var(--muted-foreground);box-shadow:0 0 0 1px var(--border);justify-content:center;align-items:center;display:inline-flex}.empty-state .state-icon svg{width:20px;height:20px}.empty-state strong{color:var(--foreground);font-size:15px;font-weight:600}.empty-state p{max-width:360px;margin:0;font-size:13px;line-height:1.6}.empty-state.error{background:color-mix(in oklab, var(--destructive) 8%, var(--card));border-style:solid}.empty-state.error .state-icon{color:var(--destructive);background:color-mix(in oklab, var(--destructive) 10%, var(--background))}.avatar{background:var(--muted);width:40px;height:40px;color:var(--muted-foreground);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:inline-flex;overflow:hidden}.avatar.sq{border-radius:var(--radius-md)}.avatar.lg{width:56px;height:56px}.avatar.sm{width:28px;height:28px;font-size:12px}.divider{background:var(--border);width:100%;height:1px}.divider.v{width:1px;height:24px}.tip{display:inline-flex;position:relative}.tip-bubble{border-radius:var(--radius-md);background:var(--foreground);color:var(--background);align-items:center;padding:6px 12px;font-size:12px;display:inline-flex;position:relative}.tip-bubble:after{content:"";background:var(--foreground);border-radius:2px;width:9px;height:9px;position:absolute;bottom:-4px;left:50%;transform:translate(-50%)rotate(45deg)}.tt{display:inline-flex;position:relative}.tt-pop{z-index:40;white-space:nowrap;pointer-events:none;background:var(--foreground);color:var(--background);border-radius:var(--radius-md);opacity:0;box-shadow:var(--shadow-md);padding:6px 12px;font-size:12px;line-height:1.4;transition:opacity .12s ease-out,transform .12s ease-out;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)scale(.96)}.tt-pop:after{content:"";background:var(--foreground);border-radius:2px;width:9px;height:9px;margin-top:-5px;margin-left:-4.5px;position:absolute;top:100%;left:50%;transform:rotate(45deg)}.tt:hover .tt-pop,.tt:focus-within .tt-pop{opacity:1;transform:translate(-50%)translateY(0)scale(1)}.tt-pop.bottom{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)scale(.96)}.tt-pop.bottom:after{margin-top:0;margin-bottom:-5px;top:auto;bottom:100%}.tt:hover .tt-pop.bottom,.tt:focus-within .tt-pop.bottom{transform:translate(-50%)translateY(0)scale(1)}.tt-pop.right{top:50%;bottom:auto;left:calc(100% + 8px);transform:translate(-4px)translateY(-50%)scale(.96)}.tt-pop.right:after{margin-top:-4.5px;margin-left:-4.5px;top:50%;left:0}.tt:hover .tt-pop.right,.tt:focus-within .tt-pop.right{transform:translate(0)translateY(-50%)scale(1)}.overlay{z-index:50;background:#00000080;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.overlay.open{animation:.12s ease-out fade;display:flex}@keyframes fade{0%{opacity:0}to{opacity:1}}.dialog{background:var(--popover);width:100%;max-width:520px;color:var(--popover-foreground);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);flex-direction:column;animation:.12s ease-out dialogIn;display:flex;position:relative;overflow:hidden}@keyframes dialogIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.dialog-header{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:12px 24px;display:flex}.dialog-title{font-family:var(--heading);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:16px;font-weight:500;overflow:hidden}.dialog-body{color:var(--muted-foreground);overflow-wrap:anywhere;min-width:0;padding:20px 24px;font-size:14px}.dialog-footer{border-top:1px solid var(--border);background:color-mix(in oklab, var(--muted) 30%, transparent);justify-content:flex-end;align-items:center;gap:8px;padding:16px 24px;display:flex}.dialog-close{background:color-mix(in oklab, var(--muted) 70%, transparent);width:28px;height:28px;color:var(--foreground);cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:12px;right:12px}.dialog-close:hover{background:var(--muted)}.dialog-close:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.toaster{z-index:60;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border-radius:var(--radius-lg);min-width:280px;max-width:380px;box-shadow:var(--shadow-md);border:1px solid var(--border);background:var(--popover);color:var(--foreground);align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:500;animation:.2s ease-out toastIn;display:flex}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.toast svg{flex:none;width:18px;height:18px}.toast.success{background:color-mix(in oklab, var(--success) 14%, var(--popover));border-color:color-mix(in oklab, var(--success) 40%, transparent);color:color-mix(in oklab, var(--success) 60%, var(--foreground))}.toast.error{background:color-mix(in oklab, var(--destructive) 12%, var(--popover));border-color:color-mix(in oklab, var(--destructive) 40%, transparent);color:var(--destructive)}.toast.warning{background:color-mix(in oklab, var(--warning) 16%, var(--popover));border-color:color-mix(in oklab, var(--warning) 45%, transparent);color:color-mix(in oklab, var(--warning) 60%, var(--foreground))}.toast.info{background:color-mix(in oklab, var(--info) 12%, var(--popover));border-color:color-mix(in oklab, var(--info) 40%, transparent);color:color-mix(in oklab, var(--info) 70%, var(--foreground))}.pagination{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pg-info{color:var(--muted-foreground);font-size:14px}.pg-btn{border:1px solid var(--border);background:var(--background);min-width:32px;height:32px;color:var(--foreground);border-radius:var(--radius-md);cursor:pointer;justify-content:center;align-items:center;padding:0 8px;font-size:14px;transition:all .15s;display:inline-flex}.pg-btn:hover:not(:disabled){background:var(--muted)}.pg-btn:disabled{opacity:.5;cursor:not-allowed}.pg-btn.active{border-color:var(--primary);background:var(--accent);color:var(--accent-foreground)}.pg-btn svg{width:16px;height:16px}.ds-foot{border-top:1px solid color-mix(in oklab, var(--sidebar-border) 60%, transparent);padding:8px;position:relative}.ds-profile{cursor:pointer;width:100%;color:inherit;text-align:left;border-radius:var(--radius-md);background:0 0;border:0;align-items:center;gap:8px;padding:8px;font-family:inherit;transition:background .15s;display:flex}.ds-profile:hover,.ds-foot.open .ds-profile{background:var(--sidebar-accent)}.ds-profile .avatar{border-radius:8px;width:32px;height:32px}.ds-profile .pm{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.ds-profile .pm b{font-size:14px;font-weight:600}.ds-profile .pm small{color:var(--muted-foreground);font-size:12px}.ds-profile .chev{width:16px;height:16px;color:var(--muted-foreground);margin-left:auto;transition:transform .2s}.ds-foot.open .ds-profile .chev{transform:rotate(180deg)}.ds-menu{z-index:25;background:var(--popover);width:224px;color:var(--popover-foreground);border-radius:var(--radius-lg);box-shadow:0 0 0 1px color-mix(in oklab, var(--foreground) 10%, transparent), var(--shadow-md);padding:4px;display:none;position:absolute;bottom:calc(100% + 6px);left:8px}.ds-foot.open .ds-menu{animation:.12s ease-out pop;display:block}.ds-menu-label{align-items:center;gap:12px;padding:12px;display:flex}.ds-menu-label .avatar{border-radius:8px;width:36px;height:36px}.ds-menu-label .ml{flex-direction:column;min-width:0;line-height:1.3;display:flex}.ds-menu-label .ml b{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.ds-menu-label .ml small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ds-sep{background:var(--border);height:1px;margin:4px 0}.ds-menu-item{border-radius:var(--radius-md);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;align-items:center;gap:12px;min-width:0;padding:8px 12px;font-size:14px;transition:background .15s,color .15s;display:flex;overflow:hidden}.ds-menu-item svg{flex:none;width:16px;height:16px}.ds-menu-item:hover{background:var(--accent);color:var(--accent-foreground)}.ds-menu-item.danger{color:var(--destructive)}.ds-menu-item.danger:hover{background:color-mix(in oklab, var(--destructive) 10%, transparent);color:var(--destructive)}.mini-sidebar{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--sidebar);width:220px;overflow:hidden}.mini-sidebar .mh{align-items:center;gap:8px;padding:12px;display:flex}.mini-sidebar .mh .brand-logo{border-radius:var(--radius-md);width:32px;height:32px}.mini-sidebar .mh .brand-logo svg{width:18px;height:18px}.mini-list{flex-direction:column;gap:2px;margin:0;padding:4px 8px 12px;list-style:none;display:flex}.mini-glabel{color:var(--foreground);padding:6px 8px;font-size:12px;font-weight:700}.mini-item{border-radius:var(--radius-md);color:var(--sidebar-foreground);align-items:center;gap:8px;padding:7px 8px;font-size:13px;display:flex}.mini-item svg{opacity:.85;width:15px;height:15px}.mini-item.active{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground);font-weight:500}.mini-item:hover:not(.active){background:var(--sidebar-accent)}.note{color:var(--muted-foreground);margin-top:10px;font-size:13px}.kbd-list{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.module-reference-grid{grid-template-columns:repeat(auto-fit,minmax(min(520px,100%),1fr));align-items:start;gap:18px;display:grid}.module-preview{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.module-preview.full{grid-column:1/-1}.module-content{flex-direction:column;gap:18px;padding:24px;display:flex}.module-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.metric-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--card-shadow);flex-direction:column;gap:8px;min-width:0;padding:16px;display:flex}.metric-card small{color:var(--muted-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.metric-card strong{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:24px;font-weight:600;overflow:hidden}.toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.login-preview{background:linear-gradient(180deg, var(--background), color-mix(in oklab, var(--muted) 36%, var(--background)));place-items:center;min-height:100svh;padding:clamp(20px,5vw,72px);display:grid}.module-preview .login-preview{min-height:clamp(560px,72svh,760px)}.login-panel{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);width:min(100%,420px);box-shadow:var(--shadow-md);flex-direction:column;gap:18px;padding:24px;display:flex}.login-brand{align-items:center;gap:12px;display:flex}.login-title{flex-direction:column;line-height:1.2;display:flex}.login-title b{font-size:22px;font-weight:700}.login-title small{color:var(--muted-foreground);font-size:13px}.qr-box{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.qr-demo{width:74%;height:74%;box-shadow:0 0 0 1px var(--border);background:linear-gradient(90deg,#111 10px,#0000 10px) 0 0/22px 22px,linear-gradient(#111 10px,#0000 10px) 0 0/22px 22px,linear-gradient(90deg,#0000 12px,#111 12px 18px,#0000 18px) 0 0/28px 28px,linear-gradient(#0000 12px,#111 12px 18px,#0000 18px) 0 0/28px 28px,#fff;border:12px solid #fff}.qr-overlay{background:color-mix(in oklab, var(--background) 82%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.login-actions{align-items:center;gap:10px;display:flex}.login-actions .btn{flex:1}.login-patterns{background:linear-gradient(color-mix(in oklab, var(--border) 52%, transparent) 1px, transparent 1px) 0 0/28px 28px, linear-gradient(90deg, color-mix(in oklab, var(--border) 52%, transparent) 1px, transparent 1px) 0 0/28px 28px, color-mix(in oklab, var(--muted) 42%, var(--background));min-height:clamp(620px,78svh,820px)}.login-panel.wide{width:min(100%,460px)}.login-brand.center{text-align:center;justify-content:center}.brand-logo.tile{border-radius:var(--radius-lg);width:48px;height:48px;box-shadow:0 12px 32px color-mix(in oklab, var(--primary) 28%, transparent)}.login-tabs{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--muted);grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:4px;display:grid}.login-tabs button{border-radius:var(--radius-md);min-width:0;height:34px;color:var(--muted-foreground);cursor:pointer;font:inherit;white-space:nowrap;background:0 0;border:0;font-size:13px}.login-tabs button.active{background:var(--background);color:var(--foreground);box-shadow:var(--shadow-sm);font-weight:600}.login-pattern-panel{flex-direction:column;gap:14px;display:none}.login-pattern-panel.active{display:flex}.login-helper-row{color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.login-qr{align-self:center;width:min(260px,100%)}.auth-provider-btn{justify-content:center}.login-status{border-radius:var(--radius-md);min-height:20px;color:var(--muted-foreground);text-align:center;font-size:13px;line-height:20px}.login-status.success{color:var(--success)}.login-status.error{color:var(--destructive)}.code-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.native-select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 17px) 15px,calc(100% - 12px) 15px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;width:100%;min-width:0;height:36px;padding-right:34px}.list-module{flex-direction:column;gap:14px;display:flex}.list-module .list-search-panel{box-shadow:none}.bulk-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.bulk-selected{color:var(--muted-foreground);white-space:nowrap;font-size:14px}.cost-chip{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);height:34px;color:var(--muted-foreground);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:14px;display:inline-flex}.cost-chip b{color:var(--destructive);font-weight:600}.form-module{grid-template-columns:minmax(0,1fr) 280px;gap:16px;display:grid}.form-panel,.setting-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);overflow:hidden}.form-panel-head,.setting-card-head{border-bottom:1px solid var(--border);background:color-mix(in oklab, var(--muted) 38%, transparent);padding:12px 14px;font-weight:600}.form-panel-body,.setting-card-body{padding:14px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.field-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.field-required:before{content:"*";color:var(--destructive);margin-right:6px}.field-count{color:var(--muted-foreground);white-space:nowrap;font-size:13px}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;display:grid}.choice-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--background);min-height:48px;color:var(--foreground);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 12px;display:flex}.choice-card.active{border-color:var(--foreground);box-shadow:inset 0 0 0 1px var(--foreground)}.choice-card span{flex-direction:column;min-width:0;line-height:1.35;display:flex}.choice-card small{color:var(--muted-foreground)}.choice-icon{border-radius:var(--radius-md);background:var(--muted);width:28px;height:28px;color:var(--muted-foreground);flex:none;place-items:center;display:grid}.choice-icon svg{width:16px;height:16px}.check-list{gap:10px;display:grid}.check-option{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);min-width:0;color:var(--foreground);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.check-option input{width:16px;height:16px;accent-color:var(--primary)}.check-option span{min-width:0}.upload-zone{border:1px dashed var(--border);border-radius:var(--radius-lg);background:var(--background);width:100%;min-height:148px;color:var(--muted-foreground);cursor:pointer;font:inherit;text-align:center;place-items:center;padding:18px;display:grid}.upload-zone strong{color:var(--foreground);margin-top:8px;font-weight:600;display:block}.upload-zone svg{width:30px;height:30px}.setting-stack{flex-direction:column;gap:16px;display:flex}.setting-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wide-table{min-width:720px}.dashboard-pattern{background:linear-gradient(color-mix(in oklab, var(--border) 46%, transparent) 1px, transparent 1px) 0 0/28px 28px, linear-gradient(90deg, color-mix(in oklab, var(--border) 46%, transparent) 1px, transparent 1px) 0 0/28px 28px, color-mix(in oklab, var(--muted) 24%, var(--background));flex-direction:column;gap:18px;display:flex}.dashboard-head{justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.dashboard-kicker{color:var(--warning);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:700}.dashboard-title{letter-spacing:0;margin-top:4px;font-size:clamp(22px,3vw,32px);font-weight:700}.dashboard-subtitle{max-width:760px;color:var(--muted-foreground);margin-top:8px;line-height:1.7}.dashboard-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.dashboard-actions .btn.active{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.dashboard-grid{gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;width:100%;display:grid}.dashboard-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card.hero{background:color-mix(in oklab, var(--primary) 16%, var(--card));justify-content:space-between;min-height:160px}.metric-card.good{border-left:3px solid var(--success)}.metric-card.warn{border-left:3px solid var(--warning)}.metric-card.bad{border-left:3px solid var(--destructive)}.metric-delta{border-radius:var(--radius-md);background:color-mix(in oklab, var(--success) 14%, transparent);width:fit-content;color:var(--success);align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.metric-delta.bad{background:color-mix(in oklab, var(--destructive) 13%, transparent);color:var(--destructive)}.sparkline{height:42px;position:relative;overflow:hidden}.sparkline:before{content:"";background:linear-gradient(135deg, transparent 0 18%, var(--chart-2) 18% 21%, transparent 21% 34%, var(--chart-2) 34% 37%, transparent 37% 58%, var(--chart-2) 58% 61%, transparent 61% 78%, var(--chart-2) 78% 81%, transparent 81%);opacity:.9;position:absolute;inset:8px 0 6px}.chart-card,.insight-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card);box-shadow:var(--card-shadow);overflow:hidden}.chart-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:600;display:flex}.chart-legend{color:var(--muted-foreground);flex-wrap:wrap;gap:10px;font-size:12px;display:flex}.chart-legend span,.chart-legend button{align-items:center;gap:5px;display:inline-flex}.chart-legend button{border-radius:var(--radius-md);height:24px;color:inherit;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;padding:0 8px}.chart-legend button.active{border-color:var(--border);background:var(--muted);color:var(--foreground)}.legend-dot{background:var(--chart-1);border-radius:99px;width:8px;height:8px}.chart-area{background:linear-gradient(var(--border) 1px, transparent 1px) 0 0/100% 52px, linear-gradient(90deg, var(--border) 1px, transparent 1px) 0 0/14.28% 100%;min-height:260px;padding:20px;position:relative}.chart-control-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;display:grid}.chart-control-preview .module-content{padding:18px}.trend-card{grid-column:1/-1;width:100%}.trend-chart{width:100%;padding:0;position:relative}.echarts-trend-chart{gap:10px;display:grid}.echarts-chart{width:100%;height:min(560px,max(420px,48vw));min-height:420px}.echarts-plot-area{background:0 0;min-height:320px;padding:0}.echarts-compact-chart{height:320px;min-height:320px}.echarts-dashboard-trend-chart{height:360px;min-height:360px}.echarts-unavailable{min-height:240px;color:var(--muted-foreground);text-align:center;place-items:center;padding:24px;display:grid}.echarts-unavailable[hidden]{display:none}.echarts-datazoom-label{min-width:0;color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;padding:0 56px 14px;font-size:12px;overflow:hidden}.chart-readout{border-top:1px solid var(--border);color:var(--muted-foreground);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:13px;display:flex}.chart-readout b{color:var(--foreground)}.insight-card{padding:16px}.insight-list{gap:12px;display:grid}.insight-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.insight-row:last-child{border-bottom:0}.rank-table td:first-child{color:var(--warning);font-weight:700}.calculator-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;display:grid}.slider-list{gap:18px;display:grid}.slider-line{color:var(--muted-foreground);grid-template-columns:140px minmax(0,1fr) 64px;align-items:center;gap:12px;font-size:13px;display:grid}.slider-track{background:var(--border);border-radius:99px;height:4px;position:relative}.slider-track:before{content:"";width:var(--value);border-radius:inherit;background:var(--warning);position:absolute;inset:0 auto 0 0}.slider-track:after{content:"";left:var(--value);background:var(--background);border:1px solid var(--border);width:16px;height:16px;box-shadow:var(--shadow-sm);border-radius:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.range-input{width:100%;accent-color:var(--warning)}.module-status{min-height:20px;color:var(--muted-foreground);font-size:13px}.module-status.success{color:var(--success)}.module-status.error{color:var(--destructive)}.module-submit-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;display:flex}.summary-list{color:var(--muted-foreground);gap:10px;font-size:13px;display:grid}.summary-list div{justify-content:space-between;align-items:center;gap:12px;display:flex}.summary-list b{min-width:0;color:var(--foreground)}.upload-zone.is-active{border-color:var(--primary);background:color-mix(in oklab, var(--primary) 7%, var(--background))}.list-row-title{max-width:360px}@media (width<=920px){.sidebar{z-index:80;box-shadow:var(--shadow-lg);transition:left .2s;position:fixed;left:-260px}.sidebar.show{left:0}.topbar{padding:0 18px}.topbar>:first-child{flex:1;min-width:0}.topbar-right{flex:none}.content{padding:24px 18px 100px}.module-reference-grid{grid-template-columns:1fr}.login-preview{min-height:100svh;padding:20px}.module-preview .login-preview{min-height:560px}.login-panel{width:100%;padding:20px}.login-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-head{flex-direction:column;align-items:flex-start}.dashboard-actions{justify-content:flex-start}.dashboard-grid.cols-4,.dashboard-grid.cols-3,.dashboard-grid.cols-2,.calculator-grid,.chart-control-grid,.grid-3,.slider-line{grid-template-columns:1fr}.date-popover,.date-popover.single,.date-popover.time,.date-popover.datetime{width:auto;max-height:calc(100svh - 32px);position:fixed;inset:auto 16px 16px;overflow:auto}.date-picker-body,.date-calendars{flex-direction:column;grid-template-columns:1fr}.date-presets{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;padding:0 0 8px;overflow-x:auto}.list-search-panel{align-items:stretch}.list-search-left,.list-search-actions{width:100%}.form-module{grid-template-columns:1fr}}@media (width<=640px){.date-picker,.date-trigger,.date-trigger.sm{width:100%;max-width:100%}.list-search-left,.list-search-actions{min-width:0;max-width:100%}.list-search-left .segmented{width:100%;max-width:100%;display:flex;overflow-x:auto}.list-search-left .segmented button{flex:none}#tooltip .row{position:relative;gap:16px!important}#tooltip .tt{position:static}#tooltip .tt-pop,#tooltip .tt-pop.right{white-space:normal;width:max-content;max-width:calc(100% - 24px);top:auto;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px)scale(.96)}#tooltip .tt-pop.bottom{top:calc(100% + 8px);bottom:auto;transform:translate(-50%)translateY(-4px)scale(.96)}#tooltip .tt-pop.right:after{margin-top:-5px;margin-left:-4.5px;top:100%;left:50%}#tooltip .tt:hover .tt-pop.right,#tooltip .tt:focus-within .tt-pop.right{transform:translate(-50%)translateY(0)scale(1)}#pager,.pager-controls,.pager-pages,.pager-jump{min-width:0;max-width:100%}.pager-controls{width:100%;justify-content:flex-start!important}.pager-pages{flex-wrap:nowrap;width:100%;padding-bottom:4px;overflow-x:auto}}.btn-success{background:color-mix(in oklab, var(--success) 10%, transparent);color:var(--success)}.btn-success:hover{background:color-mix(in oklab, var(--success) 20%, transparent)}.btn-info{background:color-mix(in oklab, var(--info) 10%, transparent);color:var(--info)}.btn-info:hover{background:color-mix(in oklab, var(--info) 20%, transparent)}.btn-warning{background:color-mix(in oklab, var(--warning) 14%, transparent);color:color-mix(in oklab, var(--warning) 70%, var(--foreground))}.btn-warning:hover{background:color-mix(in oklab, var(--warning) 24%, transparent)}.checkbox,.radio{appearance:none;border:1px solid var(--border);background:var(--background);cursor:pointer;flex:none;place-content:center;width:16px;height:16px;transition:all .15s;display:inline-grid}.checkbox{border-radius:var(--radius-sm)}.radio{border-radius:999px}.checkbox:checked,.checkbox:indeterminate,.radio:checked{background:var(--primary);border-color:var(--primary)}.checkbox:checked:after{content:"";border-left:2px solid var(--primary-foreground);border-bottom:2px solid var(--primary-foreground);width:9px;height:5px;transform:rotate(-45deg)translate(1px,-1px)}.checkbox:indeterminate:after{content:"";background:var(--primary-foreground);width:9px;height:2px}.radio:checked:after{content:"";background:var(--primary-foreground);border-radius:999px;width:6px;height:6px}.checkbox:focus-visible,.radio:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.checkbox:disabled,.radio:disabled{opacity:.5;cursor:not-allowed}.action-menu{display:inline-flex;position:relative}.action-menu-list{z-index:40;background:var(--popover);min-width:168px;color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.action-menu-item{border-radius:var(--radius-sm);height:32px;color:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0 8px;font-size:13px;display:flex}.action-menu-item:hover:not(:disabled){background:var(--muted)}.action-menu-item:disabled{opacity:.45;cursor:not-allowed}.action-menu-item.danger{color:var(--destructive)}.action-menu-sep{background:var(--border);height:1px;margin:4px 0}.filter-pills{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-pill{border:1px solid var(--border);background:var(--background);height:28px;color:var(--muted-foreground);white-space:nowrap;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:all .15s;display:inline-flex}.filter-pill:hover{background:var(--muted);color:var(--foreground)}.filter-pill.active{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.filter-pill-count{font-variant-numeric:tabular-nums;opacity:.7}.oauth-login-shell{width:100%}.oauth-login-host{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.oauth-qr-region{flex-direction:column;align-items:center;gap:12px;display:flex}.oauth-state-stack{flex-direction:column;gap:12px;display:flex}.app-shell{height:100vh;overflow:hidden}.app-main{min-height:0}.app-content{flex-direction:column;flex:1;min-height:0;padding:15px;display:flex;overflow:hidden}.page-frame{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.page-frame-head{flex:none}.page-frame-body{flex-direction:column;flex:1;min-height:0;display:flex}.page-table-scroll{flex:1;min-height:0;overflow-y:auto}.page-table-scroll thead th{z-index:2;position:sticky;top:0}.page-frame-foot{flex:none}.page-scroll{flex:1;min-height:0;padding:0 1px;overflow-y:auto}.page-section{flex-direction:column;flex:1;gap:12px;min-height:0;padding:0 1px;display:flex;overflow-y:auto}.page-section>*,.auth-dialog-body>*,.param-form>*,.oauth-state-stack>*,.route-boot>*{flex:none}.page-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.page-section-title{align-items:center;gap:10px;display:flex}.account-identity-row{align-items:center;gap:14px;display:flex}.account-identity-meta{flex-direction:column;gap:4px;min-width:0;display:flex}.auth-dialog-body{flex-direction:column;gap:16px;max-height:60vh;display:flex;overflow-y:auto}.auth-dialog-section{flex-direction:column;gap:8px;display:flex}.auth-dialog-section-title{align-items:center;gap:8px;display:flex}.auth-dialog-endpoint{display:block}.department-tree-cell{align-items:center;gap:8px;min-width:0;display:flex}.department-tree-cell svg,.identity-cell svg{flex:none;width:16px;height:16px}.table-actions{white-space:nowrap;flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.identity-cell{align-items:center;gap:10px;min-width:0;display:flex}.identity-cell-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.identity-cell-sub{align-items:center;gap:6px;min-width:0;display:flex}.page-toolbar-left{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.page-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.route-boot{flex-direction:column;gap:12px;padding:24px;display:flex}.auth-dialog-department-list{flex-wrap:wrap;gap:6px;display:flex}.param-form{flex-direction:column;gap:14px;display:flex}.dark .btn-outline,.dark .btn-ghost{color:inherit}.page-table-scroll table.tbl thead th{background:var(--card)}.page-table-scroll table.tbl tbody tr:last-child td{border-bottom:1px solid var(--border)}
