:root{--bg:#f5f7fa;--panel:#fff;--ink:#1f2733;--muted:#6b7686;--line:#dfe3e9;--accent:#2f6f9f;--accent-soft:#eaf2f8;--accent-ink:#1d4f74;--ok:#3f7d58;--ok-soft:#eaf3ed;--warn:#a5762f;--warn-soft:#faf3e8;--danger:#b04a45;--danger-soft:#fbeeed;--neutral-soft:#f1f3f6;--radius:10px}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);margin:0;font-family:Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,system-ui,sans-serif;font-size:14px;line-height:1.65}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app{min-height:100vh;display:flex}.sidebar{color:#c9d4de;background:#20303d;flex-direction:column;flex:0 0 220px;width:220px;display:flex}.brand{border-bottom:1px solid #2c3f4f;padding:18px 20px}.brand strong{color:#fff;letter-spacing:.02em;font-size:15px;display:block}.brand span{color:#8fa3b3;font-size:11px}.nav{flex:1;padding:10px 0}.nav button{text-align:left;color:#c9d4de;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;width:100%;padding:10px 20px;font-size:13.5px;display:block}.nav button:hover{color:#fff;background:#27394a}.nav button.active{color:#fff;border-left-color:var(--accent);background:#27394a}.nav .group{color:#7b8e9e;letter-spacing:.08em;padding:14px 20px 6px;font-size:11px}.sidebar footer{color:#7b8e9e;border-top:1px solid #2c3f4f;padding:12px 20px;font-size:11px}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);z-index:20;align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.topbar h1{margin:0;font-size:17px;font-weight:600}.topbar .spacer{flex:1}.topbar .who{color:var(--muted);text-align:right;font-size:12px;line-height:1.4}.topbar .who b{color:var(--ink);font-size:13px;display:block}.content{width:100%;max-width:1500px;padding:22px 24px 60px}.page{display:none}.page.active{display:block}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:18px}.card>h2{border-bottom:1px solid var(--line);align-items:center;gap:10px;margin:0;padding:14px 18px;font-size:14.5px;font-weight:600;display:flex}.card>h2 .sub{color:var(--muted);font-size:12px;font-weight:400}.card .body{padding:16px 18px}.card .body.tight{padding:0}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px;display:grid}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.kpi .label{color:var(--muted);font-size:12px}.kpi .value{letter-spacing:-.02em;margin-top:2px;font-size:26px;font-weight:600}.kpi .value small{color:var(--muted);margin-left:3px;font-size:13px;font-weight:400}.kpi.alert{background:var(--danger-soft);border-color:#e6c4c1}.kpi.alert .value{color:var(--danger)}.kpi.warn{background:var(--warn-soft);border-color:#e8d6b4}.kpi.warn .value{color:var(--warn)}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:9px 12px}th{color:#4a5764;white-space:nowrap;background:#f7f9fb;font-size:12px;font-weight:600;position:sticky;top:0}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:hover{background:#fafbfc}tbody tr.clickable{cursor:pointer}.empty{text-align:center;color:var(--muted);padding:28px;font-size:13px}.badge{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11.5px;line-height:1.7;display:inline-block}.b-pending{background:var(--warn-soft);color:var(--warn)}.b-confirmed{background:var(--accent-soft);color:var(--accent-ink)}.b-rented{color:#5f6f3f;background:#eef0e8}.b-returned,.b-ok{background:var(--ok-soft);color:var(--ok)}.b-closed,.b-cancelled{background:var(--neutral-soft);color:var(--muted)}.b-danger{background:var(--danger-soft);color:var(--danger)}.b-available{background:var(--ok-soft);color:var(--ok)}.b-maintenance,.b-warn{background:var(--warn-soft);color:var(--warn)}.b-cleaning{background:var(--accent-soft);color:var(--accent-ink)}.b-suspended,.b-retired{background:var(--neutral-soft);color:var(--muted)}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;display:inline-flex}.btn:hover{background:#f4f7fa}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:#28618c}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.danger{color:var(--danger);background:#fff;border-color:#dcb6b3}.btn.danger:hover{background:var(--danger-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{padding:4px 10px;font-size:12px}.field{margin-bottom:14px}.field label{color:#4a5764;margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}.field label .req{color:var(--danger);margin-left:4px;font-size:11px;font-weight:400}.field label .opt{color:var(--muted);margin-left:4px;font-size:11px;font-weight:400}.field input[type=text],.field input[type=tel],.field input[type=number],.field input[type=date],.field input[type=datetime-local],.field select,.field textarea{background:#fff;border:1px solid #cdd4dc;border-radius:7px;width:100%;padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.field .hint{color:var(--muted);margin-top:3px;font-size:11.5px}.field .err{color:var(--danger);margin-top:3px;font-size:11.5px;display:none}.field.invalid input,.field.invalid select{border-color:var(--danger);background:#fffbfb}.field.invalid .err{display:block}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:0 16px;display:grid}.checks{flex-wrap:wrap;gap:8px;display:flex}.check{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;flex:220px;align-items:flex-start;gap:8px;padding:9px 12px;display:flex}.check:hover{background:#f7f9fb}.check input{margin-top:3px}.check .n{font-size:13px;font-weight:600;display:block}.check .p{color:var(--muted);font-size:11.5px;line-height:1.5;display:block}.check>span{min-width:0}.split{grid-template-columns:1fr 340px;align-items:start;gap:18px;display:grid}@media (max-width:1100px){.split{grid-template-columns:1fr}}.quote{position:sticky;top:70px}.quote .row{justify-content:space-between;gap:10px;padding:6px 0;font-size:13px;display:flex}.quote .row.total{border-top:2px solid var(--ink);margin-top:8px;padding-top:10px;font-size:16px;font-weight:600}.quote .row .lbl{color:#4a5764}.quote .row.discount .amt{color:var(--ok)}.quote .meta{color:var(--muted);background:var(--neutral-soft);border-radius:7px;margin-top:10px;padding:8px 10px;font-size:11.5px}.quote .inquiry{background:var(--warn-soft);color:var(--warn);border-radius:7px;padding:10px 12px;font-size:12.5px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:0;display:flex}.toolbar .field{min-width:150px;margin-bottom:0}.toolbar .grow{flex:1;min-width:180px}.board{overflow-x:auto}.board table{min-width:900px;font-size:11.5px}.board th{text-align:center;padding:6px 4px;font-size:11px}.board th.veh,.board td.veh{text-align:left;white-space:nowrap;z-index:2;border-right:1px solid var(--line);background:#fff;min-width:170px;position:sticky;left:0}.board th.veh{z-index:3;background:#f7f9fb}.board td.day{text-align:center;border-left:1px solid #eef1f4;height:30px;padding:0}.board td.day.wk{background:#fbfcfd}.board .bar{color:#fff;white-space:nowrap;border-radius:4px;height:22px;margin:4px 1px;padding:0 5px;font-size:10.5px;line-height:22px;overflow:hidden}.bar-CONFIRMED{background:#5b8fb5}.bar-RENTED{background:#7a8f52}.bar-PENDING{background:#c39a53}.bar-BLOCK{background:#9aa5b1}.modal-bg{z-index:100;background:#141e2873;justify-content:center;align-items:flex-start;padding:40px 20px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-bg.open{display:flex}.modal{background:#fff;border-radius:12px;width:100%;max-width:640px;box-shadow:0 20px 50px #00000040}.modal.wide{max-width:820px}.modal .mbody{max-height:70vh;overflow-y:auto}.section-h{color:#4a5764;border-bottom:1px solid var(--line);margin:18px 0 10px;padding-bottom:6px;font-size:12.5px;font-weight:600}.section-h:first-child{margin-top:0}.modal h3{border-bottom:1px solid var(--line);margin:0;padding:16px 20px;font-size:15px}.modal .mbody{padding:18px 20px}.modal .mfoot{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}dl.kv{grid-template-columns:120px 1fr;gap:6px 14px;margin:0;font-size:13px;display:grid}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}.cert-bg{z-index:200;background:#eef1f4;display:none;position:fixed;inset:0;overflow-y:auto}.cert-bg.open{display:block}.cert-bar{border-bottom:1px solid var(--line);z-index:1;background:#fff;justify-content:flex-end;gap:10px;padding:12px 20px;display:flex;position:sticky;top:0}.cert-sheet{color:#222;background:#fff;max-width:760px;margin:24px auto 60px;padding:36px 44px;font-size:13px;line-height:1.8;box-shadow:0 4px 20px #0000001f}.cert-sheet h1{margin:0 0 4px;font-size:18px}.cert-sheet .cert-sub{color:var(--muted);margin-bottom:18px;font-size:12px}.cert-sheet dl.kv{grid-template-columns:140px 1fr}.cert-sheet .cert-section{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.cert-sheet table.cert-ext{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}.cert-sheet table.cert-ext th,.cert-sheet table.cert-ext td{border:1px solid var(--line);padding:5px 8px}.cert-sheet .cert-sign{justify-content:flex-end;margin-top:26px;display:flex}.cert-sheet .cert-sign div{text-align:center;border-top:1px solid #222;width:220px;padding-top:4px;font-size:12px}.toast{color:#fff;opacity:0;pointer-events:none;z-index:200;background:#20303d;border-radius:9px;max-width:380px;padding:12px 18px;font-size:13px;transition:all .25s;position:fixed;bottom:22px;right:22px;transform:translateY(10px);box-shadow:0 10px 30px #0000004d}.toast.show{opacity:1;transform:none}.toast.err{background:#8f3c37}.note{background:var(--accent-soft);color:#33495c;border-radius:8px;margin-bottom:16px;padding:11px 14px;font-size:12.5px}.note b{color:var(--ink)}.alert-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:9px 0;font-size:13px;display:flex}.alert-row:last-child{border-bottom:0}.alert-row .dot{border-radius:50%;flex:0 0 8px;width:8px;height:8px}.dot.red{background:var(--danger)}.dot.amber{background:var(--warn)}.alert-row .txt{flex:1}.alert-row .meta{color:var(--muted);font-size:12px}.alert-row.stack{grid-template-columns:8px minmax(0,1fr) auto;align-items:start;gap:3px 10px;display:grid}.alert-row.stack .dot{grid-area:1/1;margin-top:5px}.alert-row.stack .txt{grid-area:1/2/auto/span 2}.alert-row.stack .meta{grid-area:2/2}.alert-row.stack .go{grid-area:2/3;justify-self:end}.alert-row.act{cursor:pointer;border-radius:7px;margin:0 -10px;padding-left:10px;padding-right:10px}.alert-row.act:hover{background:var(--accent-soft)}.alert-row.act:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.alert-row.act .go{color:var(--accent-ink);white-space:nowrap;font-size:12px;font-weight:600}.kpi.act{cursor:pointer}.kpi.act:hover{border-color:var(--accent);background:var(--accent-soft)}.kpi.act:focus-visible{outline:2px solid var(--accent);outline-offset:1px}a.kpi{color:inherit;text-decoration:none;display:block}a.alert-row{color:inherit;text-decoration:none}a.bar{color:#fff;text-decoration:none;display:block}.board td.veh a{color:inherit;text-decoration:none}.board td.veh a:hover{text-decoration:underline}.damage{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.damage label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;display:flex}.damage label:hover{background:#f7f9fb}.fuel{flex-wrap:wrap;gap:6px;display:flex}.fuel label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:7px;padding:6px 12px;font-size:12.5px}.fuel input{display:none}.fuel input:checked+span{color:var(--accent-ink);font-weight:600}.fuel label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.scrollbox{max-height:520px;overflow-y:auto}.no-discount #f-discount,.no-cost .cost-block,.perm-off{display:none}.cols2{grid-template-columns:1fr 1fr;align-items:start;gap:0 18px;display:grid}@media (max-width:1100px){.cols2{grid-template-columns:1fr}}.chart{position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart .gridline{stroke:var(--line);stroke-width:1px}.chart .axis-lbl{fill:var(--muted);font-size:11px}.chart .val-lbl{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:11px}.chart .hitbox{fill:#0000;cursor:pointer}.chart .hitbox:hover~.hl,.chart .colgroup:hover .hl{opacity:1}.chart .hl{fill:#000;opacity:0;pointer-events:none}.legend{color:var(--muted);align-items:center;gap:16px;margin-bottom:10px;font-size:12px;display:flex}.legend .item{align-items:center;gap:6px;display:flex}.legend .swatch{border-radius:3px;flex:0 0 11px;width:11px;height:11px}.tip{pointer-events:none;color:#fff;opacity:0;z-index:50;white-space:nowrap;background:#20303d;border-radius:8px;align-items:center;gap:14px;padding:7px 12px;font-size:12px;line-height:1.5;transition:opacity .12s,transform .12s;display:flex;position:absolute;transform:translateY(3px);box-shadow:0 6px 18px #00000038}.tip.show{opacity:1;transform:none}.tip .t-head{font-weight:600}.tip .t-item{color:#c9d4de;align-items:center;gap:5px;display:inline-flex}.tip .t-item i{border-radius:2px;width:8px;height:8px;display:inline-block}.tip .t-item .v{color:#fff;font-variant-numeric:tabular-nums}.tip .t-total{color:#fff;border-left:1px solid #3a4c5c;padding-left:14px;font-weight:600}.tip .t-sub{color:#8fa3b3;font-size:11px}.recovery{justify-content:flex-end;align-items:center;gap:8px;display:flex}.recovery .track{background:var(--neutral-soft);border-radius:3px;flex:0 0 70px;width:70px;height:6px;display:block;overflow:hidden}.recovery .fill{border-radius:3px;height:100%;display:block}.seg-btns{border:1px solid var(--line);background:#fff;border-radius:8px;display:inline-flex;overflow:hidden}.seg-btns button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:7px 12px;font-size:12.5px}.seg-btns button+button{border-left:1px solid var(--line)}.seg-btns button.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.seg-btns a{color:var(--muted);padding:7px 12px;font-size:12.5px;text-decoration:none}.seg-btns a+a{border-left:1px solid var(--line)}.seg-btns a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable:after{content:"";opacity:.35;margin-left:5px}.sortable.asc:after{content:"▲"}.sortable.desc:after{content:"▼"}.mono{font-variant-numeric:tabular-nums}.practice{z-index:50;color:#6b4a12;background:repeating-linear-gradient(-45deg,#fdf3dc,#fdf3dc 10px,#faebc8 10px 20px);border-bottom:1px solid #e3c98d;flex-wrap:wrap;align-items:center;gap:10px;padding:7px 16px;font-size:12.5px;line-height:1.5;display:flex;position:sticky;top:0}.practice b:first-child{letter-spacing:.08em;color:#fdf3dc;background:#6b4a12;border-radius:3px;padding:1px 8px;font-size:11.5px}.practice span{color:#8a6a2c}@media print{.practice,.topbar,.sidebar,.btn{display:none}.app,.main,.content{margin:0;padding:0;display:block}.card{break-inside:avoid;box-shadow:none;border-color:#999}}.note.danger{background:var(--danger-soft);color:#6b2b26}.note.danger b{color:var(--danger)}.note.ok{background:var(--ok-soft);color:#2c5a3f}.note.warn{background:var(--warn-soft);color:#6e4e1d}.delete-panel{background:var(--danger-soft);border-radius:var(--radius);border:1px solid #dcb6b3;margin-top:18px;padding:14px 16px}.delete-panel>h3{color:var(--danger);margin:0 0 10px;font-size:14px;font-weight:600}.del-err{color:var(--danger);background:#fff;border:1px solid #dcb6b3;border-radius:7px;margin:0 0 10px;padding:8px 10px;font-size:13px}.del-blocked{margin:0 0 8px;font-size:13.5px}.del-warn{color:var(--danger);margin:0 0 10px;font-size:13.5px}.del-list{margin:0 0 10px 18px;padding:0;font-size:13.5px}.del-list li{margin:2px 0}.del-note{color:var(--muted);margin:0 0 12px;font-size:12.5px}.del-label{color:var(--muted);margin-bottom:12px;font-size:12.5px;display:block}.del-label input{border:1px solid var(--line);background:#fff;border-radius:7px;width:100%;margin-top:5px;padding:7px 10px;font-size:14px;display:block}.del-actions{justify-content:flex-end;gap:8px;display:flex}.closing-warn{background:var(--danger-soft);border:1px solid #dcb6b3;border-radius:7px;margin-bottom:14px;padding:11px 14px;font-size:13px}.closing-warn ul{margin:8px 0 8px 18px;padding:0}.closing-warn li{margin:3px 0}.closing-warn p{margin:0}.closing-done{background:var(--ok-soft);border:1px solid #bcd6c6;border-radius:7px;margin:0 0 12px;padding:9px 12px;font-size:13px}.closing-row{flex-wrap:wrap;gap:12px;margin-bottom:14px;display:flex}.closing-row label{color:var(--muted);font-size:12.5px;display:block}.closing-row label.grow{flex:1;min-width:220px}.closing-row input{border:1px solid var(--line);background:#fff;border-radius:7px;width:100%;margin-top:5px;padding:7px 10px;font-size:14px;display:block}.closing-sum{border:1px solid var(--line);background:#fbfbfa;border-radius:7px;margin-bottom:14px;padding:11px 14px;font-size:13px}.closing-sum-wait{color:var(--muted)}.closing-sum-head{margin-bottom:7px;font-size:14px}.closing-sum-nums{flex-wrap:wrap;gap:22px;font-size:13.5px;display:flex}.closing-sum-nums b{margin-left:5px;font-size:16px}.closing-sum-note{color:var(--muted);margin-top:7px;font-size:12.5px}.closing-zero{color:var(--danger)}.closing-sum-ng{background:var(--danger-soft);border:1px solid #dcb6b3;border-radius:6px;margin-top:9px;padding:8px 11px;font-size:13px;display:block}.linkish{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.linkish:hover{color:var(--accent-ink)}.totp-secret{background:var(--neutral-soft);border:1px solid var(--line);border-radius:7px;align-items:center;gap:12px;margin-bottom:8px;padding:12px 14px;display:flex}.totp-secret .lbl{color:var(--muted);flex:none;font-size:12px}.totp-secret code{letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px}.totp-qr{justify-content:center;margin:0 0 14px;display:flex;overflow-x:auto}.totp-qr svg{border:1px solid var(--line);background:#fff;border-radius:8px;flex:none;width:240px;height:240px}
