@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans','Noto Sans KR',sans-serif;color:#1a2937;background:#f4f6f8;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}.shell{display:flex;min-height:100vh}.sidebar{width:230px;background:#162936;color:#aabac3;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0}.brand{height:94px;display:flex;align-items:center;gap:11px;padding:0 24px;color:white}.brand-mark{display:grid;place-items:center;background:#55c7ad;color:#102e32;font-size:22px;font-weight:800;width:37px;height:37px;border-radius:9px}.brand strong{display:block;font-size:17px;letter-spacing:.09em}.brand small{display:block;font-size:8px;letter-spacing:.12em;color:#9eb4be;margin-top:3px}.side-label{font-size:10px;letter-spacing:.12em;color:#6e8995;padding:18px 24px 10px;font-weight:700}nav{padding:0 12px}nav button{width:100%;border:0;background:none;color:#aabac3;text-align:left;padding:13px 14px;border-radius:7px;display:flex;align-items:center;gap:13px;margin:3px 0}nav button:hover,nav button.active{background:#27414c;color:#fff}nav button.active{box-shadow:inset 3px 0 #5bceb2;font-weight:700}.nav-icon{font-size:17px;width:20px;text-align:center}.side-bottom{margin:auto 20px 25px;padding:16px 5px;border-top:1px solid #35505b;color:#c7d4d9;font-size:12px}.side-bottom small{display:block;color:#7f98a3;margin:6px 0 0 13px}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#61d4b1;margin-right:5px}main{margin-left:230px;width:calc(100% - 230px)}.topbar{height:72px;background:#fff;border-bottom:1px solid #e6eaed;display:flex;align-items:center;justify-content:space-between;padding:0 36px;font-size:13px;color:#4d5e69}.breadcrumb{font-size:10px;letter-spacing:.12em;color:#a0adb5;font-weight:700}.slash{margin:0 12px;color:#cbd3d8}.top-right{display:flex;align-items:center;gap:10px}.top-right small{display:block;font-size:10px;color:#9ba8b0}.top-right #clock{margin-right:18px;color:#84939d}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e1f3ed;color:#23846d;font-weight:700}.content{padding:34px 36px 60px;max-width:1600px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:27px}.eyebrow{color:#42a48e;letter-spacing:.13em;font-weight:800;font-size:10px;margin:0 0 8px}.page-head h1{font-size:26px;letter-spacing:-.06em;margin:0 0 7px}.sub{margin:0;color:#8a99a3;font-size:13px}.button{border:1px solid #dce4e7;background:white;color:#394e59;border-radius:7px;padding:10px 15px;font-weight:700;font-size:12px}.button:hover{border-color:#4fb89e}.button.primary{background:#218e78;color:white;border-color:#218e78}.button.small{padding:7px 10px}.button.danger{color:#b55c54}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.card{background:#fff;border:1px solid #e6ecee;border-radius:10px;box-shadow:0 3px 12px #273f4b08}.stat{padding:20px 22px;min-height:125px}.stat-top{display:flex;justify-content:space-between;color:#788b95;font-size:12px;font-weight:600}.stat-icon{background:#eaf7f3;color:#24977d;border-radius:8px;padding:8px;font-size:16px}.stat-value{font-size:27px;font-weight:700;margin:12px 0 2px;letter-spacing:-.04em}.stat-value small{font-size:12px;color:#8797a0;font-weight:500;margin-left:5px}.stat-note{color:#9baab2;font-size:11px}.grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px}.panel{padding:22px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.panel h2{font-size:15px;margin:0;letter-spacing:-.03em}.panel-head p{font-size:11px;color:#a1afb7;margin:5px 0 0}.tabs{display:flex;gap:5px}.tabs button{border:0;border-radius:6px;background:#f1f5f5;color:#82949b;padding:7px 12px;font-size:11px;font-weight:700}.tabs button.active{background:#dcf3eb;color:#168b72}.legend{display:flex;gap:15px;color:#899aa3;font-size:11px;margin-bottom:16px}.dot{width:8px;height:8px;display:inline-block;border-radius:2px;margin-right:5px}.floor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.rack{border:1px solid #e7edee;background:#f7f9f9;color:#a6b2b7;border-radius:5px;text-align:left;padding:8px 10px;font-size:10px;min-height:38px}.rack.used{background:#e1f3ed;border-color:#cbe9df;color:#248a72}.rack.busy{background:#fff2dd;border-color:#f6dfb7;color:#ac7923}.rack:hover{outline:2px solid #80ccb9}.rack b{font-size:11px}.rack small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.floor-caption{display:flex;justify-content:space-between;color:#a5b1b7;font-size:11px;margin:13px 0 0}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th{background:#f8fafb;color:#91a0a8;font-weight:600;padding:12px 13px;white-space:nowrap}td{border-bottom:1px solid #f0f3f4;padding:14px 13px;color:#52656f;white-space:nowrap}td strong{color:#2a3b44}.badge{display:inline-block;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:700;background:#e9f7f1;color:#239175}.badge.wait{background:#fff4df;color:#ba8a33}.badge.hold{background:#fdebe9;color:#bc665f}.empty{text-align:center;color:#a8b4bb;padding:44px 10px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.toolbar input,.toolbar select{max-width:230px}.field input,.field select,.toolbar input,.toolbar select{border:1px solid #dce5e8;border-radius:7px;padding:10px 12px;background:white;color:#344b56;width:100%}.field label{display:block;font-weight:700;font-size:12px;color:#536771;margin-bottom:7px}.field{margin-bottom:15px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.hint{font-size:11px;color:#a0aeb5;line-height:1.7}.notice{background:#eff8f5;color:#498675;padding:12px 15px;border-radius:7px;font-size:12px;line-height:1.6;margin-bottom:18px}.action-row{display:flex;gap:6px}.section-gap{margin-top:20px}dialog{border:0;border-radius:12px;padding:0;width:min(500px,calc(100% - 32px));box-shadow:0 20px 80px #102b3655}dialog::backdrop{background:#162b36a8}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #edf1f2}.modal-head h2{font-size:17px;margin:0}.close{border:0;background:none;color:#9daab1;font-size:23px}.modal-body{padding:22px 24px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding-top:8px}#toast{position:fixed;bottom:25px;right:25px;background:#193a38;color:white;padding:13px 18px;border-radius:8px;opacity:0;transition:.2s;pointer-events:none;z-index:5}#toast.show{opacity:1}.activity{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #f0f3f4}.activity-icon{width:32px;height:32px;display:grid;place-items:center;background:#edf7f4;color:#39a48a;border-radius:8px}.activity strong{font-size:12px}.activity small{display:block;color:#9babb2;font-size:11px;margin-top:4px}.activity time{margin-left:auto;color:#a5b3b9;font-size:10px}.metric-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid #f0f3f4;color:#7e9099;font-size:12px}.metric-row strong{color:#354c56}.progress{height:7px;background:#edf2f2;border-radius:10px;margin:15px 0}.progress span{display:block;height:100%;background:#50bba1;border-radius:10px}.section-title{font-size:14px;margin:0 0 16px}.link-button{border:0;background:none;color:#2e9b82;font-size:11px;font-weight:700}.muted{color:#9eacb3}.full{grid-column:1/-1}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.sidebar{width:190px}main{margin-left:190px;width:calc(100% - 190px)}}@media(max-width:700px){.shell{display:block}.sidebar{position:static;width:auto;min-height:0}.brand{height:65px}.side-label,.side-bottom{display:none}nav{display:flex;overflow:auto;padding:0 8px 8px}nav button{white-space:nowrap;width:auto;padding:9px 12px}.nav-icon{display:none}main{margin:0;width:auto}.topbar{padding:0 18px;height:56px}.top-right #clock,.top-right>span:last-child{display:none}.content{padding:24px 16px}.page-head{align-items:flex-start;gap:12px}.page-head h1{font-size:22px}.stats{gap:9px}.stat{padding:15px;min-height:110px}.stat-value{font-size:22px}.panel{padding:16px}.floor-grid{gap:4px}.rack{padding:6px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}}

