:root{--bg: #f6f7f5;--surface: #ffffff;--text: #1f2a27;--muted: #6b7773;--line: #dde3e0;--primary: #2f6f62;--primary-ink: #ffffff;--accent: #e0a030;--danger: #c0392b;--warn-bg: #fff4e0;--warn: #a35f00;--ok: #2e7d4f;--closed: #f7c9d8;--shitei: #f9e39a;--sun: #c0392b;--sat: #2f6fb0;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #141a18;--surface: #1d2523;--text: #e6ece9;--muted: #98a6a1;--line: #2f3a37;--primary: #4fa392;--warn-bg: #3a2e14;--warn: #f0b860;--closed: #6b3346;--shitei: #6b5a1c;--sun: #f08070;--sat: #7fb2ea;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,Yu Gothic UI,sans-serif;font-size:15px;line-height:1.6}h1{font-size:1.4rem;margin:0 0 12px}h2{font-size:1.1rem;margin:0 0 8px}h3{font-size:1rem;margin:0 0 8px}a{color:var(--primary)}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}select{width:auto}input[type=checkbox],input[type=radio]{width:auto;padding:0}label.row{white-space:nowrap}label{display:block;font-size:.9rem;color:var(--muted)}label>input,label>select,label>textarea{margin-top:4px;color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 14px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.small{padding:4px 10px;font-size:.85rem}.btn.ghost{background:transparent}.btn.block{width:100%;padding:12px}.linklike{background:none;border:0;color:var(--primary);cursor:pointer;padding:4px 0;text-decoration:underline;text-align:left}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:12px 0}.form>label,.form>.row{margin-bottom:10px}.form.inline{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.form.inline h3{width:100%}.form.inline label{min-width:140px}.row{display:flex;align-items:center}.row.gap{gap:8px}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.top{align-items:flex-start}.grow{flex:1;min-width:160px}.mt{margin-top:10px}.muted{color:var(--muted)}.small{font-size:.85rem}.mono{font-family:ui-monospace,monospace}.center{text-align:center}.error,.warn-text{color:var(--danger)}.ok-text{color:var(--ok)}.notice{background:var(--warn-bg);color:var(--text);border-radius:8px;padding:8px 12px}.warnbox{background:var(--warn-bg);border-color:transparent;color:var(--text);border-radius:8px;padding:8px 12px}.tag{display:inline-block;font-size:.75rem;padding:1px 8px;border-radius:999px;background:var(--line);margin-left:4px}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.shitei{background:var(--shitei)}.tag.closed{background:var(--closed)}.tag.status-approved{background:#d6efdf;color:var(--ok)}.tag.status-rejected{background:#f8d7d3;color:var(--danger)}ul.plain,ul.cards{list-style:none;padding:0;margin:0}.sun{color:var(--sun)}.sat{color:var(--sat)}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(380px,100%);text-align:center}.login-card label{text-align:left;margin-bottom:12px}.staff{max-width:640px;margin:0 auto;min-height:100vh;padding-bottom:72px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--primary);color:var(--primary-ink)}.topbar .btn{color:var(--primary-ink);border-color:#fff6}.topbar .facility{font-size:.8rem;opacity:.85}.topbar .who{font-weight:600}.staff-main{padding:12px 16px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;max-width:160px;text-align:center;padding:6px 0 8px;color:var(--muted);text-decoration:none;font-size:.75rem}.tabbar a svg{display:block;margin:0 auto 2px}.tabbar a.active{color:var(--primary);font-weight:600}.punch{display:flex;flex-direction:column;gap:4px}.clock{text-align:center;padding:8px 0}.clock .date{color:var(--muted)}.clock .time{font-size:3rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:1px}.shift-today{text-align:center;margin:4px 0 12px}.punch-btn{width:100%;aspect-ratio:2 / 1;max-height:200px;border:0;border-radius:20px;font-size:2rem;font-weight:700;color:#fff;background:var(--primary);cursor:pointer;margin-bottom:10px;box-shadow:0 4px 14px #0000001f}.punch-btn.clock_out{background:#b4582f}.punch-btn.break_end{background:#4f7cac}.punch-btn:disabled{opacity:.6}.done{text-align:center;padding:28px;background:var(--surface);border-radius:16px;border:1px solid var(--line)}.hint{background:var(--warn-bg);border-radius:10px;padding:10px 12px;font-size:.9rem}.hint p{margin:4px 0}.monthnav{display:flex;align-items:center;gap:12px;margin:4px 0 8px}.totals{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin:8px 0 12px}.totals div{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 10px}.totals span{display:block;font-size:.75rem;color:var(--muted)}.shiftlist{list-style:none;padding:0;margin:0;background:var(--surface);border:1px solid var(--line);border-radius:12px}.shiftlist li{display:flex;gap:16px;padding:8px 14px;border-bottom:1px solid var(--line)}.shiftlist li:last-child{border-bottom:0}.shiftlist li>span:first-child{width:72px}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}table.grid{border-collapse:collapse;width:100%;background:var(--surface);font-size:.88rem}table.grid th,table.grid td{border:1px solid var(--line);padding:4px 8px;text-align:left;vertical-align:top;white-space:nowrap}table.grid th{background:var(--bg);font-weight:600}table.grid.compact td,table.grid.compact th{padding:2px 8px;text-align:right}table.grid tr.off td{color:var(--muted)}table.grid tr.total td{font-weight:700}table.att td:nth-child(n+5):nth-child(-n+9){text-align:right;font-variant-numeric:tabular-nums}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--surface);border-radius:14px;padding:18px;width:min(460px,100%)}.modal.wide{width:min(760px,100%)}.modal textarea{margin:8px 0}.map{width:100%;height:360px;border:1px solid var(--line);border-radius:8px}.admin{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--line);padding:16px 0;display:flex;flex-direction:column;flex-shrink:0}.brand{padding:0 16px 12px;font-weight:700}.brand small{display:block;color:var(--muted);font-weight:400}.sidebar nav{display:flex;flex-direction:column}.sidebar nav a{padding:8px 16px;color:var(--text);text-decoration:none}.sidebar nav a.active{background:var(--bg);color:var(--primary);font-weight:600;border-left:3px solid var(--primary)}.sidebar-foot{margin-top:auto;padding:12px 16px;display:flex;flex-direction:column;gap:4px;font-size:.9rem}.admin-main{flex:1;padding:20px 24px;min-width:0}@media (max-width: 800px){.admin{flex-direction:column}.sidebar{width:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px 0}.sidebar nav{flex-direction:row;overflow-x:auto}.sidebar nav a{white-space:nowrap}.sidebar nav a.active{border-left:0;border-bottom:3px solid var(--primary)}.sidebar-foot{flex-direction:row;gap:16px}.admin-main{padding:12px 16px}}.legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;margin:8px 0}.legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-1px}.legend i.closed{background:var(--closed)}.legend i.shitei{background:var(--shitei)}table.shift th.sticky{position:sticky;left:0;z-index:1;background:var(--surface);min-width:130px}table.shift th{text-align:center;padding:2px 4px;font-size:.8rem}table.shift td.cell{padding:0;text-align:center}table.shift td.cell select{border:0;background:transparent;padding:4px 2px;width:100%;min-width:36px;text-align:center;font-weight:600;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}table.shift td.closed{background:var(--closed)}table.shift td.shitei{background:var(--shitei)}table.shift td.leave{background:#d9e8f5}table.shift td.na{background:repeating-linear-gradient(45deg,var(--bg),var(--bg) 4px,var(--line) 4px,var(--line) 5px)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;background:var(--surface);padding:6px 12px;cursor:pointer;border-right:1px solid var(--line)}.seg button:last-child{border-right:0}.seg button.on{background:var(--primary);color:var(--primary-ink)}.months{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:12px 0}.mcal{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px}.mcal-title{font-weight:700;margin-bottom:4px}.mcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mcal-grid .wh{text-align:center;font-size:.75rem;color:var(--muted)}.mcal-grid .wh:first-child{color:var(--sun)}.mcal-grid .wh:nth-child(7){color:var(--sat)}.mcal-grid .d{position:relative;border:0;background:transparent;border-radius:50%;aspect-ratio:1;font-size:.85rem;cursor:pointer;padding:0}.mcal-grid .d:hover{outline:1px solid var(--primary)}.mcal-grid .d.closed{background:var(--closed)}.mcal-grid .dots{position:absolute;bottom:1px;left:0;right:0;display:flex;justify-content:center;gap:2px}.mcal-grid .dots i{width:6px;height:6px;border-radius:50%}.pattern-summaries{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px}.plain-fieldset{border:0;padding:0;margin:0}.label-w{width:80px}.print-sheet{background:#fff;color:#000;padding:16px}@media print{@page{size:A4 portrait;margin:10mm}body{background:#fff}.sidebar,.no-print{display:none!important}.admin-main{padding:0}.months.print{grid-template-columns:repeat(3,1fr);gap:6px}.mcal{border-color:#000;break-inside:avoid}.print-sheet{padding:0}.print-sheet table.grid th,.print-sheet table.grid td{border-color:#000}}.top-gap{margin-top:8px}.tag.status-unconfirmed{background:var(--warn-bg);color:var(--warn)}.tag.status-confirmed{background:var(--line)}.tag.status-closed{background:#d6efdf;color:var(--ok)}.report-sheet{background:#fff;color:#000;padding:12px;margin-bottom:16px;font-size:.85rem}.report-sheet table.grid th,.report-sheet table.grid td{border-color:#000;padding:2px 5px}.report-sheet .draft-mark{border:2px solid #c00;color:#c00;font-weight:700;padding:2px 10px;display:inline-block}.report-sheet .stamps{display:flex;gap:0}.report-sheet .stamps div{border:1px solid #000;width:70px;height:64px;text-align:center}.report-sheet .stamps div+div{border-left:0}.report-sheet .stamps small{display:block;border-bottom:1px solid #000}.report-sheet .right{text-align:right}@media print{.report-sheet{break-after:page;padding:0;margin:0}.report-sheet:last-child{break-after:auto}}table.schedule{font-size:.7rem;table-layout:fixed;width:100%}table.schedule tr,table.schedule tbody.counts{break-inside:avoid}table.schedule col.name-col{width:10.5em}table.schedule col.sum-col{width:3.9em}table.schedule th,table.schedule td{padding:1px;text-align:center;line-height:1.25}table.schedule th.name{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.schedule th.name small{font-weight:400;color:#555;margin-left:4px}table.schedule td.c{font-weight:600}table.schedule td.closed{background:var(--closed)}table.schedule td.shitei{background:var(--shitei)}table.schedule td.leave{background:#d9e8f5}table.schedule td.outside{color:#999}table.schedule td.num{text-align:right;padding-right:3px}table.schedule tbody.counts th,table.schedule tbody.counts td{font-weight:400}table.schedule tbody.counts tr.total td,table.schedule tbody.counts tr.total th{font-weight:700}table.schedule tbody.counts tr:first-child th,table.schedule tbody.counts tr:first-child td{border-top:2px solid #000}.schedule-foot span:last-child{white-space:nowrap;margin-left:12px}@page schedule{size:A4 landscape;margin:8mm}.schedule-sheet{page:schedule}@media print{.schedule-sheet{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
