@import"https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Noto+Sans+KR:wght@400;500;700&display=swap";:root{font-family:Manrope,Noto Sans KR,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:#111827;background-color:#0a1020;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#0a1020}a{color:inherit;text-decoration:none}button,input{font:inherit}.calendar{width:100%;height:100%;display:flex;flex-direction:column;min-height:0;padding-bottom:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:auto;grid-auto-rows:1fr;gap:6px;flex:1;min-height:0;height:100%}.weekly-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;flex:1;min-height:0;height:100%}.dow{text-align:center;font-weight:700;color:#0b1222;padding:0 0 4px}.cell{background:#f9fafb;border-radius:12px;border:1px solid #e5e7eb;padding:8px;position:relative;min-height:88px;display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;cursor:pointer;appearance:none}.weekly-cell{background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:10px;min-height:0;display:flex;flex-direction:column;gap:10px;width:100%;text-align:left;cursor:pointer;appearance:none;overflow:hidden}.cell.current{background:#fff}.cell.dim{color:#9ca3af;background:#f3f4f6}.cell.sunday,.cell.current.sunday{background:#ffe4e6}.cell.saturday,.cell.current.saturday{background:#e0f2fe}.cell.dim.sunday{background:#fbd5da}.cell.dim.saturday{background:#dbeafe}.cell.holiday,.cell.current.holiday{background:#ffe4e6}.cell.dim.holiday{background:#fbd5da}.cell.today,.weekly-cell.today{border-color:#0b1222;box-shadow:0 0 0 3px #0b122214}.weekly-cell.sunday{background:#fff1f2}.weekly-cell.saturday{background:#eff6ff}.weekly-cell.holiday{background:#fff1f2}.weekly-day-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.weekly-dow{font-size:12px;font-weight:700;color:#64748b}.weekly-date{font-size:22px;line-height:1;font-weight:800;color:#0b1222}.weekly-event-stack{display:flex;flex-direction:column;gap:6px;overflow:auto;min-height:0}.weekly-fixed-cost-item{display:flex;align-items:center;gap:8px;border-radius:8px;padding:6px 10px;min-height:32px;color:#0b1222;border:1px solid transparent;cursor:pointer;text-align:left;max-width:100%}.weekly-fixed-cost-text{min-width:0;flex:1;display:flex;align-items:center;gap:6px;overflow:hidden}.weekly-fixed-cost-main,.weekly-fixed-cost-project,.weekly-fixed-cost-day{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-fixed-cost-project{flex-shrink:0;max-width:72px;font-size:12px;font-weight:800;color:#0f172a}.weekly-fixed-cost-main{font-size:12px;font-weight:700;flex:1}.weekly-fixed-cost-day{flex-shrink:0;font-size:11px;font-weight:700;color:#334155}.weekly-fixed-cost-check{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}.weekly-fixed-cost-check input{width:16px;height:16px;cursor:pointer}.weekly-fixed-cost-check.updating{opacity:.55}.day-number{font-weight:800;color:#0b1222;display:flex;align-items:center;gap:6px}.holiday-label{font-size:11px;font-weight:700;color:#b4232c;background:#f43f5e1f;border-radius:6px;padding:2px 6px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.event-stack{display:flex;flex-direction:column;gap:4px}.event-pill{border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.2;min-height:22px;color:#0b1222;border:1px solid transparent;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;max-width:100%}.event-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.event-meta{font-size:11px;font-weight:700;color:#0b1222;margin-left:auto;white-space:nowrap}.event-badge{font-size:10px;font-weight:800;padding:2px 6px;border-radius:999px;background:#0f172a1f;color:#0f172a;border:1px solid rgba(15,23,42,.18);white-space:nowrap}.more-pill{border:1px dashed #cbd5e1;background:#f8fafc;color:#0f172a;border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.2;min-height:22px;display:flex;align-items:center;cursor:pointer;text-align:left}.event-title{display:block;font-weight:600}.event-sub{display:block;color:#4b5563;margin-top:2px}@media(max-width:960px){.calendar-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(140px,1fr)}.dow{display:none}.weekly-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.calendar{padding:12px;height:auto}.calendar-grid{grid-template-columns:repeat(1,1fr);grid-auto-rows:minmax(120px,1fr);height:auto}.cell{padding:10px;gap:6px}.event-pill{padding:4px 8px;font-size:11px}.weekly-grid{grid-template-columns:1fr;height:auto}.weekly-cell{min-height:160px}}.login-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:40px 16px;background:#0b1222;overflow:hidden}.login-card{position:relative;width:min(980px,100%);background:#0c1324b3;border-radius:24px;display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden;box-shadow:0 14px 34px #00000052;border:1px solid rgba(255,255,255,.05)}.brand-side{position:relative;background:radial-gradient(circle at 30% 35%,rgba(251,191,36,.14),transparent 45%),radial-gradient(circle at 70% 25%,rgba(255,255,255,.08),transparent 40%),linear-gradient(145deg,#0c1020,#0b0f1f 55%,#0a0e1d);padding:32px 28px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e5e7eb}.logo-panel{width:300px;max-width:100%;aspect-ratio:1 / 1;display:grid;place-items:center;border-radius:20px;background:linear-gradient(150deg,#1e293b1a,#0c1324b3),radial-gradient(circle at 20% 20%,rgba(251,191,36,.14),transparent 42%),radial-gradient(circle at 80% 30%,rgba(255,255,255,.08),transparent 40%);box-shadow:0 16px 32px #0006,inset 0 1px 12px #ffffff0a;border:1px solid rgba(255,255,255,.05)}.logo-image{width:70%;height:70%;object-fit:contain;background:transparent}.logo-fallback{display:grid;place-items:center;gap:16px}.logo-circle{width:120px;height:120px;border-radius:30px;background:linear-gradient(145deg,#1f2937,#0f172a);color:#fcd34d;font-size:54px;font-weight:800;display:grid;place-items:center;box-shadow:inset 0 -6px 14px #00000080,0 10px 26px #00000059;letter-spacing:1px}.logo-wordmark{color:#fbbf24;font-size:32px;font-weight:800;letter-spacing:1.8px;text-shadow:0 6px 16px rgba(0,0,0,.35)}.brand-caption{margin-top:22px;color:#cbd5e1;font-weight:600;letter-spacing:.5px}.form-side{background:#fff;padding:20px 30px;display:flex;flex-direction:column;justify-content:center;gap:12px}.form-title{display:none}.login-form{display:flex;flex-direction:column;gap:16px;width:100%}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-weight:700;color:#1f2937;font-size:14px}.field input{width:100%;border-radius:12px;border:1px solid #e5e7eb;padding:12px 14px;font-size:15px;background:#f8fafc;transition:border-color .14s ease,box-shadow .14s ease,background .14s ease}.field input:focus{outline:none;border-color:#38bdf8;background:#fff;box-shadow:0 0 0 4px #38bdf82e}.login-button{border:none;border-radius:14px;padding:14px;font-weight:800;font-size:16px;color:#fff;background-image:linear-gradient(135deg,#1fa2ff,#0d8bff);cursor:pointer;box-shadow:0 10px 22px #008bff61,0 6px 14px #00000029;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.login-button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #008bff7a,0 8px 18px #0000002e}.login-button:active{transform:translateY(0);filter:brightness(.98)}@media(max-width:960px){.login-card{grid-template-columns:1fr;max-width:520px}.brand-side{padding:36px 28px}.form-side{padding:36px 32px 44px}}@media(max-width:560px){.logo-panel{width:240px}.logo-circle{width:100px;height:100px;font-size:46px}.form-title{font-size:22px}.login-button{font-size:15px}}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:#0b1222;color:#0b1222}.top-header{height:72px;background:#0b1222;color:#f8fafc;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 6px 18px #0b122252}.brand-row{display:flex;align-items:center;gap:6px}.brand{font-weight:800;font-size:20px;letter-spacing:.6px}.main-nav{display:inline-flex;align-items:center;gap:0;margin-left:24px;padding:0;background:transparent;border:none;box-shadow:none}.menu-btn{border:none;background:transparent;color:#94a3b8;padding:10px 16px 12px;border-radius:0;font-weight:800;font-size:16px;cursor:pointer;transition:color .15s ease,box-shadow .15s ease;line-height:1;position:relative;display:inline-flex;align-items:center;justify-content:center}.menu-btn:hover{color:#e2e8f0}.menu-btn.active{color:#fff;box-shadow:inset 0 -3px #0d8bff}.menu-btn+.menu-btn{margin-left:16px}.menu-btn+.menu-btn:before{content:"";position:absolute;left:-8px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:#ffffff40}.admin-menu{position:relative;display:inline-flex;align-items:center;margin-left:16px}.admin-menu:before{content:"";position:absolute;left:-8px;top:50%;width:1px;height:18px;transform:translateY(-50%);background:#ffffff40}.admin-menu:after{content:"";position:absolute;left:-8px;right:-8px;top:100%;height:12px}.admin-dropdown{position:absolute;top:100%;left:0;margin-top:8px;min-width:160px;background:#0f172a;border:1px solid rgba(148,163,184,.25);border-radius:10px;padding:6px;box-shadow:0 14px 28px #0f172a73;opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s ease,transform .16s ease;z-index:20}.admin-menu:hover .admin-dropdown,.admin-menu:focus-within .admin-dropdown{opacity:1;transform:translateY(0);pointer-events:auto}.admin-menu.open .admin-dropdown{opacity:1;transform:translateY(0);pointer-events:auto}@media(max-width:960px){.admin-menu{position:relative}.admin-dropdown{position:absolute;left:0;right:auto;top:100%;margin-top:6px;transform:translateY(0);z-index:3000}}.admin-dropdown-item{display:block;width:100%;border:none;background:transparent;color:#e2e8f0;padding:8px 12px;border-radius:8px;font-weight:700;font-size:14px;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease}.admin-dropdown-item:hover{background:#ffffff1a;color:#fff}.collapse.head{width:38px;height:38px;border-radius:19px;border:none;background:transparent;color:#f8fafc;cursor:pointer;margin-right:0;display:inline-flex;align-items:center;justify-content:center;font-size:16px;transition:background .15s ease,border-color .15s ease}.collapse.head:hover{border:1px solid rgba(255,255,255,.25);background:#ffffff1f}.header-toolbar{display:flex;align-items:center;gap:8px;margin-right:24px}.header-title{margin:0;font-size:20px}.header-actions{display:flex;align-items:center;gap:12px}.time-pill{padding:10px 14px;border-radius:12px;background:#ffffff1f;color:#e5e7eb;font-weight:600}.ghost{border:1px solid #dfe3ed;background:#fff;color:#0b1222;padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:700;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:0 10px 20px #0000001f}.ghost:hover{transform:translateY(-1px);background:#f5f7fb;box-shadow:0 12px 26px #0000002e}.nav{width:36px;height:36px;border-radius:10px;border:1px solid #d8dce8;background:#f6f7fb;color:#0b1222;font-weight:700;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}.today-btn{padding:10px 16px;border-radius:12px;border:1px solid #dfe3ed;background:#fff;color:#0b1222;font-weight:700;cursor:pointer;box-shadow:0 10px 20px #0000001f;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;display:inline-flex;align-items:center;justify-content:center;min-width:64px;line-height:1}.today-btn:hover{transform:translateY(-1px);background:#f5f7fb;box-shadow:0 12px 26px #0000002e}.logout{border:1px solid #f5c2c7;background:#ffe5e9;color:#b4232c;padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:700;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;box-shadow:0 10px 20px #b4232c1f}.logout:hover{transform:translateY(-1px);background:#ffd6dc;box-shadow:0 12px 26px #b4232c2e}.layout{display:grid;--sidebar-w: 260px;grid-template-columns:var(--sidebar-w) 1fr;flex:1;min-height:calc(100vh - 72px);transition:grid-template-columns .2s ease}.layout.no-sidebar{--sidebar-w: 0px}.sidebar{background:#0f172a;color:#e5e7eb;padding:16px;display:flex;flex-direction:column;gap:12px;border-right:1px solid rgba(255,255,255,.08);transition:width .18s ease,opacity .18s ease,transform .18s ease;width:260px;overflow:hidden;position:relative}.sidebar.collapsed{width:0;padding:0;border:none;opacity:0;transform:translate(-8px);pointer-events:none}.sidebar-top{display:flex;align-items:center;gap:10px;justify-content:space-between}.sidebar-close{display:none;width:34px;height:34px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:#f8fafc;cursor:pointer;align-items:center;justify-content:center;font-size:16px}.collapse{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#f8fafc;cursor:pointer}.mini-month{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px}.mini-month-label{font-weight:700}.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.mini-grid .dow{color:#cbd5e1;font-size:12px;text-align:center}.mini-cell{border-radius:8px;border:1px solid transparent;background:transparent;color:#e5e7eb;padding:6px 0;cursor:pointer}.mini-cell.current{color:#fff}.mini-cell.dim{color:#94a3b8}.mini-cell.today{border-color:#38bdf8}.mini-cell.sunday{background:#f871712e}.mini-cell.saturday{background:#3b82f62e}.mini-cell.dim.sunday{background:#f871711f}.mini-cell.dim.saturday{background:#3b82f61f}.mini-cell.holiday{background:#f8717138}.mini-cell.dim.holiday{background:#f8717129}.filter-panel{margin-top:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a;display:flex;flex-direction:column;gap:8px}.filter-title{font-weight:700;color:#e5e7eb;font-size:13px}.filter-item{display:flex;align-items:center;gap:8px;color:#e5e7eb;font-size:13px}.radio-item{cursor:pointer}.radio-item .filter-label{font-weight:700}.filter-select{flex:1;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#e5e7eb;padding:8px 10px;border-radius:10px;font-size:13px}.filter-select:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf833}.filter-select option{color:#0b1222;background:#fff}.filter-item input{accent-color:#0d8bff;width:14px;height:14px}.filter-color{width:10px;height:10px;border-radius:999px;display:inline-block;border:1px solid rgba(0,0,0,.15)}.legend-panel{margin-top:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a;display:flex;flex-direction:column;gap:8px}.legend-title{font-weight:700;color:#e5e7eb;font-size:13px}.legend-item{display:flex;align-items:center;gap:8px}.legend-swatch{width:14px;height:14px;border-radius:4px;border:1px solid transparent;background-color:#fff;flex-shrink:0}.legend-swatch-pending{background-color:#fff;border-color:#fff}.legend-swatch-approved{background-color:#00f;border-color:#00f}.legend-swatch-rejected{background-color:red;border-color:red}.legend-label{color:#e2e8f0;font-size:12px}.content{background:#fff;padding:10px 16px 8px;border-top-left-radius:24px;border-top-right-radius:24px;box-shadow:0 -6px 18px #0000001a;display:flex;flex-direction:column;gap:8px;min-height:calc(100vh - 72px);max-height:calc(100vh - 72px);overflow:hidden}.annual-leave-page{flex:1;display:flex;align-items:center;justify-content:center;background:#0b1222}.annual-card{background:#0f172a;color:#e5e7eb;padding:24px;border-radius:16px;border:1px solid rgba(255,255,255,.08);width:min(420px,90%);box-shadow:0 16px 32px #0f172a66;display:flex;flex-direction:column;gap:12px}.annual-card h2{margin:0;font-size:18px}.annual-field{display:grid;grid-template-columns:1fr auto;gap:10px}.annual-field input{width:100%;border:1px solid rgba(255,255,255,.16);border-radius:12px;padding:12px 14px;background:#ffffff0f;color:#e5e7eb}.annual-error{margin:0;color:#fca5a5;font-size:13px}.annual-result{display:flex;flex-direction:column;gap:8px}.annual-name{font-weight:800;font-size:16px;color:#0b1222}.annual-hire{font-size:13px;font-weight:700;color:#64748b;margin-top:6px}.annual-divider{height:1px;background:#e5e7eb;margin:6px 0 2px}.annual-meta{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#334155}.annual-admin-page{flex:1;display:flex;align-items:flex-start;justify-content:flex-start;padding:12px 8px;width:100%;background:transparent}.annual-admin-card{width:100%;background:#f8f9fa;color:#0b1222;padding:20px 24px;border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 18px 36px #0f172a1f;display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 140px)}.annual-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.annual-admin-head h2{margin:0;font-size:18px;font-weight:800}.annual-admin-table{display:flex;flex-direction:column;gap:8px;overflow-x:auto;width:100%;overflow-y:auto;padding-right:4px}.annual-admin-row{display:grid;grid-template-columns:80px minmax(140px,1fr) 100px 120px 110px 120px 80px 90px 90px 80px;gap:8px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;min-width:1040px;align-items:center}.annual-admin-row.fixed-cost-row{grid-template-columns:80px 140px minmax(220px,1.4fr) 120px 120px 140px 160px 90px;min-width:980px}.annual-admin-row.ot-admin-row{grid-template-columns:80px 140px 130px 140px 100px 110px minmax(160px,1fr) 140px;min-width:980px}.ot-summary-table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:980px;-webkit-user-select:text;user-select:text}.ot-summary-table th,.ot-summary-table td{padding:0;background:#fff;border:1px solid #e2e8f0;font-size:13px;color:#0f172a;-webkit-user-select:text;user-select:text}.ot-cell{display:block;width:100%;height:100%;padding:10px 12px;-webkit-user-select:text;user-select:text}.ot-summary-table th{background:#eef2f7;font-weight:700;color:#1f2937}.ot-summary-table tr th:first-child,.ot-summary-table tr td:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}.ot-summary-table tr th:last-child,.ot-summary-table tr td:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px;text-align:right;font-weight:700}.ot-summary-table th:nth-child(2),.ot-summary-table th:nth-child(3){background:#e6f1ff}.ot-summary-table th:nth-child(4),.ot-summary-table th:nth-child(5),.ot-summary-table th:nth-child(6){background:#eaf9f3}.ot-summary-table th:nth-child(7){background:#fff4e6}.ot-summary-table th:nth-child(8){background:#eef2f7}.ot-summary-table th:nth-child(8) .ot-cell,.ot-summary-table td:last-child .ot-cell{text-align:right;font-weight:700}.ot-detail-btn{border:1px solid #cbd5e1;background:#fff;color:#1f2937;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.ot-detail-btn:hover{background:#eaf2ff;border-color:#60a5fa;color:#1d4ed8}.ot-approval-table{width:100%;border-collapse:separate;border-spacing:0 8px;min-width:1100px}.ot-approval-table th,.ot-approval-table td{padding:10px 12px;background:#fff;border:1px solid #e2e8f0;font-size:13px;color:#0f172a}.ot-approval-table th{background:#eef2f7;font-weight:700;color:#1f2937}.ot-approval-table tr th:first-child,.ot-approval-table tr td:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}.ot-approval-table tr th:last-child,.ot-approval-table tr td:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}.ot-approval-actions{display:flex;gap:8px}.ot-approval-tabs{display:flex;gap:8px;align-items:center}.ot-approval-head{justify-content:flex-start}.ot-history-toggle{margin-left:6px;font-weight:800;border-color:#93c5fd;background:#eaf3ff;color:#1d4ed8}.ot-history-toggle:hover{background:#dbeafe;border-color:#60a5fa}.ot-tab{border:none;background:transparent;color:#94a3b8;padding:10px 16px 12px;border-radius:0;font-weight:800;font-size:16px;cursor:pointer;transition:color .15s ease,box-shadow .15s ease;line-height:1;position:relative;display:inline-flex;align-items:center;justify-content:center}.ot-tab.active{color:#0b1222;box-shadow:inset 0 -3px #0d8bff}.ot-approve-btn{border:none;border-radius:10px;padding:6px 12px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-weight:700;cursor:pointer}.ot-reject-btn{border:none;border-radius:10px;padding:6px 12px;background:linear-gradient(135deg,#f87171,#ef4444);color:#fff;font-weight:700;cursor:pointer}.ot-detail-list{display:flex;flex-direction:column;gap:8px}.ot-detail-row{display:grid;grid-template-columns:120px 140px 90px 80px 1fr;gap:8px;padding:10px 12px;border-radius:10px;background:#fff;border:1px solid #e2e8f0;align-items:center}.ot-detail-row.head{background:#eef2f7;border-color:#e2e8f0;font-weight:700}.annual-admin-row span{font-size:13px;color:#0f172a}.admin-edit-btn{border:none;border-radius:10px;padding:8px 12px;background:linear-gradient(135deg,#1fa2ff,#0d8bff);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 8px 16px #0d8bff40;transition:transform .12s ease,box-shadow .12s ease}.admin-edit-btn:hover{transform:translateY(-1px);box-shadow:0 12px 20px #0d8bff59}.annual-admin-row.head{background:#eef2f7;border-color:#e2e8f0}.annual-admin-row.head span{font-weight:700;color:#1f2937}.annual-admin-empty{color:#64748b;padding:16px 8px;text-align:center}.annual-loading{color:#334155;font-weight:600}.admin-sidebar{display:flex;flex-direction:column;gap:12px;padding:8px 4px}.admin-sidebar-title{font-weight:800;font-size:14px;color:#e2e8f0}.admin-sidebar-field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:#cbd5e1}.admin-sidebar-hint{font-size:12px;color:#94a3b8;margin-top:4px}.admin-sidebar-field input,.admin-sidebar-field select{width:100%;border:1px solid rgba(255,255,255,.28);background:#ffffff1f;color:#e5e7eb;border-radius:10px;padding:9px 12px;font-size:14px}.admin-sidebar-field input::placeholder{color:#94a3b8}.admin-sidebar-field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg width='14' height='9' viewBox='0 0 14 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.25 1.5L7 7.5L1.75 1.5' stroke='%23CBD5E1' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.admin-sidebar-field select:focus,.admin-sidebar-field input:focus{outline:none;border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf840}.admin-sidebar-field select option{background:#fff;color:#0b1222}.admin-sidebar-action{border:none;border-radius:12px;padding:10px 12px;background:linear-gradient(135deg,#1fa2ff,#0d8bff);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 10px 22px #008bff59;transition:transform .12s ease,box-shadow .12s ease}.admin-sidebar-action:hover{transform:translateY(-1px);box-shadow:0 12px 26px #008bff73}.content>.calendar{flex:1;min-height:0;padding-bottom:0}.nav{width:36px;height:36px;border-radius:10px;border:1px solid #d8dce8;background:#f6f7fb;color:#0b1222;font-weight:700;cursor:pointer}@media(max-width:960px){.top-header{position:sticky;top:0;z-index:1700}.layout{grid-template-columns:1fr}.sidebar{display:flex;position:fixed;top:0;left:0;bottom:0;z-index:1500;width:260px;transform:translate(0);box-shadow:12px 0 32px #0000004d;padding-top:52px}.sidebar.collapsed{transform:translate(-100%);opacity:0;pointer-events:none}.sidebar-close{display:inline-flex;position:absolute;top:12px;right:12px;z-index:1}.content{border-radius:0;min-height:auto;max-height:none;overflow:auto}.top-header{flex-direction:column;height:auto;align-items:flex-start;gap:8px;padding:10px 12px}.brand-row{width:100%;flex-wrap:wrap;gap:8px}.main-nav{width:100%;overflow:visible;padding-bottom:6px;flex-wrap:wrap}.main-nav::-webkit-scrollbar{height:4px}.main-nav::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:999px}.menu-btn{font-size:14px;padding:8px 12px 10px;white-space:nowrap}.header-actions{width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap}.header-toolbar{flex-wrap:wrap;gap:6px}.month-title{font-size:16px}.annual-admin-card{padding:16px}.annual-admin-table{overflow-x:auto}.annual-admin-table>table,.annual-admin-table>div{min-width:0}}.scroll-top-btn{position:fixed;right:16px;bottom:16px;width:46px;height:46px;border-radius:14px;border:none;background:linear-gradient(135deg,#1fa2ff,#0d8bff);color:#fff;font-weight:900;font-size:18px;cursor:pointer;box-shadow:0 12px 26px #0d8bff59;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .15s ease,transform .15s ease;z-index:1800}.scroll-top-btn.show{opacity:1;pointer-events:auto;transform:translateY(0)}@media(min-width:961px){.scroll-top-btn{display:none}}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;padding:16px}.modal-panel{background:#fff;width:min(940px,100%);border-radius:18px;box-shadow:0 18px 48px #00000047;display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 32px)}.modal-head{padding:16px 20px 8px;border-bottom:1px solid #e5e7eb;position:sticky;top:0;background:#fff;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h2{margin:0;font-size:18px;color:#0b1222}.modal-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow:auto}.modal-body.split{flex-direction:row;gap:16px}.event-list-panel{width:40%;min-width:260px;max-height:480px;border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#f8fafc;overflow:auto;display:flex;flex-direction:column;gap:10px}.event-list-title{font-weight:800;color:#0b1222;margin:0 0 4px}.event-list-item{border:1px solid #d8dce8;border-left:4px solid #38bdf8;border-radius:10px;padding:8px 10px;background:#fff;text-align:left;cursor:pointer}.event-list-item .name{font-weight:700;color:#0b1222;margin-bottom:2px;font-size:13px}.event-list-item .meta{font-size:12px;color:#4b5563}.event-list-item:hover{background:#f3f6fb}.event-list-item.selected{border-color:#0d8bff;border-left-color:#0d8bff;background:#e9f3ff!important;box-shadow:0 0 0 2px #0d8bff59}.form-panel{flex:1;display:flex;flex-direction:column;gap:12px}.modal-body .field{display:flex;flex-direction:column;gap:6px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-body .field-label{font-weight:700;color:#111827;font-size:14px}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.field-helper{font-size:12px;color:#64748b;font-weight:700;white-space:nowrap}.ot-name-row{grid-template-columns:1fr 210px;align-items:end}.ot-total{align-self:stretch}.ot-total-value{border:1px solid #d8dce8;border-radius:12px;padding:10px 12px;background:#f8fafc;font-size:14px;font-weight:800;color:#111827;min-height:40px;display:flex;align-items:center;justify-content:center}.modal-body input,.modal-body select,.modal-body textarea{width:100%;border:1px solid #d8dce8;border-radius:12px;padding:10px 12px;font-size:14px;background:#f8fafc}.time-select{display:flex;align-items:center;gap:6px}.time-select select{flex:1;width:100%;padding:10px;border-radius:12px;border:1px solid #d8dce8;background:#f8fafc;font-size:14px}.time-sep{font-weight:800;color:#94a3b8;padding:0 2px}.modal-body select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg width='14' height='9' viewBox='0 0 14 9' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.25 1.5L7 7.5L1.75 1.5' stroke='%236B7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;cursor:pointer}.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{outline:none;border-color:#38bdf8;background:#fff;box-shadow:0 0 0 4px #38bdf82e}.modal-body textarea{resize:vertical;min-height:80px}.companion-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.companion-input-row{display:flex;gap:8px;align-items:center}.companion-input-row input{flex:1}.companion-add{padding:10px 12px;border-radius:10px;box-shadow:none}.companion-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#1e3a8a;font-size:13px;font-weight:600}.companion-remove{border:none;background:transparent;color:#64748b;cursor:pointer;font-weight:700;line-height:1}.companion-remove:hover{color:#ef4444}.modal-foot{padding:12px 20px 16px;display:flex;justify-content:flex-end;border-top:1px solid #e5e7eb;position:sticky;bottom:0;background:#fff;z-index:1}.modal-close{border:1px solid #d8dce8;background:#f8fafc;color:#111827;border-radius:10px;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:800}.save-btn{border:none;border-radius:12px;padding:12px 16px;background:linear-gradient(135deg,#1fa2ff,#0d8bff);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 10px 22px #008bff61;transition:transform .12s ease,box-shadow .12s ease}.save-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px #008bff73}.danger-btn{border:none;border-radius:12px;padding:12px 16px;background:linear-gradient(135deg,#ff5f6d,#d7263d);color:#fff;font-weight:800;cursor:pointer;box-shadow:0 10px 22px #d7263d59;transition:transform .12s ease,box-shadow .12s ease}.danger-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px #d7263d73}.confirm-panel{background:#fff;width:min(360px,100%);border-radius:14px;box-shadow:0 16px 36px #00000040;overflow:hidden}.confirm-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.confirm-text{margin:0;font-weight:700;color:#0b1222;font-size:15px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:720px){.field-row{grid-template-columns:1fr}.modal-body.split{flex-direction:column}.event-list-panel{width:100%;max-height:220px}.top-header{padding:8px 10px}.brand{font-size:18px}.menu-btn+.menu-btn{margin-left:10px}.menu-btn+.menu-btn:before,.admin-menu:before{display:none}.admin-menu{margin-left:8px}.logout{padding:6px 10px;font-size:12px}.today-btn,.nav{height:32px;width:32px}.annual-admin-table{padding-right:0;overflow-x:visible}.annual-admin-row.head{display:none}.annual-admin-row{grid-template-columns:1fr;gap:6px;min-width:0}.annual-admin-row span{display:flex;align-items:center;justify-content:space-between;gap:10px}.annual-admin-row span:before{content:attr(data-label);font-weight:700;color:#475569;font-size:12px}.ot-summary-table thead,.ot-approval-table thead{display:none}.ot-summary-table,.ot-approval-table,.ot-summary-table tbody,.ot-approval-table tbody,.ot-summary-table tr,.ot-approval-table tr{display:block;width:100%}.ot-summary-table tr,.ot-approval-table tr{margin-bottom:12px;border-radius:12px;overflow:hidden}.ot-summary-table td,.ot-approval-table td{display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:1px solid #e2e8f0;border-right:1px solid #e2e8f0}.ot-summary-table td:before,.ot-approval-table td:before{content:attr(data-label);font-weight:700;color:#475569;font-size:12px}}@media(max-width:480px){.modal-body{padding:12px 14px}.modal-head h2{font-size:16px}.modal-body .field-label{font-size:12px}.modal-body input,.modal-body select,.modal-body textarea{font-size:12px;padding:8px 10px}.event-list-panel{max-height:180px;padding:8px}.event-list-title{font-size:13px}.event-list-item{padding:6px 8px}.event-list-item .name{font-size:12px}.event-list-item .meta{font-size:11px}}