/* Operations workspace: legible surfaces, tactile controls and dimensional icons. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Noto Sans KR","Malgun Gothic",sans-serif;color:#172e3b;background:#eef3f5;font-size:15px}
.sidebar{background:#173644;color:#d1e0e4}.brand{height:102px}.brand-mark{background:linear-gradient(145deg,#9debd3,#38a78e);box-shadow:inset 0 1px 2px #ffffffa6,0 4px 8px #081b2355;border-radius:13px}.side-label{color:#a7c0c7}nav button{min-height:48px;border-radius:12px;color:#d4e2e5}nav button.active{background:#315462;box-shadow:inset 0 0 0 1px #6b9198;color:white}nav button:hover{background:#315462}.icon3d{--icon-color:#83d3c3;display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:10px;background:linear-gradient(145deg,#ffffffa6,var(--icon-color) 58%,#2b5968);box-shadow:inset 0 1px 2px #ffffffb0,0 3px 5px #061e2b38;color:#153b4a;font-size:17px;font-weight:800;text-shadow:0 1px #ffffff99}.icon3d span{line-height:1}.stat .icon3d{width:38px;height:38px;border-radius:13px;font-size:20px}.topbar{background:#ffffffd9}.content{padding-top:40px}.page-head h1{font-size:28px;color:#173644}.sub{color:#586f7a}.card{border-color:#d9e5e8;border-radius:17px;box-shadow:0 6px 22px #2b4c5a09}.stat{min-height:132px}.stat-top,.metric-row{color:#526c77}.stat-note,.panel-head p,.hint,.muted{color:#637984}.button{min-height:44px;border-radius:999px;padding:10px 19px;background:linear-gradient(#fff,#f4f7f8);border:1px solid #d2dfe3;box-shadow:0 2px 5px #23404d12;color:#234452;font-size:13px}.button.primary{background:linear-gradient(#289f86,#17816d);border-color:#167d6a;color:#fff;box-shadow:0 4px 10px #17816d30}.button:active{filter:brightness(.94)}.button.small{min-height:38px}.tabs button{min-height:38px;border-radius:999px}.rack{min-height:44px}.rack small{color:#526d76}th{color:#566e79}td{color:#344e5b}.empty{color:#647b86}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #187da6;outline-offset:2px}.field input,.field select,.toolbar input,.toolbar select{min-height:44px}.close{min-width:44px;min-height:44px}@media(max-width:700px){nav button{min-height:48px}.content{padding-top:28px}.icon3d{width:28px;height:28px}.stats{gap:10px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:0.01ms!important;animation-duration:0.01ms!important}}

.request-line{display:grid;grid-template-columns:minmax(0,2fr) minmax(80px,1fr) auto;gap:10px;align-items:end}.request-line .button{margin-bottom:15px}.request-line label{display:block}.request-line select,.request-line input{display:block;margin-top:7px}@media(max-width:700px){.request-line{grid-template-columns:1fr 100px auto}}

.role-preview-link{display:inline-block;color:#fff;margin-bottom:14px;text-underline-offset:3px;font-weight:700}
@media(max-width:700px){.side-bottom:has(.role-preview-link){display:block;margin:0;padding:4px 18px 12px;border:0}.side-bottom .status-dot,.side-bottom small{display:none}.role-preview-link{margin:0}}

.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#eaf1f3}.login-card{width:min(100%,420px);padding:40px;border-radius:24px;background:#fff;border:1px solid #d9e5e8;box-shadow:0 18px 60px #17364414}.login-brand{display:flex;align-items:center;gap:12px;color:#173644;letter-spacing:.08em}.login-card h1{font-size:25px;margin:32px 0 8px;letter-spacing:-.04em}.login-card p{color:#536d77;line-height:1.5;margin-bottom:24px}.login-card .field{margin-bottom:18px}.login-submit{width:100%;margin-top:8px}.login-card .login-error{color:#a52e2e;margin:0;min-height:22px;font-size:13px}.permissions{border:1px solid #dce5e8;border-radius:12px;padding:14px;margin:0 0 12px}.permissions legend{font-weight:700;color:#536771}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.permission-option{display:flex;align-items:center;gap:8px;min-height:38px}.permission-option input{width:18px;height:18px}.button:disabled{opacity:.6;cursor:wait}@media(max-width:700px){.top-right>span:last-child{display:block}.login-card{padding:28px}}

/* Grouped navigation for the shared administrator and staff workspace. */
.sidebar #nav{flex:1;min-height:0;overflow-y:auto;padding:0 12px 14px}.sidebar .menu-groups{display:grid;gap:5px}.sidebar .menu-main{width:100%;min-height:50px;display:flex;align-items:center;gap:11px;padding:8px 10px;margin:0;color:#dbeaec;border-radius:12px;text-align:left}.sidebar .menu-main.group-active{color:#fff}.sidebar .menu-main:hover{background:#315462}.sidebar .menu-main.active{background:#315462;box-shadow:inset 0 0 0 1px #6b9198}.sidebar .menu-chevron{margin-left:auto;font-size:20px;color:#b6d0d3}.sidebar .menu-sub{padding:4px 0 6px 30px}.sidebar .menu-sub[hidden]{display:none}.sidebar .submenu-item{min-height:42px;padding:9px 10px;margin:1px 0;border-radius:9px;color:#c6dade;font-size:13px;display:flex;justify-content:space-between;gap:4px}.sidebar .submenu-item.active{background:#3b626c;box-shadow:none;color:white}.menu-pending{font-size:10px;font-weight:500;color:#c4dade;white-space:nowrap}.sidebar .side-bottom{flex:none;margin-top:0}.permission-group+ .permission-group{border-top:1px solid #e2ebed;margin-top:12px;padding-top:12px}.permission-group>strong{display:block;margin-bottom:6px;color:#244d58;font-size:13px}.permissions .permission-grid{gap:3px 10px}.permissions .permission-option{font-size:12px}.sidebar #nav::-webkit-scrollbar{width:6px}.sidebar #nav::-webkit-scrollbar-thumb{background:#56747d;border-radius:10px}@media(max-width:700px){.sidebar #nav{overflow:visible;padding:0 10px 12px}.sidebar .menu-groups{display:flex;flex-wrap:wrap;align-items:flex-start;gap:4px}.sidebar .menu-group{position:relative}.sidebar .menu-main{width:auto;white-space:nowrap;min-height:44px}.sidebar .menu-sub{position:absolute;z-index:10;left:0;top:100%;min-width:200px;background:#234956;border:1px solid #507079;border-radius:12px;padding:6px;box-shadow:0 8px 20px #17364455}.sidebar .submenu-item{white-space:nowrap;width:100%}.sidebar .side-bottom{display:none}}

