:root{--bg:#f1f1ee;--bg2:#e6e6e1;--surface:#fff;--surface-2:#f7f7f4;--glass:#ffffffdb;--ink:#15171a;--ink-2:#33383e;--muted:#555c64;--line:#d6d7d1;--accent:#0e7a86;--accent-ink:#fff;--accent-soft:#ddf0f2;--accent-text:#0a5c66;--cyan:#0b6e86;--cyan-soft:#d9f0f5;--green:#137a4a;--green-soft:#d8f1e3;--amber:#9a5b00;--amber-soft:#fbeccb;--violet:#5b3fb3;--violet-soft:#e7e0fa;--red:#c4262f;--red-soft:#fde1e3;--pink:#0a5c66;--pink-soft:#ddf0f2;--c1:#0e7a86;--c2:#2f6fd0;--c3:#c98200;--c4:#0f8f82;--c5:#7a55d6;--c6:#d2662a;--c7:#4a5560;--c8:#91a31f;--sb-bg:#111315;--sb-ink:#d3d7dc;--sb-muted:#98a0a8;--sb-line:#ffffff17;--sb-hover:#ffffff12;--shadow:0 1px 0 #14161a0a, 0 6px 20px #14161a0f;--shadow-lg:0 24px 60px #0a0c0f47;--r:10px;--sidebar:252px;--ease:cubic-bezier(.2,.8,.2,1);--dots:#282c3212;--wire:#282c3238;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0d0f11;--bg2:#181b1f;--surface:#14171a;--surface-2:#191d21;--glass:#14171adb;--ink:#e9ebed;--ink-2:#c9ced3;--muted:#9ba3ab;--line:#2a2f34;--accent:#5fc6d1;--accent-ink:#04262b;--accent-soft:#0f2f35;--accent-text:#8fdde5;--cyan:#52c7e0;--cyan-soft:#0f3340;--green:#4ccf8a;--green-soft:#103324;--amber:#f2b13c;--amber-soft:#3a2d12;--violet:#b4a0ff;--violet-soft:#2a2250;--red:#ff7b84;--red-soft:#3d1b22;--pink:#8fdde5;--pink-soft:#0f2f35;--c1:#5fc6d1;--c2:#6aa2ff;--c3:#f2b13c;--c4:#3fd0bf;--c5:#a68bff;--c6:#ff9254;--c7:#9aa6b2;--c8:#c4d84a;--sb-bg:#090a0c;--sb-line:#ffffff12;--shadow:0 1px 0 #0006, 0 8px 26px #00000059;--shadow-lg:0 24px 60px #000000a6;--dots:#ffffff0b;--wire:#fff3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;overflow-x:clip}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.2}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.muted{color:var(--muted)}.small{font-size:12px}.bold{font-weight:700}.right{text-align:right}.center{text-align:center}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.col{flex-direction:column;gap:10px;display:flex}.grow{flex:1;min-width:0}.show-sm{display:none!important}.clamp1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.clamp2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100%;transition:grid-template-columns .4s var(--ease);display:grid;position:relative}.app.collapsed{grid-template-columns:76px minmax(0,1fr)}.sidebar{z-index:5;background:var(--sb-bg);height:100vh;color:var(--sb-ink);flex-direction:column;gap:6px;padding:16px 12px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar:before{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 38px,#ffffff06 38px 39px),repeating-linear-gradient(0deg,#0000 0 38px,#ffffff06 38px 39px);position:absolute;inset:0}.sidebar>*{position:relative}.brand{align-items:center;gap:10px;padding:6px 8px 14px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), #0a5c66);color:#fff;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 6px 18px #0e7a8659}.brand-txt{flex-direction:column;min-width:0;display:flex}.brand-txt b{color:#fff;font-size:16px}.brand-txt small{color:var(--sb-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.nav{scrollbar-width:thin;flex-direction:column;flex:1;gap:2px;padding-right:2px;display:flex;position:relative;overflow-y:auto}.nav-pill{pointer-events:none;z-index:0;background:linear-gradient(90deg,#0e7a8647,#0e7a8647);border-radius:12px;height:40px;position:absolute;top:0;left:0;right:2px}.nav a{z-index:1;min-height:40px;color:var(--sb-ink);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:600;display:flex;position:relative}.nav a.active{color:#fff}.nav-sec-btn{letter-spacing:.08em;text-transform:uppercase;min-height:36px;color:var(--sb-muted);text-align:left;z-index:1;border-radius:10px;justify-content:space-between;align-items:center;width:100%;margin-top:8px;padding:0 12px;font-size:12px;font-weight:800;display:flex;position:relative}.nav-sec-btn .chev{transition:transform .25s var(--ease)}.nav-sec-btn[aria-expanded=false] .chev{transform:rotate(-90deg)}.nav a[data-shut="1"]{display:none}.nav-tools{z-index:1;gap:6px;padding:2px 4px 6px;display:flex;position:relative}.nav-tools button{color:var(--sb-muted);border-radius:8px;min-height:40px;padding:6px 8px;font-size:12px;font-weight:700}@media (hover:hover){.nav a:hover{background:var(--sb-hover)}.nav a.active:hover{background:0 0}.nav-tools button:hover{background:var(--sb-hover);color:#fff}}.cnt{background:var(--accent);min-width:22px;height:20px;color:var(--accent-ink);border-radius:99px;place-items:center;margin-left:auto;padding:0 7px;font-size:12px;font-weight:800;display:grid}.side-foot{border-top:1px solid var(--sb-line);flex-direction:column;gap:4px;padding-top:10px;display:flex}.side-foot .btn{color:var(--sb-ink)}.app.collapsed .sidebar:not(.as-drawer) .lbl,.app.collapsed .sidebar:not(.as-drawer) .brand-txt,.app.collapsed .sidebar:not(.as-drawer) .nav-sec-btn,.app.collapsed .sidebar:not(.as-drawer) .nav-tools,.app.collapsed .sidebar:not(.as-drawer) .hide-collapsed,.app.collapsed .sidebar:not(.as-drawer) .cnt{display:none}.app.collapsed .sidebar:not(.as-drawer) .nav a[data-shut]{display:flex}.app.collapsed .sidebar:not(.as-drawer) .nav a{justify-content:center;padding:0}.main{background-image:radial-gradient(var(--dots) 1px, transparent 1.2px);background-size:22px 22px;min-width:0;padding-bottom:28px;position:relative}.demo-banner{background:var(--accent-soft);color:var(--ink);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 20px;font-size:12px;display:flex}.demo-banner svg{color:var(--accent-text);flex:none}.topbar{z-index:10;background:var(--glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:10px 24px;display:flex;position:sticky;top:0}.search{border:1px solid var(--line);background:var(--surface);min-width:0;max-width:460px;min-height:44px;color:var(--muted);border-radius:14px;flex:1;align-items:center;gap:8px;padding:0 14px;display:flex;overflow:hidden}.search input{background:0 0;border:0;outline:0;flex:1;min-width:0;font-size:16px}.kbd{border:1px solid var(--line);background:var(--bg2);color:var(--muted);border-radius:7px;padding:2px 7px;font-family:ui-monospace,monospace;font-size:12px}.icon-btn{width:44px;height:44px;color:var(--ink-2);border-radius:14px;flex:none;place-items:center;display:grid;position:relative}@media (hover:hover){.icon-btn:hover{background:var(--bg2)}}.icon-btn .dot{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:9px;height:9px;position:absolute;top:9px;right:10px}.avatar{background:linear-gradient(135deg, var(--accent), #0a5c66);width:44px;height:44px;color:var(--accent-ink);border-radius:13px;flex:none;place-items:center;font-weight:800;display:grid}:root:not([data-theme=dark]) .avatar{color:#fff}.menu-btn{display:none}.page{max-width:1480px;margin:0 auto;padding:26px 28px 40px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{align-items:center;gap:12px;font-size:27px;display:flex}.page-head h1 .ph-ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:13px;flex:none;place-items:center;display:grid}.page-head p{color:var(--muted);max-width:64ch;margin-top:4px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0;padding:18px;position:relative}.card.tight{padding:12px}.card.pad0{padding:0;overflow:hidden}.card h3{font-size:16px}.card-h{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.card-h h3{align-items:center;gap:8px;display:flex}.card-h h3 svg{color:var(--accent-text)}.g2,.g3,.g4{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;display:grid}.g-main>*,.g2>*,.g3>*,.g4>*{min-width:0}.stack{flex-direction:column;gap:16px;display:flex}.kpi{flex-direction:column;gap:6px;display:flex;overflow:hidden}.kpi .k-ic{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;display:grid}.kpi .k-v{letter-spacing:-.03em;font-size:30px;font-weight:800;line-height:1.1}.kpi .k-l{color:var(--muted);font-size:13px;font-weight:600}.delta{border-radius:99px;align-items:center;gap:3px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-flex}.delta.up{background:var(--green-soft)}.delta.down{background:var(--red-soft)}.spark{display:block}.btn{border:1px solid var(--line);background:var(--surface);min-height:44px;transition:transform .15s var(--ease), background .2s, box-shadow .2s;white-space:nowrap;border-radius:13px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.97)}@media (hover:hover){.btn:hover{background:var(--bg2)}.btn.primary:hover{filter:brightness(1.1);background:var(--accent)}}.btn.primary{background:var(--accent);color:var(--accent-ink);box-shadow:0 8px 20px color-mix(in srgb, var(--accent) 35%, transparent);border-color:#0000}.btn.ghost{background:0 0;border-color:#0000}.btn.lg{min-height:52px;font-size:15px}.btn.sm{min-height:40px;padding:0 12px;font-size:13px}.btn[disabled]{opacity:.5;cursor:not-allowed}@media (pointer:coarse){.btn.sm{min-height:44px}}.input,select.input,textarea.input{border:1px solid var(--line);background:var(--surface);border-radius:12px;outline:0;width:100%;min-height:44px;padding:10px 14px;font-size:16px;transition:border-color .2s,box-shadow .2s}textarea.input{resize:vertical;min-height:88px;line-height:1.45}textarea.input.mono{font-size:14px}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent)}.input.bad{border-color:var(--red)}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.lab{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:800}.hint{color:var(--muted);font-size:12px}.hint.err{color:var(--red);font-weight:600}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent);flex:none}input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}.switch{background:var(--bg2);border:1px solid var(--line);border-radius:99px;flex:none;width:48px;height:28px;transition:background .25s;position:relative}.switch i{background:var(--ink-2);width:20px;height:20px;transition:transform .3s var(--ease), background .2s;border-radius:50%;position:absolute;top:3px;left:3px}.switch.on{background:var(--accent);border-color:#0000}.switch.on i{background:var(--accent-ink);transform:translate(20px)}.switch:after{content:"";position:absolute;inset:-8px -2px}.seg{background:var(--bg2);scrollbar-width:none;border-radius:14px;max-width:100%;padding:4px;display:inline-flex;position:relative;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg .thumb{background:var(--surface);width:0;box-shadow:var(--shadow);border-radius:11px;position:absolute;top:4px;bottom:4px;left:0}.seg button{z-index:1;min-height:40px;color:var(--ink-2);white-space:nowrap;border-radius:11px;padding:0 14px;font-weight:700;position:relative}.seg button.on{color:var(--ink)}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{min-height:44px;color:var(--muted);white-space:nowrap;border-bottom:3px solid #0000;padding:0 16px;font-weight:700}.tabs button.on{color:var(--ink);border-color:var(--accent)}.badge,.chip{background:var(--bg2);color:var(--ink-2);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-flex}.chip i.d{background:var(--muted);border-radius:50%;width:8px;height:8px}.chip.green i.d{background:var(--green)}.chip.amber i.d{background:var(--amber)}.chip.red i.d{background:var(--red)}.chip.accent i.d{background:var(--accent)}button.chip{border:1px solid var(--line);min-height:40px;padding:0 14px}button.chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.tag{background:var(--accent-soft);color:var(--accent-text);border-radius:8px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-flex}.bar{background:var(--bg2);border-radius:99px;height:9px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--accent), #5fc6d1);border-radius:99px;width:0;height:100%;display:block}.bar.green i{background:var(--green)}.bar.amber i{background:var(--amber)}.bar.red i{background:var(--red)}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.av{color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:inline-grid}.empty{text-align:center;color:var(--ink-2);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:34px 16px;display:flex}.empty-ic{background:var(--accent-soft);width:60px;height:60px;color:var(--accent-text);border-radius:18px;place-items:center;margin-bottom:6px;display:grid}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:12px;font-weight:800}td{border-bottom:1px solid var(--line);vertical-align:middle;padding:11px 12px}tbody tr:last-child td{border-bottom:0}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable button{font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;align-items:center;gap:4px;min-height:32px;display:inline-flex}@media (hover:hover){tbody tr.click:hover{background:var(--surface-2);cursor:pointer}}.list-row{text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px;display:flex}@media (hover:hover){.list-row:hover{background:var(--surface-2)}}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters .input{flex:0 200px;width:auto;min-width:140px}.filters .search-f{flex:220px;max-width:360px}.code{color:#e2d5f2;white-space:pre;background:#0d0f11;border-radius:14px;max-height:360px;padding:14px;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:1.55;overflow:auto}.code.wrapc{white-space:pre-wrap;overflow-wrap:anywhere}.copyline{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;align-items:center;gap:8px;min-width:0;padding:6px 6px 6px 12px;font-family:ui-monospace,monospace;font-size:12px;display:flex}.copyline span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.overlay{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#08090b99;place-items:center;padding:16px;animation:.25s both fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);width:min(520px,100%);max-height:92vh;box-shadow:var(--shadow-lg);animation:pop .4s var(--ease) both;border:1px solid var(--line);border-radius:22px;padding:24px;overflow-y:auto}.modal h3{margin-bottom:4px;font-size:19px}.sheet{background:var(--surface);width:100%;padding:18px 16px calc(96px + env(safe-area-inset-bottom));animation:rise .35s var(--ease) both;border-radius:24px 24px 0 0;grid-template-columns:repeat(3,1fr);gap:8px;max-height:80vh;display:grid;overflow-y:auto}.sheet a{background:var(--bg2);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:76px;padding:4px;font-size:12px;font-weight:700;display:flex}.sheet a.active{background:var(--accent);color:var(--accent-ink)}.toasts{z-index:80;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:slidein .45s var(--ease) both;border-radius:14px;align-items:center;gap:10px;max-width:360px;padding:12px 16px;font-weight:600;display:flex}.wipe{z-index:100;pointer-events:none;position:fixed;inset:0}.tour-mask{z-index:90;pointer-events:none;transition:all .45s var(--ease);border-radius:14px;position:fixed;box-shadow:0 0 0 9999px #08090bb3}.tour-tip{z-index:91;background:var(--surface);width:min(330px,100vw - 24px);box-shadow:var(--shadow-lg);border:1px solid var(--line);animation:pop .4s var(--ease) both;border-radius:20px;padding:16px;position:fixed}.tour-tip h4{margin-bottom:4px;font-size:15px}.tour-dots{gap:5px;display:flex}.tour-dots i{background:var(--line);border-radius:99px;width:6px;height:6px}.tour-dots i.on{background:var(--accent);width:18px}.drag-ghost{z-index:200;pointer-events:none;background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-lg);white-space:nowrap;text-overflow:ellipsis;border-radius:12px;max-width:240px;padding:8px 12px;font-size:13px;font-weight:700;position:fixed;top:0;left:0;overflow:hidden}body.is-dragging{-webkit-user-select:none;user-select:none;cursor:grabbing}.palette-pop{z-index:70;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);width:min(320px,100vw - 24px);max-height:60vh;animation:pop .25s var(--ease) both;border-radius:18px;padding:8px;position:fixed;overflow-y:auto}.bottomnav{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:61;background:var(--glass);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);box-shadow:var(--shadow-lg);border-radius:22px;justify-content:space-around;padding:6px;display:none;position:fixed}.bottomnav a,.bottomnav button{min-width:52px;min-height:48px;color:var(--muted);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:4px 8px;font-size:12px;font-weight:700;display:flex}.bottomnav a.active{color:var(--accent-ink);background:var(--accent)}.scrim{z-index:69;background:#08090b99;animation:.25s both fade;position:fixed;inset:0}.sidebar.as-drawer{z-index:70;width:min(300px,86vw);height:100%;box-shadow:var(--shadow-lg);animation:drawerin .35s var(--ease) both;position:fixed;top:0;bottom:0;left:0}.login{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100%;display:grid}.login-hero{color:#fff;background:radial-gradient(900px 600px at 80% 10%,#0f2f35 0%,#0000 60%),radial-gradient(700px 500px at 0 100%,#0a5c66 0%,#0000 62%),#0d0f11;flex-direction:column;justify-content:space-between;gap:24px;min-height:100vh;padding:38px 46px;display:flex;position:relative;overflow:hidden}.login-hero h1{max-width:15ch;margin-bottom:14px;font-size:clamp(30px,3.6vw,46px)}.login-hero p{opacity:.92;max-width:46ch;font-size:16px}.login-hero .art{opacity:.8;pointer-events:none;width:100%;height:36%;position:absolute;bottom:0;left:0;right:0}.float{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:2;background:#ffffff24;border:1px solid #ffffff47;border-radius:16px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;display:flex;position:absolute}.login-form{background:var(--bg);place-items:center;padding:28px 20px;display:grid}.login-card{flex-direction:column;gap:14px;width:min(430px,100%);display:flex}.login-card h2{font-size:26px}.roles{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.role{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:64px;font-size:12px;font-weight:700;display:flex}.role.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent)}.otp{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.otp input{text-align:center;padding:0}.or{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.floaty{animation:6s ease-in-out infinite floaty}.feed-item{border-bottom:1px solid var(--line);animation:msgin .5s var(--ease) both;align-items:flex-start;gap:10px;padding:9px 0;display:flex}.feed-item:last-child{border:0}.feed-ic{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:10px;flex:none;place-items:center;display:grid}.feed-ic.green{background:var(--green-soft);color:var(--green)}.feed-ic.red{background:var(--red-soft);color:var(--red)}.feed-ic.amber{background:var(--amber-soft);color:var(--amber)}.hero-card{color:#fff;background:radial-gradient(500px 300px at 100% 0,#0e7a8680,#0000 70%),linear-gradient(135deg,#0e7a86,#1a1d21);border:0;border-radius:24px;padding:24px;position:relative;overflow:hidden}.hero-card h2{max-width:18ch;font-size:24px}.hero-card p{opacity:.94;max-width:44ch;margin-top:6px}.hero-card .hero-art{opacity:.75;pointer-events:none;width:38%;height:100%;position:absolute;bottom:0;right:0}.hero-card .btn{color:#1a1d21;background:#fff;border:0;position:relative}.hero-card>:not(.hero-art){z-index:1;position:relative}.attn{background:var(--surface-2);border:1px solid var(--line);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;min-width:0;padding:12px;display:flex}.thumb-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.tpl-art{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;height:120px;margin-bottom:12px;padding:8px;position:relative;overflow:hidden}.thumb-wire{stroke-dasharray:20 14;animation:1.2s linear infinite dash;stroke:var(--accent)!important}.perm{grid-template-columns:minmax(150px,1.6fr) repeat(5,minmax(60px,1fr));align-items:center;min-width:520px;display:grid}.perm>*{border-bottom:1px solid var(--line);padding:10px 8px}.perm .hd{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:center;font-size:12px;font-weight:800}.meter-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 12px;display:grid}.tl{padding-left:30px;position:relative}.tl:before{content:"";background:repeating-linear-gradient(var(--wire) 0 6px, transparent 6px 10px);width:2px;position:absolute;top:6px;bottom:6px;left:11px}.tl-item{padding:4px 0 14px;position:relative}.tl-dot{background:var(--surface);border:2px solid var(--line);width:24px;height:24px;color:var(--muted);border-radius:50%;place-items:center;display:grid;position:absolute;top:4px;left:-30px}.tl-dot.success{border-color:var(--green);color:var(--green)}.tl-dot.failed{border-color:var(--red);color:var(--red)}.tl-dot.waiting,.tl-dot.retried{border-color:var(--amber);color:var(--amber)}.step-btn{text-align:left;border:1px solid #0000;border-radius:12px;width:100%;min-height:44px;padding:8px 10px;display:block}.step-btn.on{background:var(--accent-soft);border-color:var(--accent)}.cell-input{background:0 0;border:1px solid #0000;border-radius:8px;width:100%;min-height:40px;padding:6px 8px;font-size:16px}.cell-input:focus{border-color:var(--accent);background:var(--surface);outline:0}.cronbox{letter-spacing:.04em;text-align:center;font-family:ui-monospace,monospace;font-size:22px}.cron-cell{flex-direction:column;align-items:center;gap:4px;display:flex}.cron-cell small{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:700}.nextrun{background:var(--surface-2);border:1px solid var(--line);animation:msgin .4s var(--ease) both;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;display:flex}.nextrun .n{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:800;display:grid}.app-tile{flex-direction:column;gap:10px;display:flex}.app-ic{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-text);border-radius:13px;flex:none;place-items:center;display:grid}.diff-ok{color:var(--green)}.diff-bad{color:var(--red)}.sim-badge{background:var(--pink-soft);color:var(--ink);border:1px dashed var(--pink);border-radius:99px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:800;display:inline-flex}.map-row{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr) 70px auto;align-items:center;gap:8px;padding:10px;display:grid}.circuit-bg{pointer-events:none;position:absolute;inset:0}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.96)}}@keyframes rise{0%{transform:translateY(100%)}}@keyframes slidein{0%{opacity:0;transform:translate(30px)}}@keyframes drawerin{0%{transform:translate(-100%)}}@keyframes msgin{0%{opacity:0;transform:translateY(8px)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes dash{to{stroke-dashoffset:-24px}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:1s linear infinite spin}.check{width:84px;height:84px}.check circle{fill:none;stroke:var(--green);stroke-width:4px;stroke-dasharray:240;stroke-dashoffset:240px;animation:.7s .1s forwards draw}.check path{fill:none;stroke:var(--green);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:60;stroke-dashoffset:60px;animation:.5s .6s forwards draw}@keyframes draw{to{stroke-dashoffset:0}}@media (width<=1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:minmax(0,1fr)}.login{grid-template-columns:1fr}.login-hero{min-height:0;padding:28px 24px 36px}.login-hero .art,.login-hero .float{display:none}}@media (width>=721px) and (width<=1100px){.app{grid-template-columns:76px minmax(0,1fr)!important}.sidebar:not(.as-drawer) .lbl,.sidebar:not(.as-drawer) .brand-txt,.sidebar:not(.as-drawer) .nav-sec-btn,.sidebar:not(.as-drawer) .nav-tools,.sidebar:not(.as-drawer) .hide-collapsed,.sidebar:not(.as-drawer) .cnt{display:none}.sidebar:not(.as-drawer) .nav a[data-shut]{display:flex}.sidebar:not(.as-drawer) .nav a{justify-content:center;padding:0}.sidebar:not(.as-drawer) .brand{justify-content:center;padding:6px 0 14px}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.page{padding:22px 20px 36px}.topbar{padding:10px 16px}.map-row{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 60px auto}}@media (width<=720px){.app,.app.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar:not(.as-drawer){display:none}.bottomnav{display:flex}.hide-sm{display:none!important}.show-sm{display:inline-flex!important}.menu-btn{display:grid}.page{padding:16px 14px 120px}.topbar{gap:6px;padding:8px 12px}.search{max-width:none}.demo-banner{padding:8px 14px}.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.g4.keep2{grid-template-columns:repeat(2,minmax(0,1fr))}.page-head h1{font-size:22px}.kpi .k-v{font-size:25px}.page-head p:not(.keep){display:none}.toasts{bottom:96px;left:12px;right:12px}.toast{max-width:none}.roles{grid-template-columns:repeat(2,1fr)}.hero-card .hero-art{opacity:.35}.modal{padding:18px}.perm{min-width:460px}.map-row{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr)}.map-row>:nth-child(n+4){grid-column:1/-1}.filters .input{flex:140px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (pointer:coarse),(width<=1100px){.btn.sm,.seg button,button.chip,.nav-tools button,.demo-banner button{min-height:44px}.pal-btn{min-height:48px}}.nx{width:40px;height:40px;margin-left:auto}@media (pointer:coarse){.nx{width:44px;height:44px}}.panel-btn{display:none}@media (width<=1360px){.panel-btn{display:inline-flex}}@media (prefers-reduced-motion:reduce){.pulse.amb{display:none}}.canvas button.btn:disabled{opacity:.45}.cv-top .btn,.cv-tools .btn{background:var(--glass);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.g5>*{min-width:0}@media (width<=1100px){.g5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.g5 .k-v{font-size:22px}}:root[data-still="1"] *,:root[data-still="1"] :before,:root[data-still="1"] :after{transition:none!important;animation:none!important}:root[data-still="1"] .pulse.amb{display:none}.page-head.compact{margin-bottom:10px}@media (width<=720px){.cv-top .panel-btn{display:none}.page-head.compact h1{font-size:20px}}.fcc-tip{pointer-events:none;z-index:3;width:176px;box-shadow:var(--shadow-lg);padding:8px 12px;position:absolute}.fcc-tip .dotk{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.k-ic.cyan{background:var(--cyan-soft);color:var(--cyan)}.k-ic.violet{background:var(--violet-soft);color:var(--violet)}.card.click{cursor:pointer;width:100%}@media (hover:hover){.card.click:hover{border-color:var(--accent);transform:translateY(-2px)}}.card.click{transition:transform .2s var(--ease), border-color .2s}.barrow{grid-template-columns:minmax(70px,38%) minmax(0,1fr) auto;align-items:center;gap:10px;min-height:32px;display:grid}.barwrap{min-width:0}.dcard{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;min-width:0;padding:12px}.dcard.click{cursor:pointer}.dcard-t{min-width:0;margin-bottom:8px;font-weight:800}.dcard-g{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;display:grid}.dcard-c{overflow-wrap:anywhere;flex-direction:column;gap:1px;min-width:0;display:flex}table.dense td{padding:7px 10px}td .tag,td .chip{vertical-align:middle}.drawer-ov{place-items:stretch end;padding:0}.drawer{background:var(--surface);border-left:1px solid var(--line);width:min(560px,100%);height:100%;animation:slidein .4s var(--ease) both;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.drawer-h{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:16px 18px;display:flex}.drawer-h h3{font-size:18px}.drawer-b{flex-direction:column;flex:1;gap:16px;min-height:0;padding:18px;display:flex;overflow-y:auto}.dragbar{background:var(--bg2);cursor:ew-resize;outline-offset:3px;border-radius:12px;flex:1;min-width:120px;height:44px;position:relative}.dragbar:before{content:"";background:var(--line);border-radius:99px;height:6px;position:absolute;top:19px;left:0;right:0}.dragbar i{background:var(--accent);border-radius:99px;height:6px;position:absolute;top:19px;left:0}.dragbar b{background:var(--surface);border:4px solid var(--accent);width:22px;height:22px;box-shadow:var(--shadow);border-radius:50%;position:absolute;top:11px}.dragbar.warn i{background:var(--amber)}.dragbar.warn b{border-color:var(--amber)}.k-ic{background:var(--accent-soft);width:40px;height:40px;color:var(--accent-text);border-radius:12px;place-items:center;display:grid}.heat{gap:3px;display:grid}.heat-c{color:#04262b;border-radius:6px;place-items:center;min-height:34px;font-size:12px;font-weight:700;display:grid}.heat-h{color:var(--muted);text-align:center;align-self:center;font-size:12px;font-weight:800}.scroll-x{padding-bottom:6px;overflow-x:auto}.scroll-x::-webkit-scrollbar{height:6px}.scroll-x::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}.paper{color:#15171a;box-shadow:var(--shadow-lg);background:#fff;border:1px solid #d9d2e7;border-radius:10px;max-width:820px;margin:0 auto;padding:34px 38px;font-size:14px}.paper h3{border-bottom:2px solid #0e7a86;margin:18px 0 6px;padding-bottom:3px;font-size:15px}.paper table th{color:#574963;border-color:#d9d2e7}.paper td{border-color:#d9d2e7}@media (width<=720px){.paper{padding:20px 16px}}.pill-row{flex-wrap:wrap;gap:8px;display:flex}.pill-row .chip{cursor:default}.notice.bad svg{color:var(--red)}.chat{flex-direction:column;gap:12px;display:flex}.bubble{max-width:92%;animation:msgin .4s var(--ease) both;border-radius:16px;padding:10px 14px}.bubble.me{background:var(--accent);color:var(--accent-ink);align-self:flex-end}.bubble.ai{background:var(--surface-2);border:1px solid var(--line);align-self:flex-start;width:100%;max-width:100%}.typing i{background:var(--muted);border-radius:50%;width:7px;height:7px;margin-right:4px;animation:1s ease-in-out infinite floaty;display:inline-block}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.store-tile{text-align:left;flex-direction:column;gap:8px;display:flex}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.abc{background:var(--bg2);border-radius:8px;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:inline-grid}.abc.B{background:var(--accent-soft);color:var(--accent-text)}.abc.X{background:var(--green-soft);color:var(--green)}.abc.Y{background:var(--amber-soft);color:var(--amber)}.abc.Z{background:var(--red-soft);color:var(--red)}.mini-note{color:var(--muted);font-size:12px}.tabs-sc{margin-bottom:14px}.hero-card .btn.ghostw{color:#fff;background:#ffffff29;border:1px solid #ffffff59}.pulse-dot{background:var(--green);width:9px;height:9px;box-shadow:0 0 0 0 var(--green);border-radius:50%;flex:none;animation:1.8s infinite pulseo}@keyframes pulseo{70%{box-shadow:0 0 0 10px #0000}to{box-shadow:0 0 #0000}}.sticky-sum{z-index:6;position:sticky;top:74px}@media print{.sidebar,.topbar,.bottomnav,.demo-banner,.page-head,.no-print,.toasts{display:none!important}.app{display:block!important}.main{background:0 0!important}.page{padding:0!important}.paper{box-shadow:none;border:0;max-width:none}body{overflow:visible}}@media (width<=720px){.drawer-ov{place-items:end stretch}.drawer{width:100%;height:94dvh;animation:rise .4s var(--ease) both;border-left:0;border-radius:22px 22px 0 0}.barrow{grid-template-columns:minmax(70px,34%) minmax(0,1fr) auto}.fcc-tip{width:156px}.page-head p:not(.keep){font-size:13px;display:block}}.po-row,.po-head{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1.3fr) minmax(130px,1fr) minmax(160px,1.6fr) 180px 110px;align-items:center;gap:14px;padding:10px 4px;display:grid}.po-head{border-top:0;padding:0 4px 6px;font-weight:700}.po-row>*,.min0{min-width:0}.po-qty{justify-content:flex-end;align-items:center;gap:4px;display:flex}@media (width<=1100px){.po-row,.po-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.po-row .dragbar{order:3;grid-column:1/-1}.po-qty{justify-content:flex-start}.po-head{display:none}}@media (width<=720px){.po-row{border:1px solid var(--line);border-top:1px solid var(--line);border-radius:14px;grid-template-columns:minmax(0,1fr);margin-top:10px;padding:12px}.po-row .dragbar{order:0}}.heat>.small{align-self:center}.dotk{border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.hb{flex-direction:column;gap:4px;display:flex}.hb-row{text-align:left;border-radius:8px;grid-template-columns:minmax(70px,34%) minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:34px;padding:0 4px;font-size:13px;display:grid}button.hb-row{min-height:44px}@media (hover:hover){button.hb-row:hover{background:var(--surface-2)}}.hb-row.on{background:var(--accent-soft)}.hb-l{min-width:0;font-weight:600}.hb-t{background:var(--bg2);border-radius:99px;height:14px;display:block;overflow:hidden}.hb-f{border-radius:99px;height:100%;display:block}.hb-v{text-align:right;white-space:nowrap;font-size:13px}.donut-wrap{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.don-row{text-align:left;border-radius:8px;align-items:center;gap:8px;width:100%;min-height:40px;padding:0 6px;font-size:13px;display:flex}.don-row i{border-radius:3px;flex:none;width:12px;height:12px}@media (hover:hover){button.don-row:hover{background:var(--surface-2)}}.kpi-big .k-v{letter-spacing:-.03em;font-size:38px;font-weight:800;line-height:1.1;font-family:var(--mono)}.kpi-multi{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;padding:8px 2px;display:grid}.pop-menu{z-index:30;min-width:210px;max-height:62vh;position:absolute;top:calc(100% + 4px);left:0;overflow:auto}.pop-menu.right{left:auto;right:0}.scrim-clear{z-index:29;position:fixed;inset:0}.mi{justify-content:flex-start}.explore{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.explore{grid-template-columns:minmax(0,1fr)}}.tight2{gap:10px}.builder{gap:12px}.formula{font-family:var(--mono);color:var(--muted);background:var(--bg2);overflow-wrap:anywhere;border-radius:6px;padding:4px 8px;font-size:12px;display:block}code{font-family:var(--mono);font-size:13px}.list-row.card.sel{border-color:var(--accent);background:var(--accent-soft)}:root{--bg:#eceff2;--bg2:#e0e4e8;--surface-2:#f4f6f8;--line:#cfd5db;--ink:#12161b;--muted:#4e5964;--dots:#1e283412;--wire:#1e28344d;--sb-bg:#12161b}:root[data-theme=dark]{--bg:#0b0e11;--bg2:#171c21;--surface:#12161a;--surface-2:#181d22;--line:#29313a;--muted:#9aa5b0;--dots:#ffffff0d;--wire:#ffffff4d;--sb-bg:#080a0d}:root{--r:8px}.card{border-radius:8px}.btn,.input,select.input,textarea.input,.seg,.seg button,.seg .thumb{border-radius:7px}.nav-pill{background:#ffffff14;border-radius:6px}.nav-pill:before{content:"";background:#5fc6d1;border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:0}.nav a{border-radius:6px}.main{background-image:linear-gradient(var(--dots) 1px, transparent 1px), linear-gradient(90deg, var(--dots) 1px, transparent 1px);background-size:32px 32px}.page-head h1 .ph-ic,.k-ic,.app-ic{border-radius:8px}:root:not([data-theme=dark]) .cnt{color:#0a5c66;background:#fff}.cnt.warn{background:var(--amber);color:#1b1200}.demo-btn{background:var(--amber-soft);border-color:var(--amber)}.danger-fill{background:var(--red)!important;color:#fff!important;box-shadow:none!important}:root[data-theme=dark] .danger-fill{color:#2a070b!important}.login-hero h1{max-width:17ch;font-size:clamp(28px,3vw,40px)}.min0{min-width:0}.show-sm-i{display:none}.chips{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}button.chip,.chip.btn-chip{cursor:pointer;border:1px solid var(--line);background:var(--surface);min-height:40px;padding:0 14px;font-weight:600}.chip.btn-chip.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}@media (hover:hover){.chip.btn-chip:hover{border-color:var(--accent)}}.chip.red{background:var(--red-soft)}.chip.amber{background:var(--amber-soft)}.chip.green{background:var(--green-soft)}.chip.accent{background:var(--accent-soft)}.link-btn{color:var(--accent-text);text-align:left;align-items:center;gap:4px;min-width:40px;min-height:40px;font-weight:700;display:inline-flex}.icon-btn.sm{border-radius:7px;width:40px;height:40px}.x-btn{place-items:center;width:40px;height:40px;display:grid}.on-soft{background:var(--accent-soft)!important;border-color:var(--accent)!important}.notice{background:var(--accent-soft);border-radius:8px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;display:flex}.notice svg{color:var(--accent-text);flex:none;margin-top:1px}.notice.warn{background:var(--amber-soft)}.notice.warn svg{color:var(--amber)}.notice.bad{background:var(--red-soft)}.copyline{border-radius:7px}.copyline svg{flex:none}.btn.danger{color:var(--red)}.btn.block{width:100%;display:flex}@media (pointer:coarse),(width<=1100px){.btn.sm,.seg button,button.chip,.nav-tools button,.link-btn,.icon-btn.sm,.x-btn{min-height:44px}.icon-btn.sm,.x-btn{min-width:44px}.search input{min-height:44px}}.grip{cursor:grab;touch-action:none;width:40px;height:40px;color:var(--muted);border-radius:7px;flex:none;place-items:center;display:grid}@media (pointer:coarse){.grip{width:44px;height:44px}}@media (hover:hover){.grip:hover{background:var(--bg2)}}.scope-tag{font-family:var(--mono)}.tag{border-radius:5px}.tag.t-feat{background:var(--green-soft);color:var(--green)}.tag.t-fix{background:var(--amber-soft);color:var(--amber)}.tag.t-perf{background:var(--accent-soft);color:var(--accent-text)}.tag.t-other,.tag.t-chore,.tag.t-docs,.tag.t-test,.tag.t-style,.tag.t-ci,.tag.t-build,.tag.t-refactor,.tag.t-revert,.tag.t-merge{background:var(--bg2);color:var(--ink-2)}.ver{background:var(--bg2);border-radius:6px;align-items:center;gap:4px;padding:2px 9px;font-size:13px;font-weight:700;display:inline-flex}.ver.bad{background:var(--red-soft);color:var(--red)}.check-row{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;display:flex}.check-row.ok svg{color:var(--green)}.check-row.bad svg{color:var(--red)}.check-row.info svg{color:var(--muted)}.check-row.bad{border-color:var(--red)}.checks{flex-direction:column;gap:3px;margin:6px 0 0 18px;font-size:13px;display:flex}.size{background:var(--bg2);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800}.size.sz-L{background:var(--amber-soft);color:var(--amber)}.size.sz-XL{background:var(--red-soft);color:var(--red)}.rule-row{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;align-items:center;gap:8px;min-width:0;margin-top:6px;padding:6px 8px;display:flex}.abc{background:var(--bg2);border-radius:6px;flex:none;place-items:center;width:26px;height:26px;font-size:12px;font-weight:800;display:inline-grid}.abc.A{background:var(--accent);color:var(--accent-ink)}.sel-check{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-weight:600;display:flex}.k-ic.red{background:var(--red-soft);color:var(--red)}.k-ic.amber{background:var(--amber-soft);color:var(--amber)}.k-ic.green{background:var(--green-soft);color:var(--green)}.card.click{cursor:pointer;text-align:left;width:100%;transition:transform .2s var(--ease), border-color .2s}@media (hover:hover){.card.click:hover{border-color:var(--accent);transform:translateY(-2px)}}.g5{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}.chart-tip{pointer-events:none;z-index:3;width:140px;box-shadow:var(--shadow-lg);padding:6px 10px;position:absolute}.columns{align-items:flex-end;gap:4px;display:flex}.columns.dense{gap:2px}.colm{background:0 0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;min-width:0;height:100%;padding:0;display:flex}.col-bar{border-radius:4px 4px 2px 2px;width:100%;display:block}.colm-l{color:var(--muted);white-space:nowrap;text-overflow:clip;max-width:100%;font-size:12px;overflow:hidden}.columns.dense .colm-l{display:none}.upbars{gap:2px;height:32px;display:flex}.ub{background:var(--line);border-radius:2px;flex:1 1 0;min-width:2px;display:block}.ub.up{background:var(--green)}.ub.degraded{background:var(--amber)}.ub.down{background:var(--red)}.runstrip{gap:2px;display:inline-flex}.rs{background:var(--green);border-radius:2px;width:7px;height:20px;display:block}.rs.f{background:var(--red)}.rs.s{background:var(--line)}.ring{--p:50;--rc:var(--accent);background:conic-gradient(var(--rc) calc(var(--p) * 1%), var(--bg2) 0);border-radius:50%;flex:none;place-items:center;width:58px;height:58px;display:grid}.ring:before{content:"";background:var(--surface);border-radius:50%;grid-area:1/1;width:46px;height:46px}.ring b{z-index:1;grid-area:1/1;font-size:16px}.ring.green{--rc:var(--green)}.ring.amber{--rc:var(--amber)}.ring.red{--rc:var(--red)}.ring.big{width:96px;height:96px}.ring.big:before{width:78px;height:78px}.ring.big b{font-size:26px}.rail{padding:6px 0 2px;position:relative}.rail-track{z-index:0;height:0;position:absolute;top:23px;left:0;right:0}.rail-line{background:repeating-linear-gradient(90deg, var(--wire) 0 2px, transparent 2px 14px);height:10px;position:absolute;top:-5px;left:0;right:0}.rail-line:after{content:"";background:var(--wire);height:2px;position:absolute;top:4px;left:0;right:0}.pk{background:var(--accent);border-radius:4px;width:14px;height:14px;margin:-7px 0 0 -7px;display:block;position:absolute}.pk.amb{opacity:0;background:var(--accent-text);border-radius:3px;width:10px;height:10px;margin:-5px 0 0 -5px;top:0}.pk.live{box-shadow:0 0 0 0 var(--accent);animation:1.8s infinite pulseo}.pk.live.warn{background:var(--amber);box-shadow:0 0 0 0 var(--amber)}.pk.live.ok{background:var(--green)}.rail-st{z-index:1;gap:4px;display:grid;position:relative}.station{text-align:center;flex-direction:column;align-items:center;gap:2px;min-width:0;display:flex}.st-dot{background:var(--surface);border:2px solid var(--wire);width:34px;height:34px;color:var(--ink-2);border-radius:8px;place-items:center;display:grid}.station.hot .st-dot{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.st-n{min-height:22px;font-size:16px}.st-l{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:12px;font-weight:700;overflow:hidden}.rail-card{overflow:hidden}.login-rail{z-index:2;--wire:#ffffff59;--surface:#1b2128;--ink-2:#d3d9df;--muted:#b7c0ca;--accent:#5fc6d1;--accent-soft:#143a41;--accent-text:#8fdde5;--amber:#f2b13c;--green:#4ccf8a;color:#fff;background:#ffffff0a;border:1px solid #ffffff24;border-radius:10px;max-width:560px;padding:18px 16px 8px;position:relative}.dora-grid .kpi{gap:4px}.qa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.qa{white-space:normal;text-align:left;justify-content:flex-start}.pipe-grid{grid-template-columns:minmax(250px,310px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.pipe-list{flex-direction:column;gap:10px;min-width:0;display:flex}.pipe-card{text-align:left;cursor:pointer;flex-direction:column;gap:6px;width:100%;padding:14px;display:flex}.pipe-card.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}@media (hover:hover){.pipe-card:hover{border-color:var(--accent)}}.dag-wrap{border:1px solid var(--line);background:var(--surface-2);-webkit-overflow-scrolling:touch;border-radius:8px;max-width:100%;padding:4px;overflow:auto hidden}.dag-node{cursor:pointer}.dag-node:focus-visible{outline:none}.dag-node:focus-visible .dn-box{stroke:var(--accent);stroke-width:3px}.dn-box{fill:var(--surface);stroke:var(--line);stroke-width:1.5px}.dn-bar{fill:var(--muted)}.dn-name{fill:var(--ink);font-size:13px;font-weight:700}.dn-sub{fill:var(--muted);font-size:12px}.dn-ic{color:var(--muted)}.dag-node.success .dn-bar{fill:var(--green)}.dag-node.success .dn-ic{color:var(--green)}.dag-node.failed .dn-bar{fill:var(--red)}.dag-node.failed .dn-ic{color:var(--red)}.dag-node.failed .dn-box{stroke:var(--red)}.dag-node.running .dn-bar{fill:var(--accent)}.dag-node.running .dn-ic{color:var(--accent)}.dag-node.running .dn-box{stroke:var(--accent);stroke-dasharray:7 5;animation:1.2s linear infinite dash}.dag-node.waiting .dn-bar{fill:var(--amber)}.dag-node.waiting .dn-ic{color:var(--amber)}.dag-node.waiting .dn-box{stroke:var(--amber);stroke-width:2.5px}.dag-node.skipped{opacity:.55}.dag-node.sel .dn-box{stroke:var(--ink);stroke-width:2.5px}.dag-edge{stroke:var(--wire);stroke-width:2px}.dag-edge.ok{stroke:var(--green)}.dag-edge.fail{stroke:var(--red)}.dag-edge.run{stroke:var(--accent);stroke-dasharray:6 6;animation:1s linear infinite dash}.stagelist{flex-direction:column;gap:8px;list-style:none;display:flex}.stagelist li{align-items:flex-start;gap:10px;display:flex}.sl-n{background:var(--bg2);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;margin-top:8px;font-size:12px;font-weight:800;display:grid}.sl-g{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.sl-i{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:8px;align-items:center;gap:8px;width:100%;min-height:44px;padding:0 12px;display:flex}.sl-i.success svg{color:var(--green)}.sl-i.failed svg{color:var(--red)}.sl-i.running svg{color:var(--accent)}.sl-i.waiting svg{color:var(--amber)}.sl-i.on{border-color:var(--accent);background:var(--accent-soft)}.stage-detail{border:1px dashed var(--line);border-radius:8px;flex-direction:column;gap:8px;margin-top:12px;padding:12px;display:flex}.code.mini{white-space:pre-wrap;overflow-wrap:anywhere;max-height:130px;font-size:12px}.code{color:#dfe6ec;background:#0d1114;border-radius:8px}.approval{border-left:4px solid var(--amber);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.fail-card{border-left:4px solid var(--red);margin-bottom:12px}.gantt{flex-direction:column;gap:4px;display:flex}.g-row{grid-template-columns:minmax(70px,32%) minmax(0,1fr) 46px;align-items:center;gap:8px;min-height:24px;display:grid}.g-track{background:var(--bg2);border-radius:99px;height:10px;position:relative;overflow:hidden}.g-bar{background:var(--muted);border-radius:99px;transition:width .15s linear;display:block;position:absolute;top:0;bottom:0}.g-bar.success{background:var(--green)}.g-bar.failed{background:var(--red)}.g-bar.running{background:var(--accent)}.g-bar.waiting{background:var(--amber)}.logbox{color:#dfe6ec;background:#0d1114;border-radius:8px;min-height:160px;max-height:440px;padding:8px 0;font-size:12.5px;line-height:1.55;overflow:auto}.ll{gap:10px;min-width:0;padding:1px 12px;display:flex}.ll .lt{color:#8c97a3;flex:none;width:42px}.ll .ls{color:#8fb4d4;text-overflow:ellipsis;white-space:nowrap;flex:none;width:118px;font-size:12px;overflow:hidden}.ll .lx{overflow-wrap:anywhere;white-space:pre-wrap;flex:1;min-width:0}.ll.cmd .lx{color:#8fdde5;font-weight:700}.ll.ok .lx{color:#7ee2a8}.ll.warn .lx{color:#f2c36b}.ll.err .lx{color:#ff9a9a}.ll.hit{background:#ffd66629}.ll.cur{outline-offset:-1px;outline:1px solid #f2c36b}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal-h{text-align:center;color:var(--muted);font-size:12px;font-weight:700}.cal-d{border:1px solid var(--line);background:color-mix(in srgb, var(--accent) calc(var(--heat,0) * 38%), var(--surface));min-height:46px;color:var(--ink);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex}.cal-d:disabled{opacity:.35}.cal-d.rb{outline:2px solid var(--amber);outline-offset:-2px}.cal-d.sel{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.tl-list{flex-direction:column;display:flex}.tl-row{border-bottom:1px solid var(--line);gap:10px;padding:9px 0;display:flex}.tl-row:last-child{border:0}.tl-ic{background:var(--green-soft);width:28px;height:28px;color:var(--green);border-radius:8px;flex:none;place-items:center;display:grid}.tl-row.failed .tl-ic{background:var(--red-soft);color:var(--red)}.tl-row.rollback .tl-ic{background:var(--amber-soft);color:var(--amber)}.paper{color:#15171a;background:#fff;border:1px solid #d3dae1;border-radius:8px;padding:26px 28px;font-size:14px}.paper h2{font-size:22px}.paper h3{text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid #0e7a86;margin:16px 0 6px;padding-bottom:3px;font-size:14px}.paper .muted{color:#51606e}.notes{flex-direction:column;gap:4px;margin-left:20px;display:flex}.board{grid-template-columns:repeat(5,minmax(0,1fr));align-items:start;gap:12px;display:grid}.bcol{background:var(--bg2);border-radius:8px;min-width:0;padding:8px}.bcol-h{align-items:center;gap:8px;padding:4px 6px 8px;display:flex}.bcol-b{flex-direction:column;gap:8px;max-height:620px;display:flex;overflow-y:auto}body.is-dragging .bcol[data-col=merged]{outline:2px dashed var(--accent)}.prc{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;min-width:0;padding:10px;display:flex}.prc.merged{opacity:.8}.prc-t{text-align:left;overflow-wrap:anywhere;min-height:44px;color:var(--ink);font-weight:700;line-height:1.3}.ck-row{gap:3px;display:inline-flex}.ck{background:var(--line);border-radius:3px;width:12px;height:12px;display:block}.ck.pass{background:var(--green)}.ck.fail{background:var(--red)}.ck.pending{background:var(--amber);box-shadow:0 0 0 0 var(--amber);animation:1.4s infinite pulseo}.ck.skipped{background:var(--bg2);border:1px solid var(--line)}.col-tabs{gap:6px;margin-bottom:10px;padding-bottom:4px;display:flex;overflow-x:auto}.eval-result{border:2px solid var(--line);border-radius:8px;align-items:center;gap:12px;padding:14px;display:flex}.eval-result.on{background:var(--green-soft);border-color:var(--green)}.eval-result.on svg{color:var(--green)}.eval-result.off{background:var(--red-soft);border-color:var(--red)}.eval-result.off svg{color:var(--red)}.dot-user{background:var(--bg2);border:1px solid var(--line);border-radius:4px;width:14px;height:14px;display:inline-block}.dot-user.on{background:var(--green);border-color:var(--green)}.flag-list{flex-direction:column;display:flex}.flag-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1.5fr) 56px minmax(280px,2fr) 72px auto;align-items:center;gap:14px;padding:10px 4px;display:grid}.flag-row.head{border-top:0;padding-bottom:4px}.flag-row.killed{background:var(--red-soft);border-radius:8px}.fr-pct{align-items:center;gap:6px;min-width:0;display:flex}.pct-n{text-align:center;min-width:44px}.fr-sw{align-items:center;gap:6px;display:flex}.dragbar{border-radius:8px}.sevbars{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.sevbar{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:10px;display:flex}.flow{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.flow-s{background:var(--bg2);text-transform:capitalize;border-radius:99px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;display:flex}.flow-s i{background:var(--line);border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;font-style:normal;font-weight:800;display:grid}.flow-s.done i{background:var(--green);color:#fff}.flow-s.cur{background:var(--accent-soft);font-weight:800}.statuspage{background:var(--surface);border:1px solid var(--line);max-width:780px;box-shadow:var(--shadow);border-radius:12px;margin:0 auto;overflow:hidden}.sp-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;display:flex}.sp-name{font-size:18px}.sp-banner{background:var(--green-soft);align-items:center;gap:10px;padding:16px 20px;display:flex}.sp-banner svg{color:var(--green)}.sp-banner.degraded,.sp-banner.partial,.sp-banner.maintenance{background:var(--amber-soft)}.sp-banner.degraded svg,.sp-banner.partial svg,.sp-banner.maintenance svg{color:var(--amber)}.sp-banner.down{background:var(--red-soft)}.sp-banner.down svg{color:var(--red)}.sp-list{padding:8px 20px}.sp-comp{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:14px 0;display:flex}.sp-st{color:var(--green);font-size:13px;font-weight:700}.sp-st.degraded,.sp-st.partial,.sp-st.maintenance{color:var(--amber)}.sp-st.down{color:var(--red)}.sp-leg{color:var(--muted)}.sp-key{color:var(--muted);flex-wrap:wrap;gap:16px;padding:12px 20px;display:flex}.sp-key .ub{vertical-align:-2px;flex:none;width:12px;height:12px;margin-right:6px;display:inline-block}.sp-h{padding:8px 20px 0}.sp-inc{flex-direction:column;gap:10px;padding:8px 20px 16px;display:flex}.sp-inc .small{color:var(--muted)}.sp-sub{background:var(--surface-2);border-top:1px solid var(--line);padding:16px 20px}.comp-row,.rule-card{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;display:flex}.alert-card{border:1px solid var(--red);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px;display:flex}.esc{flex-direction:column;gap:4px;margin:4px 0 4px 18px;font-size:13px;display:flex}.esc li.off{opacity:.45;text-decoration:line-through}.esc.big{gap:8px;margin:8px 0 0;font-size:14px;list-style:none}.esc.big li{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;align-items:flex-start;gap:12px;padding:8px 12px;display:flex}.esc-t{min-width:64px;color:var(--accent-text);font-weight:800}.oncall-now{background:var(--accent-soft);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.oc-who{align-items:center;gap:12px;display:flex}.strip{border-radius:8px;gap:2px;height:48px;display:flex;overflow:hidden}.strip-b{color:#fff;white-space:nowrap;justify-content:center;align-items:center;min-width:0;padding:0 4px;font-size:12px;font-weight:700;display:flex;overflow:hidden}.strip-b.ov{background-image:repeating-linear-gradient(45deg,#ffffff40 0 6px,#0000 6px 12px)}.strip-l{justify-content:space-between;margin-top:4px;display:flex}.shift-row{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.shift-row>i{border-radius:3px;flex:none;align-self:stretch;width:6px}.repo-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.repo{flex-direction:column;gap:10px;display:flex}.ldot{border-radius:50%;width:10px;height:10px;display:inline-block}.cls-row.on{border-color:var(--accent);background:var(--accent-soft)}.pat{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:6px;padding:12px;display:flex}.tools-tabs{gap:8px;margin:14px 0;padding-bottom:4px;display:flex;overflow-x:auto}.tools-tabs .chip{flex:none}.feed-ic.mono{border-radius:8px;width:44px}@media (width<=1100px){.pipe-grid{grid-template-columns:minmax(0,1fr)}.pipe-list{scroll-snap-type:x proximity;flex-direction:row;padding-bottom:6px;overflow-x:auto}.pipe-card{scroll-snap-align:start;flex:0 0 270px}.board{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.bcol-b{max-height:420px}.flag-row{grid-template-columns:minmax(0,1fr) auto}.flag-row.head{display:none}.fr-pct{order:3;grid-column:1/-1}.flag-row>:nth-child(4){order:2}.show-sm-i{display:inline}.sevbars{grid-template-columns:repeat(2,minmax(0,1fr))}.g5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.qa-grid,.board{grid-template-columns:minmax(0,1fr)}.flag-row{border:1px solid var(--line);border-radius:10px;margin-top:10px;padding:12px}.ll .ls{display:none}.ll .lt{width:38px}.g-row{grid-template-columns:minmax(64px,36%) minmax(0,1fr) 42px}.paper{padding:18px 14px}.sp-head,.sp-banner,.sp-list,.sp-key,.sp-sub,.sp-h,.sp-inc{padding-left:14px;padding-right:14px}.sevbars{grid-template-columns:minmax(0,1fr)}.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.rail-card .card-h .small{display:none}.st-dot{width:30px;height:30px}.rail-track{top:21px}.login-rail{padding:14px 8px 6px}.cal{gap:3px}.cal-d{min-height:44px}.strip-b span{display:none}.columns{gap:2px}}.table-wrap,.dag-wrap{scrollbar-width:thin;scrollbar-color:var(--wire) transparent}.table-wrap::-webkit-scrollbar{height:8px}.dag-wrap::-webkit-scrollbar{height:8px}.table-wrap::-webkit-scrollbar-thumb{background:var(--wire);border-radius:8px}.dag-wrap::-webkit-scrollbar-thumb{background:var(--wire);border-radius:8px}td .row{flex-wrap:nowrap}.dcard-c .row{flex-wrap:wrap}.dcard-c{overflow:hidden}:root{--bg:#f6f1e3;--bg2:#ece5d1;--surface:#fffdf6;--surface-2:#faf6ea;--glass:#fffdf6e6;--line:#d6cdb2;--ink:#1b2528;--ink-2:#353f43;--muted:#556064;--sb-bg:#0b2b31;--rule:#0e7a861a;--margin:#cd545461;--pencil:#f2c94c;--r:6px;--dots:transparent}:root[data-theme=dark]{--bg:#0c1618;--bg2:#16232a;--surface:#111e22;--surface-2:#162529;--glass:#111e22e6;--line:#28393f;--ink:#e8eeee;--ink-2:#c6d0d1;--muted:#98a8ab;--sb-bg:#081114;--rule:#8fdde50e;--margin:#ff7d7d47;--accent-soft:#123239}h1,h2,h3,.login-hero h1,.hero-card h2,.modal h3{letter-spacing:-.01em;font-family:Georgia,Iowan Old Style,Palatino Linotype,Times New Roman,serif;font-weight:700}.kpi .k-v{font-family:Georgia,Iowan Old Style,serif}.main{background-image:repeating-linear-gradient(to bottom, transparent 0 31px, var(--rule) 31px 32px);background-size:auto;background-attachment:local}.main:before{content:"";background:var(--margin);pointer-events:none;z-index:0;width:2px;position:absolute;top:0;bottom:0;left:12px}.page{z-index:1;position:relative}.card,.btn,.input,.modal,.toast,.tour-tip{border-radius:6px}.card{box-shadow:0 1px #1428280d,0 4px 14px #1428280d}.card.hero-card,.hero-card{border-radius:8px}.sidebar:before{background:repeating-linear-gradient(0deg,#0000 0 27px,#ffffff09 27px 28px)}.sidebar:after{content:"";pointer-events:none;background:radial-gradient(circle at 4px 8px,#fff3 2.6px,#0000 3.2px) 0 0/8px 24px repeat-y;width:8px;position:absolute;top:8px;bottom:8px;right:5px}.sidebar.as-drawer:after{display:none}.brand-mark{background:var(--accent);border-radius:8px;box-shadow:0 6px 16px #0e7a8659}:root[data-theme=dark] .brand-mark{background:#0e7a86}.nav-pill:before{background:var(--pencil)}.nav-pill{background:#ffffff1a}.demo-btn{color:#3a2a00;background:#fbefc4;border-color:#c99a1b}:root[data-theme=dark] .demo-btn{color:#fbe9a8;background:#3a3012;border-color:#b8921f}.page-head h1 .ph-ic,.k-ic,.app-ic,.feed-ic,.empty-ic{border-radius:8px}:root:not([data-theme=dark]) .cnt,.cnt{background:var(--pencil);color:#2d2300}.hero-card{background:radial-gradient(500px 300px at 100% 0,#5fc6d147,#0000 70%),linear-gradient(135deg,#0e7a86,#0b3a42)}.notebook-hero{background-image:repeating-linear-gradient(#0000 0 27px,#ffffff1a 27px 28px),radial-gradient(500px 300px at 100% 0,#5fc6d147,#0000 70%),linear-gradient(135deg,#0e7a86,#0b3a42)}.hero-card .btn{color:#0b2b31;background:#fffdf6}.login-hero{background:radial-gradient(800px 500px at 85% 0,#5fc6d138 0%,#0000 60%),repeating-linear-gradient(#0000 0 35px,#ffffff12 35px 36px),#0b2b31}.login-hero:before{content:"";pointer-events:none;background:#ff828266;width:2px;position:absolute;top:0;bottom:0;left:44px}.login-art{z-index:2;flex-direction:column;gap:14px;display:flex;position:absolute;bottom:90px;right:36px}.note-card{color:#1b2528;border-top:6px solid var(--pencil);background:#fffdf6;border-radius:4px;flex-direction:column;gap:2px;min-width:180px;padding:12px 18px;display:flex;transform:rotate(-2deg);box-shadow:0 10px 26px #00000059}.note-card:nth-child(2){transform:rotate(1.5deg)translate(-26px)}.note-card:nth-child(3){transform:rotate(-1deg)translate(8px)}.note-card span{color:#4b5659;font-size:13px}.roles.three{grid-template-columns:repeat(3,1fr)}.role{border-radius:6px}.tag,.badge{border-radius:4px}.chip{border-radius:99px}.btn.primary{box-shadow:0 6px 16px color-mix(in srgb, var(--accent) 30%, transparent)}.g3.keep3{grid-template-columns:repeat(3,minmax(0,1fr))}.cell-input.num{text-align:right;max-width:84px;margin-left:auto;display:block}.grip{color:var(--muted)}.course-card{text-align:left;display:block}.course-card h3{font-size:18px}.lrow{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;margin-bottom:6px;padding:6px 4px;display:flex}.lrow-main{flex:200px;min-width:140px}@media (hover:hover){.lrow:hover{border-color:var(--accent)}}.lrow .cell-input{font-weight:700}.lrow .cell-input[type=number]{font-weight:500}.clash-card{border-left:4px solid var(--red);margin-bottom:8px}.opt{border:1.5px solid var(--line);background:var(--surface);text-align:left;border-radius:6px;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 12px;font-size:15px;transition:border-color .15s,background .15s;display:flex}.opt .abc{flex:none}.opt.on{border-color:var(--accent);background:var(--accent-soft)}.opt[disabled]{opacity:.7}@media (hover:hover){.opt:hover:not([disabled]){border-color:var(--accent)}}.opt.tfb{flex:1;justify-content:center;font-size:17px;font-weight:800}.orow{cursor:default}.qnav{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.qnav button{border:1.5px solid var(--line);background:var(--surface);border-radius:6px;min-width:44px;min-height:44px;font-weight:800}.qnav button.ans{background:var(--accent-soft);border-color:var(--accent)}.qnav button.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.qnav button.flg{box-shadow:inset 0 -4px 0 var(--amber)}.chip.timer{font-family:var(--mono);background:var(--accent-soft);min-height:34px;padding:0 12px;font-size:15px}.chip.timer.red{background:var(--red-soft);color:var(--red);animation:1s infinite pulseo}.blank-line{font-family:Georgia,serif;font-size:18px;line-height:2.6}.blank-in{vertical-align:middle;text-align:center;width:150px;min-height:44px;margin:0 6px;display:inline-block}.review{border:1px solid var(--line);background:var(--surface-2);border-left-width:5px;border-radius:6px;padding:12px}.review.ok{border-left-color:var(--green)}.review.part{border-left-color:var(--amber)}.review.bad{border-left-color:var(--red)}.columns{align-items:flex-end}.learn-grid{grid-template-columns:minmax(230px,300px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.outline{max-height:calc(100vh - 100px);padding:12px;position:sticky;top:76px;overflow-y:auto}.outline-h{justify-content:space-between;align-items:center;width:100%;min-height:44px;display:none}.outline-b{display:block}@media (width<=1000px){.learn-grid{grid-template-columns:minmax(0,1fr)}.outline{max-height:none;position:static}.outline-h{display:flex}.outline-b{display:none}.outline-b.open{display:block}}.kp{border:1.5px solid var(--line);cursor:pointer;border-radius:6px;align-items:flex-start;gap:12px;min-height:52px;padding:12px;font-size:15px;line-height:1.55;display:flex}.kp.on{border-color:var(--green);background:var(--green-soft)}.kp input{margin-top:3px}.video .screen{aspect-ratio:16/9;color:#fff;background:linear-gradient(135deg,#0b2b31,#17515b);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.vbig{color:#fff;z-index:2;background:#fff3;border:2px solid #fff9;border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.vtag{z-index:2;background:#00000073;border-radius:4px;padding:3px 8px;font-size:12px;position:absolute;bottom:8px;left:10px}.vwaves{opacity:.35;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.vwaves i{background:#fff;border-radius:6px;width:10px;height:30%}.screen.playing .vwaves i{animation:1s ease-in-out infinite wave}.vwaves i:nth-child(2){animation-delay:.15s}.vwaves i:nth-child(3){animation-delay:.3s}.vwaves i:nth-child(4){animation-delay:.45s}.vwaves i:nth-child(5){animation-delay:.6s}@keyframes wave{50%{height:70%}}.vbar{background:var(--bg2);border-radius:99px;height:8px;margin:10px 0 6px;overflow:hidden}.vbar div{background:var(--accent);border-radius:99px;height:100%}.vctl{gap:8px}.rubric-row{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:10px}.levels{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px;display:grid}.lvl{border:1.5px solid var(--line);background:var(--surface);border-radius:6px;flex-direction:column;justify-content:center;align-items:center;min-height:52px;padding:2px;font-size:12px;font-weight:700;display:flex}.lvl b{font-size:16px}.lvl.on{background:var(--accent);color:var(--accent-ink);border-color:#0000}.calc{background:var(--accent-soft);flex-direction:column;gap:6px;display:flex}.calc .big{border-top:1px dashed var(--line);padding-top:8px;font-size:17px}.strip-marks{flex-wrap:wrap;gap:3px;display:flex}.strip-marks i{background:var(--bg2);border-radius:3px;width:14px;height:24px}.strip-marks i.present{background:var(--green)}.strip-marks i.late{background:var(--amber)}.strip-marks i.absent{background:var(--red)}.att-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.att-row:last-of-type{border-bottom:0}.heat-strip{flex:none;gap:3px;display:flex}.heat-strip i{border-radius:3px;width:12px;height:22px;display:block}.seg-btns{flex:none;gap:4px;display:inline-flex}.mk{border:1.5px solid var(--line);background:var(--surface);border-radius:6px;min-width:70px;min-height:44px;padding:0 10px;font-weight:700}.mk.present.on{background:var(--green);color:#fff;border-color:#0000}.mk.late.on{background:var(--amber);color:#1b1200;border-color:#0000}.mk.absent.on{background:var(--red);color:#fff;border-color:#0000}:root[data-theme=dark] .mk.present.on,:root[data-theme=dark] .mk.absent.on{color:#06140c}@media (width<=720px){.att-row{align-items:stretch}.att-row>.row{flex:100%}.seg-btns{width:100%}.mk{flex:1}}.hm{align-items:center;gap:3px;display:grid}.hm-c{border-radius:4px;height:26px;display:block}.wgrid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;display:grid}table.gb td,table.gb th{padding:6px 8px}table.gb tfoot td{border-top:2px solid var(--line);background:var(--surface-2);border-bottom:0}.grade{background:var(--bg2);border-radius:6px;place-items:center;min-width:30px;height:30px;font-weight:800;display:inline-grid}.grade.gA{background:var(--green-soft);color:var(--green)}.grade.gB{background:var(--accent-soft);color:var(--accent-text)}.grade.gC,.grade.gD{background:var(--amber-soft);color:var(--amber)}.grade.gF{background:var(--red-soft);color:var(--red)}.cal-week{padding:12px;overflow:hidden}.cw-head{text-align:center;grid-template-columns:56px repeat(6,minmax(0,1fr));gap:0;padding-bottom:8px;display:grid}.cw-body{grid-template-columns:56px repeat(6,minmax(0,1fr));display:grid;position:relative}.cw-axis{position:relative}.cw-axis span{color:var(--muted);font-size:12px;position:absolute;right:8px}.cw-col{border-left:1px solid var(--line);min-width:0;position:relative}.cw-line{border-top:1px solid var(--line);opacity:.7;height:0;display:block;position:absolute;left:0;right:0}.cw-ev{text-align:left;background:hsl(var(--h) 55% 90%);border-left:4px solid hsl(var(--h) 55% 38%);color:#1b2528;z-index:1;border-radius:5px;flex-direction:column;gap:0;padding:4px 6px;font-size:12px;line-height:1.3;display:flex;position:absolute;left:3px;right:3px;overflow:hidden}:root[data-theme=dark] .cw-ev{background:hsl(var(--h) 30% 24%);border-left-color:hsl(var(--h) 60% 62%);color:#eef3f3}.cw-ev b{font-size:12px}.cw-ev.clash{outline:2px solid var(--red);outline-offset:-2px}.cw-warn{color:var(--red);position:absolute;top:4px;right:4px}@media (hover:hover){.cw-ev:hover{filter:brightness(.96);z-index:2}}.dotc{background:hsl(var(--h) 55% 45%);border-radius:4px;flex:none;width:14px;height:40px}.clash-row{border-color:var(--red)}.cert-img{border:1px solid var(--line);background:#fffdf6;border-radius:4px;width:100%;height:auto;display:block}.pnode{text-align:left;border:2px solid var(--line);background:var(--surface);border-radius:6px;align-items:center;gap:8px;padding:0 10px;font-size:12px;font-weight:700;line-height:1.25;display:flex;position:absolute}.pnode.done{border-color:var(--green);background:var(--green-soft)}.pnode.unlocked{border-color:var(--accent);background:var(--accent-soft)}.pnode.locked{color:var(--muted);border-style:dashed}.pnode.sel{box-shadow:0 0 0 3px var(--ink)}.pnode svg{flex:none}.dag-edge.hot{stroke:var(--accent);stroke-width:3px}.order-list{flex-direction:column;gap:6px;list-style:none;display:flex}.order-list li{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;align-items:center;gap:10px;min-height:48px;padding:4px 8px;display:flex}.pn-done .feed-ic{background:var(--green-soft)}.dag-wrap{background:var(--surface-2)}.thread{align-items:flex-start;gap:12px;padding:12px;display:flex}.vote{border:1.5px solid var(--line);background:var(--surface);border-radius:6px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:2px;width:48px;min-height:52px;display:flex}.thread-main{text-align:left;flex-direction:column;gap:6px;min-width:0;display:flex}.reply{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:12px}.reply.best{border-color:var(--green);background:var(--green-soft)}.funnel{flex-direction:column;gap:12px;display:flex}.fn-row{grid-template-columns:minmax(110px,160px) minmax(0,1fr) 48px 44px;align-items:center;gap:10px;display:grid}.fn-bar{background:var(--bg2);border-radius:4px;height:28px;overflow:hidden}.fn-bar i{background:var(--accent);height:100%;transition:width .8s var(--ease);border-radius:4px;display:block}@media (width<=720px){.fn-row{grid-template-columns:minmax(0,1fr) 40px 40px}.fn-row .small.bold{grid-column:1/-1}.fn-bar{grid-column:1}}.tl-row2{flex-direction:column;gap:4px;display:flex}.dual{background:var(--bg2);border-radius:99px;height:12px;position:relative;overflow:hidden}.dual i{border-radius:99px;position:absolute;top:0;bottom:0;left:0}.dual .plan{background:var(--line)}.dual .act{background:var(--accent);height:6px;top:3px}.dual .act.over{background:var(--amber)}.permx{grid-template-columns:minmax(150px,1.6fr) repeat(3,minmax(56px,1fr));display:grid}.permx>*{border-bottom:1px solid var(--line);align-items:center;padding:8px 6px;display:flex}.permx .ph{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);justify-content:center;font-size:12px}.permx .pc{justify-content:center}.colorin{border:1px solid var(--line);background:var(--surface);border-radius:6px;width:56px;height:44px;padding:2px}.chat-box{min-height:260px;max-height:440px;padding:4px;overflow-y:auto}.bubble{font-size:15px;line-height:1.5}.cites{flex-direction:column;gap:6px;margin-top:10px;display:flex}.cite{border:1px solid var(--accent);background:var(--accent-soft);min-height:44px;color:var(--accent-text);text-align:left;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;display:flex}.cite .mono{margin-left:auto;font-weight:500}.cls-row{border:1px solid var(--line);background:var(--surface-2);text-align:left;border-radius:6px;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 12px;display:flex}@media (hover:hover){.cls-row:hover{border-color:var(--accent)}}.plan-day{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;flex-direction:column;gap:4px;padding:10px;display:flex}.pd-h{justify-content:space-between;align-items:center;display:flex}.sim-badge{background:var(--amber-soft);border-color:var(--amber);color:var(--ink)}.sim-badge svg{color:var(--amber)}.small,.hint,.badge,.chip,.tag{font-size:12px}.step-btn{text-decoration:none}@media print{.main:before{display:none}}@media (width<=720px){.main:before,.login-art{display:none}.login-hero:before{left:20px}.levels{grid-template-columns:repeat(2,minmax(0,1fr))}.blank-line{font-size:16px}.blank-in{width:120px}}@media (width<=1100px){.login-art{display:none}}.outline .step-btn{align-items:center;gap:8px;text-decoration:none;display:flex}.permx{grid-template-columns:minmax(130px,1.4fr) repeat(3,minmax(66px,1fr))}.permx .ph{letter-spacing:0;padding:8px 2px}.dcard .clamp1{white-space:normal;overflow:visible}.clash-card .list-row{align-items:flex-start}@media (width<=720px){.clash-card .list-row{flex-direction:column;align-items:stretch}.clash-card .list-row .btn{align-self:flex-start}}.nav-sec-btn{min-height:40px}a.barrow{min-height:44px}.link-btn{min-width:44px;min-height:44px}th.sortable button{min-width:44px;min-height:44px;padding:0 4px}.chip.btn-chip{min-height:44px}.legend span{min-height:0}.search input{min-height:40px}@media (pointer:coarse),(width<=1100px){.cell-input,.search input{min-height:44px}}.btn.sm{min-width:44px}.login-art{top:64px;bottom:auto;right:28px}.login-hero p{max-width:42ch}@media (width>=721px) and (width<=900px){.dcard-g{grid-template-columns:repeat(3,minmax(0,1fr))}}.card a.barrow{grid-template-columns:minmax(110px,52%) minmax(0,1fr) auto}
