:root {
  color-scheme: light;
  --bg: #f4f7fa;
  --surface: #ffffff;
  --primary: #f04a38;
  --primary-dark: #c93425;
  --navy: #06284a;
  --navy-secondary: #0d3b66;
  --text: #1f2937;
  --muted: #64748b;
  --border: #e2e8f0;
  --app-header-height: 82px;
  --app-hero-height: 230px;
  --app-nav-height: 56px;
}

/* Six-item To Do hero summary v8. */
.authenticated .hero-panel { height:auto; min-height:278px; }
.authenticated .hero-work-card { height:auto; }
.authenticated .hero-work-card h3 a { color:inherit; text-decoration:none; }
.authenticated .hero-work-stat {
  min-height:62px;
  color:inherit;
  text-decoration:none;
  transition:border-color .2s ease,background-color .2s ease,transform .2s ease;
}
.authenticated .hero-work-stat:hover,
.authenticated .hero-work-stat:focus-visible {
  border-color:rgba(190,215,235,.6);
  background:rgba(12,59,96,.9);
  transform:translateY(-1px);
  outline:none;
}
.authenticated .hero-work-stat.work-overdue { color:#ff9b54; }
.authenticated .hero-work-stat.work-planned { color:#b7a7ef; }
@media (max-width:900px) and (min-width:761px) {
  .authenticated .hero-panel { height:auto; min-height:278px; }
}
@media (max-width:760px) {
  .authenticated .hero-panel { height:auto; min-height:0; }
}

/* Compact density for To Do integrated registration v2. */
@media (min-width: 1440px) {
  body:has(.integrated-registration) .site-header {
    height:68px;
    min-height:68px;
    padding:4px clamp(16px,2.2vw,42px);
  }
  body:has(.integrated-registration) .brand-logo { width:126px;height:48px;flex-basis:126px; }
  body:has(.integrated-registration) .brand-divider { height:32px; }
  body:has(.integrated-registration) .site-header h1 { font-size:23px; }
  body:has(.integrated-registration) .userbox>span,
  body:has(.integrated-registration) .userbox>a,
  body:has(.integrated-registration) .userbox>button { min-height:30px;padding:0 9px; }
  body:has(.integrated-registration) .hero-panel {
    height:214px;
    min-height:214px;
    padding:10px clamp(16px,2.2vw,42px);
    grid-template-columns:minmax(0,1fr) minmax(350px,390px);
    column-gap:28px;
  }
  body:has(.integrated-registration) .hero-panel h2 { margin:3px 0 5px;font-size:30px;line-height:1.12; }
  body:has(.integrated-registration) .hero-panel p:last-child { font-size:13px;line-height:1.35; }
  body:has(.integrated-registration) .hero-card { max-width:390px;padding:8px 10px; }
  body:has(.integrated-registration) .hero-card h3 { margin:0 0 5px;padding-bottom:5px;font-size:16px; }
  body:has(.integrated-registration) .hero-work-grid { gap:5px; }
  body:has(.integrated-registration) .hero-work-stat { grid-template-columns:28px minmax(0,1fr);gap:7px;min-height:50px;padding:4px 8px; }
  body:has(.integrated-registration) .hero-work-stat svg { width:23px;height:23px; }
  body:has(.integrated-registration) .hero-work-copy { gap:1px; }
  body:has(.integrated-registration) .hero-work-stat span { font-size:11px; }
  body:has(.integrated-registration) .hero-work-stat strong { font-size:20px; }
  body:has(.integrated-registration) .nav { height:48px;min-height:48px;padding:4px clamp(12px,2vw,36px); }
  body:has(.integrated-registration) .nav a { height:38px;min-height:38px;font-size:13px; }
  body:has(.integrated-registration) .portal-content { padding:10px clamp(16px,2.2vw,42px) 14px; }
}
.integrated-registration { gap:8px; }
.integrated-registration .work-page-header { min-height:0;margin:0;padding:0 0 5px; }
.integrated-registration .work-page-header .eyebrow { margin:0 0 2px;font-size:10px; }
.integrated-registration .work-page-header h2 { margin:0 0 2px;font-size:24px;line-height:1.15; }
.integrated-registration .work-page-header p { margin:0;font-size:12px;line-height:1.3; }
.integrated-registration .integrated-card { padding:12px 14px;border-radius:9px; }
.integrated-registration .registration-kind-card { grid-template-columns:105px minmax(0,1fr);gap:10px; }
.integrated-registration .registration-kind-card h3,
.integrated-registration .integrated-section-title h3,
.integrated-registration .leave-balance-card h3 { font-size:16px;line-height:1.2; }
.integrated-registration .registration-kind-tabs button,
.integrated-registration .integrated-list-tabs button { height:40px;font-size:13px; }
.integrated-registration .integrated-section-title { margin-bottom:7px; }
.integrated-registration .integrated-form { gap:7px 10px; }
.integrated-registration .integrated-form label>span,
.integrated-registration .integrated-form legend { margin-bottom:3px;padding:3px 8px;font-size:13px;line-height:1.25; }
.integrated-registration .integrated-form input,
.integrated-registration .integrated-form select { min-height:34px;height:34px;padding:5px 9px;font-size:13px; }
.integrated-registration .integrated-form textarea { min-height:48px;height:48px;padding:6px 9px;font-size:13px;line-height:1.3;overflow:hidden;resize:none; }
.integrated-registration .integrated-form small { margin-top:2px;font-size:10px;line-height:1.2; }
.integrated-registration .integrated-date-range { gap:5px; }
.integrated-registration .integrated-form-message { min-height:16px;font-size:12px;line-height:1.25; }
.integrated-registration .integrated-actions button { min-width:106px;height:36px;font-size:13px;border-radius:6px; }
.integrated-registration .leave-layout { grid-template-columns:minmax(0,1.7fr) minmax(260px,.6fr);gap:10px; }
.integrated-registration .leave-balance-card dl { margin:7px 0; }
.integrated-registration .leave-balance-card dl div { padding:5px 3px; }
.integrated-registration .leave-balance-card dt { font-size:12px; }
.integrated-registration .leave-balance-card dd { font-size:12px; }
.integrated-registration .leave-balance-card dd strong { font-size:16px; }
.integrated-registration .leave-progress { height:8px; }
.integrated-registration .leave-policy-warning { margin:7px 0 0;padding:6px 8px;font-size:11px; }
.integrated-registration .integrated-list-card { padding-top:0; }
.integrated-registration .integrated-list-tabs { margin:0 -14px 7px; }
.integrated-registration .integrated-list-tabs button { height:38px; }
.integrated-registration .integrated-list-panel>p { margin:4px 0 7px;font-size:12px; }
.integrated-registration .integrated-table-wrap th,
.integrated-registration .integrated-table-wrap td { padding:6px 10px;font-size:12px;line-height:1.25; }
.integrated-registration .secondary-button { min-height:34px;padding:6px 11px;font-size:12px; }
@media (max-width: 1100px) {
  .integrated-registration .leave-layout { grid-template-columns:1fr; }
}
@media (max-width:760px) {
  .integrated-registration .registration-kind-card { grid-template-columns:1fr; }
  .integrated-registration .integrated-card { padding:12px; }
  .integrated-registration .integrated-list-tabs { margin:0 -12px 7px; }
}

/* To Do integrated registration content inside the restored portal shell. */
.integrated-registration-page { width:100%;min-width:0;background:#f7f9fc; }
.integrated-registration-page .integrated-main { min-width:0;padding:20px 0 28px; }
.integrated-page-title h2 { margin:0 0 16px;color:#08284b;font-size:31px;line-height:1.15;letter-spacing:-.03em; }
.integrated-main .integrated-card { border:1px solid #bdcad9;border-radius:7px;box-shadow:none; }
.integrated-main .registration-kind-card { grid-template-columns:140px minmax(0,600px);justify-content:start;margin-bottom:10px;padding:14px 26px; }
.integrated-main .registration-kind-card h3 { font-size:15px; }
.integrated-main .registration-kind-tabs { height:38px;border-radius:5px; }
.integrated-main .registration-kind-tabs button { height:38px;background:#fff; }
.integrated-main .registration-kind-tabs button.active { background:linear-gradient(180deg,#ff5353,#f63232); }
.leave-top-panel { margin-bottom:10px; }
.integrated-main .leave-layout { grid-template-columns:minmax(0,1.85fr) minmax(330px,.95fr);gap:16px; }
.integrated-main .compact-form-card { padding:20px 26px; }
.reference-form { display:grid;gap:0; }
.reference-field { display:grid;grid-template-columns:140px minmax(0,1fr);min-height:54px;margin:0; }
.reference-field>span { display:flex;align-items:center;padding:8px 14px;border:1px solid #cbd6e2;border-bottom:0;background:#edf4fb;color:#163757;font-size:13px;font-weight:800; }
.reference-field:last-of-type>span { border-bottom:1px solid #cbd6e2; }
.reference-field>input,.reference-field>select,.reference-field>textarea,.reference-field>.integrated-date-range,.reference-field>.inline-radio-group { width:100%;min-width:0;margin:0;padding:7px 12px;border:1px solid #cbd6e2;border-bottom:0;border-left:0;border-radius:0;background:#fff;color:#334e68;font:inherit;font-size:13px;box-sizing:border-box; }
.reference-field:last-of-type>input,.reference-field:last-of-type>select,.reference-field:last-of-type>textarea,.reference-field:last-of-type>.integrated-date-range { border-bottom:1px solid #cbd6e2; }
.reference-field>input,.reference-field>select { height:36px;align-self:center;margin:8px 12px;width:calc(100% - 24px);border:1px solid #cbd6e2;border-radius:5px; }
.reference-field>textarea { min-height:54px;height:54px;padding:10px 12px;overflow:hidden;resize:none; }
.reference-field>.integrated-date-range { display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px; }
.reference-field>.integrated-date-range input { width:100%;min-width:0;height:34px;padding:5px 9px;border:1px solid #cbd6e2;border-radius:5px;font:inherit;font-size:12px;box-sizing:border-box; }
.inline-radio-group { display:flex;align-items:center;gap:38px; }
.inline-radio-group label { display:flex;align-items:center;gap:7px;white-space:nowrap; }
.inline-radio-group input { width:18px;height:18px;accent-color:#ff3434; }
.reference-save-row { display:flex;justify-content:center;padding-top:12px; }
.reference-save-row button { min-width:146px;height:40px;border:0;border-radius:6px;background:linear-gradient(180deg,#ff5353,#f63232);color:#fff;font:inherit;font-size:14px;font-weight:800; }
.reference-form .integrated-form-message { min-height:0;margin-top:5px;text-align:center; }
.integrated-main .leave-balance-card { padding:23px 28px; }
.integrated-main .leave-balance-card h3 { padding-bottom:12px;border-bottom:1px solid #bdcad9;font-size:20px; }
.integrated-main .leave-balance-card dl { margin:8px 0; }
.integrated-main .leave-balance-card dl div { padding:9px 0;border:0; }
.integrated-main .leave-balance-card .remaining { margin-top:3px;padding-top:12px;border-top:1px solid #ccd6e1; }
.integrated-main .leave-balance-card .remaining strong { color:#ff3030;font-size:19px; }
.integrated-main .leave-progress { height:12px;background:#d9dde2; }
.integrated-main .leave-progress i { background:#ff3535; }
.leave-progress-caption { display:flex;justify-content:space-between;margin-top:8px;color:#173655;font-size:12px; }
.leave-progress-caption span:first-child { color:#f23c35; }
.integrated-main .integrated-list-card { margin-bottom:10px;padding:0 16px 10px; }
.integrated-main .integrated-list-tabs { display:flex;width:max-content;min-width:360px;margin:0 0 0;border:0;border-bottom:1px solid #c9d4df;border-radius:0;overflow:visible; }
.integrated-main .integrated-list-tabs button { width:120px;height:40px;border:0;border-bottom:2px solid transparent;background:#fff; }
.integrated-main .integrated-list-tabs button.active { border-bottom-color:#ff3b38;background:#fff;color:#f13b36; }
.integrated-main .integrated-table-wrap { padding-top:0; }
.integrated-main .integrated-table-wrap table { min-width:720px; }
.integrated-main .integrated-table-wrap th,.integrated-main .integrated-table-wrap td { padding:8px 10px;border-color:#cbd6e2;font-size:12px; }
.integrated-main .integrated-table-wrap th { background:#eef4fa; }
.todo-list-shortcut { display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:5px 0;font-size:12px; }
.bottom-registration-grid { display:grid;grid-template-columns:1fr 1.08fr;gap:10px;align-items:stretch; }
.integrated-main .bottom-form-card { min-width:0;padding:0 16px 12px; }
.integrated-main .bottom-form-card>h3 { margin:0 -16px 7px;padding:9px 16px;border-bottom:1px solid #cbd6e2;background:#edf4fb;font-size:15px; }
.bottom-form-card .reference-field { grid-template-columns:138px minmax(0,1fr);min-height:38px; }
.bottom-form-card .reference-field>span { padding:5px 10px;font-size:12px; }
.bottom-form-card .reference-field>input,.bottom-form-card .reference-field>select { height:30px;margin:4px 9px;width:calc(100% - 18px);padding:4px 8px;font-size:12px; }
.bottom-form-card .reference-field>textarea { min-height:50px;height:50px;padding:7px 9px;font-size:12px; }
.bottom-form-card .reference-field>.integrated-date-range { padding:4px 9px; }
.bottom-form-card .reference-field>.integrated-date-range input { height:30px;padding:3px 7px; }
.bottom-form-card .reference-save-row { padding-top:9px; }
.bottom-form-card .reference-save-row button { min-width:138px;height:36px;font-size:13px; }
.bottom-form-card.is-focused { border-color:#ff4a43;box-shadow:0 0 0 2px rgba(255,74,67,.08); }
@media(max-width:1200px){.integrated-registration-page .integrated-main{padding:18px 0}.integrated-main .leave-layout,.bottom-registration-grid{grid-template-columns:1fr}.integrated-main .registration-kind-card{grid-template-columns:110px minmax(0,1fr)}}
@media(max-width:700px){.integrated-main{padding:14px 10px}.integrated-page-title h2{font-size:25px}.integrated-main .registration-kind-card{grid-template-columns:1fr;padding:12px}.reference-field,.bottom-form-card .reference-field{grid-template-columns:1fr}.reference-field>span{border-bottom:0}.reference-field>input,.reference-field>select{margin:6px 8px;width:calc(100% - 16px)}.inline-radio-group{gap:14px;flex-wrap:wrap}.integrated-main .integrated-list-tabs{width:100%;min-width:0}.integrated-main .integrated-list-tabs button{width:auto;flex:1}}

/* To Do integrated registration, scoped to this page. */
.integrated-registration{width:100%;display:grid;gap:16px;color:var(--navy)}
.integrated-title{margin-bottom:0}.integrated-card{padding:20px;border:1px solid #cbd7e2;border-radius:12px;background:#fff;box-shadow:0 5px 16px rgba(6,40,74,.05)}
.registration-kind-card{display:grid;grid-template-columns:130px minmax(0,1fr);align-items:center;gap:18px}.registration-kind-card h3,.integrated-section-title h3,.leave-balance-card h3{margin:0;font-size:18px}
.registration-kind-tabs,.integrated-list-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid #b9c8d6;border-radius:8px;overflow:hidden}.registration-kind-tabs button,.integrated-list-tabs button{height:44px;border:0;border-right:1px solid #b9c8d6;border-radius:0;background:#f5f8fa;color:#405773;font:inherit;font-weight:800}.registration-kind-tabs button:last-child,.integrated-list-tabs button:last-child{border-right:0}.registration-kind-tabs button.active,.integrated-list-tabs button.active{background:var(--primary);color:#fff}
.registration-panels,.registration-panel{min-width:0}.registration-panel.active{display:block}.integrated-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.integrated-section-title span{color:#6b7f93;font-size:12px}
.integrated-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.integrated-form label,.integrated-form fieldset{min-width:0;margin:0;padding:0;border:0}.integrated-form label>span,.integrated-form legend{display:block;width:100%;margin:0 0 6px;padding:7px 10px;border-radius:5px;background:#eaf0f5;color:#294763;font-size:13px;font-weight:800}.integrated-form input,.integrated-form select,.integrated-form textarea{width:100%;min-width:0;min-height:42px;padding:9px 11px;border:1px solid #c9d5e0;border-radius:7px;background:#fff;color:#263d53;font:inherit;font-size:14px;box-sizing:border-box}.integrated-form textarea{resize:vertical}.integrated-form small{display:block;margin-top:5px;color:#718397;font-size:11px}.integrated-form .span-2,.integrated-form .span-all{grid-column:span 2}.integrated-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px}.integrated-date-range b{font-weight:500;color:#789}
.integrated-actions{display:flex;justify-content:flex-end}.integrated-actions button{min-width:118px;height:42px;border:0;border-radius:7px;background:var(--primary);color:#fff;font:inherit;font-size:14px;font-weight:800}.integrated-form-message{min-height:20px;color:#60758c;font-size:13px}.integrated-form-message.success{color:#16834b}.integrated-form-message.error{color:#c93425}
.leave-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr);gap:16px}.leave-balance-card dl{display:grid;gap:0;margin:15px 0}.leave-balance-card dl div{display:flex;align-items:center;justify-content:space-between;padding:10px 4px;border-bottom:1px solid #e2e8ef}.leave-balance-card dt{color:#60758c}.leave-balance-card dd{margin:0;font-weight:800}.leave-balance-card dd strong{font-size:20px}.leave-progress{height:12px;overflow:hidden;border-radius:999px;background:#dfe7ee}.leave-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0d6ba8,#22a6a1)}.leave-policy-warning{padding:10px;border-radius:7px;background:#fff3e8;color:#b64b23;font-size:12px;font-weight:750}
.integrated-list-card{padding-top:0}.integrated-list-tabs{margin:0 -20px 16px;border-width:0 0 1px;border-radius:12px 12px 0 0}.integrated-list-tabs button{height:48px}.integrated-list-panel{min-width:0}.integrated-table-wrap{width:100%;overflow-x:auto}.integrated-table-wrap table{width:100%;min-width:760px;border-collapse:collapse;table-layout:fixed}.integrated-table-wrap th,.integrated-table-wrap td{padding:10px 9px;border:1px solid #d4dee7;font-size:13px;text-align:center;vertical-align:middle}.integrated-table-wrap th{background:#e9f0f5;color:#24435f;font-weight:800}.integrated-table-wrap td:nth-child(4){text-align:left}
@media(max-width:760px){.registration-kind-card{grid-template-columns:1fr}.leave-layout{grid-template-columns:1fr}.integrated-form{grid-template-columns:1fr}.integrated-form .span-2,.integrated-form .span-all{grid-column:auto}.integrated-card{padding:15px}.integrated-list-tabs{margin:0 -15px 14px}}

* { box-sizing: border-box; }
html, body {
  width: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
}
body {
  font-family: 'Noto Sans KR', 'Segoe UI', sans-serif;
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
  color: var(--text);
}
.page-shell { width: 100%; max-width: none; margin-left: 0; margin-right: 0; padding: 0; box-sizing: border-box; }
.site-header {
  display: flex; justify-content: space-between; align-items: center;
  min-height: 88px; padding: 14px 4px; background: white; color: var(--navy);
  border-bottom: 1px solid var(--border);
}
.brand-block { display: flex; align-items: center; gap: 20px; min-width: 0; color: inherit; text-decoration: none; cursor: pointer; }
.brand-logo { display: block; width: 190px; height: 58px; object-fit: contain; object-position: left center; }
.brand-divider { width: 1px; height: 34px; flex: 0 0 1px; background: #cbd5e1; }
.brand-mark {
  width: 48px; height: 48px; border-radius: 14px; background: linear-gradient(135deg, var(--primary), #ff7a61);
  display: grid; place-items: center; font-size: 24px; font-weight: 800; color: white;
}
.site-header h1 { margin: 0; color: var(--navy); font-size: 20px; letter-spacing: .12em; white-space: nowrap; }
.eyebrow { margin: 0 0 4px; font-size: 12px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #f9b8ae; }
.userbox { display: flex; gap: 0; align-items: center; min-width: 0; color: #475569; font-size: 14px; white-space: nowrap; }
.userbox > span,
.userbox > a,
.userbox > button { position: relative; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; min-height: 36px; margin: 0; padding: 0 14px; line-height: 1; white-space: nowrap; }
.userbox > :first-child { padding-left: 0; }
.userbox > :not(:first-child)::before { content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 16px; background: var(--border); transform: translateY(-50%); }
.userbox a,
.userbox button { border: 0; background: none; text-decoration: none; color: var(--navy); font: inherit; font-weight: 700; cursor: pointer; }
.hero-panel {
  display: grid; grid-template-columns: 1.7fr 0.9fr; gap: 18px;
  position: relative; isolation: isolate; overflow: hidden; align-items: center; min-height: 350px;
  background: url('/static/smart-office-hero.png') center 52% / cover no-repeat; color: white;
  border-radius: 0 0 22px 22px; padding: 46px 48px; box-shadow: 0 18px 40px rgba(6, 40, 74, 0.18);
}
.hero-panel::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,27,52,.92) 0%, rgba(6,40,74,.82) 48%, rgba(6,40,74,.55) 100%); }
.hero-copy { max-width: 760px; }
.hero-panel h2 { font-size: 30px; margin: 6px 0 10px; line-height: 1.25; }
.hero-panel p { color: #dbe4f0; margin: 0; }
.hero-card {
  background: rgba(6,40,74,.74); border: 1px solid rgba(255,255,255,.22);
  border-radius: 18px; padding: 18px; backdrop-filter: blur(10px);
}
.hero-card h3 { margin-top: 0; }
.hero-card ul { padding-left: 18px; color: #f1f5f9; line-height: 1.9; }
.nav { display: flex; gap: 4px; flex-wrap: wrap; padding: 10px 8px; margin: 18px 0 24px; background: white; border: 1px solid var(--border); border-radius: 14px; box-shadow: 0 8px 24px rgba(6,40,74,.06); }
.nav a {
  text-decoration: none; color: var(--navy); background: transparent;
  padding: 10px 14px; border-radius: 9px; border: 0; font-weight: 700;
}
.nav a:hover { background: #f2f6fa; }
.nav .nav-home { background: var(--primary); color: white; }
.content-area { margin-top: 8px; }
.card {
  background: var(--surface); border: 1px solid #e6ebf1; border-radius: 16px; padding: 22px;
  box-shadow: 0 10px 28px rgba(6, 40, 74, 0.07);
}
.grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-bottom: 20px; }
.stat { position: relative; overflow: hidden; background: #fff; color: var(--navy); transition: transform .2s, border-color .2s, box-shadow .2s; }
.stat h3 { margin: 14px 0 8px; font-size: 16px; color: var(--navy); }
.stat strong { font-size: 28px; color: var(--primary); display: block; }
.stat p { color: var(--muted); margin: 8px 0 0; }
.home-link-card { color: inherit; text-decoration: none; }
.home-link-card:hover { border-color: rgba(240,74,56,.55); transform: translateY(-3px); box-shadow: 0 15px 32px rgba(6,40,74,.12); }
.feature-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #edf4f9; color: var(--navy-secondary); }
.feature-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.home-latest { position: relative; overflow: hidden; padding: 24px; border-radius: 20px; background-color: var(--navy); }
.home-latest::before { content: ""; position: absolute; inset: 0; opacity: .11; background-image: linear-gradient(30deg, transparent 46%, #fff 47% 48%, transparent 49%), linear-gradient(150deg, transparent 46%, #fff 47% 48%, transparent 49%), radial-gradient(circle at 70% 35%, transparent 0 38px, #fff 39px 40px, transparent 41px); background-size: 90px 52px, 90px 52px, 180px 180px; pointer-events: none; }
.home-latest > .card { position: relative; z-index: 1; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 10px; text-align: left; border-bottom: 1px solid var(--border); }
.contacts-table { min-width: 720px; table-layout: fixed; }
.contacts-table th,
.contacts-table td { width: 25%; }
form { display: flex; flex-direction: column; gap: 8px; }
input, select, textarea, button { padding: 10px; border-radius: 10px; border: 1px solid var(--border); font-size: 14px; }
button { background: var(--primary); color: white; border: none; cursor: pointer; }
/* Keep the generic brand hover as a low-priority fallback. Page and component
   styles must win for neutral controls, overlays, close buttons, and edits. */
button:where(:not(.project-list-item):not(.popup-backdrop)):hover {
  background: var(--primary-dark);
}
.popup-backdrop { background: rgba(15, 23, 42, .38); opacity: 1; filter: none; mix-blend-mode: normal; }
.login-shell { display: grid; place-items: center; min-height: 70vh; }
.login-card { width: min(460px, 100%); }
.flash-list { margin: 12px 0 20px; }
.flash { padding: 10px 12px; border-radius: 12px; margin-bottom: 8px; }
.flash.success { background: #ecfdf3; color: #047857; }
.flash.danger { background: #fef2f2; color: #b91c1c; }
.flash.warning { background: #fffbeb; color: #b45309; }
.flash.info { background: #eff6ff; color: #1d4ed8; }
.hint { color: var(--muted); font-size: 13px; margin-top: 12px; }
a { color: var(--primary); }
.list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.list li { padding: 10px 0; border-bottom: 1px solid var(--border); display: flex; flex-direction: column; gap: 4px; }
.list li span { color: var(--muted); font-size: 13px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.section-heading h2, .section-heading h3 { margin: 4px 0; }
.section-copy { margin: 4px 0 0; color: var(--muted); }
.eyebrow.dark { color: var(--primary); }
.document-feature {
  display: flex; gap: 18px; align-items: center; padding: 20px; margin-bottom: 24px;
  color: inherit; text-decoration: none; border: 1px solid #fecaca; border-radius: 18px;
  background: linear-gradient(135deg, #fff7f5, #fff); transition: transform .2s, box-shadow .2s;
}
.document-feature:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(236,64,47,.12); }
.file-icon { min-width: 66px; height: 66px; display: grid; place-items: center; border-radius: 16px; background: #16834b; color: white; font-size: 13px; font-weight: 800; }
.document-feature h3 { margin: 7px 0; font-size: 20px; }
.document-feature p { margin: 0 0 8px; color: var(--muted); }
.badge { display: inline-block; padding: 4px 9px; border-radius: 999px; background: #fee2e2; color: #b42318; font-size: 12px; font-weight: 700; }
.feature-meta { color: var(--primary); font-size: 13px; font-weight: 700; }
.analysis-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 18px; }
.analysis-header h2 { margin: 5px 0 8px; font-size: 30px; }
.analysis-header p { color: var(--muted); margin: 0; }
.calculator-panel { margin-bottom: 16px; border-color: #fecaca; }
.calculator-form { gap: 18px; }
.input-grid { display: grid; grid-template-columns: repeat(2, minmax(160px, 1fr)); gap: 12px; align-content: start; }
.section-dim-grid { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr); gap: 12px 24px; align-content: start; }
.section-dim-grid.compact { max-width: 860px; }
.section-shape-field { grid-column: 1 / -1; }
.section-dim-column { display: grid; gap: 12px; align-content: start; }
.calc-field { display: flex; flex-direction: column; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.calc-field { padding: 7px; margin: -7px; border: 1px solid transparent; border-radius: 12px; transition: background .2s, border .2s, transform .2s; }
.calc-field.model-active { background: #fff7ed; border-color: #fb923c; transform: translateY(-1px); }
.input-with-unit { position: relative; }
.input-with-unit input { width: 100%; padding-right: 110px; background: #f8fafc; color: var(--navy); font-size: 16px; font-weight: 700; }
.input-with-unit input:focus { outline: 2px solid #fda49a; border-color: var(--primary); background: white; }
.input-with-unit em { position: absolute; right: 11px; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 12px; font-style: normal; font-weight: 500; }
.calculator-actions { display: flex; align-items: center; justify-content: flex-end; gap: 16px; padding-top: 4px; }
.calculator-actions span { color: var(--muted); font-size: 13px; }
.calculator-actions button { padding: 12px 20px; font-weight: 800; }
.secondary-button { border: 1px solid var(--border); background: white; color: var(--navy); font-weight: 800; }
.secondary-button:hover { border-color: var(--primary); background: #fff7f5; color: var(--primary-dark); }
.calculation-history { margin-bottom: 16px; }
.history-button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.history-button { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; min-width: 170px; padding: 9px 11px; border-radius: 10px; text-decoration: none; }
.history-button span { grid-row: span 2; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; background: #f1f5f9; color: var(--muted); font-size: 12px; }
.history-button strong { color: var(--navy); font-size: 13px; }
.history-button em { color: var(--muted); font-size: 12px; font-style: normal; }
.back-link { display: inline-block; margin-bottom: 18px; color: var(--muted); text-decoration: none; }
.button-link { display: inline-block; white-space: nowrap; padding: 11px 15px; border-radius: 10px; background: var(--primary); color: white; text-decoration: none; font-weight: 700; }
.analysis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.analysis-grid h3, .analysis-section h3 { margin-top: 0; }
.metric-list { display: grid; gap: 2px; }
.metric-list > div { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 0; border-bottom: 1px solid var(--border); }
.metric-list span { color: var(--muted); }
.metric-list strong { color: var(--navy); font-size: 19px; }
small { font-size: .7em; color: var(--muted); font-weight: 500; }
.analysis-section { margin-top: 16px; }
.section-result-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 72px; row-gap: 8px; }
.section-result-column { min-width: 0; align-content: start; }
.embedded-section-result { margin-top: 18px; }
.motor-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.motor-card { border: 1px solid var(--border); border-radius: 16px; padding: 17px; background: #fbfdff; }
.motor-title { display: flex; justify-content: space-between; align-items: center; }
.motor-title h4 { margin: 0; }
.status { padding: 4px 9px; border-radius: 999px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.status.ok { background: #dcfce7; color: #15803d; }
.status.warn { background: #fef3c7; color: #b45309; }
.motor-power { display: block; margin: 15px 0 10px; color: var(--navy); font-size: 27px; }
.capacity-bar { height: 8px; overflow: hidden; border-radius: 99px; background: #e2e8f0; }
.capacity-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #fb7185, var(--primary)); }
.motor-card p { margin: 9px 0 0; color: var(--muted); font-size: 13px; }
.check-list { display: grid; }
.check-row { display: grid; grid-template-columns: 34px 1fr auto auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--border); }
.check-mark { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #dcfce7; color: #15803d; font-weight: 900; }
.check-row p { color: var(--muted); margin: 3px 0 0; font-size: 13px; }
.check-value { color: var(--navy); font-size: 20px; font-weight: 800; }
.analysis-note { padding: 12px 14px; margin: 16px 0 0; background: #f8fafc; border-radius: 10px; color: var(--muted); font-size: 13px; }
.sheet-picker { display: block; }
.sheet-picker select { min-width: 180px; background: white; }
.preview-table td:first-child { width: 60px; color: var(--muted); }
.preview-table td:nth-child(2) { font-family: Consolas, monospace; font-size: 13px; }
.tech-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.tech-header h2 { margin: 5px 0; font-size: 30px; }
.tech-header p { margin-bottom: 0; color: var(--muted); }
.upload-toggle { padding: 12px 17px; font-weight: 800; }
.upload-panel { display: none; margin-bottom: 16px; border-color: #fecaca; }
.upload-panel.open { display: block; }
.beam-layout { display: grid; grid-template-columns: minmax(320px, .9fr) 1.4fr; gap: 18px; align-items: stretch; }
.beam-visual { display: grid; align-items: center; min-height: 260px; padding: 28px; border: 1px solid var(--border); border-radius: 16px; background: #f8fafc; }
.beam-line { position: relative; height: 8px; border-radius: 99px; background: var(--navy); }
.beam-line.cantilever { margin-left: 22px; }
.fixed-support { position: absolute; left: -20px; top: -54px; width: 18px; height: 116px; border-radius: 4px; background: repeating-linear-gradient(-45deg, #64748b 0 5px, #cbd5e1 5px 10px); }
.pin-support { position: absolute; bottom: -34px; width: 0; height: 0; border-left: 15px solid transparent; border-right: 15px solid transparent; border-bottom: 28px solid #64748b; transform: translateX(-50%); }
.pin-support.left { left: 0; }
.pin-support.right { left: 100%; }
.point-load { position: absolute; top: -58px; transform: translateX(-50%); color: var(--primary); font-size: 44px; font-weight: 900; line-height: 1; }
.point-load-layer { position: absolute; inset: 0; pointer-events: none; }
.point-load-layer span { position: absolute; top: -58px; transform: translateX(-50%); color: var(--primary); font-size: 44px; font-weight: 900; line-height: 1; }
.udl-load { position: absolute; left: 5%; right: 5%; top: -52px; display: flex; justify-content: space-between; color: var(--primary); font-size: 30px; font-weight: 900; letter-spacing: .2em; overflow: hidden; }
.support-layer { position: absolute; inset: 0; pointer-events: none; }
.support-layer .pin-support { bottom: -34px; }
.distributed-load-layer { position: absolute; inset: 0; pointer-events: none; }
.distributed-load-segment { position: absolute; top: -50px; display: flex; align-items: flex-end; justify-content: space-between; min-width: 18px; height: 44px; overflow: hidden; color: var(--primary); }
.distributed-load-segment i { display: block; font-style: normal; font-weight: 900; line-height: 1; }
.load-panel { padding-top: 14px; border-top: 1px solid var(--border); }
.compact-heading { margin-bottom: 10px; }
.point-load-grid { display: grid; gap: 10px; }
.point-load-row { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(160px, 1fr) auto; gap: 12px; align-items: end; }
.point-load-row button { height: 42px; }
.support-grid { display: grid; grid-template-columns: repeat(2, minmax(180px, 1fr)); gap: 10px; }
.support-row { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: end; }
.support-row button { height: 42px; }
.distributed-load-grid { display: grid; gap: 10px; }
.distributed-load-row { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)) auto; gap: 12px; align-items: end; }
.distributed-load-row button { height: 42px; }
.beam-visual[data-beam-type="cantilever"] .pin-support,
.beam-visual[data-beam-type="simple"] .fixed-support,
.beam-visual[data-load-type="point"] .udl-load,
.beam-visual[data-load-type="udl"] .point-load,
.beam-visual[data-load-type="udl"] .point-load-layer { display: none; }
.three-cols { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
.review-metrics { column-gap: 72px; }
.tackle-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(320px, .85fr); gap: 24px; align-items: start; }
.tackle-input-panel { display: grid; gap: 14px; }
.tackle-input-panel h3 { margin: 8px 0 0; color: var(--navy); }
.wire-catalog-grid { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(120px, .55fr); gap: 12px; }
.wire-catalog-item { grid-column: 1 / -1; }
.tackle-result-panel { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--border); border-radius: 16px; background: #fbfdff; }
.tackle-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-radius: 14px; font-weight: 900; }
.tackle-status span { color: var(--muted); font-size: 13px; }
.tackle-status strong { font-size: 28px; }
.tackle-status.ok { background: #dcfce7; color: #15803d; }
.tackle-status.warn { background: #fef2f2; color: #b91c1c; }
.lug-reference-panel {
  display: grid;
  place-items: center;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: white;
  overflow: auto;
}
.lug-reference-panel img {
  display: block;
  max-width: 100%;
  height: auto;
  image-rendering: auto;
}
.hinge-reference-panel {
  max-width: 760px;
  margin: 0 auto;
}
.hinge-reference-panel img {
  max-height: 460px;
  object-fit: contain;
}
.status-ok { color: #15803d; }
.status-fail { color: #b91c1c; }
.analysis-note-list { margin: 0; padding-left: 20px; color: var(--muted); line-height: 1.7; }
.hinge-type-fields[hidden] { display: none !important; }
.hinge-input-group { display: grid; gap: 10px; margin-top: 10px; }
.hinge-input-title { margin: 0; color: var(--muted); font-size: 13px; font-weight: 900; text-transform: uppercase; letter-spacing: 0; }
.prepared-row { margin-bottom: 16px; padding: 12px; border: 1px solid var(--border); border-radius: 12px; background: #f8fafc; }
.prepared-field { max-width: 420px; }
.hinge-reference-card { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--border); }
.hinge-reference-card h3 { margin: 0; color: var(--navy); }
.hinge-reference-card img { width: 100%; max-height: 560px; object-fit: contain; border: 1px solid var(--border); border-radius: 12px; background: white; }
.hinge-reference-card img[hidden] { display: none !important; }
.hinge-sheet-stack { display: grid; gap: 18px; }
.hinge-sheet-section { border: 1px solid var(--border); border-radius: 10px; overflow: hidden; background: white; }
.hinge-sheet-section h4 { margin: 0; padding: 10px 14px; background: #1f3864; color: white; font-size: 14px; font-weight: 900; }
.hinge-sheet-table { min-width: 860px; }
.hinge-sheet-table th { background: #d9e1f2; color: #17365d; }
.hinge-sheet-table td { text-align: right; white-space: nowrap; }
.hinge-sheet-table th:first-child,
.hinge-sheet-table td:first-child,
.hinge-sheet-table th:nth-child(5),
.hinge-sheet-table td:nth-child(5) { text-align: left; }
.hinge-sheet-table td:nth-child(2),
.hinge-sheet-table th:nth-child(2),
.hinge-sheet-table td:nth-child(4),
.hinge-sheet-table th:nth-child(4),
.hinge-sheet-table td:nth-child(6),
.hinge-sheet-table th:nth-child(6) { text-align: center; }
.warn-note { background: #fffbeb; color: #92400e; }
.lug-dimension-table th,
.lug-dimension-table td { white-space: nowrap; text-align: right; }
.lug-dimension-table th:first-child,
.lug-dimension-table td:first-child,
.lug-dimension-table th:nth-child(2),
.lug-dimension-table td:nth-child(2) { text-align: left; }
.wire-drum-table th:nth-child(2), .wire-drum-table th:nth-child(3),
.wire-drum-table td:nth-child(2), .wire-drum-table td:nth-child(3) { text-align: right; }
.wire-drum-table .total-row td { font-weight: 900; color: var(--navy); background: #f8fafc; }
.section-dim-panel { padding-top: 10px; border-top: 1px solid var(--border); }
.section-calc-layout { display: grid; grid-template-columns: minmax(260px, .7fr) 1.5fr; gap: 18px; align-items: stretch; }
.section-sketch { display: grid; place-items: center; min-height: 250px; padding: 12px; border: 1px solid var(--border); border-radius: 16px; background: #f8fafc; }
.section-shape-image { width: min(100%, 460px); max-height: 340px; object-fit: contain; image-rendering: auto; }
.section-shape { --line: #020617; position: relative; width: 150px; height: 150px; background: transparent; }
.section-shape::before,
.section-shape::after { content: ""; position: absolute; box-sizing: border-box; }
.section-shape.rectangle { border: 3px solid var(--line); }
.section-shape.solid_round { border: 3px solid var(--line); border-radius: 50%; }
.section-shape.solid_round::before,
.section-shape.pipe::before { left: 16px; right: 16px; top: 50%; height: 2px; background: var(--line); transform: rotate(-42deg); transform-origin: center; }
.section-shape.pipe { border: 3px solid var(--line); border-radius: 50%; }
.section-shape.pipe::after { inset: 15px; border: 3px solid var(--line); border-radius: 50%; }
.section-shape.box { border: 6px double var(--line); border-radius: 18px; }
.section-shape.box_section { width: 168px; border-top: 10px double var(--line); border-bottom: 10px double var(--line); }
.section-shape.box_section::before { left: 30px; top: 9px; bottom: 9px; width: 12px; border-right: 5px solid var(--line); border-left: 5px solid var(--line); }
.section-shape.box_section::after { right: 30px; top: 9px; bottom: 9px; width: 12px; border-right: 5px solid var(--line); border-left: 5px solid var(--line); }
.section-shape.i_section { width: 168px; border-top: 10px double var(--line); border-bottom: 10px double var(--line); }
.section-shape.i_section::before { left: calc(50% - 5px); top: 9px; bottom: 9px; width: 10px; background: var(--line); }
.section-shape.channel { width: 142px; border-top: 10px double var(--line); border-bottom: 10px double var(--line); border-left: 10px double var(--line); }
.section-shape.channel::before { left: 0; top: 16px; bottom: 16px; width: 15px; border-right: 3px solid var(--line); }
.section-shape.tee { width: 168px; border-top: 10px double var(--line); }
.section-shape.tee::before { left: calc(50% - 6px); top: 9px; bottom: 0; width: 12px; background: var(--line); }
.section-shape.angle { border-left: 10px double var(--line); border-bottom: 10px double var(--line); }
.dim-label { position: absolute; z-index: 2; display: none; align-items: center; justify-content: center; color: #2563eb; font-size: 13px; font-weight: 900; line-height: 1; text-align: center; text-shadow: -2px 0 #f8fafc, 0 2px #f8fafc, 2px 0 #f8fafc, 0 -2px #f8fafc; }
.dim-label::before { content: ""; position: absolute; z-index: -1; background: currentColor; }
.dim-label::after { content: ""; position: absolute; z-index: -1; }
.dim-b { left: 0; right: 0; top: -34px; height: 20px; }
.dim-bi { left: 28%; right: 28%; top: 54px; height: 20px; }
.dim-d { left: 11%; right: 11%; top: 50%; height: 20px; transform: translateY(-50%); }
.dim-tf { left: 50%; top: 7px; width: 62px; height: 20px; transform: translateX(-50%); }
.dim-tw { left: 50%; top: 50%; width: 54px; height: 20px; transform: translate(-50%, -50%); }
.dim-t { right: -5px; top: 17px; width: 54px; height: 20px; }
.dim-h { top: 0; bottom: 0; right: -46px; width: 24px; writing-mode: vertical-rl; }
.dim-b::before,
.dim-bi::before,
.dim-d::before,
.dim-t::before,
.dim-tw::before,
.dim-tf::before { left: 0; right: 0; top: 50%; height: 1px; }
.dim-b::after,
.dim-bi::after,
.dim-d::after,
.dim-t::after,
.dim-tw::after,
.dim-tf::after { left: 0; right: 0; top: calc(50% - 4px); height: 8px; background: linear-gradient(45deg, transparent 42%, currentColor 43% 57%, transparent 58%) left center / 8px 8px no-repeat, linear-gradient(-45deg, transparent 42%, currentColor 43% 57%, transparent 58%) right center / 8px 8px no-repeat; }
.dim-t::before,
.dim-t::after,
.dim-tw::before,
.dim-tw::after,
.dim-tf::before,
.dim-tf::after { display: none; }
.dim-h::before { top: 0; bottom: 0; left: 50%; width: 1px; }
.dim-h::after { top: 0; bottom: 0; left: calc(50% - 4px); width: 8px; background: linear-gradient(135deg, transparent 42%, currentColor 43% 57%, transparent 58%) top center / 8px 8px no-repeat, linear-gradient(45deg, transparent 42%, currentColor 43% 57%, transparent 58%) bottom center / 8px 8px no-repeat; }
.section-sketch[data-shape="rectangle"] .dim-b,
.section-sketch[data-shape="rectangle"] .dim-h,
.section-sketch[data-shape="box"] .dim-b,
.section-sketch[data-shape="box"] .dim-h,
.section-sketch[data-shape="box"] .dim-t,
.section-sketch[data-shape="box_section"] .dim-b,
.section-sketch[data-shape="box_section"] .dim-bi,
.section-sketch[data-shape="box_section"] .dim-h,
.section-sketch[data-shape="box_section"] .dim-tw,
.section-sketch[data-shape="box_section"] .dim-tf,
.section-sketch[data-shape="i_section"] .dim-b,
.section-sketch[data-shape="i_section"] .dim-h,
.section-sketch[data-shape="i_section"] .dim-tw,
.section-sketch[data-shape="i_section"] .dim-tf,
.section-sketch[data-shape="channel"] .dim-b,
.section-sketch[data-shape="channel"] .dim-h,
.section-sketch[data-shape="channel"] .dim-tw,
.section-sketch[data-shape="channel"] .dim-tf,
.section-sketch[data-shape="tee"] .dim-b,
.section-sketch[data-shape="tee"] .dim-h,
.section-sketch[data-shape="tee"] .dim-tw,
.section-sketch[data-shape="tee"] .dim-tf,
.section-sketch[data-shape="angle"] .dim-b,
.section-sketch[data-shape="angle"] .dim-h,
.section-sketch[data-shape="angle"] .dim-t,
.section-sketch[data-shape="solid_round"] .dim-d,
.section-sketch[data-shape="pipe"] .dim-d,
.section-sketch[data-shape="pipe"] .dim-t { display: flex; }
.section-dim-active { background: #fff7f5; border-color: #fecaca; }
.section-dim-muted { opacity: .45; }
.upload-form { display: grid; grid-template-columns: 1.3fr .8fr 1.6fr 1.2fr auto; align-items: end; gap: 12px; }
.upload-form label { display: flex; flex-direction: column; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.upload-form button { height: 40px; font-weight: 800; }
.tech-search { display: grid; grid-template-columns: minmax(0, 1fr) minmax(110px, auto); gap: 12px; width: 100%; margin-bottom: 18px; }
.tech-search input { width: 100%; height: 58px; padding: 0 20px; font-size: 18px; box-sizing: border-box; }
.tech-search button { min-width: 110px; height: 58px; padding: 0 22px; font-size: 16px; font-weight: 800; }
.tech-list { display: flex; flex-direction: column; }
.tech-item { display: grid; grid-template-columns: 42px 152px minmax(0, 1fr) auto; gap: 22px; align-items: center; min-height: 140px; padding: 18px 0; border-bottom: 1px solid var(--border); }
.calculator-thumbnail { display: block; width: 152px; height: 96px; object-fit: cover; object-position: center; border: 1px solid #b8c7d6; border-radius: 11px; background: #e8eef4; }
.sequence { color: #94a3b8; font-size: 14px; font-weight: 800; }
.tech-item-copy h3 { margin: 7px 0 5px; color: var(--navy); }
.tech-item-copy p { margin: 0 0 7px; color: var(--muted); }
.tech-item-copy > span { color: #94a3b8; font-size: 12px; }
.calculator-badge { margin-left: 5px; color: #166534; background: #dcfce7; }
.tech-actions { display: flex; align-items: center; gap: 10px; }
.tech-actions a { white-space: nowrap; font-size: 13px; font-weight: 700; }
.tech-actions .button-link { color: white; }
.missing-file { color: #b91c1c; font-size: 12px; }
.empty-state { padding: 40px; text-align: center; color: var(--muted); }
.button-link.compact { padding: 8px 11px; font-size: 13px; }
.muted-text { color: var(--muted); }
.catalogue-panel { display: grid; gap: 14px; }
.catalogue-search { display: grid; grid-template-columns: minmax(240px, 1fr) auto auto; gap: 10px; align-items: end; }
.catalogue-search label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 800; }
.catalogue-search input[type="text"], .catalogue-search input[name="q"] { min-height: 38px; border: 1px solid var(--border); border-radius: 8px; }
.catalogue-search button, .catalogue-search .secondary-button { min-height: 38px; padding: 9px 13px; border-radius: 8px; font-size: 13px; font-weight: 900; }
.catalogue-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font-weight: 800; }
.catalogue-breadcrumbs a { color: var(--primary-dark); text-decoration: none; }
.catalogue-search-summary { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; color: var(--navy); }
.catalogue-search-summary span { color: var(--muted); font-size: 12px; font-weight: 800; }
.catalogue-results { display: grid; gap: 8px; }
.catalogue-result { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: 8px; background: #fff; }
.catalogue-result-kind { display: inline-block; margin-bottom: 5px; color: var(--primary-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.catalogue-result strong { display: block; color: var(--navy); overflow-wrap: anywhere; }
.catalogue-result p { margin: 5px 0; color: var(--muted); line-height: 1.45; }
.catalogue-result small { color: #94a3b8; }
.catalogue-result-actions a { color: var(--primary-dark); font-weight: 900; text-decoration: none; }
.catalogue-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.catalogue-item { display: grid; gap: 8px; min-height: 96px; padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: #fff; color: var(--navy); text-decoration: none; }
.catalogue-item.folder { background: #f8fafc; }
.catalogue-item.folder::before { content: "Folder"; color: var(--primary-dark); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.catalogue-item.file::before { content: "File"; color: var(--muted); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.catalogue-item strong { overflow-wrap: anywhere; }
.catalogue-item span { color: var(--muted); font-size: 12px; }
.catalogue-open-link { display: grid; gap: 6px; color: var(--navy); text-decoration: none; }
.catalogue-summary-button { justify-self: start; min-height: 30px; padding: 6px 10px; border: 1px solid #bfdbfe; border-radius: 8px; background: #eff6ff; color: var(--primary-dark); font-size: 12px; font-weight: 900; }
.catalogue-summary-dialog { width: min(560px, calc(100vw - 32px)); border: 0; border-radius: 10px; padding: 0; box-shadow: 0 24px 80px rgba(15, 23, 42, .28); }
.catalogue-summary-dialog::backdrop { background: rgba(15, 23, 42, .38); }
.catalogue-summary-modal { display: grid; gap: 18px; padding: 22px; background: #fff; }
.catalogue-summary-modal h3 { margin: 4px 0 8px; color: var(--navy); font-size: 24px; }
.catalogue-summary-main { margin: 0; color: #334155; line-height: 1.6; }
.catalogue-summary-samples { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: 8px; background: #f8fafc; }
.catalogue-summary-samples ul { margin: 0; padding-left: 18px; color: var(--muted); line-height: 1.7; }
.catalogue-engineer-note { display: grid; gap: 7px; margin-top: 12px; color: var(--muted); font-size: 12px; font-weight: 900; }
.catalogue-engineer-note textarea { width: 100%; min-height: 120px; border: 1px solid var(--border); border-radius: 8px; resize: vertical; line-height: 1.5; }
.catalogue-summary-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; }
.catalogue-summary-actions a, .catalogue-summary-actions button { min-height: 36px; padding: 9px 12px; border-radius: 8px; font-size: 13px; font-weight: 900; text-decoration: none; }
.catalogue-summary-actions a { background: var(--primary); color: white; }
.catalogue-summary-actions button { border: 1px solid var(--border); background: white; color: var(--navy); }
.catalogue-note-status { min-width: 60px; color: var(--muted); font-size: 12px; font-weight: 900; }
.drawing-tool { display: grid; gap: 18px; border-radius: 12px; }
.drawing-title-row { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.drawing-title-row h3 { margin: 4px 0 0; color: var(--navy); font-size: 24px; }
.drawing-title-row button { min-height: 40px; padding: 10px 15px; border-radius: 8px; font-weight: 900; }
.drawing-workspace { display: grid; grid-template-columns: 320px minmax(420px, 1fr); gap: 18px; align-items: stretch; }
.drawing-controls { display: grid; gap: 12px; align-content: start; padding: 14px; border: 1px solid var(--border); border-radius: 8px; background: #fbfdff; }
.drawing-controls .is-hidden { display: none; }
.drawing-controls select, .drawing-controls input { width: 100%; min-height: 42px; background: white; color: var(--navy); font-weight: 800; }
.drawing-preview-panel { display: grid; place-items: center; min-height: 520px; padding: 18px; border: 1px solid var(--border); border-radius: 8px; background: #f8fafc; }
.drawing-preview-panel svg { width: 100%; max-width: 760px; height: auto; min-height: 430px; }
.drawing-canvas-bg { fill: white; stroke: #dbe3ee; }
.section-shape-path { fill: #eef6ff; stroke: #0f172a; stroke-width: 3; vector-effect: non-scaling-stroke; fill-rule: evenodd; }
.drawing-axis { stroke: #cbd5e1; stroke-width: 1; stroke-dasharray: 5 5; }
.drawing-label { fill: var(--muted); font-size: 18px; font-weight: 800; }
.project-hub-header { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 18px; }
.project-hub-header h2 { margin: 5px 0 8px; font-size: 30px; }
.project-hub-header p { margin: 0; color: var(--muted); }
.project-hub-grid { display: grid; grid-template-columns: repeat(2, minmax(260px, 1fr)); gap: 16px; }
.project-tile { display: grid; gap: 18px; padding: 22px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06); }
.project-tile-copy span { color: var(--primary); font-size: 12px; font-weight: 800; }
.project-tile-copy h3 { margin: 7px 0 8px; color: var(--navy); font-size: 24px; }
.project-tile-copy p { margin: 0; color: var(--muted); }
.project-tool-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.project-tool-button { display: grid; place-items: center; min-height: 44px; padding: 10px; border: 1px solid #fecaca; border-radius: 10px; background: #fff7f5; color: var(--navy); text-align: center; text-decoration: none; font-weight: 800; }
.project-tool-button:hover { border-color: var(--primary); color: var(--primary-dark); }
.schedule-board { padding: 0; border: 2px solid #1d4ed8; background: white; overflow: auto; box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06); }
.schedule-manager { display: grid; gap: 10px; margin-bottom: 12px; }
.schedule-create-form { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; padding: 12px; border: 1px solid var(--border); background: #fff; }
.schedule-create-form label { display: grid; gap: 5px; min-width: 320px; color: var(--muted); font-size: 12px; font-weight: 800; }
.schedule-create-form input { min-height: 38px; border: 1px solid var(--border); border-radius: 8px; font-weight: 800; }
.schedule-create-form button { min-height: 38px; border-radius: 8px; font-weight: 900; }
.schedule-tabs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.schedule-tabs a, .schedule-tabs span { padding: 8px 11px; border: 1px solid var(--border); border-radius: 999px; background: white; color: var(--navy); font-size: 12px; font-weight: 900; text-decoration: none; }
.schedule-tabs a.active { border-color: #ef4444; background: #fff1f2; color: #991b1b; }
.schedule-title { position: sticky; left: 0; z-index: 4; display: flex; align-items: center; gap: 12px; min-width: 1240px; padding: 8px 10px; border-bottom: 2px solid #111827; background: white; color: #020617; }
.schedule-title strong { font-size: 18px; }
.schedule-title > span { color: var(--muted); font-weight: 700; }
.schedule-title-input { width: 300px; min-height: 28px; border: 0; border-radius: 0; background: white; color: #020617; font-size: 16px; font-weight: 900; }
.schedule-title em { color: var(--muted); font-size: 12px; font-style: normal; font-weight: 800; }
.schedule-legend { margin-left: auto; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 12px; font-weight: 800; }
.schedule-legend i { width: 28px; height: 8px; border-radius: 999px; }
.legend-plan { background: #ef4444; }
.legend-actual { background: #22c55e; }
.schedule-toolbar { position: sticky; left: 0; z-index: 4; display: flex; flex-wrap: wrap; align-items: end; gap: 8px; min-width: 1240px; padding: 9px 10px; border-bottom: 1px solid #bfdbfe; background: #f8fafc; }
.schedule-toolbar label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; font-weight: 800; }
.schedule-toolbar input, .schedule-toolbar select { min-height: 34px; padding: 7px 9px; border: 1px solid var(--border); border-radius: 8px; background: white; color: var(--navy); font-weight: 800; }
.schedule-toolbar button { min-height: 34px; padding: 8px 12px; border-radius: 8px; font-size: 13px; font-weight: 800; }
.schedule-toolbar .secondary-button { border: 1px solid var(--border); background: white; color: var(--navy); }
.schedule-table { min-width: 1372px; color: #020617; }
.schedule-row-grid { display: grid; grid-template-columns: 34px 292px 58px 132px repeat(var(--date-count), 60px) 172px; }
.schedule-cell { min-height: 31px; padding: 5px 6px; border-right: 1px solid #111827; border-bottom: 1px dotted #475569; font-size: 12px; line-height: 1.25; }
.schedule-header .schedule-cell { display: grid; place-items: center; min-height: 46px; border-bottom: 2px solid #111827; background: #dbeaf6; font-weight: 900; text-align: center; }
.schedule-cell.seq, .schedule-cell.percent { text-align: center; }
.schedule-cell.task { font-weight: 700; }
.schedule-cell.date { text-align: center; }
.schedule-cell.date.weekend, .timeline-day.weekend { background: #fff1e7; }
.schedule-cell.remark { color: #0f172a; }
.schedule-body-row.has-group .schedule-cell.task { background: #f8fafc; }
.schedule-group { display: inline-block; margin-right: 6px; color: #0f172a; font-weight: 900; }
.progress-input { width: 48px; height: 24px; padding: 2px; border-radius: 6px; text-align: center; font-weight: 900; }
.schedule-cell input, .schedule-cell select, .schedule-cell textarea { width: 100%; min-width: 0; border: 1px solid #cbd5e1; border-radius: 6px; background: white; color: #020617; font-size: 11px; }
.schedule-cell.task { display: grid; grid-template-columns: 86px 1fr; gap: 5px; align-items: center; }
.schedule-cell.plan-control { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; align-items: center; }
.schedule-header .schedule-cell.plan-control { display: grid; grid-template-columns: 1fr; }
.delete-row-button { grid-column: 1 / -1; min-height: 23px; padding: 3px 5px; border: 1px solid #fecaca; border-radius: 6px; background: #fff7f5; color: #b91c1c; font-size: 11px; font-weight: 800; }
.schedule-header .schedule-cell.date strong { font-size: 13px; }
.seq-input { text-align: center; }
.remark-input { height: 24px; }
.schedule-timeline { position: relative; display: grid; grid-template-columns: repeat(var(--date-count), 60px); grid-column: 5 / span var(--date-count); min-height: 31px; border-right: 1px solid #111827; border-bottom: 1px dotted #475569; overflow: hidden; }
.timeline-day { min-height: 31px; border-right: 1px solid #94a3b8; }
.timeline-day:last-child { border-right: 0; }
.plan-bar, .actual-bar { position: absolute; top: 8px; height: 5px; border-radius: 999px; }
.plan-bar { z-index: 2; background: #ef4444; }
.plan-bar::before, .plan-bar::after { content: ""; position: absolute; top: -4px; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.plan-bar::before { left: -1px; border-right: 8px solid #ef4444; }
.plan-bar::after { right: -1px; border-left: 8px solid #ef4444; }
.actual-bar { z-index: 3; top: 18px; min-width: 0; background: #22c55e; box-shadow: 0 0 0 1px rgba(255,255,255,.7); }
.event-label { position: absolute; z-index: 5; top: 3px; padding: 4px 8px; border: 1px solid #ef4444; background: #0ea5e9; color: white; font-size: 11px; transform: translateX(-50%); white-space: nowrap; }
.schedule-footer .schedule-cell { min-height: 38px; background: #f8fafc; font-weight: 800; }
.schedule-footer .schedule-cell.equipment { font-size: 9px; font-weight: 600; }
.footer-input { height: 25px; text-align: center; }
.equipment-input { height: 48px; resize: vertical; text-align: center; line-height: 1.2; }
.support-hub-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin-bottom: 22px; }
.support-page > .section-heading h2 { margin: 5px 0; font-size: 30px; }
.support-page > .section-heading .section-copy { margin-bottom: 0; color: var(--muted); font-size: 16px; }
.support-tile { display: grid; grid-template-columns: 1fr 150px; gap: 16px; align-items: center; padding: 18px; border: 1px solid var(--border); border-radius: 16px; background: #fbfdff; }
.support-tile h3 { margin: 7px 0 5px; color: var(--navy); font-size: 19px; }
.support-tile p { margin: 0 0 7px; color: var(--muted); font-size: 16px; }
.support-tile .project-tool-button { width: 100%; min-width: 0; font-size: 13px; white-space: nowrap; word-break: keep-all; }
.support-subhead { margin-top: 28px; }
.support-subhead h3 { font-size: 19px; }
.support-subhead .section-copy { font-size: 16px; }
.support-page table { font-size: 16px; }
.application-history-tabs { display: flex; gap: 7px; margin-bottom: 12px; padding: 6px; overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: #f8fafc; }
.application-history-tabs a { display: inline-flex; flex: 1 0 max-content; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 8px 14px; border-radius: 8px; color: var(--navy); text-decoration: none; font-weight: 800; white-space: nowrap; }
.application-history-tabs a:hover { background: #edf4f9; }
.application-history-tabs a.active { background: var(--navy); color: #fff; }
.application-history-tabs span { font-size: 12px; opacity: .78; }
.application-history-panel { padding: 4px 0 20px; border-bottom: 2px solid var(--border); }
.application-history-table { min-width: 980px; }
.application-history-table th { color: var(--navy); white-space: nowrap; }
.application-history-table td { vertical-align: middle; color: #405773; }
.application-kind { display: inline-block; padding: 5px 9px; border-radius: 999px; background: #fff1ed; color: var(--primary-dark); font-size: 12px; font-weight: 800; white-space: nowrap; }
.application-history-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.application-history-actions a { min-height: 34px; padding: 7px 10px; border: 1px solid #9fb3c8; border-radius: 8px; background: #fff; color: var(--navy); font-size: 13px; font-weight: 800; text-decoration: none; }
.application-history-actions a.download { border-color: #16834b; background: #16834b; color: #fff; }
.application-history-table .empty-state { padding: 36px 12px; color: var(--muted); text-align: center; }
.support-tool-panel h2 { margin: 5px 0 8px; font-size: 30px; }
.support-placeholder { display: grid; gap: 8px; margin-top: 22px; padding: 22px; border: 1px dashed #fca5a5; border-radius: 14px; background: #fff7f5; }
.support-placeholder strong { color: var(--navy); font-size: 18px; }
.support-placeholder p { margin: 0; color: var(--muted); }
.support-placeholder span { color: var(--primary-dark); font-size: 13px; font-weight: 800; }
.daily-report-panel h4 { margin: 20px 0 10px; color: var(--navy); }
.daily-report-form { gap: 16px; }
.daily-copy-notice { display: grid; gap: 5px; margin-bottom: 16px; padding: 14px 18px; border: 1px solid #fdba74; border-radius: 12px; background: #fff7ed; color: var(--navy); }
.daily-copy-notice span,.daily-copy-notice small { color: #9a3412; }
.daily-load-panel { margin-bottom: 16px; }
.daily-filter-form { display: grid; grid-template-columns: 170px 1fr 1.5fr auto auto; align-items: end; gap: 10px; margin-bottom: 16px; }
.daily-filter-form label { display: grid; gap: 6px; color: var(--muted); font-size: 13px; font-weight: 700; }
.daily-filter-form .button-link { min-height: 40px; padding: 10px 14px; text-align: center; }
.daily-history-table { min-width: 900px; }
.daily-history-table th { color: var(--navy); white-space: nowrap; }
.daily-history-actions { display: flex; gap: 6px; white-space: nowrap; }
.daily-history-actions a { padding: 7px 10px; border: 1px solid #9fb3c8; border-radius: 8px; color: var(--navy); text-decoration: none; font-size: 13px; font-weight: 800; }
.daily-history-actions a.load { border-color: var(--primary); background: var(--primary); color: #fff; }
.daily-status { padding: 4px 8px; border-radius: 999px; background: #dcfce7; color: #15803d; font-size: 12px; font-weight: 800; }
.daily-status.draft { background: #fef3c7; color: #b45309; }
.daily-meta-grid.five { grid-template-columns: repeat(3,minmax(150px,1fr)); }
.daily-meta-grid input[readonly] { background: #eef3f7; color: var(--navy); font-weight: 800; }
.daily-attachments { display: grid; gap: 7px; padding: 14px; border: 1px dashed #9fb3c8; border-radius: 10px; color: var(--navy); font-weight: 800; }
.daily-attachments small { color: var(--muted); font-weight: 500; }
.daily-form-actions { display: flex; justify-content: flex-end; gap: 9px; flex-wrap: wrap; padding-top: 10px; }
.daily-draft-button { background: #0d3b66; }.daily-preview-button { border: 1px solid var(--primary); background: #fff; color: var(--primary-dark); }.daily-excel-button { background: #16834b!important; color: #fff!important; }
.daily-preview-dialog { width: min(980px,calc(100% - 28px)); max-height: calc(100vh - 28px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 24px 70px rgba(6,40,74,.3); }
.daily-preview-dialog::backdrop { background: rgba(3,31,59,.7); }.daily-preview-dialog article { display: grid; grid-template-rows: auto auto minmax(0,1fr) auto; max-height: calc(100vh - 28px); }.daily-preview-dialog header,.daily-preview-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 18px 24px; border-bottom: 1px solid var(--border); }.daily-preview-dialog header h2 { margin: 0; color: var(--navy); }.daily-preview-dialog header>button { width: 36px; height: 36px; padding: 0; border-radius: 50%; background: #edf4f9; color: var(--navy); font-size: 23px; }.daily-preview-dialog footer { justify-content: flex-end; flex-wrap: wrap; border-top: 1px solid var(--border); border-bottom: 0; }
.daily-preview-missing { margin: 16px 24px 0; padding: 11px 14px; border-radius: 9px; background: #fef3c7; color: #92400e; font-weight: 800; }.daily-report-preview { overflow-y: auto; padding: 24px; color: #1f2937; }.daily-preview-title { display: grid; place-items: center; padding: 18px; border: 2px solid var(--navy); }.daily-preview-title strong { color: var(--navy); font-size: 26px; }.daily-report-preview dl,.daily-detail-sheet dl { display: grid; grid-template-columns: repeat(3,1fr); margin: 16px 0; border-top: 1px solid var(--navy); border-left: 1px solid var(--navy); }.daily-report-preview dl div,.daily-detail-sheet dl div { display: grid; grid-template-columns: 110px 1fr; border-right: 1px solid var(--navy); border-bottom: 1px solid var(--navy); }.daily-report-preview dt,.daily-report-preview dd,.daily-detail-sheet dt,.daily-detail-sheet dd { margin: 0; padding: 10px; }.daily-report-preview dt,.daily-detail-sheet dt { background: #edf4f9; color: var(--navy); font-weight: 800; }.daily-report-preview section { margin-top: 15px; }.daily-report-preview h3,.daily-detail-sheet h3 { margin: 0 0 8px; color: var(--navy); }.daily-report-preview p,.daily-detail-text p { min-height: 50px; margin: 0; padding: 12px; border: 1px solid var(--border); white-space: pre-wrap; line-height: 1.6; }.daily-report-preview table { border: 1px solid var(--border); }.daily-preview-photos,.daily-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.daily-preview-photos img,.daily-photo-grid img { width: 100%; height: 190px; object-fit: contain; border: 1px solid var(--border); border-radius: 8px; background: #f8fafc; }
.daily-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }.daily-detail-actions button,.daily-detail-actions a { min-height: 40px; }.daily-detail-sheet { max-width: 1100px; margin: 0 auto; }.daily-detail-text { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 18px 0; }.daily-equipment-list { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }.daily-equipment-list span { padding: 7px 10px; border-radius: 8px; background: #edf4f9; }.daily-source-trace { color: var(--muted); font-size: 13px; }
@media(max-width:800px){.daily-filter-form{grid-template-columns:1fr 1fr}.daily-filter-form label:nth-child(3){grid-column:1/-1}.daily-meta-grid.five,.daily-report-preview dl,.daily-detail-sheet dl{grid-template-columns:1fr 1fr}.daily-preview-photos,.daily-photo-grid{grid-template-columns:1fr 1fr}.daily-detail-text{grid-template-columns:1fr}}
@media(max-width:560px){.daily-filter-form,.daily-meta-grid.five,.daily-report-preview dl,.daily-detail-sheet dl{grid-template-columns:1fr}.daily-form-actions>*{flex:1 1 140px;text-align:center}.daily-preview-dialog footer>*{flex:1 1 140px}.daily-preview-photos,.daily-photo-grid{grid-template-columns:1fr}}
@media print{body.printing-daily-preview .site-header,body.printing-daily-preview .hero-panel,body.printing-daily-preview .nav,body.printing-daily-preview .content-area>:not(.daily-preview-dialog){display:none!important}body.printing-daily-preview .daily-preview-dialog{position:static;display:block!important;width:100%;max-height:none;box-shadow:none}body.printing-daily-preview .daily-preview-dialog header,body.printing-daily-preview .daily-preview-dialog footer,body.printing-daily-preview .daily-preview-missing{display:none!important}body.printing-daily-preview .daily-report-preview{overflow:visible;padding:0}.daily-detail-actions,.site-header,.hero-panel,.nav{display:none!important}.daily-detail-sheet{box-shadow:none;border:0}}
.daily-meta-grid { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)); gap: 12px; }
.daily-meta-grid label, .daily-text-grid label, .equipment-grid label { display: flex; flex-direction: column; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 700; }
.daily-worker-grid { display: grid; grid-template-columns: 52px 1fr 1fr 1fr; gap: 8px; align-items: center; }
.daily-grid-head { padding: 8px 10px; border-radius: 8px; background: #f1f5f9; color: var(--muted); font-size: 12px; font-weight: 800; }
.daily-row-number { display: grid; place-items: center; height: 40px; border-radius: 8px; background: #f8fafc; color: var(--muted); font-weight: 800; }
.daily-text-grid { display: grid; grid-template-columns: repeat(2, minmax(240px, 1fr)); gap: 14px; }
.daily-text-grid textarea { min-height: 150px; resize: vertical; line-height: 1.5; }
.equipment-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.leave-form { gap: 16px; }
.document-form-shell { width: 100%; max-width: 920px; margin-right: auto; margin-left: auto; }
.leave-sheet { padding: 26px; border: 1px solid var(--border); background: white; box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08); }
.leave-title-row { display: grid; grid-template-columns: 150px 1fr 340px; min-height: 100px; border: 2px solid var(--navy); }
.leave-logo { display: grid; place-items: center; align-content: center; padding: 10px; border-right: 2px solid var(--navy); }
.leave-logo img { display: block; width: auto; max-width: 126px; height: auto; max-height: 78px; object-fit: contain; }
.leave-title-row h2 { display: grid; place-items: center; margin: 0; color: var(--navy); font-size: 26px; }
.approval-box { display: grid; grid-template-columns: 34px repeat(3, 1fr); border-left: 2px solid var(--navy); }
.approval-box > strong { display: grid; place-items: center; border-right: 1px solid var(--navy); writing-mode: vertical-rl; }
.approval-box label { display: grid; grid-template-rows: 28px 1fr 1fr; gap: 0; border-right: 1px solid var(--navy); color: var(--navy); font-weight: 800; text-align: center; }
.approval-box label:last-child { border-right: 0; }
.approval-box label span { display: grid; place-items: center; border-bottom: 1px solid var(--navy); font-size: 12px; }
.approval-box input { width: 100%; min-width: 0; border: 0; border-radius: 0; border-bottom: 1px solid var(--border); padding: 6px; text-align: center; font-size: 12px; }
.approval-box input:last-child { border-bottom: 0; }
.leave-grid { display: grid; grid-template-columns: 110px 1fr 110px 1fr 120px 1.4fr; margin-top: 22px; border-top: 1px solid var(--navy); border-left: 1px solid var(--navy); }
.leave-grid > div { min-height: 58px; border-right: 1px solid var(--navy); border-bottom: 1px solid var(--navy); }
.leave-label { display: grid; place-items: center; background: #e5e7eb; color: var(--navy); font-weight: 900; }
.leave-label.tall { min-height: 170px; }
.leave-grid input, .leave-grid textarea { width: 100%; height: 100%; border: 0; border-radius: 0; text-align: center; }
.leave-grid .leave-info-value { grid-column:span 2; }
@media(max-width:900px) { .leave-grid .leave-info-value { grid-column:auto; } }
.leave-type-cell, .leave-period-cell, .leave-detail-cell { grid-column: span 5; display: flex; align-items: center; justify-content: center; gap: 22px; padding: 10px; }
.check-pill { display: inline-flex; align-items: center; gap: 7px; color: var(--navy); font-weight: 800; }
.check-pill input { width: auto; height: auto; }
.leave-period-cell input[type="date"] { max-width: 170px; height: 38px; border: 1px solid var(--border); border-radius: 8px; }
.leave-period-cell input[type="number"] { width: 74px; height: 38px; border: 1px solid var(--border); border-radius: 8px; }
.leave-detail-cell textarea { min-height: 150px; padding: 18px; resize: vertical; line-height: 1.6; }
.leave-statement { padding: 16px; border: 1px solid var(--navy); border-top: 0; text-align: center; color: var(--navy); font-weight: 900; }
.leave-date-line { display: grid; place-items: center; min-height: 94px; border-right: 1px solid var(--navy); border-left: 1px solid var(--navy); }
.leave-date-line input { width: 180px; text-align: center; font-weight: 800; }
.leave-sign-line { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 82px; border-right: 1px solid var(--navy); border-left: 1px solid var(--navy); font-weight: 800; }
.leave-company { display: grid; place-items: center; min-height: 76px; border: 1px solid var(--navy); border-top: 0; color: var(--navy); font-size: 18px; font-weight: 900; }
.leave-notes { color: var(--navy); font-size: 13px; line-height: 1.8; }
.leave-notes ol { margin: 6px 0 0; padding-left: 18px; }
.leave-actions { display: flex; justify-content: center; }
.leave-actions button { padding: 13px 22px; font-weight: 900; }
.incident-form { display: grid; gap: 18px; }
.incident-editor { max-width: 980px; margin: 0 auto; padding: 18px; border: 1px solid var(--border); background: #fff; box-shadow: 0 14px 34px rgba(15, 23, 42, 0.08); }
.incident-title-row { display: grid; grid-template-columns: 148px 290px 1fr 246px; border-top: 2px solid #1d4ed8; border-left: 1px solid #111827; }
.incident-title-row > * { border-right: 1px solid #111827; border-bottom: 1px solid #111827; }
.incident-logo { display: grid; place-items: center; align-content: center; gap: 4px; min-height: 108px; color: #8ea2cd; font-weight: 900; }
.incident-logo img { width: 128px; max-width: 86%; height: auto; }
.incident-title-row h2 { display: grid; place-items: center; margin: 0; min-height: 108px; background: #c7c7c7; color: #000; text-align: center; font-size: 28px; line-height: 1.25; }
.incident-title-row h2 span { font-size: 24px; }
.incident-meta { display: grid; grid-template-columns: 1fr; }
.incident-meta label { display: grid; grid-template-columns: 96px 1fr; min-height: 36px; margin: 0; border-bottom: 1px solid #111827; }
.incident-meta label:last-child { border-bottom: 0; }
.incident-approval { display: grid; grid-template-columns: 46px 1fr 1fr; grid-template-rows: 28px 80px; }
.incident-approval strong { display: grid; grid-row: 1 / 3; place-items: center; min-height: 108px; border-right: 1px solid #111827; font-style: normal; letter-spacing: 0; line-height: 1.5; }
.incident-approval span { display: grid; place-items: center; min-height: 28px; border-right: 1px solid #111827; border-bottom: 1px solid #111827; background: #fff; color: #111827; font-size: 13px; font-weight: 800; text-align: center; }
.incident-approval span:nth-of-type(2) { border-right: 0; }
.incident-approval em { min-height: 80px; border-right: 1px solid #111827; font-style: normal; }
.incident-approval em:last-child { border-right: 0; }
.incident-meta span, .incident-grid span, .incident-textarea span { display: grid; place-items: center; padding: 8px; background: #f8fafc; color: #111827; font-size: 13px; font-weight: 800; text-align: center; }
.incident-meta input, .incident-grid input { width: 100%; min-height: 36px; border: 0; border-left: 1px solid #111827; border-radius: 0; text-align: center; }
.incident-grid { display: grid; grid-template-columns: 1fr 1fr; border-left: 1px solid #111827; }
.incident-grid label { display: grid; grid-template-columns: 148px 1fr; margin: 0; border-right: 1px solid #111827; border-bottom: 1px solid #111827; }
.incident-grid label.wide { grid-column: 1 / -1; }
.incident-textarea { display: grid; grid-template-columns: 248px 1fr; margin: 0; border-right: 1px solid #111827; border-bottom: 1px solid #111827; border-left: 1px solid #111827; }
.incident-textarea textarea { min-height: 128px; border: 0; border-left: 1px solid #111827; border-radius: 0; resize: vertical; line-height: 1.5; }
.incident-history { max-width: 980px; margin: 0 auto; }
@media (max-width: 900px) {
  .hero-panel { grid-template-columns: 1fr; }
  .motor-grid { grid-template-columns: 1fr; }
  .model-input-layout { grid-template-columns: 1fr; }
  .beam-layout { grid-template-columns: 1fr; }
  .tackle-layout { grid-template-columns: 1fr; }
  .section-calc-layout { grid-template-columns: 1fr; }
  .section-dim-grid { grid-template-columns: 1fr 1fr; }
  .input-grid { grid-template-columns: repeat(2, 1fr); }
  .upload-form { grid-template-columns: 1fr 1fr; }
  .point-load-row { grid-template-columns: 1fr 1fr; }
  .point-load-row button { grid-column: 1 / -1; }
  .support-grid { grid-template-columns: 1fr; }
  .distributed-load-row { grid-template-columns: 1fr 1fr; }
  .distributed-load-row button { grid-column: 1 / -1; }
  .project-hub-grid { grid-template-columns: 1fr; }
  .drawing-workspace { grid-template-columns: 1fr; }
  .drawing-preview-panel { min-height: 440px; }
  .daily-meta-grid, .daily-text-grid, .equipment-grid { grid-template-columns: 1fr; }
  .leave-title-row { grid-template-columns: 1fr; }
  .leave-logo, .approval-box { border-right: 0; border-left: 0; border-top: 2px solid var(--navy); }
  .leave-grid { grid-template-columns: 100px 1fr; }
  .leave-type-cell, .leave-period-cell, .leave-detail-cell { grid-column: auto; flex-wrap: wrap; justify-content: flex-start; gap: 12px; }
  .leave-grid > div { min-height: 52px; }
  .upload-summary { grid-column: 1 / -1; }
  .tech-item { grid-template-columns: 38px 58px 1fr; }
  .tech-actions { grid-column: 3; }
}
@media (max-width: 700px) {
  .site-header { min-height: 0; flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 0; }
  .brand-block { gap: 12px; }
  .brand-logo { width: 145px; height: 44px; }
  .brand-divider { height: 28px; }
  .site-header h1 { font-size: 15px; }
  .userbox { justify-content: flex-end; font-size: 12px; }
  .hero-panel { min-height: 0; padding: 30px 22px; border-radius: 0 0 16px 16px; }
  .hero-panel h2 { font-size: clamp(23px, 7vw, 30px); }
  .hero-card { padding: 15px; }
  .nav { flex-wrap: nowrap; overflow-x: auto; margin: 12px 0 18px; scrollbar-width: thin; }
  .nav a { flex: 0 0 auto; }
  .feature-grid { grid-template-columns: 1fr; }
  .home-latest { padding: 14px; }
  .nav { gap: 8px; }
  .analysis-grid { grid-template-columns: 1fr; }
  .section-result-grid { grid-template-columns: 1fr; column-gap: 0; }
  .analysis-header, .section-heading { align-items: flex-start; flex-direction: column; }
  .check-row { grid-template-columns: 34px 1fr auto; }
  .check-value { grid-column: 2; }
  .input-grid { grid-template-columns: 1fr; }
  .section-dim-grid { grid-template-columns: 1fr; }
  .calculator-actions { align-items: stretch; flex-direction: column; }
  .project-tool-grid { grid-template-columns: 1fr; }
  .drawing-title-row { align-items: flex-start; flex-direction: column; }
  .drawing-preview-panel { min-height: 360px; padding: 10px; }
  .drawing-preview-panel svg { min-height: 320px; }
  .support-tile { grid-template-columns: 1fr; }
  .tech-header { align-items: flex-start; flex-direction: column; }
  .upload-form { grid-template-columns: 1fr; }
  .point-load-row { grid-template-columns: 1fr; }
  .distributed-load-row { grid-template-columns: 1fr; }
  .support-row { grid-template-columns: 1fr; }
  .daily-worker-grid { grid-template-columns: 36px 1fr; }
  .daily-grid-head:nth-child(3), .daily-grid-head:nth-child(4) { display: none; }
  .daily-worker-grid input { grid-column: 2; }
  .upload-summary { grid-column: auto; }
  .tech-search { grid-template-columns: 1fr; gap: 10px; }
  .tech-search input, .tech-search button { width: 100%; min-width: 0; height: 58px; }
  .tech-item { grid-template-columns: 36px minmax(0, 1fr); gap: 14px 12px; min-height: 0; padding: 20px 0; align-items: start; }
  .calculator-thumbnail { width: 100%; height: clamp(130px, 42vw, 180px); }
  .tech-item-copy { grid-column: 1 / -1; min-width: 0; }
  .tech-actions { grid-column: 1 / -1; width: 100%; flex-wrap: wrap; }
  .tech-actions .button-link { display: inline-flex; justify-content: center; align-items: center; width: 100%; min-height: 48px; }
}

@media (min-width: 701px) and (max-width: 900px) {
  .tech-item { grid-template-columns: 38px 140px minmax(0, 1fr); gap: 18px; }
  .calculator-thumbnail { width: 140px; height: 90px; }
  .tech-actions { grid-column: 3; justify-content: flex-end; }
}


/* Smart Office home — aligned to the supplied design reference */
.authenticated { background: #031f3b; }
.authenticated .page-shell { width: 100%; max-width: none; margin: 0; padding: 0; background: #fff; }
.authenticated .site-header { min-height: 132px; padding: 10px clamp(16px, 3vw, 56px); }
.authenticated .brand-logo { width: clamp(130px, 7.5vw, 150px); height: auto; flex: 0 0 auto; object-fit: contain; object-position: left center; }
.authenticated .brand-block { gap: clamp(14px, 1.2vw, 22px); }
.authenticated .brand-divider { height: clamp(48px, 3.2vw, 58px); background: #9aabba; }
.authenticated .site-header h1 { font-size: clamp(28px, 1.55vw, 30px); font-weight: 800; letter-spacing: .08em; }
.authenticated .userbox { gap: 0; align-self: center; color: #405773; font-size: clamp(15px, .84vw, 16px); font-weight: 600; }
.authenticated .userbox > span,
.authenticated .userbox > a,
.authenticated .userbox > button { min-height: 40px; padding: 0 clamp(14px, .9vw, 18px); }
.authenticated .userbox > span { padding-left: 0; }
.authenticated .userbox > a,
.authenticated .userbox > button { font-weight: 600; }

.authenticated .hero-panel {
  min-height: 405px;
  border-radius: 0 0 5px 5px;
  padding: 54px clamp(16px, 3vw, 56px);
  box-shadow: none;
  grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr);
  column-gap: clamp(28px, 4vw, 72px);
  align-items: center;
}
.authenticated .hero-panel::before {
  background: linear-gradient(90deg, rgba(3,31,59,.9) 0%, rgba(6,40,74,.7) 54%, rgba(3,31,59,.38) 100%);
}
.authenticated .hero-copy { width: 100%; max-width: 900px; align-self: center; }
.authenticated .hero-panel h2 { width: max-content; max-width: 100%; margin: 10px 0 14px; font-size: clamp(36px, 3vw, 54px); line-height: 1.2; letter-spacing: -.035em; word-break: keep-all; overflow-wrap: normal; }
.authenticated .hero-panel h2 span { display: block; white-space: nowrap; }
.authenticated .hero-panel .eyebrow { color: #f04a38; }
.authenticated .hero-panel .eyebrow { font-size: clamp(12.5px, .7vw, 13px); }
.authenticated .hero-panel p:last-child { max-width: 650px; font-size: clamp(16px, .9vw, 17px); line-height: 1.7; word-break: keep-all; }
.authenticated .hero-card { width: 100%; max-width: 500px; justify-self: end; align-self: center; padding: 24px 25px; border-color: rgba(148,174,200,.3); border-radius: 12px; background: rgba(3,31,59,.82); box-shadow: 0 14px 35px rgba(0,0,0,.16); }
.authenticated .hero-card h3 { padding-bottom: 13px; margin: 0 0 10px; border-bottom: 1px solid rgba(148,174,200,.28); font-size: clamp(22px, 1.25vw, 24px); }
.authenticated .hero-card ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; font-size: 17px; }
.authenticated .hero-card li { display: flex; align-items: center; gap: clamp(14px, .8vw, 16px); min-height: 44px; color: #f1f5f9; transition: color .2s ease; }
.authenticated .hero-card li::marker { content: ""; }
.authenticated .hero-task-icon { width: 24px; height: 24px; flex: 0 0 24px; fill: none; stroke: #c5d4e1; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; transition: color .2s ease, stroke .2s ease, transform .2s ease; }
.authenticated .hero-card li:hover { color: #f04a38; }
.authenticated .hero-card li:hover .hero-task-icon { stroke: #f04a38; transform: translateX(2px); }
.authenticated .hero-work-card { color: #fff; text-decoration: none; }
.authenticated .hero-work-card:hover { border-color: rgba(180,205,225,.55); background: rgba(3,31,59,.88); }
.authenticated .hero-work-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.authenticated .hero-work-stat { display: grid; grid-template-columns: 52px minmax(0,1fr); align-items: center; gap: 14px; min-width: 0; min-height: 88px; padding: 14px 18px; border: 1px solid rgba(157,178,197,.3); border-radius: 9px; background: rgba(6,40,74,.72); }
.authenticated .hero-work-stat svg { width: 40px; height: 40px; justify-self: center; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 4px rgba(104,190,255,.16)); }
.authenticated .hero-work-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; min-width: 0; gap: 7px; }
.authenticated .hero-work-stat span { color: #f2f6fa; font-size: 14px; font-weight: 750; line-height: 1; white-space: nowrap; }
.authenticated .hero-work-stat strong { display: block; font-size: clamp(28px,1.9vw,34px); line-height: .9; }
.authenticated .hero-work-stat.work-total { color: #d8f1ff; }.authenticated .hero-work-stat.work-urgent { color: #ff725f; }.authenticated .hero-work-stat.work-progress { color: #66c7ff; }.authenticated .hero-work-stat.work-complete { color: #55d58a; }

.authenticated .nav {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  margin: 0;
  padding: 12px clamp(12px, 2.2vw, 42px) 10px;
  border: 0;
  border-radius: 0;
  background: #031f3b;
  box-shadow: none;
}
.authenticated .nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-width: 0;
  min-height: 46px;
  padding: 6px 4px;
  border: 1px solid #315474;
  border-radius: 5px;
  background: #06284a;
  color: #d7e2ec;
  font-size: clamp(12px, .74vw, 14px);
  font-weight: 600;
  white-space: nowrap;
  box-sizing: border-box;
  transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}
.authenticated .nav a::before { color: #9db2c5; font-size: clamp(16px, .9vw, 18px); line-height: 1; transition: color .2s ease; }
.authenticated .nav a:nth-child(1)::before { content: "⌂"; }
.authenticated .nav a:nth-child(2)::before { content: "♧"; }
.authenticated .nav a:nth-child(3)::before { content: "▣"; }
.authenticated .nav a:nth-child(4)::before { content: "▤"; }
.authenticated .nav a:nth-child(5)::before { content: "▥"; }
.authenticated .nav a:nth-child(6)::before { content: "⌖"; }
.authenticated .nav a:nth-child(7)::before { content: "♙"; }
.authenticated .nav a:nth-child(8)::before { content: "☑"; }
.authenticated .nav a:nth-child(9)::before { content: "☎"; }
.authenticated .nav a:nth-child(10)::before { content: "☎"; }
.authenticated .nav .nav-support::before { content: "▤"; }
.authenticated .nav .nav-design-support::before { content: "▦"; }
.authenticated .nav .nav-projects::before { content: "☑"; }
.authenticated .nav .nav-contacts::before { content: "☎"; }
.authenticated .nav a:hover { border-color: #6f8ca7; background: #0d3b66; }
.authenticated .nav a.active { border-color: #f97316; background: #f97316; color: #fff; }
.authenticated .nav a.active::before { color: #fff; }
.authenticated .nav a.active:hover { border-color: #f97316; background: #f97316; color: #fff; }

.authenticated .portal-content {
  margin-top: 0;
  padding: clamp(16px, 3vw, 56px) clamp(16px, 3vw, 56px) 30px;
}

.home-content {
  position: relative;
  isolation: isolate;
  margin-top: 0;
  padding: 0 clamp(16px, 3vw, 56px) 30px;
  overflow: hidden;
  background: #031f3b;
}
.home-content::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .032;
  background-image:
    linear-gradient(30deg, transparent 47%, #a8c1d7 48% 49%, transparent 50%),
    linear-gradient(150deg, transparent 47%, #a8c1d7 48% 49%, transparent 50%),
    linear-gradient(90deg, transparent 49%, #a8c1d7 50% 50.5%, transparent 51%),
    radial-gradient(circle at 76% 58%, transparent 0 54px, #a8c1d7 55px 56px, transparent 57px);
  background-size: 120px 70px, 120px 70px, 210px 210px, 250px 250px;
}
.home-dashboard { position: relative; z-index: 1; }
.feature-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 22px;
}
.feature-grid .stat {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 190px;
  padding: 20px 18px 68px;
  border: 0;
  border-radius: 7px;
  box-shadow: 0 7px 20px rgba(0,0,0,.16);
}
.feature-grid .stat h3 { min-height: 18px; margin: 0 0 9px; font-size: 15px; line-height: 1.2; }
.feature-grid .stat strong { min-height: 32px; font-size: 27px; line-height: 1.15; }
.feature-grid .stat p { margin: 12px 0 0; color: #405773; font-size: 12px; line-height: 1.55; }
.feature-grid .feature-icon {
  position: absolute;
  right: 22px;
  bottom: 22px;
  width: 46px;
  height: 46px;
  border-radius: 0;
  background: transparent;
  color: #aebdcb;
  opacity: .9;
}
.feature-grid .feature-icon svg { width: 42px; height: 42px; stroke-width: 1.15; }
.home-latest {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  overflow: visible;
  border-radius: 0;
  background: transparent;
}
.home-latest::before { display: none; }
.home-latest > .card {
  min-height: 230px;
  padding: 20px 22px;
  border: 1px solid #315474;
  border-radius: 7px;
  background: rgba(3,31,59,.7);
  box-shadow: none;
  color: #dce8f2;
}
.home-latest h2 { margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid #214665; color: #fff; font-size: 17px; }
.home-latest .list li { border-color: #214665; color: #e5edf4; }
.home-latest .list li span { color: #90a7ba; }

@media (max-width: 1100px) {
  .authenticated .nav { grid-template-columns: repeat(7, minmax(100px, 1fr)); overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
  .feature-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .authenticated .site-header { height: auto; min-height: 0; padding: 10px clamp(16px, 3vw, 56px); flex-wrap: wrap; gap: 4px 14px; }
  .authenticated .brand-logo { width: clamp(100px, 28vw, 115px); height: auto; flex-basis: auto; }
  .authenticated .brand-block { gap: clamp(10px, 3vw, 14px); }
  .authenticated .brand-divider { height: clamp(36px, 10vw, 44px); }
  .authenticated .site-header h1 { font-size: clamp(18px, 5.5vw, 22px); }
  .authenticated .userbox { width: 100%; flex-wrap: nowrap; justify-content: flex-end; overflow-x: auto; overflow-y: hidden; font-size: 14px; scrollbar-width: thin; }
  .authenticated .userbox > span,
  .authenticated .userbox > a,
  .authenticated .userbox > button { min-height: 40px; padding: 0 10px; }
  .authenticated .userbox > span { padding-left: 0; }
  .authenticated .hero-panel { min-height: 0; padding: 34px clamp(16px, 3vw, 56px); grid-template-columns: 1fr; }
  .authenticated .hero-panel h2 { width: auto; font-size: clamp(27px, 8vw, 36px); word-break: keep-all; }
  .authenticated .hero-panel h2 span { white-space: normal; }
  .authenticated .hero-card { max-width: none; justify-self: stretch; }
  .authenticated .nav { grid-template-columns: repeat(7, minmax(105px, 1fr)); padding: 10px 12px; overflow-x: auto; overflow-y: hidden; }
  .authenticated .nav a { min-width: 0; }
  .authenticated .portal-content { padding: clamp(16px, 3vw, 56px) clamp(16px, 3vw, 56px) 22px; }
  .home-content { padding: 0 clamp(16px, 3vw, 56px) 22px; }
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .feature-grid .stat { min-height: 176px; }
  .home-latest { grid-template-columns: 1fr; }
}

/* Official electronic application sheets */
.electronic-page { width:calc(100% - 2 * clamp(16px,3vw,56px)); margin-right:auto; margin-left:auto; padding-top:clamp(20px,2vw,30px); }
.electronic-toolbar { display:flex; align-items:center; justify-content:space-between; width:min(920px,100%); gap:20px; margin:0 auto 18px; }
.electronic-toolbar h2 { margin:5px 0 0; color:var(--navy); font-size:clamp(26px,2vw,34px); }
.electronic-sheet-wrap { width:100%; overflow-x:auto; border-radius:14px; box-shadow:0 8px 28px rgba(6,40,74,.1); }
.electronic-sheet { width:920px; min-width:920px; margin-right:auto; margin-left:auto; padding:28px; border:1px solid #7f8c99; background:#fff; color:#16283b; }
.electronic-sheet-header { display:grid; grid-template-columns:144px minmax(0,1fr) 270px; min-height:112px; border:2px solid #23384d; }
.electronic-company,.electronic-sheet-header h1 { display:flex; align-items:center; justify-content:center; margin:0; text-align:center; }
.electronic-company { border-right:1px solid #23384d; color:var(--navy); font-size:18px; font-weight:900; line-height:1.25; }
.electronic-company img { display:block; width:auto; height:auto; max-width:calc(100% - 20px); max-height:76px; object-fit:contain; }
.electronic-company small { display:block; font-size:10px; letter-spacing:.08em; }
.electronic-sheet-header h1 { padding:0 12px; font-size:25px; font-weight:800; letter-spacing:.015em; line-height:1.25; white-space:nowrap; }
.approval-grid { width:100%; table-layout:fixed; border-collapse:collapse; border-left:1px solid #23384d; }
.approval-grid th,.approval-grid td { height:36px; padding:5px; border:1px solid #23384d; text-align:center; }
.approval-grid td { height:70px; font-weight:700; }
.approval-grid small { display:block; margin-top:6px; font-size:11px; font-weight:500; }
.electronic-form-table,.expense-table { width:100%; table-layout:fixed; border-collapse:collapse; }
.electronic-form-table th,.electronic-form-table td,.expense-table th,.expense-table td { padding:10px; border:1px solid #526579; vertical-align:middle; }
.electronic-form-table th,.expense-table th { background:#eef2f5; color:var(--navy); font-weight:800; text-align:center; }
.electronic-form-table input,.electronic-form-table textarea,.expense-table input,.expense-table select { width:100%; min-height:40px; padding:8px; border:1px solid #b7c3ce; border-radius:4px; background:#fff; color:inherit; }
.electronic-form-table textarea { min-height:190px; resize:vertical; line-height:1.6; }
.electronic-form-table :disabled,.expense-table :disabled { border-color:transparent; opacity:1; background:transparent; color:#16283b; -webkit-text-fill-color:#16283b; }
.range-mark { width:34px; text-align:center; font-weight:800; }
.expense-section { margin-top:18px; }
.expense-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:9px; }
.expense-heading h3 { margin:0; color:var(--navy); }
.expense-table { min-width:780px; }
.expense-table td:last-child,.expense-table th:last-child { text-align:center; }
.expense-table tfoot th,.expense-table tfoot td { font-weight:900; text-align:right; }
.remove-expense-row { min-height:34px; padding:6px 10px; background:#fff; border:1px solid #e66b61; color:#b42318; }
.electronic-submit { display:flex; justify-content:flex-end; margin-top:22px; }
.electronic-submit button,.download-button { min-height:44px; padding:11px 20px; font-weight:800; }
.download-button { display:inline-flex; align-items:center; border-radius:8px; background:#16834b; color:#fff; text-decoration:none; }
.electronic-status { display:flex; align-items:center; gap:12px; margin-top:20px; padding:14px; background:#f5f8fb; }
.electronic-approval { margin-top:22px; padding:22px; }
.electronic-approval h3 { margin-top:0; color:var(--navy); }
.electronic-approval form,.electronic-approval label { display:grid; gap:10px; }
.electronic-approval form>div { display:flex; justify-content:flex-end; gap:9px; }
.electronic-approval textarea { width:100%; resize:vertical; }
.danger-button { background:#b42318; }
.settlement-applicant-row{margin-bottom:18px}.settlement-applicant-row th,.settlement-applicant-row td{height:40px;padding-top:6px;padding-bottom:6px}.settlement-applicant-row input{min-height:32px;height:32px;padding:5px 8px}.expense-row-actions{display:flex;align-items:center;justify-content:center;gap:4px}.expense-row-actions button{min-width:30px;height:30px;padding:3px 7px;border-radius:5px;font-size:12px}.expense-row-actions button:disabled{cursor:not-allowed;opacity:.35}
@media(max-width:760px){.electronic-toolbar{align-items:center;flex-direction:row;gap:12px}.electronic-toolbar h2{min-width:0;font-size:clamp(20px,5.5vw,26px);word-break:keep-all}.electronic-toolbar .secondary-button{flex:0 0 auto;align-self:auto;padding:9px 11px;font-size:12px}.electronic-sheet{padding:18px}.electronic-sheet-header{grid-template-columns:144px minmax(420px,1fr) 270px}}

@media print {
  .electronic-page { width:100%; max-width:none; margin:0; }
  .electronic-toolbar { display:none; }
  .electronic-sheet-wrap { overflow:visible; border-radius:0; box-shadow:none; }
  .electronic-sheet { width:100%; min-width:0; margin:0; padding:8mm; border:0; }
  .electronic-sheet-header { grid-template-columns:16.6667% minmax(0,1fr) 31.25%; break-inside:avoid; }
  .electronic-sheet-header h1 { font-size:24px; letter-spacing:0; white-space:nowrap; }
  .electronic-company img { max-width:calc(100% - 12px); max-height:68px; }
  .approval-grid th,.approval-grid td { border-color:#23384d; }
}

/* Shinhan Card UniSafeMail import */
.card-statement-import{margin:18px 0;padding:20px;border:1px solid #cbd8e3;border-radius:10px;background:#f8fafc}.card-statement-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.card-statement-heading h3{margin:0;color:var(--navy)}.card-statement-heading p{margin:6px 0 0;color:#60758d;font-size:13px}.statement-file-name{max-width:45%;overflow:hidden;color:#405773;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.statement-dropzone{display:flex;align-items:center;justify-content:center;gap:10px;min-height:92px;margin-top:16px;padding:16px;border:2px dashed #9eb1c3;border-radius:9px;background:#fff;color:#526b84;outline:none;transition:.2s}.statement-dropzone:focus,.statement-dropzone.dragging{border-color:#0d6f8c;background:#edf8fb}.statement-dropzone svg{width:30px;height:30px;fill:none;stroke:#0d6f8c;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.statement-dropzone span{color:#8293a5}.statement-message{min-height:20px;margin:9px 0 0;font-size:13px;font-weight:750}.statement-message.error,.statement-modal-error{color:#c93425}.statement-message.success{color:#16834b}.statement-results{margin-top:20px;padding-top:18px;border-top:1px solid #d8e1e8}.statement-results .expense-heading>div{color:#405773}.statement-table{width:100%;min-width:900px;border-collapse:collapse;table-layout:fixed;background:#fff}.statement-table th,.statement-table td{padding:9px;border:1px solid #cbd8e3;vertical-align:middle}.statement-table th{background:#eaf0f5;color:var(--navy);text-align:center}.statement-table th:first-child,.statement-table td:first-child{width:52px;text-align:center}.statement-table th:nth-child(2){width:115px}.statement-table th:nth-child(4){width:125px}.statement-table th:nth-child(5){width:125px}.statement-table input:not([type=checkbox]),.statement-table select{width:100%;min-height:38px;padding:7px;border:1px solid #b7c3ce;border-radius:5px}.statement-table td:nth-child(4){text-align:right;font-weight:800}.statement-cancelled{background:#fff3f1;color:#a8271c}.statement-cancelled small{padding:2px 5px;border-radius:4px;background:#f04a38;color:#fff}.statement-actions{display:flex;justify-content:flex-end;margin-top:12px}.statement-password-modal{position:fixed;z-index:1200;inset:0}.statement-password-modal[hidden]{display:none}.statement-modal-backdrop{position:absolute;inset:0;background:rgba(3,31,59,.68)}.statement-password-dialog{position:relative;width:min(440px,calc(100% - 32px));margin:clamp(60px,15vh,150px) auto 0;padding:24px;border-radius:12px;background:#fff;box-shadow:0 20px 55px rgba(3,31,59,.28)}.statement-password-dialog h3{margin:0;color:var(--navy)}.statement-password-dialog>p{color:#60758d}.statement-password-dialog label{display:block;margin-bottom:7px;color:#294863;font-weight:750}.statement-password-field{display:grid;grid-template-columns:minmax(0,1fr) auto}.statement-password-field input{min-width:0;height:46px;padding:10px 12px;border:1px solid #afbfcc;border-radius:7px 0 0 7px;font-size:17px}.statement-password-field button{min-width:64px;border-radius:0 7px 7px 0;background:#0d3b66}.statement-modal-error{min-height:21px;margin:8px 0;font-size:13px;font-weight:750}.statement-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.statement-modal-open{overflow:hidden}
.statement-table-scroll{width:100%;max-height:400px;overflow-x:hidden;overflow-y:auto;border:1px solid #cbd8e3}.statement-table-scroll .statement-table{width:100%;min-width:0;table-layout:fixed;font-size:13px}.statement-table-scroll .statement-table th,.statement-table-scroll .statement-table td{height:40px;padding:6px;white-space:nowrap}.statement-table-scroll .statement-table th{position:sticky;z-index:2;top:0}.statement-table-scroll .statement-table th:first-child,.statement-table-scroll .statement-table td:first-child{width:72px;text-align:center}.statement-table-scroll .statement-table th:nth-child(2){width:110px}.statement-table-scroll .statement-table th:nth-child(3){width:120px}.statement-table-scroll .statement-table th:nth-child(4){width:120px}.statement-table-scroll .statement-table th:nth-child(5){width:auto}.statement-table-scroll .statement-table input:not([type=checkbox]),.statement-table-scroll .statement-table select{width:100%;min-width:0;height:32px;min-height:30px;padding:4px 7px;font-size:13px}.statement-table-scroll .statement-table td:nth-child(3){text-align:left;font-weight:400}.statement-table-scroll .statement-table td:nth-child(4){text-align:right;font-weight:800}.statement-detail-field{position:relative}.expense-row-added{animation:expense-row-highlight 1.8s ease-out}@keyframes expense-row-highlight{0%,65%{background:#fff4d8}100%{background:transparent}}
@media(max-width:760px){.card-statement-import{padding:15px}.card-statement-heading{align-items:stretch;flex-direction:column;gap:8px}.statement-file-name{max-width:100%}.statement-dropzone{flex-direction:column;text-align:center}.statement-results .expense-heading{align-items:flex-start;flex-direction:column}.statement-password-dialog{margin-top:30px}.statement-modal-actions button{flex:1}.statement-table-scroll .statement-table th:nth-child(2){width:96px}.statement-table-scroll .statement-table th:nth-child(3){width:100px}.statement-table-scroll .statement-table th:nth-child(4){width:102px}}

/* Survey statistics: compact aligned content */
.portal-content-shell { width:100%; max-width:1180px; margin-right:auto; margin-left:auto; }

/* Compact expense tables — shared by statement import and settlement rows */
.electronic-page {
  --expense-row-height: 40px;
  --expense-control-height: 32px;
  --expense-cell-padding-y: 4px;
  --expense-cell-padding-x: 7px;
  --expense-table-font-size: 13px;
  --expense-table-border: #cbd8e3;
  --expense-table-head: #eaf0f5;
}
.electronic-page .compact-expense-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  font-family: inherit;
  font-size: var(--expense-table-font-size);
  line-height: 1.25;
}
.electronic-page .compact-expense-table th,
.electronic-page .compact-expense-table td {
  height: var(--expense-row-height);
  padding: var(--expense-cell-padding-y) var(--expense-cell-padding-x);
  border: 1px solid var(--expense-table-border);
  vertical-align: middle;
  white-space: nowrap;
}
.electronic-page .compact-expense-table th {
  background: var(--expense-table-head);
  color: var(--navy);
  font-size: 13px;
  font-weight: 800;
  text-align: center;
}
.electronic-page .compact-expense-table input,
.electronic-page .compact-expense-table select,
.electronic-page .compact-expense-table button,
.electronic-page .expense-heading button,
.electronic-page .statement-actions button {
  font-family: inherit;
  font-size: inherit;
}
.electronic-page .compact-expense-table input:not([type=checkbox]),
.electronic-page .compact-expense-table select {
  width: 100%;
  min-width: 0;
  height: var(--expense-control-height);
  min-height: var(--expense-control-height);
  padding: 4px 7px;
  border: 1px solid #b7c3ce;
  border-radius: 5px;
  line-height: 1.2;
}
.electronic-page .expense-table-scroll {
  width: 100%;
  max-height: 404px;
  overflow: auto;
  border: 1px solid var(--expense-table-border);
}
.electronic-page .expense-table-scroll .expense-table { min-width: 0; }
.electronic-page .expense-table-scroll thead th {
  position: sticky;
  z-index: 3;
  top: 0;
}
.electronic-page .expense-table th:nth-child(1) { width: 112px; }
.electronic-page .expense-table th:nth-child(2) { width: 82px; }
.electronic-page .expense-table th:nth-child(3) { width: 118px; }
.electronic-page .expense-table th:nth-child(4) { width: auto; }
.electronic-page .expense-table th:nth-child(5) { width: 116px; }
.electronic-page .expense-table th:nth-child(6) { width: 112px; }
.electronic-page .expense-table .expense-amount { text-align: right; }
.electronic-page .expense-table tfoot th,
.electronic-page .expense-table tfoot td { height: 28px; padding-top: 3px; padding-bottom: 3px; }
.electronic-page .expense-row-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 3px;
  margin: 0;
  white-space: nowrap;
}
.electronic-page .expense-row-actions button {
  flex: 0 0 auto;
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  margin: 0;
  padding: 2px;
  border-radius: 4px;
  font-size: 12px;
  line-height: 1;
}
.electronic-page .expense-row-actions .remove-expense-row {
  width: auto;
  min-width: 42px;
  padding: 2px 6px;
}
.electronic-page .card-statement-import { margin: 14px 0 0; padding: 16px; }
.electronic-page .statement-dropzone { min-height: 72px; margin-top: 10px; padding: 12px; }
.electronic-page .statement-message { min-height: 16px; margin-top: 6px; }
.electronic-page .statement-results { margin-top: 12px; padding-top: 12px; }
.electronic-page .statement-actions { margin-top: 8px; }
.electronic-page.travel-expense-page .expense-section { margin-top: 22px; }
.electronic-page.travel-expense-page .expense-heading { margin-bottom: 8px; }
.electronic-page.travel-expense-page .settlement-applicant-row { margin-bottom: 14px; }
.electronic-page.travel-expense-page .electronic-submit { margin-top: 14px; }

@media print {
  .electronic-page .expense-table-scroll {
    max-height: none;
    overflow: visible;
    border: 0;
  }
  .electronic-page .expense-table-scroll thead th { position: static; }
}

/* Travel expense wide editor, row ordering and report preview */
.electronic-page.travel-expense-page { max-width: 1180px; }
.travel-expense-page .electronic-toolbar { width: 100%; }
.travel-expense-page .electronic-sheet-wrap { width: 100%; max-width: none; }
.travel-expense-page .electronic-sheet {
  width: 100%;
  min-width: 1080px;
}
.travel-expense-page.expense-edit-page .expense-table th:nth-child(1) { width: 142px; }
.travel-expense-page.expense-edit-page .expense-table th:nth-child(2) { width: 92px; }
.travel-expense-page.expense-edit-page .expense-table th:nth-child(3) { width: 160px; }
.travel-expense-page.expense-edit-page .expense-table th:nth-child(4) { width: 34%; }
.travel-expense-page.expense-edit-page .expense-table th:nth-child(5) { width: 142px; }
.travel-expense-page.expense-edit-page .expense-table th:nth-child(6) { width: 64px; }
.travel-expense-page.expense-edit-page .expense-table th,
.travel-expense-page.expense-edit-page .expense-table td { text-align: center; }
.travel-expense-page.expense-edit-page .expense-table td:nth-child(4),
.travel-expense-page.expense-edit-page .expense-table td:nth-child(4) input { text-align: left; }
.travel-expense-page.expense-edit-page .expense-table td:nth-child(5),
.travel-expense-page.expense-edit-page .expense-table td:nth-child(5) input { text-align: right; }
.travel-expense-page.expense-edit-page .expense-table input[type=date],
.travel-expense-page.expense-edit-page .expense-table select { text-align: center; text-align-last: center; }
.travel-expense-page .expense-table input[type=date] { min-width: 122px; }
.travel-expense-page .expense-table select[name=expense_category] { padding-right: 24px; }
.travel-expense-page .remove-expense-row {
  width: 27px;
  min-width: 27px;
  height: 28px;
  min-height: 28px;
  margin: 0;
  padding: 2px;
  border-radius: 4px;
  font: inherit;
  font-size: 12px;
  line-height: 1;
}
.travel-expense-page .remove-expense-row { width: auto; min-width: 44px; padding: 2px 6px; }
.travel-expense-page .electronic-action-bar { align-items: center; gap: 8px; }
.travel-expense-page .expense-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  height: 38px;
  margin: 0;
  padding: 7px 14px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0;
}
.travel-expense-page button,
.statement-password-dialog button,
.expense-preview-dialog button {
  font-family: inherit;
  font-size: 13px !important;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0;
}
.travel-expense-page .expense-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.travel-expense-page .expense-reset-button {
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #d69a5d;
  border-radius: 7px;
  background: #fffaf3;
  color: #9a5716;
}
.travel-expense-page .expense-reset-button:hover { border-color:#f97316; background:#fff3e8; color:#c2410c; }
.travel-expense-page .statement-table th:first-child,
.travel-expense-page .statement-table td:first-child { width: 56px; text-align:center; }
.travel-expense-page .statement-table th:nth-child(2),
.travel-expense-page .statement-table td:nth-child(2) { width: 126px; text-align:center; }
.travel-expense-page .statement-table th:nth-child(3),
.travel-expense-page .statement-table td:nth-child(3) { width: 168px; text-align:center; font-weight:600; }
.travel-expense-page .statement-table th:nth-child(3),
.travel-expense-page .statement-table select.statement-category {
  font-family:inherit;
  font-size:inherit;
  font-weight:600;
}
.travel-expense-page .statement-table th:nth-child(4) { width:auto; }
.travel-expense-page .statement-table td:nth-child(4),
.travel-expense-page .statement-table td:nth-child(4) input { text-align:left; }
.travel-expense-page .statement-table th:nth-child(5),
.travel-expense-page .statement-table td:nth-child(5) { width:142px; text-align:center; vertical-align:middle; font-weight:800; white-space:nowrap; }
.travel-expense-page .statement-table select { text-align:center; text-align-last:center; }
.travel-expense-page .statement-table input { font-family:inherit; }
.travel-expense-page .expense-table tfoot tr:not(.grand-total-row) th,
.travel-expense-page .expense-table tfoot tr:not(.grand-total-row) td {
  height:44px;
  padding-top:9px;
  padding-bottom:9px;
  font-size:15px;
}
.travel-expense-page .expense-table tfoot td { font-size:16px; font-weight:900; text-align:right; }
.travel-expense-page .expense-table tfoot .grand-total-row th,
.travel-expense-page .expense-table tfoot .grand-total-row td {
  height:48px;
  padding-top:10px;
  padding-bottom:10px;
  background:#e4edf5;
  font-size:16px;
  font-weight:900;
}
.travel-expense-page .expense-table tfoot .grand-total-row td { font-size:17px; color:var(--navy); }
.expense-preview-dialog {
  width: min(94vw,1020px);
  max-width: 1020px;
  height: min(900px,calc(100vh - 32px));
  max-height: calc(100vh - 32px);
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 14px;
  background: #eef2f5;
  box-shadow: 0 24px 70px rgba(3,31,59,.3);
}
.expense-preview-dialog::backdrop { background: rgba(3,31,59,.68); }
.expense-preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 18px;
  border-bottom: 1px solid #cbd8e3;
  background: #fff;
}
.expense-preview-toolbar h2 { margin: 0; color: var(--navy); font-size: 20px; }
.expense-preview-toolbar > div { display: flex; gap: 8px; }
.expense-preview-scroll { height: calc(100% - 63px); padding: 16px; overflow-x: hidden; overflow-y: auto; }
.expense-preview-document {
  width: 100%;
  min-width: 0;
  margin: 0 auto;
  padding: 20px;
  border: 1px solid #7f8c99;
  background: #fff;
  color: #16283b;
}
.expense-preview-document .electronic-sheet-header { grid-template-columns:132px minmax(0,1fr) 258px; }
.expense-preview-document .electronic-sheet-header h1 { font-size:24px; letter-spacing:0; white-space:nowrap; }
.expense-preview-document .electronic-company img { max-width:calc(100% - 16px); max-height:68px; }
.expense-preview-document .settlement-applicant-row { margin: 12px 0; }
.expense-preview-document .settlement-applicant-row th,
.expense-preview-document .settlement-applicant-row td {
  height:40px;
  padding:5px 8px;
  font-size:14px;
  text-align:center;
  vertical-align:middle;
}
.preview-field-value { display:block; min-height:0; padding:0; text-align:center; }
.expense-preview-expenses h3 { margin: 12px 0 8px; color: var(--navy); }
.expense-preview-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
.expense-preview-table th,.expense-preview-table td { height: 36px; padding: 6px 8px; border: 1px solid #526579; vertical-align: middle; }
.expense-preview-table th { background: #eaf0f5; color: var(--navy); text-align: center; }
.expense-preview-table th:nth-child(1) { width:16%; }
.expense-preview-table th:nth-child(2) { width:11%; }
.expense-preview-table th:nth-child(3) { width:16%; }
.expense-preview-table th:nth-child(4) { width:42%; }
.expense-preview-table th:nth-child(5) { width:15%; }
.expense-preview-table td:nth-child(1),
.expense-preview-table td:nth-child(2),
.expense-preview-table td:nth-child(3) { text-align:center; }
.expense-preview-table td:nth-child(4) { text-align:left; }
.expense-preview-table td:nth-child(5) { text-align:right; white-space:nowrap; }
.expense-preview-table .preview-amount,.expense-preview-table tfoot td { text-align: right; white-space: nowrap; font-weight: 800; }
.expense-preview-table tfoot th { text-align: right; }
.expense-preview-print-page { margin: 0; padding: 8mm; background: #fff; }
.expense-preview-print-page .expense-preview-document { width: 100%; min-width: 0; padding: 0; border: 0; }

@media(max-width:760px) {
  .expense-preview-dialog { width: calc(100% - 16px); height: calc(100vh - 16px); max-height: calc(100vh - 16px); }
  .expense-preview-scroll { padding:10px; overflow-x:auto; }
  .expense-preview-document { min-width:880px; }
}
@media print {
  .expense-preview-print-page { padding: 0; }
  .expense-preview-print-page .expense-preview-document { min-width: 0; }
  .expense-preview-document .settlement-applicant-row th,
  .expense-preview-document .settlement-applicant-row td { height:40px; padding:5px 8px; text-align:center; vertical-align:middle; }
  .expense-preview-table { break-inside: auto; }
  .expense-preview-table tr { break-inside: avoid; break-after: auto; }
  .expense-preview-table thead { display: table-header-group; }
  .expense-preview-table tfoot { display: table-footer-group; }
}
.calculator-page-shell { min-width:0; }
.calculator-page-shell .analysis-header,
.calculator-page-shell .tech-header,
.calculator-page-shell .calculator-panel,
.calculator-page-shell .calculation-history,
.calculator-page-shell .analysis-grid,
.calculator-page-shell .analysis-section { width:100%; max-width:100%; }
.calculator-page-shell .calculator-form,
.calculator-page-shell .input-grid,
.calculator-page-shell .section-calc-layout,
.calculator-page-shell .analysis-grid { min-width:0; }
.calculator-page-shell .calc-field,
.calculator-page-shell .input-with-unit,
.calculator-page-shell input,
.calculator-page-shell select { min-width:0; }
.calculator-page-shell .table-wrap { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.calculator-page-shell svg,
.calculator-page-shell canvas { max-width:100%; }
.project-page-shell { min-width:0; }
.project-page-shell .analysis-header,
.project-page-shell .project-hub-header,
.project-page-shell .project-hub-grid,
.project-page-shell .card,
.project-page-shell .schedule-manager,
.project-page-shell .schedule-board,
.project-page-shell .incident-editor,
.project-page-shell .incident-history { width:100%; max-width:100%; }
.project-page-shell .table-wrap { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.authenticated .portal-content:has(.project-dashboard){padding:10px clamp(16px,2.2vw,42px) 16px;overflow-x:hidden;background:#f7f9fc}
.project-dashboard{width:100%;max-width:none;min-width:0;color:#142c47}.project-dashboard *{box-sizing:border-box}.project-dashboard-title{height:43px;display:flex;align-items:center}.project-dashboard-title h2{margin:0;font-size:25px;line-height:1;letter-spacing:-.03em}.project-dashboard-layout{display:grid;grid-template-columns:330px minmax(0,1fr);min-height:710px;border:1px solid #d9e3ed;border-radius:10px;background:#fff;overflow:hidden}.project-list-panel{min-width:0;border-right:1px solid #d9e3ed;background:#fff}.project-search{position:relative;margin:14px 14px 8px}.project-search input{width:100%;height:38px;padding:0 40px 0 12px;border:1px solid #ccd8e5;border-radius:7px;background:#fff;font-size:12px}.project-search span{position:absolute;right:13px;top:8px;font-size:21px}.project-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:0 14px 10px}.project-filters button{min-height:30px;padding:4px;border:1px solid #d9e3ed;border-radius:6px;background:#fff;color:#60758d;font-size:11px}.project-filters button.active{border-color:#1687e8;background:#eaf4ff;color:#0872ce;font-weight:800}.project-list-item{position:relative;display:grid;width:100%;grid-template-columns:38px minmax(0,1fr) 68px;gap:9px;align-items:center;padding:14px;border:0;border-top:1px solid #e8eef4;background:#fff;color:#142c47;text-align:left}.project-list-item.active{background:#edf6ff}.project-list-item.active:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:#1687e8}.project-list-icon,.project-summary-icon{display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#469bf0,#176ee0);color:#fff}.project-list-icon{width:35px;height:35px}.project-list-copy,.project-list-state{display:grid;min-width:0;gap:5px}.project-list-copy strong,.project-list-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-list-copy strong{font-size:13px}.project-list-copy small{color:#71869d;font-size:10px}.project-list-state{text-align:right}.project-list-state b{font-size:11px}.project-list-state em{justify-self:end;padding:3px 6px;border:1px solid #7bb4ed;border-radius:5px;color:#0872ce;font-size:9px;font-style:normal;white-space:nowrap}.project-list-progress{grid-column:2/-1;height:3px;border-radius:9px;background:#e7edf3;overflow:hidden}.project-list-progress i{display:block;height:100%;background:#1687e8}.project-list-empty,.project-empty{margin:16px 0;color:#8092a5;font-size:11px;text-align:center}.project-detail-area,.project-detail{min-width:0}.project-detail{display:none}.project-detail.active{display:block}.project-summary{display:grid;grid-template-columns:52px 190px minmax(0,1fr);align-items:center;gap:14px;min-height:114px;padding:15px 20px;border-bottom:1px solid #d9e3ed}.project-summary-icon{width:52px;height:52px;font-size:22px}.project-summary-name{min-width:0}.project-summary-name h3{margin:0 0 6px;font-size:19px}.project-summary-name p{margin:0;overflow:hidden;color:#71869d;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.project-summary dl{display:grid;grid-template-columns:.8fr .9fr 1.35fr 1.45fr .75fr;min-width:0;margin:0}.project-summary dl>div{min-width:0;padding:0 16px;border-left:1px solid #e0e7ee}.project-summary dt{margin-bottom:7px;color:#71869d;font-size:10px}.project-summary dd{margin:0;overflow:hidden;font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.summary-progress dd{display:flex;align-items:center;gap:8px}.summary-progress i{width:90px;height:7px;border-radius:9px;background:#e6edf4;overflow:hidden}.summary-progress u{display:block;height:100%;border-radius:9px;background:#1687e8}.status-badge{display:inline-block;padding:3px 7px;border:1px solid #9ac6f1;border-radius:5px;background:#eef7ff;color:#0872ce;font-size:9px;white-space:nowrap}.project-tool-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));height:84px;border-bottom:1px solid #d9e3ed}.project-tool-tabs a{display:flex;min-width:0;align-items:center;justify-content:center;gap:7px;padding:8px 5px;color:#17324d;text-decoration:none;white-space:nowrap}.project-tool-tabs i,.timeline-heading i,.project-data-card h4 i{display:grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:8px;color:#1687e8;font-size:15px;font-style:normal}.project-tool-tabs span{overflow:hidden;font-size:10px;text-overflow:ellipsis}.tool-safety-status i{color:#25a75b}.tool-incident-report i{color:#f04a38}.tool-lessons-learned i{color:#8256d7}.tool-drawing-management i{color:#f28a1a}.tool-quality-management i{color:#16a5a5}.tool-schedule-status i{color:#1687e8}.project-status-grid{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(520px,2fr);gap:12px;padding:12px;background:#f8fafc}.project-activity-card,.project-data-card{min-width:0;border:1px solid #dbe4ec;border-radius:8px;background:#fff;overflow:hidden}.project-activity-card{grid-row:span 2;padding:12px}.project-activity-card>header h4,.project-data-card h4{margin:0;font-size:13px}.timeline-group{padding:10px 0;border-top:1px solid #edf1f5}.timeline-heading{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px}.timeline-heading strong{font-size:11px}.timeline-heading a,.project-data-card header a{color:#60758d;font-size:9px;text-decoration:none;white-space:nowrap}.activity-row{display:grid;grid-template-columns:minmax(80px,1fr) auto minmax(62px,.8fr);align-items:center;gap:6px;margin:5px 0 0 36px;color:#61768c;font-size:9px}.activity-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-side-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-data-card{min-height:148px;padding:12px;border-top:2px solid #1687e8}.project-data-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:8px;border-bottom:1px solid #e5ebf1}.project-data-card h4{display:flex;align-items:center;gap:7px;white-space:nowrap}.project-data-card h4 i{width:22px;height:22px;border:0}.data-row{display:grid;grid-template-columns:minmax(0,1fr) 65px 72px;gap:6px;padding:9px 2px;border-bottom:1px solid #edf1f5;color:#60758d;font-size:9px}.data-row strong{overflow:hidden;color:#294863;text-overflow:ellipsis;white-space:nowrap}.data-row time{text-align:right;white-space:nowrap}.project-attention{border-top-color:#4c91ef}.attention-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto 55px 55px;align-items:center;gap:5px;padding:8px 0;border-bottom:1px solid #edf1f5;font-size:9px}.attention-more{display:block;padding-top:9px;color:#0872ce;font-size:9px;text-align:center;text-decoration:none}.project-list-item[hidden]{display:none}
@media(max-width:1100px){.project-dashboard-layout{grid-template-columns:280px minmax(0,1fr)}.project-summary{grid-template-columns:44px minmax(130px,1fr)}.project-summary dl{grid-column:1/-1}.project-status-grid{grid-template-columns:1fr}.project-tool-tabs{overflow-x:auto}.project-tool-tabs a{min-width:125px}}
@media(max-width:760px){.project-dashboard-layout{display:block}.project-list-panel{border-right:0;border-bottom:1px solid #d9e3ed}.project-list{max-height:250px;overflow:auto}.project-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-summary dl>div{padding:0 8px}.project-side-grid{grid-template-columns:1fr}.project-status-grid{padding:8px}.project-dashboard-title{height:38px}}
.project-daily-shell .upload-form { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.project-daily-shell .upload-form input[type="file"],
.project-daily-shell .upload-form button { min-height:44px; height:44px; }
.project-daily-shell .daily-meta-grid,
.project-daily-shell .daily-text-grid,
.project-daily-shell .equipment-grid { min-width:0; }
@media(max-width:900px) {
  .project-daily-shell .equipment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  .project-daily-shell .upload-form,
  .project-daily-shell .daily-meta-grid,
  .project-daily-shell .daily-text-grid,
  .project-daily-shell .equipment-grid { grid-template-columns:minmax(0,1fr); }
  .project-daily-shell .upload-form button { width:100%; }
}
.survey-stats-page { min-width:0; }
.survey-stats-header { align-items:center; margin-bottom:12px; }
.survey-stats-header .eyebrow { margin:0 0 2px; }
.survey-stats-header h2 { margin:2px 0 3px; font-size:clamp(28px,2vw,34px); line-height:1.2; }
.survey-stats-header .button-link { flex:0 0 auto; }
.survey-stats-page .survey-filter {
  display:grid;
  grid-template-columns:minmax(170px,220px) minmax(170px,210px) 20px minmax(170px,210px) auto;
  align-items:end;
  justify-content:center;
  gap:12px;
  padding:20px 24px;
}
.survey-stats-page .survey-filter label { display:flex; min-width:0; flex-direction:column; gap:6px; color:#405773; font-size:13px; font-weight:750; }
.survey-stats-page .survey-filter select,
.survey-stats-page .survey-filter input,
.survey-stats-page .survey-filter button { width:100%; min-width:0; height:44px; min-height:44px; }
.survey-period-separator { display:grid; height:44px; place-items:center; color:#60758d; font-weight:800; }
.survey-stats-page .survey-summary { gap:12px; margin:14px 0; }
.survey-stats-page .survey-summary>div { min-height:78px; padding:13px 17px; }
.survey-stats-page .survey-summary strong { margin-top:3px; font-size:26px; line-height:1.1; }
.survey-stats-page .survey-chart-card,
.survey-stats-page .survey-comments { margin-top:14px; }
@media(max-width:900px) {
  .survey-stats-page .survey-filter { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .survey-period-separator { display:none; }
}
@media(max-width:640px) {
  .survey-stats-header { align-items:stretch; }
  .survey-stats-header .button-link { width:100%; text-align:center; }
  .survey-stats-page .survey-filter { grid-template-columns:minmax(0,1fr); padding:20px; }
  .survey-stats-page .survey-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .survey-stats-page .survey-summary>div { min-height:72px; padding:12px; }
}
@media (max-width: 520px) {
  .authenticated .nav { grid-template-columns: repeat(7, minmax(105px, 1fr)); }
  .home-latest { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .authenticated .brand-logo { width: 100px; }
  .authenticated .site-header h1 { font-size: 18px; }
  .authenticated .userbox { justify-content: flex-start; }
  .feature-grid { grid-template-columns: 1fr; }
}


/* Account security */
.password-change-form { margin-top: 20px; }
.password-change-form .hint { margin: 2px 0 10px; line-height: 1.6; }
.admin-users-panel { margin-bottom: 28px; }
.admin-users-panel td:first-child { color: var(--navy); font-weight: 800; }


/* Legacy login screen styles retired in favor of static/login.css.
.login-page {
  width: 100%;
  min-width: 100vw;
  min-height: 100vh;
  margin: 0;
  padding: 0;
  overflow-x: hidden;
  background: #031f3b;
}
.login-page .page-shell { width: 100%; min-height: 100vh; background: #031f3b; }
.login-page .site-header {
  height: 92px;
  min-height: 92px;
  padding: 12px clamp(16px, 3vw, 56px);
  border-bottom: 1px solid #dbe3eb;
  background: #fff;
}
.login-page .brand-block { gap: clamp(16px, 1.5vw, 26px); }
.login-page .brand-logo { width: 180px; height: 76px; flex: 0 0 180px; object-fit: contain; object-position: left center; }
.login-page .brand-divider { height: 38px; background: #9aabba; }
.login-page .site-header h1 { color: var(--navy); font-size: 21px; font-weight: 800; letter-spacing: .08em; }
.login-page .userbox { display: none; }
.login-page .content-area {
  min-height: calc(100vh - 92px);
  margin: 0;
  background:
    linear-gradient(105deg, rgba(3,31,59,.96), rgba(6,40,74,.9) 54%, rgba(13,59,102,.84)),
    url('/static/smart-office-hero.png') center 54% / cover no-repeat;
}
.login-page .login-shell {
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  min-height: calc(100vh - 92px);
  padding: clamp(28px, 5vh, 68px) clamp(16px, 3vw, 56px);
  overflow: hidden;
}
.login-page .login-shell::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: .035;
  background-image:
    linear-gradient(30deg, transparent 47%, #c9d8e5 48% 49%, transparent 50%),
    linear-gradient(150deg, transparent 47%, #c9d8e5 48% 49%, transparent 50%),
    radial-gradient(circle at 72% 44%, transparent 0 52px, #c9d8e5 53px 54px, transparent 55px);
  background-size: 120px 70px, 120px 70px, 240px 240px;
}
.login-page .login-card {
  position: relative;
  width: min(480px, 100%);
  padding: clamp(28px, 3vw, 42px);
  overflow: hidden;
  border: 1px solid rgba(197,212,225,.95);
  border-radius: 16px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 65px rgba(0,15,32,.34);
}
.login-page .login-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; background: linear-gradient(90deg, var(--primary), #ff745f); }
.login-card-heading { margin-bottom: 25px; }
.login-product-name { margin: 0 0 8px; color: var(--primary); font-size: 12px; font-weight: 900; letter-spacing: .16em; }
.login-card-heading h2 { margin: 0; color: var(--navy); font-size: clamp(25px, 2.1vw, 31px); line-height: 1.25; word-break: keep-all; }
.login-card-heading > p:last-child { margin: 10px 0 0; color: #405773; font-size: 14px; }
.login-form { gap: 16px; }
.login-field { display: grid; gap: 7px; }
.login-field label { color: var(--navy); font-size: 13px; font-weight: 800; }
.login-field input { width: 100%; height: 50px; padding: 12px 14px; border: 1px solid #cbd7e2; border-radius: 9px; background: #f8fafc; color: var(--navy); font-size: 15px; transition: border-color .2s, box-shadow .2s, background .2s; }
.login-field input:focus { outline: none; border-color: var(--navy-secondary); background: #fff; box-shadow: 0 0 0 4px rgba(13,59,102,.12); }
.password-input-wrap { position: relative; }
.password-input-wrap input { padding-right: 52px; }
.password-toggle {
  position: absolute;
  top: 50%;
  right: 8px;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #647b90;
}
.password-toggle:hover, .password-toggle:focus-visible { outline: none; background: #eaf0f5; color: var(--navy); }
.password-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.password-toggle .eye-closed { display: none; }
.password-toggle[aria-pressed="true"] .eye-open { display: none; }
.password-toggle[aria-pressed="true"] .eye-closed { display: block; }
.login-submit { min-height: 50px; margin-top: 2px; border-radius: 9px; background: var(--primary); font-size: 15px; font-weight: 900; box-shadow: 0 9px 20px rgba(240,74,56,.24); transition: transform .2s, background .2s, box-shadow .2s; }
.login-submit:hover { background: var(--primary-dark); transform: translateY(-1px); box-shadow: 0 12px 24px rgba(240,74,56,.3); }
.login-submit:focus-visible { outline: 3px solid rgba(240,74,56,.3); outline-offset: 2px; }
.login-guidance { margin-top: 22px; padding: 15px 16px; border: 1px solid #dce6ee; border-radius: 10px; background: #f2f6f9; color: #405773; font-size: 12px; line-height: 1.65; }
.login-guidance p { margin: 0; }
.login-guidance p + p { margin-top: 3px; }
.login-alert { width: min(480px, calc(100% - 32px)); margin-bottom: 14px; padding: 11px 14px; border-radius: 10px; font-size: 13px; font-weight: 700; }
.login-alert.danger { border: 1px solid #fecaca; background: #fef2f2; color: #b91c1c; }
.login-alert.warning { border: 1px solid #fde68a; background: #fffbeb; color: #92400e; }
.login-alert.success { border: 1px solid #bbf7d0; background: #ecfdf3; color: #047857; }
.login-alert-toast { position: fixed; z-index: 20; top: 108px; right: clamp(16px, 3vw, 56px); width: auto; margin: 0; border: 1px solid #8dacbf; background: rgba(3,31,59,.94); color: #fff; box-shadow: 0 12px 28px rgba(0,15,32,.25); animation: login-toast-dismiss 3s ease forwards; }
@keyframes login-toast-dismiss { 0%, 78% { opacity: 1; transform: translateY(0); visibility: visible; } 100% { opacity: 0; transform: translateY(-8px); visibility: hidden; } }
@media (max-width: 700px) {
  .login-page .site-header { height: 84px; min-height: 84px; padding: 10px 16px; flex-direction: row; align-items: center; }
  .login-page .brand-block { gap: 12px; }
  .login-page .brand-logo { width: 126px; height: 58px; flex-basis: 126px; }
  .login-page .brand-divider { height: 30px; }
  .login-page .site-header h1 { font-size: 14px; }
  .login-page .content-area, .login-page .login-shell { min-height: calc(100vh - 84px); }
  .login-page .login-shell { padding: 24px 16px; }
  .login-page .login-card { padding: 28px 22px; border-radius: 14px; }
  .login-alert-toast { top: 96px; left: 16px; right: 16px; width: auto; text-align: center; }
}
@media (max-width: 390px) {
  .login-page .brand-logo { width: 112px; flex-basis: 112px; }
  .login-page .site-header h1 { font-size: 12px; letter-spacing: .05em; }
  .login-page .login-card { padding: 25px 18px; }
}

*/
/* Today work management */
.work-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(18px,2vw,32px);align-items:start}.work-main{min-width:0}
.work-sidebar{position:sticky;top:18px;display:flex;flex-direction:column;gap:6px;padding:22px 14px;border-radius:16px;background:#031f3b;box-shadow:0 16px 32px rgba(3,31,59,.18)}.work-sidebar h2{margin:0 10px 14px;color:#fff;font-size:18px}.work-sidebar a{padding:12px 14px;border:1px solid rgba(172,201,222,.22);border-radius:10px;color:#d8e5ef;font-weight:700;text-decoration:none}.work-sidebar a:hover,.work-sidebar a.active{border-color:#f04a38;background:#f04a38;color:#fff}
.work-page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.work-page-header h2{margin:4px 0 6px;color:#06284a;font-size:clamp(28px,2vw,38px)}.work-page-header p{margin:0;color:#60758d}.work-header-actions,.report-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.work-filter-card{margin-bottom:18px}.work-filter-form{display:grid;grid-template-columns:repeat(6,minmax(115px,1fr));gap:12px;align-items:end}.work-filter-form label,.work-editor-form label,.email-compose-form label,.settings-card label,.report-filter label{display:flex;flex-direction:column;gap:6px;color:#405773;font-size:13px;font-weight:750}.work-filter-form input,.work-filter-form select{width:100%;min-width:0;height:44px}.work-filter-form .work-keyword{grid-column:span 2}.filter-actions{display:flex;gap:8px}.filter-actions button,.filter-actions a{flex:1;min-height:44px}
.work-split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.65fr);gap:18px;align-items:start}.work-list-card,.work-editor-card{min-width:0}.work-editor-card{position:sticky;top:18px}.work-table-wrap,.dashboard-work-table-wrap{width:100%;overflow-x:auto}.work-table{min-width:1050px}.work-table th{white-space:nowrap;color:#405773;font-size:12px}.work-table td{vertical-align:middle;color:#405773;font-size:13px}.work-table td strong,.work-table td span{display:block}.work-table td>span{margin-top:4px;color:#71869d;font-size:12px}.work-table .overdue-row{background:#fff8f7}
.priority-badge,.status-badge{display:inline-flex!important;align-items:center;justify-content:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:12px!important;font-weight:800;white-space:nowrap}.priority-badge.priority-긴급{background:#fee2e2;color:#b91c1c!important}.priority-badge.priority-높음{background:#ffedd5;color:#c2410c!important}.priority-badge.priority-보통{background:#dbeafe;color:#1d4ed8!important}.priority-badge.priority-낮음{background:#e2e8f0;color:#475569!important}.status-예정{background:#e2e8f0;color:#475569!important}.status-진행-중{background:#dbeafe;color:#1d4ed8!important}.status-검토-중{background:#ede9fe;color:#6d28d9!important}.status-완료,.status-sent{background:#dcfce7;color:#15803d!important}.status-failed{background:#fee2e2;color:#b91c1c!important}.status-saved{background:#fef3c7;color:#a16207!important}
.overdue-text{margin-top:4px;color:#dc2626!important;font-size:11px!important;font-weight:800}.overdue-text::before{content:"!";display:inline-grid;place-items:center;width:15px;height:15px;margin-right:4px;border-radius:50%;background:#dc2626;color:#fff}.progress-track{display:block!important;width:90px;height:7px;margin-top:6px!important;overflow:hidden;border-radius:999px;background:#dbe4ec}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0d3b66,#18a6a6)}
.row-actions{white-space:nowrap}.row-actions form{display:inline}.row-actions a,.text-button{padding:4px;border:0;background:none;color:#0d3b66;font-size:12px;font-weight:800}.danger-text{color:#c92c20}.danger-button{background:#b42318}.danger-button:hover{background:#8f1f17}.work-editor-form{gap:13px}.work-editor-form input,.work-editor-form select{min-height:44px}.work-editor-form textarea{resize:vertical}.form-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.progress-input{display:grid;grid-template-columns:minmax(80px,1fr) 72px 18px;align-items:center;gap:8px}.progress-input input[type=range]{min-width:0}.progress-input input[type=number]{width:72px}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:18px}.pagination a{display:grid;place-items:center;min-width:36px;height:36px;border:1px solid #cbd5e1;border-radius:8px;text-decoration:none}.pagination a.active{border-color:#f04a38;background:#f04a38;color:#fff}
.dashboard-work-panel{margin-bottom:24px;padding:clamp(18px,2vw,28px);border:1px solid rgba(147,174,196,.35);border-radius:16px;background:#fff;box-shadow:0 14px 30px rgba(3,31,59,.12)}.dashboard-work-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.dashboard-work-heading h2{margin:4px 0 0;color:#06284a}.dashboard-work-heading>div:last-child{display:flex;gap:8px}.dashboard-work-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.dashboard-work-stats>div{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border:1px solid #d9e2ea;border-radius:12px;background:#f8fafc;color:#405773}.dashboard-work-stats strong{color:#0d3b66;font-size:25px}.dashboard-work-stats .urgent strong{color:#f04a38}.dashboard-work-stats .complete strong{color:#15803d}.dashboard-work-table{min-width:900px}.dashboard-work-table td,.dashboard-work-table th{color:#405773}.dashboard-work-table td a{color:#06284a;font-weight:800}
.report-preview-shell,.report-settings-shell{width:100%}.report-preview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:18px;align-items:start}.email-compose-form{gap:13px}.email-compose-form textarea{resize:vertical}.report-summary-card{position:sticky;top:18px}.report-summary-card dl{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.report-summary-card dl div{padding:12px;border-radius:10px;background:#f1f5f9}.report-summary-card dt{color:#71869d;font-size:12px}.report-summary-card dd{margin:3px 0 0;color:#06284a;font-weight:800}.report-summary-card ol{padding-left:22px}.report-summary-card li{margin:12px 0;color:#405773}.report-summary-card li span{display:block;margin-top:3px;color:#71869d;font-size:12px}.report-filter-card{margin-bottom:18px}.report-filter{display:flex;align-items:end;gap:12px}.report-filter label{min-width:180px}.report-filter input,.report-filter select,.report-filter button{min-height:44px}.settings-card{margin-bottom:18px}.settings-card form{max-width:900px}.settings-card textarea{resize:vertical}
@media(max-width:1200px){.work-layout{grid-template-columns:1fr}.work-sidebar{position:static;flex-direction:row;flex-wrap:wrap}.work-sidebar h2{width:100%}.work-sidebar a{flex:1 1 150px;text-align:center}.work-split{grid-template-columns:1fr}.work-editor-card{position:static}.work-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.work-page-header,.dashboard-work-heading{align-items:flex-start;flex-direction:column}.work-header-actions,.dashboard-work-heading>div:last-child{width:100%}.work-header-actions a,.dashboard-work-heading>div:last-child a{flex:1;text-align:center}.work-filter-form{grid-template-columns:1fr}.work-filter-form .work-keyword{grid-column:auto}.form-pair{grid-template-columns:1fr}.dashboard-work-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-work-stats>div{padding:12px}.report-preview-grid{grid-template-columns:1fr}.report-summary-card{position:static}.report-filter{align-items:stretch;flex-direction:column}.report-filter label,.report-filter button{width:100%}.work-sidebar{padding:14px 10px}.work-sidebar a{flex:1 1 120px;padding:10px}.progress-input{grid-template-columns:minmax(0,1fr) 70px 16px}}
@media(max-width:420px){.authenticated .hero-work-grid{gap:7px}.authenticated .hero-work-stat{grid-template-columns:32px minmax(0,1fr);gap:8px;min-height:72px;padding:10px 9px}.authenticated .hero-work-stat svg{width:29px;height:29px}.authenticated .hero-work-copy{gap:5px}.authenticated .hero-work-stat span{font-size:12px}.authenticated .hero-work-stat strong{font-size:24px}}

/* Today work: simplified full-width list and horizontal editor */
.work-page-simple{width:100%;min-width:0;box-sizing:border-box}
.work-page-simple .work-page-header{margin-bottom:18px}
.work-stack{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:18px}
.work-stack>.work-list-card,.work-stack>.work-editor-card{width:100%;min-width:0;box-sizing:border-box}
.work-stack>.work-editor-card{position:static;top:auto}
.work-page-simple .work-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.work-page-simple .work-table{width:100%;min-width:1050px;table-layout:auto}
.work-task-cell{max-width:420px;min-width:220px}
.work-task-cell>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.work-task-cell>span{overflow-wrap:anywhere}
.work-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 18px;align-items:start}
.work-editor-grid>.form-pair{display:contents}
.work-editor-grid>label,.work-editor-grid>.form-pair>label{min-width:0;margin:0}
.work-editor-grid [hidden]{display:none!important}
.work-editor-grid input,.work-editor-grid select,.work-editor-grid textarea{width:100%;min-width:0;box-sizing:border-box}
.work-editor-grid input:not([type=range]):not([type=file]),.work-editor-grid select{height:44px}
.work-editor-grid textarea{min-height:82px}
.work-editor-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:2px;padding-top:16px;border-top:1px solid #dce5ec}
.work-editor-actions button,.work-editor-actions a{min-width:120px;text-align:center}
@media(max-width:1200px){.work-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.work-page-simple .work-page-header{margin-bottom:16px}.work-stack{gap:16px}.work-editor-grid{grid-template-columns:minmax(0,1fr);gap:14px}.work-editor-actions{flex-direction:column-reverse;align-items:stretch}.work-editor-actions button,.work-editor-actions a{width:100%}.work-task-cell{max-width:280px;min-width:180px}}

/* To Do management */
.todo-page .work-page-header{margin-bottom:18px}
.todo-page .work-header-actions { margin-left:auto; }
.todo-page .work-list-card,
.todo-page .work-editor-card { width:100%; min-width:0; }
.todo-page .work-table-wrap { width:100%; max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.todo-page .todo-table { width:100%; min-width:1100px; table-layout:fixed; }
.todo-page .todo-table th:nth-child(1) { width:250px; }
.todo-page .todo-table th:nth-child(2) { width:280px; }
.todo-page .todo-table th:nth-child(3) { width:82px; }
.todo-page .todo-table th:nth-child(4) { width:108px; }
.todo-page .todo-table th:nth-child(5) { width:122px; }
.todo-page .todo-table th:nth-child(6) { width:108px; }
.todo-page .todo-table th:nth-child(7) { width:108px; }
.todo-page .todo-table th:nth-child(8) { width:220px; }
.todo-page .todo-table th:nth-child(9) { width:112px; }
.todo-page .todo-table th:nth-child(10) { width:148px; }
.todo-page .todo-project-cell,
.todo-page .work-task-cell,
.todo-page .todo-remarks-cell { min-width:0; max-width:none; overflow-wrap:anywhere; }
.todo-page .row-actions { display:flex; align-items:center; gap:2px; white-space:normal; flex-wrap:wrap; }
.todo-page .row-actions form { display:inline-flex; }
.todo-table{min-width:1320px}
.todo-project-cell{min-width:220px;max-width:300px}
.todo-project-cell strong,.todo-remarks-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.todo-remarks-cell{min-width:180px;max-width:280px}
.todo-page,.todo-page input,.todo-page select,.todo-page option,.todo-page textarea,.todo-page button{font-family:'Noto Sans KR','Segoe UI',sans-serif}
.todo-editor-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.todo-entry-row{display:grid;min-width:0;gap:12px 16px;align-items:start}
.todo-entry-first{grid-template-columns:minmax(150px,.28fr) minmax(420px,1.72fr)}
.todo-entry-task,.todo-entry-remarks{grid-template-columns:minmax(0,1fr)}
.todo-entry-meta{grid-template-columns:minmax(130px,180px) minmax(360px,640px);align-items:end}
.todo-entry-meta-editing{grid-template-columns:minmax(105px,15fr) minmax(310px,40fr) minmax(190px,20fr) minmax(140px,25fr);column-gap:14px;align-items:end}
.todo-entry-meta-editing>.todo-priority,.todo-entry-meta-editing>.todo-deadline,.todo-entry-meta-editing>.todo-progress,.todo-entry-meta-editing>.todo-status{width:100%;min-width:0;margin:0;justify-self:stretch}
.todo-entry-meta-editing .progress-input{grid-template-columns:minmax(70px,1fr) 72px 18px;height:46px}
.todo-entry-row>label,.todo-deadline{display:flex;min-width:0;margin:0;flex-direction:column;gap:6px;color:#405773;font-size:14px;font-weight:750}
.todo-editor-grid input,.todo-editor-grid select,.todo-editor-grid textarea{width:100%;min-width:0;box-sizing:border-box;font-size:15px}
.todo-editor-grid input:not([type=range]),.todo-editor-grid select{height:46px}
.todo-editor-grid textarea{min-height:108px;resize:vertical;line-height:1.5}
.todo-editor-grid small{overflow:hidden;color:#71869d;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}
.todo-deadline{padding:0;border:0}
.todo-deadline legend{display:block;margin:0 0 6px;padding:0;color:#405773;font-size:14px;font-weight:750}
.todo-deadline-inputs{display:grid;grid-template-columns:minmax(135px,1fr) 14px minmax(135px,1fr);align-items:center;gap:7px}
.todo-deadline-inputs label{min-width:0}
.todo-deadline-inputs b{text-align:center;color:#71869d}
.todo-save-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;white-space:nowrap}
.todo-save-actions a,.todo-save-actions button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:88px;height:46px;min-height:46px;padding:0 16px;font-family:'Noto Sans KR','Segoe UI',sans-serif;font-size:15px;font-weight:800;line-height:1.2;text-align:center}
.todo-form-actions{margin-top:2px;padding-top:16px;border-top:1px solid #dce5ec}
.todo-form-message{min-height:20px;font-size:14px;font-weight:750}
.todo-form-message:empty{min-height:0}
.todo-form-message.success{padding:10px 12px;border:1px solid #bbf7d0;border-radius:8px;background:#ecfdf3;color:#047857}
.todo-form-message.error{padding:10px 12px;border:1px solid #fecaca;border-radius:8px;background:#fef2f2;color:#b91c1c}
.todo-editor-grid button[disabled]{cursor:wait;opacity:.65}
.todo-editor-grid .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.todo-entry-first{grid-template-columns:minmax(145px,.35fr) minmax(300px,1.65fr)}.todo-entry-meta{grid-template-columns:minmax(120px,160px) minmax(320px,1fr)}}
@media(max-width:700px){.todo-entry-first,.todo-entry-meta{grid-template-columns:minmax(0,1fr)}.todo-save-actions{justify-content:stretch}.todo-save-actions a,.todo-save-actions button{flex:1}.todo-table{min-width:1180px}}
/* To Do wide layout, filters and start/end dates */
.authenticated .portal-content:has(.todo-page) { padding-right:clamp(16px,3vw,56px); padding-left:clamp(16px,3vw,56px); }
.todo-page { width:100%; max-width:none; margin-right:auto; margin-left:auto; }
.todo-filter-form { display:grid; grid-template-columns:minmax(250px,1.8fr) minmax(100px,.65fr) minmax(140px,.85fr) minmax(140px,.85fr) minmax(110px,.7fr) minmax(165px,1fr) minmax(72px,.45fr) minmax(100px,.55fr); align-items:end; gap:10px; margin-bottom:16px; padding:13px; border:1px solid var(--border); border-radius:10px; background:#f8fafc; }
.todo-filter-form label { display:grid; gap:6px; min-width:0; color:#405773; font-size:13px; font-weight:750; }
.todo-filter-form input,.todo-filter-form select,.todo-filter-form button,.todo-filter-form .button-link { width:100%; min-width:0; height:42px; min-height:42px; font-family:'Noto Sans KR','Segoe UI',sans-serif; font-size:15px; }
.todo-filter-form .button-link { display:grid; place-items:center; padding:8px 10px; text-align:center; }
.todo-filter-form>button,.todo-filter-form>.button-link { display:flex; align-items:center; justify-content:center; padding:0 12px; color:#fff; font-family:'Noto Sans KR','Segoe UI',sans-serif; font-size:15px; font-weight:800; line-height:1.2; text-align:center; }
.todo-page .todo-table { min-width:1580px; }
.todo-page .todo-table th,.todo-page .todo-table td { padding:13px 11px; line-height:1.45; vertical-align:middle; }
.todo-page .todo-table th { font-size:13px; }
.todo-page .todo-table td { min-height:52px; font-size:14px; }
.todo-page .todo-table td>span { font-size:13px; }
.todo-page .priority-badge,.todo-page .status-badge { font-size:13px!important; }
.todo-page .row-actions a,.todo-page .row-actions button { font-family:'Noto Sans KR','Segoe UI',sans-serif; font-size:13px; line-height:1.35; }
.todo-page .todo-table th:nth-child(1){width:250px}.todo-page .todo-table th:nth-child(2){width:280px}.todo-page .todo-table th:nth-child(3){width:82px}.todo-page .todo-table th:nth-child(4){width:108px}.todo-page .todo-table th:nth-child(5){width:122px}.todo-page .todo-table th:nth-child(6){width:108px}.todo-page .todo-table th:nth-child(7){width:108px}.todo-page .todo-table th:nth-child(8){width:220px}.todo-page .todo-table th:nth-child(9){width:112px}.todo-page .todo-table th:nth-child(10){width:148px}
.todo-project-cell strong,.todo-remarks-cell,.work-task-cell>strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.due-day-text { margin-top:4px; color:#0d6f8c!important; font-size:12px!important; font-weight:800; }
.todo-project-error { margin-bottom:16px; }
@media(max-width:1180px){.todo-filter-form{grid-template-columns:repeat(4,minmax(140px,1fr))}}
@media(max-width:760px){.todo-filter-form{grid-template-columns:repeat(2,minmax(0,1fr))}.todo-page .todo-table{min-width:1500px}}
@media(max-width:520px){.todo-filter-form{grid-template-columns:1fr}}

/* To Do row expansion */
.todo-page .todo-table { border-collapse:collapse; border-spacing:0; }
.todo-page .todo-table thead tr { border-bottom:1px solid #cbd6e0; }
.todo-page .todo-table tbody tr { border-bottom:1px solid #d9e2ec; }
.todo-page .todo-table th,
.todo-page .todo-table td { box-sizing:border-box; border-bottom:0; }
.todo-page .todo-table td > div,
.todo-page .todo-table td > a,
.todo-page .todo-table td > button,
.todo-page .todo-table td > form { border-bottom:0; }
/* Final To Do column order: project, task, detail, priority, dates, progress, status, actions. */
.todo-page .todo-table{min-width:1480px}
.todo-page .todo-table th:nth-child(1){width:230px}
.todo-page .todo-table th:nth-child(2){width:260px}
.todo-page .todo-table th:nth-child(3){width:300px}
.todo-page .todo-table th:nth-child(4){width:82px}
.todo-page .todo-table th:nth-child(5),.todo-page .todo-table th:nth-child(6){width:112px}
.todo-page .todo-table th:nth-child(7),.todo-page .todo-table th:nth-child(8){width:102px}
.todo-page .todo-table th:nth-child(9){width:148px}
.todo-page .todo-table tbody td { height:auto; min-height:0; padding-top:13px; padding-bottom:13px; vertical-align:middle; }
.todo-page .todo-table td.row-actions { display:table-cell; height:auto; vertical-align:middle; text-align:center; white-space:nowrap; }
.todo-page .todo-table td.row-actions a,
.todo-page .todo-table td.row-actions form,
.todo-page .todo-table td.row-actions button { display:inline-flex; align-items:center; justify-content:center; margin:0; border:0; border-bottom:0; box-shadow:none; vertical-align:middle; }
/* Smart Office improvement survey */
.userbox-link{padding:0;border:0;background:none;color:var(--navy);font:inherit;font-weight:750;cursor:pointer}.survey-open{overflow:hidden}.survey-modal{position:fixed;z-index:1000;inset:0}.survey-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.38)}.survey-dialog{position:relative;width:min(900px,calc(100% - 32px));max-height:calc(100vh - 40px);margin:20px auto;overflow:auto;border-radius:16px;background:#fff;box-shadow:0 20px 55px rgba(3,31,59,.25)}.survey-dialog>header{position:sticky;z-index:2;top:0;display:flex;align-items:start;justify-content:space-between;padding:22px 26px 16px;border-bottom:1px solid #dce5ec;background:#fff}.survey-dialog h2{margin:4px 0 0;color:#06284a;font-size:25px}.survey-close{width:36px;height:36px;padding:0;border:0;border-radius:50%;background:#eef3f7;color:#405773;font-size:25px}.survey-steps{display:grid;grid-template-columns:repeat(3,1fr);padding:14px 26px;background:#f5f8fa}.survey-steps span{padding:10px;border-bottom:3px solid #cbd8e3;color:#71869d;text-align:center;font-weight:800}.survey-steps span.active{border-color:#0d6f8c;color:#0d3b66}.survey-step{display:none;padding:24px 26px}.survey-step.active{display:block}.survey-step h3{margin:0;color:#06284a}.survey-step>p{color:#60758d}.survey-question-list{display:grid;gap:10px}.survey-question-list fieldset{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:15px;margin:0;padding:13px 15px;border:1px solid #dce5ec;border-radius:10px}.survey-question-list legend{display:contents;color:#183b5b;font-weight:750}.survey-question-list fieldset>div{display:flex;gap:8px}.survey-question-list label{cursor:pointer}.survey-question-list input{position:absolute;opacity:0}.survey-question-list label span{display:block;padding:8px 11px;border:1px solid #cbd8e3;border-radius:8px;color:#526b84;font-size:12px;font-weight:750}.survey-question-list input:checked+span{border-color:#0d6f8c;background:#e3f3f8;color:#075875;box-shadow:inset 0 0 0 1px #0d6f8c}.survey-step footer{display:flex;justify-content:flex-end;gap:9px;margin-top:20px;padding-top:16px;border-top:1px solid #e0e7ed}.survey-error{min-height:20px;color:#c92c20!important;font-weight:800}.survey-opinion{display:block}.survey-opinion textarea{width:100%;box-sizing:border-box;resize:vertical}.survey-opinion small{display:block;margin-top:5px;color:#71869d;text-align:right}.survey-complete{padding:55px 30px;text-align:center}.survey-complete h3{color:#06284a}.survey-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.survey-summary>div{padding:20px;border:1px solid #dce5ec;border-radius:12px;background:#fff}.survey-summary span{display:block;color:#60758d}.survey-summary strong{display:block;margin-top:5px;color:#0d3b66;font-size:28px}.survey-filter{display:flex;align-items:center;gap:10px}.survey-filter select,.survey-filter input,.survey-filter button{min-height:42px}.survey-chart-card,.survey-comments{margin-top:18px}.survey-chart-card h3,.survey-comments h3{color:#06284a}.survey-chart-row{display:grid;grid-template-columns:minmax(200px,.8fr) minmax(220px,1.5fr) minmax(230px,.8fr);align-items:center;gap:15px;padding:13px 0;border-top:1px solid #e5ebf0}.survey-chart-label span{display:block;margin-top:3px;color:#0d6f8c;font-size:12px;font-weight:800}.survey-stacked{display:flex;height:18px;overflow:hidden;border-radius:999px;background:#eef2f5}.survey-stacked i{display:block;height:100%}.survey-stacked .needed{background:#1687a7}.survey-stacked .not-needed{background:#f04a38}.survey-stacked .na{background:#aab8c5}.survey-chart-counts{display:flex;gap:9px;color:#60758d;font-size:12px}.survey-comments details{padding:12px 0;border-top:1px solid #e5ebf0}.survey-comments summary{color:#183b5b;font-weight:800;cursor:pointer}.survey-comments p{white-space:pre-wrap;color:#405773}
@media(max-width:760px){.survey-dialog{width:calc(100% - 20px);max-height:calc(100vh - 20px);margin:10px auto}.survey-dialog>header,.survey-step{padding:18px 16px}.survey-steps{padding:10px 12px}.survey-steps span{font-size:11px}.survey-question-list fieldset{grid-template-columns:1fr}.survey-question-list fieldset>div{display:grid;grid-template-columns:repeat(3,1fr)}.survey-question-list label span{padding:8px 5px;text-align:center}.survey-step footer{flex-wrap:wrap}.survey-step footer button{flex:1}.survey-summary{grid-template-columns:repeat(2,1fr)}.survey-filter{align-items:stretch;flex-direction:column}.survey-chart-row{grid-template-columns:1fr}.survey-chart-counts{justify-content:space-between}}
.survey-dialog{display:flex;width:min(1480px,calc(100% - 24px));max-height:calc(100vh - 20px);margin:10px auto;flex-direction:column;overflow:hidden}.survey-dialog>header{flex:0 0 auto;padding:13px 20px 11px;background:linear-gradient(110deg,#06284a,#0b4f8a);color:#fff}.survey-dialog>header h2,.survey-dialog>header .eyebrow{color:#fff}.survey-dialog>header h2{font-size:22px}.survey-dialog>header p:last-child{margin:3px 0 0;color:#d8e8f6;font-size:12px}.survey-dialog>header .survey-close{background:rgba(255,255,255,.14);color:#fff}.survey-dialog form{display:flex;min-height:0;flex:1;flex-direction:column}.survey-content{min-height:0;padding:10px 14px 5px;overflow-y:auto;background:#f5f8fc}.survey-category{margin-bottom:10px}.survey-category-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;padding:6px 10px;border-left:4px solid #1687d9;background:#e8f2fb}.survey-category-title h3{margin:0;color:#06284a;font-size:16px}.survey-category-title p{display:inline;margin:0 0 0 8px;color:#60758d;font-size:11px}.survey-category-title h3,.survey-category-title p{vertical-align:middle}.survey-category-title>span{color:#0b66b2;font-size:11px;font-weight:800}.survey-question-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.survey-question-list .survey-question-card{grid-template-columns:minmax(145px,.8fr) minmax(225px,1.2fr);gap:6px 8px;min-width:0;padding:6px 8px;border-color:#d7e3ee;border-radius:8px;background:#fff}.survey-question-card legend{display:flex;align-items:center;gap:7px;min-width:0}.survey-question-card legend b{font-size:13px;line-height:1.25;overflow-wrap:anywhere}.survey-item-icon{display:inline-flex;flex:0 0 32px;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#dceefe;color:#0868bd;font-size:18px;font-weight:900;box-shadow:inset 0 0 0 1px #b8daf7}.survey-question-card:nth-child(4n+2) .survey-item-icon{background:#e4f5f1;color:#07856f;box-shadow:inset 0 0 0 1px #b7e4da}.survey-question-card:nth-child(4n+3) .survey-item-icon{background:#fff1e6;color:#df6b16;box-shadow:inset 0 0 0 1px #ffd4b5}.survey-question-card:nth-child(4n+4) .survey-item-icon{background:#eeeafd;color:#6545c6;box-shadow:inset 0 0 0 1px #d6ccfa}.survey-choices{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px!important}.survey-question-list .survey-choices label span{min-width:0;padding:6px 3px;text-align:center;white-space:nowrap}.survey-improvement{grid-column:1/-1;min-width:0}.survey-improvement textarea{position:static;display:block;width:100%;min-height:30px;box-sizing:border-box;padding:5px 9px;border:1px solid #d7e3ee;border-radius:6px;opacity:1;background:#fbfdff;color:#183b5b;font:inherit;font-size:12px}.survey-improvement textarea:focus,.survey-opinion textarea:focus{outline:2px solid #9dccf5;border-color:#1376c8}.survey-opinion-section{margin-bottom:4px}.survey-opinion-section .survey-category-title{margin-bottom:5px}.survey-opinion textarea{min-height:52px;padding:8px 10px;border:1px solid #d7e3ee;border-radius:7px;background:#fff;font:inherit}.survey-actions{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;padding:7px 14px;border-top:1px solid #d7e3ee;background:#fff}.survey-actions>div:last-child{display:flex;gap:7px}.survey-actions button{min-width:112px;padding:8px 13px}.survey-save-state{display:grid;gap:1px;color:#60758d;font-size:11px}.survey-save-state strong{color:#0b5fa5}.survey-error{margin:3px 0;min-height:16px}.survey-error:not(:empty){padding:5px 9px;border-radius:6px;background:#fff2f0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.survey-dialog{width:calc(100% - 12px);max-height:calc(100vh - 12px);margin:6px auto}.survey-dialog>header{padding:12px 14px}.survey-dialog h2{font-size:19px}.survey-content{padding:8px 7px 4px}.survey-category-title{align-items:flex-start;padding:6px 8px}.survey-category-title p{display:block;margin:2px 0 0}.survey-question-list{grid-template-columns:1fr}.survey-question-list .survey-question-card{grid-template-columns:minmax(125px,.8fr) minmax(190px,1.2fr);gap:6px}.survey-question-card legend{display:flex}.survey-question-list .survey-choices label span{min-width:0;padding:6px 2px;font-size:11px}.survey-improvement{grid-column:1/-1}.survey-improvement textarea{min-height:34px}.survey-actions{align-items:stretch;flex-direction:column;padding:7px}.survey-actions>div:last-child{width:100%}.survey-actions button{flex:1;min-width:0}.survey-save-state{text-align:center}}
@media(max-width:430px){.survey-question-list .survey-question-card{grid-template-columns:1fr}.survey-choices,.survey-improvement{grid-column:1}.survey-item-icon{width:30px;height:30px;flex-basis:30px}}
/* Survey three-panel desktop layout */
.survey-dialog{width:min(1540px,calc(100% - 16px));height:calc(100vh - 16px);max-height:calc(100vh - 16px);margin:8px auto}.survey-dialog>header{padding:11px 18px 9px}.survey-dialog>header h2{font-size:21px}.survey-content{display:flex;flex:1;flex-direction:column;overflow:hidden;padding:8px 10px 4px}.survey-panel-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1.08fr) minmax(280px,.84fr);gap:10px;min-height:0;flex:1}.survey-panel{display:flex;min-width:0;min-height:0;margin:0;overflow:hidden;flex-direction:column;border:1px solid #d5e2ed;border-radius:10px;background:#fff}.survey-panel .survey-category-title{flex:0 0 auto;align-items:center;gap:9px;margin:0;padding:9px 11px;border:0;color:#fff}.survey-panel .survey-category-title>div{min-width:0;flex:1}.survey-panel .survey-category-title h3,.survey-panel .survey-category-title p,.survey-panel .survey-category-title>span:last-child{color:#fff}.survey-panel .survey-category-title h3{font-size:16px}.survey-panel .survey-category-title p{display:block;margin:1px 0 0;overflow:hidden;font-size:10px;white-space:nowrap;text-overflow:ellipsis}.survey-panel .survey-category-title>span:last-child{padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.16);font-size:10px;white-space:nowrap}.survey-panel-number{display:inline-flex;flex:0 0 30px;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;background:#fff;font-size:13px;font-weight:900}.survey-panel-basic .survey-category-title{background:#07877f}.survey-panel-basic .survey-panel-number{color:#07877f}.survey-panel-design .survey-category-title{background:#1261bd}.survey-panel-design .survey-panel-number{color:#1261bd}.survey-panel-opinion .survey-category-title{background:#7541c7}.survey-panel-opinion .survey-panel-number{color:#7541c7}.survey-panel .survey-question-list{display:grid;grid-template-columns:1fr;align-content:start;gap:4px;min-height:0;padding:5px 7px 7px;overflow-x:hidden;overflow-y:auto}.survey-panel .survey-question-card{grid-template-columns:minmax(135px,.85fr) minmax(190px,1.15fr);gap:4px 7px;padding:5px 6px;border-width:0 0 1px;border-radius:0}.survey-panel .survey-question-card:last-child{border-bottom:0}.survey-panel .survey-question-card legend{gap:5px}.survey-item-number{display:inline-flex;flex:0 0 21px;align-items:center;justify-content:center;width:21px;height:21px;border-radius:5px;background:#0b6b8e;color:#fff;font-size:11px;font-weight:900}.survey-panel-design .survey-item-number{background:#175eb4}.survey-panel .survey-item-icon{width:28px;height:28px;flex-basis:28px;border-radius:6px;font-size:16px}.survey-panel .survey-question-card legend b{font-size:12px}.survey-panel .survey-question-list .survey-choices label span{padding:5px 2px;font-size:10px}.survey-panel .survey-improvement{grid-column:1/-1}.survey-panel .survey-improvement textarea{position:static;display:block;min-height:28px;padding:4px 8px;opacity:1;font-size:11px}.survey-panel-opinion{background:#fcfbff}.survey-opinion-card{display:flex;min-height:0;margin:10px;padding:14px;flex:1;flex-direction:column;border:1px solid #e2daf3;border-radius:9px;background:#fff}.survey-opinion-card>strong{margin-bottom:9px;color:#6b3bbb;font-size:14px}.survey-opinion-card .survey-opinion{display:flex;min-height:0;flex:1;flex-direction:column}.survey-opinion-card .survey-opinion textarea{min-height:180px;flex:1;resize:none}.survey-content>.survey-error{flex:0 0 auto;margin:3px 0 0}.survey-actions{padding:6px 12px}.survey-actions button{padding:7px 12px}
.survey-panel .survey-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.survey-panel .survey-question-list .survey-choices label span{display:flex;min-height:31px;align-items:center;justify-content:center;padding:3px 2px;line-height:1.15;white-space:normal}.survey-question-card.needs-improvement{background:#fffaf2}.survey-question-card.needs-improvement .survey-improvement textarea{border-color:#ee9a37;background:#fff8ed;box-shadow:inset 0 0 0 1px #ffd7a6}.survey-na-all{flex:0 0 auto;padding:5px 7px;border:1px solid rgba(255,255,255,.55);border-radius:6px;background:rgba(255,255,255,.14);color:#fff;font-size:10px;font-weight:800;white-space:nowrap}.survey-na-all:hover{background:rgba(255,255,255,.25)}.survey-stacked .improvement{background:#f0a22e}.survey-stacked .sufficient{background:#48a66b}.survey-chart-counts{flex-wrap:wrap}
@media(max-width:900px){.survey-dialog{width:calc(100% - 12px);height:auto;max-height:calc(100vh - 12px);margin:6px auto}.survey-content{display:block;overflow-y:auto;padding:7px}.survey-panel-grid{display:grid;grid-template-columns:1fr;gap:8px}.survey-panel{min-height:auto;overflow:visible}.survey-panel .survey-question-list{overflow:visible}.survey-panel .survey-question-card{grid-template-columns:minmax(125px,.8fr) minmax(190px,1.2fr)}.survey-opinion-card{min-height:230px}.survey-actions{align-items:stretch;flex-direction:column}.survey-actions>div:last-child{width:100%}.survey-actions button{flex:1}.survey-save-state{text-align:center}}
@media(max-width:430px){.survey-panel .survey-question-card{grid-template-columns:1fr}.survey-panel .survey-choices,.survey-panel .survey-improvement{grid-column:1}.survey-panel .survey-category-title>span:last-child{display:none}.survey-panel .survey-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.survey-opinion-card{margin:7px;padding:10px}}
/* Survey final single-scroll layout */
.survey-dialog{height:auto;max-height:calc(100vh - 16px)}.survey-dialog>header{position:relative;display:grid;grid-template-columns:minmax(340px,1fr) minmax(500px,.9fr) 36px;align-items:center;gap:16px}.survey-header-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;overflow:hidden;border-radius:8px;background:rgba(255,255,255,.95);color:#0b3f6f}.survey-header-info span{display:grid;gap:2px;min-width:0;padding:8px 10px;border-right:1px solid #d8e4ef}.survey-header-info span:last-child{border:0}.survey-header-info small{color:#60758d;font-size:10px;font-weight:700}.survey-header-info b{overflow:hidden;color:#0b3f6f;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.survey-dialog form{min-height:0}.survey-content{display:block;min-height:0;overflow-x:hidden;overflow-y:auto;padding:8px 10px 5px}.survey-panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:9px;min-height:0}.survey-panel{min-width:0;min-height:0;overflow:visible;border-radius:10px;box-shadow:0 2px 8px rgba(18,61,98,.09)}.survey-panel .survey-question-list{display:grid;min-height:0;padding:5px 7px 8px;overflow:visible}.survey-panel .survey-question-card{grid-template-columns:minmax(112px,.7fr) minmax(0,1.3fr);gap:4px 6px;padding:6px;border-color:#dce6ef}.survey-panel .survey-question-card legend{min-width:0}.survey-panel .survey-question-card legend b{font-size:11px;white-space:nowrap}.survey-item-copy{display:grid;min-width:0}.survey-item-copy small{margin-top:2px;color:#728397;font-size:9px;font-weight:500;line-height:1.25;white-space:normal}.survey-panel .survey-choices{grid-template-columns:repeat(4,minmax(0,1fr));min-width:0}.survey-panel .survey-question-list .survey-choices label span{min-height:28px;padding:2px 0;font-size:9px;letter-spacing:-.45px;line-height:1;white-space:nowrap}.survey-panel .survey-improvement textarea{min-height:29px}.survey-design-group{display:flex;align-items:center;gap:6px;margin:3px -1px 1px;padding:6px 8px;border-radius:6px;background:#eaf3fd;color:#0d4f94}.survey-design-group strong{display:flex;align-items:center;gap:5px;font-size:11px}.survey-design-group strong span{font-size:14px}.survey-design-group em{margin-left:auto;padding:3px 6px;border-radius:999px;background:#d4e8fb;color:#1762aa;font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}.survey-na-all{font-size:9px}.survey-opinion-fields{display:grid;height:100%;grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch;gap:9px;padding:10px}.survey-opinion-fields .survey-opinion-card{min-height:0;margin:0;padding:12px;flex:none}.survey-opinion-fields .survey-opinion-card textarea{min-height:220px;resize:vertical}.survey-opinion-card.compact select{width:100%;min-height:39px;padding:7px 9px;border:1px solid #d8dfea;border-radius:6px;background:#fff;color:#304861}.survey-opinion-card strong small{color:#7b6b99;font-size:10px}.survey-actions{position:sticky;z-index:3;bottom:0}.survey-content>.survey-error{margin-top:4px}
@media(max-width:1180px){.survey-dialog>header{grid-template-columns:1fr 36px}.survey-header-info{grid-column:1/-1;grid-row:2}.survey-panel-grid{grid-template-columns:1fr}.survey-panel .survey-question-card{grid-template-columns:minmax(170px,.7fr) minmax(360px,1.3fr)}.survey-opinion-fields .survey-opinion-card:first-child textarea{min-height:180px}}
@media(max-width:600px){.survey-dialog>header{display:grid;grid-template-columns:1fr 36px}.survey-header-info{grid-template-columns:repeat(2,minmax(0,1fr))}.survey-panel .survey-question-card{grid-template-columns:1fr}.survey-panel .survey-choices,.survey-panel .survey-improvement{grid-column:1}.survey-panel .survey-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.survey-panel .survey-question-list .survey-choices label span{font-size:10px}.survey-panel .survey-category-title{flex-wrap:wrap}.survey-na-all{order:4;width:100%}}
/* Survey satisfaction scale: final 1-5 layout */
.survey-rating-guide{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 0 9px;padding:9px 14px;border:1px solid #cfe0f1;border-radius:8px;background:#f4f8fd;color:#284765}.survey-rating-guide>strong{color:#0b4e91;font-size:13px}.survey-rating-guide>div{display:flex;align-items:center;gap:14px}.survey-rating-guide>div>span{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.rating-dot{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:11px}.rating-1{background:#ef4444}.rating-2{background:#f59e0b}.rating-3{background:#8a98aa}.rating-4{background:#0f8b7f}.rating-5{background:#1261bd}.survey-rating-guide>p{margin:0;color:#52677f;font-size:11px;font-weight:700;white-space:nowrap}
.survey-panel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.survey-panel .survey-question-list{gap:0;overflow:visible}.survey-panel .survey-question-card{display:block;min-width:0;padding:8px;border:0;border-bottom:1px solid #dbe4ec;border-radius:0;background:#fff}.survey-panel .survey-question-card:last-child{border-bottom:0}.survey-question-primary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0}.survey-question-name{display:flex;min-width:0;align-items:center;gap:8px}.survey-question-name b{color:#123b63;font-size:13px;font-weight:700;line-height:1.3;white-space:normal;overflow:visible;text-overflow:clip}.survey-question-primary .survey-item-number{flex:0 0 24px;width:24px;height:24px;font-size:12px}.survey-question-primary .survey-choices{display:flex!important;grid-template-columns:none;align-items:center;gap:7px!important;min-width:0}.survey-question-primary .survey-choices label{display:block}.survey-question-primary .survey-choices label span{display:flex;width:30px;height:30px;min-width:30px;min-height:30px;box-sizing:border-box;align-items:center;justify-content:center;padding:0;border:1px solid #bdc9d5;border-radius:50%;background:#fff;color:#4f6275;font-size:12px;font-weight:700;line-height:1}.survey-panel-basic .survey-question-primary .survey-choices input:checked+span{border-color:#07877f;background:#07877f;color:#fff;box-shadow:none}.survey-panel-design .survey-question-primary .survey-choices input:checked+span{border-color:#1261bd;background:#1261bd;color:#fff;box-shadow:none}.survey-question-secondary{display:block;width:100%;min-width:0;margin-top:6px}.survey-question-secondary .survey-improvement{display:block;width:100%;min-width:0}.survey-question-secondary .survey-improvement textarea{position:static;display:block;width:100%;max-width:100%;height:32px;min-height:32px;box-sizing:border-box;padding:6px 9px;opacity:1;font-size:11px}.survey-na-all.is-active{border-color:#fff;background:#fff;color:#1258aa}.survey-question-card.is-na{background:#f3f5f7}.survey-question-card.is-na .survey-question-name b{color:#778492}.survey-question-card.is-na .survey-choices span,.survey-question-card.is-na .survey-improvement textarea{background:#e9edf1;color:#929eaa}.survey-stacked .score-1{background:#ef4444}.survey-stacked .score-2{background:#f59e0b}.survey-stacked .score-3{background:#8a98aa}.survey-stacked .score-4{background:#0f8b7f}.survey-stacked .score-5{background:#1261bd}
@media(max-width:1180px){.survey-panel-grid{grid-template-columns:1fr}.survey-rating-guide{flex-wrap:wrap}.survey-question-primary{grid-template-columns:minmax(180px,1fr) auto}}
/* Survey PC typography and two-row item layout */
.survey-panel-grid{grid-template-columns:minmax(0,36fr) minmax(0,40fr) minmax(0,24fr)}
.survey-panel{min-width:0}
.survey-panel .survey-category-title{min-height:44px;padding-top:8px;padding-bottom:8px}.survey-panel .survey-category-title h3{font-size:18px;line-height:1.3}
.survey-panel .survey-category-title p{font-size:12px;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}
.survey-design-group strong{font-size:14px;line-height:1.35}
.survey-design-group .survey-build-badge{line-height:1.3}
.survey-question-primary{grid-template-columns:minmax(0,1fr) 110px;align-items:center}
.survey-question-name{flex:1;min-width:0}
.survey-question-name b{font-size:14px;line-height:1.4;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}
.survey-question-primary .survey-choices{display:grid!important;flex:0 0 110px;width:110px;min-width:110px;grid-template-columns:repeat(5,22px);gap:0!important}
.survey-question-primary .survey-choices label{position:relative;width:22px;height:22px}.survey-panel .survey-question-primary .survey-choices label span{width:22px;height:22px;min-width:22px;min-height:22px;border-radius:0;border-right:0;font-size:10px}.survey-question-primary .survey-choices label:first-child span{border-radius:4px 0 0 4px}.survey-question-primary .survey-choices label:last-child span{border-right:1px solid #bdc9d5;border-radius:0 4px 4px 0}.survey-question-primary .survey-choices input:focus-visible+span{position:relative;z-index:1;outline:2px solid #6ca8df;outline-offset:1px}
.survey-question-secondary .survey-improvement textarea{width:100%;max-width:none;min-width:0;height:36px;min-height:36px;padding:8px 9px;overflow-y:hidden;resize:none;font-size:12px;line-height:1.4;white-space:pre-wrap}
.survey-panel-basic .survey-question-name b,.survey-panel-design .survey-question-name b{font-size:13px;font-weight:600;line-height:1.35;vertical-align:middle;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}
.survey-rating-guide,.survey-rating-guide>strong,.survey-rating-guide>div>span,.survey-rating-guide>p{font-size:12px}
.survey-opinion-card>strong{font-size:14px}
.survey-opinion-fields,.survey-opinion-fields .survey-opinion-card,.survey-opinion-fields .survey-opinion-card textarea{width:100%;max-width:100%;min-width:0}
.survey-actions button{font-size:14px}
@media(max-width:768px){
.survey-dialog,.survey-dialog *{box-sizing:border-box}
.survey-dialog{width:calc(100vw - 20px);max-width:none;height:calc(100dvh - 20px);max-height:calc(100dvh - 20px);margin:10px;overflow:hidden}
.survey-dialog>header{grid-template-columns:minmax(0,1fr) 36px;gap:9px;padding:11px 12px}
.survey-dialog>header>div:first-child{min-width:0;padding-right:3px}.survey-dialog>header h2{max-width:100%;font-size:19px;line-height:1.3;white-space:normal;word-break:keep-all;overflow:visible;text-overflow:clip}.survey-dialog>header p{white-space:normal}
.survey-header-info{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;overflow:visible}.survey-header-info span{min-width:0;padding:7px 8px}.survey-header-info b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.survey-dialog form{min-width:0;overflow:hidden}.survey-content{display:block;width:100%;min-width:0;padding:7px 7px calc(92px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto}
.survey-rating-guide{display:grid;grid-template-columns:1fr;align-items:start;gap:7px;width:100%;padding:8px}.survey-rating-guide>strong{display:block}.survey-rating-guide>div{display:grid;width:100%;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.survey-rating-guide>div>span{display:flex;min-width:0;align-items:center;flex-direction:column;gap:3px;font-size:9px;line-height:1.25;text-align:center;white-space:normal;word-break:keep-all}.survey-rating-guide>p{display:block;width:100%;white-space:normal;word-break:keep-all}
.survey-panel-grid{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:8px}.survey-panel{width:100%;min-width:0;overflow:visible}.survey-panel .survey-question-list{width:100%;min-width:0;overflow:visible}
.survey-panel .survey-category-title{align-items:flex-start;flex-wrap:wrap;gap:7px}.survey-panel .survey-category-title>div{min-width:0}.survey-panel .survey-category-title p{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}.survey-panel .survey-category-title>span:last-child{display:inline-flex;max-width:100%;white-space:normal}.survey-design-group{align-items:flex-start;flex-wrap:wrap}.survey-design-group .survey-build-badge{max-width:100%;white-space:normal}
.survey-panel .survey-question-card{display:block;width:100%;min-width:0;padding:9px 7px}.survey-question-primary{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr);gap:8px}.survey-question-name{width:100%;min-width:0;align-items:flex-start}.survey-question-name b{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:normal}
.survey-question-primary .survey-choices{display:grid!important;width:140px;min-width:140px;grid-template-columns:repeat(5,28px);gap:0!important}.survey-question-primary .survey-choices label{display:grid;width:28px;height:28px;min-width:28px;place-items:center}.survey-panel .survey-question-primary .survey-choices label span{width:28px;height:28px;min-width:28px;min-height:28px;font-size:11px}.survey-panel-design .survey-question-name b{font-size:12px;white-space:normal;word-break:keep-all}
.survey-question-secondary,.survey-question-secondary .survey-improvement{display:block;width:100%;max-width:none;min-width:0}.survey-question-secondary .survey-improvement textarea{display:block;width:100%;max-width:none;min-width:0;height:50px;min-height:50px;padding:8px 9px;overflow-wrap:anywhere;white-space:pre-wrap;resize:vertical}
.survey-opinion-fields{display:grid;width:100%;height:auto;grid-template-rows:none;gap:8px;padding:7px}.survey-opinion-fields .survey-opinion-card{width:100%;min-width:0;min-height:0;margin:0;padding:10px}.survey-opinion-fields .survey-opinion-card textarea{width:100%;min-width:0;min-height:160px;resize:vertical}
.survey-actions{position:sticky;bottom:0;align-items:stretch;flex-direction:column;gap:6px;padding:7px 8px calc(7px + env(safe-area-inset-bottom))}.survey-save-state{text-align:center}.survey-actions>div:last-child{display:flex;width:100%;gap:7px}.survey-actions button{flex:1;min-width:0}
}

/* Survey design items awaiting September evaluation */
.survey-design-group.is-disabled{background:#edf0f3;color:#42566a}.survey-design-group.is-disabled em{background:#e2e6ea;color:#74808c}.survey-design-group .survey-build-badge{flex:0 0 auto;padding:3px 7px;border:1px solid #f3c58f;border-radius:999px;background:#fff3e5;color:#c66a16;font-size:10px;font-weight:800;line-height:1.2;white-space:nowrap}
.survey-panel .survey-question-card.is-disabled{background:#f7f8fa;color:#526579}
.survey-panel .survey-question-card.is-disabled .survey-item-number{background:#9aa7b4}
.survey-panel .survey-question-card.is-disabled .survey-question-name b,.survey-panel .survey-question-card.is-disabled .survey-question-secondary>small{color:#42566a}
.survey-panel .survey-question-card.is-disabled .survey-choices label{cursor:not-allowed}
.survey-panel .survey-question-card.is-disabled .survey-choices input:disabled+span{border-color:#d8dee5;background:#e9edf1;color:#929eaa;box-shadow:none}
.survey-panel .survey-question-card.is-disabled .survey-improvement textarea{border-color:#cbd8e3;background:#fff;color:#243b53;opacity:1;cursor:text}
.survey-toast{position:fixed;z-index:1020;right:24px;bottom:24px;max-width:min(360px,calc(100vw - 32px));padding:11px 16px;border:1px solid #b8d5eb;border-radius:8px;background:#eff8ff;color:#0b4f83;font-size:13px;font-weight:750;box-shadow:0 8px 24px rgba(6,40,74,.16)}.survey-toast.error{border-color:#f4b8b2;background:#fff1f0;color:#a93228}.survey-toast[hidden]{display:none}
.survey-complete-layer{position:fixed;z-index:1010;inset:0;display:grid;place-items:center}.survey-complete-layer[hidden]{display:none}.survey-complete-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;border-radius:0;background:rgba(15,23,42,.38)}.survey-complete-dialog{position:relative;width:min(390px,calc(100vw - 32px));box-sizing:border-box;padding:26px 28px 22px;border:1px solid #d6e0e9;border-radius:12px;background:#fff;text-align:center;box-shadow:0 18px 48px rgba(3,31,59,.25)}.survey-complete-dialog h3{margin:0 0 12px;color:#073b69;font-size:20px}.survey-complete-dialog p{margin:0;color:#243f59;font-size:14px;font-weight:700}.survey-complete-dialog small{display:block;margin:9px 0 20px;color:#65798c;font-size:12px;line-height:1.55}.survey-complete-dialog button{min-width:112px;padding:9px 18px;border-color:#0d5da0;background:#0d5da0;color:#fff;font-size:14px;font-weight:800}.survey-complete-dialog button:focus-visible{outline:3px solid rgba(13,93,160,.28);outline-offset:2px}
@media(max-width:768px){.survey-toast{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;max-width:none;text-align:center}.survey-panel-basic .survey-question-name b,.survey-panel-design .survey-question-name b{font-size:13px;white-space:normal;word-break:keep-all}}
.survey-action-controls{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:16px}.survey-reopen-guide{display:inline-flex;min-width:0;align-items:center;gap:7px;padding:7px 10px;border-radius:7px;background:#eef4f8;color:#173f68;font-size:13px;font-weight:500;line-height:1.3;white-space:nowrap}.survey-reopen-guide>span{display:inline-flex;width:17px;height:17px;flex:0 0 17px;align-items:center;justify-content:center;border:1px solid #9ab4ca;border-radius:50%;color:#175b94;font-size:11px;font-weight:800}.survey-action-buttons{display:flex;flex:0 0 auto;gap:8px}.survey-action-buttons>button{display:inline-flex;width:112px;min-width:112px;height:40px;min-height:40px;box-sizing:border-box;align-items:center;justify-content:center;padding:0 16px;border-radius:7px;font-family:inherit;font-size:14px;font-weight:800;line-height:1;box-shadow:none}.survey-action-buttons>[data-survey-save]{border:1px solid #0b4f83;background:#fff;color:#0b4f83}.survey-action-buttons>[data-survey-save]:hover{border-color:#073b69;background:#f3f7fb;color:#073b69}.survey-action-buttons>button[type=submit]{border:1px solid #0b4f83;background:#0b4f83;color:#fff}.survey-action-buttons>button[type=submit]:hover{border-color:#073b69;background:#073b69;color:#fff}.survey-action-buttons>button:focus-visible{outline:3px solid rgba(11,79,131,.22);outline-offset:2px}.survey-action-buttons>button:disabled{cursor:wait;opacity:.6}
@media(max-width:768px){.survey-action-controls{width:100%;align-items:stretch;flex-direction:column;gap:7px}.survey-reopen-guide{width:100%;box-sizing:border-box;justify-content:center;white-space:normal;word-break:keep-all}.survey-action-buttons{display:flex;width:100%;gap:7px}.survey-action-buttons>button{width:auto;min-width:0;height:40px;min-height:40px;flex:1}}
/* Notice management */
.notice-heading { align-items: flex-start; }
.notice-create-button { flex: 0 0 auto; padding: 12px 18px; font-weight: 800; }
.notice-table { width: 100%; min-width: 0; table-layout: fixed; }
.notice-table col:nth-child(1) { width: 32%; }
.notice-table col:nth-child(2) { width: 40%; }
.notice-table col:nth-child(3) { width: 7%; }
.notice-table col:nth-child(4) { width: 11%; }
.notice-table col:nth-child(5) { width: 10%; }
.notice-table th, .notice-table td { padding: 11px 10px; vertical-align: middle; }
.notice-list-row { cursor: pointer; }
.notice-list-row:hover { background: #f4f8fc; }
.notice-list-row:focus-visible { outline: 2px solid #2f80c9; outline-offset: -2px; }
.notice-title { min-width: 0; }
.notice-title-button { display: block; width: 100%; min-width: 0; padding: 0; overflow: hidden; border: 0; border-radius: 0; background: transparent; color: var(--navy); font: inherit; font-weight: 800; line-height: 1.45; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.notice-title-button:hover { background: transparent; color: var(--primary-dark); text-decoration: underline; text-underline-offset: 3px; }
.notice-preview { min-width: 0; max-width: 0; color: var(--muted); }
.notice-preview > span { display: block; min-width: 0; max-width: 100%; overflow: hidden; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.notice-table th:nth-child(3),.notice-table td:nth-child(3){padding-right:4px;padding-left:4px;text-align:center}.notice-table th:nth-child(4),.notice-table td:nth-child(4),.notice-table th:nth-child(5),.notice-table td:nth-child(5){padding-right:5px;padding-left:5px;text-align:center}
.notice-author{overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.notice-date{overflow:visible;color:var(--muted);text-overflow:clip;white-space:nowrap}
.notice-updated { display: inline-block; margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: #e8f0f7; color: var(--navy-secondary); font-size: 11px; font-weight: 800; cursor: help; }
.notice-actions { white-space: nowrap; }
.notice-action-grid{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:4px}
.notice-actions form{display:block;min-width:0;margin:0}.notice-action-button{width:100%;height:30px;min-height:30px;padding:3px 4px;border-radius:5px;font-size:10px;font-weight:800;line-height:1;white-space:nowrap}.notice-action-placeholder{display:block;height:30px;min-width:0}
.notice-move-button,.notice-edit-button{background:#fff;border:1px solid #9fb3c8;color:var(--navy)}
.notice-move-button:hover,.notice-edit-button:hover{background:#edf4f9;color:var(--navy)}
.notice-move-button:disabled{border-color:#d7dee5;background:#f7f8fa;color:#aab4be;cursor:not-allowed}
.notice-delete-button { background: #fff; border: 1px solid #fecaca; color: #b42318; }
.notice-delete-button:hover { background: #fef2f2; color: #991b1b; }
.notice-dialog { padding: 0; border: 0; box-shadow: 0 24px 70px rgba(6,40,74,.3); }
.notice-dialog::backdrop { background: rgba(15,23,42,.38); }
.notice-form h2 { margin: 3px 0 0; color: var(--navy); }
.notice-form label b { color: var(--primary); }
.notice-dialog-close { width: 38px; height: 38px; padding: 0; border-radius: 50%; background: #eef3f7; color: var(--navy); font-size: 24px; line-height: 1; }
.notice-dialog-close:hover { background: #dce6ee; color: var(--navy); }
@media (max-width: 640px) {
  .notice-heading { align-items: stretch; flex-direction: column; }
  .notice-create-button { width: 100%; }
  .notice-card { padding: 16px; }
}

/* Home recent notice detail */
.home-latest .home-notice-card h2 a { color: #fff; text-decoration: none; }
.home-latest .home-notice-card h2 a:hover { color: #ffc2b8; text-decoration: underline; text-underline-offset: 4px; }
.home-notice-list li { align-items: flex-start; }
.home-notice-title { width: fit-content; max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; color: #e5edf4; font: inherit; font-weight: 800; line-height: 1.45; text-align: left; overflow-wrap: anywhere; }
.home-notice-title:hover { background: transparent; color: #ff8a78; text-decoration: underline; text-underline-offset: 3px; }
.home-notice-title:disabled { opacity: .6; cursor: wait; }
.home-latest .home-notice-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; color: #90a7ba; }
.home-notice-meta b { color: #c7d5e0; font-size: 12px; }
.home-notice-meta time { font-size: 12px; }
.home-notice-meta em { padding: 2px 6px; border-radius: 999px; background: rgba(240,74,56,.18); color: #ff9a88; font-size: 11px; font-style: normal; font-weight: 800; }
.home-notice-empty { color: #90a7ba; }
.home-notice-open { overflow: hidden; }
.home-notice-dialog { width: min(800px, calc(100% - 28px)); max-height: calc(100vh - 32px); margin: auto; padding: 0; overflow: hidden; border: 0; border-radius: 18px; background: #fff; box-shadow: 0 24px 70px rgba(6,40,74,.3); }
.home-notice-dialog::backdrop { background: rgba(15,23,42,.38); }
.home-notice-dialog > article { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-height: calc(100vh - 32px); }
.home-notice-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 26px 30px 20px; border-bottom: 1px solid var(--border); }
.home-notice-dialog header h2 { margin: 3px 0 0; color: var(--navy); }
.home-notice-detail { display: grid; min-height: 0; grid-template-rows: auto auto minmax(120px,1fr) auto; overflow: hidden; padding: 26px 30px 30px; }
.home-notice-detail[hidden] { display: none; }
.home-notice-detail h3 { margin: 0 0 18px; color: var(--navy); font-size: 24px; line-height: 1.45; overflow-wrap: anywhere; }
.home-notice-detail dl { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0 0 22px; padding: 14px 16px; border-radius: 12px; background: #f4f7fa; }
.home-notice-detail dl div { display: flex; gap: 7px; }
.home-notice-detail dt { color: var(--muted); font-size: 13px; font-weight: 800; }
.home-notice-detail dd { margin: 0; color: var(--navy); font-size: 13px; }
.home-notice-body { min-height: 0; padding: 22px; border: 1px solid var(--border); border-radius: 14px; color: var(--text); line-height: 1.75; white-space: pre-wrap; overflow-y: auto; overflow-wrap: anywhere; }
.home-notice-popup-list { display: grid; min-height: 0; gap: 14px; padding: 20px 24px; overflow-y: auto; }
.home-notice-popup-list[hidden] { display: none; }
.home-notice-popup-item { padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.home-notice-popup-item h3 { margin: 0 0 12px; color: var(--navy); font-size: 19px; overflow-wrap: anywhere; }
.home-notice-popup-item dl { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 12px; color: var(--muted); font-size: 12px; }
.home-notice-popup-item dl div { display: flex; gap: 6px; }
.home-notice-popup-item dd { margin: 0; color: var(--navy); }
.home-notice-popup-item .home-notice-body { max-height: none; overflow: visible; }
.home-notice-error { color: #b91c1c; font-weight: 800; }
.home-notice-dialog footer { display: flex; justify-content: flex-end; gap: 10px; padding: 18px 30px; border-top: 1px solid var(--border); background: #fbfdff; }
.home-notice-dialog footer .secondary-button { background: #fff; color: var(--navy); }
@media (max-width: 640px) {
  .home-notice-dialog { width: calc(100% - 18px); max-height: calc(100vh - 18px); }
  .home-notice-dialog > article { max-height: calc(100vh - 18px); }
  .home-notice-dialog header, .home-notice-detail { padding: 20px 18px; }
  .home-notice-dialog footer { flex-wrap: wrap; padding: 14px 18px; }
  .home-notice-dialog footer a, .home-notice-dialog footer button { flex: 1 1 150px; text-align: center; }
  .home-notice-detail dl { display: grid; }
}

/* Leave request approval workflow */
.leave-tabs { display: flex; gap: 6px; margin: 0 auto 18px; padding: 6px; max-width: 920px; overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: #fff; }
.leave-tabs a { flex: 1 0 max-content; min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 8px 16px; border-radius: 8px; color: var(--navy); text-decoration: none; font-weight: 800; white-space: nowrap; }
.leave-tabs a:hover { background: #edf4f9; }
.leave-tabs a.active { background: var(--primary); color: #fff; }
.leave-list-card { max-width: 1400px; margin: 0 auto; }
.leave-list-table { min-width: 1080px; }
.leave-list-table th, .leave-list-table td { vertical-align: middle; }
.leave-list-table th { color: var(--navy); white-space: nowrap; }
.leave-list-table td { color: #405773; }
.leave-status { display: inline-block; padding: 5px 9px; border-radius: 999px; background: #e8f0f7; color: var(--navy-secondary); font-size: 12px; font-weight: 800; white-space: nowrap; }
.leave-review-link { padding: 8px 11px; }
.leave-list-table .empty-state { padding: 34px 12px; color: var(--muted); text-align: center; }
.leave-list-heading { align-items: center; }
.leave-report-button { flex: 0 0 auto; padding: 12px 17px; font-weight: 800; }
.leave-manage-actions { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.leave-manage-actions button, .leave-manage-actions a { min-height: 36px; padding: 7px 10px; font-size: 13px; font-weight: 800; }
.leave-detail-button { border: 1px solid #9fb3c8; background: #fff; color: var(--navy); }
.leave-final-approve { background: var(--primary); color: #fff; }
.leave-final-reject { border: 1px solid #fecaca; background: #fff; color: #b42318; }
.leave-excel-link { background: #16834b; }
.leave-row-reason { display: block; max-width: 220px; margin-top: 5px; color: #b42318; white-space: normal; }
.leave-final-dialog { width: min(800px,calc(100% - 28px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 16px; box-shadow: 0 24px 70px rgba(6,40,74,.3); }
.leave-final-dialog::backdrop { background: rgba(3,31,59,.68); }
.leave-final-dialog article, .leave-final-dialog form { gap: 0; }
.leave-final-dialog header { display: flex; align-items: center; justify-content: space-between; padding: 20px 24px; border-bottom: 1px solid var(--border); }
.leave-final-dialog h2 { margin: 0; color: var(--navy); }
.leave-final-dialog header button { width: 36px; height: 36px; padding: 0; border-radius: 50%; background: #edf4f9; color: var(--navy); font-size: 23px; }
.leave-final-dialog footer { display: flex; justify-content: flex-end; gap: 9px; padding: 17px 24px; border-top: 1px solid var(--border); }
.leave-final-dialog dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 22px 24px; }
.leave-final-dialog dl div { display: grid; grid-template-columns: 115px 1fr; border-bottom: 1px solid var(--border); }
.leave-final-dialog dt, .leave-final-dialog dd { margin: 0; padding: 11px; white-space: pre-wrap; overflow-wrap: anywhere; }
.leave-final-dialog dt { background: #edf4f9; color: var(--navy); font-weight: 800; }
.leave-confirm-dialog { width: min(520px,calc(100% - 28px)); }
.leave-confirm-dialog > article > p, .leave-confirm-dialog > article > label { margin: 0; padding: 28px 24px; }
.leave-confirm-dialog label { display: grid; gap: 8px; color: var(--navy); font-weight: 800; }
.leave-confirm-dialog textarea { resize: vertical; }
.leave-final-error { min-height: 20px; margin: -14px 24px 14px!important; padding: 0!important; color: #b42318; font-weight: 800; }
.leave-report-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 24px; }
.leave-report-grid label { display: grid; gap: 7px; color: var(--navy); font-weight: 800; }
@media(max-width:640px){.leave-list-heading{align-items:stretch;flex-direction:column}.leave-report-button{width:100%}.leave-final-dialog dl,.leave-report-grid{grid-template-columns:1fr}.leave-final-dialog dl div{grid-template-columns:105px 1fr}}
.leave-complete-dialog, .leave-approval-dialog { padding: 0; border: 0; border-radius: 18px; box-shadow: 0 24px 70px rgba(6,40,74,.3); }
.leave-complete-dialog::backdrop, .leave-approval-dialog::backdrop { background: rgba(3,31,59,.68); }
.leave-complete-dialog { width: min(520px,calc(100% - 28px)); }
.leave-complete-dialog > div { padding: 32px; text-align: center; }
.leave-complete-dialog h2 { margin-top: 0; color: var(--navy); }
.leave-complete-dialog p { margin: 16px 0 24px; color: var(--text); line-height: 1.7; }
.leave-complete-dialog button { min-width: 110px; font-weight: 800; }
.leave-approval-dialog { width: min(850px,calc(100% - 28px)); max-height: calc(100vh - 32px); overflow: hidden; }
.leave-approval-dialog > article { display: grid; grid-template-rows: auto minmax(0,1fr) auto; max-height: calc(100vh - 32px); }
.leave-approval-dialog header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 24px 30px 18px; border-bottom: 1px solid var(--border); }
.leave-approval-dialog h2 { margin: 3px 0 0; color: var(--navy); }
.leave-approval-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 24px 30px; overflow-y: auto; }
.leave-approval-summary > div { display: grid; grid-template-columns: 120px 1fr; min-height: 50px; border-bottom: 1px solid var(--border); }
.leave-approval-summary > div.wide { grid-column: 1/-1; }
.leave-approval-summary dt, .leave-approval-summary dd { margin: 0; padding: 13px 12px; }
.leave-approval-summary dt { background: #eef3f7; color: var(--navy); font-weight: 800; }
.leave-approval-summary dd { color: var(--text); overflow-wrap: anywhere; }
.leave-approval-summary dd strong { color: var(--primary-dark); }
.leave-approval-details { min-height: 100px; white-space: pre-wrap; line-height: 1.65; }
.leave-approval-dialog footer { padding: 18px 30px; border-top: 1px solid var(--border); background: #fbfdff; }
.leave-approval-actions { gap: 12px; }
.leave-approval-buttons { display: flex; justify-content: flex-end; gap: 10px; }
.leave-approval-buttons button { min-width: 88px; font-weight: 800; }
.leave-approval-buttons button:disabled { cursor: not-allowed; opacity: .45; }
.leave-rejection-panel { padding: 14px; border: 1px solid #fecaca; border-radius: 12px; background: #fff7f5; }
.leave-rejection-panel label { display: grid; gap: 7px; color: #991b1b; font-weight: 800; }
.leave-rejection-panel textarea { width: 100%; resize: vertical; background: #fff; }
.leave-rejection-panel button { justify-self: end; }
.leave-rejection-result { margin: 0 30px 20px; padding: 14px; border-radius: 12px; background: #fef2f2; color: #991b1b; white-space: pre-wrap; }
.leave-rejection-result strong { display: block; margin-bottom: 5px; }
.leave-actions button:disabled { cursor: wait; opacity: .6; }
@media(max-width:640px){
  .leave-approval-dialog { width: calc(100% - 18px); max-height: calc(100vh - 18px); }
  .leave-approval-dialog > article { max-height: calc(100vh - 18px); }
  .leave-approval-dialog header, .leave-approval-summary, .leave-approval-dialog footer { padding: 18px; }
  .leave-approval-summary { grid-template-columns: 1fr; }
  .leave-approval-summary > div.wide { grid-column: auto; }
  .leave-approval-summary > div { grid-template-columns: 100px 1fr; }
  .leave-approval-buttons { flex-wrap: wrap; }
  .leave-approval-buttons button { flex: 1; }
}

/* Compact authenticated application chrome */
.authenticated .site-header {
  height: var(--app-header-height);
  min-height: var(--app-header-height);
  padding: 6px clamp(16px, 3vw, 56px);
  gap: 12px;
}
.authenticated .brand-block { gap: clamp(10px, 1vw, 16px); }
.authenticated .brand-logo {
  width: 145px;
  height: 64px;
  flex: 0 0 145px;
  object-fit: contain;
  object-position: left center;
}
.authenticated .brand-divider { height: 40px; }
.authenticated .site-header h1 { font-size: 26px; }
.authenticated .userbox { font-size: 14px; }
.authenticated .userbox > span,
.authenticated .userbox > a,
.authenticated .userbox > button {
  min-height: 34px;
  padding: 0 clamp(8px, .6vw, 12px);
}

.authenticated .hero-panel {
  height: var(--app-hero-height);
  min-height: var(--app-hero-height);
  padding: 16px clamp(16px, 3vw, 56px);
  grid-template-columns: minmax(0, 1fr) minmax(360px, 400px);
  column-gap: clamp(24px, 3vw, 52px);
  background-position: center 50%;
}
.authenticated .hero-panel h2 {
  margin: 5px 0 8px;
  font-size: clamp(34px, 2.1vw, 40px);
  line-height: 1.18;
}
.authenticated .hero-panel .eyebrow { font-size: 12px; }
.authenticated .hero-panel p:last-child {
  max-width: 640px;
  font-size: clamp(14px, .8vw, 15px);
  line-height: 1.5;
}
.authenticated .hero-card {
  width: 100%;
  max-width: 400px;
  padding: 12px 14px;
}
.authenticated .hero-card h3 {
  padding-bottom: 7px;
  margin: 0 0 7px;
  font-size: 18px;
}
.authenticated .hero-work-grid { gap: 7px; }
.authenticated .hero-work-stat {
  grid-template-columns: 34px minmax(0,1fr);
  gap: 8px;
  min-height: 62px;
  padding: 7px 10px;
}
.authenticated .hero-work-stat svg { width: 28px; height: 28px; }
.authenticated .hero-work-copy { gap: 3px; }
.authenticated .hero-work-stat span { font-size: 12px; }
.authenticated .hero-work-stat strong { font-size: clamp(22px,1.4vw,26px); line-height: 1; }

.authenticated .nav {
  height: var(--app-nav-height);
  min-height: var(--app-nav-height);
  padding: 6px clamp(12px, 2.2vw, 42px);
  box-sizing: border-box;
}
.authenticated .nav a {
  min-height: 42px;
  height: 42px;
  padding: 4px;
}
.authenticated .nav a::before { font-size: clamp(15px,.85vw,17px); }
.authenticated .portal-content {
  padding: 24px clamp(16px,3vw,56px) 30px;
}

@media (max-width: 900px) and (min-width: 761px) {
  .authenticated .site-header h1 { font-size: 22px; }
  .authenticated .brand-logo { width: 128px; flex-basis: 128px; }
  .authenticated .userbox { font-size: 12px; }
  .authenticated .userbox > span,
  .authenticated .userbox > a,
  .authenticated .userbox > button { padding: 0 6px; }
  .authenticated .hero-panel {
    height: 246px;
    min-height: 246px;
    grid-template-columns: minmax(0,1fr) minmax(330px,370px);
    column-gap: 20px;
  }
  .authenticated .hero-panel h2 { font-size: 30px; }
  .authenticated .hero-panel p:last-child { font-size: 13px; }
  .authenticated .hero-card { max-width: 370px; }
}

@media (max-width: 760px) {
  .authenticated .site-header {
    height: auto;
    min-height: 72px;
    padding: 7px 16px;
    overflow: visible;
  }
  .authenticated .brand-logo { width: 112px; height: 48px; flex-basis: 112px; }
  .authenticated .brand-divider { height: 30px; }
  .authenticated .site-header h1 { font-size: 18px; }
  .authenticated .userbox { font-size: 12px; }
  .authenticated .userbox > span,
  .authenticated .userbox > a,
  .authenticated .userbox > button { min-height: 32px; padding: 0 8px; }
  .authenticated .hero-panel {
    height: auto;
    min-height: 0;
    padding: 24px 16px;
    grid-template-columns: minmax(0,1fr);
    row-gap: 18px;
    background-position: center 50%;
  }
  .authenticated .hero-panel h2 { font-size: clamp(26px,8vw,34px); }
  .authenticated .hero-panel p:last-child { font-size: 14px; }
  .authenticated .hero-card { max-width: none; }
  .authenticated .nav {
    height: var(--app-nav-height);
    min-height: var(--app-nav-height);
    padding: 6px 10px;
  }
  .authenticated .nav a { height: 42px; min-height: 42px; }
  .authenticated .portal-content { padding-top: 18px; }
}

/* Travel expense: scrolling transaction rows with a separate, always-visible totals table. */
.travel-expense-page .expense-table-frame {
  --expense-scrollbar-width: 0px;
  width: 100%;
}
.travel-expense-page .expense-table-scroll {
  max-height: 404px;
  overflow-x: hidden;
  overflow-y: auto;
  border-bottom: 0;
  scrollbar-gutter: stable;
}
.travel-expense-page .expense-totals-wrap {
  width: 100%;
  padding-right: var(--expense-scrollbar-width);
  box-sizing: border-box;
  overflow: hidden;
}
.travel-expense-page .expense-totals-table {
  width: 100%;
  min-width: 0;
  margin: 0;
  border-top: 0;
}
.travel-expense-page .expense-col-date { width: 142px; }
.travel-expense-page .expense-col-payment { width: 92px; }
.travel-expense-page .expense-col-category { width: 160px; }
.travel-expense-page .expense-col-detail { width: auto; }
.travel-expense-page .expense-col-amount { width: 142px; }
.travel-expense-page .expense-col-actions { width: 64px; }
.travel-expense-page .expense-totals-table tfoot tr:first-child > * { border-top-width: 1px; }
@media print {
  .travel-expense-page .expense-table-scroll {
    max-height: none !important;
    overflow: visible !important;
    scrollbar-gutter: auto;
  }
  .travel-expense-page .expense-totals-wrap { padding-right: 0 !important; overflow: visible; }
  .travel-expense-page .expense-totals-table { break-inside: avoid; }
}

/* Expense settlement workflow */
.expense-only-grid{grid-template-columns:minmax(320px,620px);justify-content:start}.expense-workflow-page .application-history-actions,.expense-workflow-page .application-history-actions form{display:inline-flex;align-items:center;gap:6px;margin:0}.expense-workflow-page .link-button{min-height:30px;padding:4px 9px;border:1px solid #cbd8e3;background:#fff;color:#b42318}.expense-admin-filter{display:grid;grid-template-columns:minmax(160px,1fr) 180px auto auto;align-items:end;gap:10px;margin:14px 0 18px}.expense-admin-filter label{display:grid;gap:5px}.expense-admin-filter input,.expense-admin-filter select{height:40px}.status-draft{background:#eef2f5;color:#405773}.status-submitted{background:#e9f3ff;color:#1769aa}.status-approved{background:#e9f8ef;color:#16834b}.expense-detail-sheet{margin:0 auto}.expense-detail-sheet>.electronic-action-bar{justify-content:flex-end;margin-top:16px}.expense-detail-sheet>.electronic-action-bar form{margin:0}@media(max-width:700px){.expense-admin-filter{grid-template-columns:1fr}.expense-only-grid{grid-template-columns:1fr}}
.expense-support-page{overflow:hidden;border:1px solid #d8e3ed;border-radius:12px;background:#fff;color:#0b315d}.expense-support-heading{padding:24px 30px 22px;border-bottom:1px solid #dbe5ee}.expense-support-heading .eyebrow{margin:0 0 8px;color:#f04438;letter-spacing:.2em}.expense-support-heading h2{margin:0;color:#082e59;font-size:34px}.expense-support-heading>p:last-child{margin:7px 0 0;color:#60778e;font-size:15px}.expense-support-layout{display:grid;grid-template-columns:minmax(250px,28%) minmax(0,72%);min-height:560px}.expense-support-menu{padding:28px;border-right:1px solid #dbe5ee}.expense-support-menu h3{margin:0 0 20px;font-size:21px}.expense-support-menu>a,.expense-support-future{display:grid;min-width:0;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:12px;padding:17px;border:1px solid #d8e3ed;border-radius:10px;background:#fff;color:#123c68;text-decoration:none}.expense-support-menu>a.active{border-color:#f5aaa4;border-left:4px solid #ef4438;background:#fff9f8}.expense-menu-icon,.expense-work-icon{display:grid;width:48px;height:48px;place-items:center;border-radius:10px;background:#eef4f9;color:#24577f;font-size:25px;font-style:normal}.expense-support-menu>a.active .expense-menu-icon{background:#fde9e7;color:#ed4438}.expense-support-menu strong,.expense-support-menu small{display:block}.expense-support-menu strong{font-size:15px}.expense-support-menu small{margin-top:5px;color:#617990;font-size:12px}.expense-support-menu em{display:inline-flex;margin-left:5px;padding:3px 7px;border-radius:99px;background:#edf1f4;color:#6c7b89;font-size:10px;font-style:normal}.expense-support-note{display:flex;align-items:center;gap:10px;margin:24px 0 0;padding:14px;border:1px solid #bfd9ee;border-radius:7px;background:#f0f7fd;color:#315a7e;font-size:12px}.expense-support-note b{display:grid;width:20px;height:20px;flex:0 0 20px;place-items:center;border:1px solid #1d70b7;border-radius:50%;color:#1768aa}.expense-support-work{min-width:0;padding:28px}.expense-support-work>header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.expense-support-work>header>div{display:flex;align-items:center;gap:14px}.expense-support-work h3{margin:0;font-size:21px}.expense-work-icon{background:#fff1ef;color:#e84236}.expense-create-button{display:inline-flex;height:44px;align-items:center;padding:0 19px;border-radius:8px;background:#ef4438;color:#fff;font-size:14px;font-weight:800;text-decoration:none}.expense-status-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px;padding:16px;border:1px solid #d8e3ed;border-radius:10px}.expense-status-summary>div{display:flex;min-width:0;align-items:center;justify-content:center;gap:13px;padding:14px;border:1px solid #dce5ed;border-radius:8px}.expense-status-summary i{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:#edf5fc;color:#1670b7;font-size:21px;font-style:normal}.expense-status-summary>div:nth-child(2) i{background:#fff7e9;color:#e79a13}.expense-status-summary>div:nth-child(3) i{background:#eef9f3;color:#16955a}.expense-status-summary span{font-size:13px}.expense-status-summary strong{display:block;margin-top:3px;font-size:21px}.expense-recent-card{padding:18px;border:1px solid #d8e3ed;border-radius:10px}.expense-status-filter{display:flex;gap:7px;margin:14px 0 10px}.expense-status-filter a{padding:7px 14px;border:1px solid #d6e1eb;border-radius:99px;background:#fff;color:#294e70;font-size:12px;font-weight:700;text-decoration:none}.expense-status-filter a.active{border-color:#0b315d;background:#0b315d;color:#fff}.expense-user-table{min-width:720px}.expense-user-table th,.expense-user-table td{padding:12px 10px}.expense-user-table .application-history-actions,.expense-user-table .application-history-actions form{display:inline-flex;align-items:center;gap:5px;margin:0}.expense-user-table .application-history-actions a,.expense-user-table .link-button{min-height:30px;box-sizing:border-box;padding:5px 9px;border:1px solid #b9cde0;border-radius:5px;background:#fff;color:#123d68;font-size:11px;font-weight:700;text-decoration:none}.expense-user-table .link-button{color:#b42318}.expense-all-link{display:block;padding:13px 0 1px;color:#1768aa;font-size:13px;text-align:center;text-decoration:none}
@media(max-width:900px){.expense-support-heading{padding:20px}.expense-support-layout{grid-template-columns:1fr}.expense-support-menu{padding:18px;border-right:0;border-bottom:1px solid #dbe5ee}.expense-support-menu h3{margin-bottom:12px}.expense-support-menu>a,.expense-support-future{margin-bottom:8px;padding:12px}.expense-support-note{margin-top:12px}.expense-support-work{padding:18px}}
@media(max-width:600px){.expense-support-heading h2{font-size:28px}.expense-support-work>header{align-items:stretch;flex-direction:column}.expense-create-button{justify-content:center}.expense-status-summary{grid-template-columns:1fr;padding:10px}.expense-status-summary>div{justify-content:flex-start}.expense-recent-card{padding:12px}.expense-status-filter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.expense-status-filter a{text-align:center}}

/* Expense settlement detail page only. */
.expense-detail-page .expense-detail-toolbar{width:100%}.expense-detail-page .expense-detail-back{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;white-space:nowrap}.expense-detail-page .expense-detail-sheet{width:min(1120px,100%);padding:28px}.expense-detail-page .electronic-sheet-header{grid-template-columns:132px minmax(380px,1fr) 400px;min-height:104px;border-width:1.5px}.expense-detail-brand{padding:10px}.expense-detail-brand img{width:auto;max-width:108px;height:auto;max-height:58px;object-fit:contain}.expense-detail-title-cell{display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #526579;padding:10px 14px;text-align:center}.expense-detail-title-cell h1{font-size:24px;line-height:1.2;letter-spacing:0;white-space:nowrap}.expense-detail-document-number{display:flex;align-items:center;justify-content:center;gap:7px;margin:8px 0 0;color:#526579;font-size:11px}.expense-detail-approval-table{width:100%;height:100%;table-layout:fixed;border:0;border-collapse:collapse;font-size:13px}.expense-detail-approval-table th,.expense-detail-approval-table td{height:50%;padding:6px 4px;border:0;border-right:1px solid #526579;text-align:center;vertical-align:middle;line-height:1.25;word-break:keep-all}.expense-detail-approval-table th:last-child,.expense-detail-approval-table td:last-child{border-right:0}.expense-detail-approval-table thead th{border-bottom:1px solid #526579;background:#eaf0f5;color:var(--navy);font-weight:700}.expense-detail-approval-table tbody td{font-weight:700}.expense-detail-applicant-table{table-layout:fixed;font-size:13px}.expense-detail-applicant-table th,.expense-detail-applicant-table td{width:16.6667%;height:40px;padding:5px 8px;border-color:#526579;text-align:center!important;vertical-align:middle!important;line-height:1.25}.expense-detail-expense-table{margin-top:18px}.expense-detail-expense-table th,.expense-detail-expense-table td{height:38px;padding:5px 8px;font-size:13px;line-height:1.25}.expense-detail-expense-table thead th{text-align:center}.expense-detail-expense-table tbody td:nth-child(1),.expense-detail-expense-table tbody td:nth-child(2),.expense-detail-expense-table tbody td:nth-child(3),.expense-detail-expense-table tbody td:nth-child(5){text-align:center}.expense-detail-expense-table tbody td:nth-child(4){text-align:left}.expense-detail-expense-table tfoot th,.expense-detail-expense-table tfoot td{text-align:right}
@media(max-width:980px){.expense-detail-page .electronic-sheet-header{grid-template-columns:116px minmax(360px,1fr)}.expense-detail-title-cell{border-right:0}.expense-detail-approval-table{grid-column:1/-1;border-top:1px solid #526579}.expense-detail-title-cell h1{font-size:22px}}
@media(max-width:640px){.expense-detail-page .expense-detail-sheet{padding:14px;overflow-x:auto}.expense-detail-page .electronic-sheet-header{grid-template-columns:1fr}.expense-detail-brand{border-right:0;border-bottom:1px solid #526579}.expense-detail-title-cell{padding:12px 6px}.expense-detail-title-cell h1{font-size:clamp(16px,4.9vw,21px)}.expense-detail-approval-table{grid-column:auto}.expense-detail-expense-table{min-width:660px}}
@media print{.expense-detail-page .expense-detail-toolbar,.expense-detail-page .electronic-action-bar{display:none!important}.expense-detail-page .expense-detail-sheet{width:100%;max-width:none;padding:0;overflow:visible;box-shadow:none}.expense-detail-page .electronic-sheet-header{grid-template-columns:120px minmax(360px,1fr) 360px;min-height:96px}.expense-detail-title-cell h1{font-size:22px;white-space:nowrap}.expense-detail-approval-table{grid-column:auto;border-top:0}.expense-detail-expense-table{min-width:0;margin-top:14px}.expense-detail-expense-table thead{display:table-header-group}.expense-detail-expense-table tfoot{display:table-footer-group}.expense-detail-expense-table tr{break-inside:avoid}}

/* Travel expense merchant-name columns. */
.travel-expense-page .statement-table th:nth-child(1){width:48px}
.travel-expense-page .statement-table th:nth-child(2){width:112px}
.travel-expense-page .statement-table th:nth-child(3){width:142px}
.travel-expense-page .statement-table th:nth-child(4){width:auto}
.travel-expense-page .statement-table th:nth-child(5){width:128px}
.travel-expense-page .statement-table td:nth-child(1),.travel-expense-page .statement-table td:nth-child(2),.travel-expense-page .statement-table td:nth-child(3),.travel-expense-page .statement-table td:nth-child(5){text-align:center}
.travel-expense-page .statement-table td:nth-child(4){overflow:hidden;text-align:left;text-overflow:ellipsis}
.travel-expense-page .statement-merchant{display:block;overflow:hidden;padding:0 6px;text-overflow:ellipsis;white-space:nowrap}
.travel-expense-page .expense-col-date{width:126px}
.travel-expense-page .expense-col-payment{width:82px}
.travel-expense-page .expense-col-category{width:138px}
.travel-expense-page .expense-col-merchant{width:190px}
.travel-expense-page .expense-col-detail{width:auto}
.travel-expense-page .expense-col-amount{width:126px}
.travel-expense-page .expense-col-actions{width:60px}
.travel-expense-page .expense-table tbody td:nth-child(4),.travel-expense-page .expense-table tbody td:nth-child(5){text-align:left}
.expense-preview-table th:nth-child(1){width:14%}.expense-preview-table th:nth-child(2){width:10%}.expense-preview-table th:nth-child(3){width:14%}.expense-preview-table th:nth-child(4){width:24%}.expense-preview-table th:nth-child(5){width:25%}.expense-preview-table th:nth-child(6){width:13%}
.expense-preview-table td:nth-child(1),.expense-preview-table td:nth-child(2),.expense-preview-table td:nth-child(3),.expense-preview-table td:nth-child(6){text-align:center}.expense-preview-table td:nth-child(4),.expense-preview-table td:nth-child(5){text-align:left}.expense-preview-table td:nth-child(6){white-space:nowrap;font-weight:800}
.expense-detail-expense-table tbody td:nth-child(1),.expense-detail-expense-table tbody td:nth-child(2),.expense-detail-expense-table tbody td:nth-child(3),.expense-detail-expense-table tbody td:nth-child(6){text-align:center}.expense-detail-expense-table tbody td:nth-child(4),.expense-detail-expense-table tbody td:nth-child(5){text-align:left}.expense-detail-expense-table tbody td:nth-child(6){white-space:nowrap;font-weight:700}

/* Travel expense alignment and immutable statement rows. */
.travel-expense-page .settlement-applicant-row th,.travel-expense-page .settlement-applicant-row td{height:40px;padding:5px 8px;text-align:center!important;vertical-align:middle!important;font-family:inherit;font-size:13px;line-height:1.25}
.travel-expense-page .settlement-applicant-row input{text-align:center}
.travel-expense-page .statement-table th:nth-child(1){width:5%}.travel-expense-page .statement-table th:nth-child(2){width:14%}.travel-expense-page .statement-table th:nth-child(3){width:18%}.travel-expense-page .statement-table th:nth-child(4){width:48%}.travel-expense-page .statement-table th:nth-child(5){width:15%}
.travel-expense-page .statement-table th,.travel-expense-page .statement-table td,.travel-expense-page .statement-table td:nth-child(4),.travel-expense-page .statement-merchant{text-align:center}
.travel-expense-page .statement-merchant{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.travel-expense-page .statement-category{text-align:center;text-align-last:center}
.travel-expense-page .expense-col-date{width:13%}.travel-expense-page .expense-col-payment{width:10%}.travel-expense-page .expense-col-category{width:13%}.travel-expense-page .expense-col-merchant{width:18%}.travel-expense-page .expense-col-detail{width:27%}.travel-expense-page .expense-col-amount{width:12%}.travel-expense-page .expense-col-actions{width:7%}
.travel-expense-page .expense-table th,.travel-expense-page .expense-table td{text-align:center}
.travel-expense-page .expense-table tbody td:nth-child(4){text-align:center}.travel-expense-page .expense-table tbody td:nth-child(5){text-align:left}.travel-expense-page .expense-table tbody td:nth-child(6){text-align:center}
.travel-expense-page .expense-table select{text-align:center;text-align-last:center}.travel-expense-page .expense-table input[name="expense_merchant_name"]{text-align:center}.travel-expense-page .expense-table input[name="expense_description"]{text-align:left}
.travel-expense-page .compact-expense-table input[readonly],.travel-expense-page .compact-expense-table select:disabled{border-color:#c9d4de;background:#f4f7fa;color:#294863;opacity:1;cursor:not-allowed;-webkit-text-fill-color:#294863}
.expense-preview-table td:nth-child(4),.expense-detail-expense-table tbody td:nth-child(4){text-align:center}.expense-preview-table td:nth-child(5),.expense-detail-expense-table tbody td:nth-child(5){text-align:left}.expense-preview-table td:nth-child(6),.expense-detail-expense-table tbody td:nth-child(6){text-align:center}

/* Travel expense table UI v5. */
.travel-expense-page .statement-table th:nth-child(1){width:5%}.travel-expense-page .statement-table th:nth-child(2){width:14%}.travel-expense-page .statement-table th:nth-child(3){width:18%}.travel-expense-page .statement-table th:nth-child(4){width:48%}.travel-expense-page .statement-table th:nth-child(5){width:15%}
.travel-expense-page .statement-table td:nth-child(4),.travel-expense-page .statement-merchant{text-align:left;vertical-align:middle}
.travel-expense-page .statement-merchant{display:block;overflow:hidden;padding:0 7px;text-overflow:ellipsis;white-space:nowrap}
.travel-expense-page .expense-col-date{width:11%}.travel-expense-page .expense-col-payment{width:8%}.travel-expense-page .expense-col-category{width:16%}.travel-expense-page .expense-col-merchant{width:13%}.travel-expense-page .expense-col-detail{width:29%}.travel-expense-page .expense-col-amount{width:14%}.travel-expense-page .expense-col-actions{width:9%}
.travel-expense-page .expense-table th,.travel-expense-page .expense-table td{min-width:0}
.travel-expense-page .expense-table select[name="expense_category"]{width:100%;min-width:0;text-align:center;text-align-last:center}
.travel-expense-page .expense-table input[name="expense_merchant_name"],.travel-expense-page .expense-table input[name="expense_description"]{width:100%;min-width:0}
@media(max-width:760px){.travel-expense-page .expense-table-scroll{overflow-x:auto}.travel-expense-page .expense-table-scroll .expense-table{min-width:900px}.travel-expense-page .expense-totals-wrap{min-width:900px}.travel-expense-page .statement-table-scroll{overflow-x:auto}.travel-expense-page .statement-table-scroll .statement-table{min-width:720px}}

/* Card statement simplified table and shared typography v6. */
.travel-expense-page .statement-results,.travel-expense-page .statement-results h3,.travel-expense-page .statement-results table,.travel-expense-page .statement-results th,.travel-expense-page .statement-results td,.travel-expense-page .statement-results select,.travel-expense-page .statement-results button{font-family:inherit;font-size:13px;line-height:1.25}
.travel-expense-page .statement-results h3{font-weight:700}.travel-expense-page .statement-results th{font-weight:700}.travel-expense-page .statement-results td,.travel-expense-page .statement-results select{font-weight:400}
.travel-expense-page .statement-table th:nth-child(1){width:6%}.travel-expense-page .statement-table th:nth-child(2){width:17%}.travel-expense-page .statement-table th:nth-child(3){width:59%}.travel-expense-page .statement-table th:nth-child(4){width:18%}
.travel-expense-page .statement-table th,.travel-expense-page .statement-table td{text-align:center;vertical-align:middle}
.travel-expense-page .statement-table td:nth-child(3),.travel-expense-page .statement-merchant{text-align:left;vertical-align:middle}
.travel-expense-page .statement-merchant{display:block;overflow:hidden;padding:0 8px;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.travel-expense-page .statement-table-scroll .statement-table{min-width:640px}}
.travel-expense-page .statement-table td.statement-merchant{display:table-cell;overflow:hidden;text-align:left;vertical-align:middle;text-overflow:ellipsis;white-space:nowrap}

/* Travel expense table typography and editable controls v7. */
.travel-expense-page .compact-expense-table tbody td,
.travel-expense-page .compact-expense-table tbody input,
.travel-expense-page .compact-expense-table tbody select {
  font-family: inherit;
  font-size: var(--expense-table-font-size);
  font-weight: 400;
  line-height: 1.25;
}
.travel-expense-page .statement-table tbody td:nth-child(2) {
  text-align: center;
  vertical-align: middle;
}
.travel-expense-page .statement-table tbody td:nth-child(3),
.travel-expense-page .statement-table tbody td.statement-merchant {
  padding-right: var(--expense-cell-padding-x);
  padding-left: var(--expense-cell-padding-x);
  text-align: left;
  vertical-align: middle;
  font-weight: 400;
}
.travel-expense-page .statement-table tbody td:nth-child(4) {
  padding-right: 12px;
  text-align: right;
  vertical-align: middle;
  font-weight: 400;
}
.travel-expense-page.expense-edit-page .expense-table tbody input[type="date"],
.travel-expense-page.expense-edit-page .expense-table tbody select[name="payment_type"],
.travel-expense-page.expense-edit-page .expense-table tbody select[name="expense_category"] {
  display: block;
  width: 100%;
  min-width: 0;
  height: var(--expense-control-height);
  min-height: var(--expense-control-height);
  margin: 0 auto;
  box-sizing: border-box;
  border: 1px solid #b7c3ce;
  border-radius: 5px;
  background-color: #fff;
  color: #102f4d;
  font-family: inherit;
  font-size: var(--expense-table-font-size);
  font-weight: 400;
  line-height: 1.2;
  text-align: center;
}
.travel-expense-page.expense-edit-page .expense-table tbody input[type="date"] {
  padding: 4px 6px;
}
.travel-expense-page.expense-edit-page .expense-table tbody select[name="payment_type"],
.travel-expense-page.expense-edit-page .expense-table tbody select[name="expense_category"] {
  padding: 4px 26px 4px 8px;
  text-align: center;
  text-align-last: center;
}
.travel-expense-page.expense-edit-page .expense-table tbody select[name="payment_type"] option,
.travel-expense-page.expense-edit-page .expense-table tbody select[name="expense_category"] option {
  font-family: inherit;
  font-size: var(--expense-table-font-size);
  font-weight: 400;
  text-align: center;
}

/* Travel expense editor column balance and shared section heading v8. */
.travel-expense-page .expense-heading h3 {
  margin: 0;
  color: var(--navy);
  font-family: inherit;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}
.travel-expense-page.expense-edit-page .expense-col-date { width: 15%; }
.travel-expense-page.expense-edit-page .expense-col-payment { width: 12%; }
.travel-expense-page.expense-edit-page .expense-col-category { width: 14%; }
.travel-expense-page.expense-edit-page .expense-col-merchant { width: 20%; }
.travel-expense-page.expense-edit-page .expense-col-detail { width: 21%; }
.travel-expense-page.expense-edit-page .expense-col-amount { width: 11%; }
.travel-expense-page.expense-edit-page .expense-col-actions { width: 7%; }
.travel-expense-page.expense-edit-page .expense-table {
  table-layout: fixed;
}
.travel-expense-page.expense-edit-page .expense-table tbody input:not([type="checkbox"]),
.travel-expense-page.expense-edit-page .expense-table tbody select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.travel-expense-page.expense-edit-page .expense-table tbody input[type="date"] {
  min-width: 118px;
}
.travel-expense-page.expense-edit-page .expense-table tbody select[name="payment_type"],
.travel-expense-page.expense-edit-page .expense-table tbody select[name="expense_category"] {
  padding-right: 28px;
  padding-left: 8px;
}
@media (max-width: 980px) {
  .travel-expense-page.expense-edit-page .expense-table-scroll {
    overflow-x: auto;
  }
  .travel-expense-page.expense-edit-page .expense-table-scroll .expense-table,
  .travel-expense-page.expense-edit-page .expense-totals-wrap {
    min-width: 900px;
  }
}

/* Keep expense editor header cells synchronized with colgroup v9. */
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(1) { width: 15%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(2) { width: 12%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(3) { width: 14%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(4) { width: 20%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(5) { width: 21%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(6) { width: 11%; }
.travel-expense-page.expense-edit-page .expense-table:not(.expense-totals-table) thead th:nth-child(7) { width: 7%; }


/* Weekly To Do report */
.weekly-period-readonly { display:grid; min-width:290px; gap:5px; color:#405773; }
.weekly-period-readonly>span { font-size:13px; font-weight:750; }
.weekly-period-readonly>strong { color:var(--navy); font-size:17px; }
.weekly-period-readonly>small { color:#71869d; font-size:12px; }
.weekly-report-summary section { margin-top:18px; padding-top:16px; border-top:1px solid var(--border); }
.weekly-report-summary h4 { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0; color:var(--navy); }
.weekly-report-summary h4 span { color:var(--primary); font-size:13px; }
.weekly-report-summary section>p { margin:5px 0 10px; color:#71869d; font-size:12px; }
.weekly-report-items { margin:0; padding-left:22px; }
.weekly-report-items li { margin:0 0 13px; color:#405773; }
.weekly-report-items li>strong,.weekly-report-items li>span { display:block; }
.weekly-report-items li>strong { color:var(--navy); }
.weekly-report-items li>span { margin-top:3px; color:#60758d; font-size:12px; line-height:1.45; }
.weekly-report-items .weekly-report-empty { list-style:none; margin-left:-22px; padding:13px; border-radius:8px; background:#f5f7f9; color:#71869d; text-align:center; }
.weekly-preview-button { border:1px solid #9fb3c8; background:#fff; color:var(--navy); }
.weekly-preview-dialog { width:min(860px,calc(100% - 28px)); max-height:calc(100vh - 32px); padding:0; overflow:hidden; border:0; border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(6,40,74,.3); }
.weekly-preview-dialog::backdrop { background:rgba(3,31,59,.68); }
.weekly-preview-dialog>article { display:grid; grid-template-rows:auto minmax(0,1fr) auto; max-height:calc(100vh - 32px); }
.weekly-preview-dialog header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:24px 28px 18px; border-bottom:1px solid var(--border); }
.weekly-preview-dialog header h2 { margin:3px 0 0; color:var(--navy); }
.weekly-preview-close { width:38px; height:38px; padding:0; border-radius:50%; background:#eef3f7; color:var(--navy); font-size:24px; line-height:1; }
.weekly-preview-content { overflow-y:auto; padding:24px 28px 28px; }
.weekly-preview-content dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0 0 18px; }
.weekly-preview-content dl div { padding:12px 14px; border-radius:10px; background:#f1f5f9; }
.weekly-preview-content dt { color:#71869d; font-size:12px; font-weight:800; }
.weekly-preview-content dd { margin:3px 0 0; color:var(--navy); font-weight:800; }
.weekly-preview-content pre { margin:0; padding:22px; overflow-wrap:anywhere; border:1px solid var(--border); border-radius:12px; background:#fbfdff; color:#263f58; font:inherit; line-height:1.65; white-space:pre-wrap; }
.weekly-preview-dialog footer { display:flex; justify-content:flex-end; padding:16px 28px; border-top:1px solid var(--border); background:#fbfdff; }
@media(max-width:700px){.weekly-period-readonly{min-width:0}.report-actions{width:100%;flex-wrap:wrap}.report-actions>*{flex:1 1 120px;text-align:center}.weekly-preview-content dl{grid-template-columns:1fr}.weekly-preview-dialog{width:calc(100% - 18px);max-height:calc(100vh - 18px)}.weekly-preview-dialog>article{max-height:calc(100vh - 18px)}.weekly-preview-dialog header,.weekly-preview-content{padding:20px 18px}.weekly-preview-dialog footer{padding:14px 18px}}

/* Formal weekly To Do report */
.weekly-formal-page{width:100%;max-width:none;font-family:inherit}
.weekly-formal-page button,.weekly-formal-page input,.weekly-formal-page select,.weekly-formal-page textarea{font:inherit}
.weekly-week-navigation{display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;gap:24px;margin-bottom:20px;padding:8px 0}
.weekly-current-week{display:grid;justify-items:center;gap:3px;color:var(--navy);text-align:center}
.weekly-current-week strong{font-size:18px;font-weight:850}
.weekly-current-week small{color:#60758d;font-size:13px;font-weight:700}
.weekly-week-move{display:flex;align-items:center;justify-content:center;min-height:42px;font-size:14px;font-weight:800}
.weekly-week-move:last-of-type{justify-self:end}
.weekly-report-editor-form{display:grid;gap:18px}
.weekly-report-document{padding:clamp(22px,3vw,38px);border:1px solid #c9d4df;background:#fff;color:#23384d;box-shadow:0 10px 28px rgba(9,43,73,.08)}
.weekly-report-brand-header{display:grid;grid-template-columns:minmax(155px,1fr) auto minmax(155px,1fr);align-items:center;min-height:88px;padding-bottom:16px;border-bottom:2px solid var(--navy)}
.weekly-report-logo{display:flex;align-items:center;min-width:0}
.weekly-report-logo img{display:block;width:155px;height:72px;object-fit:contain;object-position:left center}
.weekly-report-brand-header h1{justify-self:center;margin:0;color:var(--navy);font-size:clamp(28px,2.5vw,38px);line-height:1.2;text-align:center;letter-spacing:.04em}
.weekly-report-author{justify-self:end;color:var(--navy);font-size:15px;font-weight:800;white-space:nowrap}
.weekly-report-section{margin-top:22px}
.weekly-report-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:10px}
.weekly-report-section-heading h2{margin:0;color:var(--navy);font-size:20px}
.weekly-report-section-heading button{min-height:32px;padding:5px 10px;font-size:14px}
.weekly-report-table-wrap{width:100%;max-width:100%;overflow-x:hidden;border:1px solid #afbecd;box-sizing:border-box}
.weekly-report-document,.weekly-report-section{min-width:0;max-width:100%;box-sizing:border-box}.weekly-report-table,.weekly-report-table *{box-sizing:border-box}.weekly-report-table{width:100%;max-width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;background:#fff}
.weekly-report-table th,.weekly-report-table td{padding:5px 6px;border:1px solid #bdc9d5;vertical-align:middle;line-height:1.4}
.weekly-report-table th{background:#e8eef4;color:var(--navy);font-size:13px;font-weight:800;text-align:center;white-space:nowrap}
.weekly-report-table td{font-size:13px;overflow-wrap:anywhere}
.weekly-report-table .weekly-col-number{width:3%}.weekly-report-table .weekly-col-project{width:14%}.weekly-report-table .weekly-col-todo{width:20%}.weekly-report-table .weekly-col-detail{width:30%}.weekly-report-table .weekly-col-priority{width:4%}.weekly-report-table .weekly-col-period{width:13%}.weekly-report-table .weekly-col-progress{width:6%}.weekly-report-table .weekly-col-status{width:7%}.weekly-report-table .weekly-col-management{width:3%}
.weekly-report-table th:nth-child(1),.weekly-report-table td:nth-child(1),.weekly-report-table th:nth-child(n+5),.weekly-report-table td:nth-child(n+5){text-align:center}
.weekly-report-table th:nth-child(n+5),.weekly-report-table td:nth-child(n+5){white-space:nowrap}
.weekly-report-table th:first-child,.weekly-report-table td:first-child,.weekly-report-table th.report-control-column,.weekly-report-table td.report-control-column{padding-right:4px;padding-left:4px}
.weekly-report-table th:nth-child(n+5),.weekly-report-table td:nth-child(n+5){padding-right:4px;padding-left:4px}
.weekly-report-table input,.weekly-report-table select,.weekly-report-table textarea,.weekly-report-table button{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.weekly-report-table input,.weekly-report-table select,.weekly-report-table textarea{border:1px solid #aebdcb;border-radius:6px;background:#fff;color:#23384d}
.weekly-report-table input,.weekly-report-table select{height:34px;padding:0 6px;font-size:13px}
.weekly-report-table textarea[data-report-field="task"],.weekly-report-table textarea[data-report-field="remarks"]{height:34px;min-height:34px;max-height:none;padding:6px 8px;overflow-y:hidden;font-size:13px;line-height:1.4;resize:none;white-space:pre-wrap;overflow-wrap:anywhere;word-break:keep-all}
.weekly-progress-edit{display:flex;align-items:center;justify-content:center;width:calc(80% + 8px);max-width:calc(80% + 8px);margin:0 auto;gap:3px;box-sizing:border-box}.weekly-progress-edit input{width:calc(100% - 12px);max-width:calc(100% - 12px);min-width:0;padding-right:2px;padding-left:2px;box-sizing:border-box}.weekly-progress-edit b{flex:0 0 auto;color:var(--navy);font-size:12px}
.weekly-report-table select[data-report-field="status"]{display:block;width:calc(80% + 8px);max-width:calc(80% + 8px);margin:0 auto;padding-right:18px;padding-left:4px;box-sizing:border-box}
.weekly-report-table td:nth-child(5)>[data-report-field="priority"],.weekly-output-table .weekly-compact-content{display:flex;align-items:center;justify-content:center;width:calc(80% + 8px);max-width:calc(80% + 8px);margin:0 auto;box-sizing:border-box;white-space:nowrap}
.weekly-report-table th:nth-child(2),.weekly-report-table td:nth-child(2),.weekly-report-table th:nth-child(3),.weekly-report-table td:nth-child(3),.weekly-report-table th:nth-child(4),.weekly-report-table td:nth-child(4){min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.weekly-period-heading span{display:block;line-height:1.35;white-space:nowrap}.weekly-period-heading span+span{margin-top:3px}.weekly-period-cell{padding-top:4px!important;padding-bottom:4px!important;text-align:center}.weekly-period-line{display:flex;align-items:center;justify-content:center;min-width:0;margin:0;line-height:1.35}.weekly-period-line+.weekly-period-line{margin-top:3px}.weekly-period-line span,.weekly-period-line input{min-width:0;white-space:nowrap}.weekly-period-line input{height:30px!important;padding:0 2px!important;font-size:12px!important}
.weekly-email-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.weekly-email-grid label{display:grid;gap:6px;color:var(--navy);font-weight:800}.weekly-email-grid textarea,.weekly-email-grid input{width:100%;box-sizing:border-box}.weekly-email-subject{grid-column:1/-1}.weekly-email-actions{display:flex;justify-content:flex-end;margin-top:14px}
.weekly-report-row-number,.weekly-report-readonly-center{text-align:center}
.weekly-report-empty{padding:20px!important;color:#718397;text-align:center}
.weekly-row-remove{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;height:32px;padding:0 4px;border:1px solid #ba6270;border-radius:6px;background:#fff;color:#9b3042;font-size:12px;font-weight:800;white-space:nowrap}
.weekly-report-help{margin:8px 0 0;color:#6c8094;font-size:12px}
.weekly-email-options{border:1px solid var(--border);border-radius:12px;background:#fff}
.weekly-email-options summary{padding:14px 18px;color:var(--navy);font-weight:800;cursor:pointer}
.weekly-email-options[open] summary{border-bottom:1px solid var(--border)}
.weekly-email-options>div{padding:18px}
.weekly-report-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.weekly-report-actions>*{min-height:42px}
.weekly-formal-preview-dialog{width:min(1540px,calc(100% - 24px));max-width:none;height:calc(100vh - 24px);max-height:none;padding:0;overflow:hidden;border:0;border-radius:14px;background:#eef2f5;box-shadow:0 24px 70px rgba(6,40,74,.34)}
.weekly-formal-preview-dialog::backdrop{background:rgba(3,31,59,.72)}
.weekly-formal-preview-dialog>article{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}
.weekly-preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid #c4d0db;background:#fff}
.weekly-preview-toolbar h2{margin:0;color:var(--navy);font-size:20px}
.weekly-formal-preview-dialog>article>header.weekly-preview-toolbar>button[data-weekly-preview-close]{width:38px;height:38px;padding:0;border-radius:50%;background:#e9eef3;color:var(--navy);font-size:24px;line-height:1}
.weekly-preview-toolbar:last-child{justify-content:flex-end;border-top:1px solid #c4d0db;border-bottom:0}
.weekly-preview-actions .weekly-preview-action-button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:104px;height:42px;min-height:42px;padding:0 18px;border:0;border-radius:8px;background:var(--primary);color:#fff;font-size:14px;font-weight:800;line-height:1;white-space:nowrap}.weekly-preview-actions .weekly-preview-action-button:hover{background:var(--primary-dark);color:#fff}
.weekly-preview-scroll{display:flex;align-items:flex-start;justify-content:center;overflow-x:hidden;overflow-y:auto;padding:20px}.weekly-print-sheet{width:min(1400px,100%);max-width:100%;min-height:min(990px,calc((100vw - 104px)*210/297));margin:0 auto;overflow-x:clip;aspect-ratio:297/210;box-sizing:border-box}.weekly-print-sheet .weekly-report-section,.weekly-print-sheet .weekly-report-table{width:100%;max-width:100%}.weekly-output-table{width:100%;max-width:100%;min-width:0}
.weekly-output-table td{height:auto;min-height:34px;white-space:normal;word-break:keep-all;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.weekly-output-table td:nth-child(4){white-space:pre-wrap}
@media(max-width:900px){.weekly-week-navigation{grid-template-columns:auto minmax(180px,1fr) auto;gap:12px}.weekly-report-brand-header{grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr)}.weekly-report-logo img{width:118px;height:60px}}
@media(max-width:600px){.weekly-week-navigation{grid-template-columns:1fr 1fr}.weekly-current-week{grid-column:1/-1;grid-row:1}.weekly-week-move{grid-row:2}.weekly-week-move:last-of-type{grid-column:2}.weekly-report-document{padding:16px}.weekly-report-brand-header{grid-template-columns:1fr;gap:8px}.weekly-report-author{justify-self:center}.weekly-report-logo{justify-content:center}.weekly-report-logo img{object-position:center}.weekly-report-section-heading{align-items:stretch;flex-direction:column}.weekly-report-actions>*{flex:1 1 130px}.weekly-formal-preview-dialog{width:calc(100% - 10px);height:calc(100vh - 10px)}.weekly-preview-scroll{padding:8px}}
@media(max-width:700px){.weekly-email-grid{grid-template-columns:1fr}.weekly-email-subject{grid-column:auto}}
@page weekly-report{size:A4 landscape;margin:10mm}
@media print{
 body.printing-weekly-report .site-header,body.printing-weekly-report .hero-panel,body.printing-weekly-report .nav,body.printing-weekly-report .flash-list,body.printing-weekly-report .weekly-formal-page>:not(.weekly-formal-preview-dialog){display:none!important}
 body.printing-weekly-report,body.printing-weekly-report .page-shell,body.printing-weekly-report .content-area,body.printing-weekly-report .weekly-formal-page{display:block!important;min-width:0!important;margin:0!important;padding:0!important;background:#fff!important}
 body.printing-weekly-report .weekly-formal-preview-dialog{position:static!important;display:block!important;width:auto!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
 body.printing-weekly-report .weekly-formal-preview-dialog>article,body.printing-weekly-report .weekly-preview-scroll{display:block!important;height:auto!important;overflow:visible!important;padding:0!important}
 body.printing-weekly-report .weekly-preview-toolbar{display:none!important}
 body.printing-weekly-report .weekly-print-sheet{page:weekly-report;width:100%!important;max-width:100%!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important;border:0!important;box-shadow:none!important;aspect-ratio:auto!important}
 body.printing-weekly-report .weekly-report-brand-header{min-height:20mm;grid-template-columns:42mm minmax(0,1fr) 42mm;padding-bottom:3mm}
 body.printing-weekly-report .weekly-report-logo img{width:36mm;height:17mm}
 body.printing-weekly-report .weekly-report-brand-header h1{font-size:20pt}
 body.printing-weekly-report .weekly-report-author{font-size:9pt}
 body.printing-weekly-report .weekly-report-section{margin-top:5mm}
 body.printing-weekly-report .weekly-report-section-heading{margin-bottom:2mm}
 body.printing-weekly-report .weekly-report-section-heading h2{font-size:12pt}
 body.printing-weekly-report .weekly-report-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed}
 body.printing-weekly-report .weekly-col-number{width:3%!important}body.printing-weekly-report .weekly-col-project{width:14%!important}body.printing-weekly-report .weekly-col-todo{width:20%!important}body.printing-weekly-report .weekly-col-detail{width:30%!important}body.printing-weekly-report .weekly-col-priority{width:4%!important}body.printing-weekly-report .weekly-col-period{width:13%!important}body.printing-weekly-report .weekly-col-progress{width:6%!important}body.printing-weekly-report .weekly-col-status{width:7%!important}body.printing-weekly-report .weekly-col-management{width:3%!important}
 body.printing-weekly-report .weekly-report-table th,body.printing-weekly-report .weekly-report-table td{padding:1.4mm;font-size:8pt;line-height:1.35;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:keep-all}
 body.printing-weekly-report .weekly-report-table th:nth-child(n+5),body.printing-weekly-report .weekly-report-table td:nth-child(n+5){padding-right:2.8mm;padding-left:2.8mm}
 body.printing-weekly-report .weekly-report-table thead{display:table-header-group}
 body.printing-weekly-report .weekly-report-table tr{break-inside:avoid;page-break-inside:avoid}
 body.printing-weekly-report .weekly-output-table td{height:auto;white-space:pre-wrap}
}

/* Weekly status preview containment, aligned columns and landscape print v2. */
.weekly-formal-preview-dialog,
.weekly-formal-preview-dialog *,
.weekly-print-sheet,
.weekly-print-sheet * {
  box-sizing: border-box;
}
.weekly-preview-scroll {
  max-width: 100%;
  overflow-x: hidden;
}
.weekly-print-sheet {
  flex: 0 1 1400px;
  width: min(1400px, 100%);
  max-width: 100%;
  min-width: 0;
}
.weekly-print-sheet .weekly-report-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
}
.weekly-print-sheet .weekly-output-table {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-right: 0;
  margin-left: 0;
  table-layout: fixed;
}
.weekly-print-sheet .weekly-output-table th,
.weekly-print-sheet .weekly-output-table td {
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.weekly-print-sheet .weekly-output-table textarea,
.weekly-print-sheet .weekly-output-table input,
.weekly-print-sheet .weekly-output-table select {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.weekly-print-sheet .weekly-output-table .weekly-col-number { width: 3%; }
.weekly-print-sheet .weekly-output-table .weekly-col-project { width: 14%; }
.weekly-print-sheet .weekly-output-table .weekly-col-todo { width: 20%; }
.weekly-print-sheet .weekly-output-table .weekly-col-detail { width: 30%; }
.weekly-print-sheet .weekly-output-table .weekly-col-priority { width: 4%; }
.weekly-print-sheet .weekly-output-table .weekly-col-period { width: 13%; }
.weekly-print-sheet .weekly-output-table .weekly-col-progress { width: 6%; }
.weekly-print-sheet .weekly-output-table .weekly-col-status { width: 7%; }
.weekly-print-sheet .weekly-output-table .weekly-col-management { width: 3%; }
.weekly-print-sheet .weekly-output-table tbody tr,
.weekly-print-sheet .weekly-output-table tbody td {
  height: auto;
}
.weekly-print-sheet .weekly-output-table td:nth-child(3),
.weekly-print-sheet .weekly-output-table td:nth-child(4) {
  white-space: pre-wrap;
}
.weekly-preview-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
.weekly-preview-actions .weekly-preview-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: auto;
  min-width: 104px;
  height: 42px;
  min-height: 42px;
  padding: 0 18px;
  border: 1px solid var(--primary);
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  transition: background-color .2s, border-color .2s, color .2s;
}
.weekly-preview-actions .weekly-preview-action-button:hover,
.weekly-preview-actions .weekly-preview-action-button:focus-visible {
  border-color: var(--primary-dark);
  background: var(--primary-dark);
  color: #fff;
}
@page {
  size: A4 landscape;
  margin: 10mm;
}
@media print {
  html,
  body {
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    background: #fff;
  }
  body.printing-weekly-report .weekly-formal-preview-dialog::backdrop,
  body.printing-weekly-report .weekly-preview-toolbar,
  body.printing-weekly-report .weekly-preview-actions {
    display: none !important;
  }
  body.printing-weekly-report .weekly-preview-scroll,
  body.printing-weekly-report .weekly-print-sheet,
  body.printing-weekly-report .weekly-report-section,
  body.printing-weekly-report .weekly-output-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
  }
  body.printing-weekly-report .weekly-output-table {
    table-layout: fixed !important;
  }
  body.printing-weekly-report .weekly-output-table thead {
    display: table-header-group;
  }
  body.printing-weekly-report .weekly-output-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

/* Weekly status final editor, preview and administration v3. */
.weekly-report-table .weekly-col-number{width:3%}
.weekly-report-table .weekly-col-project{width:14%}
.weekly-report-table .weekly-editor-columns .weekly-col-todo{width:19.2%}
.weekly-report-table .weekly-editor-columns .weekly-col-detail{width:28.8%}
.weekly-report-table .weekly-col-priority{width:6%}
.weekly-report-table .weekly-col-period{width:9%}
.weekly-report-table .weekly-col-progress{width:7%}
.weekly-report-table .weekly-col-status{width:8%}
.weekly-report-table .weekly-col-management{width:5%}
.weekly-report-table .weekly-output-columns .weekly-col-todo,.weekly-output-table .weekly-col-todo{width:21.2%}
.weekly-report-table .weekly-output-columns .weekly-col-detail,.weekly-output-table .weekly-col-detail{width:31.8%}
.weekly-report-table th:nth-child(5),.weekly-report-table td:nth-child(5){padding-right:8px;padding-left:8px}
.weekly-period-heading span{display:block;white-space:nowrap}
.weekly-period-heading span+span{margin-top:2px;font-size:11px}
.weekly-period-cell{white-space:nowrap!important;text-align:center}
.weekly-period-line{white-space:nowrap;line-height:1.35}
.weekly-period-line+.weekly-period-line{margin-top:3px}
.weekly-report-table textarea[data-report-field="task"],.weekly-report-table textarea[data-report-field="remarks"]{overflow:hidden;word-break:break-word}
.weekly-save-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px}
.weekly-save-actions>div{display:flex;align-items:center;gap:10px}
.weekly-save-status{margin-right:auto;color:#405773;font-size:13px;font-weight:750}
.weekly-primary-action{display:inline-flex;align-items:center;justify-content:center;width:112px;min-width:112px;height:42px;min-height:42px;padding:0 18px;border:1px solid var(--primary);border-radius:8px;background:var(--primary);color:#fff;font-family:inherit;font-size:14px;font-weight:800;line-height:1;white-space:nowrap;transition:.2s}
.weekly-primary-action:hover,.weekly-primary-action:focus-visible{border-color:var(--primary-dark);background:var(--primary-dark);color:#fff}
.weekly-admin-page{width:100%}.weekly-admin-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0}.weekly-admin-summary article{padding:18px;border:1px solid var(--border);border-radius:12px;background:#fff}.weekly-admin-summary span{display:block;color:#60758d;font-size:13px}.weekly-admin-summary strong{display:block;margin-top:5px;color:var(--navy);font-size:28px}.weekly-admin-filter{display:grid;grid-template-columns:minmax(180px,1fr) 190px 170px auto auto;align-items:end;gap:10px;margin:16px 0}.weekly-admin-filter label{display:grid;gap:5px;color:var(--navy);font-weight:750}.weekly-admin-filter input,.weekly-admin-filter select,.weekly-admin-filter button,.weekly-admin-filter a{height:40px;box-sizing:border-box}.weekly-admin-table th,.weekly-admin-table td{text-align:center}.status-saved{background:#e9f8ef;color:#16834b}.status-unsaved{background:#eef2f5;color:#52677d}.weekly-admin-detail .weekly-print-sheet{width:min(1400px,100%);margin:0 auto}.weekly-admin-detail .weekly-report-actions{margin-top:14px}
@media(max-width:800px){.weekly-save-actions{align-items:stretch;flex-direction:column}.weekly-save-actions>div{justify-content:flex-end}.weekly-admin-summary{grid-template-columns:1fr}.weekly-admin-filter{grid-template-columns:1fr}.weekly-report-table-wrap{overflow-x:auto}.weekly-report-table{min-width:980px}}
@media print{body.printing-weekly-report .weekly-admin-detail>:not(.weekly-print-sheet){display:none!important}body.printing-weekly-report .weekly-admin-detail>.weekly-print-sheet{display:block!important}}

/* Final 8-column weekly preview proportions v4. */
.weekly-print-sheet .weekly-output-table .weekly-col-number{width:3%}
.weekly-print-sheet .weekly-output-table .weekly-col-project{width:14%}
.weekly-print-sheet .weekly-output-table .weekly-col-todo{width:21.2%}
.weekly-print-sheet .weekly-output-table .weekly-col-detail{width:31.8%}
.weekly-print-sheet .weekly-output-table .weekly-col-priority{width:6%}
.weekly-print-sheet .weekly-output-table .weekly-col-period{width:9%}
.weekly-print-sheet .weekly-output-table .weekly-col-progress{width:7%}
.weekly-print-sheet .weekly-output-table .weekly-col-status{width:8%}
@media print{
 body.printing-weekly-report .weekly-output-table .weekly-col-number{width:3%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-project{width:14%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-todo{width:21.2%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-detail{width:31.8%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-priority{width:6%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-period{width:9%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-progress{width:7%!important}
 body.printing-weekly-report .weekly-output-table .weekly-col-status{width:8%!important}
}

/* Weekly status administrator review v6. */
.weekly-admin-permission{display:block;margin-top:8px;color:#b64032;font-size:12px;font-weight:800}
.weekly-admin-filter-final{grid-template-columns:220px minmax(220px,320px) 100px;justify-content:start;align-items:end}
.weekly-admin-filter-final button{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:800}
.weekly-admin-summary-line{margin:14px 0;padding:14px 18px;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--navy);font-size:15px;font-weight:750}
.weekly-summary-saved,.weekly-summary-saved strong{color:#1769aa}.weekly-summary-unsaved,.weekly-summary-unsaved strong{color:#c93425}
.weekly-admin-preview-button{display:inline-flex;align-items:center;justify-content:center;width:94px;min-width:94px;height:36px;min-height:36px;padding:0 12px;box-sizing:border-box;border:1px solid var(--primary);border-radius:7px;background:var(--primary);color:#fff;font-family:inherit;font-size:13px;font-weight:800;line-height:1;white-space:nowrap;text-decoration:none}
.weekly-admin-preview-button:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.weekly-admin-preview-button:disabled{border-color:#cbd4dc;background:#e9eef2;color:#8796a5;cursor:not-allowed}
.weekly-admin-preview-meta{display:flex;flex-wrap:wrap;gap:10px 24px;margin:14px 0 0}.weekly-admin-preview-meta div{display:flex;align-items:center;gap:7px}.weekly-admin-preview-meta dt{color:#60758d;font-size:13px;font-weight:750}.weekly-admin-preview-meta dd{margin:0;color:var(--navy);font-size:14px;font-weight:800}
.weekly-admin-preview-actions{margin-top:14px;padding:14px 0}.weekly-admin-preview-actions .weekly-preview-action-button{text-decoration:none}
@media(max-width:700px){.weekly-admin-filter-final{grid-template-columns:1fr}.weekly-admin-preview-meta{display:grid}}

/* Weekly preview content-height document and page-level scrolling v7. */
.weekly-formal-preview-dialog {
  height: calc(100vh - 24px);
  max-height: none;
  overflow-x: hidden;
  overflow-y: auto;
}
.weekly-formal-preview-dialog > article {
  display: block;
  width: 100%;
  height: auto;
  min-height: 100%;
  max-height: none;
  overflow: visible;
}
.weekly-preview-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  padding: 20px 20px 16px;
  overflow: visible;
}
.weekly-print-sheet {
  display: block;
  width: min(1400px, 100%);
  max-width: 100%;
  height: auto;
  min-height: 0;
  max-height: none;
  margin: 0 auto;
  overflow: visible;
  aspect-ratio: auto;
}
.weekly-print-sheet .weekly-report-section,
.weekly-print-sheet .weekly-output-table,
.weekly-print-sheet .weekly-output-table thead,
.weekly-print-sheet .weekly-output-table tbody,
.weekly-print-sheet .weekly-output-table tr,
.weekly-print-sheet .weekly-output-table th,
.weekly-print-sheet .weekly-output-table td,
.weekly-print-sheet .weekly-output-table textarea,
.weekly-print-sheet .weekly-output-table input,
.weekly-print-sheet .weekly-output-table select {
  box-sizing: border-box;
  max-width: 100%;
}
.weekly-print-sheet .weekly-report-section {
  height: auto;
  overflow: visible;
}
.weekly-print-sheet .weekly-output-table {
  width: 100%;
  table-layout: fixed;
}
.weekly-print-sheet .weekly-output-table tr,
.weekly-print-sheet .weekly-output-table th,
.weekly-print-sheet .weekly-output-table td {
  height: auto;
  overflow: visible;
}
.weekly-print-sheet .weekly-output-table td:nth-child(3),
.weekly-print-sheet .weekly-output-table td:nth-child(4) {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.weekly-formal-preview-dialog .weekly-preview-actions {
  position: static;
  width: 100%;
  margin: 0;
  padding: 14px 20px 18px;
  border-top: 1px solid #c4d0db;
  background: #fff;
}
.weekly-admin-detail .weekly-print-sheet {
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: visible;
  aspect-ratio: auto;
}
@media(max-width:600px) {
  .weekly-formal-preview-dialog {
    height: calc(100vh - 10px);
  }
  .weekly-preview-scroll {
    padding: 8px 8px 12px;
  }
  .weekly-formal-preview-dialog .weekly-preview-actions {
    padding: 12px 8px 14px;
  }
}
@media print {
  body.printing-weekly-report .weekly-formal-preview-dialog,
  body.printing-weekly-report .weekly-formal-preview-dialog > article,
  body.printing-weekly-report .weekly-preview-scroll,
  body.printing-weekly-report .weekly-print-sheet,
  body.printing-weekly-report .weekly-report-section,
  body.printing-weekly-report .weekly-output-table,
  body.printing-weekly-report .weekly-output-table thead,
  body.printing-weekly-report .weekly-output-table tbody,
  body.printing-weekly-report .weekly-output-table tr,
  body.printing-weekly-report .weekly-output-table th,
  body.printing-weekly-report .weekly-output-table td {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    aspect-ratio: auto !important;
  }
  body.printing-weekly-report .weekly-output-table thead {
    display: table-header-group !important;
  }
  body.printing-weekly-report .weekly-output-table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

/* Final cascade: six-item To Do hero summary v8. */
.authenticated .hero-panel { height:auto; min-height:278px; }
.authenticated .hero-work-card { height:auto; }
.authenticated .hero-work-card h3 a { color:inherit; text-decoration:none; }
.authenticated .hero-work-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 7px;
  padding-bottom:7px;
  border-bottom:1px solid rgba(148,174,200,.28);
}
.authenticated .hero-work-heading h3 {
  min-width:0;
  margin:0;
  padding:0;
  border:0;
}
.authenticated .hero-calendar-button {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 9px;
  box-sizing:border-box;
  border:1px solid var(--primary);
  border-radius:5px;
  background:var(--primary);
  color:#fff;
  font:inherit;
  font-size:11px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  text-decoration:none;
}
.authenticated .hero-calendar-button:hover,
.authenticated .hero-calendar-button:focus-visible {
  border-color:var(--primary-dark);
  background:var(--primary-dark);
  color:#fff;
}
.authenticated .hero-work-stat {
  min-height:62px;
  color:inherit;
  text-decoration:none;
  transition:border-color .2s ease,background-color .2s ease,transform .2s ease;
}
.authenticated .hero-work-stat:hover,
.authenticated .hero-work-stat:focus-visible {
  border-color:rgba(190,215,235,.6);
  background:rgba(12,59,96,.9);
  transform:translateY(-1px);
  outline:none;
}
.authenticated .hero-work-stat.work-overdue { color:#ff9b54; }
.authenticated .hero-work-stat.work-planned { color:#b7a7ef; }
@media (max-width:900px) and (min-width:761px) {
  .authenticated .hero-panel { height:auto; min-height:278px; }
}
@media (max-width:760px) {
  .authenticated .hero-panel { height:auto; min-height:0; }
}

/* Home favorites and dashboard (Home-only) */
.home-dashboard{--home-border:#dbe4ec;--home-blue:#0d3b66;position:relative;z-index:1;padding-top:14px;overflow-x:clip;color:#183b5b}.home-favorites,.home-dashboard-card{border:1px solid var(--home-border);border-radius:10px;background:#fff;box-shadow:0 4px 14px rgba(3,31,59,.06)}

.home-primary-grid{display:grid;gap:12px;margin-bottom:12px}.home-dashboard-card{min-width:0;padding:14px 16px}.home-dashboard-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.home-dashboard-card h2{margin:0;color:var(--home-blue);font-size:15px}.home-dashboard-card header a{color:#60758d;font-size:11px;font-weight:750;text-decoration:none}
.home-todo-head,.home-todo-row{display:grid;grid-template-columns:minmax(0,1fr) 82px 112px 116px;align-items:center;gap:8px}.home-todo-head{padding:7px 8px;border-bottom:1px solid #dbe4ec;color:#71869d;font-size:10px}.home-todo-row{min-height:39px;padding:3px 8px;border-bottom:1px solid #edf1f4;color:#294863;font-size:11px;text-decoration:none}.home-todo-row>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-todo-row time{font-weight:700}.home-priority{display:inline-block;padding:3px 7px;border-radius:5px;background:#e7f1fb;color:#2274b8;font-size:10px;font-style:normal}.home-priority.priority-긴급{background:#ffe4df;color:#ef4b38}.home-priority.priority-높음{background:#fff0d8;color:#e78312}.home-priority.priority-낮음{background:#e5f5e3;color:#45954b}.home-progress{display:grid;grid-template-columns:32px 1fr;align-items:center;gap:6px}.home-progress b{font-size:10px}.home-progress i,.home-project-list i{height:4px;overflow:hidden;border-radius:9px;background:#e5ebf0}.home-progress u,.home-project-list u{display:block;height:100%;border-radius:9px;background:#1687e8;text-decoration:none}
.home-calendar-panel{position:relative}.home-schedule-button{padding:5px 9px;border-radius:4px;background:var(--home-blue);color:#fff!important}.home-calendar-body{display:grid;grid-template-columns:minmax(210px,.9fr) minmax(180px,1.1fr);gap:16px;min-height:170px}.home-mini-calendar{padding-right:14px;border-right:1px solid #e4eaf0;text-align:center}.home-mini-calendar>strong{display:block;margin:3px 0 8px;font-size:12px}.home-calendar-weekdays,.home-calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.home-calendar-weekdays{color:#7b8fa2;font-size:9px}.home-calendar-days button{position:relative;min-width:0;height:21px;padding:0;border:0;border-radius:50%;background:transparent;color:#405773;font-size:9px}.home-calendar-days button.outside{color:#bac5cf}.home-calendar-days button.today{background:transparent;color:#405773;box-shadow:inset 0 0 0 1.5px #ef4444}.home-calendar-days button.selected{background:#1478cf;color:#fff;box-shadow:none}.home-calendar-days button.has-event::after{content:"";position:absolute;right:2px;bottom:1px;width:3px;height:3px;border-radius:50%;background:#f97316}.home-day-schedule h3{margin:0 0 8px;padding-bottom:7px;border-bottom:1px solid #e2e8ee;color:#71869d;font-size:11px}.home-event{display:flex;align-items:flex-start;gap:8px;padding:7px 2px;color:#294863;font-size:10px;font-weight:700;text-decoration:none}.home-event i{width:5px;height:5px;margin-top:4px;border-radius:50%;background:#1687e8}.home-event-business_trip i{background:#f97316}.home-calendar-all{display:block;margin-top:4px;color:#60758d;font-size:10px;font-weight:750;text-align:right;text-decoration:none}
.home-bottom-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-bottom-grid .home-dashboard-card{min-height:145px}.home-bottom-grid ul{margin:0;padding:0;list-style:none}.home-compact-list li{display:flex;align-items:center;justify-content:space-between;min-height:27px;padding:4px 0;border-bottom:1px solid #edf1f4}.home-bottom-grid .home-notice-title{overflow:hidden;color:#294863;font-size:10px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-compact-list a{display:flex;justify-content:space-between;width:100%;gap:10px;color:#294863;font-size:10px;text-decoration:none}.home-compact-list a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-compact-list time{flex:none;color:#8293a5;font-size:9px}.home-project-list li{padding:3px 0}.home-project-list a{display:grid;grid-template-columns:minmax(0,1fr) 48px 30px 65px;align-items:center;gap:6px;color:#294863;font-size:9px;text-decoration:none}.home-project-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-project-list span{padding:2px 4px;border-radius:4px;background:#e1f2ff;color:#1687e8;text-align:center}.home-empty{margin:12px 0;color:#8293a5;font-size:11px}
@media(max-width:1000px){.home-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-bottom-grid>*:last-child{grid-column:1/-1}}
@media(max-width:760px){.home-dashboard{padding-top:10px}.home-calendar-body{grid-template-columns:1fr}.home-mini-calendar{padding:0 0 12px;border-right:0;border-bottom:1px solid #e4eaf0}.home-bottom-grid{grid-template-columns:1fr}.home-bottom-grid>*:last-child{grid-column:auto}.home-todo-head{display:none}.home-todo-row{grid-template-columns:minmax(0,1fr) 65px 90px}.home-todo-row .home-progress{grid-column:1/-1}.home-dashboard-card{padding:13px}}
.home-content:has(.home-dashboard){background:#f5f7fa}.home-content:has(.home-dashboard)::before{display:none}
/* Home 1 vertical favorites editor */
.home-dashboard .home-primary-grid{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,2.1fr) minmax(0,1.9fr);gap:12px;align-items:stretch}.home-dashboard .home-primary-grid>.home-favorites,.home-dashboard .home-primary-grid>.home-dashboard-card{min-width:0;width:auto;height:100%;margin:0}.home-dashboard .home-favorites{display:flex;min-width:0;min-height:260px;margin:0;padding:14px 16px;flex-direction:column;align-items:stretch}.home-dashboard .home-favorites-label{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.home-dashboard .home-favorites-label h2{color:var(--home-blue);font-size:16px}.home-dashboard .home-favorites-label small{display:block;margin-top:3px;font-size:11px}.home-dashboard .home-favorites-edit{width:28px;height:28px;margin:0;padding:0;border:0;border-radius:50%;background:#eef4fa;color:#0d3b66;font-size:15px}.home-dashboard .home-favorites-edit:hover{background:#dfeaf4}.home-dashboard .home-favorites nav{display:grid;grid-template-columns:1fr;grid-template-rows:repeat(3,56px);align-content:start;gap:10px;min-height:188px;height:auto}.home-dashboard .home-favorites nav a{display:grid;grid-template-columns:34px minmax(0,1fr) 16px;align-items:center;gap:9px;min-width:0;padding:0 12px;border:1px solid #d7e5f3;border-radius:8px;background:#f4f8ff;color:#0d4d88;text-decoration:none}.home-dashboard .home-favorites nav a i{font-size:21px;font-style:normal;text-align:center}.home-dashboard .home-favorites nav a span{overflow:hidden;font-size:13px;font-weight:800;white-space:nowrap;text-overflow:ellipsis}.home-dashboard .home-favorites nav a b{font-size:23px;font-weight:500;text-align:right}.home-dashboard .home-favorites nav a:hover{transform:translateY(-1px);border-color:#8fbee8;color:#0d4d88}.home-dashboard .home-favorites nav .favorite-leave{border-color:#f6d5bd;background:#fff7f1;color:#e86819}.home-dashboard .home-favorites nav .favorite-expense{border-color:#dfd2fb;background:#f8f4ff;color:#7b3ee4}.home-dashboard .home-favorites nav .favorite-calendar{border-color:#c7e9df;background:#f1fbf8;color:#15816e}.home-dashboard .home-favorites nav .favorite-daily{border-color:#c9def5;background:#f1f7fd;color:#1769ad}.home-dashboard .home-favorites nav .favorite-purchase{border-color:#f5dfb7;background:#fffaf0;color:#b9780d}.home-dashboard .home-favorites nav .favorite-mine{border-color:#d3e7cd;background:#f5fbf3;color:#458c34}.home-dashboard .home-favorites nav .favorite-recent{border-color:#d8dfe8;background:#f7f9fb;color:#526579}.home-favorites-dialog{width:min(460px,calc(100% - 24px));padding:0;border:0;border-radius:14px;background:#fff;box-shadow:0 24px 65px rgba(3,31,59,.28)}.home-favorites-dialog::backdrop{background:rgba(3,31,59,.62)}.home-favorites-dialog form{gap:0}.home-favorites-dialog header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px 15px;border-bottom:1px solid #dce5ed}.home-favorites-dialog header small{color:#1687a7;font-size:10px;font-weight:900;letter-spacing:.12em}.home-favorites-dialog header h2{margin:3px 0;color:#0d3b66;font-size:20px}.home-favorites-dialog header p{margin:0;color:#71869d;font-size:11px}.home-favorites-dialog header button{width:32px;height:32px;padding:0;border-radius:50%;background:#eef3f7;color:#405773;font-size:21px}.home-favorites-options{display:grid;gap:7px;padding:16px 22px}.home-favorites-options label{display:grid;grid-template-columns:20px 30px minmax(0,1fr) 24px;align-items:center;gap:8px;min-height:42px;padding:4px 10px;border:1px solid #dce5ed;border-radius:7px;color:#294863;cursor:pointer}.home-favorites-options label:has(input:checked){border-color:#4b9bd5;background:#edf7fd}.home-favorites-options i{font-size:17px;font-style:normal;text-align:center}.home-favorites-options span{font-size:13px;font-weight:750}.home-favorites-options b{color:#0d6f8c;text-align:center}.home-favorites-message{min-height:18px;margin:0;padding:0 22px;color:#b45309;font-size:11px;font-weight:700}.home-favorites-dialog footer{display:flex;align-items:center;gap:8px;padding:14px 22px 18px;border-top:1px solid #e1e8ee}.home-favorites-dialog footer span{flex:1}.home-favorites-dialog footer button{padding:8px 11px;font-size:12px}
@media(max-width:1200px){.home-dashboard .home-primary-grid{grid-template-columns:240px minmax(0,1fr)}.home-dashboard .home-calendar-panel{grid-column:1/-1}.home-dashboard .home-favorites{min-height:250px}}
@media(max-width:760px){.home-dashboard .home-primary-grid{grid-template-columns:1fr}.home-dashboard .home-calendar-panel{grid-column:auto}.home-dashboard .home-favorites{min-height:260px}.home-favorites-dialog footer{flex-wrap:wrap}.home-favorites-dialog footer span{display:none}.home-favorites-dialog footer button{flex:1 1 120px}}


/* Home final concept — compact header, hero, navigation and dashboard */
.authenticated .site-header{position:relative;z-index:40;display:grid;grid-template-columns:auto auto minmax(280px,520px) 1fr;align-items:center;gap:26px;min-height:64px;height:64px;padding:0 clamp(24px,2.8vw,54px);box-sizing:border-box;border-bottom:1px solid #dce5ef;background:#fff}
.authenticated .brand-block{gap:14px}.authenticated .brand-logo{width:72px;height:42px}.authenticated .brand-divider{height:28px}.authenticated .site-header h1{font-size:16px;letter-spacing:.06em}
.header-greeting{margin:0;color:#52677f;font-size:13px;white-space:nowrap}.header-greeting strong{color:#0b3270}
.header-search{display:flex;align-items:center;width:100%;height:42px;padding:0 14px;box-sizing:border-box;border:1px solid #d7e0eb;border-radius:9px;background:#fff}.header-search svg{width:20px;height:20px;fill:none;stroke:#7186a1;stroke-width:1.7}.header-search input{width:100%;height:100%;padding:0 0 0 10px;border:0;outline:0;background:transparent;color:#183b5b;font:inherit;font-size:13px}.header-search input::placeholder{color:#75879e}
.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px}.header-icon-button,.profile-trigger{display:grid;place-items:center;margin:0;padding:0;border:0;background:transparent;color:#072c70;cursor:pointer}.header-icon-button{width:36px;height:36px;border-radius:50%}.header-icon-button:hover{background:#eef4fa}.header-icon-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7}
.profile-menu{position:relative}.profile-trigger{display:flex;align-items:center;gap:6px;height:44px}.profile-trigger>span,.profile-dropdown>header>span{display:grid;place-items:center;border-radius:50%;background:#edf2fc;color:#0b3270;font-weight:900}.profile-trigger>span{width:38px;height:38px}.profile-trigger>b{font-size:15px}
.profile-dropdown[hidden]{display:none}.profile-dropdown{position:absolute;z-index:100;top:50px;right:0;width:238px;overflow:hidden;border:1px solid #dce4ed;border-radius:10px;background:#fff;box-shadow:0 16px 38px rgba(3,31,59,.2)}.profile-dropdown>header{display:flex;align-items:center;gap:12px;padding:16px;border-bottom:1px solid #e2e8f0}.profile-dropdown>header>span{width:48px;height:48px;flex:none}.profile-dropdown header strong,.profile-dropdown header small{display:block}.profile-dropdown header strong{color:#102f5f;font-size:14px}.profile-dropdown header small{margin-top:3px;color:#75879a;font-size:11px}.profile-dropdown section{display:grid;padding:10px 12px;border-bottom:1px solid #e7ecf2}.profile-dropdown section>small{padding:0 6px 4px;color:#72849a;font-size:10px;font-weight:800}.profile-dropdown a,.profile-dropdown button{display:flex;align-items:center;min-height:34px;padding:0 8px;border:0;border-radius:6px;background:transparent;color:#163a6b;font:inherit;font-size:12px;font-weight:750;text-decoration:none;cursor:pointer}.profile-dropdown a:hover,.profile-dropdown button:hover{background:#eef5ff}.profile-dropdown .profile-logout{margin:8px 12px;color:#d43d36}.profile-dropdown .profile-logout:hover{background:#fff1f0}
.authenticated .hero-panel{grid-template-columns:minmax(0,1fr) 470px;gap:34px;height:156px;min-height:156px;padding:8px clamp(50px,3vw,58px);box-sizing:border-box;border-radius:0;background-size:cover;background-position:center;box-shadow:none}.authenticated .hero-panel::before{background:linear-gradient(90deg,rgba(2,32,63,.9),rgba(5,47,88,.71) 57%,rgba(3,29,60,.78))}
.authenticated .hero-copy{align-self:center}.authenticated .hero-panel .eyebrow{margin:0 0 6px;color:#ff705f;font-size:10.5px;font-weight:800;letter-spacing:.22em}.authenticated .hero-panel h2{width:max-content;max-width:100%;margin:0;font-size:27px;font-weight:650;line-height:1.2;letter-spacing:-.025em}.authenticated .hero-panel h2 span{display:block;white-space:nowrap}
.authenticated .hero-work-card{width:470px;max-width:470px;height:125px;padding:8px;box-sizing:border-box;justify-self:end;align-self:center;border:1px solid rgba(93,160,235,.75);border-radius:12px;background:linear-gradient(135deg,rgba(3,36,76,.9),rgba(7,63,126,.78));box-shadow:inset 0 0 25px rgba(30,103,190,.12);backdrop-filter:blur(7px)}
.authenticated .hero-work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,49px);align-content:center;justify-content:center;gap:7px}
.authenticated .hero-work-stat{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:10px;min-width:0;min-height:49px;padding:5px 11px;box-sizing:border-box;white-space:nowrap;border:1px solid rgba(117,160,207,.36);border-radius:7px;background:rgba(3,34,69,.66);color:#d8e8f8}.authenticated .hero-work-stat:hover,.authenticated .hero-work-stat:focus-visible{border-color:rgba(130,181,233,.72);background:rgba(7,51,98,.9)}.authenticated .hero-work-stat .summary-icon{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:1.6}.authenticated .hero-work-stat .summary-label{flex:0 0 auto;color:#f2f6fa;font-size:13px;font-weight:600;line-height:1;white-space:nowrap}.authenticated .hero-work-stat .summary-value{display:block;flex:0 0 auto;margin:0;font-size:20px;font-weight:700;line-height:1;white-space:nowrap}.authenticated .work-calendar{color:#78c8ff}.authenticated .work-calendar .summary-value{font-size:16px}.authenticated .work-total{color:#dcecff}.authenticated .work-planned{color:#c8a9ff}.authenticated .work-progress{color:#27d3e2}.authenticated .work-urgent{color:#ff775d}.authenticated .work-overdue{color:#ffad68}
.authenticated .nav{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;height:48px;margin:0;padding:5px clamp(28px,2.3vw,44px);box-sizing:border-box;border:0;border-radius:0;background:#052b52;box-shadow:none}.authenticated .nav a{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:38px;padding:0 8px;box-sizing:border-box;border:1px solid #315474;border-radius:6px;background:#06284a;color:#d7e2ec;font-size:12px;line-height:1;white-space:nowrap}.authenticated .nav a.active{border-color:#f97316;background:#f97316;color:#fff}
.home-content{padding:0 clamp(22px,2.2vw,42px) 24px}.home-dashboard{padding-top:10px}.home-dashboard .home-primary-grid{grid-template-columns:minmax(220px,.72fr) minmax(470px,2fr) minmax(420px,1.75fr);gap:12px;margin-bottom:12px;align-items:stretch}.home-dashboard .home-primary-grid>.home-favorites,.home-dashboard .home-primary-grid>.home-dashboard-card{height:260px;min-height:260px;box-sizing:border-box}.home-dashboard-card{padding:13px 16px}.home-dashboard-card>header{height:28px;margin-bottom:5px}.home-dashboard-card h2,.home-dashboard .home-favorites-label h2{font-size:15px}
.home-dashboard .home-favorites{min-height:260px;padding:13px 15px}.home-dashboard .home-favorites-label{height:34px;margin-bottom:8px}.home-dashboard .home-favorites-label small{display:none}.home-dashboard .home-favorites nav{grid-template-rows:repeat(3,55px);gap:8px;min-height:181px}.home-dashboard .home-favorites nav a{grid-template-columns:32px minmax(0,1fr) 14px;padding:0 10px}.home-dashboard .home-favorites nav a i{font-size:19px}.home-dashboard .home-favorites nav a span{font-size:12px}
.home-todo-head,.home-todo-row{grid-template-columns:minmax(160px,1fr) 74px 100px 112px;gap:7px}.home-todo-head{height:28px;box-sizing:border-box;white-space:nowrap}.home-todo-row{min-height:39px}
.home-calendar-body{grid-template-columns:minmax(190px,.95fr) minmax(155px,1.05fr);gap:12px;min-height:174px}.home-mini-calendar{padding-right:11px}.home-calendar-days button{width:22px;height:22px;justify-self:center}.home-calendar-days button.today{background:transparent;color:#405773;box-shadow:inset 0 0 0 1.5px #ef4444}.home-calendar-days button.selected{background:#1478cf;color:#fff;box-shadow:none}.home-calendar-days button.today.selected{background:#1478cf;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #ef4444}
.home-bottom-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-bottom-grid .home-dashboard-card{height:170px;min-height:170px;box-sizing:border-box}.home-compact-list li{min-height:25px}.home-bottom-grid .home-notice-title,.home-compact-list a{font-size:10.5px}
@media(max-width:1250px){.authenticated .site-header{grid-template-columns:auto auto minmax(220px,1fr) auto;gap:14px}.authenticated .hero-panel{grid-template-columns:minmax(0,1fr) minmax(500px,.95fr)}.home-dashboard .home-primary-grid{grid-template-columns:230px minmax(0,1fr)}.home-dashboard .home-calendar-panel{grid-column:1/-1}.home-dashboard .home-primary-grid>.home-calendar-panel{height:auto;min-height:250px}.header-greeting{display:none}}
@media(max-width:800px){.authenticated .site-header{grid-template-columns:auto 1fr auto;padding:0 14px}.authenticated .brand-divider,.authenticated .site-header h1,.header-search{display:none}.authenticated .hero-panel{grid-template-columns:1fr;height:auto;min-height:0;padding:22px 18px}.authenticated .hero-work-card{height:auto}.authenticated .hero-work-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,64px)}.authenticated .nav{display:flex;height:auto;overflow-x:auto;padding:6px 12px}.authenticated .nav a{flex:0 0 112px}.home-content{padding:0 12px 20px}.home-dashboard .home-primary-grid{grid-template-columns:1fr}.home-dashboard .home-primary-grid>.home-favorites,.home-dashboard .home-primary-grid>.home-dashboard-card{height:auto;min-height:250px}.home-dashboard .home-calendar-panel{grid-column:auto}.home-bottom-grid{grid-template-columns:1fr}.home-bottom-grid .home-dashboard-card{height:auto;min-height:160px}}
@media(max-width:768px){.authenticated .hero-panel{width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden}.authenticated .hero-work-card{width:calc(100% - 24px);max-width:calc(100% - 24px);min-width:0;height:auto;margin:0 12px;padding:8px;box-sizing:border-box;justify-self:center}.authenticated .hero-work-grid{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,60px);gap:7px}.authenticated .hero-work-stat{display:flex;min-width:0;min-height:0;height:60px;align-items:center;justify-content:center;flex-wrap:nowrap;gap:6px;padding:4px 6px;white-space:nowrap}.authenticated .hero-work-stat .summary-icon{flex:0 0 22px}.authenticated .hero-work-stat .summary-label,.authenticated .hero-work-stat .summary-value{flex:0 0 auto;white-space:nowrap}}


/* Header-only adjustment: search removed and profile interaction hardened */
.authenticated .site-header{position:relative;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:24px;height:64px;min-height:64px;padding:0 clamp(24px,2.8vw,54px);overflow:visible}
.header-identity{display:flex;align-items:center;gap:30px;min-width:0}.authenticated .brand-block{gap:22px;flex:none}.brand-logo-crop{display:block;width:72px;height:48px;overflow:hidden;flex:0 0 72px}.authenticated .brand-logo{display:block;width:93px;height:auto;max-width:none;object-fit:contain;transform:translate(-12.6px,-9.2px)}.authenticated .brand-divider{height:30px}.authenticated .site-header h1{font-family:"Montserrat","Pretendard","Noto Sans KR","Arial",sans-serif;font-size:16px;font-weight:600;letter-spacing:.09em;line-height:1}
.header-greeting{flex:none}.header-tools{margin-left:auto;flex:none}.profile-trigger{display:flex;align-items:center;justify-content:center;gap:8px;min-width:96px;height:40px;padding:0 12px;border-radius:8px;outline:none}.profile-trigger:hover{background:#f2f6fb}.profile-trigger:focus-visible{box-shadow:0 0 0 3px rgba(20,120,207,.25)}.profile-trigger>span{display:block;width:auto;height:auto;border-radius:0;background:none;color:inherit;font-size:20px;line-height:1}.profile-trigger>strong{font-size:13px}.profile-trigger>b{display:block;margin:0;font-size:15px;line-height:1}
.profile-dropdown{display:none;z-index:9999;top:calc(100% + 10px);right:0;width:250px;max-width:calc(100vw - 24px);visibility:hidden;opacity:0;background:#fff;color:#102f5f}.profile-dropdown.is-open{display:block;visibility:visible;opacity:1}
@media(max-width:800px){.authenticated .site-header{display:flex;height:64px;min-height:64px}.header-identity{gap:12px}.header-greeting{display:none}}

/* Home and notices: let content fill the viewport without clipping long pages. */
.authenticated .page-shell {
  display: flex;
  min-height: 100vh;
  flex-direction: column;
}
.authenticated .content-area {
  flex: 1 0 auto;
}
.authenticated .home-content,
.authenticated .portal-content:has(.notice-card) {
  display: flex;
  min-height: 0;
  flex-direction: column;
}
.authenticated .home-dashboard {
  display: grid;
  min-height: 100%;
  flex: 1 0 auto;
  grid-template-rows: auto minmax(170px, 1fr);
}
.authenticated .home-bottom-grid {
  min-height: 170px;
}
.authenticated .home-bottom-grid .home-dashboard-card {
  height: auto;
  min-height: 170px;
}
.authenticated .portal-content:has(.notice-card) .notice-card {
  min-height: 100%;
  flex: 1 0 auto;
}
@media(max-width:800px) {
  .authenticated .home-dashboard {
    display: block;
  }
}

/* Notice concept: rich editor, scheduled login popup and owner controls. */
.notice-priority-badge,.home-notice-priority{display:inline-flex;align-items:center;justify-content:center;margin-right:8px;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:900;line-height:1.2;white-space:nowrap}.notice-priority-badge.normal,.home-notice-priority.normal{background:#e7edf2;color:#526b84}.notice-priority-badge.urgent,.home-notice-priority.urgent{background:#ef4438;color:#fff}
.notice-editor-shell{min-width:0;border:1px solid #cbd8e3;border-radius:7px;background:#fff;overflow:hidden}
.notice-editor-toolbar{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:3px;padding:6px;border-bottom:1px solid #cbd8e3;background:#f7f9fb}
.notice-editor-toolbar button,.notice-editor-toolbar select,.notice-editor-toolbar label{display:inline-flex;width:auto;min-width:32px;height:30px;min-height:30px;align-items:center;justify-content:center;margin:0;padding:0 7px;border:1px solid transparent;border-radius:4px;background:transparent;color:#193d62;font:inherit;font-size:11px;cursor:pointer}
.notice-editor-toolbar button:hover,.notice-editor-toolbar label:hover{border-color:#b7c7d6;background:#fff}.notice-editor-toolbar select{border-color:#d3dde6;background:#fff}.notice-editor-toolbar input[type=color]{position:absolute;width:1px;height:1px;opacity:0}
.notice-rich-editor{min-height:300px;max-height:48vh;padding:14px 16px;overflow:auto;color:#1f2937;font-size:14px;font-weight:400;line-height:1.65;outline:0}.notice-rich-editor:focus{box-shadow:inset 0 0 0 2px rgba(20,120,207,.18)}
.notice-rich-editor p{margin:0 0 8px}.notice-rich-editor table,.home-notice-body table{width:100%;margin:10px 0;border-collapse:collapse;table-layout:auto}.notice-rich-editor td,.notice-rich-editor th,.home-notice-body td,.home-notice-body th{min-width:70px;padding:7px 9px;border:1px solid #b9c8d6}.notice-rich-editor img,.home-notice-body img{display:block;max-width:100%;height:auto;margin:10px auto;cursor:zoom-in}
.notice-checklist{padding-left:28px;list-style:none}.notice-checklist li{position:relative}.notice-checklist li::before{content:'☐';position:absolute;left:-23px;color:#176bc0}.notice-checklist li[data-checked=true]{color:#718397;text-decoration:line-through}.notice-checklist li[data-checked=true]::before{content:'☑'}
.notice-editor-shell.is-fullscreen{position:fixed;z-index:10020;inset:10px;display:flex;flex-direction:column;border-radius:10px;box-shadow:0 20px 60px rgba(3,31,59,.35)}.notice-editor-shell.is-fullscreen .notice-rich-editor{max-height:none;min-height:0;flex:1}
.home-notice-dialog{width:min(620px,calc(100% - 28px));border-radius:14px}.home-notice-dialog header{padding:20px 22px 14px}.home-notice-header-tools{display:flex;align-items:center;gap:16px}.home-notice-header-tools>strong{color:var(--navy);font-size:13px}
.home-notice-detail{display:block;padding:18px 22px 22px}.home-notice-detail h3{margin:8px 0 8px;font-size:21px}.home-notice-period{margin:0 0 8px;color:#405773;font-size:12px;font-weight:750}.home-notice-detail dl{margin:0 0 10px;padding:9px 12px}.home-notice-detail .home-notice-body{overflow:auto}
.home-notice-body{max-height:min(46vh,430px);padding:16px;white-space:normal}.home-notice-body p{margin:0 0 9px}.home-notice-body ul,.home-notice-body ol{padding-left:24px}.home-notice-body a{color:#0b66b2}.home-notice-body .notice-checklist{list-style:none}
.notice-attachment-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.notice-attachment-gallery[hidden]{display:none}.notice-attachment-gallery img{width:100%;height:110px;object-fit:cover;border:1px solid #d5e0e9;border-radius:7px;cursor:zoom-in}
.home-notice-dialog footer{padding:13px 22px}.home-notice-dialog footer>*{min-height:38px;padding:8px 12px;font-size:12px;font-weight:800}
.notice-image-viewer{width:min(1200px,calc(100vw - 30px));height:min(900px,calc(100vh - 30px));padding:44px 12px 12px;border:0;border-radius:12px;background:#101820}.notice-image-viewer::backdrop{background:rgba(3,15,28,.88)}.notice-image-viewer img{display:block;width:100%;height:100%;object-fit:contain}.notice-image-viewer button{position:absolute;top:8px;right:10px;width:34px;height:34px;padding:0;border-radius:50%;font-size:23px}
@media(max-width:700px){.home-notice-dialog{width:calc(100% - 14px);max-height:calc(100dvh - 14px)}.home-notice-dialog>article{max-height:calc(100dvh - 14px)}.home-notice-dialog header{padding:14px}.home-notice-detail{padding:14px}.home-notice-detail dl{display:none}.home-notice-body{max-height:none;min-height:140px}.home-notice-dialog footer{display:grid;grid-template-columns:1fr 1fr;padding:10px 14px}.home-notice-dialog footer>*{min-width:0!important}.home-notice-dialog footer [data-home-notice-next]{grid-column:1/-1}.notice-attachment-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Notice create/edit dialog: one shared label grid for both modes. */
.notice-dialog#noticeDialog{width:min(1080px,calc(100vw - 48px));max-width:1080px;max-height:calc(100dvh - 32px);margin:auto;overflow:hidden;border-radius:12px}
#noticeDialog .notice-form{display:grid;max-height:calc(100dvh - 32px);grid-template-rows:auto 48px 48px auto auto auto;padding:0;overflow:hidden}
#noticeDialog .notice-form>header{display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid #dce5ed;background:#fff}
#noticeDialog .notice-form>header .eyebrow{margin-bottom:2px;font-size:10px}#noticeDialog .notice-form>header h2{margin:0;font-size:24px;font-weight:850}
#noticeDialog .notice-form-row{display:grid;min-width:0;grid-template-columns:112px minmax(0,1fr);align-items:center;column-gap:16px;margin:0;padding:0 24px;border:0;border-bottom:1px solid #e2e8f0;background:#fff;color:var(--navy)}
#noticeDialog .notice-form-row>*{min-width:0;box-sizing:border-box}#noticeDialog .notice-form-label{grid-column:1;color:var(--navy);font-size:14px;font-weight:850;line-height:1.2;white-space:nowrap}#noticeDialog .notice-form-label b{color:var(--primary)}
#noticeDialog .notice-form-control{grid-column:2;min-width:0;box-sizing:border-box}
#noticeDialog .notice-primary-control{display:grid;grid-template-columns:minmax(0,1fr) 72px 150px;align-items:center;column-gap:14px}
#noticeDialog .notice-options-control{display:grid;grid-template-columns:240px 78px 175px 120px minmax(150px,1fr);align-items:center;column-gap:12px}
#noticeDialog .notice-form-row--options,#noticeDialog .notice-form-row--options label,#noticeDialog .notice-form-row--options input,#noticeDialog .notice-form-row--options small{font-family:inherit}
#noticeDialog .notice-form-row--options>.notice-form-label,#noticeDialog .notice-options-control>.notice-detail-label{font-size:14px;font-weight:700}
#noticeDialog .notice-detail-label{font-size:14px;font-weight:850;white-space:nowrap}
#noticeDialog .notice-primary-control>input[type=text],#noticeDialog .notice-options-control>input[type=date]{width:100%;height:36px;min-height:36px;box-sizing:border-box;padding:7px 10px;border:1px solid #cbd8e3;border-radius:6px;outline:0;background:#fff;color:var(--text);font-size:14px}
#noticeDialog .notice-primary-control>input:focus,#noticeDialog .notice-options-control>input:focus{border-color:#2f80c9;outline:2px solid rgba(47,128,201,.14)}#noticeDialog .notice-primary-control>input:invalid:not(:focus):not(:placeholder-shown){border-color:#cbd8e3;outline:0}
#noticeDialog .notice-choice-group{display:flex;align-items:center;gap:24px;height:36px}#noticeDialog .notice-choice-group label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}#noticeDialog .notice-choice-group input{width:15px;height:15px;min-height:15px;margin:0}
#noticeDialog .notice-choice-group .urgent{color:var(--navy)}#noticeDialog .notice-choice-group .urgent:has(input:checked){color:#e43e34}
#noticeDialog .notice-segmented{display:grid;width:240px;height:36px;grid-template-columns:1fr 1fr;gap:0}
#noticeDialog .notice-segmented label{display:flex;min-width:0;height:36px;align-items:center;justify-content:center;gap:6px;padding:0 12px;border:1px solid #d5dfe8;background:#fff;color:#526b84;font-size:14px;font-weight:500;white-space:nowrap}#noticeDialog .notice-segmented label:has(input:checked){z-index:1;border-color:#176bc0;background:#fff;color:#0b5fa5}#noticeDialog .notice-segmented input{position:static;width:14px;height:14px;min-height:14px;margin:0;font:inherit;opacity:1}
#noticeDialog .notice-options-control>input[type=date]{font:inherit;font-size:14px;font-weight:500}#noticeDialog .notice-options-control>input[type=date]:disabled{background:#eef2f5;color:#9aa8b6}
#noticeDialog .notice-no-end{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:500;white-space:nowrap;word-break:keep-all}#noticeDialog .notice-no-end input{width:15px;height:15px;min-height:15px;flex:0 0 15px;margin:0;font:inherit}#noticeDialog .notice-period-help{overflow:hidden;color:#718397;font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}
#noticeDialog .notice-editor-row{align-items:start;padding-top:15px;padding-bottom:15px}#noticeDialog .notice-editor-row>.notice-form-label{padding-top:10px}
#noticeDialog .notice-editor-shell{width:100%;min-width:0}#noticeDialog .notice-editor-toolbar{min-height:36px;flex-wrap:nowrap;gap:2px;padding:3px 5px;overflow-x:auto;overflow-y:hidden}#noticeDialog .notice-editor-toolbar button,#noticeDialog .notice-editor-toolbar select,#noticeDialog .notice-editor-toolbar label{height:28px;min-height:28px;flex:0 0 auto;padding:0 6px}
#noticeDialog .notice-rich-editor{height:clamp(300px,36dvh,380px);min-height:300px;max-height:380px;padding:12px 14px;overflow-y:auto;overflow-x:hidden;font-size:14px}#noticeDialog .notice-rich-editor img{max-width:100%;height:auto}
#noticeDialog .notice-attachment-row{min-height:52px}#noticeDialog .notice-attachment-row>.notice-form-control{display:flex;min-width:0;align-items:center;gap:12px;flex-wrap:wrap}#noticeDialog .notice-attachment-row small{color:#64748b;font-size:11px;font-weight:600;white-space:nowrap}
#noticeDialog .notice-file-picker{display:inline-flex;flex:0 0 auto;align-items:center}#noticeDialog .notice-file-picker input{position:absolute;width:1px;height:1px;opacity:0}#noticeDialog .notice-file-picker>span{display:inline-flex;height:34px;align-items:center;justify-content:center;padding:0 15px;border:1px solid #8fb1cf;border-radius:6px;background:#fff;color:#174f7d;font-size:12px;font-weight:800;cursor:pointer}
#noticeDialog .notice-existing-attachments{display:flex;width:100%;min-width:0;gap:6px;flex-wrap:wrap}#noticeDialog .notice-existing-attachments[hidden]{display:none}#noticeDialog .notice-existing-attachments>span{display:grid;max-width:210px;grid-template-columns:30px minmax(0,1fr) 40px;align-items:center;gap:6px;padding:3px 5px;border:1px solid #dce5ed;border-radius:6px;background:#f8fafc}#noticeDialog .notice-existing-attachments img{width:30px;height:30px;object-fit:cover;border-radius:4px}#noticeDialog .notice-existing-attachments b{overflow:hidden;color:#526b84;font-size:10px;text-overflow:ellipsis;white-space:nowrap}#noticeDialog .notice-existing-attachments button{height:26px;padding:0 5px;border:1px solid #d6a7a2;background:#fff;color:#a93228;font-size:10px}
#noticeDialog .notice-form>footer{display:flex;min-height:58px;align-items:center;justify-content:flex-end;gap:10px;padding:10px 24px;background:#fff}#noticeDialog .notice-form>footer button{width:120px;height:38px;padding:0 14px;border-radius:6px;font-size:13px;font-weight:800}#noticeDialog .notice-form>footer .secondary-button{border:1px solid #cbd8e3;background:#fff;color:var(--navy)}#noticeDialog .notice-form>footer [type=submit]{background:#0b5fa5;color:#fff}
@media(max-height:800px) and (min-width:701px){#noticeDialog .notice-rich-editor{height:clamp(220px,calc(100dvh - 440px),280px);min-height:220px;max-height:280px}}
@media(max-width:700px){.notice-dialog#noticeDialog{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);overflow:hidden}#noticeDialog .notice-form{display:block;max-height:calc(100dvh - 14px);overflow-y:auto}#noticeDialog .notice-form>header{position:sticky;top:0;z-index:5;min-height:60px;padding:10px 14px}#noticeDialog .notice-form-row{grid-template-columns:1fr;gap:7px;padding:10px 14px}#noticeDialog .notice-form-control{grid-column:1}#noticeDialog .notice-primary-control,#noticeDialog .notice-options-control{grid-template-columns:1fr;gap:8px}#noticeDialog .notice-detail-label{margin-top:3px}#noticeDialog .notice-period-help{display:none}#noticeDialog .notice-segmented{width:min(100%,240px)}#noticeDialog .notice-editor-row>.notice-form-label{padding-top:0}#noticeDialog .notice-editor-toolbar{flex-wrap:wrap;overflow:visible}#noticeDialog .notice-rich-editor{height:220px;min-height:220px;max-height:220px}#noticeDialog .notice-attachment-row>.notice-form-control{align-items:flex-start}#noticeDialog .notice-form>footer{position:sticky;z-index:5;bottom:0;padding:10px 14px;border-top:1px solid #dce5ed}#noticeDialog .notice-form>footer button{width:auto;flex:1}}

/* Project dashboard final layout (project screen only) */
.authenticated .portal-content:has(.project-dashboard-final){padding:10px 0 16px;overflow-x:hidden;background:#fff}
.project-dashboard-final{width:100%;max-width:calc(100% - clamp(56px,4.6vw,88px));min-width:0;margin:0 auto;color:#142c47;font-size:13px}
.project-dashboard-final .project-dashboard-title{height:46px;justify-content:space-between}
.project-dashboard-final .project-dashboard-title h2{font-size:27px}
.project-dashboard-final .project-master-link{display:inline-flex;height:38px;align-items:center;justify-content:center;padding:0 14px;border:1px solid #9ec8eb;border-radius:7px;background:#eaf4fd;color:#1665a8;font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}
.project-dashboard-final .project-dashboard-layout{grid-template-columns:340px minmax(0,1fr);min-height:700px;max-height:calc(100dvh - 116px);overflow:hidden}
.project-dashboard-final .project-list-panel{display:grid;min-height:0;grid-template-rows:auto auto minmax(0,1fr)}
.project-dashboard-final .project-list{min-height:0;overflow-y:auto}
.project-dashboard-final .project-list-item{min-height:78px;padding:12px 14px;grid-template-columns:40px minmax(0,1fr) 70px}.project-dashboard-final .project-list-item:hover:not(.active){background:#f7faff;color:#142c47}.project-dashboard-final .project-list-item.active,.project-dashboard-final .project-list-item.active:hover,.project-dashboard-final .project-list-item.active:focus-visible{background:#eef5fb;color:#142c47}
.project-dashboard-final .project-list-item.active{background:#eff6ff}
.project-dashboard-final .project-list-item.active:before{width:4px;background:#2f80c9}
.project-dashboard-final .project-list-icon{width:38px;height:38px}
.project-dashboard-final .project-icon-2{background:linear-gradient(135deg,#56c781,#2c9b5a)}
.project-dashboard-final .project-icon-3{background:linear-gradient(135deg,#34c5bd,#159a94)}
.project-dashboard-final .project-icon-4{background:linear-gradient(135deg,#4a87d7,#2867b7)}
.project-dashboard-final .project-list-copy strong{font-size:14px}
.project-dashboard-final .project-list-copy small{font-size:11px}
.project-dashboard-final .project-list-state b{font-size:12px}
.project-dashboard-final .project-list-state em{background:#f2f8ff}
.project-dashboard-final .project-detail-area,.project-dashboard-final .project-detail{min-height:0}
.project-dashboard-final .project-detail.active{display:grid;height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr)}
.project-dashboard-final .project-summary{grid-template-columns:58px minmax(170px,210px) minmax(0,1fr);min-height:120px;padding:16px 22px}
.project-dashboard-final .project-summary-icon{width:56px;height:56px;font-size:24px}
.project-dashboard-final .project-summary-name h3{font-size:20px}
.project-dashboard-final .project-summary-name p{font-size:12px}
.project-dashboard-final .project-summary dl{grid-template-columns:.85fr .95fr 1.45fr 1.35fr .75fr}
.project-dashboard-final .project-summary dt{font-size:11px}
.project-dashboard-final .project-summary dd{font-size:13px}
.project-dashboard-final .project-tool-tabs{height:88px}
.project-dashboard-final .project-tool-tabs a{position:relative;flex-direction:column;gap:5px;padding:8px 4px}
.project-dashboard-final .project-tool-tabs a:hover{background:#f5f9fd}
.project-dashboard-final .project-tool-tabs a:first-child:after{position:absolute;right:12px;bottom:0;left:12px;height:3px;background:#1687e8;content:""}
.project-dashboard-final .project-tool-tabs i{width:30px;height:30px;font-size:16px}
.project-dashboard-final .project-tool-tabs span{max-width:100%;font-size:11px}
.project-dashboard-final .project-status-grid{min-height:0;grid-template-columns:minmax(310px,.9fr) minmax(520px,2fr);gap:12px;padding:12px;overflow-y:auto}
.project-dashboard-final .project-activity-card{padding:14px}
.project-dashboard-final .project-activity-card>header h4,.project-dashboard-final .project-data-card h4{font-size:14px}
.project-dashboard-final .timeline-group{padding:10px 0}
.project-dashboard-final .timeline-heading strong{font-size:12px}
.project-dashboard-final .timeline-heading a,.project-dashboard-final .project-data-card header a{font-size:10px}
.project-dashboard-final .activity-row{grid-template-columns:minmax(92px,1fr) auto minmax(68px,.8fr);font-size:10px}
.project-dashboard-final .project-side-grid{align-content:start}
.project-dashboard-final .project-data-card{min-height:164px;padding:14px}
.project-dashboard-final .data-row{grid-template-columns:minmax(0,1fr) 72px 82px;font-size:10px}
.project-dashboard-final .attention-row{grid-template-columns:22px minmax(0,1fr) auto 64px 72px;font-size:10px}
.project-dashboard-final .project-empty{margin:20px 0;font-size:11px}
@media(max-width:1200px){.project-dashboard-final .project-dashboard-layout{grid-template-columns:290px minmax(0,1fr)}.project-dashboard-final .project-summary{grid-template-columns:50px minmax(150px,190px)}.project-dashboard-final .project-summary dl{grid-column:1/-1}.project-dashboard-final .project-status-grid{grid-template-columns:1fr;overflow-y:auto}.project-dashboard-final .project-tool-tabs{overflow-x:auto}.project-dashboard-final .project-tool-tabs a{min-width:126px}}
@media(max-width:760px){.project-dashboard-final{max-width:calc(100% - 24px)}.project-dashboard-final .project-dashboard-layout{display:block;max-height:none}.project-dashboard-final .project-list{max-height:260px}.project-dashboard-final .project-summary{grid-template-columns:48px minmax(0,1fr)}.project-dashboard-final .project-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-dashboard-final .project-side-grid{grid-template-columns:1fr}.project-dashboard-final .project-status-grid{padding:8px}}

/* Project master data */
.project-master-page{width:100%;max-width:1400px;margin:0 auto;color:var(--navy)}.project-master-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}.project-master-header>div{display:flex;align-items:center;gap:12px}.project-master-header .eyebrow{margin:0}.project-master-header h2{margin:0;font-size:28px}.project-master-header span{padding:5px 9px;border:1px solid #9ec8eb;border-radius:999px;background:#eaf4fd;color:#1665a8;font-size:11px;font-weight:800}.project-master-header>button{min-height:42px;padding:9px 16px;font-weight:800}.project-master-tabs{height:42px;border-bottom:1px solid var(--border)}.project-master-tabs strong{display:inline-flex;height:42px;align-items:center;padding:0 18px;border-bottom:3px solid #1687e8;color:#0b5f9f}.project-master-summary{display:grid;grid-template-columns:repeat(3,minmax(0,180px));gap:10px;margin:14px 0}.project-master-summary article{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border:1px solid var(--border);border-radius:9px;background:#fff}.project-master-summary span{color:var(--muted);font-size:12px}.project-master-summary b{font-size:22px}.project-master-filter{display:flex;align-items:center;gap:10px;margin-bottom:12px}.project-master-filter>label{width:min(480px,100%)}.project-master-filter input{width:100%;height:40px}.project-master-filter>div{display:flex;gap:5px}.project-master-filter button{height:38px;padding:7px 14px;border:1px solid var(--border);background:#fff;color:var(--navy)}.project-master-filter button.active{border-color:#2f80c9;background:#eff6ff;color:#1665a8}.project-master-table-wrap{width:100%;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:#fff}.project-master-table{width:100%;table-layout:fixed;border-collapse:collapse}.project-master-table col:nth-child(1){width:170px}.project-master-table col:nth-child(2){width:auto}.project-master-table col:nth-child(3){width:90px}.project-master-table col:nth-child(4){width:90px}.project-master-table th,.project-master-table td{height:50px;padding:10px 14px;border-bottom:1px solid #e8eef4;vertical-align:middle}.project-master-table th{background:#f5f8fb;color:#526b84;font-size:12px;text-align:left}.project-master-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-master-state{display:inline-flex;min-width:42px;justify-content:center;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800}.project-master-state.yes{background:#eaf7ef;color:#16834b}.project-master-state.no{background:#eef2f5;color:#657789}.project-master-edit{padding:6px 10px;border:1px solid #9fbdd6;background:#fff;color:#155f99;font-weight:800}.project-master-pagination{display:flex;justify-content:center;gap:5px;margin-top:14px}.project-master-pagination a{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--navy);text-decoration:none}.project-master-pagination a.active{border-color:#1687e8;background:#1687e8;color:#fff}.project-master-open{overflow:hidden}.project-master-backdrop{position:fixed;z-index:1100;inset:0;background:rgba(3,31,59,.42)}.project-master-panel{position:fixed;z-index:1110;top:0;right:0;width:min(480px,100vw);height:100dvh;padding:0;border:0;background:#fff;box-shadow:-12px 0 40px rgba(3,31,59,.24)}.project-master-panel[hidden],.project-master-backdrop[hidden]{display:none}.project-master-panel>header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--border)}.project-master-panel h3{margin:4px 0 0;font-size:23px}.project-master-panel>header>button{width:36px;height:36px;padding:0;border-radius:50%;background:#eef3f7;color:var(--navy);font-size:23px}.project-master-panel form{display:grid;gap:20px;padding:26px 24px}.project-master-panel form>label{display:grid;gap:7px;font-weight:800}.project-master-panel input{width:100%;height:44px}.project-master-panel input[readonly]{background:#eef2f5;color:#657789}.project-code-fiel
