:root{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--brand: #FEE500;--brand-hover: #FADA0A;--brand-dark: #E6CF00;--bg: #FFFBF0;--bg-pure: #F9F9F9;--surface: #FFFFFF;--surface-hover: #FFF9E6;--border: #E8E0D0;--text: #191919;--text-muted: #5C5C5C;--pastel-annual: #FFB7B2;--pastel-half: #FFB7B2;--pastel-off: #FFB7B2;--pastel-daegun: #C1E1C1;--pastel-teukgeun: #C1E1C1;--kakao-yellow: #FEE500;--kakao-yellow-hover: #FADA0A;--kakao-yellow-dark: #E6CF00;--kakao-yellow-soft: rgba(254, 229, 0, .15);--kakao-black: #191919;--kakao-black-85: rgba(25, 25, 25, .85);--kakao-gray-1: #F5F2EB;--kakao-gray-2: #E8E4DC;--kakao-gray-3: #B2AEA6;--kakao-gray-4: #8E8A82;--radius: 16px;--radius-sm: 12px;--radius-xs: 8px;--shadow: 0 2px 12px rgba(0, 0, 0, .06);--shadow-card: 0 4px 20px rgba(0, 0, 0, .06);--shadow-kakao: 0 2px 10px rgba(254, 229, 0, .25);--danger: #E74C3C;--success: #27AE60;--table-header-bg: #FFFBF0}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text)}#root{max-width:1280px;margin:0 auto;padding:1.5rem;min-height:100vh;text-align:left}a{font-weight:500;color:var(--kakao-black);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--text);font-weight:600;letter-spacing:-.02em}.login-panel{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(180deg,#FFF9E6 0%,var(--bg) 40%)}.login-box{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--brand);border-radius:var(--radius);padding:40px 32px;box-shadow:var(--shadow-card)}.login-box h1{font-size:1.5rem;font-weight:700;text-align:center;margin-bottom:8px;color:var(--kakao-black);letter-spacing:-.02em}.login-subtitle{color:var(--text-muted);font-size:.9rem;text-align:center;margin-bottom:28px}.login-form .form-row{margin-bottom:16px}.login-error{color:var(--danger);font-size:.9rem;margin-bottom:12px;min-height:1.2em}.login-form .btn-primary{background:var(--brand);color:var(--kakao-black);font-weight:600;border-radius:var(--radius);margin-top:8px;box-shadow:0 2px 8px #fee50059;transition:background .3s,color .3s,box-shadow .3s}.login-form .btn-primary:hover{background:var(--brand-hover);color:var(--kakao-black);box-shadow:0 3px 12px #fee50073}.btn-block{width:100%;padding:14px;margin-top:8px}.login-hint{margin-top:24px;font-size:.8rem;color:var(--text-muted);text-align:center}.app{min-height:100vh;background:linear-gradient(180deg,#FFF9E6 0%,var(--bg) 45%);color:var(--kakao-black)}.app-loading{display:flex;align-items:center;justify-content:center;min-height:60vh;color:var(--text-muted);font-size:1rem}.app-nav{background:var(--surface);border-radius:var(--radius);padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow-card);border:1px solid var(--border);border-bottom:3px solid var(--brand)}@media(min-width:600px){.app-nav{padding:12px 20px;margin-bottom:24px}}.app-nav-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.app-tabs-main-inner{display:flex;gap:6px;padding:4px;background:var(--kakao-gray-1);border-radius:var(--radius);width:fit-content;box-shadow:0 1px 4px #0000000a}.app-tab-main{padding:10px 14px;font-size:.9rem;font-weight:500;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:background .3s,color .3s,box-shadow .3s}@media(min-width:600px){.app-tab-main{padding:10px 20px;font-size:.95rem}}.app-tab-main:hover{color:var(--kakao-black);background:var(--surface);box-shadow:0 1px 2px #0000000a}.app-tab-main.active{background:var(--brand);color:var(--kakao-black);font-weight:700;box-shadow:var(--shadow-kakao)}.app-section-title{font-size:1.1rem;font-weight:600;color:var(--kakao-black)}.app-tabs-right{display:flex;align-items:center;gap:12px}.app-user-name{font-size:.9rem;font-weight:500;color:var(--kakao-black-85)}.app-logout-btn{padding:8px 16px;font-size:.9rem;font-weight:500;background:var(--kakao-gray-1);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:background .3s,color .3s,box-shadow .3s}.app-logout-btn:hover{background:var(--kakao-gray-2);box-shadow:0 2px 6px #00000014}.app-nav-sep{color:var(--kakao-gray-3);font-size:.9rem;-webkit-user-select:none;user-select:none}.app-profile-btn{padding:8px 16px;font-size:.9rem;font-weight:500;background:var(--kakao-gray-1);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 3px #0000000d;transition:background .3s,color .3s,box-shadow .3s}.app-profile-btn:hover{background:var(--kakao-gray-2);box-shadow:0 2px 6px #00000014}.app-profile-btn.active{background:var(--brand);color:var(--kakao-black);font-weight:600}.app-tabs-sub{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.app-tabs-sub .app-tab{padding:8px 12px;font-size:.85rem;font-weight:500;background:var(--kakao-gray-1);border:none;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;box-shadow:0 1px 3px #0000000a;transition:background .3s,color .3s,box-shadow .3s}@media(min-width:600px){.app-tabs-sub .app-tab{padding:8px 16px;font-size:.9rem}}.app-tabs-sub .app-tab:hover{color:var(--kakao-black);background:var(--surface);box-shadow:0 1px 2px #0000000a}.app-tabs-sub .app-tab.active{background:var(--brand);color:var(--kakao-black);font-weight:700;box-shadow:var(--shadow-kakao)}.app-main{background:transparent;color:var(--text)}.mypunch-two-panels .clock-card{background:var(--surface)!important;border:1px solid var(--border);box-shadow:var(--shadow-card);border-radius:var(--radius)}.header{margin-bottom:28px}.header-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.header-top .subtitle{margin-bottom:8px}.header h1{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin-bottom:4px;color:var(--kakao-black)}.subtitle{color:var(--text-muted);font-size:.95rem;margin-bottom:12px}.date-display{font-size:.9rem;color:var(--text-muted);font-weight:500}.header .btn-secondary{background:var(--kakao-gray-1);color:var(--kakao-black);border:none}.header .btn-secondary:hover{background:var(--kakao-gray-2)}.tabs{display:flex;gap:6px;margin-bottom:24px;padding:4px;background:var(--kakao-gray-1);border-radius:var(--radius);width:fit-content}.tab{padding:10px 18px;font-size:.9rem;font-weight:500;background:transparent;border:none;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .2s,background .2s}.tab:hover{color:var(--text);background:var(--surface);box-shadow:0 1px 2px #0000000a}.tab.active{color:var(--kakao-black);background:var(--brand);box-shadow:0 2px 6px #fee50059;font-weight:600}.tab.tab-hidden,.panel{display:none}.panel.active{display:block;animation:fadeIn .25s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px;box-shadow:var(--shadow-card)}.card h3{font-size:1rem;font-weight:700;margin-bottom:12px;color:var(--kakao-black);letter-spacing:-.02em}@media(min-width:600px){.card{padding:24px;margin-bottom:20px}.card h3{font-size:1.1rem;margin-bottom:16px}}.card-desc{color:var(--text-muted);font-size:.9rem;margin-bottom:16px;line-height:1.5}.daegun-daehyu-summary-card{background:#fff!important;border:1px solid var(--border);box-shadow:0 1px 3px #0000000f}.daegun-daehyu-summary-card .card-desc.daegun-daehyu-summary-desc{color:var(--text);font-size:1rem;font-weight:500;margin-bottom:0;line-height:1.6}.daegun-daehyu-summary-settlement{font-weight:700;margin-top:6px}.daegun-daehyu-summary-teukgeun{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);font-size:.95rem;font-weight:500}.attendance-settlement-card{background:#fff!important;border:1px solid var(--border);box-shadow:0 1px 3px #0000000f}.attendance-settlement-summary{margin-bottom:1rem}.attendance-settlement-cards{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.attendance-settlement-card-item{flex:1;min-width:160px;max-width:240px;padding:1rem 1.1rem;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.attendance-settlement-card-item.attendance-settlement-leave{border-left:4px solid #2e7d32;background:#e8f5e966}.attendance-settlement-card-item.attendance-settlement-daegun{border-left:4px solid #1565c0;background:#e3f2fd66}.attendance-settlement-card-title{display:block;font-size:.9rem;font-weight:700;color:var(--kakao-black);margin-bottom:.75rem;letter-spacing:-.02em}.attendance-settlement-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:.9rem;line-height:1.6}.attendance-settlement-card-label{color:var(--text-muted);font-weight:500}.attendance-settlement-card-value{font-weight:600;color:var(--kakao-black)}.attendance-settlement-card-row.attendance-settlement-card-highlight .attendance-settlement-card-value{font-size:1.05rem;color:var(--kakao-black)}.attendance-settlement-card-note{margin:.5rem 0 0;font-size:.8rem;color:var(--text-muted);font-weight:400}.attendance-settlement-detail-desc{margin:0 0 .5rem;font-size:.9rem;color:var(--text-muted)}.attendance-settlement-detail-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.attendance-settlement-detail-filters .btn{margin-right:0}.attendance-settlement-card .usage-log-table{margin-top:0}.attendance-settlement-summary-caption{margin:1rem 0 .5rem;font-size:.9rem;font-weight:600;color:var(--text-muted)}.attendance-settlement-detail-wrap{margin-bottom:0}.memo-cell{white-space:normal;max-width:280px}.memo-display{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.memo-edit-btn{padding:2px 6px;font-size:.85rem;background:transparent;border:none;cursor:pointer;opacity:.8}.memo-edit-btn:hover{opacity:1}.memo-edit-inline{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.memo-edit-inline .memo-edit-input{min-width:120px;max-width:200px;padding:4px 8px;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius-sm)}@media(max-width:600px){.attendance-settlement-card h3{font-size:1.1rem}.attendance-settlement-cards{flex-direction:column;gap:.75rem}.attendance-settlement-card-item{max-width:none;min-width:0;padding:.9rem 1rem}.attendance-settlement-card-title{font-size:.85rem}.attendance-settlement-card-row{font-size:.9rem}.attendance-settlement-detail-desc{font-size:.85rem;margin-bottom:8px}.attendance-settlement-detail-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-settlement-detail-wrap .usage-log-table{min-width:280px;font-size:.85rem}.attendance-settlement-detail-wrap .usage-log-table th,.attendance-settlement-detail-wrap .usage-log-table td{padding:8px 10px}.attendance-settlement-detail-wrap .usage-log-table td:nth-child(2){white-space:nowrap}.attendance-settlement-detail-wrap .usage-log-table td:nth-child(4){white-space:nowrap}.leave-summary-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.leave-summary-table-wrap .leave-summary-table{font-size:.85rem}.leave-summary-table-wrap .leave-summary-table th,.leave-summary-table-wrap .leave-summary-table td{padding:8px 10px}.leave-summary-table-wrap .leave-summary-table .emp-id-dept-cell .emp-id{font-weight:500;display:block}.leave-summary-table-wrap .leave-summary-table .emp-id-dept-cell .emp-dept{font-size:.8em;color:var(--text-muted);display:block}.leave-summary-table-wrap .leave-summary-table td:nth-child(n+3){white-space:nowrap}.attendance-request-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.attendance-request-table-wrap .attendance-request-table{min-width:360px;font-size:.85rem}.attendance-request-table-wrap .attendance-request-table th,.attendance-request-table-wrap .attendance-request-table td{padding:8px 10px}.attendance-request-table-wrap .attendance-request-table .emp-id-dept-cell .emp-id{font-weight:500;display:block}.attendance-request-table-wrap .attendance-request-table .emp-id-dept-cell .emp-dept{font-size:.8em;color:var(--text-muted);display:block}.attendance-request-table-wrap .attendance-request-table .attendance-request-type-cell{white-space:nowrap}}.settlement-badge{display:inline-block;padding:4px 10px;border-radius:8px;font-size:.9rem;font-weight:500}.settlement-badge.settlement-plus{background:#c1e1c1;color:#1b5e20}.settlement-badge.settlement-minus{background:#ffb7b2;color:#b71c1c}.settlement-badge.settlement-zero{background:#e0e0e0;color:#616161}.location-timeline-cell{white-space:normal;max-width:320px;line-height:1.5}.data-table th.th-work-type,.data-table td.location-timeline-cell{min-width:8em}.location-time{font-size:.8em;color:var(--text-muted, #757575);font-weight:400;margin-left:2px}.location-entry-wrap{display:inline-flex;align-items:center;gap:2px;margin-right:4px}.records-location-delete-btn{padding:0 4px;font-size:.75rem;line-height:1.2;min-width:20px;color:var(--text-muted);background:#0000000f;border:1px solid var(--border);border-radius:4px;cursor:pointer}.records-location-delete-btn:hover{color:#c00;background:#ff000014;border-color:#c00}.clock-card.single{max-width:100%}@media(min-width:768px){.clock-card.single{max-width:420px}}.mypunch-top-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px}.mypunch-two-panels{display:flex;flex-direction:column;gap:16px;margin-bottom:16px;align-items:stretch}.mypunch-two-panels .clock-card.single{max-width:100%;min-width:0}@media(max-width:600px){.mypunch-two-panels{gap:8px;margin-bottom:12px}.mypunch-two-panels .clock-card h3{font-size:.95rem;margin-bottom:8px}.mypunch-two-panels .work-location-label{font-size:.85rem}.mypunch-two-panels .work-location-segment-btn{padding:6px 10px;font-size:.8rem}.mypunch-two-panels .work-location-btn{padding:6px 8px;font-size:.75rem}.mypunch-two-panels .clock-buttons .btn{padding:10px 12px;font-size:.9rem}.mypunch-two-panels .clock-time{font-size:.85rem}.mypunch-two-panels .hint{font-size:.8rem}}@media(min-width:768px){.mypunch-two-panels{gap:16px;margin-bottom:20px}.mypunch-two-panels .clock-card.single{max-width:420px}}.todo-card{min-width:0}.todo-card-control{background:#fdfd9680!important;border:1px solid rgba(253,253,150,.7)}.todo-card-control--white{background:#fff!important;border:1px solid var(--border)}.todo-control-location-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.todo-control-location-btn{padding:10px 8px;font-size:.8rem;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-xs);background:#f0f0f080;color:var(--text-muted);cursor:pointer;transition:background .2s,opacity .2s,color .2s;opacity:.5}.todo-control-location-btn:hover{opacity:.8}.todo-control-location-btn.active{background:#fdfd96;border-color:#dcc83c99;color:var(--kakao-black);font-weight:600;opacity:1}.todo-card-control--white .todo-control-location-btn.active{background:var(--kakao-yellow);border-color:var(--kakao-yellow)}.todo-add-row{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.todo-add-row .todo-input{width:100%;order:1}.todo-action-buttons{display:flex;gap:10px;order:2}.todo-action-buttons .btn{min-height:44px;padding:12px 20px}.todo-input{flex:1 1 100%;min-width:0;padding:12px 14px;font-size:.95rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff80;color:var(--text);min-height:44px}.todo-input:focus{outline:none;border-color:var(--kakao-yellow)}.todo-add-row .btn{min-height:44px;flex-shrink:0;padding:12px 20px}.todo-btn{background:#fdfd9680;border:1px solid rgba(253,253,150,.8);color:var(--kakao-black);font-weight:600}.todo-btn:hover:not(:disabled){background:#fdfd96b3;border-color:#e8e87a}.todo-btn:disabled{opacity:.7;cursor:not-allowed}@media(min-width:480px){.todo-control-location-buttons{grid-template-columns:repeat(3,1fr)}.todo-control-location-btn{font-size:.85rem;padding:12px 10px}}.todo-list{display:flex;flex-direction:column;gap:12px}.todo-empty{color:var(--text-muted);font-size:.9rem;padding:24px 0;text-align:center}.todo-item{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px;background:#fdfd9680;border-radius:var(--radius-sm);border:1px solid rgba(253,253,150,.6)}@media(min-width:600px){.todo-item{padding:12px 14px;gap:12px}}.todo-item.completed .todo-text,.todo-item-completed .todo-text{text-decoration:line-through;color:var(--text-muted)}.todo-completed-details{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.todo-completed-summary{cursor:pointer;padding:8px 0;list-style:none;font-weight:500;color:var(--text-secondary);-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px}.todo-completed-summary:before{content:"";display:inline-block;width:0;height:0;border-left:8px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;transition:transform .2s;flex-shrink:0}.todo-completed-details[open] .todo-completed-summary:before{transform:rotate(90deg)}.todo-completed-summary::-webkit-details-marker{display:none}.todo-list-completed{margin-top:8px}.todo-list-completed .todo-item-completed{background:#f0f0f080;border:1px solid var(--border);opacity:.92}.todo-check-wrap{display:flex;align-items:center;cursor:pointer;flex-shrink:0}.todo-check-wrap input{position:absolute;opacity:0;width:0;height:0}.todo-check-custom{width:24px;height:24px;border:2px solid var(--border);border-radius:6px;background:var(--surface);display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}@media(min-width:600px){.todo-check-custom{width:22px;height:22px}}.todo-check-wrap input:checked+.todo-check-custom{background:var(--kakao-yellow);border-color:var(--kakao-yellow-dark)}.todo-check-wrap input:checked+.todo-check-custom:after{content:"✔";font-size:14px;color:var(--kakao-black)}@media(min-width:600px){.todo-check-wrap input:checked+.todo-check-custom:after{font-size:12px}}.todo-content-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.todo-text{font-size:.95rem;color:var(--kakao-black)}.todo-memo-btn{flex-shrink:0;padding:8px 10px;font-size:.85rem;background:transparent;border:none;cursor:pointer;opacity:.6;border-radius:4px;min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}.todo-memo-btn:hover{opacity:1;background:#0000000d}.todo-memo-btn.has-memo{opacity:1}.todo-meta{width:100%;display:flex;flex-direction:column;flex-wrap:wrap;gap:4px;font-size:.75rem;color:var(--text-muted);margin-top:4px;padding-left:34px}@media(min-width:600px){.todo-meta{flex-direction:row;gap:12px;font-size:.8rem}}.todo-completer{color:var(--success)}.todo-memo-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.todo-memo-modal{background:var(--surface);border-radius:var(--radius);padding:18px;max-width:400px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:var(--shadow);border:1px solid var(--border)}@media(min-width:480px){.todo-memo-modal{padding:24px}}.todo-memo-modal h4{margin:0 0 12px;font-size:1.1rem}.todo-memo-textarea{width:100%;padding:12px;font-size:.95rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);resize:vertical;margin-bottom:16px;box-sizing:border-box}.todo-memo-textarea:focus{outline:none;border-color:var(--kakao-yellow)}.todo-memo-actions{display:flex;gap:10px;justify-content:flex-end}.work-location-section{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.work-location-label{display:block;font-size:.85rem;font-weight:600;color:var(--kakao-black-85);margin-bottom:8px}.work-location-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.work-location-tab{padding:10px 12px;font-size:.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:background .2s,border-color .2s;min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}@media(min-width:600px){.work-location-tabs{gap:8px}.work-location-tab{padding:8px 14px;font-size:.85rem;min-height:auto;min-width:auto}}.work-location-tab:hover:not(:disabled){background:var(--kakao-gray-1);border-color:var(--kakao-gray-3)}.work-location-tab.active{background:var(--kakao-yellow);border-color:var(--kakao-yellow-dark);color:var(--kakao-black);font-weight:600}.work-location-tab:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.work-location-tab-wrap{min-height:0}.work-location-tab-wrap .work-location-tab{width:100%}.work-location-tab-wrap.work-location-tab-disabled{cursor:not-allowed}.work-location-tab-wrap.work-location-tab-disabled .work-location-tab{opacity:.5}.work-location-segment{display:flex;gap:8px;padding:6px;background:var(--kakao-gray-1);border-radius:14px;margin-bottom:14px;width:100%;max-width:320px}.work-location-segment-btn{flex:1;padding:14px 18px;font-size:.95rem;font-weight:500;font-family:inherit;border:none;border-radius:12px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .25s ease,color .25s ease,box-shadow .25s ease;min-height:48px}.work-location-segment-btn:hover{color:var(--kakao-black);background:var(--surface);box-shadow:0 1px 3px #0000000f}.work-location-segment-btn.active{background:var(--brand);color:var(--kakao-black);font-weight:700;box-shadow:var(--shadow-kakao)}.work-location-buttons{margin-top:0}.work-location-buttons--few{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.work-location-buttons--few .work-location-content,.work-location-buttons--tabs .work-location-content{display:flex;flex-wrap:wrap;gap:4px;width:100%}.work-location-buttons--tabs .work-location-content{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .25s ease}.work-location-buttons--tabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:10px}.work-location-btn{padding:8px 12px;font-size:.82rem;font-weight:500;font-family:inherit;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--kakao-black-85);cursor:pointer;transition:background .25s ease,border-color .25s ease,color .25s ease,box-shadow .25s ease;min-height:28px;display:inline-flex;align-items:center;justify-content:center;text-align:center;-webkit-tap-highlight-color:transparent}.work-location-btn:hover{background:var(--kakao-gray-1);border-color:var(--kakao-gray-3);color:var(--kakao-black);box-shadow:0 2px 6px #0000000f}.work-location-btn.active{background:var(--brand);border-color:var(--kakao-yellow-dark);color:var(--kakao-black);font-weight:700;box-shadow:var(--shadow-kakao)}.work-location-buttons--few .work-location-btn{min-height:28px;padding:8px 12px;font-size:.82rem;border-radius:8px}.work-location-empty{grid-column:1 / -1;padding:24px 16px;font-size:.9rem;color:var(--text-muted);text-align:center;margin:0}.clock-buttons{display:flex;flex-direction:column;gap:10px}.clock-row{display:flex;align-items:center;gap:12px}.clock-row .btn{min-width:90px;min-height:44px;padding:12px 20px}.clock-time{font-size:1rem;font-weight:600;color:var(--kakao-black)}@media(min-width:600px){.clock-row .btn{min-width:100px;min-height:auto}.clock-time{font-size:1.1rem}}.clock-hint-static{font-size:.85rem;color:var(--text-muted);margin-top:12px}.my-status{font-size:.95rem;color:var(--text-muted);margin-bottom:16px;padding:14px 16px;background:var(--kakao-gray-1);border-radius:var(--radius-sm);color:var(--kakao-black-85)}.work-type-section{margin-bottom:16px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.radio-group{display:flex;gap:20px;flex-wrap:wrap}.radio-label{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--kakao-black-85);cursor:pointer}.radio-label input{width:auto;accent-color:var(--kakao-yellow)}.today-actions{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.today-stats-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:20px}@media(max-width:700px){.today-stats-cards{grid-template-columns:1fr}}.stat-single{padding:8px 0}.stat-single .stat-value{font-size:1.5rem}@media(max-width:600px){.today-actions{grid-template-columns:1fr}}.clock-card .form-row,.clock-card .button-group{margin-bottom:12px}.button-group{display:flex;gap:10px;margin-top:16px}.hint{font-size:.85rem;color:var(--text-muted);margin-top:12px;min-height:1.2em}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-muted);font-size:.9rem}.stat-value{font-weight:700;font-size:1.35rem;color:var(--kakao-black)}.records-filters{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-bottom:20px}.records-filters .filter-row{display:flex;align-items:center;gap:8px}.records-filters .filter-row-month{gap:6px 12px}.records-filters .filter-label{font-size:.9rem;font-weight:500;color:var(--text)}.records-filters .filter-select,.records-filters .filter-input{padding:8px 12px;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:100px}.records-filters .records-month-summary{margin-left:8px;padding-left:16px;border-left:1px solid var(--border)}.records-filters .records-employee-badge{font-weight:600;color:var(--text)}.records-filters .records-total-badge{font-size:.9rem;color:var(--text-muted);margin-left:12px}.records-filters .records-excel-wrap{margin-left:auto}.records-filters .records-excel-btn{padding:8px 16px;font-size:.9rem;font-weight:500;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer}.records-filters .records-excel-btn:hover{background:var(--surface-hover);border-color:var(--kakao-gray-3)}.modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface);border-radius:var(--radius);border-top:4px solid var(--brand);padding:0;max-width:420px;width:90%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-card)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:1.1rem}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);padding:0 4px}.modal-body{padding:20px}.modal-desc{margin:0 0 16px;font-size:.9rem;color:var(--text-muted)}.leave-adjust-modal .form-row{margin-bottom:16px}.leave-adjust-modal .form-row label{display:block;margin-bottom:6px;font-size:.9rem;font-weight:500}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.record-edit-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.record-edit-modal{background:var(--surface);border-radius:var(--radius);border-top:4px solid var(--brand);padding:24px;min-width:320px;max-width:400px;box-shadow:var(--shadow-card)}.record-edit-modal h4{margin:0 0 20px;font-size:1.1rem}.record-edit-form .form-row{margin-bottom:14px}.record-edit-form .form-value{display:block;padding:8px 0;font-size:.95rem}.record-edit-form .form-input{width:100%;padding:10px 12px;font-size:.95rem;border:1px solid var(--border);border-radius:var(--radius)}.record-edit-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.record-delete-full-btn{margin-right:auto}.records-row-off{background:#ffb7b280}.records-row-off td{border-color:#ffb7b266}.records-table .records-location-cell{white-space:normal}.records-location-entries{display:flex;flex-wrap:wrap;flex-direction:column;gap:2px 0}.records-location-entry{display:block;line-height:1.35}.records-location-entry .location-time{display:block;font-size:.8em;color:var(--text-muted, #757575);margin-top:1px}.records-schedule-note{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.78rem;background:#0000000f;color:var(--text);white-space:nowrap}.records-duration-wrap{display:inline-flex;flex-direction:column;line-height:1.25}.records-duration-min{font-weight:700}.records-duration-sub{font-size:.78rem;color:var(--text-muted, #757575);margin-top:2px}@media(max-width:600px){.records-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.records-table-wrap .records-table{min-width:360px;font-size:.85rem}.records-table-wrap .records-table th,.records-table-wrap .records-table td{padding:8px 10px}.records-table-wrap .records-table .emp-id-dept-cell{line-height:1.35}.records-table-wrap .records-table .emp-id-dept-cell .emp-id{font-weight:500;display:block}.records-table-wrap .records-table .emp-id-dept-cell .emp-dept{font-size:.8em;color:var(--text-muted);display:block}.records-table-wrap .records-table td[data-label=근무시간]{white-space:nowrap}}.app-profile-panel{max-width:480px}.profile-page{padding:24px;border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--surface);border:1px solid var(--border)}.profile-page-title{margin:0 0 8px;font-size:1.15rem;font-weight:600;color:var(--kakao-black)}.profile-page-desc{margin:0 0 24px;font-size:.9rem;color:var(--text-muted);line-height:1.5}.profile-form-row{margin-bottom:16px}.profile-form-row label{display:block;margin-bottom:6px;font-size:.9rem;font-weight:500;color:var(--text)}.profile-form-input{width:100%;padding:10px 14px;font-size:.95rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.profile-form-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #fee5004d}.profile-form-error{margin:0 0 12px;font-size:.9rem;color:var(--danger)}.profile-form-success{margin:0 0 12px;font-size:.9rem;color:var(--success)}.profile-form-actions{margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.profile-submit-btn{padding:10px 24px;font-size:.95rem;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;background:var(--brand);color:var(--kakao-black);box-shadow:0 1px 4px #0000000f}.profile-submit-btn:hover:not(:disabled){background:var(--brand-hover)}.profile-page-meta{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--border);font-size:.85rem;color:var(--text-muted)}.records-stats .stats-summary{display:flex;flex-wrap:wrap;gap:24px;align-items:center}.records-stats .stats-item{display:flex;align-items:baseline;gap:8px}.records-stats .stats-item-label{color:var(--text-muted);font-size:.9rem;font-weight:500}.records-stats .stats-item-value{font-weight:700;font-size:1.25rem;color:var(--kakao-black)}.form-row{margin-bottom:14px}.form-row label{display:block;font-size:.9rem;font-weight:500;color:var(--kakao-black-85);margin-bottom:6px}.form-row input,.form-row select{width:100%;padding:12px 14px;font-size:.95rem;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text)}.form-row select{appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-color:var(--surface)}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #fee5004d}.form-row input::placeholder{color:var(--kakao-gray-4)}.btn{padding:10px 20px;font-size:.95rem;font-weight:500;font-family:inherit;border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 4px #0000000f;transition:background .3s,color .3s,box-shadow .3s,transform .1s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--brand);color:var(--kakao-black);font-weight:600}.btn-primary:hover{background:var(--brand-hover);color:var(--kakao-black);box-shadow:0 2px 10px #fee50066}.btn-secondary{background:var(--kakao-gray-1);color:var(--kakao-black);border:none}.btn-secondary:hover{background:var(--kakao-gray-2);color:var(--kakao-black);box-shadow:0 2px 6px #00000014}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:6px 12px;font-size:.85rem;border-radius:var(--radius-sm);box-shadow:0 1px 3px #0000000d}.btn-danger:hover{background:#ff3b3014;transition:background .3s,color .3s}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--border)}.data-table{width:100%;min-width:480px;border-collapse:collapse;font-size:.9rem;background:var(--surface)}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);color:var(--kakao-black-85);font-size:.85rem}@media(min-width:600px){.data-table th,.data-table td{padding:14px 16px;font-size:.9rem}}.data-table tr:last-child td{border-bottom:none}.data-table th{font-weight:700;color:var(--kakao-black-85);font-size:.75rem;text-transform:none;background:var(--table-header-bg);white-space:nowrap}@media(min-width:600px){.data-table th{font-size:.8rem}}.data-table tbody tr:hover{background:var(--surface-hover)}.data-table th.th-employee,.emp-id-dept-cell{min-width:3.5em}.emp-id-dept-cell{white-space:normal;line-height:1.35}.emp-id-dept-cell .emp-id{font-weight:500}.emp-id-dept-cell .emp-dept{font-size:.8em;color:var(--text-muted)}.data-table th.th-work-duration,.data-table td.work-duration-cell{min-width:5.5em}.data-table th.th-status,.data-table td.status-cell{white-space:nowrap;min-width:2em}.attendance-request-table th:nth-child(1){width:14%}.attendance-request-table th:nth-child(2){width:12%}.attendance-request-table th:nth-child(3){width:10%}.attendance-request-table th:nth-child(4){width:auto}.attendance-request-table th:nth-child(5){width:9%}.attendance-request-table th:nth-child(6){width:140px}.attendance-cancel-btn{white-space:nowrap}.attendance-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.status-badge{display:inline-block;padding:4px 8px;border-radius:20px;font-size:.75rem;font-weight:500;white-space:nowrap}@media(min-width:600px){.status-badge{padding:4px 10px;font-size:.8rem}}.status-working{background:#34c75926;color:var(--success)}.status-left{background:var(--kakao-gray-2);color:var(--text-muted)}.status-half{background:#ffb7b240;color:#c62828}.status-waiting{background:#ff9f0a33;color:#c93400}.status-other{background:var(--kakao-gray-1);color:var(--text-muted)}.filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.filters .form-row{margin-bottom:0;min-width:140px}.filters .btn{flex-shrink:0}.form-hint{margin-top:12px;font-size:.85rem;color:var(--text-muted)}.form-hint a{color:var(--accent)}.ledger-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:16px}.data-table .col-check{width:40px;text-align:center}.data-table .col-check input[type=checkbox]{width:auto;accent-color:var(--kakao-yellow)}.ledger-input{width:100%;max-width:120px;padding:6px 8px;font-size:.85rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.ledger-input:focus{outline:none;border-color:var(--kakao-yellow)}.employee-list-toolbar{margin-bottom:16px}.employee-edit-name,.employee-edit-dept{width:100%;min-width:80px;padding:6px 10px;font-size:.9rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.employee-edit-name:focus,.employee-edit-dept:focus{outline:none;border-color:var(--kakao-yellow)}.empty-message{text-align:center;padding:40px 24px;color:var(--text-muted);font-size:.95rem}.leave-status-summary{margin-bottom:20px;padding:16px 20px;background:var(--kakao-gray-1);border-radius:var(--radius-sm)}.leave-status-row{margin:0 0 8px;font-size:.95rem}.leave-status-row:last-child{margin-bottom:0}.leave-status-subtitle{font-size:.95rem;font-weight:600;margin:20px 0 10px;color:var(--kakao-black)}.leave-status-table{margin-top:8px}.leave-form-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.leave-form-row .form-row{margin-bottom:0;min-width:120px}.leave-form-row .btn{flex-shrink:0}.btn-sm{padding:8px 14px;font-size:.875rem}.calendar-table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--surface);border:1px solid var(--kakao-gray-2);border-radius:var(--radius-sm);overflow:hidden}.calendar-table th,.calendar-table td{padding:10px 8px;text-align:center;border:1px solid var(--kakao-gray-2)}.calendar-table th{background:var(--kakao-gray-1);font-weight:600;color:var(--kakao-black)}.calendar-table td.calendar-day{min-width:36px;color:var(--text)}.card .calendar-wrap{border:1px solid var(--kakao-gray-2);border-radius:var(--radius-sm)}.calendar-table.calendar-table-month{table-layout:fixed;border-collapse:collapse;background:var(--surface)}.calendar-table-month th,.calendar-table-month td{width:14.2857%;vertical-align:top;min-height:72px;height:72px;box-sizing:border-box;border:1px solid var(--kakao-gray-2)}.calendar-table-month thead th{border-bottom:1px solid var(--border);background:var(--table-header-bg);font-weight:700}.calendar-table-month tbody td.calendar-day-cell{padding:6px 4px;background:var(--surface);color:var(--text)}.calendar-table-month tbody td.calendar-day-cell.calendar-day-empty{background:var(--kakao-gray-1)}.calendar-day-cell.calendar-day-readonly{cursor:pointer}.cal-cell-unset{background:#f0f0f0!important}.cal-cell-work{background:#fff!important}.cal-cell-off,.cal-cell-holiday{background:#e8e8e8!important}.cal-legend-unset{background:#f0f0f0}.cal-legend-work{background:#fff;border:1px solid var(--border)}.cal-legend-off,.cal-legend-holiday{background:#e8e8e8;border:1px solid rgba(0,0,0,.1)}.radio-inline--disabled{opacity:.6}.radio-inline--disabled input:disabled{cursor:not-allowed}.calendar-holiday-manage{margin-top:16px;padding-top:16px;border-top:1px solid rgba(0,0,0,.06)}.holiday-textarea{width:100%;min-height:220px;resize:vertical;padding:10px 12px;border:1px solid rgba(0,0,0,.12);border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.92rem;line-height:1.35;background:#fff}.cal-settings-weekdays{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:12px}.weekday-checks{display:inline-flex;flex-wrap:wrap;gap:8px 16px}.weekday-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.95rem}.weekday-check input{cursor:pointer}select option.option-disabled,select option:disabled{color:var(--text-muted);background:var(--kakao-gray-1)}.calendar-table-month .calendar-day-num{display:inline-block;font-weight:500;min-width:1.5em}.calendar-settings-ledger-section{margin-top:28px;padding-top:20px;border-top:1px solid var(--border)}.calendar-settings-ledger-section h3{margin-bottom:8px;font-size:1.1rem}.calendar-settings-ledger-wrap{overflow-x:auto;margin-top:12px}.calendar-settings-ledger-table{min-width:560px;font-size:.9rem}.calendar-settings-ledger-table th,.calendar-settings-ledger-table td{padding:8px 10px;vertical-align:middle}.calendar-settings-ledger-table .ledger-emp-cell{font-weight:500}.calendar-settings-ledger-table .ledger-total-cell{white-space:nowrap}.ledger-total-input{width:64px;padding:4px 8px;font-size:.9rem;text-align:right;border:1px solid var(--border);border-radius:4px}.ledger-saving-label{margin-left:6px;font-size:.8rem;color:var(--text-muted)}.calendar-legend{margin-top:16px;display:flex;gap:20px;font-size:.9rem;color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:12px;height:12px;border-radius:4px}.legend-dot.day-work-dot{background:var(--pastel-daegun);border:1px solid rgba(174,198,207,.8)}.legend-dot.leave-full-dot,.legend-dot.leave-half-dot,.legend-dot.day-off-dot{background:#e8e8e8;border:1px solid rgba(0,0,0,.1)}.calendar-toolbar-group{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.calendar-toolbar-leave .toolbar-memo-label{margin-left:8px}.calendar-toolbar-leave .toolbar-memo-input{padding:6px 10px;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius);min-width:180px;max-width:280px}.leave-status-grid{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:16px}.leave-status-col{min-width:180px}.leave-status-warn{color:var(--danger)}.calendar-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px}.calendar-select-label{font-weight:500;margin-right:4px}.calendar-year-select,.calendar-month-select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font-size:.95rem;min-width:80px}.calendar-title{font-weight:600;font-size:1.1rem;color:var(--kakao-black);min-width:120px;text-align:center}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:12px 0;border-bottom:1px solid var(--border)}.calendar-toolbar .toolbar-label{margin-right:4px;font-weight:500}.calendar-toolbar select{min-width:140px;padding:6px 28px 6px 8px;border-radius:6px;border:1px solid var(--border);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-color:var(--surface)}.calendar-toolbar .radio-inline,.calendar-toolbar .toolbar-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem}.calendar-toolbar .toolbar-fixed-name{font-weight:600;font-size:1rem;padding:4px 8px}.calendar-toolbar .day-check-wrap{margin-top:4px}.calendar-wrap{overflow-x:auto}.calendar-grid{width:100%;min-width:320px;table-layout:fixed;border-collapse:collapse;font-size:.85rem}.calendar-grid th,.calendar-grid td{width:14.2857%;box-sizing:border-box}.calendar-grid th{padding:10px 4px;text-align:center;font-weight:600;color:var(--text-muted);background:var(--kakao-gray-1);border:1px solid var(--border)}.calendar-grid th:first-child{color:var(--danger)}.calendar-grid th:last-child{color:#3b82f6}.calendar-grid td{padding:6px 2px;vertical-align:top;border:1px solid var(--border);min-height:80px;height:90px}.calendar-grid td.calendar-day-empty{background:var(--kakao-gray-1)}.calendar-day-cell{padding:6px 0 0}.calendar-day-cell.day-default{background:var(--kakao-gray-2)}.calendar-day-cell.day-work{background:var(--surface)}.calendar-day-cell.day-off,.calendar-day-cell.day-leave,.calendar-day-cell.day-leave-half{background:#e8e8e8}.calendar-day-select{margin-bottom:4px}.calendar-day-select select.day-type-select{width:100%;max-width:100%;padding:4px 22px 4px 2px;font-size:.7rem;border:1px solid var(--border);border-radius:4px;background-color:var(--surface);appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}.calendar-day-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.calendar-day-header input[type=checkbox]{flex-shrink:0;cursor:pointer;margin:0}.calendar-day-num{font-weight:600;color:var(--kakao-black);margin-bottom:0;padding:0 2px}.calendar-day-num.other-month{color:var(--kakao-gray-3)}.calendar-day-num-wrap{display:inline;white-space:nowrap}.calendar-day-holiday-label{display:inline;font-size:.6rem;font-weight:500;color:var(--text-muted);margin-left:2px;line-height:1.2}.calendar-day-cell-clickable{cursor:pointer}.calendar-day-cell-inner{display:block}@media(max-width:600px){.calendar-controls{flex-wrap:wrap;gap:8px;margin-bottom:12px}.calendar-select-label{font-size:.85rem}.calendar-year-select,.calendar-month-select{padding:6px 8px;font-size:.9rem;min-width:72px}.calendar-title{font-size:.95rem;min-width:100px}.calendar-toolbar{gap:8px;padding:10px 0;margin-bottom:12px}.calendar-toolbar .toolbar-label{font-size:.85rem}.calendar-toolbar select{min-width:100px;font-size:.85rem}.calendar-toolbar .radio-inline,.calendar-toolbar .toolbar-check{font-size:.8rem}.calendar-toolbar .toolbar-fixed-name{font-size:.9rem}.calendar-wrap{margin-left:-8px;margin-right:-8px;padding-left:4px;padding-right:4px;-webkit-overflow-scrolling:touch}.calendar-grid{min-width:280px;font-size:.75rem}.calendar-grid th,.calendar-grid td{padding:4px 2px;min-height:56px;height:60px}.calendar-grid th{font-size:.7rem}.calendar-day-num{font-size:.85em}.calendar-day-holiday-label{font-size:.55rem}.calendar-day-select select.day-type-select{font-size:.6rem;padding:2px 18px 2px 1px}.calendar-day-type-label{font-size:.6rem}.calendar-day-events{font-size:.65rem}.calendar-day-event{padding:2px 4px;font-size:.7rem;display:block;line-height:1.25}.calendar-day-event-name{display:block;font-weight:500;color:inherit}.calendar-day-event-type{display:block;font-size:.85em;color:var(--text-muted);font-weight:400}.calendar-legend{flex-wrap:wrap;gap:8px 14px;font-size:.75rem;margin-top:10px}.calendar-legend .legend-item-off-group{font-size:.7rem}.legend-dot{width:10px;height:10px}.card .calendar-wrap .calendar-table-month{table-layout:fixed;width:100%}.card .calendar-wrap .calendar-table-month th,.card .calendar-wrap .calendar-table-month td{padding:4px 3px;font-size:.7rem;vertical-align:top}.card .calendar-wrap .calendar-table-month tbody td.calendar-day-cell{height:100px;min-height:100px;vertical-align:top}.card .calendar-wrap .calendar-table-month tbody td.calendar-day-cell .calendar-day-cell-inner{display:flex;flex-direction:column;height:100%;min-height:92px;overflow:hidden}.card .calendar-wrap .calendar-table-month tbody td.calendar-day-cell .calendar-day-header{flex-shrink:0;margin-bottom:2px}.card .calendar-wrap .calendar-table-month tbody td.calendar-day-cell .calendar-day-type-label{flex-shrink:0}.card .calendar-wrap .calendar-table-month tbody td.calendar-day-cell .calendar-day-events{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.card .calendar-wrap .calendar-table-month .calendar-day-num{font-size:.85em}.card .calendar-wrap .calendar-table-month .calendar-day-num-wrap .calendar-day-holiday-label{font-size:.5rem;margin-left:1px}.card .calendar-wrap .calendar-table-month .calendar-day-type-label{font-size:.55rem}.card .calendar-wrap .calendar-table-month .calendar-day-events{font-size:.6rem}.card .calendar-wrap .calendar-table-month .calendar-day-event{font-size:.65rem;padding:1px 3px}.card .calendar-wrap .calendar-table-month .calendar-day-event-type{font-size:.9em}.calendar-grid td.calendar-day-cell{min-height:64px;height:auto;padding:4px 2px}.calendar-grid .calendar-day-num{font-size:.8em}.calendar-grid .calendar-day-type-label{font-size:.55rem}.calendar-grid .calendar-day-events{font-size:.6rem}.calendar-grid .calendar-day-event{font-size:.65rem;padding:1px 3px}.calendar-grid .calendar-day-event-type{font-size:.9em}}.calendar-day-list-modal-overlay{z-index:1050}.calendar-day-list-modal{max-width:380px;width:92%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.calendar-day-list-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.calendar-day-list-modal-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--kakao-black)}.calendar-day-list-modal-close{width:32px;height:32px;padding:0;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center}.calendar-day-list-modal-close:hover{color:var(--kakao-black);background:var(--kakao-gray-1)}.calendar-day-list-modal-body{padding:12px 16px;overflow-y:auto}.calendar-day-list{list-style:none;margin:0;padding:0}.calendar-day-list-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:.9rem}.calendar-day-list-item:last-child{border-bottom:none}.calendar-day-list-name-cell .emp-id{font-weight:500;color:var(--kakao-black);display:block}.calendar-day-list-name-cell .emp-dept{font-size:.85em;color:var(--text-muted);display:block}.calendar-day-list-status{font-weight:600;color:var(--text-muted);white-space:nowrap}.calendar-day-list-item--off .calendar-day-list-status{color:var(--danger, #c0392b)}.calendar-day-list-item--off{background:#ffb7b280;border-radius:var(--radius-sm);margin:0 -4px 4px;padding:6px 4px 6px 12px;border:1px solid rgba(240,144,144,.4)}.calendar-day-type-label{font-size:.7rem;font-weight:600;color:var(--text);margin:2px 0;line-height:1.2}.calendar-day-events{font-size:.75rem;margin-top:2px}.calendar-day-event{color:var(--text);font-weight:500;padding:3px 6px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:6px;min-width:0}.calendar-day-event.event-continues-prev{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.calendar-day-event.event-continues-next{margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.calendar-day-event.event-continues-prev.event-continues-next{border-radius:0}.calendar-day-event.event-full,.calendar-day-event.event-half,.calendar-day-event.event-daehyu{background:#e8e8e8;border:1px solid rgba(0,0,0,.1)}.calendar-day-event.event-daegun{background:var(--pastel-daegun);border:1px solid rgba(193,225,193,.8)}.calendar-day-event.event-teukgeun{background:var(--pastel-teukgeun);border:1px solid rgba(193,225,193,.8)}.calendar-legend{margin-top:16px;font-size:.85rem;color:var(--text-muted)}.legend-item{display:inline-flex;align-items:center;gap:6px;margin-right:16px}.legend-dot{width:10px;height:10px;border-radius:50%}.sheet-controls{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;margin-bottom:20px}.sheet-controls .form-row{margin-bottom:0;min-width:100px}.sheet-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.sheet-table{width:100%;min-width:800px;border-collapse:collapse;font-size:.8rem}.sheet-table th,.sheet-table td{border:1px solid var(--border);padding:6px 4px;text-align:center;vertical-align:middle}.sheet-table th{background:var(--table-header-bg, #F0F4F8);font-weight:600;color:var(--kakao-black-85)}.sheet-table th.sheet-col-name{min-width:90px;position:sticky;left:0;background:var(--kakao-gray-1);z-index:1}.sheet-table td.sheet-col-name{position:sticky;left:0;background:var(--surface);font-weight:500;text-align:left;padding-left:8px;z-index:0}.sheet-table .sheet-id{font-size:.7rem;color:var(--text-muted);font-weight:400}.sheet-table tbody tr:hover td.sheet-col-name{background:var(--surface-hover)}.sheet-table .sheet-day-cell{min-width:52px;max-width:52px}.sheet-cell-leave{background:#fee50059;font-size:.7rem}.sheet-cell-leave.half{background:#fee50033}.sheet-cell-time{white-space:pre-line;line-height:1.3;font-size:.7rem}.sheet-cell-time.inonly{color:var(--text-muted)}.account-access-info{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:left}.account-access-info h2{font-size:1.1rem;margin-bottom:.5rem}.access-by-role{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.access-role-card{flex:1;min-width:200px;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.access-role-title{font-size:1rem;margin:0 0 .5rem}.access-role-list{margin:0;padding-left:1.2rem;font-size:.9rem;color:var(--text-muted)}.access-role-list li{margin-bottom:.25rem}.access-tabs{font-weight:400;color:var(--text)}.room-inspection-page{max-width:100%;padding-bottom:24px}.room-inspection-header{margin-bottom:20px}.room-inspection-header h1{font-size:1.35rem;font-weight:700;margin:0 0 6px;color:var(--text)}.room-inspection-desc{font-size:.9rem;color:var(--text-muted);margin:0}.room-inspection-subtabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:2px solid var(--border);padding-bottom:0}.room-inspection-subtab{padding:10px 18px;font-size:.95rem;font-weight:600;border:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:#ffffff80;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s;margin-bottom:-2px}.room-inspection-subtab:hover{background:#fffc;color:var(--text)}.room-inspection-subtab.active{background:var(--surface);color:var(--text);border:2px solid var(--border);border-bottom-color:var(--surface)}.room-inspection-form.card{margin-bottom:24px;padding:20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card)}.room-inspection-form-title{font-size:1.1rem;font-weight:600;margin:0 0 18px;color:var(--text)}.room-inspection-field{margin-bottom:16px}.room-inspection-field>label{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:6px}.room-inspection-input,.room-inspection-select,.room-inspection-textarea{width:100%;max-width:100%;padding:10px 12px;font-size:1rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-sizing:border-box}.room-inspection-textarea{resize:vertical;min-height:80px}.room-inspection-datetime{display:flex;gap:10px}.room-inspection-datetime .room-inspection-input{flex:1}.room-inspection-building-toggles{display:flex;flex-wrap:wrap;gap:8px}.room-inspection-building-btn{padding:10px 16px;font-size:.95rem;font-weight:600;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s}.room-inspection-building-btn.active{background:var(--brand);border-color:var(--kakao-yellow-dark);color:var(--kakao-black)}.room-inspection-room-input{font-size:1.05rem;min-height:48px}.room-inspection-checklist-hint{font-size:.8rem;color:var(--text-muted);margin:-4px 0 10px}.room-inspection-status-override{margin-top:14px;padding:12px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff80}.room-inspection-status-override-label{display:block;font-size:.9rem;color:var(--text);margin-bottom:4px}.room-inspection-status-override-hint{display:block;font-size:.8rem;color:var(--text-muted);margin-bottom:8px}.room-inspection-status-override-btns{display:flex;gap:10px;flex-wrap:wrap}.room-inspection-status-override-btn{padding:8px 16px;font-size:.9rem;font-weight:600;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s}.room-inspection-status-override-btn.status-퍼펙트{border-color:#c1e1c1;background:#c1e1c14d}.room-inspection-status-override-btn.status-합격{border-color:var(--brand);background:#fee5004d}.room-inspection-status-override-btn.status-불합격{border-color:#ffb7b2;background:#ffb7b24d}.room-inspection-status-override-btn.active{font-weight:700;border-width:3px;box-shadow:0 2px 8px #00000026}.room-inspection-status-override-btn.status-퍼펙트.active{background:#7cb87c;border-color:#5a9a5a;color:#1a3d1a}.room-inspection-status-override-btn.status-합격.active{background:var(--brand);border-color:var(--kakao-yellow-dark);color:var(--kakao-black)}.room-inspection-status-override-btn.status-불합격.active{background:#f08080;border-color:#d65c5c;color:#5c1a1a}.qc-depth-zones--flat .qc-depth-zone-header--flat{background:transparent}.qc-depth-zones--flat .qc-depth-subwrap--open{max-height:none}.room-inspection-photo-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.room-inspection-file-hidden{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.room-inspection-photo-btn{padding:12px 20px;font-size:1rem;font-weight:600;border-radius:var(--radius-sm);border:2px solid var(--border);cursor:pointer;transition:background .2s,border-color .2s}.room-inspection-photo-btn--primary{background:var(--brand);border-color:var(--kakao-yellow-dark);color:var(--kakao-black)}.room-inspection-photo-btn--primary:hover:not(:disabled){background:var(--brand-hover)}.room-inspection-photo-btn--secondary{background:var(--surface);color:var(--text)}.room-inspection-photo-btn--secondary:hover:not(:disabled){background:#0000000d}.room-inspection-photo-btn--single{padding:14px 28px;font-size:1.1rem;min-width:160px}.room-inspection-stats-manage{margin-bottom:24px;padding:20px}.room-inspection-badge-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.room-inspection-badge-row{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#ffffff80}.room-inspection-badge-name{font-weight:600;color:var(--text)}.room-inspection-badge-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:var(--text)}.room-inspection-badge-toggle input{width:auto;margin:0}.room-inspection-badge-label{-webkit-user-select:none;user-select:none}.room-inspection-form-actions{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap}.room-inspection-form-actions .room-inspection-submit{margin-top:0}.room-inspection-card-actions{display:flex;gap:8px;margin-top:8px}.room-inspection-card-btn{font-size:.85rem;padding:6px 12px}.room-inspection-status-toggles{display:flex;gap:10px;flex-wrap:wrap}.room-inspection-status-btn{flex:1;min-width:80px;padding:12px 16px;font-size:.95rem;font-weight:600;font-family:inherit;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s}.room-inspection-status-btn.status-우수,.room-inspection-status-btn.status-양호{border-color:#c1e1c1;background:#c1e1c14d}.room-inspection-status-btn.status-보통,.room-inspection-status-btn.status-미흡{border-color:var(--brand);background:#fee5004d}.room-inspection-status-btn.status-미비,.room-inspection-status-btn.status-주의{border-color:#ffb7b2;background:#ffb7b24d}.room-inspection-status-btn.active{font-weight:700}.room-inspection-status-btn.status-우수.active,.room-inspection-status-btn.status-양호.active{background:#c1e1c1;border-color:#9bc99b}.room-inspection-status-btn.status-보통.active,.room-inspection-status-btn.status-미흡.active{background:var(--brand);border-color:var(--kakao-yellow-dark)}.room-inspection-status-btn.status-미비.active,.room-inspection-status-btn.status-주의.active{background:#ffb7b2;border-color:#f09090}.room-inspection-score-toggles{display:flex;gap:10px;flex-wrap:wrap}.room-inspection-score-btn{flex:1;min-width:60px;padding:10px 14px;font-size:.95rem;font-weight:600;border:2px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s}.room-inspection-score-btn.active{background:var(--brand);border-color:var(--kakao-yellow-dark)}.room-inspection-dashboard.card{margin-bottom:24px;padding:20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card)}.room-inspection-dashboard-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:640px){.room-inspection-dashboard-cards{grid-template-columns:1fr}}.room-inspection-dashboard-card{padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fafafa80}.room-inspection-dashboard-card--excellent{border-color:#c1e1c199;background:#c1e1c180}.room-inspection-dashboard-card--caution{border-color:#ffb7b299;background:#ffb7b280}.room-inspection-dashboard-card--focus{border-color:#dc504680;background:#ffc8c899}.room-inspection-dashboard-card--excellent-blue{border-color:#64a0dc80;background:#c8e6ff99}.room-inspection-dashboard-sub{margin:0 0 8px;font-size:.85rem;color:var(--text-muted)}.room-inspection-expiring-banner{background:#ffb7b240;border:1px solid #FFB7B2;color:var(--text);padding:10px 16px;border-radius:var(--radius-sm);margin-bottom:16px;font-size:.95rem}.room-inspection-admin-zip{margin-bottom:24px;padding:20px}.room-inspection-zip-fields{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}.room-inspection-zip-fields label{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--text)}.room-inspection-zip-fields input[type=date]{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.room-inspection-photo-hint{font-size:.85rem;color:var(--text-muted);margin-left:8px}.room-inspection-dashboard-card h3{font-size:.95rem;font-weight:700;margin:0 0 10px;color:var(--text)}.room-inspection-dashboard-hint{font-size:.8rem;font-weight:400;color:var(--text-muted)}.room-inspection-dashboard-list{list-style:none;padding:0;margin:0}.room-inspection-dashboard-list li{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:.9rem;border-bottom:1px solid var(--border)}.room-inspection-dashboard-list li:last-child{border-bottom:none}.room-inspection-dashboard-rank{font-weight:700;color:var(--text-muted);min-width:1.2em}.room-inspection-dashboard-name{font-weight:600;color:var(--text);flex:1}.room-inspection-dashboard-value{font-size:.85rem;color:var(--text-muted)}.room-inspection-stats{padding:20px}.room-inspection-stats .room-inspection-form-title{margin-top:0}.room-inspection-stats-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:20px}.room-inspection-stats-filters label{display:flex;align-items:center;gap:8px}.room-inspection-stats-filters label span{font-weight:500;color:var(--text-muted);min-width:4em}.room-inspection-stats-select{min-width:120px}.room-inspection-stats-section{margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--border)}.room-inspection-stats-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.room-inspection-stats-section h3{font-size:1rem;margin:0 0 12px;color:var(--text)}.room-inspection-stats-status-cards{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.room-inspection-stats-status-card{flex:1;min-width:80px;padding:14px 16px;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px;border:1px solid var(--border)}.room-inspection-stats-status-card.room-inspection-card--excellent{background:#c1e1c159;border-color:#9bc99b80}.room-inspection-stats-status-card.room-inspection-card--normal{background:#fee50059;border-color:#e6cf0080}.room-inspection-stats-status-card.room-inspection-card--poor{background:#ffb7b259;border-color:#f0909080}.room-inspection-stats-status-label{font-size:.85rem;color:var(--text-muted)}.room-inspection-stats-status-value{font-size:1.5rem;font-weight:700}.room-inspection-stats-status-pct{font-size:.8rem;color:var(--text-muted)}.room-inspection-stats-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--border)}.room-inspection-stats-bar-seg{transition:width .2s ease;min-width:0}.room-inspection-bar-excellent{background:#9bc99b}.room-inspection-bar-mid{background:var(--kakao-yellow-dark)}.room-inspection-bar-poor{background:#f09090}.room-inspection-stats-table-wrap{overflow-x:auto}.room-inspection-stats-table{width:100%;font-size:.9rem}.room-inspection-stats-table th,.room-inspection-stats-table td{padding:10px 12px;text-align:left}.room-inspection-stats-top-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.room-inspection-stats-top-items li{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border)}.room-inspection-stats-item-name{font-weight:500}.room-inspection-stats-item-count{color:var(--text-muted);font-size:.9rem}.room-inspection-stats-monthly{display:flex;flex-direction:column;gap:10px}.room-inspection-stats-monthly-row{display:grid;grid-template-columns:90px 1fr 50px;align-items:center;gap:12px}.room-inspection-stats-monthly-label{font-size:.9rem;font-weight:500}.room-inspection-stats-monthly-bar-wrap{height:20px;background:var(--border);border-radius:4px;overflow:hidden}.room-inspection-stats-monthly-bar{height:100%;background:linear-gradient(90deg,#6495ed99,#6495ede6);border-radius:4px;min-width:4px;transition:width .3s ease}.room-inspection-stats-monthly-value{font-size:.85rem;color:var(--text-muted);text-align:right}.room-inspection-stats-daily{display:flex;flex-direction:column;gap:6px}.room-inspection-stats-daily-row{display:grid;grid-template-columns:50px 1fr 36px;align-items:center;gap:10px}.room-inspection-stats-daily-label{font-size:.85rem;font-weight:500}.room-inspection-stats-daily-value{font-size:.85rem;color:var(--text-muted);text-align:right}.room-inspection-stats--eval .room-inspection-stats-filters{gap:10px 16px}.room-inspection-stats-filter-sep{color:var(--text-muted);font-weight:500}.room-inspection-stats-worker-card{margin-bottom:24px;padding:20px;background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border)}.room-inspection-stats-worker-title{font-size:1.1rem;margin:0 0 16px;color:var(--text)}.room-inspection-stats-section--pastel{background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px 16px;margin-bottom:16px}.room-inspection-stats-section--pastel h4{font-size:.95rem;margin:0 0 10px;color:var(--text)}.room-inspection-stats-pastel-bar{display:flex;height:28px;border-radius:8px;overflow:hidden;margin-bottom:10px}.room-inspection-stats-pastel-seg{transition:width .25s ease;min-width:0}.stats-seg-perfect{background:#a2d9ce80}.stats-seg-pass{background:#fee50080}.stats-seg-fail{background:#ffb6c180}.room-inspection-stats-legend{display:flex;flex-wrap:wrap;gap:12px 20px;font-size:.85rem;color:var(--text-muted)}.room-inspection-stats-legend-item{display:inline-flex;align-items:center;gap:6px}.room-inspection-stats-legend-dot{width:10px;height:10px;border-radius:50%}.stats-dot-perfect{background:#a2d9cecc}.stats-dot-pass{background:#fee500cc}.stats-dot-fail{background:#ffb6c1cc}.room-inspection-stats-focus-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.room-inspection-stats-focus-list li{padding:8px 12px;background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:.9rem}.room-inspection-stats-focus-rank{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;background:#00000014;font-weight:600;margin-right:8px;font-size:.8rem}.room-inspection-stats-focus-count{color:var(--text-muted);font-size:.85rem;margin-left:6px}.room-inspection-stats-trend-wrap{background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border);padding:12px;min-height:120px}.room-inspection-stats-trend-svg{width:100%;height:80px;display:block}.room-inspection-stats-trend-wrap{--stats-trend-line: rgba(80, 120, 180, .7)}.room-inspection-stats-trend-svg polyline{vector-effect:non-scaling-stroke}.room-inspection-stats-trend-labels{display:flex;justify-content:space-between;margin-top:6px;font-size:.7rem;color:var(--text-muted)}.room-inspection-stats-trend-label{flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis}.room-inspection-stats-section--team{margin-top:24px}.room-inspection-stats-section--team h3{margin-bottom:14px}.room-inspection-stats-team-block{background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border);padding:14px 16px;margin-bottom:14px}.room-inspection-stats-team-block h4{font-size:.95rem;margin:0 0 8px;color:var(--text)}.room-inspection-stats-team-desc{font-size:.8rem;color:var(--text-muted);margin:0 0 8px}.room-inspection-stats-perfect-king{margin:0;font-size:1rem}.room-inspection-stats-focus-management{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.room-inspection-stats-focus-management li{padding:6px 12px;background:#ffb6c180;border:1px solid rgba(240,144,144,.6);border-radius:var(--radius-sm);font-size:.9rem}.room-inspection-stats-ranking .room-inspection-stats-ranking-desc{font-size:.8rem;color:var(--text-muted);margin:0 0 12px}.room-inspection-stats-ranking-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.room-inspection-stats-ranking-item{display:flex;align-items:center;gap:10px 16px;padding:10px 14px;background:#ffffff80;border-radius:var(--radius-sm);border:1px solid var(--border);color:var(--text);font-size:.95rem}.room-inspection-stats-ranking-item.rank-gold{background:#ffd70080;border-color:#daa52099;color:var(--text)}.room-inspection-stats-ranking-item.rank-silver{background:#c0c0c080;border-color:#a9a9a999;color:var(--text)}.room-inspection-stats-ranking-item.rank-bronze{background:#cd7f3280;border-color:#b8733399;color:var(--text)}.room-inspection-stats-ranking-medal{font-size:1.25rem;min-width:28px;text-align:center;font-weight:700}.room-inspection-stats-ranking-name{font-weight:600;flex:1}.room-inspection-stats-ranking-score{font-weight:700;color:var(--text)}.room-inspection-stats-ranking-meta{font-size:.85rem;color:var(--text-muted)}.room-inspection-stats-risk .room-inspection-stats-team-desc{margin-bottom:12px}.room-inspection-stats-risk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.room-inspection-stats-risk-item{display:flex;align-items:center;gap:10px 12px;padding:8px 12px;background:#ffb6c180;border:1px solid rgba(240,144,144,.6);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem}.room-inspection-stats-risk-rank{font-weight:700;min-width:1.5em;color:var(--text)}.room-inspection-stats-risk-name{font-weight:500;flex:1}.room-inspection-stats-risk-rate{font-weight:600;color:var(--danger, #c00)}.room-inspection-stats-risk-meta{font-size:.8rem;color:var(--text-muted)}.room-inspection-stats-best-stable .room-inspection-stats-team-desc{margin-bottom:12px}.room-inspection-stats-stable-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.room-inspection-stats-stable-item{display:flex;align-items:center;gap:10px 12px;padding:8px 12px;background:#a2d9ce80;border:1px solid rgba(129,199,184,.6);border-radius:var(--radius-sm);color:var(--text);font-size:.9rem}.room-inspection-stats-stable-name{font-weight:600;flex:1}.room-inspection-stats-stable-score{font-weight:700;color:var(--text)}.room-inspection-stats-stable-meta{font-size:.8rem;color:var(--text-muted)}.room-inspection-checklist{display:flex;flex-wrap:wrap;gap:12px 20px}.room-inspection-check-item{display:inline-flex;align-items:center;gap:8px;font-size:.95rem;color:var(--text);cursor:pointer}.room-inspection-check-item input{width:auto;margin:0}.qc-depth-zones{display:flex;flex-direction:column;gap:12px}.qc-depth-zone{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden}.qc-depth-zone--poor{border-color:#ffb7b280}.qc-depth-zone-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}.qc-depth-zone-title{font-weight:600;color:var(--text);font-size:.95rem}.qc-depth-zone-toggles{display:flex;gap:8px;flex-wrap:wrap}.qc-depth-zone-btn{padding:8px 14px;font-size:.875rem;font-weight:600;border:2px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s,border-color .2s}.qc-depth-zone-btn.status-우수{border-color:#c1e1c1;background:#c1e1c140}.qc-depth-zone-btn.status-보통{border-color:var(--brand);background:#fee50040}.qc-depth-zone-btn.status-미비{border-color:#ffb7b2;background:#ffb7b240}.qc-depth-zone-btn.active{font-weight:700}.qc-depth-zone-btn.status-우수.active{background:#c1e1c1;border-color:#9bc99b}.qc-depth-zone-btn.status-보통.active{background:var(--brand);border-color:var(--kakao-yellow-dark)}.qc-depth-zone-btn.status-미비.active{background:#ffb7b2;border-color:#f09090}.qc-depth-subwrap{max-height:0;overflow:hidden;transition:max-height .3s ease-out;background:#ffb7b233}.qc-depth-subwrap--open{max-height:320px;transition:max-height .35s ease-in}.qc-depth-sublist{padding:12px 14px 14px;display:flex;flex-wrap:wrap;gap:10px 20px}.qc-depth-subitem{margin:0}.room-inspection-file{width:100%;font-size:.9rem}.room-inspection-photos{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.room-inspection-photo-wrap{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.room-inspection-photo{width:100%;height:100%;object-fit:cover}.room-inspection-photo-remove{position:absolute;top:2px;right:2px;width:24px;height:24px;border:none;border-radius:50%;background:#0009;color:#fff;font-size:1.1rem;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.room-inspection-photo-more{font-size:.85rem;color:var(--text-muted);align-self:center}.room-inspection-error{color:var(--danger);font-size:.9rem;margin:0 0 12px}.room-inspection-submit{margin-top:8px;width:100%;padding:12px 20px;font-size:1rem;font-weight:600}.room-inspection-list-section.card{padding:20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-card)}.room-inspection-list-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.room-inspection-list-header h2{font-size:1.1rem;font-weight:600;margin:0;color:var(--text)}.room-inspection-list-hint{font-size:.85rem;font-weight:400;color:var(--text-muted)}.room-inspection-date-picker{width:auto;max-width:160px}.room-inspection-loading,.room-inspection-empty{text-align:center;color:var(--text-muted);font-size:.95rem;padding:24px 0;margin:0}.room-inspection-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}.room-inspection-card{padding:14px 16px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.08);font-size:.9rem}.room-inspection-card--excellent{background:#c1e1c180}.room-inspection-card--normal{background:#fee50059}.room-inspection-card--poor{background:#ffb7b280;border-color:#dc645f80;box-shadow:0 2px 8px #ffb7b24d}.room-inspection-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.room-inspection-card-room{font-weight:700;color:var(--text)}.room-inspection-card-status{font-weight:600;font-size:.85rem}.room-inspection-card-meta{font-size:.8rem;color:var(--text-muted);margin-bottom:4px}.room-inspection-card-memo{margin:8px 0 0;font-size:.85rem;color:var(--text);word-break:break-word}.room-inspection-card-checklist{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.room-inspection-card-tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.75rem;background:#00000014;color:var(--text)}.room-inspection-card-photos{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center}.room-inspection-card-photo{width:48px;height:48px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.room-inspection-card-photo-more{font-size:.8rem;color:var(--text-muted)}.room-inspection-card--clickable{cursor:pointer;transition:box-shadow .15s ease}.room-inspection-card--clickable:hover{box-shadow:0 4px 14px #00000014}.room-inspection-card--clickable:focus-visible{outline:2px solid var(--kakao-yellow);outline-offset:2px}.room-inspection-photo-viewer-overlay{z-index:10050;align-items:flex-start;padding:3vh 12px 5vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.room-inspection-photo-viewer.modal-content{max-width:min(720px,96vw);width:100%;margin:0 auto;display:flex;flex-direction:column;max-height:none;overflow:hidden}.room-inspection-photo-viewer-header{flex-shrink:0;align-items:flex-start}.room-inspection-photo-viewer-title{margin:0;font-size:1.05rem}.room-inspection-photo-viewer-sub{margin:6px 0 0;font-size:.82rem;color:var(--text-muted)}.room-inspection-photo-viewer-hint{margin:4px 0 0;font-size:.75rem;color:var(--text-secondary)}.room-inspection-photo-viewer-body{max-height:min(75vh,1400px);overflow-y:auto;padding:8px 16px 20px;display:flex;flex-direction:column;gap:20px;-webkit-overflow-scrolling:touch}.room-inspection-photo-viewer-figure{margin:0;padding:0}.room-inspection-photo-viewer-figure img{width:100%;height:auto;display:block;border-radius:var(--radius-sm);background:#1a1a1a}.room-inspection-photo-viewer-cap{margin-top:6px;font-size:.8rem;color:var(--text-muted);text-align:center}.room-inspection-all-filters{margin-bottom:12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff80;display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.room-inspection-all-quick{display:flex;gap:8px}.room-inspection-all-range{display:flex;align-items:flex-end;gap:8px}.room-inspection-all-range label,.room-inspection-all-worker label{display:flex;flex-direction:column;gap:4px}.room-inspection-all-range label span,.room-inspection-all-worker label span{font-size:.8rem;color:var(--text-muted)}.room-inspection-all-range-sep{color:var(--text-muted);margin-bottom:9px}.room-inspection-all-worker .room-inspection-input{min-width:160px}.room-inspection-all-search-btn{min-height:38px}@media(max-width:480px){.room-inspection-form.card,.room-inspection-list-section.card{padding:16px}.room-inspection-status-toggles{flex-direction:column}.room-inspection-status-btn{min-width:0;min-height:44px}.room-inspection-check-item{min-height:44px;align-items:center}.room-inspection-file{min-height:44px;padding:8px 0}.room-inspection-submit{min-height:48px;width:100%}}.room-status-page,.room-add-page{max-width:100%}.room-status-page{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow-card)}.room-status-loading,.room-status-error{padding:32px 24px;text-align:center;color:var(--text-muted);font-size:.95rem}.room-status-error{color:var(--danger)}.room-status-error-hint{margin-top:8px;font-size:.85rem;color:var(--text-muted)}.room-date-row{display:flex;align-items:center;gap:10px;margin-bottom:16px}.room-date-arrow{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:300;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.room-date-arrow:hover{background:var(--brand);border-color:var(--brand);color:var(--kakao-black)}.room-date-input{padding:8px 12px;font-size:1rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.room-date-input:focus{outline:none;border-color:var(--brand)}.room-bulk-section{margin-bottom:20px;padding:16px;background:var(--kakao-gray-1);border-radius:var(--radius-sm);border:1px solid var(--border)}.room-bulk-title{font-size:1rem;font-weight:600;margin:0 0 8px;color:var(--text)}.room-bulk-hint{font-size:.85rem;color:var(--text-muted);margin:0 0 10px}.room-bulk-textarea{width:100%;max-width:560px;padding:12px;font-size:.9rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);resize:vertical;margin-bottom:10px}.room-bulk-btn{padding:10px 20px;font-size:.95rem;font-weight:600;font-family:inherit;background:var(--brand);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer}.room-bulk-btn:hover{background:var(--brand-hover)}.room-status-header{margin-bottom:20px}.room-status-header h1{font-size:1.25rem;font-weight:700;color:var(--kakao-black);letter-spacing:-.02em;margin:0 0 12px}.room-status-save-error{color:var(--danger);font-size:.9rem;margin:0 0 12px}.room-status-save-success{color:var(--success);font-size:.9rem;margin:0 0 12px}.room-status-filters{display:flex;flex-wrap:wrap;gap:8px;padding:4px;background:var(--kakao-gray-1);border-radius:var(--radius-sm);width:fit-content}.room-status-filters .filter-btn{padding:8px 16px;font-size:.9rem;font-weight:500;font-family:inherit;background:transparent;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s}.room-status-filters .filter-btn:hover{color:var(--kakao-black);background:var(--surface);box-shadow:0 1px 2px #0000000a}.room-status-filters .filter-btn.active{background:var(--brand);color:var(--kakao-black);font-weight:600}.room-status-filters--worker .filter-btn{min-height:44px;min-width:44px;padding:10px 14px}.room-table-wrap{overflow-x:auto;border-radius:var(--radius-sm);border:1px solid var(--border);margin-top:16px}.room-table{width:100%;border-collapse:collapse;font-size:.9rem;background:var(--surface)}.room-table th,.room-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}.room-table thead tr{background:var(--table-header-bg, #F0F4F8)}.room-table th{font-weight:600;color:var(--kakao-black-85)}.room-table td{color:var(--text)}.room-table tbody tr:hover{background:var(--surface-hover)}.room-th-building,.room-td-building{min-width:80px}.room-th-num,.room-td-num{min-width:70px}.room-th-status,.room-td-status,.room-th-work,.room-td-work{min-width:100px}.room-th-actions,.room-td-actions{text-align:center;min-width:100px}.room-select{width:100%;min-width:90px;padding:10px 36px 10px 12px;font-size:.9rem;font-family:inherit;background:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;appearance:none}.room-select:focus{outline:none;border-color:var(--kakao-yellow);box-shadow:0 0 0 2px #fee50040}.room-status-empty{padding:32px 24px;text-align:center;color:var(--text-muted);font-size:.95rem;margin:0}.room-housekeeping-wrap{margin-top:16px;-webkit-overflow-scrolling:touch}.room-worker-cards{display:none;list-style:none;margin:0;padding:0;gap:12px}.room-worker-card{padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 12px;align-items:center}.room-worker-card-name{font-weight:600;color:var(--text);grid-column:1}.room-worker-card-status{grid-column:2;grid-row:1 / 3;padding:10px 14px;border-radius:10px;font-weight:600;font-size:.85rem;border:none;cursor:pointer;font-family:inherit}.room-worker-card-status:disabled{cursor:default;opacity:.9}.room-worker-card-notes{grid-column:1 / -1;font-size:.875rem;color:var(--text-muted);word-break:break-word}.room-worker-card-warning{margin-right:4px}@media(max-width:768px){.room-status-page--worker .room-worker-cards{display:flex;flex-direction:column}.room-status-page--worker .room-housekeeping-table{display:none}}.room-status-page--admin .room-worker-cards{display:none!important}.room-housekeeping-table--worker{min-width:0}.room-housekeeping-table--worker .room-th-notes-head,.room-housekeeping-table--worker .room-th-notes,.room-housekeeping-table--worker .room-td-notes{min-width:100px;max-width:none}.room-notes-readonly{display:block;word-break:break-word}.room-notes-warning-icon{margin-right:4px}.room-register-panel{margin-top:20px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:420px}.room-register-title{font-size:1.1rem;margin:0 0 16px;color:var(--text)}.room-register-form{display:flex;flex-direction:column;gap:14px}.room-register-label{display:flex;flex-direction:column;gap:4px;font-size:.9rem;font-weight:500;color:var(--text)}.room-register-select,.room-register-input,.room-register-textarea{padding:10px 12px;font-size:.95rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.room-register-textarea{resize:vertical;min-height:60px}.room-register-row{margin:4px 0}.room-register-std-btn{padding:10px 16px;font-size:.9rem;font-weight:600;font-family:inherit;background:var(--brand);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer}.room-register-std-btn:hover{background:var(--brand-hover)}.room-housekeeping-table{width:100%;min-width:720px;border-collapse:collapse;font-size:.875rem;background:var(--surface);font-family:Noto Sans KR,Nanum Gothic,-apple-system,sans-serif}.room-housekeeping-table thead{position:sticky;top:0;z-index:10;background:var(--table-header-bg, #F0F4F8);box-shadow:0 2px 0 var(--border)}.room-housekeeping-table th,.room-housekeeping-table td{border:1px solid var(--border)}.room-housekeeping-table th{padding:8px 10px;text-align:left;font-weight:600;color:var(--kakao-black-85);white-space:nowrap}.room-housekeeping-table td{padding:6px 10px;text-align:left;color:var(--text);vertical-align:middle}.room-housekeeping-table tbody tr{cursor:default;transition:background .15s}.room-housekeeping-table .room-td-clickable{cursor:pointer;font-weight:500;-webkit-user-select:none;user-select:none}.room-housekeeping-table .room-td-day.room-td-clickable:hover .room-day-card{background:#eee}.room-housekeeping-table .room-td-status.room-td-clickable:hover{text-decoration:none}.room-housekeeping-table .room-th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.room-housekeeping-table .room-th-sortable:hover{background:var(--kakao-gray-2)}.room-sort-icon{margin-left:4px;font-size:.7em;opacity:.4}.room-sort-icon.room-sort-active{opacity:1}.room-th-day,.room-td-day{min-width:90px}.room-day-card{display:inline-block;padding:8px 14px;border-radius:10px;background:#f5f5f5;font-weight:600;font-size:.95rem;color:var(--text)}.room-status-card{display:inline-block;padding:10px 16px;border-radius:12px;font-weight:600;font-size:.9rem;box-shadow:0 1px 3px #00000014;transition:transform .15s,box-shadow .15s}.room-td-clickable .room-status-card:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000001f}.room-status-card-red{background:var(--pastel-off);color:#333}.room-status-card-yellow{background:#ffca28;color:#333}.room-status-card-green{background:var(--pastel-annual);color:#333}.room-row-red{background:var(--pastel-off)}.room-row-yellow{background:#fffde7}.room-row-green{background:var(--pastel-annual)}.room-housekeeping-table tbody tr:hover{filter:brightness(.98)}.room-th-name,.room-td-name{min-width:88px}.room-th-status,.room-td-status{min-width:160px}.room-th-notes-head,.room-th-notes,.room-td-notes{min-width:180px;max-width:280px}.room-housekeeping-table .room-notes-input{min-width:100%;white-space:normal;word-break:break-word}.room-th-bedding,.room-td-bedding{min-width:72px}.room-th-guests,.room-td-guests{min-width:52px}.room-th-assignee,.room-td-assignee{min-width:72px}.room-th-order,.room-td-order{min-width:52px}.room-th-checkin,.room-td-checkin{min-width:80px}.room-bedding-alert{color:var(--danger);font-weight:600;font-size:.85rem}.room-notes-highlight{font-weight:700;color:var(--danger);font-size:.9rem}.room-inline-input{width:100%;min-width:50px;padding:8px 10px;font-size:.9rem;font-family:inherit;border:1px solid var(--border);border-radius:4px;background:var(--surface);color:var(--text)}.room-inline-input:focus{outline:none;border-color:var(--kakao-yellow)}.room-notes-urgent .room-inline-input,.room-notes-urgent.room-td-notes .room-inline-input{font-weight:700;color:var(--danger)}.room-add-page{background:transparent}.staff-search-row{display:flex;align-items:center;gap:12px;margin-bottom:16px}.staff-search-row label{font-size:.9rem;font-weight:500;color:var(--text)}.staff-search-input{padding:8px 14px;font-size:.95rem;border:1px solid var(--border);border-radius:var(--radius);min-width:220px}.th-sort-btn{background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--kakao-black);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.th-sort-btn:hover{color:var(--kakao-yellow-dark)}.room-add-page .room-add-header,.room-add-page .room-add-form,.room-add-page .room-add-list,.room-add-page .account-access-info,.room-add-page .staff-table-section{background:var(--surface);border:1px solid var(--border);border-radius:0;padding:24px;margin-bottom:20px;box-shadow:var(--shadow-card)}.room-add-page .staff-table-section .employee-manage-table-wrap{background:none;border:none;padding:0;margin:0;box-shadow:none}.my-records-filters{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:16px}.my-records-filters .filter-label{font-size:.9rem;font-weight:500;color:var(--text)}.my-records-filters .filter-select{padding:8px 12px;font-size:.9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:90px}.my-records-table td{white-space:nowrap}.my-records-table th:nth-child(1),.my-records-table td:nth-child(1),.my-records-table th:nth-child(2),.my-records-table td:nth-child(2){width:1%;white-space:nowrap}.my-records-table tr.my-records-row-off td{background:#0000000a}.my-records-table .my-records-location-cell{white-space:normal}.my-records-location-entries{display:flex;flex-wrap:wrap;flex-direction:column;gap:2px 0}.my-records-location-entry{display:block;line-height:1.35}.my-records-location-entry .location-time{display:block;font-size:.8em;color:var(--text-muted, #757575);margin-top:1px}@media(max-width:600px){.my-records-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.my-records-table-wrap .my-records-table{min-width:320px;font-size:.85rem}.my-records-table-wrap .my-records-table th,.my-records-table-wrap .my-records-table td{padding:8px 10px}.my-records-table-wrap .my-records-table td:last-child{white-space:nowrap}}.employee-manage-table-wrap{overflow-x:auto}.employee-manage-table{width:100%;border-collapse:collapse}.employee-manage-table th,.employee-manage-table td{padding:12px 14px;border-bottom:1px solid var(--border);text-align:left}.employee-manage-table thead th{font-weight:600;color:var(--text);background:var(--table-header-bg, #F0F4F8)}.emp-th-id{min-width:100px}.emp-th-dept{min-width:80px}.emp-th-role{min-width:100px}.emp-th-leave{min-width:70px;text-align:center}.emp-td-leave{text-align:center}.emp-th-hire{min-width:120px}.emp-td-hire{vertical-align:middle}.emp-hire-date-input{padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:.95rem;width:100%;max-width:140px}.emp-th-sites{min-width:360px}.emp-th-actions{min-width:140px}.emp-adjust-btn{margin-right:6px}.leave-adj-plus{color:var(--success, #2e7d32);font-weight:500}.leave-adj-minus{color:var(--danger, #c62828);font-weight:500}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:500}.status-badge.status-pending{background:#fff3e0;color:#e65100}.status-badge.status-approved{background:#e8f5e9;color:#2e7d32}.status-badge.status-rejected{background:#ffebee;color:#c62828}.status-reject-icon{margin-left:6px;cursor:help;color:#c62828;font-size:.9rem}.attendance-approve-btn,.attendance-reject-btn{margin-right:4px}.emp-role-select{padding:8px 12px;font-size:.9rem;border:1px solid var(--border);border-radius:4px;background:var(--surface);min-width:100px}.emp-sites-checkboxes{display:flex;flex-wrap:wrap;gap:12px 20px;max-width:100%}.emp-site-check{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:.9rem;white-space:nowrap}.emp-site-check input{cursor:pointer}.room-add-header h1{font-size:1.25rem;font-weight:700;color:var(--kakao-black);letter-spacing:-.02em;margin:0 0 8px}.room-add-desc{color:var(--text-muted);font-size:.9rem;margin:0 0 20px;line-height:1.5}.room-add-form-inline .room-add-inline{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:12px}.room-add-field{flex:0 0 auto;min-width:120px}.room-add-field label{display:block;font-size:.9rem;font-weight:500;color:var(--kakao-black-85);margin-bottom:6px}.room-add-input{width:100%;min-width:100px;height:44px;padding:0 14px;font-size:.95rem;font-family:inherit;background:var(--surface);border:1px solid var(--border);border-radius:0;color:var(--text);box-sizing:border-box;line-height:1.5}select.room-add-input{appearance:none;cursor:pointer;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236B6B6B' d='M6 8L2 4h8z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-color:var(--surface)}.room-add-input:focus{outline:none;border-color:var(--kakao-yellow);box-shadow:0 0 0 2px #fee50040}.room-add-input::placeholder{color:var(--kakao-gray-4)}.room-add-btn{padding:12px 20px;font-size:.95rem;font-weight:600;font-family:inherit;background:var(--brand);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 2px 6px #0000000f;transition:background .3s,color .3s,box-shadow .3s;flex-shrink:0}.room-add-btn:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-kakao)}.room-add-btn:disabled{opacity:.7;cursor:not-allowed}@media(max-width:600px){.staff-manage-page .room-add-field.staff-add-sites{flex:1 1 100%;min-width:0;width:100%}.staff-manage-page .emp-sites-checkboxes{gap:10px 12px}.staff-manage-page .emp-site-check{font-size:.85rem}}.staff-sites-modal-overlay{z-index:1050}.staff-sites-modal{max-width:360px;width:92%;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.staff-sites-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.staff-sites-modal-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--kakao-black)}.staff-sites-modal-close{width:32px;height:32px;padding:0;border:none;background:transparent;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center}.staff-sites-modal-close:hover{color:var(--kakao-black);background:var(--kakao-gray-1)}.staff-sites-modal-body{padding:16px;overflow-y:auto}.staff-sites-modal-body .emp-sites-checkboxes{flex-direction:column;gap:10px}.staff-sites-modal-footer{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.staff-sites-open-btn{white-space:nowrap}.room-add-messages{min-height:1.5em;margin-top:8px}.room-add-error{color:var(--danger);font-size:.9rem;margin:0}.room-add-success{color:var(--success);font-size:.9rem;margin:0}.room-add-list-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.room-add-list-header h2{font-size:1.1rem;font-weight:600;color:var(--kakao-black);margin:0}.room-add-refresh{padding:8px 16px;font-size:.9rem;font-weight:500;font-family:inherit;background:var(--kakao-gray-1);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 4px #0000000d;transition:background .3s,color .3s,box-shadow .3s}.room-add-refresh:hover:not(:disabled){background:var(--kakao-gray-2);box-shadow:0 2px 6px #00000014}.room-add-refresh:disabled{opacity:.6;cursor:not-allowed}.room-delete-btn{padding:6px 12px;font-size:.85rem;font-weight:500;font-family:inherit;background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 3px #0000000a;transition:background .3s,color .3s,box-shadow .3s}.room-delete-btn:hover:not(:disabled){background:#e74c3c14;box-shadow:0 2px 6px #e74c3c26}.room-delete-btn:disabled{opacity:.6;cursor:not-allowed}.btn-reset-pw{padding:6px 12px;font-size:.85rem;font-weight:500;font-family:inherit;background:var(--kakao-gray-1);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;box-shadow:0 1px 3px #0000000a;transition:background .3s,color .3s,border-color .3s,box-shadow .3s}.btn-reset-pw:hover:not(:disabled){background:var(--kakao-gray-2);color:var(--kakao-black-85);border-color:var(--kakao-gray-3);box-shadow:0 2px 6px #0000000f}.btn-reset-pw:disabled{opacity:.6;cursor:not-allowed}.user-actions-cell{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.user-reset-pw-btn{padding:6px 12px;font-size:.85rem;font-weight:500;font-family:inherit;background:var(--kakao-gray-1);color:var(--kakao-black);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .2s}.user-reset-pw-btn:hover:not(:disabled){background:var(--kakao-gray-2)}.user-reset-pw-btn:disabled{opacity:.6;cursor:not-allowed}.operator-board-title-btn{background:transparent;border:none;padding:0;font:inherit;color:var(--kakao-black);font-weight:700;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-thickness:from-font;text-underline-offset:3px;max-width:100%}.operator-board-title-btn:hover:not(:disabled){opacity:.85}.operator-board-inline-author{margin-left:8px;font-size:.82rem;color:var(--text-secondary)}.operator-board-detail-header{margin-bottom:12px}.operator-board-detail-header-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.operator-board-detail-actions{display:flex;flex-wrap:wrap;gap:8px}.operator-board-detail-title{margin:0;font-size:1.05rem}.operator-board-detail-meta{margin-bottom:12px;color:var(--text-secondary);font-size:.9rem}.operator-board-detail-content{white-space:pre-wrap;line-height:1.55;background:#ffffff8c;border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px}.operator-board-comments-title{margin:18px 0 10px}.operator-board-comment-list{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:10px}.operator-board-comment-item{background:#ffffff8c;border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px}.operator-board-comment-meta{color:var(--text-secondary);font-size:.85rem;margin-bottom:6px}.operator-board-comment-content{white-space:pre-wrap;line-height:1.5}.operator-board-comment-form{margin-top:10px}.operator-board-comment-actions{margin-top:10px;display:flex;justify-content:flex-end}.operator-board-attachment-list,.operator-board-checklist-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.operator-board-attachment-item,.operator-board-checklist-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#ffffff8c;border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.operator-board-checklist-item label{display:inline-flex;align-items:center;gap:8px}.operator-board-check-meta{color:#8d8d8d;font-size:.78rem;white-space:nowrap}.operator-board-checklist-add{display:flex;gap:8px;align-items:center}.room-inspection-operator-org{width:100%;overflow:visible}.operator-org-chart-iframe{display:block;width:100%;min-height:320px;height:720px;border:0;background:transparent;vertical-align:top}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#FFF9E6 0%,var(--bg) 45%);padding:1.5rem}.login-card{width:100%;max-width:400px;padding:2rem;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);border:1px solid var(--border);border-top:4px solid var(--brand)}.login-title{margin:0 0 .25rem;font-size:1.5rem;font-weight:700;color:var(--kakao-black);text-align:center;letter-spacing:-.02em}.login-desc{margin:0 0 1.5rem;font-size:.95rem;color:var(--text-muted);text-align:center}.login-form{display:flex;flex-direction:column;gap:1rem}.login-field label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.35rem;color:var(--kakao-black-85)}.login-input{width:100%;padding:12px 14px;font-size:1rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.login-input:focus{outline:none;border-color:var(--kakao-yellow);box-shadow:0 0 0 2px #fee50040}.login-input::placeholder{color:var(--kakao-gray-4)}.login-error{margin:0;font-size:.9rem;color:var(--danger)}.login-btn{width:100%;padding:16px 1.35rem;font-size:1rem;font-weight:700;font-family:inherit;border:none;border-radius:var(--radius-sm);background:var(--brand);color:var(--kakao-black);cursor:pointer;transition:background .2s,box-shadow .2s;margin-top:.5rem;box-shadow:0 2px 8px #fee50059}.login-btn:hover:not(:disabled){background:var(--brand-hover);box-shadow:0 3px 12px #fee50073}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-auto{margin-top:-.25rem}.login-auto-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text-muted)}.login-auto-label input{width:16px;height:16px}#root{max-width:1280px;margin:0 auto;padding:12px 16px;min-height:100vh;text-align:left;background:var(--bg)}@media(min-width:600px){#root{padding:20px 24px}}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em rgba(254,229,0,.6))}.read-the-docs{color:var(--text-muted)}.app-rejected-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff9e6;border:1px solid rgba(254,229,0,.5);border-left:4px solid var(--brand);border-radius:var(--radius-sm, 12px);margin-bottom:12px;font-size:.95rem;box-shadow:var(--shadow)}.app-rejected-btn{padding:6px 14px;background:var(--brand, #FEE500);color:var(--kakao-black, #191919);border:none;border-radius:var(--radius-sm, 12px);font-weight:600;cursor:pointer;font-size:.9rem;box-shadow:0 1px 4px #0000000f;transition:background .3s,color .3s,box-shadow .3s}.app-rejected-btn:hover{background:var(--brand-hover, #FADA0A);box-shadow:0 2px 8px #fee50066}.app-rejected-close{margin-left:auto;background:none;border:none;font-size:1.2rem;cursor:pointer;color:#666;padding:0 4px;transition:color .3s,opacity .3s}.app-rejected-close:hover{color:#333}.app-notification-banner{display:flex;align-items:center;flex-wrap:wrap;gap:10px 12px;padding:12px 16px;background:#e8f4fd;border:1px solid rgba(0,120,212,.25);border-left:4px solid #0078D4;border-radius:var(--radius-sm, 12px);margin-bottom:12px;font-size:.95rem;box-shadow:var(--shadow)}.app-notification-banner-text{display:flex;flex-direction:column;gap:4px}.app-notification-banner-hint{font-size:.85rem;color:#555}.app-notification-allow{padding:6px 14px;background:#0078d4;color:#fff;border:none;border-radius:var(--radius-sm, 12px);font-weight:600;cursor:pointer;font-size:.9rem;transition:background .2s,opacity .2s}.app-notification-allow:hover{background:#106ebe}.app-notification-dismiss{background:none;border:none;font-size:.9rem;color:#666;cursor:pointer;padding:4px 8px;text-decoration:underline;transition:color .2s}.app-notification-dismiss:hover{color:#333}#panel-employees.app-staff-panel,.app-staff-panel{display:block;min-height:200px}
