:root{--bg:#f6f5f2;--surface:#fff;--ink:#1b1b1b;--muted:#6b6b6b;--line:#e4e1da;--accent:#1f3a5f;--accent-ink:#fff;--ok:#1e7a46;--ok-bg:#e7f4ec;--warn:#9a6200;--warn-bg:#fdf3dc;--err:#b42318;--err-bg:#fdecea;--info-bg:#eef2f8;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#141414;--surface:#1e1e1e;--ink:#ececec;--muted:#9a9a9a;--line:#333;--accent:#8fb3e3;--accent-ink:#0d1726;--ok:#6fcf97;--ok-bg:#16301f;--warn:#f2c14e;--warn-bg:#33290f;--err:#f28b82;--err-bg:#3a1714;--info-bg:#1b2433}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0}body{font:15px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{margin:0 0 4px;font-size:22px}h2{margin:24px 0 8px;font-size:17px}h3{margin:16px 0 6px;font-size:15px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-variant-numeric:tabular-nums}.top{background:var(--surface);border-bottom:1px solid var(--line);z-index:5;position:sticky;top:0}.top-inner{flex-wrap:wrap;align-items:center;gap:16px;max-width:1200px;margin:0 auto;padding:10px 16px;display:flex}.brand{letter-spacing:.2px;font-weight:700}.nav{flex-wrap:wrap;gap:14px;display:flex}.nav a{color:var(--ink)}.nav a.on{color:var(--accent);font-weight:600}.who{color:var(--muted);margin-left:auto;font-size:13px}main{max-width:1200px;margin:0 auto;padding:20px 16px 60px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;padding:16px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spacer{flex:1}.grid2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}button,.btn{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;padding:8px 14px;display:inline-block}button.primary,.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.danger{color:var(--err);border-color:var(--err)}button:disabled{opacity:.5;cursor:default}button.big{border-radius:14px;width:100%;padding:22px;font-size:22px;font-weight:700}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 9px}textarea{width:100%;min-height:60px}label{color:var(--muted);margin-bottom:4px;font-size:13px;display:block}.field{margin-bottom:12px}.field input:not([type=checkbox]),.field select{width:100%}.checks{flex-wrap:wrap;gap:6px 14px;display:flex}.checks label{color:var(--ink);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:7px 8px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.scroll{overflow-x:auto}.week td{min-width:120px;font-size:13px}.week td.name{min-width:160px;font-weight:600}.week a.cell{color:var(--ink);border-radius:6px;margin:-4px -6px;padding:4px 6px;display:block}.week a.cell:hover{background:var(--info-bg);text-decoration:none}.rest{background:repeating-linear-gradient(45deg,#0000,#0000 6px,#7f7f7f0f 6px 12px)}.pill{background:var(--info-bg);color:var(--ink);border-radius:99px;margin:1px 2px 1px 0;padding:1px 7px;font-size:11px;font-weight:600;display:inline-block}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.err{background:var(--err-bg);color:var(--err)}.flag{border-radius:8px;margin:4px 0;padding:6px 10px;font-size:13px}.flag.error{background:var(--err-bg);color:var(--err)}.flag.warn{background:var(--warn-bg);color:var(--warn)}.flag.info{background:var(--info-bg)}.notice{background:var(--info-bg);border-radius:8px;margin:10px 0;padding:10px 12px;font-size:14px}.notice.ok{background:var(--ok-bg);color:var(--ok)}.notice.err{background:var(--err-bg);color:var(--err)}.voided{color:var(--muted);text-decoration:line-through}.clock-status{margin:4px 0 16px;font-size:15px}.clock-time{font-variant-numeric:tabular-nums;font-size:44px;font-weight:700}.login{max-width:380px;margin:60px auto}@media (max-width:560px){.hide-sm{display:none}th,td{padding:6px 5px}main{padding:14px 12px 48px}}
