:root{--bg: #f2f2f0;--fg: #1d2129;--muted: #5a606b;--line: #d6d6d2;--panel: #ffffff;--chrome: #1d2129;--paper: #f8f6ee;--band: #eef0e4;--ink: #1f2b22;--ink2: #4c5a4f;--gold: #857a3a;--gold-soft: #eef0e1;--leaf: #4f6e3c;--leaf-soft: #e1ead6;--field: #ffffff;--fline: #cdd3c2;--bad: #b0333b;--bad-soft: #fbeaea;--btn: #263529;--on-btn: #f8f6ee;--line-green: #06c755;--on-line: #ffffff;--shade: rgba(20, 26, 21, .55);--f-mincho: "Shippori Mincho B1", "Hiragino Mincho ProN", "Yu Mincho", serif;--f-gothic: "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", sans-serif;--f-latin: "Cormorant Garamond", Georgia, serif;--f-mono: ui-monospace, "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f-gothic);font-size:15px;line-height:1.75}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.frame{container-type:inline-size;position:relative;margin:0 auto;width:100%;max-width:1240px;min-height:100vh;border-left:1px solid var(--line);border-right:1px solid var(--line);background:var(--paper)}@media(max-width:1240px){.frame{border-left:0;border-right:0}}.noscript{padding:24px}.app{color:var(--ink);background:var(--paper);display:grid;grid-template-columns:216px minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100vh}.app-head{grid-column:1 / -1;display:flex;align-items:center;gap:14px;padding:14px 24px;border-bottom:1px solid var(--fline)}.brand{font-family:var(--f-latin);font-size:20px;letter-spacing:.32em;white-space:nowrap}.brand span{font-family:var(--f-gothic);font-size:12px;letter-spacing:.12em;color:var(--ink2);margin-left:6px}.host{margin-left:auto;font-family:var(--f-mono);font-size:12px;color:var(--ink2);overflow-wrap:anywhere}.status-pill{font-size:12px;padding:2px 8px;border:1px solid currentColor;white-space:nowrap}.status-pill.on{color:var(--leaf)}.status-pill.off{color:var(--bad);background:var(--bad-soft)}.nav{border-right:1px solid var(--fline);padding:14px 0;display:grid;align-content:start;gap:2px}.nav button{display:flex;align-items:center;gap:8px;text-align:left;border:0;border-left:3px solid transparent;background:none;color:var(--ink2);padding:9px 18px;min-height:44px;cursor:pointer;font-size:15px}.nav button:hover{color:var(--ink)}.nav button[aria-current=page]{color:var(--ink);font-weight:700;border-left-color:var(--gold);background:var(--gold-soft)}.nav .cnt{margin-left:auto;font-size:12px;min-width:22px;text-align:center;padding:0 5px;border:1px solid var(--bad);color:var(--bad);font-variant-numeric:tabular-nums}.nav hr{border:0;border-top:1px solid var(--fline);margin:10px 18px}.main{padding:26px 30px 48px;display:grid;gap:22px;align-content:start;min-width:0}.main>*{min-width:0}.h-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-end;justify-content:space-between}.h-title{margin:0;font-family:var(--f-mincho);font-size:26px;font-weight:700;letter-spacing:.06em;line-height:1.35}.h-sub{margin:2px 0 0;font-size:13px;color:var(--ink2)}.sec-t{margin:0;font-family:var(--f-mincho);font-size:18px;font-weight:700;letter-spacing:.04em;display:flex;align-items:baseline;gap:10px}.sec-t small{font-family:var(--f-gothic);font-size:12px;color:var(--ink2);font-weight:400}.rule{height:1px;background:var(--gold);border:0;margin:0}p{margin:0}.muted{color:var(--ink2);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--gold);border-bottom:1px solid var(--fline)}.kpi{padding:14px 18px 16px;display:grid;gap:2px;border-left:1px solid var(--fline)}.kpi:first-child{border-left:0}.kpi .k{font-size:13px;color:var(--ink2)}.kpi .v{font-family:var(--f-mincho);font-size:42px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums}.kpi .v small{font-size:15px;margin-left:4px;font-weight:500}.kpi .d{font-size:12px;color:var(--ink2)}.kpi.warn .v{color:var(--gold)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.box{border:1px solid var(--fline);background:var(--field);padding:16px 18px;display:grid;gap:12px;align-content:start;min-width:0}.bars-side{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:5em minmax(0,1fr) 3.5em;gap:10px;align-items:center;font-size:14px}.bar-row .track{height:12px;background:var(--band);position:relative}.bar-row .fill{position:absolute;inset:0 auto 0 0;background:var(--ink2)}.bar-row .fill.b{background:var(--gold)}.bar-row .n{text-align:right;font-variant-numeric:tabular-nums}dl.meal{margin:0;display:grid;grid-template-columns:1fr auto;gap:6px 16px;font-size:14px}dl.meal dt{color:var(--ink2)}dl.meal dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.alerts{display:grid;gap:10px}.alert{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;border:1px solid var(--fline);border-left:4px solid var(--gold);padding:10px 14px;background:var(--field)}.alert.bad{border-left-color:var(--bad)}.alert b{font-weight:700}.alert .btn{margin-left:auto}.chip{display:inline-block;font-size:12px;line-height:1.6;padding:0 7px;border:1px solid currentColor;white-space:nowrap}.chip.yes{color:var(--leaf);background:var(--leaf-soft)}.chip.no{color:var(--ink2)}.chip.wait{color:var(--gold);background:var(--gold-soft)}.chip.bad{color:var(--bad);background:var(--bad-soft)}.chip.line{color:var(--on-line);background:var(--line-green);border-color:var(--line-green)}.chip.plain{color:var(--ink2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 16px;border:1px solid var(--btn);background:var(--btn);color:var(--on-btn);font-weight:700;letter-spacing:.06em;cursor:pointer;border-radius:0;white-space:nowrap}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}.btn.danger{background:transparent;color:var(--bad);border-color:var(--bad)}.btn.sm{min-height:36px;padding:4px 12px;font-size:13px}.btn:disabled{background:var(--band);color:var(--ink2);border-color:var(--fline);cursor:not-allowed}.linkish{border:0;background:none;color:var(--ink);text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:6px 2px;min-height:36px}.btn:focus-visible,.linkish:focus-visible,.nav button:focus-visible,.sw:focus-visible,.row-btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.field{display:grid;gap:6px}.field label,.field .flabel{font-size:14px;font-weight:700}input[type=text],input[type=password],input[type=date],input[type=search],select,textarea{width:100%;min-height:46px;border:1px solid var(--fline);background:var(--field);padding:8px 12px;border-radius:0;font-size:16px}textarea{min-height:120px;resize:vertical}.totp{font-family:var(--f-mono);letter-spacing:.5em;font-size:22px;text-align:center}.err{color:var(--bad);font-size:13px;font-weight:700}.filters{display:grid;grid-template-columns:minmax(0,2fr) repeat(4,minmax(0,1fr));gap:10px;align-items:end}.filters .field label{font-size:12px;font-weight:500;color:var(--ink2)}.tbl{overflow-x:auto;border-top:1px solid var(--gold)}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid var(--fline)}th{font-weight:500;font-size:12px;color:var(--ink2);white-space:nowrap}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}td .kana{display:block;font-size:12px;color:var(--ink2)}td .linkish{padding:0;min-height:0}.row-btn{border:0;background:none;padding:0;text-align:left;cursor:pointer;font-weight:700;color:var(--ink);text-decoration:underline;text-decoration-color:var(--fline);text-underline-offset:4px;overflow-wrap:anywhere}.cards{display:none}.card{border:1px solid var(--fline);background:var(--field);padding:12px 14px;display:grid;gap:6px}.card .top-line{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 16px;align-items:end}td.nw,td.mono{white-space:nowrap}.inv-main{display:grid;gap:14px;min-width:0}td.memo{max-width:22em;font-size:13px;overflow-wrap:anywhere}td.acts-cell{white-space:nowrap}td.acts-cell>*{margin-right:10px}.tags-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tagbtn{border:1px solid var(--fline);background:var(--field);padding:3px 10px;font-size:13px;cursor:pointer;min-height:32px}.tagbtn[aria-pressed=true]{border-color:var(--ink);background:var(--gold-soft);font-weight:700}.tagbtn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}details summary{min-height:36px;display:flex;align-items:center}.help{border-left:3px solid var(--gold);background:var(--gold-soft);padding:10px 14px;font-size:13px;color:var(--ink)}.acc-row{cursor:pointer}.acc-detail td{background:var(--band);font-size:13px}.acc-detail ol,.card ol{margin:4px 0 0;padding-left:1.4em}.mono{font-family:var(--f-mono);font-size:12px;overflow-wrap:anywhere}.tpl-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}.inserts{display:flex;flex-wrap:wrap;gap:6px}.preview{border:1px solid var(--fline);background:var(--field);padding:14px 16px;white-space:pre-line;font-size:14px;overflow-wrap:anywhere;min-height:160px}.preview.line{background:var(--leaf-soft);border-color:var(--leaf)}.counter{font-size:12px;color:var(--ink2);text-align:right}.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.ph-tile{display:grid;gap:4px}.ph-img{aspect-ratio:1 / 1;background:linear-gradient(135deg,var(--leaf-soft),var(--band));border:1px solid var(--fline);display:grid;place-items:end start;padding:6px}.ph-img span{font-family:var(--f-mono);font-size:12px;background:var(--paper);padding:0 6px}.ph-acts{display:flex;gap:8px;justify-content:space-between}.ph-acts .linkish{min-height:32px;padding:2px 4px}.ph-acts .linkish:disabled{color:var(--fline);text-decoration:none;cursor:default}.ph-add{aspect-ratio:1 / 1;border:1px dashed var(--ink2);background:transparent;color:var(--ink);cursor:pointer;font-weight:700}.ph-add:focus-visible{outline:3px solid var(--gold);outline-offset:2px}dl.kv{margin:0;display:grid;grid-template-columns:9em minmax(0,1fr);border-top:1px solid var(--gold)}dl.kv dt,dl.kv dd{margin:0;padding:10px 6px;border-bottom:1px solid var(--fline)}dl.kv dt{font-size:13px;color:var(--ink2)}dl.kv dd{overflow-wrap:anywhere;white-space:pre-line}.danger-zone{border:1px solid var(--bad);padding:14px 16px;display:grid;gap:10px}.sw-row{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--fline);padding:14px 0}.sw{display:inline-flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;padding:6px 0;min-height:44px}.sw .track{width:52px;height:26px;border:2px solid var(--ink2);position:relative;background:var(--field)}.sw .knob{position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--ink2);transition:left .15s ease}.sw[aria-checked=true] .track{border-color:var(--leaf);background:var(--leaf-soft)}.sw[aria-checked=true] .knob{left:28px;background:var(--leaf)}.sw.stop[aria-checked=true] .track{border-color:var(--bad);background:var(--bad-soft)}.sw.stop[aria-checked=true] .knob{background:var(--bad)}.sw .st{font-weight:700;min-width:5em;text-align:left}.skel{background:linear-gradient(90deg,var(--band),var(--gold-soft),var(--band));background-size:200% 100%;animation:sh 1.4s linear infinite;height:14px}@keyframes sh{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skel{animation:none}}.empty{border:1px dashed var(--fline);padding:28px 18px;text-align:center;color:var(--ink2);display:grid;gap:8px;justify-items:center}.error-banner{border:1px solid var(--bad);background:var(--bad-soft);color:var(--ink);padding:12px 16px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.error-banner b{color:var(--bad)}.modal-back{position:fixed;inset:0;background:var(--shade);display:grid;place-items:start center;padding:80px 16px 16px;z-index:50;overflow-y:auto}.modal{width:min(440px,100%);background:var(--paper);border-top:3px solid var(--gold);padding:22px 22px 18px;display:grid;gap:14px;box-shadow:0 10px 30px #00000040}.modal h2{margin:0;font-family:var(--f-mincho);font-size:20px}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%);background:var(--btn);color:var(--on-btn);padding:10px 18px;font-size:14px;z-index:60;max-width:calc(100% - 32px)}.login{grid-column:1 / -1;display:grid;place-items:start center;padding:64px 16px}.login-box{width:min(420px,100%);display:grid;gap:16px}.login-box .mark{font-family:var(--f-latin);font-size:30px;letter-spacing:.4em;text-align:center}.login-box .note{font-size:13px;color:var(--ink2);text-align:center}@container (max-width: 760px){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto 1fr;min-height:100vh}.app-head{padding:12px 16px;flex-wrap:wrap}.host{display:none}.nav{border-right:0;border-bottom:1px solid var(--fline);display:flex;overflow-x:auto;padding:0 8px;gap:0}.nav button{border-left:0;border-bottom:3px solid transparent;padding:10px 12px;white-space:nowrap;font-size:14px}.nav button[aria-current=page]{border-bottom-color:var(--gold)}.nav hr{display:none}.main{padding:18px 16px 40px;gap:18px}.h-title{font-size:22px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi:nth-child(3){border-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--fline)}.kpi .v{font-size:34px}.grid2{grid-template-columns:minmax(0,1fr)}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters .field:first-child{grid-column:1 / -1}.tbl.to-cards{display:none}.cards{display:grid;gap:10px}dl.kv,.tpl-grid{grid-template-columns:minmax(0,1fr)}dl.kv dt{border-bottom:0;padding-bottom:0}}.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);background:var(--panel);padding:3px;gap:2px}.seg button{border:0;background:transparent;padding:7px 12px;cursor:pointer;min-height:38px;font-size:14px}.seg button[aria-pressed=true]{background:var(--chrome);color:var(--panel);font-weight:700}.seg button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.status-group{display:contents}.stack{display:grid;gap:22px;align-content:start;min-width:0}.stack>*{min-width:0}.stack.tight{gap:12px}.gap-top{height:22px}.pad-top{padding-top:6px}.pointer{cursor:pointer}.danger-text{color:var(--bad)}.h-row.center{align-items:center}.tbl.flat{border-top:0}.check-row{display:inline-flex;gap:8px;align-items:center;min-height:36px;font-size:14px}.check-row input[type=checkbox],.big-check{width:20px;height:20px;min-height:0}.plain-list{margin:4px 0 0;padding-left:1.4em}.sw-label{min-width:12em;max-width:34em}.sw-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.sw-controls input[type=date],.sw-row>input[type=date]{width:auto}.sw-row.first{padding-top:0}.btn.sm[aria-pressed=false]{background:transparent;color:var(--ink);border-color:var(--ink)}.companion-row{padding:12px 14px}.ph-add-wrap{display:grid}.ph-add-wrap .ph-add{width:100%}.help.window-closed{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center}.dialog-body{display:grid;gap:14px}.dialog-body p{white-space:pre-line;overflow-wrap:anywhere}.skel.w60{width:60%}.skel.tall{height:36px;margin-top:8px}.skel.title{width:180px;height:26px}.skel.row{margin-top:6px}.loading{display:grid;gap:14px}.btn[aria-pressed=true]{background:var(--btn);color:var(--on-btn)}.fill,.track{display:block}.status-pill{white-space:nowrap}.code-line{font-family:var(--f-mono);font-size:12px}@media(max-width:720px){.main{padding:18px 16px 40px}}.companion-row .acts select{width:auto;flex:1 1 12em}
