:root{color-scheme:light;--bg:#f3f6fb;--card:#fff;--text:#19283c;--muted:#7d8a9c;--line:#e6ecf3;--blue:#3978ed;--soft:#eaf1ff;--green:#278c66;--danger:#cd4b59;--radius:22px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8bb4ff;outline-offset:3px}.shell{max-width:1160px;margin:auto;padding:0 34px}.topbar{height:98px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;font-size:26px;font-weight:750;letter-spacing:-1px}.brand-icon{width:46px;height:46px;display:grid;place-items:center;background:var(--blue);color:white;border-radius:15px;box-shadow:0 5px 14px #3978ed26}.brand-sub{display:block;font-size:11px;font-weight:500;letter-spacing:1px;color:var(--muted);line-height:1}.header-right{display:flex;align-items:center;gap:16px}.version{font-size:11px;letter-spacing:.5px;color:var(--muted)}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:#e0e9fc;color:var(--blue);font-size:12px;font-weight:700}.icon-button{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;background:var(--card);color:var(--muted);font-size:22px}.workspace{display:grid;grid-template-columns:185px minmax(0,1fr);gap:38px;padding-top:34px;min-height:calc(100vh - 154px)}nav{display:flex;flex-direction:column;gap:5px;align-self:start;position:sticky;top:24px}.nav-label{font-size:10px;color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;padding:9px 14px}.nav-item{display:flex;gap:11px;align-items:center;padding:12px 14px;color:var(--muted);border-radius:13px;font-size:13px;font-weight:550;white-space:nowrap}.nav-item.active{background:var(--soft);color:var(--blue)}.nav-icon{font-size:17px;width:20px;text-align:center}.nav-item:hover{color:var(--blue)}main{min-width:0;padding-bottom:25px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:2px 0 23px}.eyebrow{text-transform:uppercase;letter-spacing:1.5px;font-size:10px;color:var(--muted);font-weight:650}h1{font-size:28px;line-height:1.25;letter-spacing:-1px;font-weight:700;margin:5px 0 7px}h2{font-size:18px;letter-spacing:-.4px;margin:0 0 9px}h3{font-size:15px;margin:0 0 6px}p{margin:0 0 12px}.subtitle,.hint{color:var(--muted);font-size:13px}.hero{background:linear-gradient(115deg,#e2ebff,#edf3ff 67%,#e0ecff);border:1px solid #d9e5fe;padding:29px 30px;border-radius:var(--radius);position:relative;overflow:hidden;min-height:170px;margin-bottom:22px;color:#1c365e}.hero-copy{position:relative;z-index:1;max-width:74%}.hero h2{font-size:24px;line-height:1.2;margin:10px 0}.hero .hint{color:#6a80a4}.hero-decoration{position:absolute;right:15px;bottom:-10px;font-size:128px;color:#8eaff755;line-height:1;transform:rotate(-13deg);pointer-events:none}.hero-decoration:after{content:'✦';position:absolute;font-size:40px;right:85px;top:-30px;color:#92b0eb77}.status{display:inline-flex;align-items:center;gap:6px;background:#eaf7f0;border-radius:20px;color:var(--green);font-size:11px;padding:5px 10px;white-space:nowrap;font-weight:600}.status:before{content:'';width:5px;height:5px;background:currentColor;border-radius:50%}.status.off{background:var(--bg);color:var(--muted)}.status.warn{background:#fff4e3;color:#b38427}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}.metric{background:var(--card);border:1px solid var(--line);padding:21px;border-radius:18px}.metric-label{font-size:11px;color:var(--muted)}.metric-number{font-size:28px;font-weight:650;letter-spacing:-1px;margin:8px 0 2px}.metric-foot{font-size:10px;color:var(--muted)}.section-title{display:flex;align-items:center;justify-content:space-between;margin:24px 0 13px}.section-title h2{font-size:16px;margin:0}.section-title span{font-size:11px;color:var(--muted)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.card-link{transition:transform .15s,border-color .15s;display:block}.card-link:hover{transform:translateY(-2px);border-color:#bed1f5}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.tile-icon{width:42px;height:42px;border-radius:13px;background:var(--soft);display:grid;place-items:center;font-size:21px}.tile-icon.pink{background:#fff0f2}.tile-icon.mint{background:#eaf7f2}.tile-icon.amber{background:#fff5e4}.card .hint{margin-bottom:0;line-height:1.6}.arrow{color:var(--muted);font-size:20px}.card-bottom{border-top:1px solid var(--line);margin-top:17px;padding-top:12px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.form-card{margin-bottom:18px}.form-card h2{margin-bottom:18px}label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.field{margin-bottom:20px}.field:last-child{margin-bottom:0}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--text);border-radius:12px;padding:12px 14px;font-size:14px;min-height:46px}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none}textarea{resize:vertical;min-height:104px}input[type=file]{font-size:12px}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--blue);margin:0}.checkbox{display:flex;align-items:center;gap:10px}.field .hint{margin-top:6px;font-size:11px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:21px}.button{border:0;border-radius:12px;padding:12px 18px;font-size:13px;font-weight:600;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.button.primary{background:var(--blue);color:white;box-shadow:0 4px 9px #3978ed20}.button.secondary{background:var(--soft);color:var(--blue)}.button.danger{background:#fff0f2;color:var(--danger)}.button.small{padding:8px 12px;min-height:35px;font-size:11px}.notice{border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:14px 17px;color:var(--blue);font-size:12px;line-height:1.6;margin-bottom:18px}.notice.warning{background:#fff7e9;border-color:#f4e8d3;color:#9a7331}.notice.error{background:#fff0f2;color:var(--danger)}.empty{text-align:center;padding:45px 20px;color:var(--muted)}.empty-symbol{font-size:36px;display:block;margin-bottom:13px;color:var(--blue)}.loading{display:flex;justify-content:center;align-items:center;gap:12px;min-height:260px;color:var(--muted);font-size:13px}.spinner{width:19px;height:19px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.list-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:none}.list-row .hint{font-size:11px}.list-title{font-size:13px;font-weight:600}.list-detail{min-width:0;overflow-wrap:anywhere}.list-end{text-align:right;flex-shrink:0;font-size:12px}.list-end .status{font-size:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{color:var(--muted);text-align:left;font-size:10px;font-weight:500;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid var(--line)}td.number{text-align:right;font-variant-numeric:tabular-nums}tr:last-child td{border-bottom:none}.profit{color:var(--green);font-weight:650}.gift-preview{display:flex;gap:13px;align-items:center;padding:13px 15px;background:var(--soft);border-radius:12px;font-size:12px;margin-top:10px}.gift-preview .gift-emoji{font-size:29px}.gift-preview strong{display:block}.gift-preview .hint{font-size:11px;margin:0}.filter{display:flex;gap:10px;align-items:center;margin-bottom:20px}.filter input{flex:1}.segmented{display:flex;background:var(--bg);padding:4px;border-radius:11px;margin-bottom:15px}.segmented button{flex:1;border:0;border-radius:8px;padding:9px;color:var(--muted);background:transparent;font-size:12px}.segmented button.active{background:var(--card);color:var(--blue);box-shadow:0 2px 6px #00000009}.pager{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:12px;color:var(--muted)}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:14px 22px;border-radius:15px;background:#223550;color:white;box-shadow:0 8px 30px #15294125;font-size:13px;z-index:10}.toast.error{background:#a53749}.auth-gate{max-width:390px;margin:70px auto;text-align:center}.auth-gate .tile-icon{margin:0 auto 20px;width:65px;height:65px;font-size:29px}.auth-gate h1{font-size:25px}.auth-gate p{font-size:13px;color:var(--muted)}footer{height:56px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);font-size:10px}dialog{border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--text);padding:28px;max-width:400px;width:calc(100% - 32px)}dialog::backdrop{background:#172b4655;backdrop-filter:blur(3px)}dialog h2{margin-top:8px}dialog p{font-size:13px;color:var(--muted);white-space:pre-line}.pre-line{white-space:pre-line}.error-detail{max-width:400px;overflow-wrap:anywhere}.hidden,[hidden]{display:none!important}
@media(max-width:760px){.shell{padding:0 18px}.topbar{height:78px}.brand{font-size:23px}.brand-icon{width:39px;height:39px;border-radius:13px}.header-right{gap:10px}.workspace{display:block;padding-top:16px;min-height:calc(100vh - 135px)}nav{position:static;flex-direction:row;overflow:auto;margin:0 -18px 22px;padding:0 18px 7px;gap:6px;scrollbar-width:none}nav::-webkit-scrollbar{display:none}.nav-label{display:none}.nav-item{padding:10px 13px;font-size:12px;background:var(--card);border:1px solid var(--line)}.nav-item.active{border-color:#cbdcfb}.nav-icon{width:16px;font-size:15px}.page-head{margin-bottom:19px}h1{font-size:26px}.hero{padding:23px;min-height:157px}.hero h2{font-size:22px}.hero-copy{max-width:85%}.hero-decoration{font-size:108px;right:-10px;bottom:-14px}.metrics{gap:8px;margin-bottom:22px}.metric{padding:15px 12px;border-radius:15px}.metric-number{font-size:24px}.metric-label{font-size:10px}.metric-foot{font-size:9px}.cards{gap:10px}.card{padding:19px;border-radius:18px}.card-top{margin-bottom:13px}.card .hint{font-size:11px}.card h3{font-size:13px}.card-bottom{font-size:10px}.form-row{gap:12px}.actions .button{flex:1}.toast{bottom:calc(20px + env(safe-area-inset-bottom))}.auth-gate{margin:45px auto}.version{font-size:10px}footer{padding-bottom:env(safe-area-inset-bottom);height:60px}.workspace{padding-bottom:env(safe-area-inset-bottom)}}
@media(max-width:370px){.cards{grid-template-columns:1fr}.form-row{grid-template-columns:1fr;gap:0}.hero-copy{max-width:100%}.metric-number{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
body.dark{color-scheme:dark;--bg:#17212e;--card:#202d3d;--text:#e6edf7;--muted:#96a6bb;--line:#2f3e52;--soft:#263a58;--blue:#77a7ff;--green:#69c59c}.dark .hero{background:linear-gradient(115deg,#273e63,#253851);border-color:#344e76;color:#e2ebfc}.dark .hero .hint{color:#a5b8d6}.dark .status{background:#263f38}.dark .status.warn,.dark .notice.warning{background:#403824;color:#e1bc74;border-color:#4c422b}.dark .button.primary{background:#4f8df4;color:white}.dark .button.danger,.dark .notice.error{background:#422b36;color:#ee91a0}.dark .tile-icon.pink{background:#422b36}.dark .tile-icon.mint{background:#263f38}.dark .tile-icon.amber{background:#403824}

:root {
  --bg: #f1f2f4;
  --card: #ffffff;
  --text: #111820;
  --muted: #515d6b;
  --line: #c2c9d1;
  --blue: #17202b;
  --soft: #e7ebef;
  --green: #12633d;
  --danger: #a42337;
  --radius: 6px;
}
.topbar { border-bottom: 2px solid var(--text); }
.brand-icon, .avatar, .icon-button, .nav-item, .metric, .card,
.tile-icon, input, select, textarea, .button, .notice, .gift-preview,
.segmented, .segmented button, .toast, dialog { border-radius: 6px; }
.brand-icon, .button.primary, .segmented button.active { box-shadow: none; }
.avatar { background: var(--text); color: var(--card); }
.nav-label, .eyebrow { color: var(--muted); font-size: 11px; }
.nav-item { color: var(--text); font-weight: 600; }
.nav-item.active { background: var(--text); color: var(--card); border-color: var(--text); }
.nav-item:hover { background: var(--soft); color: var(--text); }
.nav-item.active:hover { background: var(--text); color: var(--card); }
.hero, .dark .hero {
  background: #17202b;
  color: #ffffff;
  border: 1px solid #17202b;
  min-height: 0;
  padding: 25px 28px;
}
.hero-copy { max-width: 100%; }
.hero h2 { font-size: 23px; margin: 14px 0 9px; }
.hero .hint, .dark .hero .hint { color: #d9e0e8; font-size: 13px; }
.hero-decoration { display: none; }
.hero .status.off { color: #ffffff; background: #3d4857; }
.hero .status { color: #b4f0ce; background: #1b4a35; }
.metric { border-top: 3px solid var(--text); }
.metric-label, .metric-foot { font-size: 12px; }
.metric-number { font-weight: 750; }
.section-title { padding-bottom: 9px; border-bottom: 1px solid var(--line); }
.section-title h2 { font-weight: 700; }
.section-title span, .card-bottom, .card .hint, .list-row .hint, .field .hint { font-size: 12px; }
.card-link { transition: border-color .15s; }
.card-link:hover { transform: none; border-color: var(--text); }
.tile-icon, .tile-icon.pink, .tile-icon.mint, .tile-icon.amber,
.dark .tile-icon.pink, .dark .tile-icon.mint, .dark .tile-icon.amber {
  background: var(--soft); color: var(--text); border: 1px solid var(--line);
}
.arrow { color: var(--text); }
.status { border-radius: 4px; color: #12633d; background: #e3f2e9; font-weight: 700; }
.status.off { color: var(--muted); background: var(--soft); }
.status.warn { color: #75500d; background: #fff0cb; }
label { font-size: 13px; color: var(--text); }
input, select, textarea { background: var(--card); border-color: #8995a4; }
.button { font-weight: 700; border: 1px solid transparent; }
.button.primary { background: #17202b; color: #ffffff; }
.button.secondary { background: var(--card); color: var(--text); border-color: #8995a4; }
.button.danger { background: #fff0f2; color: #a42337; border-color: #d8919c; }
.notice { color: var(--text); background: var(--soft); border-color: var(--line); border-left: 3px solid var(--text); }
.notice.warning { color: #75500d; background: #fff0cb; border-color: #d3b16b; }
.notice.error { color: #a42337; background: #fff0f2; border-color: #d8919c; }
.gift-preview { background: var(--soft); border: 1px solid var(--line); }
.segmented { border: 1px solid var(--line); }
.segmented button.active { color: var(--text); border: 1px solid #8995a4; }
th { font-size: 12px; background: var(--soft); color: var(--text); font-weight: 650; }
td { font-size: 13px; }
.toast { background: #17202b; box-shadow: none; border: 1px solid #75808e; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #2365d3; outline-offset: 3px;
}
body.dark {
  --bg: #101318;
  --card: #1b222c;
  --text: #f5f7fa;
  --muted: #bbc6d3;
  --line: #596575;
  --blue: #f5f7fa;
  --soft: #2c3745;
  --green: #9ce2b9;
  --danger: #ffb1be;
}
.dark .hero { background: #080b10; border-color: #596575; }
.dark .brand-icon { background: #f5f7fa; color: #101318; }
.dark .button.primary { background: #f5f7fa; color: #101318; }
.dark .button.danger, .dark .notice.error { color: #ffb1be; background: #482430; border-color: #a35a6b; }
.dark .status { color: #b4f0ce; background: #1b4a35; }
.dark .status.off { color: var(--muted); background: var(--soft); }
.dark .status.warn, .dark .notice.warning { color: #ffe2a0; background: #443617; border-color: #ac8b48; }
@media(max-width:760px) {
  .hero { padding: 20px; }
  .hero-copy { max-width: 100%; }
  .hero h2 { font-size: 21px; }
  .metric { padding: 14px 10px; }
  .metric-label, .metric-foot { font-size: 11px; }
  .metric-number { font-size: 23px; }
  .card { border-radius: 6px; }
  .cards { gap: 12px; }
}
