:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#172d35;background:#f3f6f8;font-size:16px;line-height:1.65;--teal:#105366;--line:#dce5e9}*{box-sizing:border-box}body{margin:0}header{height:90px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--teal);font-weight:800;letter-spacing:.08em}.mark{display:grid;place-items:center;background:var(--teal);color:white;width:44px;height:44px;border-radius:10px;font-size:28px}.brand small{font-size:11px;letter-spacing:.15em;color:#60747e;margin-top:-4px}small{display:block;font-size:13px;color:#627582}#identity{display:flex;align-items:center;gap:16px;font-size:14px}main{max-width:1200px;margin:auto;padding:0 24px 64px}nav{display:flex;gap:6px;margin:24px 0 32px;border-bottom:1px solid var(--line)}nav button{border:0;border-radius:0;background:transparent;padding:14px 20px;color:#526570}nav button.selected{color:var(--teal);border-bottom:3px solid var(--teal);font-weight:700}h1{font-size:32px;line-height:1.4;letter-spacing:.01em;margin:4px 0 10px}h2{font-size:20px;margin:0 0 12px;line-height:1.5}p{margin:8px 0 16px;color:#556b76}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:12px;font-weight:800;color:#297488;letter-spacing:.15em;margin:0}.date{font-size:20px;font-variant-numeric:tabular-nums}.date small{text-align:right}.punch-panel{background:var(--teal);color:white;padding:30px;border-radius:18px;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.punch-panel p{color:#c5e2e9;font-size:14px;max-width:430px;margin-bottom:0}.punch-panel h2{margin:10px 0 0}.punch-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;min-width:440px}button{font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #c9d7de;border-radius:8px;padding:10px 16px;color:#274852;background:white;transition:background .15s,transform .1s}button:hover{background:#eaf2f5}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}.primary{background:var(--teal);border-color:var(--teal);color:white}.primary:hover{background:#0a4050}.quiet{border:0;background:transparent;padding:7px}.punch{min-height:94px;padding:12px 8px;border:0;color:#114d5e}.punch span{display:block;font-size:24px;line-height:1.4}.punch:disabled{background:#7b9ca6;color:#e9f0f2;opacity:.4}.punch.in:not(:disabled){background:#caffdf}.punch.out:not(:disabled){background:#fff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:22px 0}.stats>div{border:1px solid var(--line);background:#fff;padding:20px 24px;border-radius:12px}.stats span{color:#536e7a;font-size:14px}.stats strong{font-size:38px;display:block;line-height:1.35;margin-top:8px;font-variant-numeric:tabular-nums}.stats strong small{display:inline;margin-left:8px;font-size:14px;font-weight:400}.stats .text-number{font-size:23px;margin-top:15px}.panel{border:1px solid var(--line);border-radius:14px;background:#fff;padding:26px;margin:20px 0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading p{font-size:13px;margin:0}.section-heading h2{margin-bottom:3px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th{font-weight:500;color:#647b87;background:#f7f9fa;padding:12px 16px;white-space:nowrap}td{border-bottom:1px solid #e9eef1;padding:20px 16px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}.member{display:flex;align-items:center;gap:12px;white-space:nowrap}.member b{font-size:16px}.avatar{background:#eaf1f5;color:#266176;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;font-weight:700}.badge{display:inline-block;padding:5px 12px;border-radius:30px;font-size:13px;font-weight:600;background:#eff3f5;color:#596e77;white-space:nowrap}.badge.working{background:#dff6ea;color:#176843}.badge.break{background:#fff0cc;color:#835900}.badge.out{background:#e5ecf7;color:#49618a}.badge.none{background:#edf0f2;color:#657782}.footnote{font-size:13px;border-top:1px solid var(--line);padding-top:18px;margin:12px 0 0}.login{max-width:460px;margin:72px auto;padding:36px}.login h1{font-size:28px}form{display:flex;flex-direction:column;gap:16px}label{font-size:14px;color:#405e6c;display:flex;flex-direction:column;gap:6px}input,select,textarea{border:1px solid #c7d6dd;border-radius:7px;background:#fff;padding:11px 12px;font:inherit;font-size:16px;color:#203f4d;min-width:0;width:100%}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #36a4c7;outline-offset:3px}.filters{display:flex;flex-direction:row;align-items:end;flex-wrap:wrap;margin:18px 0;gap:14px}.filters label{flex:1;min-width:140px}.muted{font-size:14px;color:#6d818d}.warn{color:#a65b16}.notice{border-left:4px solid #ca8c2a;background:#fff7e5;font-size:14px;padding:14px 18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.two-col .panel{margin:0}.two-col{margin:20px 0}.review{border-top:1px solid var(--line);padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:16px}.review p{margin:6px 0}.inline{display:flex;flex-wrap:wrap;gap:8px}.empty{text-align:center;padding:24px}.count{font-size:14px;background:#edf3f6;padding:4px 10px;border-radius:20px}.request-line{display:flex;gap:18px;align-items:center;border-top:1px solid var(--line);padding:16px 0}.request-line>span:first-of-type{flex:1}.loading{text-align:center;margin-top:90px}dialog{border:0;border-radius:16px;padding:30px;max-width:780px;width:calc(100% - 32px);max-height:90vh;box-shadow:0 20px 70px #102c3b44}dialog::backdrop{background:#0c283b88}dialog h2{font-size:22px}.segment{display:flex;gap:12px;align-items:end;margin:16px 0}.segment label{flex:1}.secret{font-size:22px;display:block;padding:20px;background:#edf4f6;overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:480px;font-size:13px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:90vw;background:#153e4c;color:white;padding:16px 24px;border-radius:10px;box-shadow:0 6px 30px #153e4c33;display:none;z-index:100}#toast.show{display:block}#toast.error{background:#873c28}dialog ~ #toast{z-index:1000}@media(max-width:900px){.punch-panel{flex-direction:column;align-items:stretch}.punch-actions{min-width:0}.stats{grid-template-columns:repeat(2,1fr)}#identity{gap:5px}.brand{font-size:13px}header{padding:14px 20px;height:auto;min-height:82px}.two-col{grid-template-columns:1fr}}@media(max-width:600px){main{padding:0 14px 48px}header{flex-wrap:wrap;gap:12px}#identity{width:100%;justify-content:space-between}.heading{align-items:flex-start}h1{font-size:25px}.date{font-size:14px;white-space:nowrap}.heading p{font-size:14px}.panel{padding:18px}.punch-panel{padding:22px}.punch-actions{grid-template-columns:repeat(2,1fr)}.punch{min-height:78px}.stats{gap:10px}.stats>div{padding:16px}.stats .text-number{font-size:20px}nav button{padding:12px 10px;font-size:14px}td,th{padding:14px 12px}.review{align-items:stretch;flex-direction:column}.segment{flex-wrap:wrap}.segment label{min-width:100%}.login{margin:30px auto}.request-line{flex-wrap:wrap}.section-heading{flex-wrap:wrap}.filters label{min-width:calc(50% - 14px)}}
.company-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;font-weight:700;padding:10px}.calendar-cell{border:1px solid #dde5e9;border-radius:8px;padding:10px;min-height:140px;overflow-wrap:anywhere}.calendar-cell small{display:block;font-size:12px;margin-top:5px}.calendar-cell p{font-size:13px}.calendar-cell button{font-size:12px;padding:5px 9px}.day-off{background:#f3f5f7;color:#586776}.is-today{outline:2px solid #0c5768}.check{display:flex;gap:12px;align-items:center;margin:14px 0}.check input{width:auto}fieldset{border:1px solid #dce4e8;border-radius:8px;padding:12px}nav{flex-wrap:wrap}@media(max-width:650px){.calendar-cell{padding:4px;min-height:120px}.calendar-cell small{font-size:10px}.calendar-cell p{font-size:11px}.company-grid{gap:2px}.calendar-cell button{padding:4px;font-size:11px}}
fieldset{border:0;margin:0;padding:0;min-width:0}fieldset:disabled input,fieldset:disabled select{color:#243a36;opacity:1;background:#f2f5f3}.family-row{padding:16px 0;border-bottom:1px solid #dce4df;margin-bottom:16px}input[type=checkbox]{width:auto;display:inline-block;margin-right:8px}.review h2{font-size:17px;line-height:1.6}#notice-count{font-weight:700;color:#8a4029}

.interval-work td{background:#e4f3eb;color:#173f2d}.interval-break td{background:#fff0d9;color:#634519}.interval-work td:first-child{border-left:5px solid #398260}.interval-break td:first-child{border-left:5px solid #ce902f}

.status-message{max-width:300px;white-space:normal;overflow-wrap:anywhere}

.team-calendar-frame{display:block;width:100%;height:650px;border:0;border-radius:8px;background:#fff}.team-calendar .section-heading{flex-wrap:wrap;gap:12px}@media(max-width:600px){.team-calendar-frame{height:600px}}

.gc-grid-wrap{overflow-x:auto}.gc-grid{display:grid;grid-template-columns:repeat(7,minmax(105px,1fr));min-width:735px;border:1px solid #dde3ea}.gc-weekday,.gc-day{padding:7px;border:1px solid #e5e9ef;min-width:0}.gc-day{min-height:110px}.gc-weekday{background:#f2f5f8;text-align:center}.gc-empty{background:#fafafa}.gc-today{background:#edf6ff}.gc-event{margin:5px 0;padding:5px;border-left:4px solid #3f51b5;background:#f3f5fa;overflow-wrap:anywhere;font-size:12px}.gc-event summary{cursor:pointer}.gc-event small{display:block}.gc-color-1{border-color:#9e69af}.gc-color-2{border-color:#e67c73}.gc-color-3,.gc-color-4{border-color:#a3ac20}.gc-color-5{border-color:#0b8043}.gc-notices{font-size:13px;color:#765800}

.company-grid .calendar-cell.all-paid{background:#fff4cc;border-color:#e5cc80;color:#514324}.company-grid .calendar-cell.all-paid small{color:#66572e}
.annual-title{display:flex;justify-content:space-between;gap:20px;align-items:center}.annual-title p{margin:0 0 8px}.annual-total{display:flex;flex-direction:column;text-align:right}.annual-total b{font-size:24px;color:#105366}.annual-total span{font-size:13px}.annual-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:13px}.annual-legend span{padding:3px 8px;border:1px solid #dce5e9;border-radius:4px}.legend-off,.annual-off{background:#eef0f2;color:#586776}.legend-paid,.annual-paid{background:#fff4cc;color:#514324}.annual-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.annual-month{background:#fff;padding:14px;border:1px solid #dce5e9;border-radius:10px;break-inside:avoid}.annual-month h2{margin:0 0 4px}.annual-month h2 button{padding:0;border:0;font-size:18px;color:#105366}.annual-month-totals{margin:4px 0 10px;font-size:14px}.annual-month-totals span{display:block;font-size:11px}.annual-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.annual-weekday{text-align:center;font-size:11px}.annual-date{display:flex;align-items:center;justify-content:center;gap:1px;min-height:28px;border:1px solid #e1e7ea;font-size:13px;border-radius:3px;font-variant-numeric:tabular-nums}.annual-date sup{font-size:8px}.annual-footnote{font-size:12px;margin-top:14px}.annual-warning{font-size:13px}@media(max-width:900px){.annual-months{grid-template-columns:repeat(2,minmax(0,1fr))}.annual-title{display:block}.annual-total{text-align:left}}@media(max-width:550px){.annual-months{grid-template-columns:1fr}}
@media print{
 @page{size:A3 landscape;margin:10mm}
 body.printing-annual{background:#fff;color:#172d35;font-size:10pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}
 body.printing-annual>header,body.printing-annual nav,body.printing-annual .annual-controls,body.printing-annual #toast,body.printing-annual dialog{display:none!important}
 body.printing-annual main{max-width:none;width:100%;padding:0;margin:0}
 body.printing-annual .annual-title{display:flex;margin-bottom:3mm}
 body.printing-annual h1{font-size:19pt;margin:0}
 body.printing-annual .annual-title p,body.printing-annual .annual-legend{font-size:9pt;margin:0 0 2mm}
 body.printing-annual .annual-total{text-align:right}body.printing-annual .annual-total b{font-size:15pt}
 body.printing-annual .annual-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:3mm}
 body.printing-annual .annual-month{padding:2mm 3mm;border-radius:2mm}
 body.printing-annual .annual-month h2,body.printing-annual .annual-month h2 button{font-size:12pt;line-height:1.2;margin:0;background:none}
 body.printing-annual .annual-month-totals{font-size:10pt;line-height:1.3;margin:1mm 0 2mm}
 body.printing-annual .annual-month-totals span{font-size:8pt}
 body.printing-annual .annual-mini-grid{gap:0.6mm}
 body.printing-annual .annual-date{min-height:4.5mm;font-size:9pt;line-height:1.1}
 body.printing-annual .annual-weekday{font-size:8pt;line-height:1.1}
 body.printing-annual .annual-footnote{font-size:8pt;line-height:1.3;margin-top:2mm}
 body.printing-annual .annual-warning{font-size:8pt;padding:2mm;margin:1mm 0 2mm}
}
.request-interval{display:grid;grid-template-columns:90px minmax(0,1fr) minmax(0,1fr);gap:10px;padding:14px;margin:12px 0;border-radius:10px;border:1px solid #d1e4e7}
.interval-work{background:#e9f5f8;color:#164956}.interval-rest{background:#fff5d6;color:#665019}
.request-interval label{min-width:0}.request-interval input,.request-interval select{width:100%;min-width:0}.interval-duration{grid-column:1/3;align-self:center;font-weight:700}
.review-interval{display:block;padding:8px;margin:5px 0;border-radius:6px}
@media(max-width:600px){.request-interval{grid-template-columns:minmax(0,1fr)}.interval-duration{grid-column:auto}}
