:root{
  --red:#c91921;--red-dark:#a8131a;--red-soft:#fff0f0;--navy:#17243a;--ink:#202733;
  --muted:#6f7782;--subtle:#9299a3;--line:#e5e3df;--line-strong:#d7d4cf;
  --canvas:#f7f6f3;--card:#fff;--sidebar:#fbfaf8;--green:#23845a;--green-soft:#eaf7f1;
  --amber:#a66b12;--amber-soft:#fff6df;--shadow:0 8px 26px rgba(31,36,43,.055);
  --radius:15px;--sidebar-width:238px
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--canvas);font-family:Inter,Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a{color:inherit}
a{text-decoration:none}
button{cursor:pointer}
[hidden]{display:none!important}
input,select,textarea{outline:0}
.loading-screen,.error-screen{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--canvas)}
.loading-screen img{width:124px;height:auto}.loading-screen p{margin:16px 0 0;color:var(--muted);font-size:12px}.loading-dot{width:7px;height:7px;margin-top:28px;border-radius:50%;background:var(--red);box-shadow:15px 0 #e5a3a6,-15px 0 #e5a3a6;animation:loading 1s infinite alternate}
@keyframes loading{to{opacity:.25;transform:translateY(-3px)}}
.error-screen{gap:10px;text-align:center}.error-screen strong{font-size:21px}.error-screen p{margin:0;color:var(--muted)}.error-screen button{margin-top:14px;padding:11px 18px;border:1px solid var(--line-strong);border-radius:9px;background:#fff}
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--sidebar-width);display:flex;flex-direction:column;padding:27px 18px 20px;border-right:1px solid var(--line);background:var(--sidebar)}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px 30px}.brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.brand img{width:114px;height:auto}.brand span{color:#7f7475;font-size:12px;font-weight:700;letter-spacing:.025em}.sidebar-close{display:none;border:0;background:transparent;font-size:24px}
.side-nav{display:grid;gap:5px}.side-nav a{position:relative;display:flex;align-items:center;gap:12px;min-height:45px;padding:0 12px;border-radius:10px;color:#626a76;font-size:13px;font-weight:650;transition:.16s}.side-nav a:hover{color:var(--ink);background:#f1efeb}.side-nav a.active{color:var(--red);background:var(--red-soft)}.nav-icon{display:grid;place-items:center;width:23px;height:23px;color:#7d8490;font-size:17px;font-weight:500}.side-nav a.active .nav-icon{color:var(--red)}.nav-count{margin-left:auto;min-width:19px;padding:2px 5px;border-radius:10px;color:#fff;background:var(--red);font-size:12px;text-align:center}
.sidebar-spacer{flex:1}.external-shortcuts{display:grid;grid-template-columns:repeat(3,39px);gap:9px;margin:0 9px 16px}.external-shortcuts a{display:grid;place-items:center;width:39px;height:39px;border:1px solid transparent;border-radius:10px;background:#f3f1ed;transition:.15s}.external-shortcuts a:hover{border-color:#ded9d2;background:#fff;transform:translateY(-1px)}.external-shortcuts img{display:block;max-width:29px;max-height:29px;object-fit:contain}.external-shortcuts a:first-child img{max-width:31px;max-height:31px}
.sidebar-account{padding:17px 10px 0;border-top:1px solid var(--line)}.sidebar-account button{display:flex;align-items:center;gap:9px;padding:0;border:0;color:#777f88;background:transparent;font-size:12px}.sidebar-account button:hover{color:var(--red)}.sidebar-account small{display:block;margin-top:14px;color:#a6a8aa;font-size:12px;letter-spacing:.12em}.sidebar-scrim{display:none}
.main{min-height:100vh;margin-left:var(--sidebar-width)}
.topbar{position:sticky;top:0;z-index:30;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,3vw,48px);border-bottom:1px solid var(--line);background:rgba(247,246,243,.94);backdrop-filter:blur(10px)}
.topbar-title{display:flex;align-items:center;gap:13px}.topbar-title small{display:block;margin-bottom:3px;color:var(--subtle);font-size:12px}.topbar-title h1{margin:0;font-size:18px;letter-spacing:-.02em}.menu-toggle{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff}.topbar-actions{display:flex;align-items:center;gap:10px}.global-search{width:min(350px,29vw);height:39px;display:flex;align-items:center;gap:8px;padding:0 5px 0 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#8e949b}.global-search input{min-width:0;flex:1;border:0;background:transparent;font-size:12px}.global-search button{height:29px;padding:0 11px;border:0;border-radius:7px;color:#fff;background:var(--red);font-size:12px;font-weight:700}.global-search button:hover{background:var(--red-dark)}.icon-button{position:relative;width:39px;height:39px;border:1px solid var(--line);border-radius:10px;background:#fff}.notification-button b,.messenger-button b{position:absolute;right:-4px;top:-4px;min-width:17px;padding:2px 4px;border:2px solid var(--canvas);border-radius:9px;color:#fff;background:var(--red);font-size:12px}.messenger-button{display:grid;place-items:center}.messenger-button svg{width:20px;height:20px;fill:none;stroke:#657080;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.messenger-button:hover svg,.messenger-button[aria-expanded=true] svg{stroke:var(--red)}
.account-menu{position:relative}.profile-chip{height:43px;display:flex;align-items:center;gap:9px;padding:4px 8px 4px 5px;border:0;border-radius:11px;background:transparent;text-align:left}.profile-chip:hover,.profile-chip[aria-expanded=true]{background:#ece9e5}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:#fff;background:var(--navy);font-size:12px;font-weight:800}.profile-copy{display:flex;min-width:74px;flex-direction:column;gap:2px}.profile-copy strong{overflow:hidden;max-width:110px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.profile-copy small{color:var(--subtle);font-size:12px;font-weight:800;letter-spacing:.08em}.profile-chip i{color:#9ca1a8;font-size:12px;font-style:normal}
.account-dropdown{position:absolute;right:0;top:calc(100% + 9px);z-index:50;width:244px;padding:8px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 18px 55px rgba(30,34,40,.14)}.account-dropdown-head{display:flex;align-items:center;gap:10px;padding:11px 9px 14px;border-bottom:1px solid var(--line)}.account-dropdown-head>div{display:flex;min-width:0;flex-direction:column;gap:3px}.account-dropdown-head strong{font-size:12px}.account-dropdown-head small{color:var(--muted);font-size:12px}.account-dropdown button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:11px 9px;border:0;border-radius:8px;background:transparent;font-size:12px;text-align:left}.account-dropdown button:hover{background:#f7f5f2}.account-dropdown button i{font-style:normal}.account-dropdown .danger{color:var(--red)}
.page-shell{width:min(1440px,100%);margin:auto;padding:32px clamp(24px,3vw,48px) 28px}.view{animation:viewIn .2s ease}@keyframes viewIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.welcome-panel{display:flex;align-items:center;justify-content:space-between;gap:42px;padding:32px 36px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.welcome-panel>div p{margin:0 0 9px;color:var(--red);font-size:12px;font-weight:800;letter-spacing:.12em}.welcome-panel h2{margin:0 0 8px;color:var(--navy);font-size:27px;letter-spacing:-.035em}.welcome-panel>div>span{color:var(--muted);font-size:12px}
.section-block{margin-top:34px}.section-head,.card-head,.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-head{margin-bottom:15px}.section-head p,.page-heading p{margin:0 0 6px;color:var(--red);font-size:12px;font-weight:850;letter-spacing:.16em}.section-head h2{margin:0;font-size:18px}.text-button{padding:0;border:0;color:var(--muted);background:transparent;font-size:12px}.text-button:hover{color:var(--red)}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.service-grid-compact{grid-template-columns:repeat(4,minmax(0,1fr))}.service-card{position:relative;min-height:180px;display:flex;flex-direction:column;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow);transition:.17s}.service-grid-compact .service-card{min-height:157px;padding:19px}.service-card:hover{border-color:#d9d4ce;box-shadow:0 12px 32px rgba(31,36,43,.08);transform:translateY(-2px)}.service-card-top{display:flex;align-items:flex-start;justify-content:space-between}.service-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;color:var(--navy);background:#f1f3f6;font-size:12px;font-weight:850}.service-icon.bizmeka{color:#2465aa;background:#eef5fc}.service-icon.nas{color:#1476a8;background:#eaf6fb}.service-icon.svn{color:#6c65a6;background:#f1effa}.service-icon.git{color:#cf4b31;background:#fff0ec}.service-icon.website-admin{color:var(--red);background:var(--red-soft)}.service-health{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.service-health:before{content:"";width:6px;height:6px;border-radius:50%;background:#aeb3b8}.service-health.online:before{background:var(--green)}.service-health.degraded:before{background:#dd9c2d}.service-card h3{margin:18px 0 6px;font-size:15px}.service-card p{min-height:31px;margin:0;color:var(--muted);font-size:12px;line-height:1.55}.service-card a,.service-card button{align-self:flex-start;margin-top:auto;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;font-weight:700}.service-card a:hover{color:#fff;border-color:var(--red);background:var(--red)}.service-card button:disabled{color:#a3a8ad;background:#f5f4f2;cursor:not-allowed}
.home-grid{display:grid;grid-template-columns:1.35fr .85fr .85fr;gap:14px;margin-top:28px}.dashboard-card,.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.dashboard-card{min-height:270px;padding:23px}.card-head>div{display:flex;align-items:center;gap:11px}.card-head h3,.panel-head h3{margin:0 0 4px;font-size:14px}.card-head p,.panel-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.card-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;font-size:14px}.card-icon.red{color:var(--red);background:var(--red-soft)}.card-icon.navy{color:#3b5c8b;background:#edf2f9}.card-icon.green{color:var(--green);background:var(--green-soft)}
.notice-preview-list{margin-top:18px}.notice-preview{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;padding:13px 10px;border:0;border-top:1px solid #efede9;border-radius:8px;color:inherit;background:transparent;text-align:left;appearance:none;cursor:pointer;transition:background .15s,box-shadow .15s}.notice-preview:hover,.notice-preview:focus-visible{background:#faf7f5;box-shadow:inset 3px 0 var(--red);outline:0}.notice-preview:first-child{border-top:0}.notice-preview strong{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.notice-preview time{color:var(--subtle);font-size:12px}.notice-preview span{grid-column:1/-1;overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.pin{margin-right:5px;color:var(--red)}
.status-pill,.badge{display:inline-flex;align-items:center;padding:5px 8px;border-radius:12px;color:#59616c;background:#f0f1f2;font-size:12px;font-weight:750}.status-pill.working,.badge.approved,.badge.confirmed{color:var(--green);background:var(--green-soft)}.status-pill.completed{color:#385e93;background:#edf2f9}.badge.pending,.badge.submitted{color:var(--amber);background:var(--amber-soft)}.badge.rejected,.badge.draft{color:var(--red);background:var(--red-soft)}
.attendance-summary{display:flex;height:190px;flex-direction:column;justify-content:center}.attendance-summary>strong{font-size:13px}.attendance-summary>div{display:flex;gap:22px;margin:22px 0}.attendance-summary span{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px}.attendance-summary b{color:var(--ink);font-size:17px}.primary-button,.secondary-button,.danger-button{min-height:39px;padding:0 16px;border-radius:9px;font-size:12px;font-weight:750}.primary-button{border:1px solid var(--red);color:#fff;background:var(--red)}.primary-button:hover{background:var(--red-dark)}.primary-button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{border:1px solid var(--line-strong);color:#59616c;background:#fff}.secondary-button:hover{border-color:#aeb3ba}.secondary-button.small{min-height:33px;padding:0 11px}.danger-button{border:1px solid #edc8ca;color:var(--red);background:#fff}.icon-refresh{width:31px;height:31px;border:1px solid var(--line);border-radius:8px;background:#fff}.service-status-list{display:grid;gap:11px;margin-top:20px}.service-status-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}.service-status-row span{display:flex;align-items:center;gap:7px}.service-status-row i{width:6px;height:6px;border-radius:50%;background:#adb2b8}.service-status-row.online i{background:var(--green)}.service-status-row.degraded i{background:#dd9c2d}.service-status-row b{color:var(--muted);font-size:12px;font-weight:600}
.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.page-heading h2{margin:0 0 8px;color:var(--navy);font-size:28px;letter-spacing:-.04em}.page-heading span{color:var(--muted);font-size:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:17px}.toolbar>span{color:var(--muted);font-size:12px}.filter-search{height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#8d949c}.filter-search input{width:240px;border:0;background:transparent;font-size:12px}
.today-attendance-panel{display:grid;grid-template-columns:1.25fr 1fr auto;align-items:center;gap:25px;padding:25px 28px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}.today-state{display:flex;align-items:center;gap:14px}.live-dot{width:10px;height:10px;border:3px solid #f7b6b9;border-radius:50%;background:var(--red)}.today-state small{display:block;margin-bottom:4px;color:var(--muted);font-size:12px}.today-state strong{font-size:17px}.today-state p{margin:5px 0 0;color:var(--subtle);font-size:12px}.today-times{display:flex;gap:34px}.today-times div{display:flex;flex-direction:column;gap:5px}.today-times span{color:var(--muted);font-size:12px}.today-times strong{font-size:19px}.attendance-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:370px}.attendance-cancel-hint{grid-column:1/-1;margin:-12px 0 0;color:var(--red);font-size:12px;text-align:right}.attendance-quick-edit{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.attendance-quick-edit label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.attendance-quick-edit input{height:39px;padding:0 10px;border:1px solid var(--line-strong);border-radius:9px;color:var(--ink);background:#fff;font-size:12px}.inline-message{min-height:18px;margin:10px 3px 0;color:var(--muted);font-size:12px}.inline-message.notice{color:#3f4b5b;font-weight:700}.inline-message.error,.form-message.error{color:var(--red)}.inline-message.success,.form-message.success{color:var(--green)}
.attendance-calendar-panel{margin-top:14px}.calendar-shell{overflow-x:auto;padding-bottom:2px}.calendar-weekdays,.attendance-calendar{display:grid;grid-template-columns:repeat(7,minmax(86px,1fr));min-width:650px}.calendar-weekdays{border:1px solid var(--line);border-bottom:0;border-radius:10px 10px 0 0;background:#f7f6f3}.calendar-weekdays span{padding:9px;color:var(--muted);font-size:12px;font-weight:750;text-align:center}.calendar-weekdays span:first-child{color:var(--red)}.calendar-weekdays span:last-child{color:#376394}.attendance-calendar{overflow:hidden;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:0 0 10px 10px}.calendar-day{position:relative;min-height:108px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day.outside{background:#faf9f7}.calendar-day.today{background:#fff8f7;box-shadow:inset 0 0 0 2px rgba(201,25,33,.22)}.calendar-date{display:flex;align-items:center;justify-content:space-between}.calendar-date strong{font-size:12px}.calendar-day.sunday .calendar-date strong{color:var(--red)}.calendar-day.saturday .calendar-date strong{color:#376394}.calendar-date i,.calendar-legend i{width:7px;height:7px;border-radius:50%;background:#b8bdc3}.calendar-date i.complete,.calendar-legend i.complete{background:var(--green)}.calendar-date i.working,.calendar-legend i.working{background:#dd9c2d}.calendar-times{display:grid;gap:5px;margin-top:13px}.calendar-times span{display:flex;align-items:center;gap:6px;color:#4e5661;font-size:12px}.calendar-times b{color:var(--subtle);font-size:12px}.calendar-no-record{display:block;margin-top:16px;color:#b0b4b9;font-size:12px}.calendar-request{display:inline-flex;margin-top:8px;padding:3px 6px;border-radius:8px;color:var(--red);background:var(--red-soft);font-size:12px}.calendar-legend{display:flex;justify-content:flex-end;gap:16px;margin-top:12px;color:var(--muted);font-size:12px}.calendar-legend span{display:flex;align-items:center;gap:6px}.calendar-legend i.request{background:var(--red)}
.split-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.panel{padding:23px}.panel-head{margin-bottom:18px}.panel-head input[type=month]{height:35px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:12px}.table-wrap{overflow:auto}.table-wrap table{width:100%;border-collapse:collapse;white-space:nowrap}.table-wrap th{padding:10px;border-bottom:1px solid var(--line-strong);color:var(--subtle);font-size:12px;font-weight:750;text-align:left}.table-wrap td{padding:12px 10px;border-bottom:1px solid #efedea;font-size:12px}.table-wrap td strong{display:block;margin-bottom:3px;font-size:12px}.table-wrap td small{color:var(--muted)}.table-wrap tbody tr:last-child td{border-bottom:0}.empty-row td{padding:26px!important;color:var(--muted);text-align:center}.table-action{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12px}
.stack-form{display:flex;flex-direction:column}.stack-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:13px}.stack-form label>span,.admin-filter label>span{color:#525a65;font-size:12px;font-weight:700}.stack-form input,.stack-form select,.stack-form textarea,.admin-filter input{width:100%;min-height:40px;padding:9px 11px;border:1px solid var(--line-strong);border-radius:8px;color:var(--ink);background:#fff;font-size:12px;resize:vertical}.stack-form input:focus,.stack-form select:focus,.stack-form textarea:focus,.admin-filter input:focus{border-color:#a4aab1;box-shadow:0 0 0 3px rgba(55,65,81,.05)}.stack-form input[readonly]{color:var(--muted);background:#f5f4f2}.form-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-message{min-height:17px;margin:0 0 8px;color:var(--muted);font-size:12px}.stack-form>.primary-button{align-self:flex-start}
.work-record-list,.review-list{display:grid;gap:9px}.work-record-item,.review-item{padding:13px;border:1px solid #ece9e5;border-radius:10px;background:#faf9f7}.work-record-item>div:first-child,.review-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.work-record-item strong,.review-item strong{font-size:12px}.work-record-item p,.review-item p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.work-record-item small,.review-item small{color:var(--subtle);font-size:12px}.review-actions{display:flex;gap:6px;margin-top:10px}.review-actions button{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12px}.review-actions .approve{color:#fff;border-color:var(--navy);background:var(--navy)}.review-actions .reject{color:var(--red)}
.notice-layout{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:14px}.notice-list-panel{padding-top:17px}.notice-list{margin:0 -4px}.notice-list-item{width:100%;display:block;padding:15px 8px;border:0;border-top:1px solid #efede9;background:transparent;text-align:left}.notice-list-item:first-child{border-top:0}.notice-list-item:hover,.notice-list-item.active{background:#faf7f5}.notice-list-item.active{box-shadow:inset 3px 0 var(--red)}.notice-list-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.notice-list-item strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.notice-list-item p{overflow:hidden;margin:7px 0 0;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.notice-list-item time{color:var(--subtle);font-size:12px}.notice-detail{min-height:460px}.notice-detail header{padding-bottom:20px;border-bottom:1px solid var(--line)}.notice-detail header h3{margin:10px 0;font-size:21px;line-height:1.4}.notice-detail header p{margin:0;color:var(--muted);font-size:12px}.notice-detail-content{padding-top:22px;color:#3f4752;font-size:12px;line-height:1.9;white-space:pre-wrap}.notice-detail-actions{display:flex;justify-content:flex-end;margin-top:18px}.notice-editor{margin-top:14px;scroll-margin-top:95px}.notice-hidden{display:inline-flex;margin-right:7px;padding:3px 7px;border-radius:8px;color:#6d7580;background:#eceef1;font-size:12px;font-style:normal}.empty-state{padding:28px;color:var(--muted);font-size:12px;text-align:center}
.admin-tabs{display:flex;gap:6px;margin-bottom:17px;padding:5px;border:1px solid var(--line);border-radius:12px;background:#eeece8}.admin-tabs button{min-height:36px;padding:0 16px;border:0;border-radius:8px;color:var(--muted);background:transparent;font-size:12px;font-weight:700}.admin-tabs button.active{color:var(--ink);background:#fff;box-shadow:0 2px 8px rgba(30,34,40,.07)}.admin-section>.panel,.admin-section>.metric-grid,.admin-section>.split-grid{margin-top:14px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.metric-grid article{padding:19px 22px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.metric-grid span{display:block;margin-bottom:9px;color:var(--muted);font-size:12px}.metric-grid strong{color:var(--navy);font-size:25px}.admin-details summary{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:750;cursor:pointer;list-style:none}.admin-details summary::-webkit-details-marker{display:none}.admin-details[open] summary{padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.check-label{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;margin-bottom:13px!important}.check-label input{width:15px!important;min-height:15px!important;height:15px;margin:0}.check-label span{font-size:12px!important}.check-row{display:flex;gap:22px}.form-actions{display:flex;justify-content:flex-end;gap:8px}.attendance-edit-actions{flex-wrap:wrap}.attendance-edit-actions .danger-button{margin-right:auto}.employee-edit{scroll-margin-top:95px}.employee-edit b{color:var(--red)}.admin-filter{display:grid;grid-template-columns:minmax(150px,1fr) repeat(2,minmax(140px,.7fr)) auto auto;align-items:end;gap:10px}.admin-filter label{display:flex;flex-direction:column;gap:7px}.history-list{display:grid;gap:7px;margin-top:18px}.history-item{padding:10px 12px;border-left:3px solid #d7d4cf;background:#f8f7f5}.history-item strong{font-size:12px}.history-item p{margin:5px 0;color:var(--muted);font-size:12px}.notice-admin-list{display:grid;gap:8px}.notice-admin-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid #ece9e5;border-radius:9px;background:#faf9f7}.notice-admin-item>div{min-width:0}.notice-admin-item strong{display:block;overflow:hidden;margin-bottom:5px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.notice-admin-item small{color:var(--muted);font-size:12px}.notice-admin-item button{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:12px}
.account-summary{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:20px 23px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.avatar.large{width:47px;height:47px;border-radius:13px;font-size:14px}.account-summary>div{display:flex;flex-direction:column;gap:4px}.account-summary strong{font-size:13px}.account-summary small{color:var(--muted);font-size:12px}.account-summary em{margin-left:auto;color:var(--muted);font-size:12px;font-style:normal;font-weight:800;letter-spacing:.08em}
.messenger-panel{position:fixed;right:clamp(16px,2.3vw,38px);top:68px;z-index:65;width:min(400px,calc(100vw - 28px));height:min(680px,calc(100vh - 86px));display:flex;overflow:hidden;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 24px 70px rgba(28,34,43,.2)}.messenger-head{height:68px;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);background:#fff}.messenger-head>div{display:flex;flex-direction:column;gap:5px}.messenger-head strong{font-size:15px}.messenger-head span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}.messenger-head span i{width:7px;height:7px;border-radius:50%;background:var(--green)}.messenger-head button{width:32px;height:32px;border:0;border-radius:8px;color:#7c838d;background:transparent;font-size:23px}.messenger-head button:hover{color:var(--red);background:var(--red-soft)}.messenger-messages{flex:1;overflow-y:auto;padding:18px 14px;background:#f7f6f3;overscroll-behavior:contain}.messenger-empty{padding:45px 15px;color:var(--muted);font-size:12px;text-align:center}.chat-message{display:flex;align-items:flex-start;margin-bottom:15px}.chat-message.own{flex-direction:row-reverse}.chat-body{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;gap:4px}.chat-message.own .chat-body{align-items:flex-end}.chat-meta{display:flex;align-items:center;gap:7px;padding:0 2px;color:#8b929b;font-size:12px}.chat-meta strong{color:#4a535f;font-size:12px}.chat-bubble{max-width:290px;padding:10px 12px;border:1px solid #e5e2dd;border-radius:4px 12px 12px;background:#fff;color:#343c47;font-size:13px;line-height:1.55;overflow-wrap:anywhere}.chat-message.own .chat-bubble{border-color:#f0ced0;border-radius:12px 4px 12px 12px;background:var(--red-soft)}.chat-bubble a{color:#2e6097;text-decoration:underline;text-underline-offset:2px}.chat-attachments{width:min(290px,100%);display:grid;gap:6px}.chat-image{overflow:hidden;border:1px solid var(--line);border-radius:11px;background:#fff}.chat-image-open{display:block;background:#fff}.chat-image-open img{width:100%;max-height:220px;display:block;object-fit:cover}.chat-image-download,.chat-file{display:flex;align-items:center;gap:8px;padding:8px 10px;color:#596575;background:#fff;font-size:12px}.chat-image-download{border-top:1px solid var(--line)}.chat-file{border:1px solid var(--line);border-radius:10px}.chat-file i{width:30px;height:30px;display:grid;flex:0 0 30px;place-items:center;border-radius:8px;color:var(--red);background:var(--red-soft);font-style:normal;font-weight:800}.chat-file span,.chat-image-download span{min-width:0;overflow:hidden;flex:1;text-overflow:ellipsis;white-space:nowrap}.chat-file small,.chat-image-download small{color:var(--muted);font-size:12px}.messenger-drop-hint{position:absolute;inset:69px 10px 116px;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #d9aeb1;border-radius:13px;color:var(--red);background:rgba(255,248,248,.96);pointer-events:none}.messenger-drop-hint strong{font-size:14px}.messenger-drop-hint span{margin-top:6px;color:var(--muted);font-size:12px}.messenger-files{display:flex;overflow-x:auto;flex:0 0 auto;gap:7px;padding:9px 12px;border-top:1px solid var(--line);background:#fff}.messenger-file-chip{min-width:0;display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:#faf9f7}.messenger-file-chip span{max-width:170px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.messenger-file-chip button{border:0;color:#8c929a;background:transparent;font-size:16px}.messenger-compose{flex:0 0 auto;padding:10px 12px 9px;border-top:1px solid var(--line);background:#fff}.messenger-compose textarea{width:100%;min-height:54px;max-height:120px;padding:8px 9px;border:0;color:var(--ink);background:transparent;font-size:13px;line-height:1.45;resize:none;outline:0}.messenger-compose>div{display:flex;align-items:center;gap:9px}.messenger-attach{height:32px;display:flex;align-items:center;gap:4px;padding:0 8px;border:1px solid var(--line);border-radius:8px;color:#626b77;background:#fff;cursor:pointer}.messenger-attach span{font-size:18px}.messenger-attach em{font-size:12px;font-style:normal}.messenger-compose small{flex:1;color:#9aa0a7;font-size:11px}.messenger-compose button[type=submit]{height:33px;padding:0 14px;border:0;border-radius:8px;color:#fff;background:var(--red);font-size:12px;font-weight:750}.messenger-compose button:disabled{opacity:.5;cursor:wait}.messenger-compose p{min-height:14px;margin:5px 2px 0;color:var(--red);font-size:12px}
.chat-link-preview{width:min(290px,100%);overflow:hidden;border:1px solid #ddd9d3;border-radius:11px;background:#fff}.chat-link-preview.loading{padding:12px;color:var(--muted);font-size:12px}.chat-link-preview>a{display:block;color:inherit;text-decoration:none}.chat-link-preview>a:hover{background:#fcfbf9}.chat-link-preview img{width:100%;height:128px;display:block;border-bottom:1px solid var(--line);background:#efede9;object-fit:cover}.chat-link-preview>a>div{display:flex;flex-direction:column;gap:4px;padding:11px 12px}.chat-link-preview small{overflow:hidden;color:#8b929b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.chat-link-preview strong{display:-webkit-box;overflow:hidden;color:#343c47;font-size:13px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.chat-link-preview p{display:-webkit-box;overflow:hidden;margin:1px 0 0;color:#747c86;font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.messenger-head-copy{display:flex;flex-direction:column;gap:5px}.messenger-head-copy span b{font-size:12px;font-weight:500}.messenger-head-actions{display:flex!important;align-items:center;flex-direction:row!important;gap:3px!important}.messenger-head .messenger-settings-button{display:grid;place-items:center}.messenger-settings-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.messenger-head .messenger-settings-button.active{color:var(--red);background:var(--red-soft)}.messenger-view{min-height:0;flex:1}.messenger-chat-view{position:relative;display:flex;flex-direction:column}.messenger-chat-view .messenger-drop-hint{inset:10px 10px 116px}.messenger-settings-view{overflow-y:auto;padding:18px;background:#f7f6f3}.messenger-settings-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.messenger-settings-title>button{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;color:#626b77;background:#fff;font-size:17px}.messenger-settings-title>button:hover{color:var(--red);border-color:#e4c2c4}.messenger-settings-title small{display:block;margin-bottom:3px;color:var(--red);font-size:11px;font-weight:800;letter-spacing:.1em}.messenger-settings-title h3{margin:0;color:var(--ink);font-size:20px}.messenger-settings-group{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(30,34,40,.04)}.messenger-settings-group>p{margin:0;padding:12px 15px;border-bottom:1px solid #efede9;color:#8b929b;font-size:12px;font-weight:750}.messenger-setting-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 15px 13px}.messenger-setting-row>div{min-width:0}.messenger-setting-row strong{display:block;margin-bottom:5px;color:var(--ink);font-size:13px}.messenger-setting-row span{color:var(--muted);font-size:12px}.messenger-setting-switch{position:relative;width:43px;height:24px;flex:0 0 43px;border:0;border-radius:13px;background:#c9cdd2;transition:background .16s}.messenger-setting-switch>span{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(30,34,40,.24);transition:transform .16s}.messenger-setting-switch.active{background:var(--red)}.messenger-setting-switch.active>span{transform:translateX(19px)}.messenger-setting-switch:disabled{opacity:.55;cursor:not-allowed}.messenger-settings-group>small{display:block;padding:0 15px 16px;color:#858c95;font-size:12px;line-height:1.55}
.messenger-admin-settings{margin-top:14px}.messenger-danger-row{align-items:flex-start}.messenger-danger-row strong{color:#9f1f27}.messenger-clear-button{flex:0 0 auto;padding:8px 11px;border:1px solid #dca9ad;border-radius:8px;color:#a42029;background:#fff;font-size:12px;font-weight:750}.messenger-clear-button:hover{border-color:#bd7479;background:#fff4f4}.messenger-clear-button:disabled{opacity:.55;cursor:wait}
footer{display:flex;justify-content:space-between;margin-top:42px;padding:21px 2px 0;border-top:1px solid var(--line);color:#a1a5aa;font-size:12px;letter-spacing:.06em}.toast-region{position:fixed;right:22px;bottom:22px;z-index:90;display:grid;gap:8px}.toast{max-width:350px;padding:12px 15px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 12px 36px rgba(30,34,40,.14);font-size:12px}.toast.error{color:var(--red);border-color:#edc8ca}.chat-incoming-toast{width:min(330px,calc(100vw - 30px));display:grid;gap:4px;padding:13px 15px;border:1px solid #dedad4;border-radius:12px;color:var(--ink);background:#fff;box-shadow:0 15px 42px rgba(30,34,40,.18);text-align:left}.chat-incoming-toast:hover{border-color:#d2b5b7;background:#fffafa}.chat-incoming-toast span{color:var(--red);font-size:12px;font-weight:800}.chat-incoming-toast strong{font-size:12px}.chat-incoming-toast p{overflow:hidden;margin:0;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:1180px){.service-grid-compact{grid-template-columns:repeat(2,1fr)}.home-grid{grid-template-columns:1fr 1fr}.notices-card{grid-column:1/-1}.service-grid{grid-template-columns:repeat(2,1fr)}.admin-filter{grid-template-columns:repeat(3,1fr)}.admin-filter button{width:100%}}
@media(max-width:900px){.sidebar{width:min(82vw,238px);transform:translateX(-102%);transition:transform .2s}.sidebar.open{transform:none;box-shadow:15px 0 45px rgba(30,34,40,.15)}.sidebar-close,.menu-toggle{display:grid;place-items:center}.sidebar-scrim{position:fixed;inset:0;z-index:35;display:block;border:0;background:rgba(25,29,35,.28)}.main{margin-left:0}.global-search{width:min(300px,34vw)}.profile-copy,.profile-chip i{display:none}.profile-chip{padding:4px}.split-grid,.notice-layout{grid-template-columns:1fr}.today-attendance-panel{grid-template-columns:1fr 1fr}.attendance-actions{grid-column:1/-1}.home-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){body{overflow-x:hidden}.topbar{height:67px;gap:9px;padding:0 12px}.topbar-title{min-width:0;gap:9px}.topbar-title>div{min-width:0}.topbar-title small{display:none}.topbar-title h1{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{flex:0 0 auto;gap:6px}.global-search{display:none}.icon-button{width:37px;height:37px}.profile-chip{height:39px}.avatar{width:32px;height:32px}.account-dropdown{position:fixed;right:10px;top:61px;width:min(244px,calc(100vw - 20px))}.page-shell{padding:20px 14px}.welcome-panel{align-items:flex-start;flex-direction:column;padding:24px 20px;gap:20px}.welcome-panel h2{font-size:22px;line-height:1.35}.section-head,.page-heading{align-items:flex-start;flex-wrap:wrap}.section-head{gap:12px}.service-grid,.service-grid-compact,.home-grid{grid-template-columns:1fr}.notices-card{grid-column:auto}.dashboard-card{min-height:auto;padding:20px}.page-heading{gap:12px}.page-heading h2{font-size:23px}.today-attendance-panel{grid-template-columns:1fr;padding:20px}.attendance-actions{width:100%;max-width:none;display:grid;grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch}.attendance-actions button{width:100%}.today-times{width:100%;justify-content:space-between}.attendance-cancel-hint{margin:0;text-align:left}.attendance-quick-edit{align-items:stretch;flex-direction:column}.calendar-weekdays,.attendance-calendar{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:7px 2px;font-size:11px}.calendar-day{min-height:76px;padding:6px 4px}.calendar-date{justify-content:center}.calendar-date strong{font-size:12px}.calendar-date i{position:absolute;right:4px;top:5px;width:5px;height:5px}.calendar-times{gap:2px;margin-top:8px}.calendar-times span{display:block;overflow:hidden;font-size:11px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.calendar-times b{display:none}.calendar-no-record{margin-top:12px;font-size:0;text-align:center}.calendar-no-record:after{content:"–";font-size:11px}.calendar-request{display:block;margin:5px auto 0;padding:2px;color:var(--red);background:transparent;font-size:11px;text-align:center}.calendar-legend{flex-wrap:wrap;justify-content:flex-start;gap:8px 12px}.form-columns,.metric-grid{grid-template-columns:1fr}.admin-tabs{overflow-x:auto}.admin-tabs button{flex:0 0 auto}.admin-filter{grid-template-columns:1fr 1fr}.admin-filter label:first-child{grid-column:1/-1}.notice-layout{grid-template-columns:1fr}.notice-detail{min-height:260px}.panel{padding:18px 15px}.panel-head{align-items:flex-start;flex-wrap:wrap}.filter-search{width:100%}.filter-search input{width:100%}.toolbar{align-items:flex-start;flex-direction:column}.service-card{min-height:150px;padding:19px}.check-row{align-items:flex-start;flex-direction:column;gap:0}.form-actions{flex-wrap:wrap}.form-actions button{flex:1 1 auto}.toast-region{right:10px;bottom:10px}.messenger-panel{inset:68px 7px 7px;width:auto;height:auto;border-radius:14px}footer{flex-direction:column;gap:7px}}
@media(max-width:390px){.topbar{padding:0 9px}.topbar-title{gap:7px}.menu-toggle{width:35px;height:35px}.topbar-title h1{max-width:74px;font-size:15px}.topbar-actions{gap:4px}.icon-button{width:35px;height:35px}.profile-chip{height:36px}.avatar{width:30px;height:30px}.admin-filter{grid-template-columns:1fr}.admin-filter label:first-child{grid-column:auto}.attendance-actions{grid-template-columns:1fr}.messenger-compose small{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.loading-dot,.sidebar,.view,.service-card{animation:none;transition:none}}
