
:root{color-scheme:light;--ink:#20342e;--muted:#586b63;--line:#dce4df;--green:#245d49;--paper:#f5f7f4;--danger:#a52c26}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif}button,input,summary{font:inherit}button,input{border-radius:12px}button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{min-height:56px;padding:13px 20px;border:1px solid transparent;background:var(--green);color:white;font-weight:650;cursor:pointer;width:100%;line-height:1.5}button:hover{filter:brightness(.94)}button:disabled{background:#e5ebe7;color:#64766d;cursor:default;filter:none}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b7781d;outline-offset:4px}input{display:block;width:100%;min-width:0;min-height:56px;padding:12px 14px;background:#fff;border:1px solid #879d91;color:var(--ink);font-size:18px}input[type=checkbox]{display:inline-block;width:24px;min-height:24px;height:24px;flex-shrink:0;accent-color:var(--green)}label{display:block;font-weight:600;margin:18px 0 8px}label input{margin-top:8px}p,h1,h2{margin:0}h1{font-size:clamp(28px,4vw,38px);line-height:1.35;letter-spacing:.02em}h2{font-size:22px}small,.muted{color:var(--muted);font-size:15px}.app-header{border-bottom:1px solid var(--line);background:#fff}.header-inner{max-width:1040px;margin:auto;padding:18px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{font-size:18px;font-weight:700;letter-spacing:.06em}.mode{font-size:14px;color:var(--muted)}main{max-width:1040px;margin:auto;padding:36px 28px 24px}.page-heading{margin-bottom:28px}.page-heading p{margin-top:8px;color:var(--muted)}.workspace{max-width:640px;margin:0 auto}.box{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;margin-bottom:20px}.eyebrow{font-size:14px;color:var(--muted);font-weight:650;margin-bottom:8px}.intro{margin-top:8px;color:var(--muted)}#pin{letter-spacing:.35em;font-size:26px;min-height:64px}#signin{margin-top:22px;min-height:64px;font-size:20px}#selected:empty{display:none}#selected{display:block;font-size:23px;margin-bottom:12px}#current{font-size:32px;font-weight:700;margin:8px 0 24px}#actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}#actions button{min-height:96px;font-size:26px}#actions button[data-action=BREAK_START],#actions button[data-action=BREAK_END]{background:#eef4f0;color:var(--green);border-color:#b8cdbf}#staff{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}#staff button{min-height:72px;background:white;color:var(--ink);border-color:#9fb6a9;font-size:21px;text-align:left}#facility{display:block;margin-bottom:18px;font-size:22px}.secondary{background:white;color:var(--green);border-color:#a8bfb1}.quiet{background:transparent;color:var(--muted);border-color:var(--line);font-size:16px}.utility{display:flex;gap:12px;margin-top:22px}.utility button{flex:1}#message{min-height:28px;overflow-wrap:anywhere;font-size:16px}.notice{padding:18px 22px;border-radius:14px;border:1px solid var(--line);background:#edf3ef;margin-bottom:20px}.error{color:var(--danger);font-weight:600}#retry{margin-top:16px}#warnings p{background:#fff4df;padding:14px;border-radius:10px;margin-bottom:18px}.help{margin-top:24px;border-top:1px solid var(--line);padding-top:12px}.help summary{min-height:48px;padding:10px 0;color:var(--muted);cursor:pointer}.help button{margin-top:12px}.admin-area{max-width:640px;margin:28px auto 0;border-top:1px solid var(--line);padding-top:12px}.admin-area>summary{min-height:52px;padding:12px 0;color:var(--muted);cursor:pointer;font-size:15px}.admin-area .box{margin-top:12px}.admin-area h2{font-size:20px}.check-label{display:flex;align-items:center;gap:12px;font-size:16px;font-weight:400}.check-label input{margin:0}.admin-actions{display:grid;gap:12px;margin-top:22px}.footer{max-width:640px;margin:22px auto 0;color:var(--muted);font-size:13px;display:flex;justify-content:space-between;gap:16px}[hidden]{display:none!important}.terminal .workspace{max-width:900px}.terminal #staff{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.terminal #staff button{min-height:88px}.terminal #login{max-width:540px;margin-left:auto;margin-right:auto}.terminal #clock{max-width:720px;margin-left:auto;margin-right:auto}
@media(min-width:760px){.terminal main{padding-top:44px}.terminal #actions button{min-height:120px;font-size:30px}}@media(max-width:480px){body{font-size:16px}.header-inner{padding:14px 20px}.brand{font-size:16px}.mode{font-size:12px}main{padding:24px 16px}.page-heading{margin-bottom:22px}.box{padding:22px 20px;border-radius:16px}.utility{flex-wrap:wrap}.utility button{flex-basis:120px}#actions{grid-template-columns:1fr}#actions button{min-height:88px}#staff,.terminal #staff{grid-template-columns:1fr}.footer{flex-wrap:wrap}.admin-area .box{padding:20px 16px}}@media(prefers-reduced-motion:no-preference){button{transition:background-color .15s}}

.personal-nav{display:flex;gap:0;border-bottom:1px solid var(--line);margin-bottom:24px}.personal-nav button{flex:1;background:transparent;color:var(--muted);border-radius:0;border-bottom:3px solid transparent;padding:14px 4px;font-size:16px}.personal-nav button[aria-pressed=true]{color:var(--green);border-bottom-color:var(--green)}.month-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:20px}.month-toolbar h2{flex:1;text-align:center;font-size:20px;white-space:nowrap}.month-toolbar button{width:auto;min-width:56px;padding:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:20px;gap:2px}.weekday{text-align:center;font-size:14px;color:var(--muted);padding:8px 0}.calendar-day{border-radius:6px;min-height:66px;padding:6px 1px;background:#f4f6f4;color:var(--ink);font-weight:400;overflow-wrap:anywhere}.calendar-day[aria-current=date]{outline:2px solid var(--green);outline-offset:-2px}.day-number{display:block;font-size:17px}.day-code{display:block;font-size:12px;min-height:20px;font-weight:650}.day-detail{border-top:1px solid var(--line);margin:24px 0;padding-top:16px}.day-detail h3{margin:0 0 12px;font-size:20px}.metric{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}.metric span{font-size:15px}.metric strong{text-align:right;font-size:19px}.attendance-row{padding:20px 0;border-bottom:1px solid var(--line)}#attendanceList{margin-bottom:24px}#pendingSummary{margin-top:16px}#monthMessage:not(:empty){padding:14px 0}body.staff .box{border-radius:12px}body.staff .notice{border-radius:8px}@media(max-width:380px){#monthPanel{padding:18px 12px}.month-toolbar h2{font-size:18px}.metric{gap:8px}.metric strong{font-size:16px}}

/* Restrained shared visual language: clear type, flat surfaces and generous targets. */
:root{--paper:#f7f8f7;--green:#285e49;--ink:#25362e}body{font-size:16px}.brand{letter-spacing:.01em}.box,body.staff .box{border-radius:8px;box-shadow:none}button,input{border-radius:6px}.page-heading h1{letter-spacing:0;font-size:30px}.notice,body.staff .notice{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:18px 0}.terminal #staff{gap:10px}.terminal #staff button{border-color:#d5dfd8;border-radius:6px;min-height:80px;font-size:20px}.request-wait{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;z-index:20;background:#233d30;color:#fff;border-radius:6px;padding:14px 20px;font-size:14px;box-shadow:0 4px 20px #14251b22;pointer-events:none}.calendar-day{background:white;border:1px solid #e0e7e2}.calendar-day[aria-current=date]{background:#edf4ef}.personal-nav button{font-weight:600}.day-detail{background:#f7f9f7;padding:20px;border:0;border-left:3px solid #9cb5a7}.metric strong{font-variant-numeric:tabular-nums}@media(max-width:480px){.page-heading h1{font-size:27px}.box{border-radius:8px}.request-wait{bottom:12px;padding:12px 16px}}

/* v1.3.5: one stable frame for all roles, neutral surfaces, restrained contrast. */
:root{--paper:#f8f8f6;--ink:#233b33;--muted:#67756e;--line:#dce2dc;--green:#265b49}.app-header{height:72px}.header-inner{height:100%;padding:0 32px;max-width:1280px}.brand{color:var(--ink);text-decoration:none;font-size:18px;font-weight:650}.mode{font-size:13px}main{padding-top:42px}.page-heading{margin-bottom:30px}.page-heading h1{font-size:28px;font-weight:650}.page-heading p{font-size:15px}.workspace{max-width:720px}.box{border:0;border-bottom:1px solid var(--line);border-radius:0!important;padding:28px 0;background:transparent;margin-bottom:20px}.staff #clock{background:white;border:1px solid var(--line);padding:30px;border-radius:6px!important}.eyebrow{letter-spacing:.04em;font-size:13px;font-weight:500}#current{font-size:34px;line-height:1.4;font-weight:600}#actions button{font-size:24px;min-height:90px;border-radius:5px}.terminal .workspace{max-width:1040px}.terminal #identity{padding-top:0}.terminal #staff{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.terminal #staff button{background:white;border:1px solid var(--line);padding:18px 22px;min-height:76px;font-size:19px;font-weight:550}.terminal #staff button:hover{border-color:#799687;background:#f1f6f1}.terminal #facility{font-size:16px;font-weight:600;margin-bottom:24px}.terminal #clock{background:white;border:1px solid var(--line);padding:32px;border-radius:6px!important}.terminal #login h2{font-size:21px}.notice{font-size:14px}.footer{font-size:12px;padding-top:24px;border-top:1px solid var(--line);margin-top:48px}.empty-state{padding:32px 0}.empty-state h2{font-size:20px;font-weight:600;margin-bottom:12px}.empty-state p{font-size:15px;max-width:34em;color:var(--muted)}.empty-state a,#continue{display:inline-block;margin-top:20px;color:var(--green);font-weight:600}select{font:inherit;min-height:52px;padding:10px 14px;border:1px solid var(--line);border-radius:5px;background:white;color:var(--ink);max-width:100%}#facilityPicker{margin:0 0 24px}#facilityPicker label{margin:0 0 8px;font-size:14px}#facilityChoice{min-width:240px}.manager .header-inner{max-width:1480px}.manager .access-panel{background:white}.personal-nav{margin-bottom:12px}button,input,select{transition:none}@media(max-width:600px){.app-header{height:60px}.header-inner{padding:0 20px}.mode{font-size:12px}main{padding:28px 20px}.page-heading h1{font-size:25px}.staff #clock,.terminal #clock{padding:24px 20px}.terminal #staff{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.terminal #staff button{font-size:16px;padding:14px 12px;min-height:76px}.empty-state h2{font-size:18px}.footer{margin-top:32px}#facilityChoice{min-width:100%}}@media(prefers-reduced-motion:no-preference){.terminal #staff button{transition:background .12s,border-color .12s}}

/* v137: full names and a single clear punch action, without changing page balance. */
#staff .person-button strong{display:block;font-size:24px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
#staff .person-button small{display:block;font-size:16px;margin-top:6px;font-weight:400}
.terminal #actions button{min-height:100px;font-size:32px;width:100%}
.terminal #actions [data-action="CLOCK_IN"]{background:#245d49;color:white}
.terminal #actions [data-action="CLOCK_OUT"]{background:#a74b12;color:white}
.terminal #message{font-size:24px;line-height:1.6}

/* Registered shared terminals only; names and credentials are never mixed. */
#facilityChoices{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}#facilityChoices[hidden]{display:none}#facilityChoices button{flex:1;min-height:56px;min-width:140px;font-size:20px}#facilityChoices button[aria-pressed=true]{background:var(--green);color:#fff}

/* 1386: shared mobile/iPad layout; preserve the existing balance. */
#offlineNotice:not(:empty){padding:14px 18px;background:#fff4df;border-left:4px solid #a74b12;margin-bottom:20px}
#identity>.muted{margin-bottom:18px}#schedulePanel{max-width:760px;margin:auto}#scheduleGrid .sunday{color:#9a3730}#scheduleGrid .saturday{color:#30598d}
#scheduleGrid .calendar-day{min-height:82px}#scheduleGrid .day-code{font-size:16px}.schedule-changed{display:block;font-size:11px;color:#91450e}
#clockName{font-size:26px;font-weight:650;letter-spacing:0}#scheduleRefresh{margin-top:20px}
@media(max-width:480px){.terminal #staff{grid-template-columns:1fr}.terminal #staff .person-button{padding:16px 20px;min-height:88px}.terminal #message{font-size:21px}.terminal .footer{font-size:12px}#scheduleGrid .calendar-day{min-height:72px}#scheduleGrid .day-code{font-size:14px}.month-toolbar button{padding:10px 12px}.month-toolbar h2{font-size:19px}}

/* 1387: punching first, schedule as a secondary action after name selection. */
.schedule-entry{max-width:720px;margin:0 auto 24px;text-align:right}.schedule-entry button{width:auto;min-width:176px;min-height:56px}.schedule-back{width:auto;margin-bottom:24px;min-height:56px}@media(max-width:480px){.schedule-entry button{width:100%}}

/* Punch colors are reserved for attendance actions. */
.schedule-entry #showSchedule{background:#fff;color:#4b5350;border:1px solid #aeb5b1;min-height:48px;font-size:1rem;box-shadow:none}
.today-shift{font-size:1.1rem;color:#424b46;line-height:1.6}
#updateNotice{padding:12px;border:1px solid #aeb5b1;background:#f5f6f5;color:#343b37}
.terminal .secondary,.terminal .month-toolbar button{background:#fff;color:#4b5350;border-color:#aeb5b1}
.terminal .schedule-changed{color:#595f5b}
