:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1f2937;background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--accent: #f97316;--accent-strong: #ea580c;--accent-deep: #c2410c;--accent-ink: #7c2d12;--accent-soft: #fff7ed;--accent-soft-2: #ffedd5;--accent-contrast: #ffffff;--accent-grad: linear-gradient(135deg, #fb923c 0%, #f97316 45%, #ea580c 100%);--accent-grad-h: linear-gradient(90deg, #fb923c, #f97316, #ea580c);--nav: #111318;--nav-2: #1a1d24;--nav-ink: #f8fafc;--nav-mute: #8b93a7;--bg: #f3f4f6;--surface: #ffffff;--surface-2: #f8fafc;--border: #e5e7eb;--border-strong: #d1d5db;--text: #111827;--text-soft: #4b5563;--text-mute: #9ca3af;--ok: #16a34a;--warn: #f59e0b;--danger: #ef4444;--radius: 12px;--radius-sm: 8px;--shadow-sm: 0 1px 2px rgba(17, 24, 39, .05);--shadow: 0 1px 2px rgba(17, 24, 39, .06), 0 6px 18px rgba(17, 24, 39, .07);--shadow-lg: 0 20px 44px rgba(17, 24, 39, .16);--shadow-accent: 0 8px 22px rgba(234, 88, 12, .32);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{min-width:320px;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#root,.min-vh-full{min-height:100vh;min-height:100dvh}.app-shell{height:100vh;height:100dvh}@media (max-width: 420px){.m-nav-label{display:none}}.m-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}a{text-decoration:none;color:inherit}button{cursor:pointer;border:none;background:none}input,select,textarea{font-family:inherit;font-size:inherit;transition:border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)!important;box-shadow:0 0 0 3px #f973162e!important}button{transition:background-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease,transform .08s var(--ease-out)}button:active:not(:disabled){transform:translateY(1px) scale(.985)}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes shimmer{0%{background-position:-420px 0}to{background-position:420px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:.3}}@keyframes kiri-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes grow-up{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes donut-in{0%{opacity:0;transform:rotate(-100deg) scale(.82)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes sheen{0%{transform:translate(-120%) skew(-18deg)}55%,to{transform:translate(320%) skew(-18deg)}}@keyframes flow-dash{to{stroke-dashoffset:-36}}.donut-svg{animation:donut-in .8s var(--ease-out) both;transform-origin:50% 50%}.hb-flow{stroke-dasharray:10 8;animation:flow-dash 1s linear infinite}.hb-flow-rev{stroke-dasharray:10 8;animation:flow-dash 1s linear infinite reverse}@media (prefers-reduced-motion: reduce){.hb-flow,.hb-flow-rev{animation:none}}.anim-fade{animation:fade-in .22s var(--ease-out) both}.anim-pop{animation:pop-in .18s var(--ease-spring) both}.anim-in{animation:rise-in .34s var(--ease-out) both}.anim-sheet-up{animation:sheet-up .3s var(--ease-out) both}.anim-msg{animation:msg-in .26s var(--ease-out) both}.route-anim{animation:rise-in .4s var(--ease-out) both}.route-static{height:100%}.stagger>*{animation:rise-in .4s var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:.02s}.stagger>*:nth-child(2){animation-delay:.06s}.stagger>*:nth-child(3){animation-delay:.1s}.stagger>*:nth-child(4){animation-delay:.14s}.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:.22s}.stagger>*:nth-child(7){animation-delay:.26s}.stagger>*:nth-child(n+8){animation-delay:.3s}.skel{display:inline-block;background:linear-gradient(90deg,#eef0f3 25%,#f8fafc,#eef0f3 75%);background-size:420px 100%;animation:shimmer 1.3s linear infinite}@media (prefers-reduced-motion: reduce){.anim-fade,.anim-pop,.anim-in,.anim-sheet-up,.anim-msg,.stagger>*,.skel{animation:none!important}*{transition-duration:.01ms!important}}.c-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);animation:rise-in .36s var(--ease-out) both}.workspace{background:radial-gradient(1200px 500px at 0% 0%,rgba(249,115,22,.06),transparent 55%),radial-gradient(900px 400px at 100% 0%,rgba(17,24,39,.035),transparent 50%),radial-gradient(700px 500px at 80% 110%,rgba(249,115,22,.045),transparent 60%),var(--bg)}.t-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;animation:rise-in .36s var(--ease-out) both}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.clickable-card{transition:transform .18s var(--ease-out),box-shadow .22s var(--ease-out),border-color .18s ease;will-change:transform}.clickable-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.clickable-card:active{transform:translateY(-1px) scale(.995)}.page-title{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;color:var(--text);letter-spacing:-.2px}.page-title:before{content:"";width:4px;height:22px;border-radius:3px;background:linear-gradient(180deg,var(--accent),var(--accent-strong))}.btn-primary{position:relative;overflow:hidden;background:var(--accent-grad-h);background-size:200% 100%;color:var(--accent-contrast);border:none;border-radius:var(--radius-sm);box-shadow:0 2px 8px #ea580c59;transition:background-position .5s var(--ease-out),box-shadow .25s ease,transform .08s var(--ease-out),filter .2s ease}.btn-primary:after{content:"";position:absolute;top:0;bottom:0;left:0;width:40%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);transform:translate(-120%) skew(-18deg);pointer-events:none}.btn-primary:hover:not(:disabled){background-position:100% 0;box-shadow:var(--shadow-accent);filter:brightness(1.03)}.btn-primary:hover:not(:disabled):after{animation:sheen .9s var(--ease-out)}.btn-primary:disabled{opacity:.5;cursor:default}.page-skeleton{display:flex;flex-direction:column;gap:16px;padding:22px 4px;animation:fade-in .25s var(--ease-out) both}.page-skeleton-head{display:flex;align-items:center;gap:12px}.page-skeleton-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}@media (max-width: 640px){.page-skeleton-cards{grid-template-columns:repeat(2,1fr)}}.page-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:45vh;height:100%}.page-fallback-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--accent-soft-2);border-top-color:var(--accent);animation:spin .8s linear infinite}.page-fallback-text{font-size:13px;color:var(--text-mute);animation:kiri-pulse 1.4s ease infinite}.modal-overlay{position:fixed;inset:0;background:#11182780;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;animation:fade-in .2s ease both}.modal-dark{background:#0000009e}.modal-panel{background:var(--surface);border-radius:16px;padding:20px;box-shadow:var(--shadow-lg);animation:pop-in .24s var(--ease-spring) both;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow:auto}.modal-panel-dark{background:#1f2937;color:#fff;border:1px solid rgba(255,255,255,.08)}.modal-title{font-weight:700;font-size:16px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-x{font-size:14px;color:var(--text-mute);padding:4px 8px;border-radius:8px}.modal-x:hover{background:#94a3b826;color:inherit}@media (max-width: 640px){.modal-overlay{align-items:flex-end;justify-content:center}.modal-panel,.modal-panel-dark{width:100%!important;border-radius:20px 20px 0 0;padding-bottom:calc(20px + env(safe-area-inset-bottom));max-height:86dvh;animation:sheet-up .3s var(--ease-out) both}}.sheet-backdrop{position:fixed;inset:0;background:#00000080;z-index:110;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:460px;background:var(--surface);border-radius:20px 20px 0 0;padding:8px 12px calc(14px + env(safe-area-inset-bottom));box-shadow:0 -12px 40px #00000040}.sheet-grip{width:38px;height:4px;border-radius:2px;background:var(--border-strong);margin:6px auto 10px}.sheet-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-mute);padding:2px 12px 8px}.sheet-item{display:flex;align-items:center;gap:14px;width:100%;min-height:50px;padding:0 14px;border-radius:12px;font-size:15px;font-weight:600;color:var(--text);text-align:left}.sheet-item:active{background:var(--accent-soft);transform:none}.sheet-item-active{background:var(--accent-soft)}.sheet-item-icon{font-size:18px;width:24px;text-align:center}.sheet-item-danger{color:var(--danger)}.sheet-item-cancel{color:var(--text-soft);margin-top:6px;border-top:1px solid var(--border);border-radius:0 0 12px 12px;font-weight:500}.radial-backdrop{position:fixed;inset:0;z-index:115;background:radial-gradient(circle at 50% 45%,#0f172a6b,#020617de);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:fade-in .18s var(--ease-out) both;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.radial-backdrop.is-closing{animation:fade-out .2s var(--ease-out) both}@keyframes fade-out{0%{opacity:1}to{opacity:0}}.radial-ring{position:absolute;width:104px;height:104px;border-radius:50%;border:1.5px dashed rgba(255,255,255,.3);pointer-events:none;transition:transform .12s linear}.radial-hub{position:absolute;width:66px;height:66px;border-radius:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;background:#0f172ab8;border:1.5px solid rgba(255,255,255,.35);box-shadow:0 0 0 6px #ffffff0f,0 14px 34px #02061780;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease;animation:pop-in .34s var(--ease-spring) both}.radial-hub:hover{background:#f97316d1;border-color:#fff}.radial-hub:active{background:#f97316;border-color:#fff;box-shadow:0 0 0 10px #f973162e}.radial-hub-icon{font-size:24px;line-height:1}.radial-arrow{position:absolute;z-index:3;width:0;height:0;border-left:9px solid transparent;border-right:9px solid transparent;border-top:15px solid #f97316;filter:drop-shadow(0 2px 4px rgba(2,6,23,.55));transform:translate(-50%);pointer-events:none;animation:arrow-bob 1.2s var(--ease-in-out) infinite}@keyframes arrow-bob{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-4px)}}.radial-item{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:none;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}.radial-in{display:block;animation:radial-fly .5s var(--ease-spring) both}@keyframes radial-fly{0%{transform:translate(calc(-1 * var(--tx)),calc(-1 * var(--ty))) scale(.3);opacity:0}to{transform:none;opacity:1}}.radial-orbit{display:block;transition:transform .07s linear}.radial-face{display:flex;flex-direction:column;align-items:center;gap:2px;width:76px;padding:8px 5px 7px;border-radius:16px;background:#fffffff2;border:1.5px solid rgba(255,255,255,.75);box-shadow:0 10px 24px #0206176b;transition:transform .18s var(--ease-spring),background-color .18s ease,box-shadow .18s ease,border-color .18s ease}.radial-face.is-sel{transform:scale(1.14);background:var(--accent-grad);border-color:#fff;box-shadow:0 12px 30px #f973168c}.radial-icon{font-size:20px;line-height:1}.radial-label{font-size:10.5px;font-weight:700;color:var(--text);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radial-face.is-sel .radial-label{color:#fff}.radial-hint{position:fixed;left:50%;bottom:calc(84px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(88vw,330px);padding:8px 14px;border-radius:14px;background:#fffffff2;box-shadow:0 10px 26px #02061761;text-align:center;pointer-events:none;animation:rise-in .4s var(--ease-out) both;animation-delay:.14s}.radial-hint.is-sel{background:var(--accent-grad)}.radial-hint-main{font-size:13.5px;font-weight:700;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radial-hint.is-sel .radial-hint-main{color:#fff}.radial-hint-sub{font-size:11px;color:#64748b;margin-top:1px}.radial-hint.is-sel .radial-hint-sub{color:#ffffffe0}@media (prefers-reduced-motion: reduce){.radial-backdrop,.radial-in,.radial-hub,.radial-hint,.radial-orbit,.radial-ring,.radial-arrow{animation:none!important;transition:none!important}}.ctx-backdrop{position:fixed;inset:0;z-index:105}.ctx-menu{position:fixed;z-index:106;width:216px;background:#1f2937f7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:5px;box-shadow:0 14px 40px #0006;transform-origin:top left}.ctx-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border-radius:8px;font-size:13.5px;font-weight:500;color:#e5e7eb;text-align:left}.ctx-item:hover{background:#ffffff17}.ctx-item:active{background:#ffffff24}.ctx-item-danger{color:#f87171}.ctx-item-danger:hover{background:#ef444424}.sidebar{width:232px;background:linear-gradient(180deg,var(--nav) 0%,#14161c 60%,#101216 100%);color:var(--nav-ink);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh}.sidebar-brand{padding:20px 18px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-mark{width:26px;height:26px;border-radius:8px;background:var(--accent-grad);display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:800;box-shadow:0 0 16px #f9731680}.nav-group-caption{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.1px;color:#8b93a78c;padding:14px 14px 5px}.sidebar-footer{padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:var(--nav-mute)}.user-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;background:var(--accent-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 2px 8px #ea580c4d}.sidebar-logout{color:var(--nav-mute);font-size:15px;padding:6px 8px;border-radius:8px}.sidebar-logout:hover{background:var(--nav-2);color:#f87171}.topbar{flex-shrink:0;height:56px;display:flex;align-items:center;gap:12px;padding:0 24px;background:#ffffffd1;backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);border-bottom:1px solid var(--border)}.topbar-tick{width:4px;height:20px;border-radius:3px;background:var(--accent-grad);flex-shrink:0}.topbar-title{font-size:15px;font-weight:700;color:var(--text-soft);letter-spacing:-.2px}.topbar-user{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 6px;border-radius:22px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .15s var(--ease-out)}.topbar-user:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.nav-badge{color:#fff;font-size:11px;font-weight:700;border-radius:10px;padding:1px 7px;min-width:18px;text-align:center}.nav-flyout{position:fixed;width:236px;background:#1a1d24f7;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12);border-radius:12px;box-shadow:0 18px 44px #00000073;z-index:90;padding:10px}.nav-flyout-arrow{position:absolute;left:-5px;top:18px;width:10px;height:10px;background:inherit;border-left:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12);transform:rotate(45deg)}.nav-flyout-row{display:flex;align-items:center;gap:9px;width:100%;padding:6px 8px;font-size:13px;border-radius:7px;color:var(--nav-ink)}.nav-flyout-row:hover{background:#ffffff14}.nav-arrow{color:var(--nav-mute);font-size:16px;line-height:1;opacity:0;transform:translate(-4px);transition:opacity .2s ease,transform .2s var(--ease-out)}.nav-item:hover .nav-arrow,.nav-item.active .nav-arrow{opacity:.85;transform:translate(0)}.nav-item-icon{width:20px;text-align:center;font-size:15px;flex-shrink:0;transition:transform .2s var(--ease-spring)}.nav-item:hover .nav-item-icon{transform:scale(1.18)}.m-header{position:sticky;top:0;z-index:40;flex-shrink:0;background:linear-gradient(180deg,#14161c,var(--nav));box-shadow:0 6px 18px #00000047}.m-header-logout{color:var(--nav-mute);font-size:17px;padding:6px 9px;border-radius:8px;flex-shrink:0}.m-header-logout:active{background:var(--nav-2)}.nav-item{position:relative;display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 12px;margin:2px 0;border-radius:9px;color:var(--nav-mute);background:transparent;font-size:14px;font-weight:500;text-decoration:none;overflow:hidden;transition:background-color .22s ease,color .22s ease,box-shadow .22s ease,transform .12s var(--ease-out)}.nav-item:hover{background:var(--nav-2);color:#cbd5e1}.nav-item:active{transform:scale(.98)}.nav-item.active{color:#fff;font-weight:600;background:var(--accent-grad);box-shadow:0 4px 14px #f9731661}.nav-item.active:after{content:"";position:absolute;top:0;bottom:0;left:0;width:34%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translate(-140%) skew(-18deg);pointer-events:none}.nav-item.active:hover:after{animation:sheen 1.1s var(--ease-out)}.m-tabbar{flex-shrink:0;display:flex;align-items:stretch;background:#111318eb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom)}.m-tab{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:54px;padding:8px 2px 6px;color:var(--nav-mute);font-size:10.5px;font-weight:600;text-decoration:none;transition:color .2s ease,transform .1s var(--ease-out)}.m-tab:active{transform:scale(.92)}.m-tab.active{color:var(--accent)}.m-tab.active .m-tab-icon{transform:translateY(-2px) scale(1.08)}.m-tab-icon{font-size:20px;line-height:1;transition:transform .25s var(--ease-spring)}.m-tab-dot{position:absolute;top:7px;right:calc(50% - 17px);min-width:16px;height:16px;border-radius:9px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 0 0 2px var(--nav)}.m-tab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--accent-grad-h)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);animation:rise-in .36s var(--ease-out) both}.toolbar-input,.toolbar-select{padding:8px 12px;border:1px solid var(--border);border-radius:9px;font-size:13px;background:var(--surface-2);color:var(--text);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.toolbar-input{flex:1;min-width:180px}.toolbar-input:hover,.toolbar-select:hover{background:var(--surface);border-color:var(--border-strong)}.toolbar-select{cursor:pointer;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:5px;padding:8px 14px;border-radius:20px;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-soft);white-space:nowrap;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .08s var(--ease-out)}.chip:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.chip:active{transform:scale(.97)}.chip.on{background:var(--accent-grad-h);color:#fff;border-color:transparent;box-shadow:0 3px 12px #ea580c59}.t-card tbody tr{transition:background-color .15s ease}.t-card tbody tr:hover{background:#f973160b}.t-card tbody tr{animation:fade-in .35s var(--ease-out) both}.t-card tbody tr:nth-child(1){animation-delay:.02s}.t-card tbody tr:nth-child(2){animation-delay:.05s}.t-card tbody tr:nth-child(3){animation-delay:.08s}.t-card tbody tr:nth-child(4){animation-delay:.11s}.t-card tbody tr:nth-child(5){animation-delay:.14s}.t-card tbody tr:nth-child(6){animation-delay:.17s}.t-card tbody tr:nth-child(7){animation-delay:.2s}.t-card tbody tr:nth-child(n+8){animation-delay:.23s}.stat-tile{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px;animation:rise-in .4s var(--ease-out) both;transition:transform .18s var(--ease-out),box-shadow .22s var(--ease-out)}.stat-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-tile:after{content:"";position:absolute;top:-40%;right:-12%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.1),transparent 70%);pointer-events:none}.toast-stack{position:fixed;left:50%;transform:translate(-50%);bottom:calc(76px + env(safe-area-inset-bottom));z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;background:#111827eb;color:#fff;font-size:13px;font-weight:600;padding:10px 18px;border-radius:22px;box-shadow:0 10px 30px #00000059;animation:msg-in .28s var(--ease-spring) both;max-width:calc(100vw - 32px)}@media (min-width: 641px){.toast-stack{bottom:28px}}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#94a3b8;background-clip:padding-box;border:2px solid transparent}.m-scroll::-webkit-scrollbar{width:6px}.m-scroll::-webkit-scrollbar-track{background:transparent}.m-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.m-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff40}.calc-opt-table tbody tr{animation:rise-in .38s var(--ease-out) both}.calc-opt-table tbody tr:nth-child(1){animation-delay:.03s}.calc-opt-table tbody tr:nth-child(2){animation-delay:.07s}.calc-opt-table tbody tr:nth-child(3){animation-delay:.11s}.calc-opt-table tbody tr:nth-child(4){animation-delay:.15s}.calc-opt-table tbody tr:nth-child(5){animation-delay:.19s}.calc-opt-table tbody tr:nth-child(6){animation-delay:.23s}.calc-opt-table tbody tr:nth-child(7){animation-delay:.27s}.calc-opt-table tbody tr:nth-child(n+8){animation-delay:.31s}.calc-opt-table tbody tr{transition:background-color .2s ease,box-shadow .2s ease}.calc-opt-table tbody tr:hover{box-shadow:inset 3px 0 0 var(--accent)}.reveal-anim{display:grid;grid-template-rows:1fr;animation:reveal-in .42s var(--ease-out) both}.reveal-anim>.reveal-inner{overflow:hidden;min-height:0}@keyframes reveal-in{0%{grid-template-rows:0fr;opacity:0}to{grid-template-rows:1fr;opacity:1}}.t-card.no-anim tbody tr{animation:none}.tip{position:relative}.tip-body{position:absolute;left:50%;bottom:calc(100% + 6px);transform:translate(-50%,4px) scale(.96);background:#0f172af5;color:#fff;font-size:11px;font-weight:600;line-height:1.35;padding:6px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;box-shadow:0 8px 22px #00000047;z-index:20;display:none}.tip-body:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#0f172af5}.tip:hover .tip-body,.tip:focus-visible .tip-body{display:block;transform:translate(-50%) scale(1);animation:fade-in .14s ease both}.bar-col{transition:filter .15s ease}.bar-col:hover{filter:brightness(1.06)}.bar-fill{transition:height .6s var(--ease-out),background-color .2s ease;transform-origin:bottom}.skel-dark{display:inline-block;background:linear-gradient(90deg,#1c2733 25%,#253243,#1c2733 75%);background-size:420px 100%;animation:shimmer 1.3s linear infinite}.chat-item{padding:9px 14px;cursor:pointer;background:transparent;border:none;width:100%;text-align:left;display:block;transition:background-color .18s ease,transform .1s var(--ease-out);animation:fade-in .3s var(--ease-out) both}.chat-item:hover{background:#ffffff0a}.chat-item:active{background:#ffffff12}.chat-item-active{background:linear-gradient(90deg,#2b5278,#24466a);box-shadow:inset 3px 0 #5fb6f5}.chat-item-active:hover{background:linear-gradient(90deg,#2b5278,#24466a)}.chat-item-btn{display:flex;align-items:center;gap:10px;border-radius:10px;padding:8px 10px}.tg-btn{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:filter .18s ease,transform .08s var(--ease-out),opacity .18s ease}.tg-btn:active:not(:disabled){transform:scale(.97)}.tg-btn-blue{background:#2b5278;color:#fff;padding:8px 10px}.tg-btn-blue:hover{background:#356391}.tg-btn-primary{background:#3390ec;color:#fff}.tg-btn-primary:hover:not(:disabled){background:#4a9ef0}.tg-btn-ghost{background:#0e1621;color:#d1d5db;border:1px solid #2b5278}.tg-btn-ghost:hover{border-color:#456e97;color:#fff}.tg-icon-btn{font-size:16px;padding:6px 9px;background:transparent;border-radius:8px;border:none;cursor:pointer;color:#6b7c93;flex-shrink:0;transition:background-color .18s ease,color .18s ease}.tg-icon-btn:hover{background:#ffffff0f;color:#d7e2ec}.tg-input{padding:10px 14px;border:1px solid #2b5278;border-radius:10px;font-size:14px;background-color:#0e1621;color:#f5f5f5;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}.tg-input:focus{border-color:#3390ec!important;box-shadow:0 0 0 3px #3390ec38!important}.tg-send{width:42px;height:42px;border-radius:50%;color:#fff;border:none;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color .18s ease,transform .15s var(--ease-spring),box-shadow .18s ease}.tg-send:not(:disabled):hover{transform:scale(1.07);box-shadow:0 4px 16px #3390ec73}.tg-send:not(:disabled){cursor:pointer}.tg-send:disabled{cursor:default}.login-bg{background:radial-gradient(900px 500px at 15% -10%,rgba(249,115,22,.22),transparent 55%),radial-gradient(700px 420px at 110% 110%,rgba(234,88,12,.16),transparent 55%),linear-gradient(160deg,#111318,#171a21 55%,#1d1410)}.login-orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none}.login-orb-1{width:320px;height:320px;background:radial-gradient(circle,rgba(249,115,22,.55),transparent 65%);top:-90px;left:-90px;animation:float-orb 9s ease-in-out infinite}.login-orb-2{width:380px;height:380px;background:radial-gradient(circle,rgba(234,88,12,.4),transparent 65%);bottom:-120px;right:-110px;animation:float-orb 11s ease-in-out infinite reverse}@keyframes float-orb{0%,to{transform:translate(0) scale(1)}50%{transform:translate(28px,-22px) scale(1.12)}}.login-spin{width:15px;height:15px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:spin .7s linear infinite}@media (max-width: 640px){input,select,textarea{font-size:16px!important}}::selection{background:#f9731640}input,textarea{caret-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.workspace{scroll-behavior:smooth}.kiri-fab{transition:transform .25s var(--ease-spring),box-shadow .25s ease}.kiri-fab:hover{transform:scale(1.07) translateY(-2px)}.kiri-fab:active{transform:scale(.96)}.kiri-panel{animation:pop-in .28s var(--ease-spring) both;transform-origin:bottom right}.hx-wrap{border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);background:var(--surface);overflow:hidden;animation:rise-in .4s var(--ease-out) both}.hx-scroll{overflow:auto;max-height:min(62vh,720px);scrollbar-width:thin}.hx-tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.hx-tbl thead th{position:sticky;top:0;z-index:3;background:linear-gradient(180deg,#fbfbfc,#f4f5f7);border-bottom:1px solid var(--border);padding:9px 10px;text-align:right;font-size:10.5px;font-weight:700;letter-spacing:.02em;color:var(--text-mute);text-transform:uppercase;white-space:nowrap;user-select:none;transition:color .16s ease,background-color .16s ease}.hx-tbl thead th.sortable{cursor:pointer}.hx-tbl thead th.sortable:hover{color:var(--accent-strong);background:var(--accent-soft)}.hx-tbl thead th.sorted{color:var(--accent-strong)}.hx-tbl thead th:first-child,.hx-tbl tbody td:first-child{text-align:left;position:sticky;left:0;z-index:2;background:var(--surface)}.hx-tbl thead th:first-child{z-index:4;background:linear-gradient(180deg,#fbfbfc,#f4f5f7)}.hx-tbl tbody td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:right;vertical-align:middle;white-space:nowrap;color:var(--text-soft);font-variant-numeric:tabular-nums;transition:background-color .16s ease,color .16s ease}.hx-tbl tbody tr{animation:hx-row-in .34s var(--ease-out) both;cursor:pointer}.hx-tbl tbody tr:nth-child(1){animation-delay:.02s}.hx-tbl tbody tr:nth-child(2){animation-delay:.05s}.hx-tbl tbody tr:nth-child(3){animation-delay:.08s}.hx-tbl tbody tr:nth-child(4){animation-delay:.11s}.hx-tbl tbody tr:nth-child(5){animation-delay:.14s}.hx-tbl tbody tr:nth-child(6){animation-delay:.17s}.hx-tbl tbody tr:nth-child(7){animation-delay:.2s}.hx-tbl tbody tr:nth-child(8){animation-delay:.23s}.hx-tbl tbody tr:nth-child(odd) td{background:color-mix(in srgb,var(--surface) 92%,#eef1f6)}.hx-tbl tbody tr:hover td{background:var(--accent-soft)}.hx-tbl tbody tr.open td{background:#eef4ff}.hx-tbl tbody tr.open td:first-child{background:#eef4ff;box-shadow:inset 3px 0 0 var(--accent)}.hx-tbl tbody tr.bad td{background:#fef2f2}.hx-tbl tbody tr.bad:hover td{background:#fee2e2}@keyframes hx-row-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.hx-num{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.hx-sub{font-size:10px;color:var(--text-mute);font-weight:500;line-height:1.25}.hx-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.01em;border:1px solid transparent;white-space:nowrap;transition:transform .14s var(--ease-spring),box-shadow .16s ease}.hx-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.hx-badge.ok{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.hx-badge.warn{background:var(--accent-soft);color:var(--accent-ink);border-color:#fed7aa}.hx-badge.bad{background:#fef2f2;color:#b91c1c;border-color:#fecaca}.hx-badge.cool{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.hx-btn{padding:5px 11px;font-size:11px;font-weight:700;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-soft);cursor:pointer;white-space:nowrap;transition:transform .12s var(--ease-out),box-shadow .18s ease,background-color .18s ease,color .18s ease,border-color .18s ease}.hx-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.hx-btn:active:not(:disabled){transform:translateY(0) scale(.97)}.hx-btn:disabled{opacity:.55;cursor:default}.hx-btn.primary{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.hx-btn.go{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.hx-btn.done{background:#f9fafb;color:var(--text-mute)}.hx-drawer{background:linear-gradient(180deg,#f8fafc,#f1f5f9);border-top:1px solid var(--border)}.hx-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);padding:10px 12px;min-width:0;flex:1 1 240px;animation:rise-in .36s var(--ease-out) both;transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out)}.hx-panel:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.hx-panel.hot{border-top:3px solid #dc2626}.hx-panel.cold{border-top:3px solid #2563eb}.hx-panel.dev{border-top:3px solid var(--accent)}.hx-panel-title{font-size:11px;font-weight:800;letter-spacing:.02em;margin-bottom:6px}.hx-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:11px;padding:3px 6px;border-radius:5px;border-bottom:1px solid transparent;transition:background-color .15s ease,transform .15s var(--ease-out);min-width:0}.hx-row:hover{background:var(--accent-soft);transform:translate(2px)}.hx-row-key{color:var(--text-mute);white-space:normal;overflow-wrap:anywhere;flex:1 1 auto;min-width:0}.hx-row-val{color:var(--text);font-weight:600;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;flex:0 1 auto;max-width:78%;overflow:hidden;text-overflow:ellipsis}.hx-panel,.hx-detail-cols>*,.hx-detail-device,.hx-detail-aside{overflow:hidden}.hx-row.is-hero{background:linear-gradient(90deg,var(--accent-soft),#fff)}.hx-row.is-hero .hx-row-val{font-size:12.5px;font-weight:800}.hx-charts{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-strong)}.hx-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;box-shadow:var(--shadow-sm);min-width:230px;flex:1;animation:rise-in .4s var(--ease-out) both;transition:box-shadow .2s var(--ease-out)}.hx-chart:hover{box-shadow:var(--shadow)}.hx-chart-t{font-size:10px;font-weight:800;letter-spacing:.02em;color:var(--text-soft);margin-bottom:6px;text-transform:uppercase}.hx-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--text-mute)}.hx-legend i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:4px}.hx-tbl tbody td.hx-drawer{position:static!important;background:transparent!important}.hx-drawer-img{margin-top:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 10px;box-shadow:var(--shadow-sm)}.tip-float{position:fixed;z-index:9999;max-width:340px;padding:8px 11px;border-radius:10px;background:#0f172af7;color:#fff;font-size:11.5px;font-weight:500;line-height:1.45;white-space:pre-line;text-align:left;pointer-events:none;box-shadow:0 10px 28px #00000052;animation:tip-in .14s ease both}.tip-float:after{content:"";position:absolute;left:50%;width:9px;height:9px;margin-left:-4.5px;background:#0f172af7;transform:rotate(45deg)}.tip-float:after{bottom:-4px}.tip-float-below:after{top:-4px;bottom:auto}@keyframes tip-in{0%{opacity:0}to{opacity:1}}.hx-scroll{max-height:min(38vh,420px)}.hx-detail{margin-top:10px;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg,#fbfcfe,#f6f8fb);box-shadow:var(--shadow);padding:12px 14px 14px;animation:rise-in .42s var(--ease-out) both}.hx-detail-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--border);font-size:13px}.hx-detail-head b{font-size:14px;letter-spacing:-.1px}.hx-detail-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);column-gap:12px;align-items:start}.hx-detail-left{display:flex;flex-direction:column;gap:10px;min-width:0}.hx-detail-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start;min-width:0}.hx-detail-device{min-width:0}.hx-detail-device .hx-panel.dev{padding-top:8px}.hx-detail-aside{display:flex;flex-direction:column;gap:10px;min-width:0}.hx-device-rows{display:block}.hx-detail-aside .hx-drawer-img{margin-top:0;order:-1;padding:10px 12px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow);animation:rise-in .5s var(--ease-out) both}.hx-detail-aside .hx-chart{animation:rise-in .46s var(--ease-out) both}@media (min-width: 1400px){.hx-detail-aside .hx-drawer-img img{min-height:300px;object-fit:contain}}@media (max-width: 1180px){.hx-detail-grid{grid-template-columns:minmax(0,1fr);row-gap:12px}.hx-scroll{max-height:min(34vh,360px)}}@media (max-width: 720px){.hx-detail-cols{grid-template-columns:minmax(0,1fr)}}.hx-chart-hint{font-size:9.5px;color:var(--text-mute);margin-top:6px;line-height:1.35}.hx-bar-row,.hx-limit-row{margin-bottom:9px}.hx-bar-row:last-child,.hx-limit-row:last-child{margin-bottom:2px}.hx-bar-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:10.5px}.hx-bar-label{color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hx-bar-val{font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.hx-bar-val em{font-style:normal;font-size:9px;font-weight:700;margin-left:6px;color:var(--text-mute);background:#f1f5f9;border-radius:999px;padding:1px 6px}.hx-bar-val.ok{color:#047857}.hx-bar-val.warn{color:#b45309}.hx-bar-val.bad{color:#dc2626}.hx-bar-track{position:relative;height:9px;margin-top:4px;background:#eef2f7;border-radius:5px;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a0f}.hx-bar-fill{height:100%;border-radius:5px;box-shadow:0 1px 3px #0f172a29}.hx-bar-fill.ok{background:linear-gradient(90deg,#4ade80,#16a34a)}.hx-bar-fill.warn{background:linear-gradient(90deg,#fbbf24,#d97706)}.hx-bar-fill.bad{background:linear-gradient(90deg,#f87171,#dc2626)}.hx-bar-limit{position:absolute;right:0;top:-2px;bottom:-2px;width:2px;background:repeating-linear-gradient(180deg,#64748b 0 3px,transparent 3px 6px)}.hx-bar-note{font-size:9.5px;color:var(--text-mute);margin-top:3px}.hx-lightbox{position:fixed;inset:0;z-index:10000;background:#0f172aeb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;animation:fade-in .16s ease both;cursor:zoom-out}.hx-lightbox img{max-width:94vw;max-height:84vh;object-fit:contain;background:#fff;border-radius:8px;box-shadow:var(--shadow-lg);cursor:default}.hx-lightbox-bar{position:absolute;top:14px;left:18px;right:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#fff;font-size:13px}.hx-lightbox-hint{color:#cbd5e1;font-size:11px}.hx-zoom-hint{font-size:9.5px;color:var(--text-mute);margin-top:6px;text-align:center}.hx-drawer-img{cursor:zoom-in}.hx-drawer-img:hover{border-color:var(--accent)!important;box-shadow:var(--shadow)}.hx-drawer-img{flex:1 1 auto;display:flex;flex-direction:column}.hx-drawer-img img{width:100%;height:auto;display:block;background:#fff;transition:transform .2s var(--ease-out)}.hx-drawer-img:hover img{transform:scale(1.012)}.ws-page{max-width:1280px;margin:0 auto;padding:18px 20px 40px}.ws-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}.ws-head-sub{color:var(--text-mute);font-size:12.5px;margin-top:4px;max-width:640px;line-height:1.45}.ws-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}.ws-toolbar .ws-search{margin-left:auto}.ws-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--radius-sm);font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-soft);transition:border-color .16s ease,color .16s ease,background-color .16s ease,transform .08s var(--ease-out),box-shadow .18s ease;white-space:nowrap}.ws-btn:hover{border-color:var(--border-strong);color:var(--text);box-shadow:var(--shadow-sm)}.ws-btn:active{transform:scale(.97)}.ws-btn:disabled{opacity:.55;cursor:default;box-shadow:none}.ws-btn-accent{background:var(--accent-grad-h);color:#fff;border-color:transparent;box-shadow:0 2px 8px #ea580c4d}.ws-btn-accent:hover{color:#fff;box-shadow:var(--shadow-accent)}.ws-btn-ghost{background:transparent}.ws-btn-danger{color:var(--danger)}.ws-btn-danger:hover{border-color:#fecaca;background:#fef2f2;color:var(--danger)}.ws-btn-sm{padding:4px 8px;font-size:11.5px}.ws-btn-icon{padding:5px 8px;font-size:13px;line-height:1}.ws-table{width:100%;border-collapse:collapse;font-size:13px}.ws-table thead th{position:sticky;top:0;z-index:2;padding:9px 12px;text-align:left;white-space:nowrap;font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-mute);background:var(--surface-2);border-bottom:1px solid var(--border)}.ws-table tbody td{padding:8px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.ws-table tbody tr:last-child td{border-bottom:none}.ws-table tbody tr{transition:background-color .15s ease}.ws-table tbody tr:hover{background:#f973160b}.ws-num{font-variant-numeric:tabular-nums;white-space:nowrap}.ws-actions{display:flex;gap:4px;justify-content:flex-end}.ws-name{font-weight:600;color:var(--text)}.ws-sub{color:var(--text-mute);font-size:11.5px;margin-top:1px}.ws-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.01em;background:var(--surface-2);border:1px solid var(--border);color:var(--text-mute)}.ws-tag-ridan{background:#eff6ff;border-color:#dbeafe;color:#1d4ed8}.ws-tag-ares{background:#f0fdf4;border-color:#dcfce7;color:#15803d}.ws-tag-ok{background:#ecfdf5;border-color:#d1fae5;color:#047857}.ws-tag-warn{background:#fffbeb;border-color:#fde68a;color:#b45309}.ws-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:9px 14px;border-top:1px solid var(--border);background:var(--surface-2);color:var(--text-mute);font-size:12px}.ws-pager{display:flex;align-items:center;gap:4px}.ws-page-num{min-width:20px;text-align:center;font-weight:700;color:var(--text-soft);font-variant-numeric:tabular-nums}.ws-empty{padding:46px 20px;text-align:center;color:var(--text-mute)}.ws-empty-title{font-size:14px;font-weight:700;color:var(--text-soft);margin-bottom:4px}.ws-empty-hint{font-size:12.5px;margin-bottom:14px}.ws-label{display:block;font-size:11.5px;font-weight:600;color:var(--text-soft);margin-bottom:4px}.ws-hint{font-size:11px;color:var(--text-mute);margin-top:3px;line-height:1.4}.ws-req{color:var(--danger)}.ws-input,.ws-select,.ws-textarea{width:100%;padding:8px 10px;font-size:13px;font-family:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);transition:border-color .16s ease,box-shadow .16s ease}.ws-input:hover,.ws-select:hover,.ws-textarea:hover{border-color:var(--border-strong)}.ws-input:focus,.ws-select:focus,.ws-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #f9731621}.ws-textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;resize:vertical}.ws-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.ws-form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.ws-field-wide{grid-column:1 / -1}.ws-form-error{padding:8px 11px;border-radius:var(--radius-sm);font-size:12.5px;margin-bottom:12px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.ws-acc{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-top:14px}.ws-acc-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;font-size:12.5px;font-weight:700;color:var(--text-soft);background:var(--surface-2);border:none;cursor:pointer;text-align:left}.ws-acc-head:hover{background:#f1f5f9}.ws-acc-head .ws-acc-caret{color:var(--text-mute);transition:transform .18s var(--ease-out)}.ws-acc-head.open .ws-acc-caret{transform:rotate(90deg)}.ws-acc-body{padding:12px;border-top:1px solid var(--border)}.ws-modal{width:min(760px,calc(100vw - 32px))}.ws-modal-wide{width:min(1080px,calc(100vw - 32px))}.ws-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.ws-modal-title{font-size:16px;font-weight:800;letter-spacing:-.2px}.ws-modal-sub{font-size:12px;color:var(--text-mute);margin-top:2px}.ws-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.ws-modal-foot-left{margin-right:auto;font-size:12px;color:var(--text-mute)}.ws-prof-wrap{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.ws-prof-stage{flex:1 1 340px;min-height:320px;max-height:66vh;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;overflow:auto}.ws-prof-stage img{max-width:100%;max-height:62vh;background:#fff;box-shadow:var(--shadow-sm);cursor:zoom-in;transition:transform .18s var(--ease-out)}.ws-prof-stage img:hover{transform:scale(1.01)}.ws-prof-side{flex:1 1 260px;min-width:240px;display:flex;flex-direction:column;gap:10px}.ws-kv{display:flex;justify-content:space-between;gap:10px;padding:6px 9px;background:var(--surface-2);border-radius:7px;font-size:12.5px}.ws-kv span:first-child{color:var(--text-mute)}.ws-kv span:last-child{font-weight:600;font-variant-numeric:tabular-nums}.ws-chan{padding:7px 9px;border:1px solid var(--border);border-radius:7px;font-size:12px}.ws-chan b{color:#1d4ed8;font-size:12.5px}.ws-chan-line{color:var(--text-mute);font-size:11.5px;margin-top:3px;line-height:1.45}.ws-formula{color:var(--text-soft);font-size:11.5px;margin-top:3px;line-height:1.5}.ws-toasts{position:fixed;right:18px;bottom:18px;z-index:10050;display:flex;flex-direction:column;gap:8px}.ws-toast{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;background:#111827;color:#fff;box-shadow:var(--shadow-lg);animation:rise-in .26s var(--ease-out) both;max-width:380px}.ws-toast-ok{background:#065f46}.ws-toast-err{background:#991b1b}.ws-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px;color:var(--text-mute);font-size:13px}.ws-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:ws-spin .7s linear infinite}@keyframes ws-spin{to{transform:rotate(360deg)}}@media (max-width: 720px){.ws-page{padding:14px 12px 32px}.ws-toolbar .ws-search{margin-left:0;width:100%}}.ws-prof-tabs{display:flex;gap:6px}.ws-prof-stage-3d{background:radial-gradient(600px 300px at 30% 0%,rgba(148,163,184,.1),transparent 65%),linear-gradient(180deg,#fbfcfe,#eef1f5);border-color:#e2e8f0}.ws-prof-stage-3d img{max-height:64vh;cursor:zoom-in}
