:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:HarmonyOS Sans SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;color:var(--ink, #14202f);background:var(--paper-soft, #f5f6f8);font-size:15px}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}.shell{display:flex;min-height:100vh}.rail{display:flex;flex-direction:column;gap:1.6rem;width:13rem;flex:0 0 13rem;padding:1.4rem 1.1rem;border-right:1px solid var(--line, #dfe3e8);background:var(--paper, #fff)}.rail-brand{margin:0;font-weight:700;letter-spacing:.02em}.rail nav{display:grid;gap:.35rem}.rail nav a{padding:.5rem .65rem;border-radius:6px;color:var(--muted, #5b6572)}.rail nav a.router-link-active{background:var(--accent-soft, #eaf0fb);color:var(--accent, #1d4ed8);font-weight:600}.rail-logout{margin-top:auto;padding:.5rem .65rem;border:1px solid var(--line, #dfe3e8);border-radius:6px;background:transparent;cursor:pointer;color:var(--muted, #5b6572)}.workbench{flex:1;padding:1.8rem 2rem 3rem;overflow-x:auto}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:1.4rem}.page-head h1{margin:0;font-size:1.35rem}.page-head .spacer{flex:1}.filters{display:flex;flex-wrap:wrap;gap:.6rem}.filters select{padding:.4rem .6rem;border:1px solid var(--line, #dfe3e8);border-radius:6px;background:var(--paper, #fff)}.button{padding:.45rem .9rem;border:1px solid var(--accent, #1d4ed8);border-radius:6px;background:var(--accent, #1d4ed8);color:#fff;cursor:pointer}.button[disabled]{opacity:.55;cursor:progress}.button.ghost{background:transparent;border-color:var(--line, #dfe3e8);color:var(--muted, #5b6572)}.table{width:100%;border-collapse:collapse;background:var(--paper, #fff);border:1px solid var(--line, #dfe3e8);border-radius:8px;overflow:hidden}.table th,.table td{padding:.7rem .85rem;text-align:left;border-bottom:1px solid var(--line, #eef0f3);vertical-align:top}.table th{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #5b6572);font-weight:600}.table tr:last-child td{border-bottom:0}.pill{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.8rem;background:var(--accent-soft, #eaf0fb);color:var(--accent, #1d4ed8);white-space:nowrap}.pill.muted{background:#eef0f3;color:#5b6572}.pill.warn{background:#fdf1e2;color:#b45309}.empty{padding:2.2rem 1rem;border:1px dashed var(--line, #dfe3e8);border-radius:8px;background:var(--paper, #fff);color:var(--muted, #5b6572)}.error{margin:.8rem 0;color:#b42318}.card{max-width:52rem;padding:1.4rem 1.5rem;border:1px solid var(--line, #dfe3e8);border-radius:10px;background:var(--paper, #fff)}.field{display:grid;gap:.3rem;margin-bottom:.9rem}.field span{font-size:.82rem;color:var(--muted, #5b6572)}.field input,.field textarea,.field select{padding:.5rem .6rem;border:1px solid var(--line, #dfe3e8);border-radius:6px;background:var(--paper, #fff)}.field textarea{min-height:6.5rem;resize:vertical;line-height:1.7}.detail-grid{display:grid;gap:1rem;margin:0 0 1.4rem}.detail-item{display:grid;gap:.2rem;padding-bottom:.8rem;border-bottom:1px solid var(--line, #eef0f3)}.detail-item dt{font-size:.8rem;color:var(--muted, #5b6572)}.detail-item dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.timeline{margin:0;padding:0;list-style:none;display:grid;gap:.7rem}.timeline li{padding-left:.9rem;border-left:2px solid var(--accent-soft, #eaf0fb)}.timeline time{display:block;font-size:.78rem;color:var(--muted, #5b6572)}.login-page{display:grid;grid-template-columns:6fr 4fr;align-items:center;gap:clamp(1.5rem,4vw,4rem);min-height:calc(100vh - 4.8rem)}@keyframes login-rise{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:translateY(0)}}.login-rise{animation:login-rise .52s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--reveal-delay, 0ms)}@media(prefers-reduced-motion:reduce){.login-rise{animation:none;opacity:1;transform:none}}.login-brand{position:relative;overflow:hidden;padding:clamp(1.6rem,3vw,2.8rem);border-radius:14px;background:var(--band-ink, #071b39);color:var(--inverse, #fff)}.login-brand:before,.login-brand:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.login-brand:before{width:30rem;height:30rem;top:-16rem;right:-12rem;background:radial-gradient(circle,var(--hero-glow, rgb(18 60 119 / 80%)),transparent 68%)}.login-brand:after{width:24rem;height:24rem;bottom:-14rem;left:-10rem;background:radial-gradient(circle,var(--deep-glow, rgb(34 77 128 / 48%)),transparent 66%)}.login-brand>*{position:relative}.brand-kicker{margin:0 0 1rem;font-size:.8rem;letter-spacing:.08em;color:var(--inverse-muted, rgb(255 255 255 / 72%))}.brand-title{margin:0 0 1.1rem;font-size:clamp(1.5rem,2.6vw,2.2rem);line-height:1.28;font-weight:700}.brand-points{display:grid;gap:.6rem;margin:0;padding:0;list-style:none;font-size:.92rem;line-height:1.6}.brand-points li{padding-left:.9rem;border-left:2px solid var(--inverse-line, rgb(255 255 255 / 16%))}.brand-foot{margin:1.4rem 0 0;font-size:.8rem;color:var(--inverse-muted, rgb(255 255 255 / 72%))}.login-panel{display:grid;place-items:center}@media(max-width:880px){.login-page{grid-template-columns:1fr;align-items:start;min-height:auto}.brand-title{font-size:1.45rem}}.login-card{width:min(24rem,100%);padding:1.8rem;border:1px solid var(--line, #dfe3e8);border-radius:12px;background:var(--paper, #fff)}.login-card h1{margin:0 0 .4rem;font-size:1.2rem}.login-card p{margin:0 0 1.3rem;color:var(--muted, #5b6572);font-size:.88rem}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem}.note{margin:.4rem 0 0;font-size:.82rem;color:var(--muted, #5b6572)}.summary{font-size:.82rem;color:var(--muted, #5b6572)}.rail-account{margin:0;font-size:.8rem;color:var(--muted, #5b6572);overflow-wrap:anywhere}.stack{display:grid;gap:.9rem;margin:0 0 1.6rem}.stack h2{margin:0;font-size:1.02rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:0 1rem}.warn-note{margin:.35rem 0 0;font-size:.78rem;line-height:1.5;color:#b45309}.button.danger{background:#b42318;border-color:#b42318}.notice{display:flex;align-items:center;gap:.8rem;max-width:52rem;margin:0 0 1.2rem;padding:.7rem .9rem;border:1px solid var(--line, #dfe3e8);border-left-width:4px;border-radius:8px;background:var(--paper, #fff);font-size:.88rem}.notice.ok{border-left-color:#157f3d}.notice.err{border-left-color:#b42318;color:#b42318}.notice-close{margin-left:auto;border:0;background:transparent;color:var(--muted, #5b6572);font-size:.8rem;cursor:pointer}@media(max-width:880px){.shell{flex-direction:column}.rail{width:auto;flex:none;flex-direction:row;align-items:center;gap:1rem;padding:.7rem 1rem;border-right:0;border-bottom:1px solid var(--line, #dfe3e8)}.rail nav{display:flex;flex-wrap:wrap}.rail-logout{margin-top:0;margin-left:auto;white-space:nowrap}.workbench{padding:1.2rem 1rem 2.5rem}.card,.notice{max-width:none}.table{min-width:46rem}.table th,.table td.nowrap{white-space:nowrap}.table th,.table td{padding:.6rem .7rem}}.canvas{display:flex;flex-direction:column;flex:1;min-width:0}.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;padding:.7rem 2rem;border-bottom:1px solid var(--line, #dfe3e8);background:var(--paper, #fff)}.crumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem;margin:0;padding:0;list-style:none;font-size:.86rem;color:var(--muted, #5b6572)}.crumbs li+li:before{content:"/";margin-right:.4rem}.crumbs li[aria-current=page]{color:var(--ink, #14202f);font-weight:600}.topbar-account{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.topbar-name{font-weight:600}.topbar-email{font-size:.84rem;color:var(--muted, #5b6572)}.rail{gap:1.1rem}.rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.rail-fold{padding:.1rem .2rem;border:0;background:transparent;font-size:.78rem;color:var(--muted, #5b6572);cursor:pointer}.rail-group{display:grid;gap:.3rem}.rail-group-label{margin:.4rem 0 .1rem .65rem;font-size:.74rem;letter-spacing:.08em;color:var(--muted, #5b6572)}.rail--folded{width:9.5rem;flex:0 0 9.5rem}.rail--folded .rail-group-label{display:none}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.8rem;margin:0 0 1.4rem}.kpi{padding:.9rem 1rem;border:1px solid var(--line, #dfe3e8);border-radius:10px;background:var(--paper, #fff)}.kpi-label{margin:0;font-size:.8rem;color:var(--muted, #5b6572)}.kpi-value{margin:.2rem 0 0;font-size:1.6rem;font-weight:700;line-height:1.2}.kpi-note{margin:.2rem 0 0;font-size:.78rem;color:var(--muted, #5b6572)}.dash-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}.dash-col{min-width:0;margin-bottom:1.4rem}.dash-col h2{margin:0 0 .5rem;font-size:1rem}.dash-hint{margin:0 0 .6rem;font-size:.78rem;color:var(--muted, #5b6572)}.spark{display:grid;gap:.3rem;margin:0;padding:0;list-style:none}.spark li{display:grid;grid-template-columns:3.2rem 1fr 2rem;align-items:center;gap:.5rem;font-size:.82rem}.spark-day{color:var(--muted, #5b6572)}.spark-bar{display:block;height:.5rem;min-width:2px;border-radius:999px;background:var(--accent, #1d4ed8)}.spark-value{text-align:right;font-variant-numeric:tabular-nums}.pending,.recent{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.pending li,.recent li{display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;padding:.45rem .6rem;border:1px solid var(--line, #dfe3e8);border-radius:8px;background:var(--paper, #fff)}.dash-more{display:inline-block;margin-top:.6rem;font-size:.84rem;color:var(--accent, #1d4ed8)}.recent-actor{font-weight:600}.recent-target,.mono{font-family:var(--font-mono, ui-monospace, monospace);font-size:.8rem}.field-inline{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.field-inline input,.field-inline select{margin:0}.settings-card{display:grid;gap:1rem;max-width:38rem}.switch{display:grid;grid-template-columns:auto 1fr;gap:.7rem;align-items:start;cursor:pointer}.switch input[type=checkbox]{width:1.05rem;height:1.05rem;margin-top:.25rem;accent-color:var(--accent, #1d4ed8)}.switch strong{display:block;font-weight:600}.switch em{display:block;font-style:normal;font-size:.82rem;color:var(--muted, #5b6572)}.settings-saved,.page-note{margin:0;font-size:.8rem;color:var(--muted, #5b6572)}.page-head .page-note{margin:.2rem 0 0}@media(max-width:880px){.dash-cols{grid-template-columns:1fr}.topbar{padding:.65rem 1rem}.rail{width:9.5rem;flex-basis:9.5rem}}
