@font-face{font-family:NR;src:local('Noto Sans KR')}*{box-sizing:border-box}html{color-scheme:light;scroll-behavior:smooth}body{margin:0;background:#eef2f6;color:#233248;font-family:NR,'Malgun Gothic',sans-serif;font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:#356ae6;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #99b7ff;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.5}svg{width:20px;height:20px;flex:none;vertical-align:middle}h1{font-size:28px;line-height:40px;margin:0;font-weight:700;letter-spacing:-.7px}h2{font-size:18px;line-height:28px;margin:0 0 16px;font-weight:700}h3{font-size:14px;line-height:24px;margin:0 0 8px}p{margin:0 0 12px}small,.small{font-size:12px;line-height:20px}.muted{color:#64748b}.brand{color:white;font-size:19px;font-weight:700;display:flex;gap:10px;align-items:center;text-decoration:none!important;letter-spacing:-.5px}.brand img{width:30px;height:30px}.app-header{background:#172b4d;color:white;min-height:64px;padding:10px 32px;display:flex;align-items:center;justify-content:space-between;gap:16px}.header-left,.header-right{display:flex;align-items:center;gap:16px}.header-right select{min-height:36px;max-width:190px;background:#23395c;color:white;border-color:#476082;font-size:12px}.app-nav{display:flex;padding:6px 24px;gap:4px;background:white;border-bottom:1px solid #e1e7ef;justify-content:center}.app-nav a{flex:1;max-width:130px;min-height:52px;display:flex;justify-content:center;align-items:center;gap:7px;color:#64748b;font-weight:700;border-radius:6px;white-space:nowrap}.app-nav svg{display:none}.app-nav a.active,.app-nav a:hover{background:#eaf0ff;color:#356ae6;text-decoration:none}.app-nav a.active svg,.app-nav a:hover svg{display:block}.demo-bar{background:#f7f9fc;border-bottom:1px solid #e1e7ef;padding:7px 32px;color:#64748b;font-size:12px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.demo-bar span:before{content:'';display:inline-block;width:6px;height:6px;background:#356ae6;border-radius:50%;margin-right:7px}.content{max-width:1504px;margin:auto;padding:32px}.page-title{margin-bottom:24px}.page-title p{color:#64748b;margin:6px 0 0}.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:#64748b;margin-bottom:16px}.crumbs button{font-size:12px}.grid{display:grid;gap:20px;align-items:start}.grid.two{grid-template-columns:1fr 1fr}.grid.home-grid{grid-template-columns:minmax(0,1.7fr) minmax(320px,1fr)}.grid.form-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}.stack{display:grid;gap:20px;min-width:0}.panel{background:white;border:1px solid transparent;border-radius:10px;padding:24px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.panel-head h2,.panel-head h3{margin:0}.panel-head a{font-size:12px}.toolbar,.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar{margin-bottom:20px}.actions{margin-top:20px}.toolbar>.search{flex:1;max-width:500px}.spacer{flex:1}.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d5dee9;border-radius:6px;background:white;color:#233248;padding:10px 16px;font-weight:700;text-decoration:none;line-height:22px}.btn:hover{background:#f1f5fa;text-decoration:none}.btn.primary{background:#356ae6;border-color:#356ae6;color:white}.btn.primary:hover{background:#2858c9}.btn.danger{color:#a24444;border-color:#e4caca}.btn.ghost{background:transparent;border-color:transparent}.btn.icon{width:44px;min-width:44px;padding:10px}.header-left .btn{color:white}.link{border:0;background:transparent;color:#356ae6;padding:0;cursor:pointer;text-align:left;line-height:24px}.menu-trigger{display:none}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stats.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stat{display:block;background:white;padding:18px 22px;border-radius:9px;color:#233248;text-decoration:none!important;border:1px solid transparent}.stat:hover{border-color:#cbd8f5}.stat>span{font-size:12px;color:#64748b}.stat strong{display:block;font-size:28px;line-height:40px;color:#356ae6;margin-top:7px}.stat small{display:block}.list{list-style:none;margin:0;padding:0}.list>li{padding:16px 0;border-bottom:1px solid #e1e7ef}.list>li:last-child{border-bottom:0;padding-bottom:0}.list>li:first-child{padding-top:0}.item-title{font-weight:700;display:block;color:#233248}.item-meta{font-size:12px;line-height:20px;color:#64748b;margin-top:4px}.row{display:flex;gap:12px;align-items:center;min-width:0}.row.wrap{flex-wrap:wrap}.row .grow{flex:1;min-width:0}.avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:#eaf0ff;color:#356ae6;font-weight:700;flex:none}.badge{display:inline-flex;align-items:center;font-size:12px;line-height:20px;padding:2px 8px;border-radius:4px;background:#f1f5fa;color:#64748b;white-space:nowrap}.badge.blue{background:#eaf0ff;color:#356ae6}.badge.green{background:#edf6f1;color:#246b57}.badge.red{background:#f9efef;color:#a24444}.badge.amber{background:#faf4e8;color:#89621c}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:14px 12px;border-bottom:1px solid #e1e7ef;vertical-align:middle;text-align:left;line-height:24px}.table th{font-size:12px;background:#f1f5fa;color:#64748b;font-weight:700;white-space:nowrap}.table td{font-size:14px}.table tr:last-child td{border-bottom:0}.table tbody tr.clickable:hover{background:#f7f9ff}.table .btn{white-space:nowrap}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.tab{min-height:44px;padding:10px 16px;border:0;border-radius:6px;background:white;color:#64748b}.tab.active{background:#eaf0ff;color:#356ae6;font-weight:700}.search{position:relative}.search svg{position:absolute;left:13px;top:14px;color:#94a3b8}.search input{padding-left:40px}.field{display:grid;gap:7px;min-width:0}.field label,.field-label{font-weight:700;font-size:14px;line-height:24px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.full{grid-column:1/-1}input,select,textarea{width:100%;min-width:0;min-height:46px;border:1px solid #d5dee9;background:white;color:#233248;border-radius:6px;padding:10px 12px;line-height:24px}textarea{resize:vertical;min-height:120px}input[type=checkbox]{width:18px;min-height:18px;accent-color:#356ae6;padding:0}input:disabled{background:#f1f5fa}.checks{display:flex;gap:12px 20px;flex-wrap:wrap}.checks label{display:flex;align-items:center;gap:8px;min-height:44px;font-weight:400}.notice{padding:12px 16px;border-left:3px solid #356ae6;background:#f1f5fa;line-height:24px;margin-bottom:20px}.notice.warning{border-color:#89621c}.notice.error{border-color:#a24444;color:#a24444}.notice.success{border-color:#246b57}.notice p:last-child{margin:0}.empty{padding:40px 16px;text-align:center;color:#64748b;line-height:24px}.empty>svg{width:32px;height:32px;color:#94a3b8;margin-bottom:12px}.empty strong{display:block;color:#233248;margin-bottom:6px}.empty .btn{margin-top:16px}.module-layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:24px;align-items:start}.side{background:white;border:1px solid #e1e7ef;border-radius:9px;padding:20px 16px}.side h2{font-size:18px}.side-nav{display:grid;gap:0}.side-nav a{display:flex;align-items:center;min-height:44px;padding:10px 8px;color:#64748b;border-bottom:1px solid #e1e7ef;font-size:13px}.side-nav a:last-child{border-bottom:0}.side-nav a.active{background:#eaf0ff;color:#356ae6;font-weight:700}.side-nav a:hover{text-decoration:none;color:#356ae6}.project-context{background:#f1f5fa;padding:12px;border-radius:6px;margin:12px 0 16px;overflow-wrap:anywhere}.project-context strong{display:block;margin-bottom:4px}.project-mobile-select{display:none}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:16px}.calendar-head strong{font-size:16px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #e1e7ef;border-top:1px solid #e1e7ef}.calendar-grid .dow{background:#f7f9fc;color:#64748b;font-size:12px;text-align:center;line-height:34px;border-right:1px solid #e1e7ef;border-bottom:1px solid #e1e7ef}.cal-day{min-width:0;min-height:82px;border:0;border-right:1px solid #e1e7ef;border-bottom:1px solid #e1e7ef;background:white;padding:8px;text-align:left;color:#233248;position:relative}.cal-day:hover{background:#f1f5fa}.cal-day.selected{background:#eaf0ff;color:#356ae6}.cal-day.today .day-num{background:#356ae6;color:white;border-radius:50%;display:inline-grid;place-items:center;width:24px;height:24px}.cal-day.outside{color:#b4becb}.cal-day .dot{display:block;width:5px;height:5px;background:#356ae6;border-radius:50%;margin:5px auto}.cal-day small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b;margin-top:4px}.compact-calendar .cal-day{min-height:44px;text-align:center;padding:7px 2px}.compact-calendar .cal-day small{display:none}.selected-events{margin-top:20px}.folder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.folder-card{background:white;border:1px solid #d5dee9;border-radius:9px;padding:20px;min-width:0;display:flex;flex-direction:column;gap:10px}.folder-card:hover{border-color:#9bb5eb}.folder-card .folder-open{border:0;padding:0;text-align:left;background:transparent;color:inherit;cursor:pointer;display:grid;gap:8px;flex:1}.folder-icon{color:#356ae6}.folder-icon svg{width:28px;height:28px}.folder-title{font-weight:700;overflow-wrap:anywhere}.file-type{background:#f1f5fa;border-radius:6px;min-height:70px;display:grid;place-items:center;color:#356ae6;font-size:20px;font-weight:700}.folder-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.file-actions{display:flex;gap:8px;flex-wrap:wrap}.file-actions .btn{font-size:12px;padding:7px 10px;min-height:38px}.preview-tree{list-style:none;padding:0;margin:0}.preview-tree li{padding:10px 0;border-bottom:1px solid #e1e7ef;overflow-wrap:anywhere}.preview-tree li:last-child{border-bottom:0}.preview-tree svg{width:16px;height:16px;color:#356ae6;margin-right:8px}.mail-list-row{display:grid;grid-template-columns:42px 150px minmax(0,1fr) 100px;gap:12px;align-items:center;padding:15px 8px;border-bottom:1px solid #e1e7ef}.mail-list-row:last-child{border-bottom:0}.mail-list-row.unread{font-weight:700;background:#f7f9ff}.mail-list-row .subject{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#233248}.mail-list-row .btn{border:0;background:transparent}.mail-list-row small{color:#64748b;text-align:right}.mail-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;padding:24px 0}.mail-metadata{font-size:12px;color:#64748b;display:grid;gap:4px}.composer{position:fixed;right:24px;bottom:16px;width:560px;max-width:calc(100vw - 48px);background:white;border:1px solid #c5d1e3;border-radius:10px;box-shadow:0 8px 40px #172b4d24;z-index:50;overflow:hidden;max-height:calc(100dvh - 32px);display:flex;flex-direction:column}.composer-head{background:#172b4d;color:white;padding:4px 12px 4px 20px;display:flex;align-items:center;justify-content:space-between;min-height:48px}.composer-head .btn{color:white}.composer-body{padding:20px;overflow-y:auto}.composer .field{margin-bottom:12px}.composer textarea{min-height:140px}.composer.expanded{width:900px;right:50%;transform:translateX(50%)}dialog{border:0;border-radius:12px;width:640px;max-width:calc(100vw - 32px);padding:0;color:#233248;box-shadow:0 10px 60px #172b4d33}dialog::backdrop{background:#172b4d55}#dialog-content{padding:24px;max-height:85dvh;overflow:auto}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dialog-head h2{margin:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#172b4d;color:white;border-radius:7px;padding:12px 20px;box-shadow:0 5px 20px #172b4d20;z-index:100;max-width:calc(100vw - 32px);width:max-content;display:none}#toast.visible{display:block}.login-page{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#eef2f6}.login-card{width:440px;max-width:100%;background:white;border-radius:12px;padding:36px;border:1px solid #e1e7ef}.login-card img{width:44px;margin-bottom:24px}.login-card h1{font-size:24px}.login-card .btn{width:100%;margin-top:16px}.login-card .field{margin-top:16px}.login-note{font-size:12px;color:#64748b;line-height:22px;margin-top:20px}.mobile-launcher,.welcome-mobile{display:none}.progress-steps{list-style:none;padding:0;margin:20px 0}.progress-steps li{display:flex;align-items:center;gap:12px;min-height:64px;border-bottom:1px solid #e1e7ef}.progress-steps li:last-child{border:0}.step-num{width:32px;height:32px;background:#eaf0ff;color:#356ae6;border-radius:50%;display:grid;place-items:center}.summary{display:grid;grid-template-columns:130px 1fr;margin:0}.summary dt,.summary dd{margin:0;padding:12px 0;border-bottom:1px solid #e1e7ef;line-height:24px;overflow-wrap:anywhere;align-content:center}.summary dd{padding-left:12px}.summary dt{font-size:12px;color:#64748b}.summary dt:last-of-type,.summary dd:last-of-type{border:0}.audit{font-family:inherit;font-size:12px;color:#64748b}.status-success{color:#246b57}.footer{font-size:12px;color:#64748b;padding:28px 0 0}.receipt-preview{max-width:100%;max-height:280px;object-fit:contain;border:1px solid #e1e7ef;border-radius:6px}.attachment{background:#f1f5fa;padding:12px 16px;border-radius:6px;display:flex;align-items:center;gap:12px;margin-top:16px}.menu-page{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.menu-page a{display:flex;gap:12px;align-items:center;min-height:64px;background:white;padding:16px;border-radius:8px;color:#233248}.menu-page svg{color:#356ae6}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}[hidden]{display:none!important}
@media(max-width:1365px){.app-nav{display:none}.menu-trigger{display:inline-flex}.content{padding:24px}.app-header{padding:10px 24px}.folder-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-launcher{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:20px 0 24px}.mobile-launcher a{display:grid;justify-items:center;gap:8px;color:#233248;font-size:12px;min-height:92px}.mobile-launcher .launch-icon{width:56px;height:56px;display:grid;place-items:center;background:#eaf0ff;color:#356ae6;border-radius:12px}.mobile-launcher svg{width:24px;height:24px}.welcome-mobile{display:flex;margin-bottom:16px}.header-left{gap:8px}.brand{font-size:18px}.demo-bar{padding:7px 24px}}
@media(max-width:1099px){.module-layout{grid-template-columns:1fr}.module-layout>.side{display:none}.project-mobile-select{display:block;margin-bottom:20px}.grid.home-grid,.grid.form-grid{grid-template-columns:1fr}.mobile-launcher{grid-template-columns:repeat(4,minmax(0,1fr))}.mail-list-row{grid-template-columns:36px 130px minmax(0,1fr) 85px}.stats{gap:12px}.app-header .brand img{display:none}}
@media(max-width:767px){.content{padding:20px 16px}.app-header{padding:8px 12px;gap:8px}.header-left,.header-right{gap:6px}.brand{font-size:14px;white-space:nowrap}.header-right select{max-width:95px;padding:5px;font-size:11px}.header-right .logout{display:none}.demo-bar{padding:7px 16px;font-size:11px}.demo-bar .desktop-note{display:none}.panel{padding:16px}.page-title{margin-bottom:20px}.page-title h1{font-size:26px;line-height:38px}.grid.two,.fields{grid-template-columns:1fr}.full{grid-column:auto}.stats,.stats.three{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stat{padding:14px 16px}.toolbar{gap:8px}.toolbar>.search{max-width:none;flex-basis:100%}.toolbar>.spacer{display:none}.btn{padding:10px 12px}.folder-grid{grid-template-columns:1fr}.folder-card{padding:16px}.calendar-grid .cal-day{min-height:58px;padding:5px;text-align:center}.cal-day small{display:none}.compact-calendar .cal-day{min-height:44px}.calendar-head strong{font-size:14px}.mail-list-row{grid-template-columns:32px minmax(0,1fr) 80px;gap:8px;position:relative;align-items:start}.mail-list-row .sender{grid-column:2;grid-row:1;font-size:12px}.mail-list-row .subject{grid-column:2/4;grid-row:2;white-space:normal}.mail-list-row .star{grid-column:1;grid-row:1/3}.mail-list-row small{grid-column:3;grid-row:1;font-size:11px}.composer,.composer.expanded{right:0;top:0;bottom:0;width:100%;max-width:none;border-radius:0;max-height:100dvh;transform:none;z-index:70}.composer-body{flex:1}.composer textarea{min-height:200px}.composer-head{flex:none}.summary{grid-template-columns:100px 1fr}.menu-page{grid-template-columns:1fr 1fr}.menu-page a{font-size:13px}.table.responsive,.table.responsive tbody{display:block}.table.responsive thead{display:none}.table.responsive tr{display:block;padding:12px 0;border-bottom:1px solid #e1e7ef}.table.responsive tr:first-child{padding-top:0}.table.responsive tr:last-child{border:0;padding-bottom:0}.table.responsive td{display:block;border:0;padding:3px 0;overflow-wrap:anywhere;line-height:24px}.table.responsive td::before{content:attr(data-label) ' · ';color:#64748b;font-size:12px;font-weight:400}.table.responsive td[data-label="업무"]::before,.table.responsive td[data-label="프로젝트"]::before,.table.responsive td[data-label="제목"]::before{content:none}.table.responsive td[data-label="업무"],.table.responsive td[data-label="프로젝트"],.table.responsive td[data-label="제목"]{font-weight:700}.table.responsive td:empty{display:none}.tabs{gap:6px}.tab{font-size:12px;padding:9px 12px}.panel-head{align-items:start}.login-card{padding:24px}.steps li{font-size:12px}input,select,textarea{font-size:16px}.field .checks label{font-size:14px}#dialog-content{padding:20px 16px}.actions{gap:8px}.footer{padding-top:20px}.toolbar select{max-width:100%}}
.btn{white-space:nowrap}.header-right{flex-shrink:0}.app-header .btn,.app-header .btn:hover{background:transparent;border-color:transparent;color:white}.app-header .logout{min-width:72px}.app-header .header-right select{width:auto}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Header sign-out action */
.app-header .btn.logout{min-height:36px;min-width:112px;padding:7px 12px;border:1px solid #617796;border-radius:6px;background:#2b4265;color:#fff;font-size:12px;line-height:20px;transition:background .15s,border-color .15s}.app-header .btn.logout:hover{background:#3a547b;border-color:#94a7c3}.app-header .btn.logout:active{background:#23395c}.app-header .btn.logout svg{width:16px;height:16px}

.approval-flow{gap:16px}.approval-arrow{display:inline-flex;transform:rotate(180deg);color:#64748b}.approval-message{margin:0}.approval-footer{display:flex;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid #e1e7ef}

/* Calendar day categories are shared by home and schedule views. */
.calendar-grid .dow.saturday{color:#3566ad}.calendar-grid .dow.sunday{color:#b34343}
.cal-day.saturday{background:#f5f8ff}.cal-day.saturday .day-num{color:#3566ad}
.cal-day.sunday,.cal-day.public-holiday{background:#fff5f5}.cal-day.sunday .day-num,.cal-day.public-holiday .day-num{color:#b34343}
.cal-day.company-holiday{background:#fff5e8}.cal-day.company-holiday .day-num{color:#93601c}
.cal-day.public-holiday.company-holiday{background:linear-gradient(135deg,#fff5f5 50%,#fff5e8 50%)}.cal-day.public-holiday.company-holiday .day-num{color:#b34343}
.cal-day.selected{box-shadow:inset 0 0 0 2px #356ae6}.cal-day.today .day-num{color:#fff}
.cal-day:hover{box-shadow:inset 0 0 0 1px #8ea7ce}.cal-day.selected:hover{box-shadow:inset 0 0 0 2px #356ae6}
.cal-day .holiday-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;margin-top:3px;color:#a13f3f}.cal-day.company-holiday .holiday-label{color:#8a591b}
.cal-day .dot{margin:4px auto}.calendar-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:#64748b;margin-top:12px}.calendar-legend span{display:inline-flex;gap:5px;align-items:center}.calendar-legend span:before{content:'';width:8px;height:8px;border-radius:2px;background:#3566ad}.calendar-legend .legend-public:before{background:#b34343}.calendar-legend .legend-company:before{background:#bc8437}
@media(max-width:767px){.cal-day .holiday-label{font-size:10px;line-height:14px}.calendar-legend{gap:6px 10px}}

.mail-list-row .draft-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:#64748b}.mail-list-row .subject.btn{display:block;min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:transparent;text-align:left;line-height:24px;font-weight:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.draft-row .sender{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:767px){.mail-list-row .draft-icon{grid-column:1;grid-row:1/3;width:32px}.mail-list-row .subject.btn{white-space:normal;overflow-wrap:anywhere}}

.payment-record-actions{margin-top:10px}

.mail-list-row.draft-row{grid-template-columns:44px 160px minmax(0,1fr) 120px 72px}.draft-actions{display:flex;justify-content:flex-end}.draft-actions .btn{padding:6px 12px;min-height:36px;font-size:12px}@media(max-width:767px){.mail-list-row.draft-row{grid-template-columns:32px minmax(0,1fr) 80px}.draft-row .draft-actions{grid-column:2/4;grid-row:3;margin-top:4px}.draft-row .draft-icon{grid-row:1/4}}

/* Mail management uses the same toolbar and selectable rows across mailboxes. */
.mail-actionbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.mail-actionbar>.small{min-width:62px}.mail-actionbar .btn{min-height:38px;padding:7px 12px;font-size:12px}.mail-menu{position:relative;font-size:12px}.mail-menu>summary{cursor:pointer;list-style:none;padding:8px 12px;background:#fff;border:1px solid #d5dee9;border-radius:6px;font-weight:700;min-height:38px}.mail-menu>summary:after{content:' ▾'}.mail-menu-items{position:absolute;top:calc(100% + 6px);left:0;z-index:30;background:#fff;border:1px solid #d5dee9;border-radius:8px;padding:6px;box-shadow:0 8px 24px #172b4d1a;min-width:178px;display:grid;gap:2px}.mail-menu-items .btn{justify-content:flex-start;border-color:transparent;text-align:left}.mail-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px solid #e1e7ef;margin-bottom:2px}.mail-list-header label{display:flex;align-items:center;gap:10px;font-size:12px;color:#64748b}.mail-list-header input,.mail-check{width:18px;height:18px;min-height:0;padding:0;accent-color:#356ae6;flex:none}.mail-list-row.mail-selectable{grid-template-columns:24px 36px 150px minmax(0,1fr) 110px;gap:10px;align-items:center}.mail-list-row.mail-selectable.draft-row{grid-template-columns:24px 36px 150px minmax(0,1fr) 110px 64px}.mail-selectable.is-selected{background:#f0f5ff}.mail-selectable .sender{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-selectable .star,.mail-selectable .draft-icon{width:36px;min-width:36px;padding:0;min-height:36px}.mail-selectable .subject{min-width:0}.mail-actionbar .btn:disabled{opacity:.45}
@media(max-width:767px){.mail-actionbar{gap:8px}.mail-list-row.mail-selectable,.mail-list-row.mail-selectable.draft-row{grid-template-columns:24px 28px minmax(0,1fr) 80px;gap:6px;align-items:start;padding:14px 0}.mail-selectable .mail-check{grid-column:1;grid-row:1/4;margin-top:6px}.mail-selectable .star,.mail-selectable .draft-icon{grid-column:2;grid-row:1/4;width:28px;min-width:28px;min-height:32px}.mail-selectable .sender{grid-column:3;grid-row:1}.mail-selectable small{grid-column:4;grid-row:1}.mail-selectable .subject,.mail-selectable .subject.btn{grid-column:3/5;grid-row:2;white-space:normal;overflow-wrap:anywhere}.mail-selectable .draft-actions{grid-column:3/5;grid-row:3}.mail-menu-items{max-width:calc(100vw - 48px)}#mail-filter{max-width:100%}}

.side-nav .side-inactive{display:block;padding:10px 12px;color:#7a8798;background:#f7f9fc;border-radius:5px;line-height:22px}.side-inactive small{display:block;font-size:11px;line-height:18px;color:#64748b}

.toolbar #mail-filter{width:160px;flex:0 0 160px}.project-scope-note{margin-top:8px;color:#64748b;font-size:12px}

.mail-mobile-nav{display:none}@media(max-width:1099px){.mail-mobile-nav{display:flex;align-items:center;gap:12px;margin-bottom:20px}.mail-mobile-nav label{font-size:12px;color:#64748b;white-space:nowrap}.mail-mobile-nav select{width:auto;min-width:180px;max-width:100%}}

/* Keep the mail filter chevron inset consistently across browsers. */
#mail-filter{appearance:none;-webkit-appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:14px 14px}
@media(forced-colors:active){#mail-filter{appearance:auto;-webkit-appearance:auto;background-image:none}}

/* Common visual alignment pass: controls, chevrons, calendar rows. */
:root{--nr-control-height:44px;--nr-icon-size:20px;--nr-control-radius:6px;--nr-line:#e1e7ef}
input:not([type="checkbox"]):not([type="hidden"]):not([type="file"]),select{min-height:var(--nr-control-height);padding-top:9px;padding-bottom:9px}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;background-size:14px 14px;padding-right:40px;text-overflow:ellipsis}
select:disabled{background-color:#f1f5fa;color:#64748b;cursor:not-allowed}
input[type="checkbox"]{flex-shrink:0;vertical-align:middle}
.search svg{top:50%;transform:translateY(-50%);pointer-events:none}
.toolbar>select{width:auto;max-width:100%}
.panel-head{align-items:center}
.btn.icon{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;flex:none}
.btn.icon svg{width:var(--nr-icon-size);height:var(--nr-icon-size);display:block}
.calendar-head .btn{width:44px;height:44px;min-width:44px;min-height:44px;padding:0;flex:none}
.calendar-head strong{text-align:center;line-height:24px}
.calendar-grid .cal-day{min-height:96px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start}
.cal-day .day-num{height:24px;min-width:24px;line-height:24px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.cal-day .dot{flex:none;margin:3px 0 0}
.cal-day .holiday-label,.cal-day small{width:100%;flex:none}
.compact-calendar .cal-day{height:68px;min-height:68px;padding:7px 3px;align-items:center;text-align:center}
.compact-calendar .cal-day .dot{margin:3px auto 0}
.project-back{display:inline-flex;align-items:center;gap:6px;min-height:32px}
.project-back svg{width:16px;height:16px}
.crumbs-separator{display:inline-flex;align-items:center;color:#94a3b8}
.crumbs-separator svg{width:12px;height:12px}
.app-header .header-right select{height:36px;min-height:36px;padding:5px 30px 5px 10px;line-height:24px;background-position:right 10px center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.composer-head>div{display:flex;align-items:center;gap:4px}
.mail-menu>summary{display:flex;align-items:center;justify-content:center;gap:8px;line-height:22px}
.mail-menu>summary:after{content:'';width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-3px}
@media(max-width:767px){.calendar-grid .cal-day{min-height:76px}.compact-calendar .cal-day{height:68px;min-height:68px}.mail-actionbar .btn,.mail-menu>summary{min-height:44px}.draft-actions .btn{min-height:44px}.app-header .header-right select{padding-left:8px;font-size:11px}.panel-head{gap:12px}}
@media(forced-colors:active){select,#mail-filter,.app-header .header-right select{appearance:auto;-webkit-appearance:auto;background-image:none}}

.app-header .header-right select{background-repeat:no-repeat;background-size:14px 14px}

/* Native date/number controls otherwise add 1–2px of intrinsic height. */
input:not([type="checkbox"]):not([type="hidden"]):not([type="file"]),select{height:var(--nr-control-height)}
.app-header .header-right select{height:36px}

/* Short navigation motion; data-entry rerenders do not receive page-enter. */
html{scrollbar-gutter:stable}
.menu-open{overflow:hidden}
.page-enter{animation:nr-page-enter 180ms cubic-bezier(.2,.7,.2,1) both}
@keyframes nr-page-enter{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
#global-menu{position:fixed;inset:0 auto 0 0;margin:0;width:304px;max-width:calc(100vw - 40px);height:100dvh;max-height:100dvh;border-radius:0;padding:20px 16px;background:#fff;overflow:hidden;transform:translateX(-100%);transition:transform 220ms cubic-bezier(.2,.7,.2,1);box-shadow:8px 0 32px #172b4d26}
#global-menu[open]{display:flex;flex-direction:column;gap:20px}
#global-menu.is-open{transform:translateX(0)}
#global-menu::backdrop{background-color:#172b4d00;transition:background-color 220ms ease}
#global-menu.is-open::backdrop{background-color:#172b4d66}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}
.drawer-head h2{margin:0}
.drawer-nav{display:grid;align-content:start;gap:4px;overflow-y:auto;min-height:0;flex:1;padding:3px}
.drawer-nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 12px;color:#64748b;border-radius:6px;text-decoration:none;transition:background-color 120ms ease,color 120ms ease}
.drawer-nav a.active,.drawer-nav a:hover{background:#eaf0ff;color:#356ae6}
.drawer-nav a.active{font-weight:700}
.drawer-user{display:grid;gap:2px;flex:none;border-top:1px solid #e1e7ef;padding:16px 12px 0}
.mobile-launcher .launch-menu{display:grid;justify-items:center;align-content:start;gap:8px;color:#233248;font-size:12px;font-weight:400;line-height:1.65;min-height:92px;padding:0;border:0;background:transparent}
.app-nav svg{display:block;width:0;opacity:0;transform:translateX(-3px);transition:width 140ms ease,opacity 140ms ease,transform 140ms ease}
.app-nav a.active svg,.app-nav a:hover svg{width:20px;opacity:1;transform:translateX(0)}
@media(prefers-reduced-motion:reduce){.page-enter{animation:none}#global-menu,#global-menu::backdrop,.drawer-nav a,.app-nav svg{transition:none!important}}

.motion-toggle{display:flex;align-items:center;gap:10px;min-height:44px;margin-top:8px;font-size:12px;color:#64748b;cursor:pointer}
.motion-toggle input{margin:0}
html[data-motion="off"] *,html[data-motion="off"] *::before,html[data-motion="off"] *::after{animation:none!important;transition:none!important}
html[data-motion="on"] .page-enter{animation:nr-page-enter 180ms cubic-bezier(.2,.7,.2,1) both!important}
html[data-motion="on"] #global-menu{transition:transform 220ms cubic-bezier(.2,.7,.2,1)!important}
html[data-motion="on"] #global-menu::backdrop{transition:background-color 220ms ease!important}
html[data-motion="on"] .drawer-nav a{transition:background-color 120ms ease,color 120ms ease!important}
html[data-motion="on"] .app-nav svg{transition:width 140ms ease,opacity 140ms ease,transform 140ms ease!important}

html[data-motion="off"]{scroll-behavior:auto}
.motion-toggle input{appearance:none;-webkit-appearance:none;position:relative;width:34px;height:20px;min-height:20px;border:1px solid #b4c0d0;border-radius:999px;background:#dce3ed;cursor:pointer;flex:none}
.motion-toggle input::before{content:'';position:absolute;width:14px;height:14px;left:2px;top:2px;border-radius:50%;background:white;box-shadow:0 1px 3px #172b4d33}
.motion-toggle input:checked{background:#356ae6;border-color:#356ae6}
.motion-toggle input:checked::before{transform:translateX(14px)}
@media(forced-colors:active){.motion-toggle input{appearance:auto;-webkit-appearance:auto}.motion-toggle input::before{display:none}}

/* Leave breathing room for Korean glyphs inside native search controls. */
.search input#search-input[type=search]{appearance:none;-webkit-appearance:none;padding-top:8px;padding-bottom:8px}

/* Independent home columns keep project/cost cards below the mail, not below the calendar. */
.home-content{max-width:1920px}
.grid.home-dashboard{grid-template-columns:minmax(0,1fr) minmax(360px,420px)}
.home-feed{min-width:0}
.home-dashboard .compact-calendar .cal-day{height:56px;min-height:56px;padding:4px 3px}
.home-dashboard .compact-calendar .empty{padding:20px 12px}
.login-page{grid-template-columns:minmax(0,1fr)}
.login-card{min-width:0;overflow-wrap:anywhere}
.login-card .login-logo{display:block;width:100%;height:100px;object-fit:cover;object-position:center;margin:0 0 20px}
.app-header .brand img{display:block;width:220px;height:44px;object-fit:cover;object-position:center;background:transparent;border-radius:0}
.brand-label{font-size:16px;letter-spacing:0}
.stat.active{border-color:#356ae6;background:#f7f9ff;box-shadow:inset 0 0 0 1px #356ae6}
#app{min-height:100dvh;display:flex;flex-direction:column}
#main-content{width:100%;flex:1}
.login-page{flex:1;min-height:0}
.site-footer{flex:none;border-top:1px solid #e1e7ef;background:#fff;color:#64748b}
.site-footer-inner{width:100%;max-width:1920px;margin:0 auto;padding:18px 32px;display:flex;align-items:center;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.site-footer p{margin:0;font-size:12px;line-height:20px}
.site-footer nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px}
.site-footer a{min-height:32px;display:inline-flex;align-items:center;gap:6px;color:#475569}
.site-footer a:hover{color:#356ae6}
.site-footer a svg{width:14px;height:14px}
.related-label{font-weight:700;color:#64748b}
.pending-site{color:#94a3b8}
.audit-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:16px;border-top:1px solid #e1e7ef}
.audit-pagination nav{display:flex;align-items:center;gap:12px}
.audit-pagination nav [role=status]{min-width:48px;text-align:center;font-variant-numeric:tabular-nums}
/* Slightly denser type; keep input and touch-target dimensions unchanged. */
body{font-size:13px}
h1{font-size:26px;line-height:38px}
h2{font-size:17px;line-height:26px}
h3{font-size:13px;line-height:22px}
.stat strong{font-size:26px;line-height:36px}
.calendar-head strong{font-size:14px}
.calendar-grid .dow{font-size:11px;line-height:30px}
.calendar-grid .cal-day{overflow:hidden}
.calendar-grid .cal-day .day-num{font-size:12px;height:22px;min-width:22px;line-height:22px}
.calendar-grid .cal-day.today .day-num{width:22px;height:22px}
.calendar-grid .cal-day .holiday-label{font-size:10px;line-height:12px;margin-top:1px}
.calendar-grid .cal-day .dot{width:4px;height:4px;margin-top:2px;margin-bottom:0}
@media(max-width:767px){.page-title h1{font-size:24px;line-height:36px}.compact-calendar .cal-day .holiday-label{font-size:9px}}
@media(max-width:767px){.site-footer-inner{padding:16px 16px max(16px,env(safe-area-inset-bottom));flex-direction:column;align-items:flex-start;gap:8px}.site-footer nav{gap:12px}.site-footer a{min-height:40px}}
@media(max-width:767px){
  .app-header .brand img{width:140px;height:36px}
  .brand-label{display:none}
  .login-card .login-logo{height:80px;margin-bottom:16px}
}
@media(max-width:1099px){
  .grid.home-dashboard{grid-template-columns:minmax(0,1fr)}
  .home-feed{display:contents}
  .home-feed>section:nth-child(1){order:1}
  .home-feed>section:nth-child(2){order:2}
  .home-dashboard>section{order:3}
  .home-summary{order:4}
}
