:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#fcd34d40,#0000 35%),radial-gradient(circle at 100% 100%,#2dd4bf2e,#0000 30%),linear-gradient(#fffdf7 0%,#f6f7fb 100%);font-family:BIZ UDPGothic,Hiragino Sans,Yu Gothic UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}#root{min-height:100vh}.shell{grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f9fafb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#111827eb;padding:24px 20px}.brand{margin-bottom:24px}.brand-logo{object-fit:contain;width:auto;max-width:190px;height:auto;max-height:72px;margin-bottom:14px;display:block}.brand-logo.is-inverted{filter:invert()}.brand h1{margin:0;font-size:1.35rem}.brand p{color:#d1d5db;margin:8px 0 0;font-size:.9rem}.nav{gap:8px;display:grid}.nav a{color:#e5e7eb;border-radius:12px;padding:10px 12px}.nav a.active{color:#fff;background:#ffffff1f}.content{padding:24px}.panel{background:#ffffffdb;border:1px solid #e5e7ebe6;border-radius:20px;box-shadow:0 18px 42px #0f172a14}.page{gap:20px;display:grid}.page-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.page-header h2{margin:0;font-size:1.6rem}.page-header p{color:#4b5563;margin:6px 0 0}.metrics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.metric-card{padding:20px}.metric-card strong{margin-top:8px;font-size:1.6rem;display:block}.card-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.card{padding:20px}.stack-list{gap:12px;display:grid}.muted{color:#6b7280}.error-text{color:#b91c1c}.inline-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.inline-form-top{align-items:flex-end}.field{gap:6px;display:grid}.field input,.field select,.field textarea{background:#fff;border:1px solid #d1d5db;border-radius:12px;min-width:160px;padding:10px 12px}.numeric-input{text-align:right}.code-input{text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.08em}.search-field,.search-input-wrap{position:relative}.search-popover{z-index:10;background:#fffffffa;border:1px solid #d1d5db;border-radius:16px;gap:4px;max-height:280px;padding:8px;display:grid;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:auto;box-shadow:0 18px 42px #0f172a24}.search-option{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;gap:2px;width:100%;padding:10px 12px;display:grid}.search-option:hover,.search-option:focus-visible{background:#f8fafc;outline:none}.search-option strong{color:#111827;font-size:.95rem}.search-option span,.search-empty{color:#6b7280;font-size:.82rem}.search-empty{padding:12px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.form-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.section-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.section-title{margin:0 0 14px;font-size:1.05rem}.settings-tabs{border-bottom:1px solid #e5e7eb;flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.settings-tabs button{color:#4b5563;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;min-height:40px;padding:8px 12px;font-weight:700}.settings-tabs button.is-active{color:#111827;border-bottom-color:#111827}.info-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:16px;display:grid}.info-card{background:#f9fafbe6;border:1px solid #e5e7eb;border-radius:16px;padding:16px 18px}.info-card-label{color:#6b7280;margin-bottom:8px;font-size:.8rem;display:block}.info-card strong{color:#111827;font-size:1.05rem;display:block}.card+.card{margin-top:16px}.code-block{color:#f9fafb;background:#111827;border-radius:14px;padding:16px;font-size:.85rem;overflow:auto}.snapshot-json-disclosure{margin-top:12px}.snapshot-json-disclosure summary{cursor:pointer;width:fit-content}.badge{color:#365314;background:#ecfccb;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;display:inline-flex}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:100%;max-width:540px;padding:32px}.cta-row{flex-wrap:wrap;gap:12px;margin-top:20px;display:flex}.cta{cursor:pointer;text-align:center;border:none;border-radius:14px;justify-content:center;align-items:center;min-height:46px;padding:12px 18px;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.cta.primary{color:#fff;background:#111827;box-shadow:0 10px 20px #1118271f}.cta.secondary{color:#9a3412;background:#fff7ed;border:1px solid #fdba74}.cta:hover:not(:disabled),.cta:focus-visible:not(:disabled){outline:none;transform:translateY(-1px);box-shadow:0 12px 24px #0f172a1f}.cta:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.cta-emphasis{min-width:240px}.cta-compact{border-radius:12px;min-height:38px;padding:8px 14px;font-size:.92rem}.cta-link{text-decoration:none}.table{border-collapse:collapse;width:100%}.table-scroll{width:100%;overflow-x:auto}.table th,.table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e5e7eb;padding:12px 14px}.table th{color:#6b7280;background:#f8fafce0;font-size:.85rem;position:sticky;top:0}.table-row-selected{background:#ecfccb47}.table-link{gap:2px;display:grid}.table-link strong{color:#111827}.table-link span{color:#6b7280;font-size:.82rem}.checkbox-cell{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.checkbox-cell input{width:18px;height:18px}.attendance-month-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px;display:grid}.attendance-workspace{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.attendance-summary-pane{overscroll-behavior:contain;gap:10px;max-height:min(650px,100vh - 310px);padding-right:6px;display:grid;overflow-y:auto}.attendance-summary-pane::-webkit-scrollbar{width:8px}.attendance-summary-pane::-webkit-scrollbar-track{background:#f3f4f6;border-radius:999px}.attendance-summary-pane::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:999px}.attendance-summary-item{color:#1f2937;text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;gap:8px;width:100%;padding:14px 16px;display:grid}.attendance-summary-item:hover,.attendance-summary-item:focus-visible{border-color:#fdba74;outline:none;box-shadow:0 10px 22px #0f172a14}.attendance-summary-item.is-active{background:#f8fafc;border-color:#111827}.attendance-summary-name{justify-content:space-between;gap:12px;display:flex}.attendance-summary-name span,.attendance-summary-sub{color:#6b7280;font-size:.82rem}.attendance-summary-stats{flex-wrap:wrap;gap:8px;display:flex}.attendance-summary-stats span{color:#365314;background:#ecfccb;border-radius:999px;align-items:center;min-height:28px;padding:3px 8px;font-size:.82rem;font-weight:700;display:inline-flex}.attendance-detail-pane{background:#fff;border:1px solid #e5e7eb;border-radius:14px;min-width:0;padding:16px}.attendance-detail-header{margin-bottom:12px}.attendance-detail-header p{margin:0}.attendance-detail-table{min-width:1120px}.attendance-detail-table input[type=date],.attendance-detail-table input[type=datetime-local],.attendance-detail-table input[type=text],.attendance-detail-table input[type=number]{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:7px 9px}.attendance-detail-table input:disabled{color:#6b7280;background:#f3f4f6}.attendance-minutes-input{width:88px}.attendance-note-input{width:180px}.attendance-save-actions{justify-content:flex-end;margin-top:16px}.attendance-scope-label{margin-top:0}.detail-card{background:#f8fafc;border-radius:14px;padding:14px 16px}.action-card{border:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:16px;display:flex}.action-card-title{color:#111827;margin:0;font-size:1rem;font-weight:700}.status-pill{border-radius:999px;align-items:center;min-height:30px;padding:4px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.status-pill.is-active{color:#3f6212;background:#ecfccb}.status-pill.is-muted{color:#4b5563;background:#e5e7eb}.alert-list{gap:10px;padding-left:0;list-style:none;display:grid}.alert-list-item{background:#fffbeb;border-left:4px solid #f59e0b;border-radius:10px;gap:4px;padding:10px 12px;display:grid}.alert-list-item.is-high{background:#fef2f2;border-left-color:#dc2626}.alert-list-item strong{color:#111827}.alert-list-item span{color:#4b5563;font-size:.9rem}.detail-disclosure{padding:0;overflow:hidden}.detail-disclosure summary{cursor:pointer;justify-content:space-between;align-items:center;padding:16px 18px;list-style:none;display:flex}.detail-disclosure summary::-webkit-details-marker{display:none}.detail-disclosure summary:hover,.detail-disclosure summary:focus-visible{background:#f8fafce6;outline:none}.detail-disclosure-body{padding:0 18px 18px}.markdown-content{color:#1f2937;gap:14px;display:grid}.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5{color:#111827;margin:10px 0 0;line-height:1.35}.markdown-content h2{font-size:1.45rem}.markdown-content h3{font-size:1.18rem}.markdown-content p,.markdown-content ul,.markdown-content ol{margin:0}.markdown-content ul,.markdown-content ol{padding-left:1.35rem}.markdown-content li+li{margin-top:6px}.markdown-content a{color:#0f766e;text-underline-offset:3px;font-weight:700;text-decoration:underline}.markdown-content code{color:#111827;background:#f3f4f6;border-radius:7px;padding:2px 6px;font-size:.92em}.help-figure{margin:6px 0 10px}.help-figure img{background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;width:100%;max-width:920px;height:auto;display:block;box-shadow:0 12px 30px #0f172a14}.help-figure figcaption{color:#6b7280;margin-top:8px;font-size:.9rem}.employee-clock-card{text-align:center;justify-items:center;gap:18px;padding-top:28px;padding-bottom:32px;display:grid;position:relative;overflow:hidden}.employee-clock-card>:not(.employee-clock-logo-background){z-index:1;position:relative}.employee-clock-logo-background{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.employee-clock-bg-logo{opacity:.1;transform-origin:50%;-webkit-user-select:none;user-select:none;max-width:none;height:auto;position:absolute;transform:translate(-50%,-50%)rotate(-45deg)}.employee-clock-bg-logo.is-inverted{filter:invert()}.employee-clock-name{color:#374151;margin:0;font-size:1rem}.employee-clock-caption{letter-spacing:.08em;color:#6b7280;margin:0 0 8px;font-size:.82rem}.employee-clock-now-wrap,.employee-clock-duration-wrap{width:min(75vw,900px)}.employee-clock-now{font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#111827;margin:0;font-size:clamp(3rem,11vw,7rem);font-weight:700;line-height:1}.employee-clock-duration{font-variant-numeric:tabular-nums;color:#1f2937;margin:0;font-size:clamp(1.6rem,4.5vw,2.8rem);font-weight:700;line-height:1.1}.employee-clock-meta{margin:0}.employee-clock-actions{justify-content:center;align-items:stretch;gap:12px;width:min(70vw,720px);display:flex}.employee-clock-main-button,.employee-clock-break-button{min-height:64px;font-size:clamp(1rem,2.8vw,1.4rem);font-weight:700}.employee-clock-main-button{flex:2}.employee-clock-break-button{flex:1}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{z-index:2;position:sticky;top:0}.page-header,.section-header,.action-card{flex-direction:column;align-items:flex-start}.table{white-space:nowrap;display:block;overflow-x:auto}.table-scroll .table{display:table}.attendance-workspace{grid-template-columns:1fr}.attendance-summary-pane{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));max-height:360px}.employee-clock-actions{width:70vw;min-width:0}}@media (width<=640px){.content{padding:16px}.employee-clock-card{gap:16px;padding:20px 14px 26px}.employee-clock-now-wrap,.employee-clock-duration-wrap{width:75vw}.employee-clock-now{font-size:clamp(2.9rem,15vw,5.2rem)}.employee-clock-duration{font-size:clamp(1.35rem,6vw,2.2rem)}.employee-clock-actions{gap:10px;width:70vw}.employee-clock-main-button,.employee-clock-break-button{min-height:58px;padding:10px 12px;font-size:1rem}}
