
:root{--ink:#102321;--muted:#4e5d59;--line:#bdcbc6;--paper:#fff;--canvas:#eef4f1;--green:#0f684f;--green-dark:#084b39;--green-soft:#d5ebe1;--shadow:0 18px 50px rgba(24,48,40,.1);font-family:Inter,Pretendard,"Noto Sans KR",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--canvas)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 85% -10%,#dcece5 0,transparent 30rem),var(--canvas);min-height:100vh}[hidden]{display:none!important}button,input,select{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.muted{color:var(--muted);line-height:1.55}.eyebrow{font-size:.72rem;letter-spacing:.14em;font-weight:800;color:var(--green);margin-bottom:.45rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:1500px;margin:0 auto;padding:28px 30px 16px}.topbar h1{font-size:1.65rem;margin:0}.header-actions{display:flex;align-items:center;gap:.7rem}.save-state{font-size:.82rem;color:var(--green);font-weight:700}.save-state.saving{color:#a36a12}.save-state.error{color:#b3261e}.tabs{position:sticky;top:0;z-index:20;display:flex;gap:.25rem;max-width:1500px;margin:0 auto;padding:0 30px;background:rgba(244,247,245,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.tab{border:0;background:transparent;color:var(--muted);font-weight:750;padding:15px 18px;border-bottom:3px solid transparent}.tab:hover{color:var(--ink)}.tab.active{color:var(--green);border-color:var(--green)}main{max-width:1500px;margin:0 auto;padding:24px 30px 60px}.panel{background:var(--paper);border:1px solid rgba(213,225,220,.9);border-radius:22px;box-shadow:var(--shadow);padding:26px;min-height:420px}.section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:22px}.section-head h2{font-size:1.45rem;margin-bottom:.35rem}.section-head .muted{margin-bottom:0}.button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:10px;padding:10px 15px;font-weight:750;transition:.15s ease}.button:hover{transform:translateY(-1px);border-color:#bdcbc5}.button.primary{background:var(--green);color:#fff;border-color:var(--green)}.button.primary:hover{background:var(--green-dark)}.button.ghost{background:rgba(255,255,255,.65)}.button.danger{color:#a9221a;border-color:#efc9c5;background:#fff7f6}.button.small{font-size:.78rem;padding:7px 10px}.button.full{width:100%}.login-card .button.full{margin-top:12px}.icon-button{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:10px;font-size:1.4rem}.month-control{display:flex;align-items:center;gap:.45rem}.month-control input{height:38px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:#fff}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.summary-card{border:1px solid var(--line);border-radius:15px;padding:15px;background:linear-gradient(145deg,#fff,#f9fbfa)}.summary-card span{display:block;color:var(--muted);font-size:.78rem;margin-bottom:4px}.summary-card strong{font-size:1.4rem}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.legend-item{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 9px;font-size:.76rem;color:var(--muted)}.legend-code{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;font-weight:800}.table-scroll{overflow:auto;border:1px solid var(--line);border-radius:15px;background:#fff}.schedule-wrap{max-height:67vh}.data-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.84rem}.data-table th,.data-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;white-space:nowrap}.data-table th{background:#f3f7f5;font-size:.76rem;color:#53605d;text-transform:none;position:sticky;top:0;z-index:5}.data-table tr:last-child td,.data-table tr:last-child th{border-bottom:0}.data-table th:last-child,.data-table td:last-child{border-right:0}.schedule-table th,.schedule-table td{text-align:center;padding:0;min-width:46px;height:44px}.schedule-table .name-cell{position:sticky;left:0;z-index:6;min-width:112px;background:#fff;text-align:left;padding:8px 12px;font-weight:800;box-shadow:5px 0 10px rgba(21,55,44,.04)}.schedule-table thead .name-cell{background:#eef4f1;z-index:10}.schedule-table .total-cell{min-width:70px;font-weight:800;background:#fafcfb}.schedule-table .weekend{background:#fff8f5}.schedule-table th.weekend{background:#f6eee9;color:#8e5540}.schedule-table .today{box-shadow:inset 0 0 0 2px #1a8d70}.schedule-select{width:100%;height:43px;border:0;background:transparent;text-align:center;text-align-last:center;font-weight:850;appearance:none;outline:0}.schedule-select:focus{box-shadow:inset 0 0 0 2px var(--green)}.footer-row th,.footer-row td{background:#f6f8f7;font-weight:800}.core-row th,.core-row td{background:#edf5f1}.shift-work,.shift-overtime{background:#dff2e9!important;color:#135744}.shift-off{background:#f2f3f3!important;color:#65706d}.shift-leave{background:#fce8e3!important;color:#974534}.shift-afternoon{background:#fff0c9!important;color:#76560e}.shift-lunch{background:#e7e8fb!important;color:#434883}.shift-half{background:#f5e5f8!important;color:#74407e}.shift-night{background:#dfe8f7!important;color:#35547c}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;gap:12px;align-items:end}.card-form{padding:17px;border:1px solid var(--line);border-radius:16px;background:#f9fbfa;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field span,.check-field span{font-size:.76rem;font-weight:750;color:#596562}.field input,.field select{width:100%;height:40px;border:1px solid #cfdbd6;border-radius:9px;background:#fff;padding:0 10px;color:var(--ink)}.field input:focus,.field select:focus{outline:2px solid #abd5c5;border-color:var(--green)}.field.wide{grid-column:span 2}.field.compact{max-width:180px}.check-field{display:flex;align-items:center;gap:8px;height:40px}.check-field input{width:17px;height:17px;accent-color:var(--green)}.form-actions{display:flex;align-items:center;gap:8px}.staff-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.staff-group{border:1px solid var(--line);border-radius:14px;padding:14px}.staff-group h3{font-size:1rem;margin-bottom:10px}.empty{padding:30px;text-align:center;color:var(--muted)}.timeoff-chip{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #edf0ef}.timeoff-chip:first-of-type{border-top:0}.timeoff-main{display:flex;gap:9px;align-items:flex-start}.mini-code{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:8px;font-weight:850}.timeoff-main strong{display:block;font-size:.84rem}.timeoff-main small{display:block;color:var(--muted);margin-top:2px;white-space:normal}.balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-bottom:18px}.balance-card{border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.balance-card span{display:block;font-size:.78rem;color:var(--muted)}.balance-card strong{font-size:1.25rem}.positive{color:#0b7054}.negative{color:#b13b31}.review{color:#a36a12;font-weight:750}.filter-row{display:flex;justify-content:flex-end;margin:12px 0}.staff-table input[type=text],.staff-table input[type=number],.staff-table input[type=date]{height:34px;border:1px solid var(--line);border-radius:7px;padding:0 8px;max-width:130px}.staff-table input[type=checkbox]{accent-color:var(--green);width:17px;height:17px}.inactive-row{opacity:.58;background:#f8f8f8}.editing-form{box-shadow:inset 0 0 0 2px #c8ddd5}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;box-shadow:var(--shadow)}.brand-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--green);color:#fff;font-size:1.3rem;font-weight:900;margin-bottom:18px}.login-card h1{font-size:1.65rem;margin-bottom:8px}.form-error{min-height:1.3em;color:#b3261e;font-size:.82rem;margin:10px 0 0}.loading{position:fixed;inset:0;z-index:100;background:rgba(244,247,245,.82);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;gap:12px;font-weight:750}.spinner{width:22px;height:22px;border:3px solid #c7d8d1;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;right:22px;bottom:22px;z-index:120;max-width:min(380px,calc(100vw - 44px));background:#17201f;color:#fff;border-radius:12px;padding:12px 16px;box-shadow:0 15px 40px rgba(0,0,0,.18);font-size:.86rem}.toast.error{background:#9d2c25}
.schedule-table .today{box-shadow:none}
.rule-panel{border:1px solid var(--line);border-radius:16px;background:#f9fbfa;padding:17px;margin:0 0 18px}.rule-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}.rule-head h3{font-size:1rem;margin-bottom:4px}.rule-head .muted{font-size:.8rem;margin:0}.week-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:10px}.week-rule-card{display:grid;gap:9px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.week-rule-card strong{font-size:.84rem}.week-rule-card small{color:var(--muted)}.week-rule-actions{display:flex;gap:7px}.week-rule-actions select{min-width:0;flex:1;height:36px;border:1px solid #cfdbd6;border-radius:8px;background:#fff;padding:0 8px}.fixed-off-panel{margin-bottom:20px}.fixed-off-table td:nth-child(2){white-space:normal;min-width:360px}.weekday-checks{display:flex;flex-wrap:wrap;gap:6px}.weekday-check{position:relative}.weekday-check input{position:absolute;opacity:0;pointer-events:none}.weekday-check span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:32px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.78rem;font-weight:750;cursor:pointer}.weekday-check input:checked+span{background:var(--green);border-color:var(--green);color:#fff}.weekday-check input:focus-visible+span{outline:2px solid #abd5c5;outline-offset:2px}.rule-badge{display:inline-block;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-size:.7rem;font-weight:800;padding:3px 7px}.rule-badge.unsaved{background:#fff0d7;color:#875d16}.filter-row{gap:12px;flex-wrap:wrap}.filter-row .field{min-width:170px}
.staff-add-form{grid-template-columns:minmax(180px,1fr) minmax(210px,1fr) auto}
.schedule-select:disabled{color:#a6aeab;cursor:not-allowed;background:#f6f8f7}
.overtime-table td:nth-child(5){white-space:normal;min-width:180px;max-width:360px}.overtime-table td:last-child{white-space:nowrap}
.balance-card{width:100%;color:var(--ink);text-align:left;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.balance-card:hover{border-color:var(--green);transform:translateY(-1px)}.balance-card:focus-visible{outline:3px solid var(--green);outline-offset:2px}.balance-card.selected{border-color:var(--green);background:var(--green-soft);box-shadow:inset 0 0 0 2px var(--green)}.balance-card.selected span{color:var(--green-dark);font-weight:800}
.topbar,.tabs,main{width:100%;max-width:1920px}.tabs{background:rgba(238,244,241,.96)}.panel{border-color:#c7d4cf}.schedule-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.reset-button{color:#7c3027;border-color:#d2a39c;background:#fff8f6;white-space:nowrap}.reset-button:hover{border-color:#a65d52;background:#fff0ed}.png-button{color:var(--green-dark);border-color:#8fbfae;background:#f3fbf7;white-space:nowrap}.png-button:hover{border-color:var(--green);background:#e7f5ee}.png-button:disabled{opacity:.65;cursor:wait;transform:none}.schedule-wrap{max-height:calc(100vh - 88px)}
.data-table th{background:#e6eeea;color:#344642}.schedule-table thead .name-cell{background:#d7e5df}.schedule-table .name-cell{box-shadow:6px 0 12px rgba(21,55,44,.09)}.schedule-table .total-cell{background:#eaf0ed}.schedule-table .weekend{background:#f9eee9}.schedule-table th.weekend{background:#ead6cc;color:#743b28}.footer-row th,.footer-row td{background:#dce8e3;font-weight:850;border-top:2px solid #91a79e}.core-row th,.core-row td{background:#c5ddd3}.schedule-table .footer-row .name-cell{background:#dce8e3}.schedule-table .core-row .name-cell{background:#c5ddd3}
.shift-work,.shift-overtime{background:#bfe6d4!important;color:#064b38}.shift-off{background:#dfe4e3!important;color:#354743}.shift-leave{background:#f7cbc2!important;color:#7f2e22}.shift-afternoon{background:#ffe09b!important;color:#5d4300}.shift-lunch{background:#cdd1f4!important;color:#303774}.shift-half{background:#e8c9ee!important;color:#672c70}.shift-night{background:#c8d9f0!important;color:#25466c}.legend-item{border-color:#aebeb8;background:#fbfdfc;color:#394a46}.rule-panel,.card-form{background:#f3f7f5}.week-rule-card,.balance-card,.staff-group{border-color:#b9c8c2}
.fixed-off-table td:nth-child(3){min-width:170px}.fixed-off-table td:nth-child(4){white-space:normal;min-width:180px}.rule-date-input{display:block;width:150px;height:36px;border:1px solid #9fb2aa;border-radius:8px;background:#fff;padding:0 9px;color:var(--ink)}.rule-date-input:focus{outline:2px solid #8fc9b4;border-color:var(--green)}.rule-date-help{display:block;color:var(--muted);font-size:.7rem;margin-top:5px}.rule-status-text{display:block;color:var(--muted);font-size:.74rem;line-height:1.4;margin-top:4px;white-space:normal}.timeoff-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.timeoff-form-grid>.field{align-self:start}.timeoff-form-grid>.field input,.timeoff-form-grid>.field select{height:40px}.timeoff-date-selection{grid-column:1/-1;display:grid;gap:6px;min-height:48px}.timeoff-note-field{grid-column:span 2}.timeoff-form-grid>.button{height:40px;align-self:end}.date-picker-help{color:var(--muted);font-size:.7rem;line-height:1.35}.selected-date-list{display:flex;flex-wrap:wrap;gap:6px;min-height:30px;align-items:center}.selected-date-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #9fbfb3;border-radius:999px;background:#fff;color:var(--ink);padding:4px 5px 4px 9px;font-size:.78rem;font-weight:750}.selected-date-chip button{display:inline-grid;place-items:center;width:24px;height:24px;border:0;border-radius:50%;background:#e7efec;color:#315148;padding:0;line-height:1}.selected-date-chip button:hover,.selected-date-chip button:focus-visible{background:#cfe2da;outline:2px solid var(--green);outline-offset:1px}.date-picker-empty{color:var(--muted);font-size:.76rem}.timeoff-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:12px 0}.timeoff-list-head .field{width:190px}.timeoff-list-head .field input{width:100%;height:40px;border:1px solid #cfdbd6;border-radius:9px;background:#fff;padding:0 10px;color:var(--ink)}.timeoff-list-head .muted{margin:0 0 8px;text-align:right}.timeoff-month-table td:nth-child(4){white-space:normal;width:100%}.timeoff-month-table td:last-child{white-space:nowrap;text-align:right}
@media(max-width:900px){.summary-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field.wide{grid-column:span 2}.form-grid .button{grid-column:span 2}.timeoff-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timeoff-form-grid>.button{grid-column:span 1}.timeoff-date-selection,.timeoff-note-field{grid-column:1/-1}.topbar,.tabs,main{padding-left:16px;padding-right:16px}.panel{padding:18px}.section-head{flex-direction:column}.month-control{width:100%}.month-control input{flex:1}.header-actions .save-state{display:none}}
@media(max-width:560px){.topbar{padding-top:20px}.topbar h1{font-size:1.35rem}.topbar .eyebrow{display:none}.tabs{overflow-x:auto}.tab{padding:13px 12px;font-size:.84rem;white-space:nowrap}.panel{border-radius:16px}.summary-grid{grid-template-columns:1fr 1fr}.summary-card strong{font-size:1.15rem}.form-grid,.timeoff-form-grid{grid-template-columns:1fr}.field.wide,.form-grid .button,.timeoff-form-grid>.button,.timeoff-date-selection,.timeoff-note-field{grid-column:span 1}.timeoff-list-head{align-items:stretch;flex-direction:column}.timeoff-list-head .field{width:100%;max-width:none}.timeoff-list-head .muted{text-align:left;margin:0}.fixed-off-table td:nth-child(2){min-width:290px}.login-card{padding:27px 22px}.button.ghost{font-size:.78rem;padding:8px 10px}}
@media(max-width:900px){.schedule-head-actions{width:100%;justify-content:space-between}.png-button{order:2}.reset-button{order:3}.month-control{order:1}.schedule-wrap{max-height:calc(100vh - 72px)}}
@media(max-width:560px){.schedule-head-actions{align-items:stretch}.png-button,.reset-button{width:100%}.fixed-off-table td:nth-child(3){min-width:160px}.fixed-off-table td:nth-child(4){min-width:170px}}

/* AFTERNOON_ORDER_TAB_V1 */
.afternoon-order-panel{max-width:980px;margin:0 auto;min-height:520px}.afternoon-order-head{align-items:center}.afternoon-order-status{flex:none;padding:8px 11px;border:1px solid #b8d8cc;border-radius:999px;background:#edf8f3;color:var(--green);font-size:.78rem;font-weight:850}.afternoon-order-status.saving{border-color:#ead39f;background:#fff8e7;color:#996817}.afternoon-order-status.error{border-color:#efc8c4;background:#fff5f4;color:#a9221a}.afternoon-order-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;padding:17px;border:1px solid var(--line);border-radius:16px;background:#f9fbfa;margin-bottom:20px}.afternoon-order-add .button{min-width:96px;height:40px}.afternoon-order-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 2px 10px}.afternoon-order-meta>div{display:flex;align-items:baseline;gap:10px}.afternoon-order-meta span{color:var(--muted);font-size:.78rem}.afternoon-order-meta>b:last-child{color:var(--green);font-size:.88rem}.afternoon-order-list{display:flex;flex-direction:column;gap:9px}.afternoon-order-row{display:grid;grid-template-columns:42px minmax(180px,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:#fff}.afternoon-order-row:hover{border-color:#aebfb8;box-shadow:0 7px 20px rgba(24,48,40,.06)}.afternoon-order-number{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-dark);font-weight:900}.afternoon-order-row>input{width:100%;height:40px;border:1px solid #a9cec0;border-radius:9px;background:#fff;padding:0 10px;color:var(--ink);font-weight:800}.afternoon-order-row>input[readonly]{border-color:transparent;background:transparent}.afternoon-order-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.afternoon-order-icon{width:36px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:1rem;font-weight:900}.afternoon-order-icon:disabled{opacity:.32;cursor:not-allowed}.afternoon-order-empty{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed var(--line);border-radius:15px;background:#fbfdfc;color:var(--muted);text-align:center}.afternoon-order-empty b{color:var(--ink)}.afternoon-order-message{min-height:22px;margin:12px 2px 0;color:var(--green);font-size:.82rem;font-weight:750}.afternoon-order-message.error{color:#a9221a}@media(max-width:760px){.tabs{overflow-x:auto}.tab{flex:none}.afternoon-order-add{grid-template-columns:1fr}.afternoon-order-add .button{width:100%}.afternoon-order-row{grid-template-columns:38px minmax(0,1fr)}.afternoon-order-actions{grid-column:2;justify-content:flex-start}.afternoon-order-meta>div{align-items:flex-start;flex-direction:column;gap:2px}}@media(max-width:460px){.afternoon-order-head{flex-direction:column}.afternoon-order-status{align-self:flex-start}}
