:root{--bg: #f5f5f3;--card: #ffffff;--text: #141416;--muted: #6c6f76;--line: #e6e6e2;--brand: #111111;--brand-text: #ffffff;--brand-soft: #1111111a;--ok: #15803d;--ok-bg: #e8f6ed;--warn: #b45309;--warn-bg: #fdf3e2;--ng: #c81e1e;--ng-bg: #fdebea;--info-bg: #eef0f4;--radius: 14px;--shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.04);font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,system-ui,sans-serif;color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%}:root[data-theme=dark]{--bg: #0e0e10;--card: #18181b;--text: #f0f0ee;--muted: #9d9fa6;--line: #2a2a2f;--ok: #4ade80;--ok-bg: #11291a;--warn: #fbbf24;--warn-bg: #30250c;--ng: #f87171;--ng-bg: #361414;--info-bg: #222228;--shadow: none;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);line-height:1.6;font-size:15px}a{color:inherit}h1{font-size:20px;margin:4px 0 16px;letter-spacing:.02em}h2{font-size:16px;margin:0 0 12px}h3{font-size:14px;margin:0 0 8px;color:var(--muted);font-weight:600}p{margin:0 0 8px}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:10;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top))}.topbar .logo{font-weight:800;letter-spacing:.08em}.topbar .who{margin-left:auto;color:var(--muted);font-size:13px}.main{max-width:1080px;margin:0 auto;padding:16px 16px 96px}.adminnav{display:flex;gap:4px;overflow-x:auto;padding:8px 12px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:49px;z-index:9}.adminnav a{white-space:nowrap;text-decoration:none;padding:6px 12px;border-radius:999px;color:var(--muted);font-size:14px}.adminnav a.active{background:var(--brand);color:var(--brand-text)}.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(6,1fr);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar a{text-align:center;text-decoration:none;padding:8px 0 10px;font-size:10.5px;white-space:nowrap;color:var(--muted);position:relative}.tabbar a .ic{display:block;font-size:20px;line-height:1.3}.tabbar a.active{color:var(--brand);font-weight:700}.tabbar .dot{position:absolute;top:6px;left:56%;background:var(--brand);color:#fff;border-radius:999px;font-size:10px;padding:0 5px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.grid{display:grid;gap:12px}@media (min-width: 720px){.grid.cols2{grid-template-columns:1fr 1fr}.grid.cols3{grid-template-columns:repeat(3,1fr)}.grid.cols4{grid-template-columns:repeat(4,1fr)}}.big{font-size:32px;font-weight:800;letter-spacing:.01em;font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--muted)}.small{font-size:13px}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.row.between{justify-content:space-between}.spacer{flex:1}.stack>*+*{margin-top:8px}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--card);color:var(--text);padding:9px 14px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;min-height:40px;white-space:nowrap}.btn.primary{background:var(--brand);color:var(--brand-text);border-color:var(--brand)}.btn.danger{color:var(--ng)}.btn.small{padding:4px 10px;min-height:30px;font-size:13px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}label.field{display:block;margin-bottom:12px}label.field>span{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:9px 12px}input[type=checkbox]{width:auto}textarea{min-height:90px}.inline{display:inline-flex;align-items:center;gap:6px}.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--info-bg);white-space:nowrap}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.ng{background:var(--ng-bg);color:var(--ng)}.notice{padding:10px 12px;border-radius:10px;background:var(--info-bg);font-size:14px;margin-bottom:12px}.notice.warn{background:var(--warn-bg);color:var(--warn)}.notice.ng{background:var(--ng-bg);color:var(--ng)}.notice.ok{background:var(--ok-bg);color:var(--ok)}.tablewrap{overflow-x:auto;margin:0 -16px;padding:0 16px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{font-size:12px;color:var(--muted);font-weight:600;white-space:nowrap}tr.click{cursor:pointer}tr.click:hover td{background:var(--bg)}tfoot td{font-weight:700}.list>.item{padding:12px 0;border-bottom:1px solid var(--line)}.list>.item:last-child{border-bottom:0}.kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px}.kv .total{font-weight:800;font-size:18px;border-top:1px solid var(--line);padding-top:8px;margin-top:4px}.empty{color:var(--muted);text-align:center;padding:24px 0}.center{min-height:70vh;display:grid;place-items:center;padding:16px}.login{width:100%;max-width:380px}img.receipt{max-width:100%;border-radius:8px;border:1px solid var(--line)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:50;display:grid;place-items:center;padding:16px}.modal{background:var(--card);border-radius:14px;padding:16px;width:100%;max-width:560px;max-height:90vh;overflow:auto}.brand{color:var(--brand)}.hero{background:var(--brand);color:var(--brand-text);border-color:var(--brand)}.hero h3,.hero .muted{color:inherit;opacity:.8}.badge.brand{background:var(--brand-soft);color:var(--brand)}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px}input[type=checkbox]{accent-color:var(--brand);width:18px;height:18px}.gig{display:grid;grid-template-columns:56px 1fr;gap:12px}.gig .day{text-align:center;border-radius:12px;background:var(--brand-soft);color:var(--brand);padding:6px 0;height:fit-content}.gig .day b{display:block;font-size:22px;line-height:1.1}.gig .day small{font-size:11px}.gig.cancelled{opacity:.55}.gig.cancelled .title{text-decoration:line-through}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--line);background:var(--card)}.chip.on{background:var(--brand);color:var(--brand-text);border-color:var(--brand)}.chip.ng{background:var(--ng-bg);color:var(--ng);border-color:transparent}label.chip{display:inline-flex;align-items:center;gap:4px;cursor:pointer}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .h{text-align:center;font-size:11px;color:var(--muted)}.cal button{aspect-ratio:1;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;font:inherit;font-size:14px;cursor:pointer;position:relative;padding:0}.cal button.ng{background:var(--ng-bg);color:var(--ng);border-color:var(--ng);font-weight:700}.cal button.gig:after{content:"";position:absolute;bottom:5px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--brand)}.cal button.today{outline:2px solid var(--brand);outline-offset:-2px}.cal button:disabled{opacity:.35;cursor:default}.cal .sun{color:var(--ng)}.cal .sat{color:#3b82f6}.swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.swatch{border:2px solid transparent;border-radius:12px;padding:8px 4px;background:var(--bg);cursor:pointer;font:inherit;font-size:11px;color:var(--text);display:grid;justify-items:center;gap:4px}.swatch i{width:26px;height:26px;border-radius:50%;display:block}.swatch.on{border-color:var(--text)}.seg{display:inline-grid;grid-auto-flow:column;background:var(--bg);border-radius:10px;padding:3px;gap:3px}.seg button{border:0;background:transparent;padding:6px 14px;border-radius:8px;font:inherit;font-size:14px;color:var(--muted);cursor:pointer}.seg button.on{background:var(--card);color:var(--text);font-weight:700;box-shadow:var(--shadow)}.chip.ngsel{box-shadow:0 0 0 2px var(--ng)}.wsbtn{width:100%;display:flex;align-items:center;gap:12px;padding:18px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--text);font:inherit;font-size:18px;font-weight:800;letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow);text-align:left}.wsbtn .dot{width:14px;height:14px;border-radius:50%;background:var(--ws);box-shadow:0 0 0 4px color-mix(in srgb,var(--ws) 20%,transparent)}.wsbtn .arrow{margin-left:auto;color:var(--muted);font-size:22px}.wsbtn:hover{border-color:var(--ws)}.wsbadge{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px;color:#fff;background:var(--ws)}.wsselect{width:auto;font-size:14px;padding:5px 10px;border-radius:999px}.meter{height:10px;border-radius:999px;background:var(--line);overflow:hidden}.meter>i{display:block;height:100%;background:var(--brand);border-radius:999px}.perk{display:grid;grid-template-columns:40px 1fr;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--line)}.perk+.perk{margin-top:8px}.perk .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:var(--bg)}.perk.got{border-color:var(--brand);background:var(--brand-soft)}.perk.got .ic{background:var(--brand);color:var(--brand-text)}.stars{display:inline-flex;gap:2px}.stars button{border:0;background:none;font-size:22px;line-height:1;cursor:pointer;color:var(--line);padding:0 1px}.stars button.on{color:#f5b301}.axis{display:grid;grid-template-columns:110px 1fr 56px;gap:8px;align-items:center;margin:6px 0;font-size:14px}.payslip{background:#fff;color:#111;border:1px solid var(--line);border-radius:12px;padding:32px;max-width:800px}.payslip th,.payslip td{border-color:#ddd;color:#111}.payslip th{color:#666}.payslip .kv .total{border-color:#ddd}.paytotal{margin:20px 0 16px;padding:12px 16px;border:2px solid #111;border-radius:8px;font-size:18px;display:flex;justify-content:space-between}.paytotal b{font-size:26px}@media print{.topbar,.adminnav,.tabbar,.noprint{display:none!important}body,:root{background:#fff!important}.main{padding:0;max-width:none}.payslip{border:0;padding:0;max-width:none}}
