:root{--bg:#f2f3f3;--panel:#fff;--ink:#17191b;--muted:#777d82;--line:#e5e7e8;--dark:#111315;--red:#b33b3b;--red-bg:#fbefef;--green:#43836a;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace;--font:'Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-shell{min-height:100vh;background:radial-gradient(ellipse at 50% 42%,#25292c 0,#171a1c 42%,#101213 100%);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:34px 18px;color:#f4f4f4;position:relative;overflow:hidden}.login-shell:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(transparent,#000,transparent)}.login-card{position:relative;width:min(100%,430px);background:#f8f8f7;color:var(--ink);padding:42px 44px 30px;box-shadow:0 25px 80px #0008}.brand,.sidebar-brand{display:flex;align-items:center;gap:13px}.brand-mark{width:42px;height:42px;background:#151719;color:#fff;display:grid;place-items:center;font:500 25px var(--mono);letter-spacing:-4px;padding-right:4px}.brand-mark span{color:#b44a4a}.brand-mark.small{width:35px;height:35px;font-size:21px}.brand-name{font:500 14px var(--mono);letter-spacing:1.3px}.brand-sub{font-size:11px;color:#85898c;margin-top:4px;letter-spacing:1px}.login-rule{height:1px;background:#dedfdf;margin:30px 0 25px}.eyebrow,.side-caption{font:11px var(--mono);letter-spacing:1.4px;color:#8a8f92}.login-card h1{font-size:24px;margin:12px 0 7px;letter-spacing:-.8px}.muted{color:var(--muted)}.login-intro{font-size:13px;margin:0 0 28px}.login-card label,.form-field label{display:block;font-size:12px;font-weight:700;margin:17px 0 8px}.login-card input,.form-field input,.form-field textarea,.form-field select{width:100%;border:1px solid #dfe1e2;background:#fff;padding:13px 14px;outline:none;border-radius:2px}.login-card input:focus,.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:#60676b;box-shadow:0 0 0 3px #17191b0b}.btn{border:0;padding:11px 16px;font-weight:600;border-radius:2px}.btn-primary{background:#17191b;color:#fff}.btn-primary:hover{background:#303538}.login-button{width:100%;margin-top:18px;padding:14px;text-align:left;display:flex;justify-content:space-between}.error-message{color:var(--red);font-size:12px;min-height:16px;margin:8px 0 0}.login-security{display:flex;gap:10px;border-top:1px solid #e2e3e3;margin-top:27px;padding-top:19px;font-size:11px;color:#777}.login-security strong{color:#4b5053;font-size:11px}.login-security p{line-height:1.7;margin:5px 0 0}.status-dot{width:7px;height:7px;border-radius:50%;background:#579476;display:inline-block;flex:none}.status-dot.red{background:var(--red);margin-top:5px}.demo-hint{background:#efefed;padding:10px 12px;margin-top:20px;font-size:11px;color:#7a7d7f}.demo-hint b{font-family:var(--mono);color:#34383a;margin:0 4px}.login-footer{position:relative;margin-top:26px;color:#747a7d;font:10px var(--mono);letter-spacing:1px}.login-footer span{margin:0 8px;color:#b04a4a}
.app-shell{min-height:100vh}.sidebar{width:245px;background:#151719;color:#d9dcdd;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:27px 18px 18px;z-index:10}.sidebar-brand{padding:0 8px 35px}.sidebar .brand-name{font-size:12px}.sidebar .brand-sub{color:#777e82}.side-caption{padding:0 10px 12px;color:#70777b;font-size:10px}.side-nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#9da3a6;text-align:left;padding:12px 11px;display:flex;align-items:center;gap:12px;font:11px var(--mono);letter-spacing:.5px;border-radius:2px}.nav-item:hover{background:#222629;color:#fff}.nav-item.active{background:#2a2e31;color:#fff;border-left:2px solid #b24b4b;padding-left:9px}.nav-icon{font-size:16px;width:17px;text-align:center;color:#858c90}.nav-count{margin-left:auto;font:10px var(--mono);color:#a9afb2}.side-caption-bottom{margin-top:38px}.sidebar-bottom{margin-top:auto}.system-mini{border-top:1px solid #303538;border-bottom:1px solid #303538;padding:14px 5px;display:flex;align-items:center;gap:8px;font-size:10px;color:#a2a8ab}.mini-value{margin-left:auto;font:10px var(--mono);color:#d1d5d6}.user-mini{display:flex;align-items:center;gap:10px;padding:18px 4px 0}.avatar{width:31px;height:31px;background:#343a3d;color:#fff;display:grid;place-items:center;font-weight:600}.user-mini b{font-size:11px;display:block}.user-mini small{display:block;color:#81898d;font-size:10px;margin-top:4px}.user-mini button{margin-left:auto;background:none;border:0;color:#92999c;font-size:17px}.main-area{margin-left:245px;min-height:100vh}.topbar{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:sticky;top:0;z-index:5}.breadcrumb{font:10px var(--mono);letter-spacing:1px;color:#858b8e}.breadcrumb span{margin:0 11px;color:#c1c5c7}.breadcrumb b{color:#303538;font-weight:500}.topbar-right{display:flex;align-items:center;gap:17px;color:#7e8589;font:10px var(--mono)}.top-date{font-family:var(--font);font-size:11px}.top-divider{height:17px;width:1px;background:#e2e4e5}.secure-label{letter-spacing:.6px}.secure-label i{display:inline-block;width:6px;height:6px;background:#579476;border-radius:50%;margin-right:6px}.mobile-menu{display:none;border:0;background:none;font-size:20px}.page-wrap{max-width:1500px;padding:34px 38px 20px;margin:0 auto;min-height:calc(100vh - 66px);display:flex;flex-direction:column}.main-footer{margin-top:auto;padding-top:35px;display:flex;justify-content:space-between;color:#a0a5a8;font:9px var(--mono);letter-spacing:.7px}.main-footer b{color:#b24b4b}
.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px}.page-kicker{font:10px var(--mono);letter-spacing:1.5px;color:#92989b;margin-bottom:9px}.page-heading h1{font-size:25px;letter-spacing:-1px;margin:0}.page-heading p{color:#858b8e;font-size:12px;margin:8px 0 0}.date-chip{border:1px solid var(--line);background:#fff;padding:10px 13px;color:#72797d;font:10px var(--mono)}.grid{display:grid;gap:16px}.stats-grid{grid-template-columns:repeat(4,1fr);margin-bottom:17px}.stat-card,.panel,.content-card{background:#fff;border:1px solid var(--line)}.stat-card{padding:18px 19px;min-height:105px}.stat-label{color:#858b8e;font-size:11px}.stat-value{font:24px var(--mono);margin-top:13px;letter-spacing:-1px}.stat-note{font-size:10px;color:#a0a5a8;margin-top:4px}.dashboard-grid{grid-template-columns:1.3fr .9fr;align-items:start}.panel{padding:20px 21px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.panel-title{font-size:13px;font-weight:700}.panel-sub{font:9px var(--mono);color:#a0a5a8;letter-spacing:.7px}.text-link{background:none;border:0;color:#777f83;font-size:11px}.text-link:hover{color:var(--red)}.notice-row,.doc-row,.employee-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #eff0f0}.notice-row:first-child,.doc-row:first-child,.employee-row:first-child{border-top:0}.notice-tag{font:9px var(--mono);color:#9a5555;background:#f8eeee;padding:5px 7px;white-space:nowrap}.notice-tag.normal{color:#777f83;background:#f1f2f2}.row-main{min-width:0;flex:1}.row-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta{font-size:10px;color:#a0a5a8;margin-top:5px}.row-date{font:10px var(--mono);color:#a0a5a8;white-space:nowrap}.doc-symbol{width:31px;height:35px;border:1px solid #e2e5e5;display:grid;place-items:center;color:#7e8588;font-size:13px}.system-panel{margin-top:16px}.system-line{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid #eff0f0;font-size:11px;color:#777f83}.system-line strong{color:#4e8a70;font-weight:600}.system-line strong.warning{color:var(--red)}.system-bar{height:4px;background:#eceeee;margin-top:5px}.system-bar span{display:block;height:100%;width:83%;background:#6f9c86}.access-note{margin-top:16px;background:#202427;color:#d9ddde;padding:17px 19px;display:flex;gap:12px;align-items:flex-start}.access-note .lock{font-size:16px;color:#b65a5a}.access-note b{font-size:11px;display:block;margin-bottom:5px}.access-note p{font-size:10px;color:#9ca4a7;margin:0;line-height:1.6}
.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px}.search-input{border:1px solid var(--line);background:#fff;padding:10px 12px;min-width:220px;outline:none}.filter-select{border:1px solid var(--line);background:#fff;padding:10px;color:#60676b}.data-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line)}.data-table th{text-align:left;font:9px var(--mono);letter-spacing:.7px;color:#92999c;background:#fafafa;padding:13px 16px;border-bottom:1px solid var(--line)}.data-table td{padding:14px 16px;border-bottom:1px solid #eff0f0;font-size:11px;color:#666e72}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover{background:#fafafa}.table-title{font-weight:600;color:#303538}.pill{display:inline-block;padding:4px 7px;background:#f0f1f1;color:#737a7e;font-size:9px}.pill.red{background:var(--red-bg);color:#a34444}.pill.green{background:#edf5f0;color:#54816a}.detail-card{background:#fff;border:1px solid var(--line);padding:30px;max-width:920px}.back-link{border:0;background:none;color:#8a9093;font-size:11px;padding:0;margin-bottom:22px}.detail-top{border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:22px}.detail-top h1{font-size:23px;margin:12px 0 18px;letter-spacing:-.7px}.meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.meta-label{font-size:9px;color:#a0a5a8;margin-bottom:6px}.meta-value{font-size:11px;color:#4d5559}.document-body{font-size:12px;line-height:2.1;color:#555e62;white-space:pre-wrap;min-height:180px}.document-body p{margin:0 0 15px}.restricted-box{padding:27px;background:#fbf3f3;border:1px solid #efdada;color:#984747;text-align:center;margin:20px 0}.restricted-box strong{display:block;font-size:13px;margin:10px 0}.restricted-box p{font-size:11px;line-height:1.7;margin:0;color:#a56a6a}.employee-card{display:flex;gap:18px;align-items:flex-start}.employee-avatar{width:62px;height:62px;background:#e9ebeb;display:grid;place-items:center;font-size:22px;color:#737b7f}.employee-detail h2{margin:0;font-size:18px}.employee-detail p{color:#858c90;font-size:11px;margin:6px 0 0}.employee-info{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line)}
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:17px}.admin-tab{border:1px solid var(--line);background:#fff;padding:9px 13px;font-size:11px;color:#72797d}.admin-tab.active{background:#202427;color:#fff;border-color:#202427}.admin-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:16px;align-items:start}.admin-box{background:#fff;border:1px solid var(--line);padding:20px}.admin-box h3{font-size:13px;margin:0 0 15px}.form-field{margin-bottom:12px}.form-field label{font-size:10px;margin:0 0 6px;color:#747c80}.form-field input,.form-field textarea,.form-field select{font-size:11px;padding:10px}.form-field textarea{min-height:90px;resize:vertical}.admin-list-item{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eff0f0;padding:12px 0;gap:10px}.admin-list-item:first-of-type{border-top:0}.admin-list-item b{font-size:11px}.admin-list-item small{display:block;color:#a0a5a8;font-size:10px;margin-top:4px}.small-actions{display:flex;gap:5px}.small-btn{border:1px solid var(--line);background:#fff;padding:5px 8px;font-size:10px;color:#70777b}.small-btn.danger{color:#a54c4c}.admin-warning{font-size:10px;line-height:1.7;color:#9b6b6b;background:#fbf3f3;padding:11px 13px;margin-bottom:15px}.empty-state{padding:35px;text-align:center;color:#a0a5a8;font-size:11px}.toast{position:fixed;right:25px;bottom:25px;background:#202427;color:#fff;padding:12px 17px;font-size:11px;box-shadow:0 5px 20px #0002;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none;z-index:30}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:1000px){.sidebar{width:210px}.main-area{margin-left:210px}.page-wrap{padding:27px 24px}.topbar{padding:0 24px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:250px;box-shadow:10px 0 30px #0002}.sidebar.open{transform:translateX(0)}.main-area{margin-left:0}.topbar{height:58px;padding:0 16px}.mobile-menu{display:block}.breadcrumb{margin-right:auto;margin-left:12px;font-size:9px}.topbar-right{gap:8px}.top-date{display:none}.top-divider{display:none}.secure-label{font-size:9px}.page-wrap{padding:23px 15px}.page-heading{align-items:flex-start}.page-heading h1{font-size:22px}.date-chip{display:none}.stats-grid{gap:9px}.stat-card{padding:14px;min-height:94px}.stat-value{font-size:21px}.panel{padding:16px}.main-footer{font-size:8px;gap:10px;flex-wrap:wrap}.data-table{display:block;overflow-x:auto;white-space:nowrap}.toolbar{flex-wrap:wrap}.search-input{min-width:0;flex:1}.meta-grid{grid-template-columns:repeat(2,1fr)}.detail-card{padding:20px}.detail-top h1{font-size:20px}.employee-info{grid-template-columns:1fr 1fr}.login-card{padding:34px 25px}.login-footer{text-align:center;font-size:8px}.row-date{display:none}}
