:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0c11;--bg-sidebar:#0d0f15;--surface:#13151c;--surface-2:#181b24;--surface-3:#20242f;--hover:#1b1e28;--border:#fff1;--border-strong:#ffffff1d;--text:#eceef3;--text-2:#b6bccc;--text-3:#8a91a4;--accent:#8d96ff;--accent-2:#b6bcff;--accent-ink:#0c0d14;--accent-soft:#8d96ff24;--green:#4ad295;--amber:#f3b54f;--red:#f2716e;--blue:#6ea8ff;--violet:#b48cff;--pink:#ff7eb6;--teal:#4cc9c0;--radius-s:8px;--radius:12px;--radius-l:16px;--radius-xl:22px;--shadow-pop:0 22px 60px #0000008c, 0 0 0 1px var(--border-strong);--font:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Inter, Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sidebar-w:252px;--tabbar-h:62px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font:14.5px/1.55 var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650}p{margin:0}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}img{max-width:100%}code,pre,kbd{font-family:var(--mono)}::selection{background:#8d96ff59}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.num{font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:600}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.stack{flex-direction:column;gap:8px;display:flex}.grow{flex:1;min-width:0}.spacer{flex:1}.center{place-items:center;display:grid}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}*{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#ffffff1f padding-box padding-box;border:3px solid #0000;border-radius:10px}::-webkit-scrollbar-track{background:0 0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes bounce{0%,70%,to{opacity:.35;transform:translateY(0)}35%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@media (width<=600px){body{font-size:16px}.small{font-size:14px}.tiny{font-size:13px}}.btn{border:1px solid var(--border-strong);background:var(--surface-2);height:34px;color:var(--text);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13.5px;font-weight:550;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.45}.btn svg{flex:none;width:16px;height:16px}.btn.active{background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:#0000}.btn.primary:hover:not(:disabled){background:var(--accent-2)}.btn.ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--hover);color:var(--text)}.btn.danger{color:var(--red)}.btn.danger.solid{background:var(--red);color:#1a0a0a;border-color:#0000}.btn.small{border-radius:8px;height:28px;padding:0 10px;font-size:13px}.btn.large{border-radius:12px;height:42px;padding:0 18px;font-size:15px}.btn.block{width:100%}.icon-btn{width:34px;height:34px;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:10px;flex:none;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}.icon-btn.bordered{border-color:var(--border-strong);background:var(--surface-2)}.icon-btn svg{width:18px;height:18px}.icon-btn.small{border-radius:8px;width:28px;height:28px}.icon-btn.small svg{width:15px;height:15px}.link-btn{color:var(--accent-2);background:0 0;border:0;padding:0;font-weight:550}.link-btn:hover{text-decoration:underline}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.field-label{color:var(--text-2);font-size:13px;font-weight:550}.field .hint{color:var(--text-3);font-size:12.5px}.input,.select,.textarea{border:1px solid var(--border-strong);background:var(--surface-2);width:100%;min-width:0;height:38px;color:var(--text);border-radius:10px;outline:none;padding:0 12px;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;min-height:84px;padding:10px 12px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input[type=date],.input[type=time],.input[type=datetime-local]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-2) 50%), linear-gradient(135deg, var(--text-2) 50%, transparent 50%);background-position:calc(100% - 17px) 16px,calc(100% - 12px) 16px;background-repeat:no-repeat;background-size:5px 5px;padding-right:32px}.input.mono{font-family:var(--mono);font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=600px){.form-grid{grid-template-columns:1fr}}.toggle{flex:none;width:40px;height:24px;display:inline-flex;position:relative}.toggle input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.toggle span{background:var(--surface-3);border:1px solid var(--border-strong);pointer-events:none;border-radius:99px;transition:background .15s;position:absolute;inset:0}.toggle span:after{content:"";background:var(--text-2);border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle input:checked+span{background:var(--accent);border-color:#0000}.toggle input:checked+span:after{background:var(--accent-ink);transform:translate(16px)}.toggle input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;gap:2px;padding:3px;display:inline-flex}.seg button{color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:5px 12px;font-size:13px;font-weight:550}.seg button:hover{color:var(--text)}.seg button.on{background:var(--surface-3);color:var(--text);box-shadow:inset 0 1px #ffffff0a,0 1px 3px #0000004d}.seg.full{display:flex}.seg.full button{flex:1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);min-width:0;padding:18px}.card.flush{padding:0;overflow:hidden}.card-head{align-items:center;gap:10px;min-width:0;margin-bottom:14px;display:flex}.card-head h2{font-size:16.5px;font-weight:650}.card-head .sub{color:var(--text-3);font-size:13px}.card-head .actions{align-items:center;gap:6px;margin-left:auto;display:flex}.card-foot{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.divider{background:var(--border);height:1px;margin:14px 0}.empty{color:var(--text-3);text-align:center;padding:18px 4px;font-size:13.5px}.empty b{color:var(--text-2);margin-bottom:2px;font-weight:600;display:block}.badge{background:var(--surface-3);height:20px;color:var(--text-2);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:0 7px;font-size:12px;font-weight:650;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent-2)}.badge.red{color:var(--red);background:#f2716e24}.badge.amber{color:var(--amber);background:#f3b54f24}.badge.green{color:var(--green);background:#4ad29521}.badge.blue{color:var(--blue);background:#6ea8ff24}.count{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);border-radius:9px;place-items:center;padding:0 5px;font-size:11.5px;font-weight:700;display:inline-grid}.count.red{background:var(--red);color:#200}.dot{background:var(--text-3);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.ok{background:var(--green)}.dot.warn{background:var(--amber)}.dot.bad{background:var(--red)}.dot.run{background:var(--accent);animation:1.1s ease-in-out infinite pulse}.chip{border:1px solid var(--border-strong);height:28px;color:var(--text-2);white-space:nowrap;background:0 0;border-radius:9px;align-items:center;gap:7px;padding:0 11px;font-size:13px;font-weight:550;display:inline-flex}.chip:hover{color:var(--text);background:var(--hover)}.chip.on{background:var(--surface-3);color:var(--text)}.chip .swatch{background:var(--c);border-radius:3px;width:9px;height:9px}.chip.off .swatch{box-shadow:inset 0 0 0 1.5px var(--text-3);background:0 0}.chip.off{color:var(--text-3)}.kbd{font-family:var(--mono);border:1px solid var(--border-strong);color:var(--text-2);border-radius:5px;padding:1px 5px;font-size:11.5px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}.spinner.small{width:14px;height:14px}.page-loading{place-items:center;min-height:40vh;display:grid}.bar{background:var(--surface-3);border-radius:6px;height:6px;overflow:hidden}.bar>i{background:var(--c,var(--accent));border-radius:6px;height:100%;transition:width .4s;display:block}.overlay{z-index:60;-webkit-backdrop-filter:blur(6px);background:#05060a9e;place-items:center;padding:24px;animation:.15s fade-in;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius-xl);width:min(560px,100%);max-height:min(86vh,900px);box-shadow:var(--shadow-pop);flex-direction:column;animation:.18s rise;display:flex;overflow:hidden}.dialog.wide{width:min(860px,100%)}.dialog.full{width:min(1200px,100%);height:min(92vh,1100px);max-height:none}.dialog-head{align-items:center;gap:10px;padding:16px 18px 12px;display:flex}.dialog-head h2{font-size:16.5px}.dialog-head .sub{color:var(--text-3);font-size:13px}.dialog-head .icon-btn{margin-left:auto}.dialog-body{flex:1;min-height:0;padding:4px 18px 18px;overflow-y:auto}.dialog-foot{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px 16px;display:flex}.dialog-foot .left{margin-right:auto}@media (width<=700px){.overlay{place-items:end stretch;padding:0}.dialog,.dialog.wide{border-radius:22px 22px 0 0;width:100%;max-height:92vh;animation:.22s cubic-bezier(.2,.8,.2,1) sheet-up}.dialog.full{border-radius:18px 18px 0 0;height:96vh}.dialog:before{content:"";background:var(--border-strong);border-radius:4px;flex:none;width:38px;height:4px;margin:8px auto 0;display:block}.dialog-foot{padding-bottom:calc(14px + env(safe-area-inset-bottom))}}.popover{z-index:55;background:var(--surface);border-radius:var(--radius-l);width:340px;max-width:calc(100vw - 16px);box-shadow:var(--shadow-pop);padding:14px 16px 16px;animation:.14s rise;position:fixed}.toasts{z-index:90;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--surface-3);color:var(--text);box-shadow:var(--shadow-pop);border-radius:12px;align-items:center;gap:10px;max-width:min(520px,92vw);padding:10px 14px;font-size:13.5px;animation:.18s rise;display:flex}.toast.bad{color:#ffd2d0;background:#2a1517}.toast.ok svg{color:var(--green)}@media (width<=900px){.toasts{bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}}.notice{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:10px;padding:11px 13px;font-size:13.5px;display:flex}.notice svg{width:17px;height:17px;color:var(--text-2);flex:none;margin-top:1px}.notice.warn{background:#f3b54f14;border-color:#f3b54f38}.notice.warn svg{color:var(--amber)}.notice.bad{background:#f2716e14;border-color:#f2716e40}.notice.bad svg{color:var(--red)}.notice.accent{background:var(--accent-soft);border-color:#8d96ff40}.notice.accent svg{color:var(--accent-2)}.list{flex-direction:column;display:flex}.list-item{text-align:left;min-width:0;color:inherit;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:10px 12px;display:flex}button.list-item:hover,a.list-item:hover{background:var(--hover);text-decoration:none}.list-item.on{background:var(--accent-soft)}.kv{grid-template-columns:96px minmax(0,1fr);gap:7px 12px;font-size:13.5px;display:grid}.kv dt{color:var(--text-3)}.kv dd{overflow-wrap:anywhere;margin:0}.color-bar{background:var(--c);border-radius:3px;flex:none;align-self:stretch;width:3px}.pre{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.55}.usage-bars{flex-direction:column;gap:12px;display:flex}.usage-window{flex-direction:column;gap:6px;display:flex}.usage-top{justify-content:space-between;gap:10px;font-size:13.5px;display:flex}.bar.usage-ok>i{background:var(--accent)}.bar.usage-warn>i{background:var(--amber)}.bar.usage-bad>i{background:var(--red)}.usage-foot{gap:6px;margin-top:12px}@media (width<=600px){.btn{height:42px;padding:0 16px;font-size:15.5px}.btn.small{height:36px;font-size:14.5px}.icon-btn{width:42px;height:42px}.icon-btn.small{width:36px;height:36px}.input,.select,.textarea{font-size:16px}.card-head h2{font-size:19px}.card-head .sub{font-size:14px}.seg button{min-height:38px;font-size:15px}.badge{font-size:13px}}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100%;display:grid}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;gap:2px;height:100vh;padding:16px 12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.main{min-width:0;height:100vh;overflow:hidden auto}.brand{align-items:center;gap:11px;padding:2px 8px 18px;display:flex}.brand-mark{width:34px;height:34px;color:var(--accent-ink);letter-spacing:-.03em;background:linear-gradient(145deg,#9aa2ff,#6f78f0);border-radius:10px;flex:none;place-items:center;font-size:15px;font-weight:800;display:grid}img.brand-mark{object-fit:cover;background:var(--surface-2);padding:0}.brand-mark.large{border-radius:16px;width:56px;height:56px;margin-bottom:4px;font-size:24px}.brand-name{font-size:15px;font-weight:700;line-height:1.2}.brand-sub{color:var(--text-3);font-size:12.5px}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{height:36px;color:var(--text-2);border-radius:10px;align-items:center;gap:11px;min-width:0;padding:0 10px;font-size:14px;font-weight:560;text-decoration:none;display:flex}.nav-item:hover{background:var(--hover);color:var(--text);text-decoration:none}.nav-item.active{background:var(--surface-2);color:var(--text)}.nav-item svg{opacity:.9;flex:none;width:18px;height:18px}.nav-item .count{margin-left:auto}.nav-parent .nav-caret{width:24px;height:24px;color:var(--text-3);border-radius:6px;flex:none;place-items:center;margin-left:auto;display:grid}.nav-parent .count+.nav-caret{margin-left:4px}.nav-parent .nav-caret:hover{background:var(--surface-3);color:var(--text)}.nav-parent .nav-caret svg{width:15px;height:15px;transition:transform .15s;transform:rotate(-90deg)}.nav-parent .nav-caret.open svg{transform:none}.nav-sub{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin:2px 0 8px 19px;padding-left:10px;display:flex}.nav-sub .nav-item{gap:9px;height:31px;padding:0 8px;font-size:13px}.nav-sub .nav-item svg{width:15px;height:15px}.nav-code{color:var(--text-3);letter-spacing:.02em;flex:none;width:30px;font-size:11px;font-weight:750}.nav-item.active .nav-code{color:var(--accent-2)}.activity-btn{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-2);text-align:left;border-radius:11px;align-items:center;gap:10px;margin-bottom:4px;padding:9px 10px;font-size:13px;display:flex}.activity-btn:hover{background:var(--hover);color:var(--text)}.activity-btn b{color:var(--text);font-weight:600}.activity-btn small{color:var(--text-3);font-size:12px;display:block}.activity-btn.running{border-color:#8d96ff59}.page{max-width:1260px;margin:0 auto;padding:30px 34px 64px}.page.narrow{max-width:900px}.page-head{flex-wrap:wrap;align-items:flex-end;gap:14px 18px;margin-bottom:22px;display:flex}.page-head h1{font-size:26px;line-height:1.2}.page-head .sub{color:var(--text-2);margin-top:5px;font-size:14px}.page-head .actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tabbar{z-index:40;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border);background:#0c0d13e6;display:none;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--text-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:12px;font-weight:650;text-decoration:none;display:flex;position:relative}.tabbar a svg{width:24px;height:24px}.tabbar a.active{color:var(--text)}.tabbar a.active svg{color:var(--accent-2)}.tab-dot{background:var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;left:calc(50% + 8px)}@media (width<=900px){.shell{height:auto;display:block}.sidebar{display:none}.main{height:auto;min-height:100vh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));overflow:visible}.tabbar{display:flex}.page{padding:calc(18px + env(safe-area-inset-top)) 16px 36px}.page-head{margin-bottom:16px}.page-head h1{font-size:23px}}.subnav{scrollbar-width:none;gap:6px;margin:-4px -16px 16px;padding:0 16px 2px;display:none;overflow-x:auto}.subnav::-webkit-scrollbar{display:none}.subnav a{height:32px;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.subnav a.active{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}@media (width<=900px){.subnav{display:flex}}.activity{z-index:50;width:min(640px, calc(100vw - var(--sidebar-w) - 36px));background:var(--surface);border-radius:var(--radius-l);height:min(56vh,620px);box-shadow:var(--shadow-pop);flex-direction:column;animation:.18s rise;display:flex;position:fixed;bottom:18px;right:18px}.activity-head{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 12px 10px 16px;display:flex}.activity-head b{font-weight:650}.activity-error{color:#ffc9c7;background:#f2716e1a;border-radius:10px;margin:10px 14px 0;padding:9px 12px;font-size:13px}.activity-wait{background:var(--accent-soft);color:var(--text-2);border-radius:10px;margin:10px 14px 0;padding:9px 12px;font-size:13px}.activity-log{font:12px/1.6 var(--mono);color:var(--text-2);white-space:pre-wrap;word-break:break-word;flex:1;padding:12px 16px 16px;overflow:auto}.activity-log .l-head{color:var(--accent-2);margin-top:6px;font-weight:700}.activity-log .l-tool{color:var(--text-3)}.activity-log .l-note{color:var(--text);font-family:var(--font);padding:2px 0;font-size:13px}.activity-log .l-err{color:var(--red)}.activity-result{font-family:var(--font);color:var(--text);background:var(--surface-2);border-left:3px solid var(--accent);white-space:pre-wrap;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13.5px}@media (width<=900px){.activity{width:auto;height:72vh;padding-bottom:env(safe-area-inset-bottom);z-index:70;border-radius:20px 20px 0 0;bottom:0;left:0;right:0}}.model-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.model-card{text-align:left;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:13px;flex-direction:column;gap:5px;padding:12px 14px;display:flex}.model-card:hover{background:var(--surface-3)}.model-card.on{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.model-card b{font-size:14.5px}.login{background:radial-gradient(900px 500px at 50% -10%, #8d96ff1f, transparent 70%), var(--bg);flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:32px 18px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;flex-direction:column;gap:16px;width:min(420px,100%);padding:30px 28px;display:flex;box-shadow:0 30px 80px #00000073}.login-card h1{font-size:24px}.login-card p{line-height:1.6}.login-card .link-btn{align-self:center}.login-foot{margin-top:18px}.page.wide{max-width:1440px}.month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);overflow:hidden}.month-head{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.month-head div{color:var(--text-3);padding:9px 12px;font-size:12.5px;font-weight:650}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.m-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);cursor:pointer;flex-direction:column;gap:3px;min-width:0;padding:6px 6px 8px;transition:background .1s;display:flex}.m-cell:nth-child(7n){border-right:0}.m-cell:hover{background:#ffffff04}.m-cell.weekend{background:#ffffff03}.m-cell.outside .m-date,.m-cell.outside .m-ev{opacity:.4}.m-date{color:var(--text-2);align-items:center;gap:6px;padding:1px 3px 3px;font-size:13px;font-weight:600;display:flex}.m-date small{color:var(--text-3);font-weight:600}.m-cell.today .m-date span{background:var(--accent);color:var(--accent-ink);border-radius:999px;place-items:center;min-width:23px;height:23px;padding:0 6px;display:inline-grid}.m-ev{width:100%;min-width:0;height:22px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:6px;flex:none;align-items:center;gap:6px;padding:0 7px;font-size:12.5px;display:flex}.m-ev:before{content:"";background:var(--c);border-radius:50%;flex:none;width:6px;height:6px}.m-ev:hover{background:color-mix(in srgb, var(--c) 16%, transparent)}.m-ev .t{color:var(--text-3);flex:none;font-size:12px}.m-ev.allday{background:color-mix(in srgb, var(--c) 20%, transparent)}.m-ev.allday:before{display:none}.m-ev.done{opacity:.5;text-decoration:line-through}.m-more{color:var(--text-3);text-align:left;background:0 0;border:0;padding:1px 7px;font-size:12px;font-weight:650}.m-more:hover{color:var(--text)}@media (width<=900px){.month-grid{grid-auto-rows:minmax(64px,auto)}.m-cell{padding:3px 2px 5px}.m-ev{gap:3px;height:18px;padding:0 4px;font-size:11px}.m-ev .t{display:none}.m-head div{padding:7px 4px}}.week{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);flex-direction:column;height:calc(100vh - 150px);min-height:520px;display:flex;overflow:hidden}.week-plan{border-bottom:1px solid var(--border);color:var(--text-3);align-items:center;gap:6px;padding:8px 14px;font-size:12.5px;display:flex}.week-head,.week-allday{border-bottom:1px solid var(--border);grid-template-columns:58px repeat(7,minmax(0,1fr));display:grid}.week-gutter{width:58px}.week-allday .week-gutter{text-align:right;padding:6px 8px}.week-day-head{color:var(--text-3);border-left:1px solid var(--border);align-items:baseline;gap:7px;padding:8px 10px;font-size:12.5px;font-weight:650;display:flex}.week-day-head b{color:var(--text);font-size:18px;font-weight:650}.week-day-head.today b{color:var(--accent-2)}.week-allday-cell{border-left:1px solid var(--border);flex-direction:column;gap:3px;min-width:0;min-height:30px;padding:4px;display:flex}.week-body{flex:1;position:relative;overflow-y:auto}.week-grid{background-image:repeating-linear-gradient(to bottom, transparent 0, transparent 45px, var(--border) 45px, var(--border) 46px);grid-template-columns:58px repeat(7,minmax(0,1fr));display:grid;position:relative}.week-gutter.hours{position:relative}.week-gutter.hours div{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11.5px;position:absolute;right:8px;transform:translateY(-50%)}.week-col{border-left:1px solid var(--border);cursor:cell;position:relative}.week-col.today{background:#8d96ff09}.w-ev{text-align:left;color:var(--text);background:color-mix(in srgb, var(--c) 22%, var(--surface));border:0;border-left:3px solid var(--c);cursor:pointer;z-index:1;border-radius:7px;flex-direction:column;gap:1px;padding:4px 7px;font-size:12.5px;display:flex;position:absolute;overflow:hidden}.w-ev:hover{background:color-mix(in srgb, var(--c) 32%, var(--surface));z-index:2}.w-ev b{font-size:12.5px;font-weight:600}.w-ev span{color:var(--text-2);font-size:11.5px}.w-ev.point{background:color-mix(in srgb, var(--c) 14%, var(--surface));border-left-style:dashed}.w-ev.done{opacity:.5}.now-line{background:var(--red);z-index:3;pointer-events:none;height:2px;position:absolute;left:-1px;right:0}.now-line:before{content:"";background:var(--red);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-4px}.plan-chip{background:var(--surface-3);color:var(--text-2);border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700}.agenda{flex-direction:column;display:flex}.ag-week{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 2px;font-size:12.5px;font-weight:650;display:flex}.ag-week:first-child{margin-top:0}.ag-day{border-top:1px solid var(--border);grid-template-columns:132px minmax(0,1fr);gap:14px;padding:12px 0;display:grid}.ag-week+.ag-day,.agenda.compact .ag-day:first-child{border-top:0}.ag-date b{font-size:14.5px;font-weight:650;display:block}.ag-date span{color:var(--text-3);font-size:13px}.ag-day.today .ag-date b{color:var(--accent-2)}.ag-items{flex-direction:column;gap:6px;min-width:0;display:flex}.ag-item{background:color-mix(in srgb, var(--c) 7%, var(--surface-2));width:100%;min-width:0;color:var(--text);text-align:left;border:0;border-radius:11px;align-items:center;gap:12px;padding:9px 12px 9px 10px;display:flex}.ag-item:hover{background:color-mix(in srgb, var(--c) 13%, var(--surface-2))}.ag-time{white-space:nowrap;width:104px;color:var(--text-2);flex:none;font-size:13px;line-height:1.35}.ag-time small{white-space:normal;color:var(--c);font-size:11.5px;font-weight:700;display:block}.ag-main{flex-direction:column;flex:1;min-width:0;display:flex}.ag-main b{align-items:center;gap:4px;font-size:14px;font-weight:600;display:flex}.ag-main small{color:var(--text-3);font-size:13px}.ag-left{color:var(--text-3);flex:none;font-size:13px;font-weight:550}.ag-left.soon{color:var(--red);font-weight:650}.ag-item.done{opacity:.55}.ag-item.done .ag-main b{text-decoration:line-through}.agenda.compact .ag-day{grid-template-columns:92px minmax(0,1fr);gap:10px;padding:10px 0}.ag-item.compact{padding:7px 10px 7px 9px}.ag-item.compact .ag-time{width:96px;font-size:12.5px}.ag-item.compact .ag-main b{font-size:13.5px}@media (width<=600px){.ag-day,.agenda.compact .ag-day{grid-template-columns:1fr;gap:6px}.ag-time,.ag-item.compact .ag-time{white-space:normal;width:62px;font-size:12.5px}}.undated-card{margin-top:16px}.ev-detail{flex-direction:column;gap:12px;display:flex}.ev-detail-kind{color:var(--c);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:750}.ev-detail h3{margin-top:-6px;font-size:17px;line-height:1.3}.ev-actions{flex-wrap:wrap;gap:6px;display:flex}.title-input{height:46px;font-size:17px;font-weight:600}.repeat-box{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:12px}.month.mobile .month-head div{text-align:center;padding:8px 0;font-size:13px}.mm-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;padding:4px 4px 8px;display:grid}.mm-day{height:52px;color:var(--text);background:0 0;border:0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:flex}.mm-day.outside{opacity:.35}.mm-num{border-radius:999px;place-items:center;min-width:32px;height:32px;font-size:17px;font-weight:600;display:grid}.mm-day.today .mm-num{color:var(--accent-2);font-weight:750}.mm-day.picked .mm-num{background:var(--accent);color:var(--accent-ink)}.mm-dots{gap:3px;height:6px;display:flex}.mm-dots i{background:var(--c);border-radius:50%;width:6px;height:6px}.mm-list{border-top:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 10px 14px;display:flex}.mm-list-head{align-items:baseline;gap:8px;padding:0 4px 2px;font-size:18px;display:flex}.mm-list-head .faint{font-size:15px}.mm-list-head .btn{align-self:center;margin-left:auto}.home-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.home-head h1{letter-spacing:-.02em;font-size:30px}.home-head .actions{flex-wrap:wrap;gap:8px;display:flex}.mobile-only{display:none!important}@media (width<=900px){.mobile-only{display:inline-grid!important}}.eyebrow{color:var(--text-3);margin-bottom:4px;font-size:13px;font-weight:600}.hints{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.hints .notice{align-items:center}.home-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);align-items:start;gap:18px;display:grid}.home-side{flex-direction:column;gap:18px;min-width:0;display:flex}@media (width<=1100px){.home-grid{grid-template-columns:1fr}}@media (width<=600px){.home-head h1{font-size:25px}.home-head .actions{width:100%}.home-head .actions .btn{flex:1}}.week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.strip-day{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 9px;font-size:12px;font-weight:600;display:flex}.strip-day b{color:var(--text);font-size:17px;font-weight:650}.strip-day:hover{background:var(--surface-3)}.strip-day.today{background:var(--accent-soft);border-color:#8d96ff80}.strip-day.today b{color:var(--accent-2)}.strip-dots{gap:3px;height:6px;display:flex}.strip-dots i{border-radius:50%;width:6px;height:6px}.undated-mini{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:10px;padding-top:12px;display:flex}.due-list{flex-direction:column;gap:2px;display:flex}.due-row{border-radius:10px;align-items:flex-start;gap:10px;min-width:0;padding:9px 6px;display:flex}.due-row>.badge{margin-top:2px}.due-row:hover{background:var(--hover)}.due-text{min-width:0}.due-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.due-meta{color:var(--text-3);margin-top:2px;font-size:13px}.due-when{color:var(--text-2);font-weight:650}.due-when.soon{color:var(--amber)}.due-when.late{color:var(--red)}.home-nutrition{align-items:center;gap:18px;display:flex}.status-rows{flex-direction:column;gap:12px;display:flex}.status-row{align-items:center;gap:12px;display:flex}.ring-value{letter-spacing:-.02em;font-size:26px;font-weight:700;line-height:1.1}.ring-label{color:var(--text-3);font-size:12px}.ring-left{color:var(--text-2);margin-top:2px;font-size:12.5px;font-weight:650}.ring-left.over{color:var(--amber)}.macros{flex-direction:column;gap:12px;display:flex}.macro-top{color:var(--text-2);justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13px;display:flex}.macro-top b{color:var(--text);font-weight:650}.macro-key{border-radius:3px;width:9px;height:9px;display:inline-block}.glance{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.glance-tile{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--border);min-width:0;color:var(--text);flex-direction:column;gap:3px;padding:14px 16px;display:flex}.glance-tile:hover{border-color:var(--border-strong);background:var(--surface-2);text-decoration:none}.glance-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);font-size:12.5px;font-weight:600}.glance-value{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:21px;font-weight:700;line-height:1.2;overflow:hidden}.glance-value.late{color:var(--red)}.glance-sub{color:var(--text-2);font-size:13.5px}@media (width<=900px){.glance{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.glance-value{font-size:18px}}.section-title{margin:26px 0 12px;font-size:15px}.run-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.run-card{flex-direction:column;gap:10px;display:flex}.run-top{align-items:center;gap:12px;display:flex}.run-top h2{font-size:16px}.run-top .dot{width:10px;height:10px}@media (width<=900px){.run-cards{grid-template-columns:1fr}}.course-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;display:grid}.course-card{color:var(--text);flex-direction:column;gap:10px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.course-card:hover{border-color:var(--border-strong);background:var(--surface-2);text-decoration:none}.course-card h3{font-size:15.5px;line-height:1.35}.course-due{flex-direction:column;gap:5px;display:flex}.course-due .late{color:var(--red);font-weight:600}.course-counts{border-top:1px solid var(--border);gap:14px;margin-top:auto;padding-top:10px;display:flex}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}@media (width<=900px){.two-col{grid-template-columns:1fr}}.course-page{grid-template-columns:390px minmax(0,1fr);height:100vh;display:grid}.course-side{border-right:1px solid var(--border);background:var(--bg-sidebar);flex-direction:column;gap:14px;padding:22px 16px 30px;display:flex;overflow-y:auto}.course-title{flex-direction:column;align-items:flex-start;gap:7px;display:flex}.course-title h1{font-size:18px;line-height:1.3}.course-due-list{flex-direction:column;gap:6px;display:flex}.due-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:8px;padding:9px 10px 9px 12px;display:flex}.due-card.late{border-color:#f2716e59}.course-list{flex-direction:column;gap:4px;display:flex}.group-title{color:var(--text-3);align-items:center;gap:8px;margin:12px 4px 4px;font-size:12.5px;font-weight:700;display:flex}.doc-row{gap:11px;padding:8px 9px}.doc-ico{text-align:center;letter-spacing:.03em;background:var(--surface-2);border:1px solid var(--border-strong);width:40px;color:var(--text-2);border-radius:6px;flex:none;padding:3px 0;font-size:11px;font-weight:750}.doc-ico.pdf{color:#ff9a7a;border-color:#ff9a7a4d}.draft-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:8px;padding:10px 8px 8px}.draft-head{align-items:flex-start;gap:8px;padding:0 4px 6px;display:flex}.course-viewer{min-width:0;min-height:0;display:flex}.course-mobile-nav,.chat-mobile-nav{display:none}@media (width<=900px){.course-page{height:auto;display:block}.course-side{padding:calc(16px + env(safe-area-inset-top)) 16px 24px;background:0 0;border-right:0;overflow:visible}.course-mobile-nav,.chat-mobile-nav{display:block}}.viewer{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.viewer.compact{height:100%}.viewer-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex}.viewer-bar b{flex:1;min-width:120px;font-weight:650}.viewer iframe{background:#fff;border:0;flex:1;width:100%;min-height:60vh}.viewer.compact iframe{min-height:0}.viewer-text{font:12.5px/1.6 var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--text-2);flex:1;margin:0;padding:18px 22px;overflow:auto}.viewer-image{flex:1;place-items:center;padding:20px;display:grid;overflow:auto}.viewer-image img{background:#fff;border-radius:6px;max-height:100%}.viewer-empty{text-align:center;color:var(--text-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:40px;display:flex}.viewer-empty b{color:var(--text);font-size:15px}.dialog.full .dialog-body{padding:0;display:flex}.chat-page{flex-direction:column;height:100vh;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:14px 24px;display:flex}.chat-head h1{font-size:18px}.compact-select{width:auto;height:32px;padding-left:10px;font-size:13px}.chat-scroll{flex:1;padding:26px 24px 10px;overflow-y:auto}.chat-inner{flex-direction:column;gap:22px;max-width:780px;margin:0 auto;display:flex}.chat-hello{padding:6vh 0 10px}.chat-hello h2{letter-spacing:-.02em;margin-bottom:10px;font-size:30px}.chat-hello p{margin-bottom:20px;font-size:15px;line-height:1.6}.chat-chips{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;display:grid}.chat-chip{text-align:left;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:14px;padding:12px 14px;font-size:13.5px;line-height:1.4}.chat-chip:hover{background:var(--surface-2)}.msg.user{justify-content:flex-end;display:flex}.msg.user .bubble{background:var(--surface-3);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px 18px 5px;max-width:80%;padding:11px 16px;font-size:14.5px}.msg.bot .who{color:var(--text-2);align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px;font-weight:700;display:flex}.msg.bot .who i{background:linear-gradient(145deg,#9aa2ff,#6f78f0);border-radius:5px;width:16px;height:16px}.msg.bot .who .faint{font-weight:500}.md{overflow-wrap:anywhere;font-size:15px;line-height:1.68}.md p{margin:0 0 12px}.md h1,.md h2,.md h3{margin:18px 0 8px;font-size:16px}.md ul,.md ol{margin:0 0 12px;padding-left:22px}.md li{margin:4px 0}.md code{background:var(--surface-2);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:13px}.md pre{background:var(--surface);border:1px solid var(--border);border-radius:10px;margin:0 0 12px;padding:12px 14px;overflow-x:auto}.md pre code{background:0 0;border:0;padding:0}.md blockquote{border-left:3px solid var(--border-strong);color:var(--text-2);margin:0 0 12px;padding-left:12px}.md table{border-collapse:collapse;margin:0 0 12px;font-size:13.5px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border-strong);text-align:left;padding:6px 10px}.md>:last-child{margin-bottom:0}.tools{color:var(--text-3);margin-top:8px;font-size:12.5px}.tools summary{cursor:pointer}.tools div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.thinking{color:var(--text-2);align-items:center;gap:8px;margin-top:8px;font-size:13.5px;display:flex}.thinking i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:1.1s ease-in-out infinite bounce}.thinking i:nth-child(2){animation-delay:.15s}.thinking i:nth-child(3){animation-delay:.3s}.thinking span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer{padding:10px 24px 18px}.composer-inner{border:1px solid var(--border-strong);background:var(--surface);border-radius:22px;align-items:flex-end;gap:8px;max-width:780px;margin:0 auto;padding:8px 8px 8px 18px;display:flex}.composer-inner:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.composer textarea{resize:none;color:var(--text);background:0 0;border:0;outline:none;flex:1;max-height:200px;padding:7px 0;font-size:15px;line-height:1.5}.send{background:var(--accent);width:38px;height:38px;color:var(--accent-ink);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.send:disabled{opacity:.3}.composer-note{text-align:center;max-width:780px;margin:8px auto 0;font-size:12px}@media (width<=900px){.chat-page{height:calc(100vh - var(--tabbar-h) - env(safe-area-inset-bottom));height:calc(100dvh - var(--tabbar-h) - env(safe-area-inset-bottom))}.chat-mobile-nav{padding:calc(12px + env(safe-area-inset-top)) 16px 0}.chat-head{padding:10px 16px}.chat-head>.grow{flex-basis:100%}.chat-scroll{padding:18px 16px 8px}.composer{padding:8px 12px 12px}}.split-page{grid-template-columns:420px minmax(0,1fr);height:100vh;display:grid}.split-side{border-right:1px solid var(--border);background:var(--bg-sidebar);padding:22px 12px 30px;overflow-y:auto}.split-head{padding:0 6px 14px}.split-head h1{margin-bottom:4px;font-size:20px}.split-main{min-width:0;min-height:0;display:flex}.forum-row{align-items:flex-start;padding:10px}.forum-subject{font-weight:550;display:block}.forum-row.unread .forum-subject{font-weight:750}.unread-dot{border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.forum-row.unread .unread-dot{background:var(--accent)}.thread{flex-direction:column;flex:1;min-width:0;display:flex}.posts{flex:1;padding:16px 22px 30px;overflow-y:auto}.post{border:1px solid var(--border);background:var(--surface);border-radius:14px;margin-bottom:10px;padding:12px 16px}.post.new{border-left:3px solid var(--accent)}.post-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.post-body{overflow-wrap:anywhere;font-size:14.5px;line-height:1.6}.post-body p{margin:8px 0}@media (width<=900px){.split-page{height:auto;display:block}.split-side{padding:calc(16px + env(safe-area-inset-top)) 12px 24px;background:0 0;border-right:0;overflow:visible}.split-side .course-mobile-nav{padding:0 4px}}.notice-course{margin-bottom:28px}.notice-course h2{margin-bottom:12px;font-size:16px}.notice-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--blue);border-radius:14px;flex-direction:column;gap:8px;margin-bottom:10px;padding:12px 16px;display:flex}.notice-card.red{border-left-color:var(--red)}.notice-card.amber{border-left-color:var(--amber)}.notice-card blockquote{margin:0;font-size:14px;line-height:1.6}.mentions{color:var(--text-2);font-size:13px}.mentions summary{cursor:pointer}.mentions li{margin:5px 0}.nutri-top{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:16px;margin-bottom:16px;display:grid}.nutri-summary{align-items:center;gap:26px;display:flex}.nutri-summary .ring-value{font-size:32px}.nutri-mini{gap:16px;display:flex}.nutri-mini b{color:var(--text)}.nutri-main{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:16px;display:grid}.meals{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.meal .card-head{margin-bottom:8px}.nutri-side{flex-direction:column;gap:16px;display:flex}.food-row{padding:8px 6px}.food-thumb{object-fit:cover;background:var(--surface-3);border-radius:10px;flex:none;width:38px;height:38px}.empty-thumb{color:var(--text-2);place-items:center;font-size:14px;font-weight:700;display:grid}@media (width<=1100px){.nutri-top,.nutri-main{grid-template-columns:1fr}}@media (width<=700px){.meals{grid-template-columns:1fr}.nutri-summary{flex-direction:column;align-items:stretch}.nutri-summary>:first-child{align-self:center}}.week-chart .card-head{margin-bottom:6px}.chart-box{position:relative}.chart-box svg{display:block;overflow:visible}.chart-label{fill:var(--text-3);font-size:11.5px;font-family:var(--font)}.chart-value{fill:var(--text);font-size:12px;font-weight:650;font-family:var(--font)}.chart-axis{fill:var(--text-3);font-size:11.5px;font-family:var(--font)}.chart-axis.on{fill:var(--text);font-weight:650}.chart-tip{pointer-events:none;background:var(--surface-3);box-shadow:var(--shadow-pop);white-space:nowrap;z-index:2;border-radius:10px;flex-direction:column;gap:1px;padding:8px 10px;font-size:12.5px;display:flex;position:absolute;top:0;transform:translate(-50%)}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--border);padding:6px 8px;font-size:12.5px;font-weight:650}.data-table td{border-bottom:1px solid var(--border);padding:7px 8px}.data-table tr.on td{color:var(--accent-2);font-weight:600}.data-table.edit td{padding:3px}.data-table.edit .input{height:32px;padding:0 8px;font-size:13px}.data-table.edit td:nth-child(n+3) .input{width:64px}.data-table tfoot td{border-bottom:0;padding:8px;font-weight:700}.table-wrap{overflow-x:auto}.weight-tile{align-items:center;gap:16px;display:flex}.stat-value{letter-spacing:-.02em;font-size:28px;font-weight:700}.stat-value span{color:var(--text-3);font-size:14px;font-weight:600}.sparkline{flex:1;min-width:80px;height:40px}.photo-chip{border:1px solid var(--border-strong);border-radius:10px;align-items:center;gap:6px;padding:3px;display:inline-flex}.photo-chip img{object-fit:cover;border-radius:8px;width:34px;height:34px}.estimate{flex-direction:column;gap:12px;display:flex}.search-box{position:relative}.search-box svg{color:var(--text-3);position:absolute;top:11px;left:12px}.search-box .input{padding-left:36px}.settings-layout{grid-template-columns:180px minmax(0,1fr);align-items:start;gap:28px;display:grid}.settings-nav{flex-direction:column;gap:2px;display:flex;position:sticky;top:24px}.settings-nav a{color:var(--text-2);border-radius:9px;padding:7px 10px;font-weight:560;text-decoration:none}.settings-nav a:hover{background:var(--hover);color:var(--text)}.settings-body{flex-direction:column;gap:30px;min-width:0;max-width:860px;display:flex}.settings-section{scroll-margin-top:24px}.settings-section-head{margin-bottom:10px}.settings-section-head h2{margin-bottom:3px;font-size:17px}.settings-card{flex-direction:column;padding:4px 20px;display:flex}.setting-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);align-items:start;gap:18px;padding:16px 0;display:grid}.setting-row:last-child,.setting-block:last-child{border-bottom:0}.setting-label{flex-direction:column;gap:3px;display:flex}.setting-label b{font-weight:620}.setting-label code{overflow-wrap:anywhere;font-size:12px}.setting-control{min-width:0}.setting-block{border-bottom:1px solid var(--border);flex-direction:column;gap:12px;padding:16px 0;display:flex}.usage-total{font-size:22px;font-weight:700}.goals-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding-top:16px;display:grid}.goals-grid+.row{padding-bottom:16px}.color-input{border:1px solid var(--border-strong);background:var(--surface-2);border-radius:10px;flex:none;width:38px;height:38px;padding:3px}.output-box{background:var(--surface-2);border-radius:10px;max-height:180px;margin:0;padding:10px 12px;overflow:auto}.token-box{background:var(--surface-2);border:1px solid var(--border-strong);overflow-wrap:anywhere;border-radius:10px;flex:1;padding:10px 12px;font-size:13px;display:block}.security-log{color:var(--text-2);padding:14px 0 16px}.security-log summary{cursor:pointer;font-weight:600}.log-row{border-bottom:1px solid var(--border);grid-template-columns:150px 160px minmax(0,1fr);gap:10px;padding:5px 0;font-size:13px;display:grid}@media (width<=900px){.settings-layout{grid-template-columns:1fr}.settings-nav{scrollbar-width:none;flex-direction:row;gap:6px;position:static;overflow-x:auto}.settings-nav a{background:var(--surface);border:1px solid var(--border);flex:none}.setting-row{grid-template-columns:1fr;gap:10px}.goals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.log-row{grid-template-columns:1fr;gap:2px}}.token-box.big{letter-spacing:.08em;text-align:center;font-size:20px;font-weight:650}.pair-steps{flex-direction:column;gap:16px;margin:0;padding-left:20px;font-size:14px;line-height:1.5;display:flex}.pair-steps li::marker{color:var(--text-3);font-weight:600}.bad-text{color:var(--red)}.qr{width:240px;height:240px;image-rendering:pixelated;background:#fff;border-radius:14px}.training-layout{grid-template-columns:310px minmax(0,1fr);align-items:start;gap:14px;display:grid}.training-layout.no-bank{grid-template-columns:minmax(0,1fr)}.bank-panel{flex-direction:column;height:calc(100vh - 150px);display:flex;position:sticky;top:20px}.bank{flex-direction:column;height:100%;min-height:0;display:flex}.bank-filters{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:14px 14px 10px;display:flex}.bank-selects{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.bank-selects .select{background-position:calc(100% - 13px) 13px,calc(100% - 8px) 13px;height:32px;padding-left:8px;padding-right:24px;font-size:13px}.bank-list{flex-direction:column;flex:1;gap:4px;min-height:0;padding:8px;display:flex;overflow-y:auto}.dialog .bank{max-height:70vh}.dialog .bank-filters{padding:0 0 10px}.dialog .bank-list{padding:8px 0 0}.bank-card{cursor:grab;border:1px solid #0000;border-radius:12px;align-items:center;gap:11px;padding:7px 8px;display:flex}.bank-card:hover{background:var(--hover);border-color:var(--border)}.bank-card:active{cursor:grabbing}.bank-name{font-size:13.5px;font-weight:600;line-height:1.3}.ex-thumb{object-fit:cover;background:#fff;border-radius:10px;flex:none;display:block}.ex-thumb.placeholder{background:var(--surface-3);color:var(--text-2);place-items:center;font-weight:700;display:grid}.ex-thumb.placeholder.big{width:100%;height:260px;font-size:40px}.plan-board{grid-template-columns:repeat(7,minmax(150px,1fr));align-items:start;gap:8px;padding-bottom:6px;display:grid;overflow-x:auto}.plan-board.single{grid-template-columns:1fr;overflow:visible}.plan-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l);flex-direction:column;min-width:0;display:flex}.plan-day.today{border-color:#8d96ff73}.plan-day.gym .plan-day-head{background:linear-gradient(#199e701a,#0000)}.plan-day.done{opacity:.8}.plan-day-head{border-radius:var(--radius-l) var(--radius-l) 0 0;flex-direction:column;gap:8px;padding:12px 12px 10px;display:flex}.plan-day-name{font-weight:650}.plan-day.today .plan-day-name{color:var(--accent-2)}.gym-toggle{border:1px solid var(--border-strong);width:100%;height:28px;color:var(--text-3);background:0 0;border-radius:8px;align-items:center;gap:6px;padding:0 9px;font-size:12.5px;font-weight:650;display:flex}.gym-toggle:hover{color:var(--text);background:var(--hover)}.gym-toggle.on{color:#8fe3c4;background:#199e702e;border-color:#199e708c}.gym-check{margin-left:auto}.plan-title{border:0;border-bottom:1px dashed var(--border-strong);width:100%;color:var(--text);background:0 0;outline:none;padding:3px 0;font-size:13px;font-weight:600}.plan-title:focus{border-bottom-color:var(--accent)}.plan-drop{border-radius:10px;flex-direction:column;flex:1;gap:6px;min-height:120px;margin:0 4px;padding:6px 8px;transition:background .1s;display:flex}.plan-drop.over{background:var(--accent-soft);outline:1px dashed #8d96ff99}.plan-item{background:var(--surface-2);border:1px solid var(--border);cursor:grab;border-radius:11px;align-items:center;gap:6px;padding:6px;display:flex;position:relative}.plan-item:hover{border-color:var(--border-strong)}.plan-item.done{opacity:.55}.plan-item.done .plan-item-name{text-decoration:line-through}.plan-item.drop-before:before,.drop-line{content:"";background:var(--accent);border-radius:3px;height:3px;display:block}.plan-item.drop-before:before{position:absolute;top:-5px;left:4px;right:4px}.grip{color:var(--text-3);flex:none}.plan-item-main{min-width:0;color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:9px;padding:0;display:flex}.plan-item-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.plan-item-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.plan-board:not(.single) .plan-item{flex-wrap:wrap;align-items:flex-start}.plan-board:not(.single) .plan-item-main{flex-direction:column;flex-basis:100%;align-items:stretch;gap:6px}.plan-board:not(.single) .plan-item-main .ex-thumb{object-fit:cover;border-radius:8px;width:100%!important;height:70px!important}.plan-board:not(.single) .plan-item .grip{color:#fff;filter:drop-shadow(0 1px 2px #000c);position:absolute;top:10px;left:10px}.plan-board:not(.single) .plan-item .tick{background:#0c0d14b3;position:absolute;top:9px;right:9px}.plan-board:not(.single) .plan-item .tick.on{background:var(--green)}.tick{border:1.5px solid var(--border-strong);color:#0000;background:0 0;border-radius:7px;flex:none;place-items:center;width:24px;height:24px;display:grid}.tick:hover{border-color:var(--green);color:var(--green)}.tick.on{background:var(--green);border-color:var(--green);color:#062014}.plan-empty{text-align:center;color:var(--text-3);border:1px dashed var(--border);border-radius:10px;flex:1;place-items:center;padding:18px 6px;font-size:13px;display:grid}.plan-day-foot{align-items:center;gap:4px;padding:6px 8px 10px;display:flex}.finish-btn{margin:2px 12px 0}.finish-btn.is-done{color:#8fe3c4;border-color:#199e7080}.template-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:6px 0;display:flex}.plan-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:12px;display:grid}.plan-strip-day{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:12px;flex-direction:column;align-items:center;gap:1px;padding:7px 2px;font-size:11.5px;font-weight:600;display:flex}.plan-strip-day b{color:var(--text);font-size:16px}.plan-strip-day i{color:#8fe3c4;place-items:center;height:14px;display:grid}.plan-strip-day.on{border-color:var(--accent);background:var(--accent-soft)}.ex-detail{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;display:grid}.ex-media{flex-direction:column;gap:8px;display:flex}.ex-media img{aspect-ratio:1/.82;object-fit:contain;background:#fff;border-radius:14px;width:100%}.ex-media-bar{justify-content:center;align-items:center;gap:8px;display:flex}.frame-dot{background:var(--surface-3);border:0;border-radius:50%;width:9px;height:9px;padding:0}.frame-dot.on{background:var(--accent)}.ex-info{flex-direction:column;gap:14px;min-width:0;display:flex}.ex-steps{color:var(--text-2);flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:13.5px;line-height:1.55;display:flex}@media (width<=1100px){.training-layout{grid-template-columns:270px minmax(0,1fr)}}@media (width<=700px){.ex-detail{grid-template-columns:1fr}}.train-week{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}.train-dot{color:var(--text-3);flex-direction:column;align-items:center;gap:4px;font-size:11.5px;font-weight:600;display:flex}.train-dot i{border:1.5px solid var(--border-strong);color:#0000;border-radius:50%;place-items:center;width:26px;height:26px;display:grid}.train-dot.gym i{color:#8fe3c4;border-color:#199e70}.train-dot.done i{color:#062014;background:#199e70;border-color:#199e70}.train-dot.today span{color:var(--accent-2)}.train-today{flex-direction:column;gap:6px;display:flex}.train-row{align-items:center;gap:10px;font-size:13px;display:flex}.plan-board.single .grip{display:none}
