:root{color-scheme:light;--bg:#f7f8fa;--text:#17202a;--muted:#5d6978;--line:#d9dee7;--surface:#ffffff;--accent:#166a5b;--warn:#a64915}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--bg);color:var(--text);font-family:Arial,Hiragino Sans,Yu Gothic,sans-serif}.shell{display:grid;gap:20px;margin:0 auto;max-width:980px;padding:40px 20px}.app-shell{align-items:start;grid-template-columns:220px minmax(0,1fr);max-width:1240px}.app-content{display:grid;gap:20px;min-width:0}.side-nav{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;gap:18px;padding:16px;position:sticky;top:20px}.side-nav-user{background:#e8f3f0;border:1px solid #b7d8d0;border-radius:8px;display:grid;gap:4px;padding:12px}.side-nav-user span{color:var(--accent);font-size:12px;font-weight:800}.side-nav-user strong{color:var(--text);font-size:15px;line-height:1.35;overflow-wrap:anywhere}.side-nav-user em{color:var(--muted);font-size:12px;font-style:normal;font-weight:700}.side-nav-group{display:grid;gap:6px}.side-nav-title{color:var(--muted);font-size:12px;font-weight:700;line-height:1.4}.side-nav-link{border-radius:6px;color:var(--text);display:block;font-size:14px;font-weight:700;min-height:36px;padding:8px 10px;text-decoration:none}.side-nav-link.active,.side-nav-link:hover{background:#e8f3f0;color:var(--accent)}.side-nav-link.disabled{color:#9aa5b1;cursor:not-allowed;font-weight:600}.side-nav-link.disabled:hover{background:transparent;color:#9aa5b1}.login-shell{max-width:560px;padding-top:72px}.login-panel{gap:16px}.heading{display:grid;gap:10px}.eyebrow{color:var(--accent);font-size:13px;font-weight:700;margin:0}h1,h2,p{margin:0}h1{font-size:38px;line-height:1.15}h2{font-size:18px}p{color:var(--muted);line-height:1.7;max-width:720px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;gap:14px;padding:20px}ul{padding-left:20px}.env-list,ul{display:grid;gap:10px;margin:0}.env-list div{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:36px}.env-list div:last-child{border-bottom:0}dt{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}dd,dt{font-size:13px}dd{color:var(--warn);font-weight:700;margin:0}dd[data-ready=true]{color:var(--accent)}.two-column{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;gap:12px}.compact-form{grid-template-columns:repeat(4,minmax(0,1fr))}.wide-field{grid-column:span 2}.toolbar{align-items:end;display:flex;flex-wrap:wrap;gap:12px}.attendance-filter-grid{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(180px,1fr) minmax(180px,1fr) minmax(140px,.7fr) auto}.attendance-filter-grid label{min-width:0}.attendance-accordion{display:grid;gap:10px}.attendance-day-group{border:1px solid var(--line);border-radius:8px;overflow:hidden}.attendance-day-group summary{align-items:center;background:#ffffff;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:12px 14px}.attendance-day-group summary::-webkit-details-marker{display:none}.attendance-day-group summary span{color:var(--muted);font-size:13px;font-weight:700}.clickable-table-row{cursor:pointer}.clickable-table-row:hover td{background:#f4fbf7}.clickable-table-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.row-main-action{align-items:center;display:inline-flex;gap:8px}.row-main-action small{background:#edf8f2;border:1px solid #cbead8;border-radius:999px;color:var(--accent-strong);font-size:11px;font-weight:800;line-height:1;padding:4px 7px}.assignment-accordion{display:grid;gap:10px}.assignment-group{border:1px solid var(--line);border-radius:8px;overflow:hidden}.assignment-group summary{align-items:center;background:#ffffff;cursor:pointer;display:flex;justify-content:space-between;list-style:none;padding:12px 14px}.assignment-group summary::-webkit-details-marker{display:none}.assignment-group summary span{color:var(--muted);font-size:13px;font-weight:700}.section-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between}label{color:var(--text);display:grid;font-size:13px;font-weight:700;gap:6px}.checkbox-label{align-items:center;display:flex;gap:8px;min-height:40px}.checkbox-panel{border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;margin:0;padding:12px}.checkbox-panel legend{color:var(--text);font-size:13px;font-weight:700;padding:0 4px}.checkbox-grid{display:grid;gap:6px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}input,select,textarea{background:#ffffff;border:1px solid var(--line);border-radius:6px;color:var(--text);font:inherit;min-height:40px;padding:8px 10px;width:100%}textarea{min-height:76px;resize:vertical}.checkbox-label input,input[type=checkbox]{min-height:auto;width:auto}button{border:0;cursor:pointer;font:inherit}.button-link,button{background:var(--accent);border-radius:6px;color:#ffffff;font-weight:700;min-height:40px;padding:8px 14px}.button-link{align-items:center;display:inline-flex;justify-content:center;text-decoration:none;width:fit-content}button:disabled{background:#9aa5b1;cursor:not-allowed}.small-button{font-size:13px;min-height:32px;padding:6px 10px}.secondary-button{background:#4d5f73}.button-row,.store-switcher{display:flex;gap:8px}.store-switcher{flex-wrap:wrap}.status-line{color:var(--accent);font-weight:700}.status-badge{border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;line-height:1;padding:5px 8px}.status-badge.warning{background:#fff1e8;color:var(--warn)}.table-wrap{overflow-x:auto}.embedded-table-wrap{background:#f8fafb;padding:10px}.clock-console,.embedded-table-wrap{border:1px solid var(--line);border-radius:8px}.clock-console{background:var(--surface);display:grid;gap:18px;padding:24px}.clock-main{display:grid;gap:12px}.clock-heading{font-size:24px}.clock-date-row{align-items:center;color:var(--text);display:flex;font-weight:700;gap:12px;justify-content:space-between}.clock-date{font-size:24px;line-height:1.25}.clock-user{color:var(--muted);font-size:13px;font-weight:700}.clock-store-banner{background:#e8f3f0;border:2px solid #8bc1b4;border-radius:8px;display:grid;gap:4px;padding:14px 16px}.clock-store-banner span{color:var(--accent);font-size:13px;font-weight:800}.clock-store-banner strong{color:var(--text);font-size:28px;line-height:1.25}.clock-store-banner em{color:var(--accent);font-size:15px;font-style:normal;font-weight:800}.clock-time{color:var(--text);font-size:76px;font-weight:800;line-height:1}.clock-rule-note{background:#eef2f6;border-left:4px solid var(--accent);color:var(--text);font-size:13px;font-weight:700;max-width:100%;padding:10px 12px}.clock-state-row{display:flex;flex-wrap:wrap;gap:10px}.clock-state-pill{background:#eef2f6;border:1px solid var(--line);border-radius:6px;color:var(--text);font-size:14px;font-weight:700;padding:8px 10px}.clock-button-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.clock-support-panel{align-items:end;background:#f6f8fa;border:1px solid var(--line);border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(220px,.8fr) minmax(220px,1fr) minmax(220px,1fr);padding:14px}.clock-mode-buttons{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.clock-mode-button{background:#ffffff;border:2px solid var(--line);color:var(--text)}.clock-mode-button.active{background:var(--accent);border-color:var(--accent);color:#ffffff}.clock-support-accounting{background:#e8f3f0;border:1px solid #b7d8d0;border-radius:8px;display:grid;gap:4px;min-height:64px;padding:10px 12px}.clock-support-accounting span{color:var(--accent);font-size:12px;font-weight:800}.clock-support-accounting strong{color:var(--text);font-size:18px}.clock-active-panel{background:#f6f8fa;border:1px solid var(--line);border-radius:8px;display:grid;gap:12px;padding:14px}.clock-active-panel .section-title-row span{color:var(--accent);font-size:13px;font-weight:800}.clock-active-list{display:flex;flex-wrap:wrap;gap:10px}.clock-active-employee{background:#ffffff;border:2px solid var(--line);color:var(--text);display:grid;gap:4px;justify-items:start;min-height:58px;min-width:160px;padding:10px 12px}.clock-active-employee.active{background:#e8f3f0;border-color:var(--accent)}.clock-active-employee strong{font-size:16px;line-height:1.25}.clock-active-employee span{color:var(--accent);font-size:12px;font-weight:800}.clock-action-button{background:#f7f9fb;border:2px solid #2f73b7;color:#2f73b7;font-size:18px;min-height:92px}.clock-action-button.primary.allowed{background:#2f73b7;color:#ffffff}.clock-action-button.secondary.allowed{background:#ffffff;color:#2f73b7}.clock-action-button:disabled{background:#f1f3f6;border-color:#c8d0da;color:#9aa5b1}.clock-employee-select,.clock-memo{max-width:520px}.time-card{background:#f6f8fa;display:grid;gap:12px;padding:18px}.time-card-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.time-card-header span{color:var(--accent);font-size:13px;font-weight:700}.time-card-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.time-card-grid div{background:#ffffff;border:1px solid var(--line);border-radius:6px;display:grid;gap:6px;min-height:64px;padding:10px}.time-card-grid span{color:var(--muted);font-size:12px;font-weight:700}.time-card-grid strong{color:var(--text);font-size:16px}.clock-history{border-top:1px solid var(--line);display:grid;gap:10px;padding-top:14px}.clock-history h3{font-size:15px;margin:0}.work-session-list{display:grid;gap:10px}.work-session-row{background:#ffffff;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(4,minmax(110px,1fr)) minmax(160px,1.4fr);overflow:hidden}.work-session-row div{border-right:1px solid var(--line);display:grid;gap:6px;min-height:66px;padding:10px 12px}.work-session-row div:last-child{border-right:0}.work-session-row span{color:var(--muted);font-size:12px;font-weight:700}.work-session-row strong{color:var(--text);font-size:16px}.work-session-hours strong{font-size:13px}.work-session-total{align-items:center;background:#e8f3f0;border:1px solid #b7d8d0;border-radius:8px;display:flex;gap:16px;justify-content:flex-end;min-height:48px;padding:10px 14px}.work-session-total span{color:var(--accent);font-size:13px;font-weight:700}.work-session-total strong{color:var(--text);font-size:20px}.attendance-session-editor{border:1px solid var(--line);border-radius:8px;display:grid;gap:12px;padding:14px}.attendance-session-editor h3{margin:0}.attendance-session-editor .section-title-row strong{color:var(--accent);font-size:15px}.attendance-session-list{display:grid;gap:10px}.attendance-session-row{background:#ffffff;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr)) minmax(110px,.7fr);overflow:hidden}.attendance-session-row>div,.attendance-session-row>label{border-right:1px solid var(--line);display:grid;gap:6px;min-height:72px;padding:10px 12px}.attendance-session-row>div:last-child,.attendance-session-row>label:last-child{border-right:0}.attendance-session-row input{border:0;font-size:15px;font-weight:800;min-height:30px;padding:0}.attendance-session-row select{border:1px solid var(--line);border-radius:6px;font-size:14px;font-weight:800;min-height:34px;padding:0 8px}.attendance-session-row span{color:var(--muted);font-size:13px;font-weight:700}.attendance-session-row strong{color:var(--text);font-size:18px}.datetime-select-field{display:grid;gap:8px}.datetime-select-field.edited{background:#fff7df;border-left:4px solid #d98f00;margin:-10px -12px;padding:10px 12px}.datetime-select-field span{align-items:center;display:flex;gap:8px}.datetime-select-field em{background:#f6b73c;border-radius:999px;color:#3f2a00;font-size:11px;font-style:normal;font-weight:800;line-height:1;padding:4px 7px}.datetime-select-pair{display:grid;gap:8px;grid-template-columns:minmax(130px,1fr) repeat(2,minmax(76px,.45fr))}.datetime-select-pair label{border:0;color:var(--muted);display:grid;font-size:12px;font-weight:700;gap:4px;min-height:auto;padding:0}.attendance-break-list{border-right:0;border-top:1px solid var(--line);grid-column:1/-1}.attendance-break-list p{color:var(--muted);font-size:13px;font-weight:700;margin:0}.attendance-break-row{border:1px solid var(--line);border-radius:6px;display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));overflow:hidden}.attendance-break-row>label{border-right:1px solid var(--line);min-height:62px}.attendance-break-row>label:last-child{border-right:0}table{border-collapse:collapse;min-width:100%}td,th{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;white-space:nowrap}th{color:var(--muted);font-size:13px}.audit-table{min-width:1120px}.audit-value{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;max-width:380px;overflow:hidden;text-overflow:ellipsis}.detail-box{border:1px solid var(--line);border-radius:8px;display:grid;gap:12px;padding:14px}.detail-box h3{font-size:16px;margin:0}.detail-box h4{font-size:14px;margin:0}.import-column-map,.import-error-box,.import-sample-box,.import-warning-box{display:grid;gap:8px}.import-column-map dl{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0}.import-column-map div{background:#f6f8fb;border:1px solid var(--line);border-radius:8px;display:grid;gap:4px;padding:10px}.import-column-map div.missing{background:#fff7ed;border-color:#fed7aa}.import-column-map dt{color:var(--muted);font-size:12px;font-weight:800}.import-column-map dd{font-weight:800;margin:0}.import-error-box{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:12px}.import-warning-box{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:12px}.detail-box pre{background:#f2f4f7;border-radius:6px;margin:0;overflow-x:auto;padding:12px;white-space:pre-wrap}.detail-list{display:grid;gap:8px;margin:0}.detail-list div{border-bottom:1px solid var(--line);display:flex;gap:16px;justify-content:space-between;padding:8px 0}.detail-list div:last-child{border-bottom:0}.modal-backdrop{align-items:center;background:rgba(23,32,42,.42);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:20}.modal-panel{background:var(--surface);border-radius:8px;box-shadow:0 24px 80px rgba(23,32,42,.24);display:grid;gap:14px;max-height:min(720px,calc(100vh - 40px));max-width:780px;overflow:auto;padding:20px;width:100%}@media (max-width:760px){.app-shell{grid-template-columns:1fr}.side-nav{position:static}.compact-form,.two-column{grid-template-columns:1fr}.clock-button-grid,.clock-support-panel,.time-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clock-support-accounting{grid-column:1/-1}.clock-time{font-size:48px}.work-session-row{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-session-row{grid-template-columns:1fr}.attendance-session-row>div,.attendance-session-row>label,.work-session-row div{border-bottom:1px solid var(--line)}.work-session-row div:nth-child(2n){border-right:0}.work-session-row div:last-child{border-bottom:0}.attendance-session-row>div,.attendance-session-row>label{border-right:0}.attendance-session-row>div:last-child{border-bottom:0}.attendance-break-row,.attendance-filter-grid{grid-template-columns:1fr}.datetime-select-pair{grid-template-columns:minmax(130px,1fr) repeat(2,minmax(68px,.4fr))}.attendance-break-row>label{border-bottom:1px solid var(--line);border-right:0}.attendance-break-row>label:last-child{border-bottom:0}.work-session-hours{grid-column:1/-1}.work-session-total{justify-content:space-between}.wide-field{grid-column:auto}h1{font-size:30px}}@media (max-width:480px){.datetime-select-pair{grid-template-columns:1fr 1fr}.datetime-select-pair label:first-child{grid-column:1/-1}}