:root{--brand-jade:#123d3a;--brand-jade-hover:#0d2f2c;--brand-jade-active:#082320;--brand-porcelain:#f5f1e8;--brand-ink:#111;--brand-cinnabar:#c74332;--accent:#876223;--accent-hover:#735219;--accent-active:#5f4315;--accent-soft:#f1e7d0;--on-accent:#fff;--bg:#f4efe5;--bg-subtle:#eae3d5;--surface:#fdfcf8;--line:#e6dfd0;--line-strong:#cfc6b3;--text:#1c1913;--text-muted:#62594a;--text-faint:#7c7363;--on-jade:var(--brand-porcelain);--success-fg:#1b6b43;--success-bg:#e3f1e8;--warning-fg:#7a4f00;--warning-bg:#faefd0;--danger-fg:#a3241b;--danger-bg:#fbe5e2;--info-fg:#1b5683;--info-bg:#e1edf6;--unknown-fg:#5b3a93;--unknown-bg:#ede6f7;--neutral-fg:#4a4843;--neutral-bg:#e8e3d7;--font:-apple-system, "PingFang SC", "Helvetica Neue", "Noto Sans SC", sans-serif;--font-serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", Georgia, serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:24px;--lh-body:1.5;--lh-cell:1.4;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-pill:999px;--scrim:#11111159;--shadow-pop:0 8px 28px #3c2c1029;--shadow-card:0 1px 2px #3c2c100d;--t-fast:.12s;--row-h:36px;--ctl-h:32px;--topbar-h:48px;--sidebar-w:208px;--sidebar-w-collapsed:56px;--focus-ring:2px solid var(--accent)}.fe{--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--ctl-h:44px}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s}*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:var(--fs-sm)/var(--lh-body) var(--font);margin:0}a{color:var(--accent);text-underline-offset:2px}a:hover{color:var(--accent-hover)}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.num,.money{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:var(--fs-xs)}.muted{color:var(--text-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{align-items:center;gap:var(--sp-1);height:var(--ctl-h);padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:500 var(--fs-sm)/1 var(--font);cursor:pointer;transition:background var(--t-fast), border-color var(--t-fast);white-space:nowrap;text-decoration:none;display:inline-flex}.btn:hover{background:var(--bg-subtle)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active{background:var(--accent-active)}.btn-danger{color:var(--danger-fg);border-color:var(--danger-fg)}.btn-ghost{background:0 0;border-color:#0000}.btn[disabled],.btn[aria-disabled=true]{background:var(--bg-subtle);color:var(--text-faint);border-color:var(--line);cursor:not-allowed}.btn[aria-busy=true]{pointer-events:none}.btn-sm{height:28px;padding:0 var(--sp-2);font-size:var(--fs-xs)}.field{gap:var(--sp-1);flex-direction:column;min-width:0;display:flex}.field>label,.field-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:500}.field .hint{font-size:var(--fs-xs);color:var(--text-muted)}.field .err{font-size:var(--fs-xs);color:var(--danger-fg)}.input,.select,.textarea{height:var(--ctl-h);width:100%;padding:0 var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:var(--fs-sm)/1.2 var(--font)}.textarea{height:auto;min-height:72px;padding:var(--sp-3);resize:vertical}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--danger-fg)}.input[disabled],.select[disabled]{background:var(--bg-subtle);color:var(--text-faint)}.form-grid{gap:var(--sp-3) var(--sp-4);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.badge{height:22px;padding:0 var(--sp-3);border-radius:var(--r-pill);font-size:var(--fs-xs);white-space:nowrap;align-items:center;gap:5px;font-weight:500;display:inline-flex}.badge:before{content:"";background:currentColor;flex:none;width:6px;height:6px}.badge-success{color:var(--success-fg);background:var(--success-bg)}.badge-success:before{border-radius:50%}.badge-warning{color:var(--warning-fg);background:var(--warning-bg)}.badge-warning:before{clip-path:polygon(50% 0,100% 100%,0 100%)}.badge-danger{color:var(--danger-fg);background:var(--danger-bg)}.badge-danger:before{transform:rotate(45deg)}.badge-info{color:var(--info-fg);background:var(--info-bg)}.badge-info:before{background:0 0;border:1.5px solid;border-radius:50%}.badge-unknown{color:var(--unknown-fg);background:var(--unknown-bg)}.badge-unknown:before{content:"?";background:0 0;width:auto;height:auto;font-size:11px;font-weight:700;line-height:1}.badge-neutral{color:var(--neutral-fg);background:var(--neutral-bg)}.badge-neutral:before{width:8px;height:2px}.tag{padding:0 var(--sp-3);border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:var(--r-pill);height:22px;line-height:20px;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;display:inline-block}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:var(--fs-sm);line-height:var(--lh-cell)}.tbl th{background:var(--surface);text-align:left;font-size:var(--fs-xs);color:var(--text-muted);height:32px;padding:0 var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600;position:sticky;top:0}.tbl th a{color:inherit;text-decoration:none}.tbl td{height:var(--row-h);padding:0 var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:middle}.tbl tbody tr:hover{background:var(--bg-subtle)}.tbl tbody tr:last-child td{border-bottom:0}.tbl .r{text-align:right}.tbl-comfy td{height:44px}.tbl td.wrap{white-space:normal}.tbl tr[aria-selected=true] td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.shell{grid-template-columns:calc(var(--sidebar-w) + var(--sp-3)) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);color:var(--text);padding:var(--sp-4) 0;top:var(--sp-3);height:calc(100vh - 2 * var(--sp-3));margin:var(--sp-3) 0 var(--sp-3) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-card);flex-direction:column;display:flex;position:sticky}.sidebar .brand{padding:0 var(--sp-4) var(--sp-4);color:var(--brand-jade);display:block}.sidebar .brand .logo-wide{width:132px;display:block}.sidebar .brand .logo-mark{width:28px;display:none}.nav{padding:0 var(--sp-2);flex-direction:column;gap:2px;display:flex}.nav a{align-items:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-3);border-radius:var(--r-pill);color:var(--text-muted);font-size:var(--fs-md);text-decoration:none;display:flex}.nav a:hover{background:var(--bg-subtle);color:var(--text)}.nav a[aria-current=page]{background:var(--accent-soft);color:var(--accent-hover);font-weight:600}.nav .ico{flex:none;width:16px;height:16px}.sidebar .spacer{flex:1}.main{flex-direction:column;min-width:0;display:flex}.topbar{height:var(--topbar-h);align-items:center;gap:var(--sp-4);padding:0 var(--sp-5);margin:var(--sp-3) var(--sp-5) 0;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-card);top:var(--sp-3);z-index:5;display:flex;position:sticky}.topbar .search{flex:1;max-width:420px}.topbar .search .input{border-radius:var(--r-pill);width:100%}.topbar .todo{font-size:var(--fs-lg);color:var(--accent-hover);font-weight:700;text-decoration:none}.page{padding:var(--sp-6) var(--sp-5) var(--sp-8);gap:var(--sp-3);flex-direction:column;display:flex}.page-head{justify-content:space-between;align-items:baseline;gap:var(--sp-4);flex-wrap:wrap;display:flex}.page-head h1{font-family:var(--font-serif);font-size:var(--fs-2xl);color:var(--text);margin:0;font-weight:600}.crumbs{font-size:var(--fs-xs);color:var(--text-muted);align-items:center;gap:var(--sp-1);display:flex}.tabs{gap:var(--sp-1);border-bottom:1px solid var(--line);scrollbar-width:none;display:flex;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;text-decoration:none}.tabs a[aria-current=page]{color:var(--accent-hover);border-bottom-color:var(--accent);font-weight:600}.tabs .count{font-size:var(--fs-xs);color:var(--text-faint);margin-left:4px}.filters{gap:var(--sp-2);padding:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);flex-wrap:wrap;align-items:flex-end;display:flex}.filters .field{width:128px}.filters .field.grow{flex:1;width:auto;min-width:220px}.filters{padding:var(--sp-2) var(--sp-3)}.pager{justify-content:space-between;align-items:center;gap:var(--sp-3);font-size:var(--fs-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.panel>header{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);font-weight:600;font-size:var(--fs-md);justify-content:space-between;align-items:center;display:flex}.panel>.body{padding:var(--sp-3) var(--sp-4)}details.section{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}details.section>summary{cursor:pointer;padding:var(--sp-3) var(--sp-4);font-weight:600;font-size:var(--fs-md);justify-content:space-between;align-items:center;list-style:none;display:flex}details.section>summary::-webkit-details-marker{display:none}details.section>summary:after{content:"+";color:var(--text-muted);font-weight:400}details.section[open]>summary:after{content:"–"}details.section[open]>summary{border-bottom:1px solid var(--line)}details.section>.body{padding:var(--sp-3) var(--sp-4)}.kv{gap:var(--sp-1) var(--sp-4);font-size:var(--fs-sm);grid-template-columns:max-content 1fr;margin:0;display:grid}.kv dt{color:var(--text-muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.cols{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.banner{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);border-left-width:4px;align-items:flex-start;display:flex}.banner h2{font-size:var(--fs-md);margin:0 0 2px;font-weight:600}.banner p{color:var(--text-muted);margin:0}.banner-success{border-left-color:var(--success-fg)}.banner-warning{border-left-color:var(--warning-fg)}.banner-danger{border-left-color:var(--danger-fg)}.banner-info{border-left-color:var(--info-fg)}.banner-unknown{border-left-color:var(--unknown-fg)}.banner-neutral{border-left-color:var(--neutral-fg)}.banner{flex-wrap:wrap}.banner>div:first-child{flex:420px;min-width:0}.banner .actions{gap:var(--sp-2);padding-top:var(--sp-2);border-top:1px solid var(--line);flex-wrap:wrap;flex:100%;justify-content:flex-start;display:flex}.action-note{font-size:var(--fs-xs);color:var(--text-muted);max-width:240px}.timeline{margin:0;padding:0;list-style:none}.timeline li{gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-2) var(--sp-4);border-left:2px solid var(--line);margin-left:var(--sp-2);grid-template-columns:132px 1fr;display:grid;position:relative}.timeline li:before{content:"";background:var(--surface);border:2px solid var(--line-strong);border-radius:50%;width:10px;height:10px;position:absolute;top:14px;left:-6px}.timeline li.t-success:before{border-color:var(--success-fg);background:var(--success-fg)}.timeline li.t-danger:before{border-color:var(--danger-fg);background:var(--danger-fg)}.timeline li.t-unknown:before{border-color:var(--unknown-fg);background:var(--unknown-bg)}.timeline li.t-info:before{border-color:var(--info-fg)}.timeline li.t-warning:before{border-color:var(--warning-fg)}.timeline time{font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;padding-top:2px}.timeline .ev{font-weight:500}.timeline .meta{font-size:var(--fs-xs);color:var(--text-muted)}.state{padding:var(--sp-8) var(--sp-4);text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--line-strong);border-radius:var(--r-md)}.state strong{color:var(--text);font-size:var(--fs-md);margin-bottom:var(--sp-1);display:block}.skel{height:var(--row-h);border-bottom:1px solid var(--line);background:linear-gradient(90deg, var(--bg-subtle), var(--surface), var(--bg-subtle));background-size:200% 100%;animation:1.4s linear infinite skel;display:block}@keyframes skel{to{background-position:-200% 0}}@media (max-width:1023px){.shell{grid-template-columns:calc(var(--sidebar-w-collapsed) + var(--sp-3)) 1fr}.sidebar .brand{padding:0 var(--sp-3) var(--sp-4)}.sidebar .brand .logo-wide{display:none}.sidebar .brand .logo-mark{display:block}.nav a{justify-content:center;padding:0}.nav a .label{display:none}.page{padding:var(--sp-3) var(--sp-4) var(--sp-6)}.topbar{padding:0 var(--sp-4);margin:var(--sp-2) var(--sp-3) 0}}@media (max-width:639px){.shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.sidebar{height:auto;margin:var(--sp-2);border-radius:var(--r-xl);padding:var(--sp-2) var(--sp-3);scrollbar-width:none;flex-direction:row;align-items:center;position:static;overflow-x:auto}.sidebar::-webkit-scrollbar{display:none}.sidebar .brand{padding:0 var(--sp-3) 0 0}.sidebar .spacer{display:none}.nav{flex-direction:row;padding:0}.nav a{width:44px;height:44px}.timeline li{grid-template-columns:1fr;gap:0}.kv{grid-template-columns:1fr}.kv dt{margin-top:var(--sp-2)}.btn,.input,.select{min-height:44px}.filters .field{width:calc(50% - 4px)}.filters .field.grow{flex:100%;width:100%}.filters .field[style]{width:calc(50% - 4px)!important}.topbar{gap:var(--sp-2);padding:0 var(--sp-3)}.topbar .search{flex:120px;min-width:0}.topbar .who{display:none}.nav a{width:40px}}
.fe-head{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-5);margin:var(--sp-3) var(--sp-3) 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex}.fe-logo{color:var(--brand-jade);display:inline-block}.fe-nav{gap:var(--sp-1);flex-wrap:wrap;align-items:center;display:flex}.fe-nav a,.linkbtn{min-height:44px;padding:0 var(--sp-3);color:var(--text);font-size:var(--fs-md);border-radius:var(--r-pill);cursor:pointer;background:0 0;border:0;align-items:center;font-family:inherit;text-decoration:none;display:inline-flex}.fe-main{max-width:640px;padding:var(--sp-4);gap:var(--sp-4);flex-direction:column;margin:0 auto;display:flex}.fe-foot{max-width:640px;padding:var(--sp-4) var(--sp-4) var(--sp-8);color:var(--text-muted);font-size:var(--fs-xs);margin:0 auto}.fe h1{font-family:var(--font-serif);font-size:var(--fs-2xl);color:var(--text);margin:0}.fe .btn{font-size:var(--fs-md);min-height:44px}.fe .btn-block{justify-content:center;width:100%}.fe .input,.fe .select,.fe .textarea{font-size:var(--fs-md)}.fe .field>label{font-size:var(--fs-sm)}.fe form.stack{gap:var(--sp-3);flex-direction:column;display:flex}.rowlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin:0;padding:0;list-style:none}.rowlist li{border-bottom:1px solid var(--line)}.rowlist li:last-child{border-bottom:0}.rowlist a{justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-2) var(--sp-4);color:var(--text);text-decoration:none;display:flex}.rowlist .sub{color:var(--text-muted);font-size:var(--fs-sm)}.rowlist .price{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.group-title{margin:0 0 var(--sp-2);font-size:var(--fs-sm);color:var(--text-muted);font-weight:600}.pay-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--sp-5);gap:var(--sp-3);flex-direction:column;display:flex}.copyline{gap:var(--sp-2);align-items:center;display:flex}.copyline code{word-break:break-all;font-family:var(--font-mono);font-size:var(--fs-sm);background:var(--bg-subtle);padding:var(--sp-2);border-radius:var(--r-sm);flex:1}.codebox{font-family:var(--font-mono);font-size:var(--fs-lg);letter-spacing:.04em;background:var(--bg-subtle);padding:var(--sp-3);border-radius:var(--r-sm);word-break:break-all}.note{font-size:var(--fs-sm);color:var(--text-muted);margin:0}.check{gap:var(--sp-2);font-size:var(--fs-md);align-items:flex-start;display:flex}.check input{flex:none;width:22px;height:22px;margin-top:2px}.amount{font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;font-weight:600}
