:root{--bg:#f4f5f1;--surface:#fff;--ink:#17201c;--muted:#738078;--line:#e4e8e2;--green:#1f6b4d;--green-2:#e5f2eb;--lime:#cfe673;--blue:#4e72c7;--amber:#cc8a2f;--red:#b7473f;--shadow:0 10px 35px rgba(32,50,41,.07);font-family:Inter,Pretendard,"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;padding:30px 20px 20px;background:#18382c;color:white;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 30px;font-weight:800;letter-spacing:.08em}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--lime);color:#18382c;font-weight:900}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#b8c9c1;border-radius:10px;padding:12px 14px;text-align:left;display:flex;align-items:center;gap:12px;font-weight:650}.nav-item span{font-size:19px;width:20px;text-align:center}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:white}.nav-item.active{box-shadow:inset 3px 0 0 var(--lime)}.sidebar-foot{margin-top:auto}.profile-mini{width:100%;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.05);color:white;padding:11px;border-radius:13px;display:flex;align-items:center;gap:10px;text-align:left}.profile-mini span:nth-child(2){min-width:0;flex:1}.profile-mini b,.profile-mini small{display:block}.profile-mini small{color:#a9beb4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;font-size:10px}.version{display:block;color:#769185;padding:16px 7px 0;font-size:10px}main{margin-left:240px;max-width:1600px}.topbar{height:112px;padding:25px 4.2%;display:flex;justify-content:space-between;align-items:center}.topbar h1{margin:5px 0 0;font-size:24px;letter-spacing:-.04em}.eyebrow{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:800;color:#849087;margin:0}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn,.help-btn,.outline{border:1px solid var(--line);background:rgba(255,255,255,.72);height:40px;border-radius:10px;padding:0 13px;color:var(--ink)}.icon-btn{width:40px;padding:0;position:relative}.dot{width:6px;height:6px;border-radius:50%;background:#d35543;position:absolute;right:9px;top:8px}.mobile-menu{display:none}.page{display:none;padding:0 4.2% 56px;animation:fade .25s ease}.page.active{display:block}@keyframes fade{from{opacity:0;transform:translateY(4px)}}.card,.clock-card,.quick-card,.kpi,.setting-card,.balance-card{background:var(--surface);border:1px solid rgba(26,53,40,.07);border-radius:18px;box-shadow:var(--shadow)}.hero-grid{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(440px,1.2fr);gap:18px}.clock-card{padding:30px;background:linear-gradient(140deg,#fff 55%,#edf4e5);position:relative;overflow:hidden}.clock-card:after{content:"";position:absolute;width:170px;height:170px;border:35px solid rgba(201,224,111,.22);border-radius:50%;right:-70px;top:-65px}.status-line{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700}.status-dot{width:8px;height:8px;background:#a9b2ac;border-radius:50%}.live-time{font-size:49px;font-weight:750;letter-spacing:-.05em;margin-top:26px;font-variant-numeric:tabular-nums}.live-date{color:var(--muted);font-size:13px;margin:3px 0 24px}.primary{border:0;background:var(--green);color:white;border-radius:11px;padding:0 18px;height:43px;font-weight:750;box-shadow:0 7px 18px rgba(31,107,77,.17)}.primary:hover{filter:brightness(1.05)}.clock-button{width:100%;height:52px;font-size:15px}.clock-button span{font-size:20px;margin-right:7px}.center{text-align:center}.muted{color:var(--muted)}.clock-card .muted{font-size:11px;margin:12px 0 0}.summary-card{padding:27px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.card-head h2{margin:5px 0 0;font-size:19px;letter-spacing:-.04em}.text-btn,.row-btn,.dots{border:0;background:transparent;color:var(--green);font-weight:750;font-size:12px}.state-numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0 18px}.state-numbers div{border-right:1px solid var(--line)}.state-numbers div:last-child{border:0}.state-numbers b,.state-numbers span{display:block}.state-numbers b{font-size:26px}.state-numbers span{font-size:11px;color:var(--muted);margin-top:4px}.green{color:var(--green)}.amber{color:var(--amber)}.blue{color:var(--blue)}.gray{color:#8c9691}.team-bar{display:flex;height:7px;border-radius:5px;overflow:hidden;background:#ddd}.team-bar i:nth-child(1){background:var(--green)}.team-bar i:nth-child(2){background:var(--amber)}.team-bar i:nth-child(3){background:var(--blue)}.team-bar i:nth-child(4){background:#c9cecb}.mini-avatars{display:flex;align-items:center;margin-top:23px}.avatar{width:34px;height:34px;border-radius:11px;background:#ddebe4;color:#245e46;display:grid;place-items:center;font-size:11px;font-weight:800;flex:0 0 auto}.mini-avatars .avatar{margin-left:-7px;border:2px solid white}.mini-avatars .avatar:first-child{margin-left:0}.mini-avatars small{margin-left:12px;color:var(--muted);font-size:11px}.coral{background:#f7ded3;color:#9b4a33}.teal{background:#d8eee9;color:#2b7161}.violet{background:#e8def2;color:#6a4d86}.gold{background:#f5e7be;color:#836c2c}.sky{background:#dcebf5;color:#3e6884}.more{background:#edf0ed;color:#68736d}.quick-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}.quick-card,.setting-card{border:0;padding:17px;display:flex;align-items:center;gap:13px;text-align:left}.quick-card:hover,.setting-card:hover{transform:translateY(-2px);transition:.2s;box-shadow:0 14px 38px rgba(32,50,41,.11)}.quick-card>span:nth-child(2),.setting-card>div{flex:1}.quick-card b,.quick-card small{display:block}.quick-card small{color:var(--muted);font-size:11px;margin-top:4px}.quick-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:18px}.mint{background:#e1f1e8;color:var(--green)}.peach{background:#f9e5d8;color:#b5613d}.lilac{background:#ebe3f3;color:#70518b}.sky-bg{background:#e2edf6;color:#4b6f8c}.timeline-card{padding:26px}.legend{display:flex;gap:14px;color:var(--muted);font-size:10px}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:7px;height:7px;border-radius:50%}.green-bg{background:var(--green)}.blue-bg{background:var(--blue)}.amber-bg{background:var(--amber)}.timeline{margin-top:27px}.time-scale{margin-left:168px;display:flex;justify-content:space-between;color:#9aa39e;font-size:9px;padding:0 4px 9px}.person-row{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;margin:8px 0}.person{display:flex;gap:9px;align-items:center}.person b,.person small{display:block;font-size:11px}.person small{color:var(--muted);font-size:9px;margin-top:3px}.track{height:35px;border-radius:8px;background:repeating-linear-gradient(90deg,#f6f7f5 0,#f6f7f5 calc(20% - 1px),#e8ebe8 20%);position:relative}.shift{height:100%;border-radius:8px;display:flex;align-items:center;padding:0 12px;font-size:9px;font-weight:750;white-space:nowrap;position:absolute;overflow:hidden}.shift.work{background:#e5f1eb;color:#2c7155}.shift.trip{background:#f7e9d2;color:#9b6d28}.shift.leave{background:#e6ebf9;color:#536fae;justify-content:center}.now-line{position:absolute;left:52%;top:-4px;bottom:-4px;width:1px;background:#d65e4b}.now-line:before{content:"";width:5px;height:5px;background:#d65e4b;position:absolute;top:-1px;left:-2px;border-radius:50%}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.kpi{padding:20px}.kpi span,.kpi b,.kpi small{display:block}.kpi span{font-size:11px;color:var(--muted)}.kpi b{font-size:25px;margin:10px 0 8px}.kpi small{font-size:10px;color:var(--muted)}.positive{color:var(--green)!important}.table-card{padding:26px}.filters{display:flex;gap:6px;align-items:center}.filter{border:0;background:#f2f4f1;color:#768078;padding:8px 12px;border-radius:8px;font-size:11px}.filter.active{background:#dfece5;color:var(--green);font-weight:700}.table-wrap{overflow-x:auto;margin-top:20px}table{border-collapse:collapse;width:100%;min-width:800px;text-align:left}th{font-size:10px;color:#8b958f;font-weight:700;padding:11px 14px;background:#f7f8f6}th:first-child{border-radius:8px 0 0 8px}th:last-child{border-radius:0 8px 8px 0}td{padding:15px 14px;border-bottom:1px solid #edf0ed;font-size:12px}td small{display:block;color:var(--muted);font-size:9px;margin-top:4px}.badge{display:inline-block;border-radius:7px;padding:5px 8px;font-size:9px;font-weight:800}.green-badge{background:#e5f2eb;color:var(--green)}.edit-badge,.amber-badge{background:#f8ecd8;color:#996924}.red-badge{background:#f7e3e1;color:var(--red)}.blue-badge{background:#e7ecf8;color:#4b69ad}.gray-badge{background:#eef0ef;color:#6a746f}.dark-badge{background:#254438;color:white}.danger-text{color:var(--red)}.secret-card{padding:24px;margin-top:18px;border-color:#e8c2bd}.inline-form{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:8px;margin-top:18px}input,select,textarea{border:1px solid #dfe4df;background:white;border-radius:9px;padding:10px 12px;color:var(--ink);min-width:0}textarea{resize:vertical}.danger-button{border:0;background:var(--red);color:white;border-radius:9px;padding:0 16px;font-weight:700}.leave-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-bottom:18px}.balance-card{background:#203e32;color:white;padding:30px;display:flex;gap:28px;align-items:center;position:relative;overflow:hidden}.balance-card>p{position:absolute;top:14px;left:28px;color:#aec3ba;font-size:11px}.balance-ring{width:145px;height:145px;border-radius:50%;background:conic-gradient(var(--lime) 0 76%,rgba(255,255,255,.12) 76%);display:grid;place-items:center;position:relative;flex:0 0 auto}.balance-ring:before{content:"";position:absolute;inset:12px;border-radius:50%;background:#203e32}.balance-ring span{z-index:1;text-align:center}.balance-ring b,.balance-ring small{display:block}.balance-ring b{font-size:38px}.balance-ring small{color:#afc4ba;font-size:10px}.balance-copy h2{font-size:22px;line-height:1.38;margin:0}.balance-copy p{color:#afc4ba;font-size:11px}.balance-copy .primary{background:var(--lime);color:#19382b;box-shadow:none;margin-top:8px}.rule-card{padding:25px}.rule-card dl{margin:19px 0;display:grid;gap:10px}.rule-card dl div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:8px}.rule-card dt{color:var(--muted);font-size:11px}.rule-card dd{margin:0;font-size:11px}.legal-note{font-size:9px;line-height:1.5;color:#8a948f;background:#f6f7f5;border-radius:8px;padding:9px}.request-card{padding:26px}.small{height:38px}.request-list{margin-top:18px}.request-item{display:grid;grid-template-columns:54px 1.4fr 1fr auto;align-items:center;gap:15px;border-top:1px solid var(--line);padding:15px 0}.date-tile{width:49px;height:49px;background:#e7f1eb;color:var(--green);border-radius:11px;display:grid;place-items:center;padding:5px}.date-tile b{font-size:17px}.date-tile span{font-size:8px;font-weight:800}.muted-tile{background:#f0f1ef;color:#727d77}.blue-tile{background:#e7ecf8;color:#4b69ad}.request-item p{color:var(--muted);font-size:10px;margin:5px 0}.approval-flow{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted)}.approval-flow span{text-align:center}.approval-flow small{font-size:8px}.approval-flow i{height:1px;width:25px;background:#ccd4cf}.approval-flow .done{color:var(--green)}.toolbar{display:flex;gap:9px;margin:20px 0 5px}.search{border:1px solid #dfe4df;background:white;border-radius:9px;display:flex;align-items:center;padding-left:12px;flex:1}.search input{border:0;width:100%;outline:0}.toolbar select{min-width:140px}.name-cell{display:flex;align-items:center;gap:10px}.count{font-size:11px;color:var(--muted);background:#eef1ee;border-radius:20px;padding:4px 7px;vertical-align:middle}.tag{background:#f1f3f0;border-radius:5px;font-size:8px;padding:4px 6px;margin-right:3px}.dots{letter-spacing:2px;color:var(--muted)}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:18px}.admin-welcome{grid-row:span 2;padding:30px;background:linear-gradient(150deg,#203f33,#142c23);color:white}.admin-welcome h2{font-size:27px;margin:12px 0}.admin-welcome>p:not(.eyebrow){color:#b1c3bb;max-width:350px;line-height:1.6}.admin-stats{display:flex;gap:28px;border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:22px}.admin-stats span{color:#aebfb7;font-size:10px}.admin-stats b{display:block;color:white;font-size:25px;margin-bottom:5px}.setting-card{min-height:104px}.setting-card b{font-size:14px}.setting-card p{color:var(--muted);font-size:10px;line-height:1.5;margin:5px 0}.audit-list p{display:grid;grid-template-columns:90px 1fr auto;gap:10px;border-top:1px solid var(--line);margin:0;padding:15px 0;font-size:11px}.audit-list p span{color:var(--muted)}.audit-list p small{color:#8b958f}.profile-card{padding-bottom:28px;overflow:hidden}.profile-cover{height:115px;background:linear-gradient(120deg,#1c3d30,#597d55 65%,#cadf78)}.profile-head{display:flex;align-items:center;gap:15px;padding:0 28px;margin-top:-28px}.profile-head>div{flex:1}.avatar.big{width:76px;height:76px;border-radius:23px;border:5px solid white;font-size:22px}.profile-head h2{margin:38px 0 4px}.profile-head p{margin:0;color:var(--muted);font-size:11px}.profile-details{padding:30px 28px 18px;display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.profile-details label{font-size:10px;color:var(--muted);font-weight:700}.profile-details input{display:block;width:100%;margin-top:7px}.profile-card>.primary{margin-left:28px}.modal-backdrop{position:fixed;inset:0;background:rgba(15,29,23,.55);backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:20px}.modal-backdrop[hidden]{display:none}.modal{width:min(500px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:30px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.25);animation:pop .2s ease}@keyframes pop{from{opacity:0;transform:scale(.97)}}.modal h2{margin:7px 0;font-size:24px}.modal-desc{color:var(--muted);font-size:11px}.modal-close{position:absolute;right:18px;top:18px;width:34px;height:34px;border:0;border-radius:9px;background:#f1f3f0;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:22px 0}.form-grid label{font-size:10px;color:var(--muted);font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:6px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);padding:12px 18px;background:#182f26;color:white;border-radius:10px;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:60;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.hero-grid,.leave-hero{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.admin-welcome{grid-row:auto}.request-item{grid-template-columns:54px 1fr auto}.approval-flow{display:none}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}main{margin-left:0}.mobile-menu{display:block;border:0;background:transparent;font-size:22px;margin-right:12px}.topbar{height:94px;padding:20px}.topbar>div:first-of-type{flex:1}.topbar h1{font-size:19px}.help-btn{display:none}.page{padding:0 18px 38px}.hero-grid{grid-template-columns:1fr}.quick-row{grid-template-columns:1fr}.state-numbers{grid-template-columns:repeat(2,1fr)}.state-numbers div:nth-child(2){border:0}.timeline-card{overflow:hidden}.legend{display:none}.time-scale{margin-left:105px}.person-row{grid-template-columns:95px 1fr;gap:8px}.person .avatar{display:none}.kpi-grid{grid-template-columns:1fr 1fr}.card-head{align-items:flex-start}.filters{flex-wrap:wrap;justify-content:flex-end}.balance-card{flex-direction:column;align-items:flex-start;padding-top:55px}.balance-ring{align-self:center}.request-item{grid-template-columns:45px 1fr auto}.toolbar{flex-wrap:wrap}.search{flex-basis:100%}.toolbar select{flex:1;min-width:120px}.inline-form{grid-template-columns:1fr}.profile-details{grid-template-columns:1fr}.profile-head{flex-wrap:wrap}.profile-head .outline{margin-left:auto}.audit-list p{grid-template-columns:1fr}.audit-list p small{margin-top:-5px}.modal{padding:24px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}}
