:root{font-family:"Yu Gothic UI","Meiryo",system-ui,sans-serif;color:#14201b;background:#f5f7f6;--brand:#107747;--dark:#10241c;--muted:#586960;--line:#dce4e0;--panel:#fff;--danger:#a92727;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #3972db;outline-offset:3px}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.7rem,3vw,2.35rem);line-height:1.45;letter-spacing:-.04em;margin-bottom:12px}h2{font-size:1.35rem;line-height:1.5;margin-bottom:0}h3{font-size:1rem;margin-bottom:20px}p{line-height:1.8}small,.subtle{font-size:.875rem;color:var(--muted);line-height:1.75}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-100px;left:20px;z-index:10;background:white;padding:12px}.skip-link:focus{top:10px}
.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--dark);color:white;padding:28px 18px;display:flex;flex-direction:column;gap:32px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:44px;height:44px;border:2px solid #ffffffb8;border-radius:8px;display:grid;place-items:center;font-weight:900;flex-shrink:0}.brand strong,.brand small{display:block}.brand small{color:#c0d0c7;margin-top:5px}.company{padding:18px 4px;border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24;line-height:1.8}.company span{display:block;font-size:.875rem;color:#c0d0c7}nav{display:grid;gap:10px}nav button{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid #ffffff24;color:#d6e3dc;border-radius:8px;min-height:48px;padding:12px;text-align:left;font-weight:700}nav button span{font-size:.875rem;color:#9bb6a8}nav button[aria-current]{background:#1c543b;border-color:#479d6c;color:white}nav button[aria-current] span{color:#baf2d1}.sidebar-note{font-size:.875rem;color:#c0d0c7;line-height:1.9;margin-top:auto}.workspace{min-width:0}.demo-bar{background:#fff;border-bottom:1px solid var(--line);padding:14px 32px;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;font-size:.875rem}.demo-bar>div,.bar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.badge{display:inline-block;background:#e6f3ec;color:#0b5735;padding:6px 10px;border:1px solid #badac9;border-radius:5px;font-size:.875rem;font-weight:800}.text-button{color:var(--brand);border:0;background:transparent;text-decoration:underline;padding:8px 0;font-weight:700;min-height:40px}.bar-actions .text-button{font-size:.875rem}#remainingTime{font-variant-numeric:tabular-nums;color:var(--muted)}main{max-width:1220px;margin:auto;padding:32px}.welcome>p:not(.eyebrow){color:var(--muted);max-width:860px;margin-bottom:24px}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:800;color:var(--brand);margin-bottom:8px}.steps{list-style:none;margin:0 0 36px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.steps button{display:grid;grid-template-columns:32px 1fr;gap:4px 12px;width:100%;height:100%;text-align:left;background:white;border:1px solid var(--line);border-radius:8px;padding:16px;color:inherit}.steps button>span{grid-row:span 2;border-radius:50%;height:32px;display:grid;place-items:center;background:#edf2ef;color:var(--brand);font-weight:800}.steps .completed{background:var(--brand);color:#fff}.steps small{font-size:.8125rem}.steps strong{font-size:.9375rem}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.card{border:1px solid var(--line);border-radius:10px;background:white;padding:24px}.punch-grid{display:grid;grid-template-columns:minmax(300px,1fr) minmax(250px,.9fr);gap:20px}.terminal{border-top:4px solid var(--brand)}label{display:grid;gap:8px;font-size:.9375rem;font-weight:700}input,select{min-height:46px;width:100%;border:1px solid #b5c7bd;border-radius:6px;color:inherit;background:white;padding:9px 12px;min-width:0}select{margin-top:8px}.demo-clock{display:grid;text-align:center;padding:30px 0 12px;gap:8px}.demo-clock>span{font-size:.875rem;color:var(--muted)}.demo-clock strong{font-size:3.6rem;letter-spacing:.02em;line-height:1.1;font-variant-numeric:tabular-nums}.punch-status{text-align:center;color:var(--brand);font-weight:800;margin:8px 0 20px}.punch-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.primary,.secondary,.small-button{min-height:44px;border-radius:6px;padding:10px 16px;font-weight:700}.primary{color:white;background:var(--brand);border:1px solid var(--brand)}.primary:hover:not(:disabled){background:#0b5735}.secondary,.small-button{background:white;color:var(--brand);border:1px solid #b5c7bd}.secondary:hover:not(:disabled),.small-button:hover{background:#edf6f1}.small-button{min-height:36px;font-size:.875rem;padding:6px 12px}.history{list-style:none;padding:0;margin:0;min-height:200px}.history li{padding:14px 0;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:center}.history time{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums}.history small{margin-left:auto}.history .empty{color:var(--muted);border:0;line-height:1.8}.next-action{margin:24px 0}.next-action p{font-size:.9375rem}.hint{background:#eaf3ee;border-left:3px solid var(--brand);padding:16px 18px;margin-bottom:20px;font-size:.9375rem;line-height:1.8}.hint strong,.hint span{display:block}.hint .text-button{font-size:.875rem}.inline-label{display:flex;align-items:center;gap:12px}.inline-label input{width:auto}.table-wrap{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;text-align:left}th{font-size:.8125rem;background:#f0f4f2;color:var(--muted);font-weight:700}th,td{padding:16px;border-bottom:1px solid var(--line)}td{font-size:.9375rem;font-variant-numeric:tabular-nums}tbody tr:last-child td{border-bottom:0}td strong,td small{display:block}td small{font-size:.8125rem}td .status{display:inline-block;font-size:.8125rem;background:#edf6f1;color:#0b5735;padding:4px 8px;border-radius:4px}.status.warning{background:#fff1da;color:#8a4b00}.status.neutral{background:#f0f1f2;color:#52615a}.notice{padding:14px 18px;border:1px solid #99c5ae;background:#eaf6ef;margin-bottom:20px;border-radius:6px;line-height:1.6}.notice.error{background:#fff0ef;color:var(--danger);border-color:#e8b8b8}.audit-card{margin-top:20px}.corrections{margin:0;padding-left:20px;color:var(--muted);font-size:.875rem;line-height:1.9}.corrections li+li{margin-top:10px}.summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.summary-grid .card{display:grid;gap:12px}.summary-grid span{font-size:.875rem;color:var(--muted)}.summary-grid strong{font-size:1.8rem;color:var(--dark)}.employee-form{display:grid;grid-template-columns:1fr 1fr auto;gap:18px;align-items:end;margin-bottom:14px}.employee-form select{margin-top:0}footer{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted);line-height:1.8}dialog{width:min(540px,calc(100% - 32px));border:1px solid var(--line);border-radius:12px;padding:28px;color:inherit;box-shadow:0 20px 80px #10241c33}dialog::backdrop{background:#10241c88}dialog h2{margin-bottom:12px}dialog label{margin:16px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:12px;margin-top:24px}.form-error{color:var(--danger);font-size:.9375rem}.noscript{background:white;padding:30px}
@media(max-width:1050px){.app{grid-template-columns:200px minmax(0,1fr)}main{padding:24px}.demo-bar{padding:14px 24px}.steps button{grid-template-columns:1fr}.steps button>span{grid-row:auto}.punch-grid{grid-template-columns:1fr}.history{min-height:0}.employee-form{grid-template-columns:1fr 1fr}.employee-form button{grid-column:1/-1}}
@media(max-width:720px){.app{display:block}.sidebar{padding:16px;gap:18px}.brand{gap:12px}.company,.sidebar-note{display:none}nav{grid-template-columns:1fr 1fr;gap:8px}nav button{font-size:.875rem;min-height:44px;padding:10px}.demo-bar{padding:12px 16px;gap:8px}.demo-bar>div{gap:10px}main{padding:22px 16px}.steps{gap:8px;margin-bottom:28px}.steps button{padding:12px 8px;gap:8px}.steps strong{font-size:.8125rem}.steps small{display:none}.card{padding:18px}.table-wrap{padding:0}.section-heading{align-items:flex-start}h2{font-size:1.2rem}.punch-grid{grid-template-columns:minmax(0,1fr)}.summary-grid{grid-template-columns:1fr;gap:10px}.summary-grid .card{display:flex;align-items:center;justify-content:space-between}.summary-grid strong{font-size:1.4rem}.employee-form{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr 1fr}.form-grid label:last-child{grid-column:1/-1}dialog{padding:22px}.inline-label{width:100%;justify-content:space-between}.punch-buttons .primary,.punch-buttons .secondary{padding:12px 8px;font-size:.9375rem}}
