:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f5f3ee;--color-surface:#fff;--color-ink:#1d2b2f;--color-ink-secondary:#5c6b70;--color-line:#d8d3c6;--color-control-border:#7a8589;--color-brand:#0e5a4a;--color-brand-hover:#0a463a;--color-on-brand:#fff;--color-danger:#a12b2b;--color-on-danger:#fff;--color-focus:#1a56c4;--color-status-in:#14683b;--color-status-in-bg:#e2f3e8;--color-status-out:#4d5b60;--color-status-out-bg:#e9e7e0;--color-status-warning:#7a4e00;--color-status-warning-bg:#fbefd0;--color-status-danger:#8f2424;--color-status-danger-bg:#fbeaea;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", "Noto Sans KR", sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5rem;--line-height:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius:.5rem;--tap-size:2.75rem;--page-max:80rem;--page-gutter:var(--space-4)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--color-bg);color:var(--color-ink);font:var(--text-base) / var(--line-height) var(--font-sans);margin:0}h1,h2,h3{margin:0 0 var(--space-3);line-height:1.25}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}p{margin:0 0 var(--space-3)}a{color:var(--color-brand)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-4rem;left:var(--space-3);z-index:10;padding:var(--space-2) var(--space-3);border:2px solid var(--color-brand);border-radius:var(--radius);background:var(--color-surface);position:absolute}.skip-link:focus{top:var(--space-3)}.app-header{border-bottom:1px solid var(--color-line);background:var(--color-surface)}.app-header__bar{align-items:center;gap:var(--space-2) var(--space-4);max-width:var(--page-max);padding:var(--space-2) var(--page-gutter);flex-wrap:wrap;margin:0 auto;display:flex}.brand{color:var(--color-brand);font-size:var(--text-lg);font-weight:700}.tabs{gap:var(--space-1);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.tabs a,.more__panel a{min-height:var(--tap-size);padding:0 var(--space-3);border-radius:var(--radius);color:var(--color-ink);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.tabs a[aria-current=page],.more__panel a[aria-current=page]{background:var(--color-brand);color:var(--color-on-brand)}.more{align-self:flex-start;position:relative}.more summary{min-height:var(--tap-size);padding:0 var(--space-3);border-radius:var(--radius);cursor:pointer;align-items:center;display:inline-flex}.more__panel{z-index:5;min-width:14rem;max-width:calc(100vw - 2 * var(--page-gutter));margin-top:var(--space-1);padding:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);flex-direction:column;display:flex;position:absolute;right:0;box-shadow:0 .5rem 1.5rem #1d2b2f26}@media (width<=47.99rem){.app-header__bar{position:relative}.more{position:static}.more__panel{left:var(--page-gutter);right:var(--page-gutter);min-width:0;max-width:none}}.app-header__account{align-self:flex-start;margin-left:auto}.page{max-width:var(--page-max);padding:var(--space-5) var(--page-gutter) var(--space-7);margin:0 auto}.page--narrow{max-width:28rem}.card{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface)}.stack>*+*{margin-top:var(--space-4)}.muted{color:var(--color-ink-secondary)}label,.label{margin-bottom:var(--space-1);font-weight:600;display:block}input,select,textarea{width:100%;min-height:var(--tap-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-control-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;font:inherit}.field+.field{margin-top:var(--space-4)}.field__hint{margin:var(--space-1) 0 0;color:var(--color-ink-secondary);font-size:var(--text-sm)}.field__error{margin:var(--space-1) 0 0;color:var(--color-status-danger);font-size:var(--text-sm)}.btn{min-height:var(--tap-size);padding:0 var(--space-4);border:1px solid var(--color-control-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-ink);font:inherit;cursor:pointer;justify-content:center;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.btn--primary{border-color:var(--color-brand);background:var(--color-brand);color:var(--color-on-brand)}.btn--primary:hover:not(:disabled){background:var(--color-brand-hover)}.btn--danger{border-color:var(--color-danger);background:var(--color-danger);color:var(--color-on-danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.status{padding:0 var(--space-2);font-size:var(--text-sm);border-radius:999px;font-weight:600;display:inline-block}.status--in{background:var(--color-status-in-bg);color:var(--color-status-in)}.status--out{background:var(--color-status-out-bg);color:var(--color-status-out)}.status--warning{background:var(--color-status-warning-bg);color:var(--color-status-warning)}.status--danger{background:var(--color-status-danger-bg);color:var(--color-status-danger)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top}.page-header{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.page-header h1{margin:0}.page-header__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.page>section+section{margin-top:var(--space-6)}.stack--tight>*+*{margin-top:var(--space-2)}.row{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.toolbar{align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.toolbar--end{align-items:flex-end}.toolbar>.field{flex:12rem;min-width:0}.toolbar .field+.field,.form-grid .field+.field{margin-top:0}.form-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));display:grid}.location-label{min-height:var(--tap-size);align-items:center;gap:var(--space-1);margin:0;display:flex}.banner-wrap{max-width:var(--page-max);margin:var(--space-3) auto 0;padding:0 var(--page-gutter)}.link-action{min-height:var(--tap-size);align-items:center;display:inline-flex}.account{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.account__who{font-size:var(--text-sm);color:var(--color-ink-secondary)}.card+.card,.cards>.card{margin-top:0}.cards{gap:var(--space-3);display:grid}.card h2,.card h3{margin-top:0}.card__title{align-items:center;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.card__title h2,.card__title h3{margin:0}.card__actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.meta{gap:var(--space-1) var(--space-4);margin:0 0 var(--space-3);grid-template-columns:max-content 1fr;display:grid}.meta__row{display:contents}.meta dt{color:var(--color-ink-secondary)}.meta dd{overflow-wrap:anywhere;margin:0}.notice{padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);border-left-width:.3rem}.notice--info{border-left-color:var(--color-focus)}.notice--success{border-left-color:var(--color-status-in);background:var(--color-status-in-bg)}.notice--warning{border-left-color:var(--color-status-warning);background:var(--color-status-warning-bg)}.notice--danger{border-left-color:var(--color-danger);background:var(--color-status-danger-bg)}.notice p{margin:0 0 var(--space-2)}.notice>:last-child{margin-bottom:0}.notice__title,.notice__message{font-weight:700}.notice__small{font-size:var(--text-sm);color:var(--color-ink-secondary);overflow-wrap:anywhere}.notice__small span+span{margin-left:var(--space-3)}.notice__actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:var(--space-1);padding:0;font-weight:600}.field__optional{color:var(--color-ink-secondary);font-weight:400}.field--check+.field--check{margin-top:var(--space-1)}label.check{align-items:flex-start;gap:var(--space-3);min-height:var(--tap-size);padding:var(--space-2) 0;cursor:pointer;margin:0;font-weight:400;display:flex}label.check input{width:1.4rem;height:1.4rem;min-height:1.4rem;accent-color:var(--color-brand);flex:none;margin:.15rem 0 0;padding:0}.check .field__hint{margin-top:0;display:block}.radio-group--inline .radio-group__options{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.radio-group--inline label.check{padding:var(--space-2) var(--space-3);border:1px solid var(--color-control-border);border-radius:var(--radius);background:var(--color-surface);align-items:center}.radio-group--inline label.check:has(input:checked){border-color:var(--color-brand);background:var(--color-status-in-bg)}@media (width>=40rem){.radio-group--inline .radio-group__options{grid-template-columns:repeat(4,minmax(0,1fr))}}input[type=checkbox],input[type=radio]{width:1.4rem}textarea{resize:vertical}.form-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.modal-backdrop{z-index:20;padding:var(--space-4);background:#1d2b2f8c;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{width:min(34rem,100%);padding:var(--space-5) var(--space-4);border-radius:var(--radius);background:var(--color-surface);margin-top:4vh;box-shadow:0 1rem 3rem #1d2b2f59}.modal h2{margin-top:0}.modal__actions{justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;display:flex}body.modal-open{overflow:hidden}.empty{padding:var(--space-5) var(--space-4);border:1px dashed var(--color-control-border);border-radius:var(--radius);text-align:center;color:var(--color-ink-secondary)}.empty__title{margin:0 0 var(--space-2);color:var(--color-ink);font-weight:700}.empty>:last-child{margin-bottom:0}.code-box{padding:var(--space-2) var(--space-4);border:2px solid var(--color-brand);border-radius:var(--radius);background:var(--color-surface);font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.1em;-webkit-user-select:all;user-select:all;font-weight:700;display:inline-block}.data-table th{font-size:var(--text-sm);color:var(--color-ink-secondary)}@media (width<=40rem){.data-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.data-table,.data-table tbody{display:block}.data-table tr{margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);display:block}.data-table td{justify-content:space-between;gap:var(--space-3);padding:var(--space-1) 0;border-bottom:0;display:flex}.data-table td:before{content:attr(data-label);color:var(--color-ink-secondary);flex:0 0 38%;font-weight:600}.data-table__value{text-align:right;flex:auto;justify-content:flex-end}.data-table td:empty{display:none}}.plain-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.data-table__value{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:inline-flex}.row--end{align-items:flex-end}.row--end .field{flex:14rem}.language-switch{width:auto;min-height:44px;padding:var(--space-1) var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);color:var(--color-ink);font:inherit}.app-header__account{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.sign-in__top{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chips .status{padding:var(--space-1) var(--space-3)}.board-updated{margin:0 0 var(--space-1);align-items:center;gap:var(--space-2);color:var(--color-ink-secondary);flex-wrap:wrap;display:flex}.board-updated--stale{color:var(--color-status-warning);font-weight:600}.board-section{padding:var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface)}.board-section--warning{border-color:var(--color-status-warning);background:var(--color-status-warning-bg)}.board-section__count{min-width:1.75rem;margin-left:var(--space-1);padding:0 var(--space-2);background:var(--color-status-out-bg);color:var(--color-status-out);font-size:var(--text-sm);text-align:center;border-radius:999px;display:inline-block}.board-group+.board-group{margin-top:var(--space-4)}.board-group h3{margin:0 0 var(--space-2);font-size:var(--text-base);color:var(--color-ink-secondary)}.board-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}@media (width>=48rem){.board-list{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr))}}.board-row{padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-bg)}.board-row__head{justify-content:space-between;gap:var(--space-3);display:flex}.board-row__name{align-items:center;gap:var(--space-1) var(--space-2);overflow-wrap:anywhere;flex-wrap:wrap;font-weight:700;display:inline-flex}.board-row__duration{font-variant-numeric:tabular-nums;flex:none;font-weight:600}.board-row__meta{gap:0 var(--space-3);font-size:var(--text-sm);color:var(--color-ink-secondary);flex-wrap:wrap;display:flex}.board-row__action{margin-top:var(--space-1);font-size:var(--text-sm)}.pick-list{max-height:24rem;margin:var(--space-3) 0 0;border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);padding:0;list-style:none;overflow-y:auto}.pick-list__item{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);padding:0 var(--space-3);border-bottom:1px solid var(--color-line);flex-wrap:wrap;display:flex}.pick-list__item:last-child{border-bottom:0}.pick-list__item--stack{padding-block:var(--space-2);flex-direction:column;align-items:stretch}.pick-list__head,.pick-list__meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.pick-list__head{justify-content:space-between}.arm__time{font-size:var(--text-xl);font-variant-numeric:tabular-nums;font-weight:700}.tag-uid{font-family:var(--font-mono);font-size:var(--text-base);margin:0}.checks{margin:0;padding:0;list-style:none}.checks li:before{width:1.5rem;font-weight:700;display:inline-block}.checks__ok:before{content:"✓";color:var(--color-status-in)}.checks__fail:before{content:"✗";color:var(--color-status-danger)}.marks{gap:var(--space-1);flex-wrap:wrap;display:inline-flex}.marks .status{border-radius:var(--radius);line-height:1.4}.ts-result__head{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.ts-result__head h2{overflow-wrap:anywhere;margin:0}.ts-asof{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.period__week .btn{flex:none}.ts-table th,.ts-table td{padding:var(--space-2)}.ts-employee{border-top:2px solid var(--color-line)}.ts-employee--open>tr:first-child{background:var(--color-bg)}.ts-person{margin-bottom:var(--space-1);overflow-wrap:anywhere;flex-direction:column;align-items:flex-start;gap:0;display:flex}.ts-person .marks{margin-top:var(--space-1)}.ts-carry{margin-top:var(--space-1);color:var(--color-ink-secondary);font-size:var(--text-sm);max-width:16rem;line-height:1.35}.ts-toggle{min-height:var(--tap-size);padding:0 var(--space-3);white-space:nowrap}.ts-table>thead th:first-child,.ts-table>tbody>tr:first-child>td:first-child{min-width:9.5rem}.ts-day-cell,.ts-num{font-variant-numeric:tabular-nums}.ts-day-cell{min-width:4rem}@media (width>=40.01rem){.ts-table th.ts-num,.ts-day-cell,.ts-num{text-align:right}}.ts-figure{flex-direction:column;align-items:flex-end;gap:0;display:inline-flex}.ts-figure .muted{font-size:var(--text-sm)}.ts-total{font-variant-numeric:tabular-nums;font-weight:700}.ts-notes{font-size:var(--text-sm);flex-direction:column;align-items:flex-start}.ts-caption{margin:0 0 var(--space-1);font-size:var(--text-base)}.ts-detail>td{border-bottom:0;padding:0}.ts-detail__body{padding:var(--space-3);background:var(--color-bg)}.ts-day{padding-top:var(--space-3);border-top:1px solid var(--color-line)}.ts-day h4,.ts-shift h5{font-size:var(--text-base);margin:0}.ts-day__head,.ts-shift__head{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;display:flex}.ts-day__totals,.ts-shift__totals{margin:var(--space-1) 0 var(--space-2);font-variant-numeric:tabular-nums}.ts-shift{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface)}.ts-punch{align-items:flex-start;gap:var(--space-1);flex-direction:column;display:flex}.ts-punch__main{font-variant-numeric:tabular-nums}.ts-breaks{margin-top:var(--space-3)}.ts-breaks__title{margin:0 0 var(--space-1);font-weight:700}.ts-break__line{margin:0 0 var(--space-1);font-variant-numeric:tabular-nums}.ts-break p{margin-bottom:var(--space-1)}.ts-break__settings{font-size:var(--text-sm)}.ts-legend{padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);font-size:var(--text-sm)}.ts-legend h3{font-size:var(--text-base);margin:0}.ts-legend summary{min-height:var(--tap-size);cursor:pointer;padding:.625rem 0;font-weight:600;display:list-item}.ts-marks-legend{gap:var(--space-2);margin:0;display:grid}.ts-marks-legend__row{gap:var(--space-1) var(--space-3);display:grid}.ts-marks-legend dt,.ts-marks-legend dd{margin:0}@media (width>=48rem){.ts-marks-legend__row{grid-template-columns:minmax(13rem,18rem) 1fr}}.ts-punch-edit{margin:var(--space-3) 0 0;padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface)}.ts-punch-edit>legend{padding:0 var(--space-1);font-variant-numeric:tabular-nums}.ts-punch-edit .stack>*+*{margin-top:var(--space-2)}.pending h3,.correction h3{overflow-wrap:anywhere}.break-rule{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-line)}.break-rule h3{font-size:var(--text-base);margin:0}.break-rule__history summary{min-height:var(--tap-size);cursor:pointer;padding:.625rem 0;font-weight:600;display:list-item}@media (width<=40rem){.ts-table>tbody>tr:first-child>td:first-child{display:block}.ts-table>tbody>tr:first-child>td:first-child:before{content:none}.ts-person{margin-bottom:var(--space-2)}.ts-figure{align-items:baseline;gap:var(--space-2);flex-direction:row}.ts-detail{margin-top:calc(-1 * var(--space-3));border-radius:0 0 var(--radius) var(--radius);background:var(--color-bg);border-top:0}.ts-detail>td{display:block}.ts-detail>td:before{content:none}.ts-detail__body{padding:var(--space-2) 0}.ts-employee{border-top:0}}.period__week{gap:var(--space-2);grid-template-columns:1fr 1fr;align-items:end;display:grid}.period__date{grid-area:1/1/auto/-1}.period__prev{grid-area:2/1}.period__next{grid-area:2/2}.period__current{grid-area:3/1/auto/-1}.period__week .btn{width:100%}@media (width>=40.01rem){.period__week{flex-wrap:wrap;display:flex}.period__date{flex:14rem}.period__week .btn{width:auto}}.export-panel h2{margin-bottom:var(--space-2);font-size:var(--text-base)}.export-panel__notes{font-size:var(--text-sm);margin:0}.padlock{align-items:center;gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:inline-flex}.padlock__badge{align-items:center;gap:var(--space-1);display:inline-flex}.padlock__icon{flex:none}.padlock__who{font-size:var(--text-sm);color:var(--color-ink-secondary)}.ts-week-statuses>li{padding:var(--space-1) 0}.finalize-list{gap:var(--space-2);display:grid}.finalize-list__item{overflow-wrap:anywhere}.finalize-list__item--blocker{gap:var(--space-1);padding-left:var(--space-3);border-left:3px solid var(--color-status-warning);display:grid}.finalize-list__fixes .link-action{min-height:var(--tap-size)}.finalize-override{padding:var(--space-3);border:1px solid var(--color-danger);border-radius:var(--radius)}.finalize-check>summary{min-height:var(--tap-size);cursor:pointer;color:var(--color-brand);align-items:center;font-weight:600;display:flex}.finalize-check[open]>summary{margin-bottom:var(--space-2)}.finalize-sha{overflow-wrap:anywhere;word-break:break-all}.adjustments{gap:var(--space-2);display:grid}.adjustments__line{gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius);background:var(--color-surface);flex-wrap:wrap;display:flex}.adjustments__who{gap:var(--space-1) var(--space-2);overflow-wrap:anywhere;flex-wrap:wrap;flex:100%;display:inline-flex}.adjustments__change{color:var(--color-status-in);font-weight:600}.adjustments__change--down{color:var(--color-status-danger)}.stored-sets{gap:var(--space-3);display:grid}.stored-sets__set{padding:var(--space-2) var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius)}