/* Submenus stay open initially; their controls remain independently collapsible. */
.sidebar .menu-sub{padding-left:15px}.sidebar .submenu-item{justify-content:flex-start;gap:8px;min-height:44px;padding:6px 8px}.sidebar .submenu-icon{width:24px;height:24px;border-radius:8px;flex:none}.submenu-icon svg{width:16px;height:16px;display:block}.submenu-label{min-width:0;line-height:1.3}.sidebar .menu-pending{margin-left:auto;flex:none}@media(max-width:700px){.sidebar #nav{display:block}.sidebar .menu-groups{display:grid;grid-template-columns:1fr;gap:4px}.sidebar .menu-main{width:100%}.sidebar .menu-sub{position:static;min-width:0;padding:4px 0 6px 15px;background:transparent;border:0;border-radius:0;box-shadow:none}.sidebar .submenu-item{white-space:normal}}

.work-search{display:grid;gap:6px;font-size:13px;font-weight:700;color:#425f69}.work-search input{min-width:220px}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.work-empty{padding:28px 0;color:#5a727b;line-height:1.6}@media(max-width:700px){.work-grid{grid-template-columns:1fr}}

/* Administrator workspace: top-level actions and their dropdowns. */
.admin-page .shell{display:block;min-height:100vh}
.admin-page .app-header{position:relative;z-index:10;background:#fff}
.admin-page .topbar{height:68px;padding:0 36px;background:#fff}
.admin-page .brand{height:auto;padding:0;color:#173644;gap:10px}
.admin-page .brand strong{font-size:16px}
.admin-page .brand small{color:#617b83}
.admin-page .brand-mark{width:38px;height:38px}
.admin-page .navigation-bar{background:#173644;padding:10px 36px;border-bottom:1px solid #294b56}
.admin-page #nav{display:block;padding:0;overflow:visible}
.admin-page .menu-groups{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.admin-page .menu-group{position:relative}
.admin-page #nav .menu-main{display:flex;align-items:center;gap:9px;width:auto;min-height:44px;padding:6px 13px 6px 7px;margin:0;white-space:nowrap;border:1px solid #58727b;border-radius:999px;background:linear-gradient(#365b66,#284b57);box-shadow:inset 0 1px #ffffff1a,0 2px 5px #0b263333;color:#fff;font-size:13px;font-weight:700}
.admin-page #nav .menu-main:hover,.admin-page #nav .menu-main[aria-expanded=true]{background:linear-gradient(#47717a,#345d68);border-color:#96bab9}
.admin-page #nav .menu-main.active,.admin-page #nav .menu-main.group-active{background:linear-gradient(#42aa93,#258772);border-color:#64c9b1;box-shadow:inset 0 1px #ffffff55,0 2px 7px #0b263355;color:#fff}
.admin-page .menu-main .icon3d{width:29px;height:29px;border-radius:10px}
.admin-page .menu-chevron{font-size:18px;line-height:1;color:#d9edeb;margin-left:2px;transform:translateY(-2px)}
.admin-page .menu-sub{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;padding:6px;background:#fff;border:1px solid #cfdee1;border-radius:15px;box-shadow:0 14px 32px #17364430;z-index:20}
.admin-page .menu-group:last-child .menu-sub{left:auto;right:0}
.admin-page .menu-sub[hidden]{display:none}
.admin-page #nav .submenu-item{width:100%;min-height:44px;display:flex;align-items:center;gap:9px;padding:7px 9px;margin:0;border:0;border-radius:10px;background:transparent;box-shadow:none;color:#234653;font-size:13px;text-align:left;white-space:nowrap}
.admin-page #nav .submenu-item:hover,.admin-page #nav .submenu-item.active{background:#e6f4ef;color:#146e5d}
.admin-page .submenu-icon{width:26px;height:26px;border-radius:9px}
.admin-page .menu-pending{margin-left:auto;color:#677f86;font-size:10px}
.admin-page .shell>main{width:auto;margin:0}
.admin-page .content{max-width:none;width:100%;padding:22px 36px 60px}
.admin-page .page-context{display:flex;gap:9px;align-items:center;color:#6b8089;font-size:12px;font-weight:600;margin:0 0 18px}
.admin-page .page-context span:last-child{color:#244a56}
@media(max-width:700px){
  .admin-page .topbar{height:auto;min-height:64px;padding:10px 16px;gap:12px}
  .admin-page .brand small,.admin-page .top-right #clock{display:none}
  .admin-page .navigation-bar{padding:9px 16px}
  .admin-page .menu-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .admin-page #nav .menu-main{width:100%;font-size:12px;gap:6px;padding-right:9px}
  .admin-page .menu-group .menu-sub{left:0;right:auto}
  .admin-page .menu-group:nth-child(even) .menu-sub{left:auto;right:0}
  .admin-page .content{padding:20px 16px 48px}
  .admin-page .page-context{margin-bottom:14px}
}
@media(max-width:480px){
  .admin-page .top-right{flex-shrink:0}
  .admin-page .top-right>span:not(.avatar){display:none}
  .admin-page .top-right .button{white-space:nowrap}
  .admin-page #nav .menu-main{gap:4px;padding:5px 7px;font-size:11px}
  .admin-page .menu-main .icon3d{width:25px;height:25px;font-size:15px}
  .admin-page .menu-chevron{font-size:15px;margin-left:auto}
}

.client-select{border:0;background:transparent;color:#1b5f54;padding:8px 10px;border-radius:8px;font-weight:700;text-align:left;min-height:40px}.client-select:hover,.client-select.selected{background:#ddf3eb;color:#125848}.button:disabled{cursor:not-allowed;opacity:.55}

.admin-page .top-right #clock{margin-right:2px}
.request-alert{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;padding:4px;border:0;background:transparent;border-radius:14px}
.request-alert[hidden]{display:none}
.request-alert:hover{background:#e8f3f1}
.request-alert-icon{--icon-color:#f1a3a3;width:34px;height:34px;border-radius:12px}
.request-alert-icon svg{width:20px;height:20px}
.request-alert-count{position:absolute;top:0;right:-4px;min-width:19px;height:19px;padding:0 4px;display:grid;place-items:center;border:2px solid white;border-radius:99px;background:#bd3d48;color:white;font-size:10px;font-weight:800;line-height:1}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:480px){.admin-page .topbar{padding-left:12px;padding-right:12px}.admin-page .top-right{gap:5px}.admin-page .top-right>.visually-hidden{display:block}.request-alert{width:40px;height:40px}.request-alert-icon{width:31px;height:31px}}

/* Keep requests and assigned work visible together on wider screens. */
.request-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.request-workspace>.panel{min-width:0;padding:18px}
.request-workspace .panel-head{min-height:42px;align-items:flex-start;margin-bottom:14px}
.request-workspace .table-wrap{max-height:max(320px,calc(100vh - 350px));max-height:max(320px,calc(100dvh - 350px));overflow:auto}
.request-workspace th,.request-workspace td{padding:10px 6px;white-space:normal;word-break:keep-all;vertical-align:top;line-height:1.45}
.request-workspace td:last-child .button{min-height:34px;padding:6px 10px;margin:0 2px 4px 0;white-space:nowrap}
@media(max-width:900px){.request-workspace{grid-template-columns:minmax(0,1fr)}.request-workspace .table-wrap{max-height:none}.request-workspace th,.request-workspace td{white-space:nowrap}}
