.home-screen-stage{min-height:100dvh;background:#eef3f7;padding:24px 16px;color:#12304d;display:flex;justify-content:center;align-items:flex-start}
.home-screen-card{width:100%;max-width:480px;background:#fff;border:1px solid #d7e2ed;border-radius:20px;padding:26px;box-shadow:0 8px 28px #12304d0c}
.home-screen-card header{display:flex;gap:12px;align-items:center;font-size:21px;margin-bottom:28px}
.home-screen-card header img{width:38px;height:38px;border-radius:9px}
.home-screen-card h1{font-size:24px;line-height:1.5;margin:0 0 16px;text-wrap:balance}
.home-screen-card p{font-size:15px;line-height:1.8;margin:16px 0}
.home-screen-icon-preview{display:flex;flex-direction:column;align-items:center;gap:9px;background:#f3f7fb;border-radius:16px;padding:20px;margin:20px 0}
.home-screen-icon-preview img{width:76px;height:76px;border-radius:18px;box-shadow:0 5px 10px #12304d20}
.home-screen-steps{list-style:none;counter-reset:install-step;padding:0;margin:24px 0;display:grid;gap:18px}
.home-screen-steps li{counter-increment:install-step;display:flex;gap:13px;align-items:flex-start}
.home-screen-steps li::before{content:counter(install-step);flex:none;background:#e7f0fb;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;color:#1260be;font-weight:700}
.home-screen-steps li>svg{flex:none;width:22px;margin-top:2px;color:#1260be}
.home-screen-steps span{font-size:14px;line-height:1.7;min-width:0}
.home-screen-steps strong{display:block;font-size:16px;color:#12304d;margin-bottom:3px}
.home-screen-primary,.home-screen-secondary{width:100%;min-height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;font:inherit;font-weight:700;padding:12px 16px;text-decoration:none;text-align:center;cursor:pointer}
.home-screen-primary{background:#125fbe;color:white;border:1px solid #125fbe}
.home-screen-primary:disabled{opacity:.6;cursor:wait}
.home-screen-secondary{border:1px solid #d7e2ed;background:white;color:#315371;margin-top:20px}
.home-screen-card .home-screen-hint{font-size:13px;color:#58718a}
.home-screen-card .home-screen-location{font-size:14px;line-height:1.7;background:#eef5ff;border-left:3px solid #125fbe;padding:10px 12px;margin-bottom:10px}
.home-screen-help{border:1px solid #d7e2ed;border-radius:10px;padding:12px;font-size:14px;line-height:1.7}
.home-screen-help summary{cursor:pointer;color:#125fbe;font-weight:700}
.home-screen-card .home-screen-help p{font-size:14px;margin:12px 0 0}
.home-screen-card .home-screen-error{background:#fff0f0;color:#a32121;padding:12px;border-radius:9px}
.home-screen-success{color:#15845a;margin-bottom:15px}
.home-screen-entry{display:flex;align-items:center;justify-content:center;gap:8px;background:white;border:1px solid #ccdbea;border-radius:10px;color:#125fbe;font:inherit;font-size:14px;font-weight:700;padding:12px 16px;width:100%;margin:12px 0}
@media(max-width:380px){.home-screen-stage{padding:12px}.home-screen-card{padding:20px}.home-screen-card h1{font-size:22px}}
.manual-viewer-dialog {
  position: fixed; inset: 0; box-sizing: border-box; width: 100%; max-width: none;
  height: 100vh; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0;
  color: #152d46; background: #eef2f6; overflow: hidden; font-family: inherit;
}
.manual-viewer-dialog[open] { display: flex; flex-direction: column; }
.manual-viewer-dialog::backdrop { background: #152d4680; }
.manual-viewer-header {
  flex: none; padding: max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 10px max(12px, env(safe-area-inset-left));
  background: #fff; border-bottom: 1px solid #c4d2e0; z-index: 1;
}
.manual-viewer-header h2 { margin: 8px 0 0; font-size: 16px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manual-viewer-dialog button, .manual-viewer-dialog select, .manual-viewer-message a {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px;
  padding: 8px 12px; border: 1px solid #a6bbd3; border-radius: 6px; background: #fff;
  color: #155dab; font: inherit; font-size: 16px; line-height: 1.4; text-decoration: none; cursor: pointer;
}
.manual-viewer-header button { font-weight: 700; background: #edf5ff; }
.manual-viewer-dialog button:disabled { opacity: .45; cursor: default; }
.manual-viewer-dialog :focus-visible { outline: 3px solid #1766c3; outline-offset: -3px; }
.manual-viewer-body, .manual-reader { flex: 1; min-height: 0; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.manual-reader-controls { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left)); background: #fff; border-bottom: 1px solid #c4d2e0; }
.manual-reader-pages, .manual-reader-pages label { display: flex; align-items: center; gap: 6px; }
.manual-reader-pages button { padding: 8px; min-width: 44px; }
.manual-reader-pages select { max-width: 80px; }
.manual-reader-scroll { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 12px 12px max(12px, env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; }
.manual-reader-canvas { min-width: 100%; width: max-content; }
.manual-reader-canvas canvas { display: block; margin: 0 auto; background: #fff; box-shadow: 0 2px 8px #142d4826; }
.manual-viewer-message { margin: 0; padding: 24px 16px; line-height: 1.7; overflow-wrap: anywhere; }
.manual-viewer-image { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.manual-viewer-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (min-width: 768px) {
  .manual-viewer-header { display: flex; align-items: center; gap: 20px; }
  .manual-viewer-header button { flex: none; }
  .manual-viewer-header h2 { margin: 0; font-size: 18px; }
}
.attendance-exit-review{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #cad8e5;border-radius:16px;padding:22px;color:#12304d;background:white}
.attendance-exit-review::backdrop{background:#102c48aa}
.attendance-exit-review h2{font-size:22px;margin:0 0 12px}.attendance-exit-review p{font-size:14px;line-height:1.7}
.attendance-exit-review fieldset{min-width:0;border:1px solid #d8e3ed;padding:14px;margin:20px 0;border-radius:10px}.attendance-exit-review legend{font-weight:700;overflow-wrap:anywhere}
.attendance-review-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-review-fields label{display:grid;gap:5px;font-size:14px}.attendance-review-fields input{box-sizing:border-box;width:100%;min-width:0;border:1px solid #cad8e5;border-radius:8px;padding:10px;font:inherit;min-height:44px}
.attendance-exit-review button{min-height:44px;width:100%;border:1px solid #125fbe;border-radius:8px;background:#125fbe;color:white;padding:10px;font:inherit;font-size:14px;cursor:pointer;margin-top:10px}.attendance-exit-review button:disabled{opacity:.55;cursor:default}
.attendance-exit-review .attendance-review-overnight,.attendance-exit-review footer button:first-child{background:white;color:#125fbe}.attendance-exit-review small{display:block;font-size:12px;line-height:1.6;margin-top:8px}
.attendance-exit-review .attendance-review-error{color:#a32121;background:#fff0f0;padding:10px;border-radius:8px}
.attendance-confirmation-notice{padding:14px;border:1px solid #e5ba62;border-radius:10px;background:#fff8e9;margin:12px 0;line-height:1.7}.attendance-confirmation-notice button{display:block;min-height:44px;margin-top:8px;border:1px solid #ad7612;color:#704805;background:white;border-radius:8px;padding:9px 12px;font:inherit;cursor:pointer}
@media(max-width:360px){.attendance-exit-review{padding:14px}.attendance-review-fields{grid-template-columns:1fr}}
.line-active-workers article>button:last-child{grid-column:2/-1;min-height:44px;font-size:12px}
.attendance-page .entry-list>div>.button:last-child{grid-column:2/-1;min-height:44px;justify-self:stretch}
.attendance-review-fields input{font-size:16px}
.photo-example-trigger {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-height: 44px; max-width: 100%; padding: 9px 12px; border: 1px solid #9eb8d8;
  border-radius: 6px; color: #125db3; background: #f2f7ff; font: inherit;
  font-size: 14px; line-height: 1.4; cursor: pointer; white-space: normal;
}
.photo-example-trigger:hover { background: #e3edfc; }
.photo-example-trigger:focus-visible, .photo-example-close:focus-visible { outline: 3px solid #1766c3; outline-offset: 3px; }
.photo-example-dialog {
  box-sizing: border-box; width: min(860px, calc(100vw - 24px)); max-width: none;
  max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px);
  margin: auto; padding: 0; border: 1px solid #c4d2e4; border-radius: 12px;
  background: #fff; color: #142d48; font-family: inherit; overflow-y: auto;
  overscroll-behavior: contain; box-shadow: 0 16px 60px #08284b44;
}
.photo-example-dialog::backdrop { background: #071c36b3; }
.photo-example-header {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center;
  justify-content: space-between; gap: 12px; padding: 14px 20px;
  background: #fff; border-bottom: 1px solid #dce4ef;
}
.photo-example-header h2 { margin: 0; font-size: 19px; line-height: 1.5; }
.photo-example-close { display: inline-flex; align-items: center; gap: 4px; flex-shrink: 0;
  min-height: 44px; padding: 8px; border: 1px solid #b9c9dc; border-radius: 6px;
  background: white; color: #142d48; font: inherit; cursor: pointer; }
.photo-example-content { padding: 20px; overflow-wrap: anywhere; }
.photo-example-content h3 { margin: 0 0 16px; font-size: 21px; line-height: 1.6; }
.photo-example-content figure { margin: 0 0 20px; }
.photo-example-large-image { display: block; width: 100%; max-height: 55vh; object-fit: contain; background: #edf2f7; }
.photo-example-image-scroll { max-height: 55vh; overflow: auto; border: 1px solid #dce4ef; }
.photo-example-image-scroll .photo-example-large-image { max-width: none; max-height: none; height: auto; background: white; }
.photo-example-zoom { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.photo-example-zoom select { min-height: 44px; padding: 6px 10px; border: 1px solid #b9c9dc; background: white; color: #142d48; border-radius: 5px; }
.photo-example-content figcaption { margin-top: 10px; color: #52677d; font-size: 14px; line-height: 1.6; }
.photo-example-empty { margin: 0 0 20px; padding: 16px; background: #f4f7fb; border: 1px dashed #aebed0; border-radius: 6px; font-size: 16px; line-height: 1.8; }
.photo-example-facts { margin: 0 0 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.photo-example-facts div { padding: 12px; background: #eef5ff; border-radius: 6px; }
.photo-example-facts dt { font-size: 14px; color: #536a82; }
.photo-example-facts dd { margin: 6px 0 0; font-size: 16px; font-weight: 600; line-height: 1.7; }
.photo-example-instruction { padding: 16px; border-left: 4px solid #1766c3; background: #f5f9ff; }
.photo-example-instruction h4 { margin: 0 0 8px; font-size: 17px; }
.photo-example-instruction p { margin: 0; white-space: pre-wrap; font-size: 16px; line-height: 1.9; }
.photo-example-note { margin: 16px 0 0; color: #52677d; font-size: 14px; line-height: 1.7; }
.photo-requirement-action { display: flex; flex-direction: column; gap: 6px; }
.photo-worker-item-copy > .photo-example-trigger, .line-required-copy > .photo-example-trigger { margin: 10px 0; }
.photo-detail-panel > .photo-example-trigger { margin: 12px 20px; }
@media (max-width: 600px) {
  .photo-example-header { padding: 10px 12px; gap: 6px; }
  .photo-example-header h2 { font-size: 17px; }
  .photo-example-content { padding: 16px 12px; }
  .photo-example-content h3 { font-size: 18px; }
  .photo-example-facts { grid-template-columns: 1fr; }
  .photo-example-large-image { max-height: 45vh; }
}
.project-form-page [data-guide-field] { scroll-margin-block: 110px; }
.project-form-page [data-guide-message] { min-width: 0; }
.project-form-page [data-guide-message]::after {
  content: attr(data-guide-message); display: block; grid-column: 1 / -1; flex: 0 0 100%; box-sizing: border-box;
  margin-top: 8px; padding: 9px 10px; border: 1px solid #b42318; border-radius: 6px;
  background: #fff1ee; color: #9a2118; font-size: 14px; line-height: 1.5; font-weight: 700; overflow-wrap: anywhere;
}
.project-form-page .vendor-picker[data-guide-message] { flex-wrap: wrap; }
.project-form-page [aria-invalid="true"] { outline: 2px solid #b42318; outline-offset: 2px; }
.project-form-page [data-guide-active] > input,
.project-form-page [data-guide-active] > select { box-shadow: 0 0 0 5px #ffe1d9; }
.project-input-guide { margin: 0 0 18px; padding: 14px; border: 1px solid #b42318; border-radius: 8px; background: #fff9f7; color: #84231a; }
.project-input-guide[hidden] { display: none; }
.project-input-guide p { margin: 0 0 8px; line-height: 1.6; }
.project-input-guide > div { display: flex; flex-wrap: wrap; gap: 8px; }
.project-input-guide button { min-height: 44px; padding: 8px 12px; border: 1px solid #b42318; border-radius: 6px; background: #fff; color: #84231a; cursor: pointer; font: inherit; text-align: left; }
.project-input-guide button:focus-visible { outline: 3px solid #155bc1; outline-offset: 2px; }
.project-input-guide-description { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.project-form-fields { display: block; min-width: 0; margin: 0; padding: 0; border: 0; }
.project-form-fields > .form-section + .form-section { margin-top: 18px; }
.project-save-status { padding: 12px 16px; border: 1px solid #b8d3f4; border-radius: 6px; background: #eef6ff; color: #164c85; line-height: 1.6; }
.project-unavailable { padding: 24px; }
.project-unavailable p { margin: 16px 0; line-height: 1.7; }
.project-form-fields:disabled { cursor: progress; }
.gantt-edit-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
.material-form-fields { min-width: 0; margin: 0; border: 0; }
.task-form-fields { min-width: 0; margin-inline: 0; }
.completion-fields { min-width: 0; margin: 0; padding: 0; }
.photo-sample-image { display: block; width: 100%; max-width: 400px; max-height: 280px; object-fit: contain; margin: 8px 0; }
.attendance-form-fields { min-width: 0; margin: 0; }
.photo-master-page .photo-master-sample-preview { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; flex: 1; }
.photo-master-page .photo-master-sample-preview > span, .photo-master-page .photo-master-sample-preview > strong { width: 100%; overflow-wrap: anywhere; }
.photo-master-page .photo-master-sample { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 760px) { .photo-master-page .photo-master-sample { grid-template-columns: minmax(0, 1fr); } }
.document-editor-fields { min-width: 0; margin: 0; padding: 0; }
.registration-steps { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.registration-steps button { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; background: #f0f6ff; border: 1px solid #c5d7ef; border-radius: 6px; color: #165eb5; font: inherit; font-weight: 600; cursor: pointer; }
.registration-steps button:focus-visible { outline: 3px solid #1764c0; outline-offset: 3px; }
.registration-anchor { scroll-margin-top: 120px; }
.registration-company-note { padding: 16px; }
.registration-valley { margin: 16px; padding: 16px; background: #fff; border: 1px solid #c5d7ef; border-radius: 6px; overflow-wrap: anywhere; }
.registration-valley p { margin: 8px 0; line-height: 1.6; }
.registration-valley summary { cursor: pointer; padding: 10px 0; min-height: 44px; }
.registration-valley small { color: #516782; line-height: 1.6; }
.registration-anchor .project-photo-standard-fields > .project-photo-standard-select { margin: 0; width: auto; min-width: 0; }
.registration-anchor .project-photo-standard-fields > fieldset { margin: 0; min-width: 0; }
.registration-anchor select { max-width: 100%; min-width: 0; }
.registration-photo-review { padding: 20px; border-top: 1px solid #c5d7ef; background: #fff; }
.registration-photo-review h3 { margin: 0 0 12px; font-size: 18px; }
.registration-photo-review ol { padding-left: 24px; }
.registration-photo-review li { padding: 12px 4px; border-bottom: 1px solid #e2e8f0; }
.registration-photo-review li > div { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.registration-photo-review li span { color: #315b85; white-space: nowrap; }
.registration-photo-review li p { margin: 8px 0 0; line-height: 1.7; }
.registration-photo-review small { line-height: 1.6; color: #516782; }
@media(max-width:600px) { .registration-steps { flex-direction: column; } .registration-photo-review { padding: 16px; } .registration-photo-review li > div { display: grid; gap: 6px; } }
:root {
  font-family: "Yu Gothic UI", "Yu Gothic", "Hiragino Kaku Gothic ProN", "Meiryo", sans-serif;
  color: #13253a;
  background: #f4f7fa;
  font-synthesis: none;
  --navy: #082b52;
  --navy-2: #0d3d70;
  --blue: #1764c0;
  --blue-2: #eaf3ff;
  --ink: #13253a;
  --muted: #65758b;
  --border: #d7e0e9;
  --surface: #ffffff;
  --bg: #ffffff;
  --red: #d9363e;
  --red-bg: #fff0f0;
  --amber: #cb6d08;
  --amber-bg: #fff7e8;
  --green: #1e7a52;
  --green-bg: #eaf7f0;
  --radius: 5px;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--bg); }
button,input,select,textarea { font: inherit; }
button { color: inherit; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline: 3px solid rgba(23,100,192,.22); outline-offset: 1px; }
.app-shell { min-height: 100vh; display: flex; }
.sidebar { width: 208px; flex: 0 0 208px; background: #082b52; color: white; min-height: 100vh; position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; z-index: 20; }
.brand { height: 68px; padding: 0 20px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid rgba(255,255,255,.13); font-size: 17px; font-weight: 700; letter-spacing: .02em; }
.main-nav { padding: 12px 9px; display: grid; gap: 3px; }
.nav-item { height: 45px; border: 0; background: transparent; color: rgba(255,255,255,.84); display: flex; align-items: center; gap: 13px; padding: 0 14px; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: 650; text-align: left; }
.nav-item:hover { background: rgba(255,255,255,.08); color: #fff; }
.nav-item--active { background: #1764c0; color: white; box-shadow: inset 3px 0 #8fc1ff; }
.sidebar-foot { margin-top: auto; padding: 15px 16px 20px; }
.sidebar-note { color: rgba(255,255,255,.58); display: flex; gap: 10px; align-items: flex-start; font-size: 11px; line-height: 1.6; }
.main-column { min-width: 0; flex: 1; }
.topbar { height: 58px; position: sticky; top: 0; z-index: 15; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--border); display: flex; align-items: center; padding: 0 22px; }
.company-name { font-size: 13px; font-weight: 650; }
.topbar-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.icon-button { width: 34px; height: 34px; border: 0; background: transparent; display: inline-grid; place-items: center; border-radius: 4px; cursor: pointer; }
.icon-button:hover { background: #eef3f8; }
.notification-button { position: relative; }
.notification-button span { position: absolute; top: 1px; right: 1px; width: 16px; height: 16px; border-radius: 50%; background: var(--red); color: white; font-size: 10px; font-weight: 700; display: grid; place-items: center; }
.user-menu { display: flex; align-items: center; gap: 8px; border: 0; background: transparent; padding: 5px 4px 5px 8px; cursor: pointer; }
.user-avatar { width: 29px; height: 29px; display: grid; place-items: center; background: #dceaf8; color: var(--navy); border-radius: 50%; font-weight: 700; font-size: 12px; }
.user-label { font-size: 13px; font-weight: 600; }
.dev-role-switcher { position: relative; }
.user-menu--switchable { min-height: 44px; padding: 4px 7px; border: 1px solid transparent; border-radius: 5px; }
.user-menu--switchable:hover,.user-menu--switchable[aria-expanded="true"] { border-color: #b7c8d9; background: #f5f9fd; }
.user-menu-copy { display: grid; gap: 1px; text-align: left; }
.user-menu-copy small { color: var(--muted); font-size: 9px; font-weight: 650; }
.user-menu--identity { cursor: default; min-width: 0; }
.user-menu--identity .user-menu-copy { min-width: 0; }
.user-menu--identity .user-avatar { flex: none; }
.user-menu--identity .user-label { display: block; max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-menu--identity .user-menu-copy small { display: block; font-size: 11px; white-space: nowrap; }
.line-app-header.line-app-header--identity { min-height: 58px; height: auto; gap: 12px; padding-top: 10px; padding-bottom: 10px; }
.line-app-header--identity>strong { flex: 1; min-width: 0; }
.line-app-header .line-user-identity { display: grid; gap: 3px; max-width: 55%; min-width: 0; text-align: right; }
.line-user-identity>span { overflow-wrap: anywhere; }
.line-user-identity>small { font-size: 11px; white-space: nowrap; }
@media(max-width:760px){.user-menu--identity .user-label{max-width:125px;font-size:12px}.user-menu--identity .user-menu-copy small{font-size:11px}}
.dev-role-badge { min-height: 20px; padding: 2px 6px; border: 1px solid #efc484; border-radius: 10px; background: var(--amber-bg); color: var(--amber); display: inline-flex; align-items: center; font-size: 9px; font-weight: 800; }
.user-menu--switchable>svg { color: #62768c; transition: transform .18s ease; }
.user-menu--switchable>svg.is-open { transform: rotate(180deg); }
.dev-role-menu { position: absolute; z-index: 90; top: calc(100% + 7px); right: 0; width: 350px; max-height: min(620px,calc(100vh - 78px)); overflow: auto; border: 1px solid #aebdcb; border-radius: 6px; background: white; box-shadow: 0 14px 38px rgba(8,43,82,.22); }
.dev-role-menu>header { min-height: 58px; padding: 10px 12px; border-bottom: 1px solid var(--border); background: #f7faff; display: flex; align-items: center; gap: 9px; color: var(--blue); }
.dev-role-menu>header>span { display: grid; gap: 2px; }
.dev-role-menu>header strong { color: var(--ink); font-size: 12px; }
.dev-role-menu>header small { color: var(--muted); font-size: 9px; }
.dev-role-menu>p { margin: 0; padding: 18px 12px; color: var(--muted); font-size: 10px; text-align: center; }
.dev-role-menu .dev-role-menu-error { color: var(--red); }
.dev-role-options { padding: 5px; }
.dev-role-options>button { width: 100%; min-height: 52px; padding: 6px 8px; border: 0; border-bottom: 1px solid #e5ebf0; background: white; display: grid; grid-template-columns: 31px minmax(0,1fr) 20px; align-items: center; gap: 9px; cursor: pointer; text-align: left; }
.dev-role-options>button:last-child { border-bottom: 0; }
.dev-role-options>button:hover { background: #f4f8fc; }
.dev-role-options>button.selected { background: #eaf3ff; color: var(--blue); box-shadow: inset 3px 0 var(--blue); }
.dev-role-option-avatar { width: 29px; height: 29px; border-radius: 50%; background: #e2ecf5; color: var(--navy); display: grid; place-items: center; font-size: 11px; font-weight: 800; }
.dev-role-options>button>span:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.dev-role-options strong { color: var(--ink); font-size: 11px; }
.dev-role-options small { color: var(--muted); font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dev-role-menu>footer { padding: 9px 11px; border-top: 1px solid var(--border); background: #fff9ed; color: #8b5a1d; font-size: 9px; line-height: 1.5; }
.mobile-menu,.mobile-close { display: none; }
.topbar-back { min-height: 34px; border: 0; border-right: 1px solid var(--border); background: transparent; color: var(--blue); padding: 0 14px 0 2px; margin-right: 14px; display: inline-flex; align-items: center; gap: 6px; cursor: pointer; font-size: 13px; font-weight: 700; white-space: nowrap; }
.topbar-back:hover { color: #0d4e99; }
.page-content { padding: 24px 26px 40px; max-width: 1560px; margin: 0 auto; }
.page-header { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 18px; }
.page-header h1 { font-size: 24px; line-height: 1.3; margin: 0; letter-spacing: -.02em; color: #0c2139; }
.page-header p { margin: 5px 0 0; font-size: 13px; color: var(--muted); }
.page-actions { margin-left: auto; display: flex; gap: 9px; align-items: center; }
.button { min-height: 36px; border: 1px solid #aebdcb; background: white; color: #15314f; border-radius: 4px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; cursor: pointer; font-size: 13px; font-weight: 650; white-space: nowrap; }
.button:hover { border-color: var(--blue); color: var(--blue); background: #f7fbff; }
.button--primary { background: var(--blue); border-color: var(--blue); color: white; }
.button--primary:hover { background: #1255a3; color: white; }
.button--line { background:#06c755; border-color:#06b84f; color:white; }
.button--line:hover { background:#05ad49; border-color:#049b41; color:white; }
.button--compact { min-height: 29px; padding: 0 9px; font-size: 12px; }
.button--full { width: 100%; margin-top: 14px; }
.text-button,.panel-link { border: 0; background: transparent; color: var(--blue); cursor: pointer; display: inline-flex; align-items: center; gap: 2px; font-size: 12px; font-weight: 650; }
.panel-link { width: 100%; justify-content: center; border-top: 1px solid var(--border); padding: 11px 0 0; margin-top: 9px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 15px; min-width: 0; }
.panel--flush { padding: 0; overflow: hidden; }
.panel-heading { min-height: 28px; display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 11px; }
.panel-heading > div { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.panel-heading h2 { margin: 0; font-size: 15px; color: #10253d; }
.panel-heading span { font-size: 11px; color: var(--muted); }
.dashboard-grid { display: grid; grid-template-columns: minmax(520px,1.5fr) minmax(320px,1fr); gap: 14px; }
.panel--wide { min-width: 0; }
.task-list { border: 1px solid var(--border); border-radius: 4px; overflow: hidden; }
.task-row { min-height: 48px; display: grid; grid-template-columns: 62px minmax(110px,.8fr) minmax(190px,1.8fr) auto auto; gap: 10px; align-items: center; padding: 6px 9px 6px 12px; border-bottom: 1px solid var(--border); position: relative; font-size: 12px; }
.task-row:last-child { border-bottom: 0; }
.task-row::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background: var(--blue); }
.task-row--overdue::before { background: var(--red); }.task-row--today::before,.task-row--soon::before{background:var(--amber)}
.task-date { font-weight: 700; }.task-project { font-weight: 650; }.task-title { color:#33485d; }
.status-tag { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 7px; border: 1px solid var(--border); border-radius: 3px; font-size: 11px; line-height: 1.2; font-weight: 700; white-space: nowrap; }
.status-tag--red { color: var(--red); border-color: #f0a8ab; background: var(--red-bg); }
.status-tag--amber { color: var(--amber); border-color: #efc484; background: var(--amber-bg); }
.status-tag--blue { color: var(--blue); border-color: #a8c6eb; background: var(--blue-2); }
.status-tag--green { color: var(--green); border-color: #a8d3bc; background: var(--green-bg); }
.status-tag--neutral { color: #526273; background: #f1f4f6; }
.risk-summary { display: flex; align-items: baseline; gap: 9px; padding: 8px 10px 12px; }.risk-summary strong { font-size: 28px; color: var(--red); }.risk-summary span { font-size:12px;color:var(--muted); }
.compact-list { border-top: 1px solid var(--border); }.compact-list button { width:100%;border:0;border-bottom:1px solid var(--border);background:white;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:11px 5px;cursor:pointer;text-align:left;font-size:12px; }.compact-list button:hover{background:#f8fbfe}.compact-list b{font-size:11px}.text-red{color:var(--red)!important}.text-amber{color:var(--amber)!important}
.data-table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table th { text-align: left; color: #526273; background: #f7f9fb; font-size: 11px; font-weight: 700; padding: 9px 10px; border-bottom: 1px solid var(--border); white-space: nowrap; }
.data-table td { padding: 10px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }.data-table tbody tr:hover{background:#f8fbfe}.data-table tr.row-selected{background:#edf5ff}.data-table small{display:block;color:var(--muted);margin-top:3px}
.table-link { border:0;background:transparent;color:var(--blue);padding:0;cursor:pointer;text-align:left;font-size:inherit; }.table-link--strong{font-weight:700}
.progress-cell { display:flex;align-items:center;gap:7px;white-space:nowrap }.progress-cell i{width:48px;height:6px;background:#e1e7ed;border-radius:6px;overflow:hidden}.progress-cell b{height:100%;display:block;background:var(--blue)}
.metric-line { display:flex;align-items:baseline;gap:8px;padding:7px 8px 11px }.metric-line strong{font-size:29px;color:var(--red)}.metric-line span{font-size:12px;color:var(--muted)}
.site-counts { display:grid;grid-template-columns:repeat(3,1fr);gap:10px }.site-counts button{border:1px solid var(--border);background:white;border-radius:4px;padding:15px 8px;display:flex;flex-direction:column;gap:5px;cursor:pointer}.site-counts strong{font-size:22px;color:var(--navy)}.site-counts span{font-size:11px;color:var(--muted)}
.completion-mini { display:grid;grid-template-columns:minmax(140px,1.2fr) 1fr auto;gap:16px;align-items:center;padding:11px 0;border-top:1px solid var(--border);font-size:12px }.completion-mini:first-of-type{border-top:0}.completion-mini div:first-child{display:grid;gap:3px}.completion-mini span{color:var(--muted)}
.mini-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;position:relative}.mini-steps:before{content:"";position:absolute;top:5px;left:5px;right:5px;height:2px;background:#d6dde5}.mini-steps i{width:12px;height:12px;border-radius:50%;background:#c7d0d9;z-index:1}.mini-steps .done{background:var(--blue)}.mini-steps .active{background:white;border:2px solid var(--blue)}
.toolbar { display:flex;align-items:center;gap:10px;margin-bottom:14px }.search-field{height:38px;min-width:320px;max-width:480px;flex:1;background:white;border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;gap:9px;padding:0 11px;color:var(--muted)}.search-field input{border:0;outline:0;width:100%;font-size:13px}.segmented{display:flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.segmented button{height:36px;border:0;border-right:1px solid var(--border);background:white;padding:0 15px;font-size:12px;cursor:pointer}.segmented button:last-child{border-right:0}.segmented .active{background:var(--navy);color:white}
.back-link{border:0;background:transparent;color:var(--blue);padding:0;margin-bottom:10px;cursor:pointer;font-size:12px}.project-summary{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));background:white;border:1px solid var(--border);border-radius:4px;margin-bottom:14px}.project-summary dl{margin:0;padding:12px 15px;border-right:1px solid var(--border)}.project-summary dl:last-child{border-right:0}.project-summary dt{font-size:10px;color:var(--muted);margin-bottom:5px}.project-summary dd{margin:0;font-size:13px;font-weight:650}.project-layout{display:grid;grid-template-columns:minmax(480px,1.6fr) minmax(280px,.8fr);gap:14px}.project-main,.project-side{display:grid;gap:14px;align-content:start}.large-progress{display:flex;align-items:center;gap:12px}.large-progress i{height:11px;flex:1;background:#e2e8ef;border-radius:8px;overflow:hidden}.large-progress b{display:block;height:100%;background:var(--blue)}.large-progress strong{font-size:13px}.current-phase{margin-top:14px;padding:14px;border-left:3px solid var(--blue);background:#f5f9fe}.current-phase>span{font-size:10px;color:var(--muted);display:block}.current-phase strong{font-size:17px}.current-phase p{margin:4px 0 0;color:var(--muted);font-size:12px}.check-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 15px}.check-list label{display:flex;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px}.check-list .checked span{color:#66788a;text-decoration:line-through}.attention-list{display:grid}.attention-list button{display:grid;text-align:left;gap:3px;border:0;border-top:1px solid var(--border);background:white;padding:12px 3px;cursor:pointer}.attention-list button:first-child{border-top:0}.attention-list b{font-size:12px}.attention-list span{font-size:11px;color:var(--amber)}.worker-count{display:flex;align-items:baseline;gap:8px}.worker-count strong{font-size:32px}.worker-count span{color:var(--muted);font-size:12px}.muted{color:var(--muted);font-size:11px}
.project-work-summary{border-top:1px solid var(--border)}.project-work-summary>div{display:grid;grid-template-columns:12px minmax(120px,1fr) 90px minmax(100px,1fr);gap:10px;align-items:center;padding:10px 3px;border-bottom:1px solid var(--border);font-size:12px}.project-work-summary span{color:var(--muted)}.work-color{width:11px;height:11px;border-radius:2px;display:inline-block;flex:0 0 auto}.work-color--common{background:#64748b}.work-color--roof{background:#1764c0}.work-color--sheetMetal{background:#0f8791}.work-color--gutter{background:#7651b5}.work-color--solar{background:#d39a0b}.work-color--scaffold{background:#536a7b}.work-color--painting{background:#b94b78}.work-color--electrical{background:#2f7d32}.work-color--waterproof{background:#2c72a8}.work-color--exterior{background:#c76b16}
.form-error{border:1px solid #efa7aa;background:var(--red-bg);color:var(--red);padding:10px 13px;margin-bottom:12px;font-size:12px}.form-section{border:1px solid var(--border);background:#fff;border-radius:4px;padding:0 20px 20px;margin-bottom:14px}.form-section-heading{min-height:49px;display:flex;align-items:center;border-bottom:1px solid var(--border);margin-bottom:17px}.form-section-heading h2,.schedule-preview h2{font-size:16px;margin:0;color:#10253d}.form-section-heading--inline{gap:18px}.form-section-heading p{font-size:12px;color:var(--muted);margin:0}.project-fields{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:18px 26px}.project-fields label,.project-fields .project-field{display:grid;gap:7px;font-size:12px;font-weight:700}.project-fields label>span,.project-fields .project-field>label{display:flex;align-items:center;gap:7px}.project-fields em{font-style:normal;font-size:9px;color:var(--red);border:1px solid #efa7aa;padding:1px 4px;border-radius:2px}.project-fields input,.project-fields select,.work-editor-row input,.work-editor-row select{width:100%;height:40px;border:1px solid #b8c6d4;border-radius:3px;background:#fff;padding:0 11px;color:var(--ink);font-size:13px}.work-editor-head,.work-editor-row{display:grid;grid-template-columns:38px 58px minmax(170px,1fr) minmax(170px,1.1fr) minmax(210px,1.25fr) 38px;gap:12px;align-items:center}.work-editor-head{font-size:11px;font-weight:700;color:#526273;padding:0 0 7px}.work-editor-row{padding:5px 0}.drag-handle{height:38px;border:0;background:transparent;color:#526273;display:grid;place-items:center;cursor:grab}.drag-handle:active{cursor:grabbing}.order-number{height:40px;border:1px solid #b8c6d4;border-radius:3px;display:grid;place-items:center;font-size:13px}.delete-work{color:#526273}.delete-work:hover{color:var(--red);background:var(--red-bg)}.add-work{margin-top:12px;color:var(--blue);border-color:var(--blue)}.schedule-preview{border:1px solid var(--border);background:#fff;border-radius:4px;min-height:108px;display:grid;grid-template-columns:130px minmax(0,1fr) 70px 220px;gap:12px;align-items:center;padding:18px 20px}.schedule-preview .schedule-items{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.schedule-part{display:flex;align-items:center;gap:7px}.schedule-part>span{min-height:40px;border:1px solid #c4d0dc;padding:0 10px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700}.schedule-plus{color:var(--blue);flex:0 0 auto}.schedule-merge-cue{display:grid;justify-items:center;gap:3px;color:var(--blue)}.schedule-merge-cue b{font-size:11px;white-space:nowrap}.schedule-result{margin:0;border:1px dashed #8fa9c2;background:#f8fbff;padding:12px;text-align:center;font-size:11px;color:var(--muted);line-height:1.6}.schedule-preview strong{color:var(--ink);font-size:15px}
.vendor-picker{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.vendor-history-button{height:40px;border:1px solid #9fb3c7;border-radius:3px;background:#fff;color:var(--blue);padding:0 8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:700;white-space:nowrap;cursor:pointer}.vendor-history-button:hover,.vendor-history-button[aria-expanded="true"]{border-color:var(--blue);background:#eef6ff}.vendor-history-menu{position:absolute;z-index:20;top:44px;right:0;width:max(100%,220px);max-height:190px;overflow:auto;border:1px solid #9fb3c7;border-radius:4px;background:#fff;box-shadow:0 8px 20px rgba(16,37,61,.16);padding:4px}.vendor-history-menu button{width:100%;min-height:34px;border:0;background:#fff;color:var(--ink);padding:7px 9px;text-align:left;font-size:12px;border-radius:3px;cursor:pointer}.vendor-history-menu button:hover,.vendor-history-menu button[aria-selected="true"]{background:#eaf4ff;color:var(--blue);font-weight:700}
.vendor-history-empty{margin:0;padding:9px;color:var(--muted);font-size:11px}.gantt-group-add-vendor{display:grid;gap:4px}.gantt-group-add-vendor>label{color:var(--muted);font-size:9px;font-weight:750}.gantt-vendor-picker .vendor-history-button{height:32px;font-size:10px}.gantt-vendor-picker .vendor-history-menu{top:36px}
.inspector-vendor-picker{width:100%}.inspector-vendor-picker .vendor-history-menu{left:0;right:auto;width:100%}
.project-form-page .page-actions .button{min-height:40px;min-width:116px}.project-form-page .page-actions .button--primary{min-width:132px}.project-form-bottom-actions{display:flex;justify-content:flex-end;gap:10px;padding:2px 0 28px}.project-form-bottom-actions .button{min-height:40px;min-width:116px}.project-form-bottom-actions .button--primary{min-width:132px}
.gantt-page .page-header{margin-bottom:10px}.gantt-meta{background:white;border:1px solid var(--border);padding:10px 13px;display:flex;align-items:center;gap:28px;font-size:12px;margin-bottom:10px}.gantt-save-state{color:#1f6a45;font-weight:700}.gantt-save-state::before{content:'●';font-size:8px;margin-right:6px}.gantt-save-state--dirty{color:#a85d00}.gantt-help{margin-left:auto;color:var(--muted);display:flex;align-items:center;gap:4px}.gantt-frame{display:flex;background:white;border:1px solid var(--border);min-height:590px;overflow:visible}.gantt-table{flex:1;display:grid;grid-template-columns:430px minmax(660px,1fr);align-content:start;overflow:auto}.gantt-head{height:62px;background:#f7f9fb;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:4}.gantt-info-head{display:grid;grid-template-columns:2fr 1.2fr .8fr}.gantt-info-head span,.gantt-weeks span{display:grid;place-items:center;border-right:1px solid var(--border);font-size:11px;font-weight:700;color:#526273}.gantt-weeks{display:grid;grid-template-columns:repeat(14,minmax(58px,1fr))}.gantt-weeks .current-week{background:#1764c0;color:white}.gantt-row{display:contents}.gantt-info{height:68px;border:0;border-bottom:1px solid var(--border);background:white;display:grid;grid-template-columns:2fr 1.2fr .8fr;text-align:left;padding:0;cursor:pointer}.gantt-info>span{border-right:1px solid var(--border);padding:10px;display:flex;flex-direction:column;justify-content:center;font-size:11px;gap:4px}.gantt-info b{font-size:12px}.gantt-info small{font-size:9px}.gantt-info i{height:5px;background:#e1e7ed;overflow:hidden}.gantt-info em{display:block;height:100%;background:var(--blue)}.gantt-track{height:68px;border-bottom:1px solid var(--border);position:relative;display:grid;grid-template-columns:repeat(14,minmax(58px,1fr))}.gantt-track>div{border-right:1px solid #e7edf2;background-image:linear-gradient(90deg,transparent 49%,#f1f4f7 50%,transparent 51%)}.gantt-track .current-column{background-color:#f1f7ff;border-left:1px solid #4b97ee}.gantt-row--selected .gantt-info,.gantt-row--selected .gantt-track{background-color:#edf5ff}.gantt-bar{position:absolute;left:calc(var(--start) * (100% / 14) + 7px);width:calc(var(--duration) * (100% / 14) - 14px);height:20px;top:24px;border:0;border-radius:3px;background:#1764c0;padding:0;overflow:hidden;cursor:grab;box-shadow:0 1px 2px rgba(10,42,74,.18)}.gantt-bar:active{cursor:grabbing}.gantt-bar>span{display:block;height:100%;background:#0d4e99}.gantt-bar--delay{background:#ffe8e8;border:2px solid var(--red)}.gantt-bar--delay>span{background:var(--red)}.gantt-inspector{position:sticky;top:68px;align-self:flex-start;width:340px;max-height:calc(100vh - 84px);overflow-y:auto;flex:0 0 340px;z-index:6;border-left:1px solid var(--border);border-bottom:1px solid var(--border);padding:15px;background:#fff;box-shadow:-4px 6px 14px rgba(16,37,61,.08)}.inspector-title{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border);padding-bottom:12px}.inspector-title span{font-size:10px;color:var(--muted)}.inspector-title h2{font-size:18px;margin:4px 0 0}.inspector-editor{border-bottom:1px solid var(--border);padding:14px 2px 12px;display:grid;gap:11px}.inspector-editor>label,.inspector-date-fields label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.inspector-date-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:6px}.inspector-date-fields>span{padding-bottom:8px;color:var(--muted)}.inspector-editor p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.inspector-editor p strong{color:var(--blue)}.inspector-list{margin:0}.inspector-list>div{padding:13px 2px;border-bottom:1px solid var(--border)}.inspector-list dt{font-size:10px;color:var(--muted);margin-bottom:5px}.inspector-list dd{margin:0;font-size:12px;font-weight:650}.inspector-list a{color:var(--blue)}.inspector-alert{display:flex;gap:9px;background:var(--amber-bg);color:var(--amber);padding:10px;margin-top:12px;font-size:11px}.inspector-alert div{display:grid;gap:3px}.inspector-alert span{color:#6c5b46}.inspector-alert--red{background:var(--red-bg);color:var(--red)}.inspector-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}.inspector-delete{grid-column:1/-1}
.gantt-dependency{position:absolute;z-index:2;pointer-events:none;top:34px;left:calc(var(--from) * (100% / 14) - 7px);width:calc(var(--gap) * (100% / 14) + 14px);height:35px;border-top:2px solid #7f92a6;border-right:2px solid #7f92a6}.gantt-dependency:after{content:"";position:absolute;right:-4px;bottom:-1px;width:6px;height:6px;border-right:2px solid #7f92a6;border-bottom:2px solid #7f92a6;transform:rotate(45deg)}
.gantt-duration-controls{min-height:49px;background:#f7fbff;border:1px solid #a9c6e3;border-bottom:0;display:none;align-items:center;justify-content:space-between;gap:14px;padding:7px 12px}.gantt-duration-selection{display:flex;align-items:center;gap:10px;min-width:0}.gantt-duration-selection small{color:var(--blue);font-size:10px;font-weight:700;white-space:nowrap}.gantt-duration-selection strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-duration-selection em{font-style:normal;font-size:11px;color:var(--muted);white-space:nowrap}.gantt-date-fields{display:flex;align-items:end;gap:6px}.gantt-date-fields label{display:grid;gap:3px;color:var(--muted);font-size:9px;font-weight:700}.gantt-date-fields input{height:31px;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 6px;font-size:10px}.gantt-date-fields>span{padding-bottom:8px;color:var(--muted)}.gantt-duration-actions{display:flex;gap:7px}.gantt-duration-actions .button{min-width:76px}.gantt-duration-actions .button:disabled{cursor:not-allowed;color:#9aa8b5;border-color:#ccd5de;background:#f3f5f7}
.gantt-calendar-head{display:grid;grid-template-rows:25px 37px;overflow:hidden}.gantt-month-row,.gantt-day-row{display:grid;grid-template-columns:repeat(var(--calendar-days),44px);width:var(--calendar-width)}.gantt-month-row span{display:flex;align-items:center;justify-content:flex-start;padding-left:8px;border-right:1px solid #b8c8d8;border-bottom:1px solid var(--border);font-size:11px;font-weight:700;color:#40576d;background:#eef3f7}.gantt-day-row span{display:grid;grid-template-rows:auto auto;place-items:center;align-content:center;border-right:1px solid var(--border);font-size:10px;color:#526273;line-height:1.05}.gantt-day-row b{font-size:10px;white-space:nowrap}.gantt-day-row small{font-size:8px;font-weight:600;margin-top:2px}.gantt-day-row .weekend{background:#f5f7f9}.gantt-day-row .current-day{background:#1764c0;color:white}.gantt-track,.gantt-group-track{grid-template-columns:repeat(var(--calendar-days),44px);width:var(--calendar-width)}.gantt-track>div{background-image:none}.gantt-track>div.weekend{background-color:#f7f9fb}.gantt-group-track>div.weekend{background:#f3f6f8}.gantt-track .current-column,.gantt-group-track .current-column{background:#e8f2ff;border-left:1px solid #4b97ee}.gantt-bar{left:calc(var(--start) * 44px + 4px);width:calc(var(--duration) * 44px - 8px)}.gantt-group-bar{left:calc(var(--start) * 44px + 4px);width:calc(var(--duration) * 44px - 8px)}.gantt-dependency{left:calc(var(--from) * 44px - 4px);width:calc(var(--gap) * 44px + 8px)}
.gantt-group-row{display:contents}
.gantt-group-info{height:56px;border:0;border-bottom:1px solid #b9cadc;background:#f4f8fb;display:grid;grid-template-columns:2fr 1.2fr .8fr;text-align:left;padding:0;cursor:pointer}
.gantt-group-info>span{min-width:0;border-right:1px solid var(--border);padding:8px 10px;display:flex;align-items:center;gap:6px;font-size:11px}
.gantt-group-info>span:last-child{flex-direction:column;align-items:stretch;justify-content:center;gap:4px}
.gantt-group-name svg{flex:0 0 auto}
.gantt-group-name>i{width:10px;height:10px;border-radius:2px;flex:0 0 auto}
.gantt-group-name>b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-group-name>small{margin-left:auto;color:var(--muted);font-size:9px;white-space:nowrap}
.gantt-group-track{height:56px;border-bottom:1px solid #b9cadc;position:relative;display:grid;background:#f7fafc}
.gantt-group-track>div{border-right:1px solid #e1e8ef}
.gantt-group-summary-bar{position:absolute;z-index:2;top:19px;left:calc(var(--start) * 44px + 4px);width:calc(var(--duration) * 44px - 8px);height:18px;border:0;border-radius:3px;background:var(--group-color);background:color-mix(in srgb,var(--group-color) 72%,white);padding:0;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px rgba(10,42,74,.16)}
.gantt-group-summary-bar:hover,.gantt-group-summary-bar:focus-visible{outline:2px solid var(--group-color);outline-color:color-mix(in srgb,var(--group-color) 72%,#10253d);outline-offset:1px}
.gantt-group-summary-bar>span{display:block;height:100%;background:var(--group-color)}
.gantt-group-add-action,.gantt-group-add-form-row{display:contents}.gantt-group-add-info{position:sticky;left:0;z-index:3;height:42px;border-bottom:1px solid var(--border);background:#fff;box-shadow:2px 0 5px rgba(16,37,61,.08);padding:5px 10px}.gantt-group-add-info button{width:100%;height:31px;border:1px dashed #8eabc6;border-radius:3px;background:#f8fbfe;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;font-weight:750;cursor:pointer}.gantt-group-add-info button:hover{border-style:solid;background:#eef6ff}.gantt-group-add-track{height:42px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(var(--calendar-days),44px);width:var(--calendar-width);background:#fff}.gantt-group-add-track>i{border-right:1px solid #edf1f5}.gantt-group-add-track>i.sunday{background:#fff7f7}.gantt-group-add-track>i.holiday{background:#fffbef}.gantt-group-add-track>i.current-column{background:#edf6ff;border-left:1px solid #4b97ee}.gantt-group-add-form{position:sticky;left:0;z-index:5;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end;width:430px;border-bottom:1px solid #8eabc6;border-left:4px solid var(--blue);background:#f5f9fe;padding:10px 11px;box-shadow:2px 4px 10px rgba(17,59,100,.09)}.gantt-group-add-form-track{height:224px;border-bottom:1px solid #8eabc6;display:grid;grid-template-columns:repeat(var(--calendar-days),44px);width:var(--calendar-width);background:#f9fbfd}.gantt-group-add-form-track>i{border-right:1px solid #edf1f5}.gantt-group-add-form-track>i.sunday{background:#fff7f7}.gantt-group-add-form-track>i.holiday{background:#fffbef}.gantt-group-add-form-track>i.current-column{background:#edf6ff;border-left:1px solid #4b97ee}.gantt-group-add-heading{grid-column:1/-1;display:grid;gap:3px}.gantt-group-add-heading>span{display:flex;align-items:center;gap:6px}.gantt-group-add-heading i{width:10px;height:10px;border-radius:2px}.gantt-group-add-heading strong{font-size:12px}.gantt-group-add-heading small{color:var(--muted);font-size:9px}.gantt-group-add-form label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:750}.gantt-group-add-form .gantt-group-add-wide{grid-column:1/-1}.gantt-group-add-form input{width:100%;height:32px;border:1px solid #b8c6d4;border-radius:3px;background:#fff;padding:0 8px;color:var(--ink);font-size:10px}.gantt-group-add-buttons{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px}.gantt-group-add-buttons .button{height:33px;justify-content:center;white-space:nowrap}
.group-progress,.gantt-group-info>span:last-child>i{height:5px;background:#dfe7ee;overflow:hidden}
.group-progress>em,.gantt-group-info>span:last-child>i>em{display:block;height:100%}
.gantt-info--child>span:first-child{display:grid;grid-template-columns:16px minmax(0,1fr);align-content:center;column-gap:5px;padding-left:22px}
.gantt-info--child>span:first-child>svg{grid-column:1;grid-row:1 / span 2;color:#526273}
.gantt-info--child>span:first-child>b,.gantt-info--child>span:first-child>small{grid-column:2}
.gantt-controls{min-height:48px;margin:12px 0;padding:7px 10px;border:1px solid var(--border);background:#fff;display:flex;align-items:center;gap:10px}
.gantt-controls label{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#40566b;white-space:nowrap}
.gantt-controls select{height:34px;min-width:180px;border:1px solid #aebdcb;border-radius:3px;background:#fff;padding:0 28px 0 9px;color:var(--ink);font-size:11px}
.gantt-controls>span{margin-left:auto;color:var(--muted);font-size:9px}
.gantt-page--site{padding-bottom:76px}
.gantt-save-dock{position:fixed;right:22px;bottom:18px;z-index:16;display:flex;align-items:center;gap:12px;padding:8px 9px 8px 14px;border:1px solid #9db7d1;border-radius:6px;background:rgba(255,255,255,.97);box-shadow:0 8px 24px rgba(16,37,61,.2);backdrop-filter:blur(6px)}
.gantt-save-dock>span{font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap}
.gantt-save-dock>span.is-dirty{color:#a85d00}
.gantt-save-dock .button{min-width:142px;min-height:40px;justify-content:center}
@media (max-width:760px){.gantt-page--site{padding-bottom:84px}.gantt-save-dock{left:14px;right:14px;bottom:12px;padding:8px 9px}.gantt-save-dock>span{display:none}.gantt-save-dock .button{width:100%;min-height:44px}}
.material-notice,.nas-warning{display:flex;align-items:flex-start;gap:10px;background:#fff9ed;border:1px solid #efc98c;color:var(--amber);padding:11px 13px;margin-bottom:14px;border-radius:4px}.material-notice div,.nas-warning div{display:grid;gap:3px}.material-notice span,.nas-warning span{color:#5c6670;font-size:11px}.master-detail{display:grid;grid-template-columns:minmax(600px,1fr) 330px;gap:14px}.detail-drawer{background:white;border:1px solid var(--border);border-radius:4px;padding:17px}.drawer-head{border-bottom:1px solid var(--border);padding-bottom:12px}.drawer-head>span{font-size:10px;color:var(--muted)}.drawer-head h2{font-size:18px;margin:5px 0}.drawer-head p{margin:0;font-size:12px;color:var(--muted)}.detail-list{margin:0}.detail-list>div{padding:10px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:15px}.detail-list dt{font-size:11px;color:var(--muted)}.detail-list dd{margin:0;font-size:12px;font-weight:650;text-align:right}.flow-list{display:grid;grid-template-columns:repeat(5,1fr);margin:18px 0 12px}.flow-list>div{position:relative;display:grid;justify-items:center;gap:5px;color:#a7b1bc;font-size:9px;text-align:center}.flow-list>div:before{content:"";position:absolute;height:2px;background:#d7dfe7;left:-50%;right:50%;top:8px}.flow-list>div:first-child:before{display:none}.flow-list svg{width:17px;height:17px;background:white;z-index:1}.flow-list .done,.flow-list .current{color:var(--blue)}.confirm-box{background:#f6f9fc;padding:8px 11px;display:grid;gap:8px}.confirm-box label{font-size:11px;display:flex;gap:7px;align-items:center}
.completion-layout{display:grid;grid-template-columns:390px minmax(550px,1fr);gap:14px}.completion-projects{align-self:start}.completion-project{width:100%;border:0;border-top:1px solid var(--border);background:white;padding:13px 4px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;text-align:left;cursor:pointer}.completion-project.active{background:#f0f6fd;margin:0 -8px;padding-left:12px;padding-right:12px;width:calc(100% + 16px)}.completion-project>div{display:grid;gap:4px}.completion-project strong{font-size:12px}.completion-project span{font-size:10px;color:var(--muted)}.completion-work{padding:20px}.completion-title{display:flex;justify-content:space-between;align-items:flex-start}.completion-title>div{display:grid;gap:3px}.completion-title span{font-size:10px;color:var(--muted)}.completion-title h2{margin:0;font-size:20px}.stage-stepper{display:grid;grid-template-columns:repeat(6,1fr);margin:26px 0}.stage-stepper>div{display:grid;justify-items:center;gap:6px;position:relative;font-size:9px;color:#83909d;text-align:center}.stage-stepper>div:before{content:"";position:absolute;left:-50%;right:50%;top:12px;height:2px;background:#d3dbe3}.stage-stepper>div:first-child:before{display:none}.stage-stepper i{width:25px;height:25px;border-radius:50%;background:#e5eaf0;display:grid;place-items:center;font-style:normal;z-index:1}.stage-stepper .done i{background:var(--blue);color:white}.stage-stepper .active i{background:white;border:2px solid var(--blue);color:var(--blue)}.stage-stepper .done:before,.stage-stepper .active:before{background:var(--blue)}.next-task{border-left:4px solid var(--blue);background:#f3f8fe;padding:15px;margin-bottom:18px}.next-task>span{font-size:10px;color:var(--blue)}.next-task h3{font-size:16px;margin:5px 0}.next-task p{margin:0;font-size:11px;color:var(--muted)}.completion-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}.completion-form label,.expense-form>label,.form-row label{display:grid;gap:6px;font-size:11px;font-weight:650}.completion-form .wide{grid-column:1/-1}.completion-form input,.completion-form select,.completion-form textarea,.expense-form select,.expense-form input{width:100%;border:1px solid var(--border);border-radius:3px;padding:9px;background:white;color:var(--ink)}.completion-form textarea{min-height:78px;resize:vertical}.completion-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}
.completion-scope-note{margin:-4px 0 14px;border:1px solid #9dbddd;background:#f3f8fe;padding:10px 13px;display:flex;align-items:center;gap:12px}.completion-scope-note strong{font-size:11px;color:var(--blue);white-space:nowrap}.completion-scope-note span{font-size:10px;color:var(--muted)}.completion-title small{font-size:9px;color:var(--muted)}.completion-empty{padding:22px;color:var(--muted);font-size:11px;text-align:center}.completion-manager-finished{margin-top:15px;border:1px solid #a8d0b6;background:var(--green-bg);color:var(--green);padding:13px;display:flex;align-items:center;gap:10px}.completion-manager-finished.pending{border-color:#e4b0b5;background:#fff6f7;color:var(--red)}.completion-manager-finished div{display:grid;gap:3px}.completion-manager-finished strong{font-size:12px}.completion-manager-finished span{font-size:9px;color:#4f6f5d}.completion-manager-finished.pending span{color:#8c4e55}.completion-history-toggle{display:flex;justify-content:flex-start;margin-top:12px}.completion-history{margin-top:12px;border:1px solid var(--border);background:#fbfcfd}.completion-history header{min-height:42px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 12px}.completion-history header strong{font-size:11px}.completion-history header span{font-size:9px;color:var(--muted)}.completion-history>p{margin:0;padding:16px;text-align:center;color:var(--muted);font-size:10px}.completion-history article{padding:10px 12px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;gap:4px 10px}.completion-history article:last-child{border-bottom:0}.completion-history article>div{display:grid;gap:2px}.completion-history article strong{font-size:10px}.completion-history article span,.completion-history time{font-size:8px;color:var(--muted)}.completion-history article p{grid-column:1/-1;margin:2px 0 0;font-size:9px;color:var(--ink)}
.photo-overview{background:white;border:1px solid var(--border);display:flex;align-items:center;margin-bottom:14px}.photo-overview>div{padding:14px 22px;display:flex;align-items:baseline;gap:7px;border-right:1px solid var(--border)}.photo-overview strong{font-size:25px;color:var(--blue)}.photo-overview .missing strong{color:var(--red)}.photo-overview span{font-size:11px;color:var(--muted)}.photo-overview p{margin:0 18px;font-size:12px;font-weight:650}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.photo-item{border:1px solid var(--border);background:white;border-radius:4px;min-height:124px;display:grid;justify-items:center;align-content:center;gap:6px;cursor:pointer}.photo-item div{width:45px;height:45px;background:#f1f4f7;color:#83909d;display:grid;place-items:center;border-radius:50%}.photo-item strong{font-size:12px}.photo-item span{font-size:10px;color:var(--red)}.photo-item.done{background:#f8fbfe}.photo-item.done div{background:#ddecfb;color:var(--blue)}.photo-item.done span{color:var(--green)}.file-button input,.upload-box input{display:none}
.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.attendance-summary>div{background:white;border:1px solid var(--border);padding:15px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px}.attendance-summary strong{font-size:22px}.attendance-summary span{font-size:11px;color:var(--muted)}.attendance-layout,.expense-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.worker-checks{border:1px solid var(--border)}.worker-checks label{display:grid;grid-template-columns:auto 1fr auto;gap:9px;padding:11px;border-bottom:1px solid var(--border);font-size:12px}.worker-checks label:last-child{border-bottom:0}.worker-checks small{color:var(--muted)}.attendance-actions{display:flex;gap:9px;margin-top:14px}.entry-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.worker-avatar{width:33px;height:33px;border-radius:50%;background:#e4eef8;display:grid;place-items:center;color:var(--navy);font-weight:700}.entry-list div>div{display:grid;gap:3px}.entry-list strong{font-size:12px}.entry-list div>div span{font-size:10px;color:var(--muted)}.entry-list time{font-size:11px;color:var(--muted)}
.expense-form{display:grid;gap:12px;align-content:start}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.upload-box{border:1px dashed #9eb1c3!important;background:#f7fafd;min-height:130px;display:grid!important;place-items:center;align-content:center;gap:5px!important;cursor:pointer}.upload-box span{font-size:10px;color:var(--muted);font-weight:400}.expense-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border)}.expense-list span:not(.status-tag){display:grid;gap:3px;font-size:11px;color:var(--muted)}.expense-list b{font-size:12px;color:var(--ink)}
.toast{position:fixed;right:24px;bottom:24px;z-index:60;max-width:min(560px,calc(100vw - 48px));background:#102d4b;color:white;padding:12px 16px;border-radius:4px;font-size:12px;line-height:1.6;box-shadow:0 8px 24px rgba(7,30,56,.24);animation:toast-in .18s ease-out}.toast--success{background:#14633e;border-left:5px solid #8ee0b5}.toast--error{background:#8c2430;border-left:5px solid #ffc1c7}@keyframes toast-in{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.nav-scrim{display:none}
@media (max-width: 1120px){.dashboard-grid{grid-template-columns:1fr}.project-layout{grid-template-columns:1fr}.master-detail{grid-template-columns:1fr}.detail-drawer{display:none}.gantt-inspector{display:none}.gantt-duration-controls{display:flex}.gantt-table{grid-template-columns:390px minmax(660px,1fr)}.completion-layout{grid-template-columns:320px 1fr}.photo-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width: 1120px){.project-fields{grid-template-columns:repeat(2,minmax(180px,1fr))}.schedule-preview{grid-template-columns:150px 1fr}.schedule-merge-cue{grid-column:1/-1}.schedule-merge-cue svg{transform:rotate(90deg)}.schedule-result{grid-column:1/-1}.work-editor-head,.work-editor-row{grid-template-columns:36px 50px minmax(150px,1fr) minmax(140px,1fr) minmax(170px,1fr) 36px}}
@media (max-width: 760px){.sidebar{position:fixed;left:-220px;transition:left .2s}.sidebar--open{left:0}.nav-scrim{display:block;position:fixed;inset:0;border:0;background:rgba(3,20,38,.45);z-index:19}.mobile-menu{display:grid;place-items:center;border:0;background:transparent;margin-right:10px}.mobile-close{display:grid;place-items:center;margin-left:auto;border:0;background:transparent;color:white}.page-content{padding:18px 14px 32px}.topbar{padding:0 13px}.company-name{display:none}.user-label,.user-menu-copy small,.dev-role-badge{display:none}.dev-role-menu{position:fixed;top:64px;left:10px;right:10px;width:auto;max-height:calc(100dvh - 76px)}.user-menu--switchable{gap:4px;padding-left:2px}.page-header{display:block}.page-actions{margin-top:12px;overflow-x:auto;justify-content:flex-start}.page-header h1{font-size:21px}.dashboard-grid{display:block}.dashboard-grid>.panel{margin-bottom:12px}.task-row{grid-template-columns:55px 1fr auto}.task-project{display:none}.task-title{grid-column:2}.task-row .button{display:none}.site-counts{grid-template-columns:1fr}.completion-mini{grid-template-columns:1fr auto}.mini-steps{display:none}.project-summary{grid-template-columns:1fr 1fr}.project-summary dl:nth-child(2){border-right:0}.project-summary dl{border-bottom:1px solid var(--border)}.project-layout{display:block}.project-main,.project-side{display:block}.project-main>.panel,.project-side>.panel{margin-bottom:12px}.check-list{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-wrap:wrap}.search-field{min-width:100%}.gantt-frame{overflow:auto}.gantt-table{grid-template-columns:360px 780px}.gantt-meta{overflow-x:auto;white-space:nowrap}.gantt-help{display:none}.completion-layout,.attendance-layout,.expense-layout{display:block}.completion-projects{margin-bottom:12px}.stage-stepper{overflow-x:auto;grid-template-columns:repeat(6,90px);padding-bottom:8px}.completion-form{grid-template-columns:1fr}.completion-form .wide{grid-column:auto}.photo-grid{grid-template-columns:repeat(2,1fr)}.attendance-summary{grid-template-columns:1fr}.attendance-layout>.panel,.expense-layout>.panel{margin-bottom:12px}.user-menu{padding-left:0}.data-table{min-width:780px}.toast{left:14px;right:14px;bottom:14px}.photo-overview{overflow-x:auto}.photo-overview p{white-space:nowrap}}
@media (max-width: 760px){.gantt-controls{overflow-x:auto;white-space:nowrap}.gantt-controls>span{display:none}.gantt-controls label{flex:0 0 auto}.gantt-controls select{min-width:130px}.gantt-frame{min-height:540px}}
@media (max-width:760px){.gantt-duration-controls{align-items:stretch;flex-wrap:wrap;padding:8px 10px}.gantt-duration-selection{flex:1 1 100%;justify-content:space-between}.gantt-date-fields{flex:1 1 100%;justify-content:space-between}.gantt-date-fields label{flex:1}.gantt-date-fields input{width:100%}.gantt-duration-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.gantt-duration-actions .button{width:100%;min-height:34px}}
@media (max-width: 760px){.project-form-page .page-actions .button{min-width:auto}.project-fields{grid-template-columns:1fr}.form-section{padding:0 13px 15px}.form-section-heading--inline{display:block;padding:13px 0}.form-section-heading p{margin-top:5px;line-height:1.6}.work-editor-head{display:none}.work-editor{display:grid;gap:10px}.work-editor-row{grid-template-columns:34px 42px 1fr 34px;gap:8px;border:1px solid var(--border);padding:10px}.work-editor-row>select:nth-of-type(1),.work-editor-row>select:nth-of-type(2),.work-editor-row>.vendor-picker{grid-column:3/5}.work-editor-row .delete-work{grid-column:4;grid-row:1}.schedule-preview{display:block}.schedule-preview .schedule-items{margin:16px 0}.schedule-merge-cue{margin:12px 0}.schedule-result{margin-top:0}.project-work-summary>div{grid-template-columns:12px 1fr auto}.project-work-summary>div span:last-child{grid-column:2/-1}.project-table{min-width:980px}}
.gantt-table{--gantt-info-width:430px;min-width:0;scroll-padding-left:var(--gantt-info-width);scroll-snap-type:x proximity;overscroll-behavior-x:contain}.gantt-info-head{left:0;z-index:8;box-shadow:2px 0 5px rgba(16,37,61,.08)}.gantt-info,.gantt-group-info{position:sticky;left:0;z-index:3;box-shadow:2px 0 5px rgba(16,37,61,.08)}.gantt-day-row span{scroll-snap-align:start}.gantt-calendar-head,.gantt-track,.gantt-group-track{padding-right:32px;background-clip:content-box}
.gantt-calendar-head{overflow:visible}.gantt-month-row span>b{position:sticky;left:calc(var(--gantt-info-width) + 8px);z-index:2;white-space:nowrap}
@media (max-width:1120px){.gantt-table{--gantt-info-width:390px}}
@media (max-width:760px){.gantt-frame{overflow:hidden}.gantt-table{--gantt-info-width:360px;min-width:0}}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* System administration and data analysis */
.admin-page{display:grid;gap:12px;width:100%;min-width:0}.admin-page>*{min-width:0;max-width:100%}.admin-page>.page-header{margin-bottom:0}.admin-tabs{width:100%;min-width:0;height:42px;border-bottom:1px solid var(--border);display:flex;align-items:flex-end;gap:8px;overflow-x:auto}.admin-tabs button{height:41px;min-width:108px;border:0;border-bottom:3px solid transparent;background:transparent;color:#40566b;padding:0 14px;font-size:12px;font-weight:750;cursor:pointer}.admin-tabs button:hover{color:var(--blue);background:#f7fbff}.admin-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}
.master-settings-page{display:grid;gap:12px}.master-settings-panel{overflow:hidden}.master-settings-heading{min-height:66px;padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px}.master-settings-heading>svg{color:var(--blue)}.master-settings-heading h2{margin:0 0 3px;font-size:16px}.master-settings-heading p{margin:0;color:var(--muted);font-size:10px}.master-setting-card{width:calc(100% - 28px);margin:14px;min-height:92px;padding:14px 16px;border:1px solid #b9cde2;border-radius:6px;background:#fff;display:grid;grid-template-columns:50px minmax(260px,1fr) auto 62px;align-items:center;gap:13px;text-align:left;color:var(--ink);cursor:pointer}.master-setting-card:hover{border-color:var(--blue);background:#f6faff;box-shadow:0 2px 8px #0d63b312}.master-setting-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}.master-setting-copy{display:grid;gap:5px}.master-setting-copy strong{font-size:15px}.master-setting-copy small{color:var(--muted);font-size:10px;line-height:1.6}.master-setting-roles{display:flex;align-items:center;gap:5px;padding:7px 9px;border-radius:999px;background:#edf7f2;color:#1b7654;font-size:9px;font-weight:700;white-space:nowrap}.master-setting-open{display:flex;align-items:center;justify-content:flex-end;gap:3px;color:var(--blue);font-size:11px;font-weight:800}.master-settings-note{margin:0;padding:0 16px 15px;color:var(--muted);font-size:10px}.photo-master-access-denied{min-height:220px;display:grid;place-content:center;justify-items:center;gap:8px;color:var(--muted);text-align:center}.photo-master-access-denied svg{color:var(--blue)}.photo-master-access-denied strong{color:var(--ink);font-size:15px}.photo-master-access-denied span{font-size:11px}
.admin-kpis{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--border);background:#fff;border-radius:var(--radius)}.admin-kpis>div{min-height:84px;padding:12px 16px;border-right:1px solid var(--border);display:flex;align-items:center;gap:13px}.admin-kpis>div:last-child{border-right:0}.admin-kpis svg{width:27px;height:27px;color:var(--blue);stroke-width:1.7}.admin-kpis>div.attention svg{color:var(--amber)}.admin-kpis>div.healthy svg{color:var(--green)}.admin-kpis>div>span{display:grid;gap:3px;color:#4d6074;font-size:11px;font-weight:700}.admin-kpis strong{display:block;color:var(--navy);font-size:27px;line-height:1}.admin-kpis small{margin-left:4px;color:var(--muted);font-size:10px}
.admin-overview-grid{display:grid;grid-template-columns:minmax(560px,1.55fr) minmax(390px,1fr);gap:12px}.admin-overview-grid>.panel{padding:12px}.admin-section-heading{min-height:28px;display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}.admin-section-heading>div{display:flex;align-items:baseline;gap:8px}.admin-section-heading h2{margin:0;color:#102b4b;font-size:14px}.admin-section-heading span{color:var(--muted);font-size:9px}.admin-checked-at{margin-left:auto}
.admin-issue-list{border:1px solid var(--border)}.admin-issue-list>button{width:100%;min-height:42px;border:0;border-bottom:1px solid var(--border);background:#fff;padding:5px 7px;display:grid;grid-template-columns:25px minmax(190px,1fr) 80px 88px 42px;gap:8px;align-items:center;text-align:left;cursor:pointer}.admin-issue-list>button:last-child{border-bottom:0}.admin-issue-list>button:hover{background:#f5f9fe}.admin-issue-list>button>span:nth-child(2){display:grid;gap:2px;min-width:0}.admin-issue-list strong{font-size:10px}.admin-issue-list small{color:var(--muted);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-issue-list>button>span:nth-child(3){color:#4e6174;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-issue-list b{color:var(--red);font-size:9px;text-align:right}.admin-issue-list em{height:25px;border:1px solid #9cbce0;border-radius:3px;color:var(--blue);display:grid;place-items:center;font-size:9px;font-style:normal;font-weight:750}.admin-severity{width:22px;height:22px;border-radius:3px;display:grid;place-items:center;color:#fff;font-size:8px;font-weight:800}.admin-severity--high{background:var(--red)}.admin-severity--medium{background:var(--amber)}.admin-severity--low{background:var(--blue)}.admin-empty-inline{min-height:86px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:10px}.admin-empty-inline svg{color:var(--green)}
.admin-health-head,.admin-health-row{display:grid;grid-template-columns:minmax(100px,1fr) 42px 42px 42px minmax(130px,1.2fr);gap:5px;align-items:center}.admin-health-head{height:27px;border-bottom:1px solid var(--border);background:#f7f9fb;padding:0 6px;color:#526273;font-size:8px;font-weight:750}.admin-health-row{min-height:31px;border-bottom:1px solid #e8edf2;padding:3px 6px;font-size:9px}.admin-health-row strong{font-size:9px}.admin-health-row>span{text-align:center;color:var(--blue);font-weight:750}.admin-health-row>i{height:8px;display:flex;border-radius:6px;overflow:hidden;background:#e8edf2}.admin-health-row>i b:nth-child(1){background:var(--blue)}.admin-health-row>i b:nth-child(2){background:#df7c11}.admin-health-row>i b:nth-child(3){background:#2d9b5f}.admin-health footer{min-height:28px;display:flex;align-items:flex-end;justify-content:flex-end;gap:13px;color:var(--muted);font-size:8px}.admin-health footer span{display:flex;align-items:center;gap:4px}.admin-health footer i{width:8px;height:8px;background:var(--blue)}.admin-health footer span:nth-child(2) i{background:#df7c11}.admin-health footer span:nth-child(3) i{background:#2d9b5f}.text-green{color:var(--green)!important}
.admin-chart-legend{height:22px;display:flex;justify-content:flex-end;gap:13px;color:var(--muted);font-size:8px}.admin-chart-legend span{display:flex;align-items:center;gap:4px}.admin-chart-legend i{width:9px;height:9px;background:var(--blue)}.admin-chart-legend span:nth-child(2) i{background:var(--green)}.admin-bar-chart{height:154px;border-left:1px solid #b9c7d5;border-bottom:1px solid #b9c7d5;background:repeating-linear-gradient(to top,#fff 0,#fff 37px,#e8edf2 38px);display:grid;grid-template-columns:repeat(6,1fr);align-items:end;padding:8px 12px 0}.admin-bar-chart>div{height:100%;display:grid;grid-template-rows:18px 1fr 23px;justify-items:center;align-items:end}.admin-bar-values{display:flex;gap:9px;color:var(--blue);font-size:8px}.admin-bar-values b:nth-child(2){color:var(--green)}.admin-bars{height:100%;display:flex;align-items:end;gap:4px}.admin-bars i{width:19px;min-height:4px;background:var(--blue)}.admin-bars i:nth-child(2){background:var(--green)}.admin-bar-chart small{align-self:center;color:var(--muted);font-size:8px}
.admin-integrity-table{border:1px solid var(--border)}.admin-integrity-table>div{min-height:27px;padding:3px 7px;border-bottom:1px solid #e5ebf0;display:grid;grid-template-columns:minmax(100px,1fr) 62px 72px 95px;align-items:center;gap:6px;font-size:9px}.admin-integrity-table>div:last-child{border-bottom:0}.admin-integrity-table>.head{background:#f7f9fb;color:#526273;font-size:8px;font-weight:750}.admin-integrity-table .status-tag{justify-self:start;min-height:19px;font-size:8px;padding:1px 5px}.admin-integrity-table b{font-size:9px}.admin-integrity-table b small{display:block;color:var(--muted);font-size:7px;font-weight:500}
.admin-audit-preview{padding:12px}.admin-audit-preview .data-table{font-size:9px}.admin-audit-preview .data-table th{padding:6px 8px;font-size:8px}.admin-audit-preview .data-table td{padding:6px 8px}.admin-empty-cell{text-align:center!important;color:var(--muted)!important;padding:26px!important}
.admin-loading,.admin-access-error{min-height:180px;display:grid;place-items:center;align-content:center;gap:10px;color:var(--muted);font-size:12px}.admin-access-error strong{color:var(--ink);font-size:15px}.admin-access-error svg{color:var(--amber)}.admin-spin{animation:admin-spin .9s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}
.admin-management-panel{min-height:420px}.admin-management-header{min-height:65px;padding:12px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.admin-management-header>div{display:flex;align-items:center;gap:10px}.admin-management-header>div>svg{color:var(--blue)}.admin-management-header>div>span{display:grid;gap:2px}.admin-management-header h2{margin:0;font-size:15px}.admin-management-header small{color:var(--muted);font-size:9px}.admin-management-header>.button{margin-left:auto}.admin-management-toolbar{min-height:58px;padding:9px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.admin-management-toolbar .search-field{height:36px;margin:0}.admin-management-toolbar select{height:36px;min-width:130px;border:1px solid var(--border);border-radius:3px;background:#fff;padding:0 9px;color:var(--ink);font-size:11px}.admin-management-toolbar>span{margin-left:auto;color:var(--muted);font-size:10px}.admin-project-table{min-width:990px}.admin-project-table td{padding-top:9px;padding-bottom:9px}.admin-related-counts{font-size:10px;white-space:nowrap}.admin-related-counts small{margin-top:3px}.admin-row-actions{display:flex;align-items:center;gap:6px}.admin-delete-icon{color:#a54449}.admin-delete-icon:hover{background:var(--red-bg);color:var(--red)}.admin-audit-table{min-width:900px}
.admin-readonly-note{margin-left:auto;min-height:30px;padding:0 9px;border:1px solid #b8c6d4;border-radius:3px;background:#f7f9fb;color:#526273;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:750}
.admin-user-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.admin-user-kpis>div{min-height:78px;border:1px solid var(--border);background:#fff;padding:13px 15px;display:flex;align-items:center;gap:12px}.admin-user-kpis svg{color:var(--blue)}.admin-user-kpis span{display:grid;gap:3px;color:var(--muted);font-size:10px}.admin-user-kpis strong{color:var(--navy);font-size:20px}
.admin-dialog-backdrop{position:fixed;z-index:120;inset:0;background:rgba(5,24,44,.52);display:grid;place-items:center;padding:20px}.admin-dialog{width:min(590px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid #8298ae;border-radius:6px;background:#fff;box-shadow:0 18px 52px rgba(4,25,48,.28)}.admin-dialog>header{min-height:70px;padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.admin-dialog>header>div{display:grid;gap:2px}.admin-dialog>header span{color:var(--red);font-size:9px;font-weight:750}.admin-dialog h2{margin:0;font-size:18px}.admin-delete-warning{margin:15px 16px 0;border:1px solid #efa8ac;background:var(--red-bg);color:var(--red);padding:11px 12px;display:flex;gap:10px;align-items:flex-start}.admin-delete-warning div{display:grid;gap:3px}.admin-delete-warning strong{font-size:12px}.admin-delete-warning span{color:#70484d;font-size:10px;line-height:1.5}.admin-delete-target{margin:12px 16px;background:#f7f9fb;border:1px solid var(--border)}.admin-delete-target>div{min-height:48px;padding:8px 10px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center}.admin-delete-target>div:last-child{border-bottom:0}.admin-delete-target dt{color:var(--muted);font-size:10px}.admin-delete-target dd{margin:0;font-size:11px;font-weight:700}.admin-delete-target small{display:block;margin-top:3px;color:var(--muted);font-weight:500}.admin-dialog-field{margin:12px 16px;display:grid;gap:6px;color:#40566b;font-size:11px;font-weight:700}.admin-dialog-field input,.admin-dialog-field textarea{width:100%;border:1px solid #aebdcb;border-radius:3px;background:#fff;padding:9px;color:var(--ink);font-size:12px}.admin-dialog-field textarea{min-height:68px;resize:vertical}.admin-dialog>footer{min-height:66px;padding:12px 16px;border-top:1px solid var(--border);background:#f8fafc;display:flex;justify-content:flex-end;gap:8px}.admin-danger-button{border-color:#b9474d;color:#b12f36}.admin-danger-button:hover{border-color:var(--red);background:var(--red);color:#fff}.admin-danger-button:disabled{border-color:#c9d1d9;background:#eef1f4;color:#8c98a5;cursor:not-allowed}
@media (max-width:1120px){.admin-kpis{grid-template-columns:repeat(3,1fr)}.admin-kpis>div:nth-child(3){border-right:0}.admin-kpis>div:nth-child(-n+3){border-bottom:1px solid var(--border)}.admin-overview-grid{grid-template-columns:1fr}.admin-user-kpis{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.admin-page{gap:10px}.admin-tabs{overflow-x:auto}.admin-tabs button{min-width:98px}.admin-kpis{grid-template-columns:1fr 1fr}.admin-kpis>div{min-height:70px;border-bottom:1px solid var(--border)}.admin-kpis>div:nth-child(odd){border-right:1px solid var(--border)}.admin-kpis>div:nth-child(even){border-right:0}.admin-kpis>div:last-child{grid-column:1/-1;border-bottom:0}.admin-overview-grid{display:block}.admin-overview-grid>.panel{margin-bottom:10px}.admin-issue-list>button{grid-template-columns:24px 1fr 42px}.admin-issue-list>button>span:nth-child(3),.admin-issue-list b{display:none}.admin-health-head,.admin-health-row{grid-template-columns:minmax(90px,1fr) 36px 36px 36px minmax(100px,1.2fr)}.admin-integrity-table>div{grid-template-columns:minmax(72px,1fr) 42px 58px 62px;gap:3px;padding:3px 5px}.admin-user-kpis{grid-template-columns:1fr}.admin-management-header{align-items:flex-start}.admin-management-header>.button{min-width:126px}.admin-management-toolbar{flex-wrap:wrap}.admin-management-toolbar .search-field{min-width:100%}.admin-dialog-backdrop{padding:10px}.admin-delete-target>div{grid-template-columns:1fr}.admin-dialog>footer .button{flex:1}.admin-audit-preview{display:none}.master-setting-card{grid-template-columns:44px 1fr 32px;gap:10px}.master-setting-icon{width:42px;height:42px}.master-setting-copy{min-width:0}.master-setting-copy small{font-size:9px}.master-setting-roles{grid-column:1/-1;justify-self:start}.master-setting-open{grid-column:3;grid-row:1;font-size:0}.master-settings-note{line-height:1.7}}

/* Gantt display zoom */
.gantt-month-row,.gantt-day-row{grid-template-columns:repeat(var(--calendar-days),var(--day-width,44px))}
.gantt-track,.gantt-group-track{grid-template-columns:repeat(var(--calendar-days),var(--day-width,44px))}
.gantt-bar{left:calc(var(--start) * var(--day-width,44px) + 4px);width:calc(var(--duration) * var(--day-width,44px) - 8px)}
.gantt-group-bar{left:calc(var(--start) * var(--day-width,44px) + 4px);width:calc(var(--duration) * var(--day-width,44px) - 8px)}
.gantt-group-summary-bar{left:calc(var(--start) * var(--day-width,44px) + 4px);width:calc(var(--duration) * var(--day-width,44px) - 8px)}
.gantt-dependency{left:calc(var(--from) * var(--day-width,44px) - 4px);width:calc(var(--gap) * var(--day-width,44px) + 8px)}
.gantt-group-add-track,.gantt-group-add-form-track{grid-template-columns:repeat(var(--calendar-days),var(--day-width,44px))}
.gantt-zoom{display:flex;align-items:center;border:1px solid #aebdcb;border-radius:3px;background:#fff;overflow:hidden;flex:0 0 auto}
.gantt-zoom>span{padding:0 8px;color:#40566b;font-size:10px;font-weight:700}
.gantt-zoom button{width:34px;height:34px;border:0;border-left:1px solid #d4dde6;background:#fff;color:var(--blue);display:grid;place-items:center;padding:0;cursor:pointer;font-size:10px;font-weight:750}
.gantt-zoom button:hover:not(:disabled){background:#eef6ff}
.gantt-zoom button:disabled{color:#a9b5c1;background:#f5f7f9;cursor:not-allowed}
.gantt-zoom .gantt-zoom-value{width:48px;color:var(--ink)}
.gantt-view-mode{display:flex;align-items:center;border:1px solid #aebdcb;border-radius:3px;background:#fff;overflow:hidden;flex:0 0 auto}
.gantt-view-mode button{height:34px;border:0;border-right:1px solid #d4dde6;background:#fff;color:#40566b;padding:0 12px;cursor:pointer;font-size:10px;font-weight:750;white-space:nowrap}
.gantt-view-mode button:last-child{border-right:0}.gantt-view-mode button:hover{background:#eef6ff}.gantt-view-mode button.is-active{background:var(--blue);color:#fff}

/* Gantt overview: keep the full project period and more rows in one screen. */
.gantt-page--overview .gantt-frame{min-height:500px}
.gantt-page--overview .gantt-table{--gantt-info-width:var(--gantt-overview-info-width);grid-template-columns:var(--gantt-overview-info-width) minmax(0,1fr)}
.gantt-page--overview .gantt-head{height:40px}
.gantt-page--overview .gantt-calendar-head{grid-template-rows:20px 20px;padding-right:0}
.gantt-page--overview .gantt-month-row span{padding-left:4px;font-size:9px}
.gantt-page--overview .gantt-month-row span>b{position:static}
.gantt-page--overview:not(.gantt-page--single-month) .gantt-day-row b,.gantt-page--overview:not(.gantt-page--single-month) .gantt-day-row small{display:none}
.gantt-page--single-month.gantt-page--overview .gantt-head{height:58px}
.gantt-page--single-month.gantt-page--overview .gantt-calendar-head{grid-template-rows:22px 36px}
.gantt-page--single-month.gantt-page--overview .gantt-month-row span{padding-left:8px;font-size:10px}
.gantt-page--single-month.gantt-page--overview .gantt-day-row b{display:block;font-size:10px;line-height:1}
.gantt-page--single-month.gantt-page--overview .gantt-day-row small{display:block;font-size:8px;line-height:1;margin-top:3px}
.gantt-page--overview .gantt-info-head span{font-size:9px}
.gantt-page--overview .gantt-info{height:34px}
.gantt-page--overview .gantt-info>span{min-width:0;gap:2px;padding:4px 6px;overflow:hidden;font-size:9px;white-space:nowrap}
.gantt-page--overview .gantt-info b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-page--overview .gantt-info small{display:none}
.gantt-page--overview .gantt-info i{height:3px}
.gantt-page--overview .gantt-info--child>span:first-child{grid-template-columns:12px minmax(0,1fr);column-gap:3px;padding-left:7px}
.gantt-page--overview .gantt-info--child>span:first-child>svg{width:12px;height:12px}
.gantt-page--overview .gantt-track{height:34px;padding-right:0}
.gantt-page--overview .gantt-bar{top:10px;left:calc(var(--start) * var(--day-width));width:max(1px,calc(var(--duration) * var(--day-width)));height:14px;border-radius:1px;box-shadow:none}
.gantt-page--overview .gantt-dependency{display:none}
.gantt-page--overview .gantt-group-info,.gantt-page--overview .gantt-group-track{height:30px}
.gantt-page--overview .gantt-group-info>span{min-width:0;gap:3px;padding:4px 6px;overflow:hidden;font-size:9px;white-space:nowrap}
.gantt-page--overview .gantt-group-name>i{width:7px;height:7px}
.gantt-page--overview .gantt-group-name>small{font-size:8px}
.gantt-page--overview .gantt-group-track{padding-right:0}
.gantt-page--overview .gantt-group-summary-bar{top:9px;left:calc(var(--start) * var(--day-width));width:max(1px,calc(var(--duration) * var(--day-width)));height:12px;border-radius:1px;box-shadow:none}
.gantt-page--overview .gantt-group-add-action{display:none}
.gantt-page--overview .gantt-group-add-info,.gantt-page--overview .gantt-group-add-track{height:24px}
.gantt-page--overview .gantt-group-add-info{padding:2px 6px}
.gantt-page--overview .gantt-group-add-info button{height:19px;gap:3px;font-size:8px}
.gantt-page--overview .gantt-group-add-info button svg{width:11px;height:11px}

/* Photo management */
.photo-upload-button{cursor:pointer;justify-content:center}.photo-upload-button input{display:none}
.photo-context-bar{min-height:66px;border:1px solid var(--border);background:white;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 14px;margin-bottom:10px}
.photo-context-selectors{display:flex;align-items:end;gap:12px}.photo-context-selectors label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.photo-context-selectors select{height:36px;min-width:230px;border:1px solid #b9c7d5;border-radius:3px;background:white;color:var(--ink);padding:0 32px 0 10px;font-size:12px}
.photo-context-selectors label:last-child select{min-width:190px}.photo-sync-state{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;color:var(--blue);font-size:10px}.photo-sync-state svg{grid-row:1/3}.photo-sync-state strong{font-size:12px;color:var(--ink)}
.photo-summary-rail{display:grid;grid-template-columns:repeat(2,minmax(130px,180px)) 1fr;border:1px solid var(--border);background:white;margin-bottom:10px}.photo-summary-rail>div{min-height:70px;padding:10px 16px;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center;gap:3px}.photo-summary-rail span{font-size:10px;color:var(--muted)}.photo-summary-rail strong{font-size:22px;color:var(--blue)}.photo-summary-rail strong small{font-size:11px;font-weight:600;color:var(--muted);margin-left:3px}.photo-summary-rail .photo-summary-missing strong{color:var(--red)}.photo-summary-rail .photo-project-total{border-right:0;align-items:flex-end}.photo-summary-rail .photo-project-total strong{font-size:14px;color:var(--ink)}
.photo-notification{min-height:58px;border:1px solid #f1c8ca;border-left:4px solid var(--red);background:var(--red-bg);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:8px 12px;margin-bottom:12px;color:var(--red)}.photo-notification>div{display:grid;gap:2px}.photo-notification strong{font-size:12px}.photo-notification span{font-size:10px;color:#7e5558}.photo-notification .button{background:white;color:var(--ink)}
.photo-manager-layout{display:grid;grid-template-columns:minmax(600px,1fr) 310px;gap:12px;align-items:start}.photo-checklist-panel,.photo-detail-panel{padding:0}.photo-checklist-heading{padding:13px 15px;margin:0;border-bottom:1px solid var(--border)}.photo-checklist-heading label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px;font-weight:700}.photo-checklist-heading select{height:31px;min-width:110px;border:1px solid #bac8d5;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:11px}
.photo-requirement-list>article{display:grid;grid-template-columns:1fr auto;align-items:stretch;border-bottom:1px solid var(--border);background:white}.photo-requirement-list>article:last-child{border-bottom:0}.photo-requirement-list>article.selected{background:#f1f7fe;box-shadow:inset 3px 0 var(--blue)}.photo-requirement-main{min-height:68px;border:0;background:transparent;text-align:left;display:grid;grid-template-columns:38px minmax(210px,1fr) auto 18px;align-items:center;gap:10px;padding:8px 10px 8px 14px;cursor:pointer}.photo-requirement-main>span:nth-child(2){display:grid;gap:4px}.photo-requirement-main strong{font-size:12px}.photo-requirement-main small{font-size:10px;color:var(--muted);line-height:1.4}.photo-status-icon{width:34px;height:34px;border-radius:50%;display:grid;place-items:center}.photo-status-icon--captured{color:var(--green);background:var(--green-bg)}.photo-status-icon--missing{color:var(--red);background:var(--red-bg)}.photo-status-icon--scheduled{color:var(--blue);background:var(--blue-2)}.photo-requirement-action{display:flex;align-items:center;padding:8px 12px;border-left:1px solid #edf1f5}.photo-requirement-action .button{min-width:96px}
.photo-detail-panel{position:sticky;top:70px;overflow:hidden}.photo-detail-heading{padding:15px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;gap:5px;align-items:center}.photo-detail-heading>span{grid-column:1/-1;color:var(--blue);font-size:10px;font-weight:700}.photo-detail-heading h2{font-size:17px;margin:0}.photo-detail-preview{min-height:140px;margin:14px;background:#f4f7fa;border:1px dashed #b8c5d3;display:grid;justify-items:center;align-content:center;gap:6px;padding:16px;text-align:center;color:#8090a0}.photo-detail-preview strong{max-width:250px;font-size:11px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-detail-preview span{font-size:9px;line-height:1.5}.photo-detail-preview--captured{border-style:solid;background:#eef6ff;color:var(--blue)}.photo-detail-list{margin:0 14px}.photo-detail-list>div{display:grid;grid-template-columns:76px 1fr;gap:8px;border-top:1px solid var(--border);padding:9px 0}.photo-detail-list dt{font-size:10px;color:var(--muted)}.photo-detail-list dd{margin:0;font-size:10px;font-weight:650;line-height:1.5;word-break:break-word}.photo-detail-panel>.photo-upload-button{display:flex;margin:14px;width:calc(100% - 28px);min-height:38px}.photo-detail-help{margin:0 14px 14px;color:var(--muted);font-size:9px;text-align:center}
.photo-detail-heading-actions{display:flex;align-items:center;gap:6px}.photo-record-editor{margin:12px;padding:12px;border:1px solid #9fc2ea;background:#f2f8ff;display:grid;gap:10px}.photo-record-editor>div:first-child{display:grid;gap:3px}.photo-record-editor>div:first-child strong{font-size:12px}.photo-record-editor>div:first-child span{font-size:9px;color:var(--muted)}.photo-record-editor label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:700}.photo-record-editor input,.photo-record-editor select,.photo-record-editor textarea{width:100%;border:1px solid #b5c5d5;border-radius:3px;background:white;color:var(--ink);font-size:11px}.photo-record-editor input,.photo-record-editor select{height:34px;padding:0 8px}.photo-record-editor textarea{padding:8px;resize:vertical;line-height:1.5}.photo-record-editor-row{display:grid!important;grid-template-columns:1fr 82px;gap:8px}.photo-record-editor-actions,.photo-detail-management-actions{display:flex;justify-content:flex-end;gap:7px}.photo-detail-management-actions{margin:12px 14px}.photo-detail-management-actions .button{flex:1}.photo-danger-outline{border-color:#e2a3a7;color:var(--red);background:white}.photo-danger-button{border-color:var(--red);background:var(--red);color:white}.photo-record-delete-confirm{margin:12px;padding:11px;border:1px solid #e5a7aa;border-left:4px solid var(--red);background:var(--red-bg);display:grid;grid-template-columns:auto 1fr;gap:7px 9px;align-items:center;color:var(--red)}.photo-record-delete-confirm>div{display:grid;gap:3px}.photo-record-delete-confirm strong{font-size:10px}.photo-record-delete-confirm span{font-size:8px;color:#78565a;line-height:1.5}.photo-record-delete-confirm>.button{grid-row:2}.photo-record-delete-confirm>.button:nth-of-type(1){grid-column:1}.photo-record-delete-confirm>.button:nth-of-type(2){grid-column:2}
.photo-worker-page{max-width:920px;margin:0 auto}.photo-worker-shell{border:1px solid var(--border);background:white;padding:20px}.photo-worker-shell>.photo-context-selectors{padding-bottom:18px;border-bottom:1px solid var(--border)}.photo-worker-shell>.photo-context-selectors label{flex:1}.photo-worker-shell>.photo-context-selectors select{width:100%;min-width:0;height:42px;font-size:13px}.photo-worker-count{margin:18px 0 10px;border:1px solid #f0c2c5;border-left:5px solid var(--red);background:var(--red-bg);padding:16px 18px;display:flex;justify-content:space-between;align-items:center;gap:20px}.photo-worker-count>div{display:flex;align-items:center;gap:11px;color:var(--red)}.photo-worker-count>div span{font-size:12px;font-weight:700}.photo-worker-count strong{font-size:36px;line-height:1}.photo-worker-count strong small{font-size:13px;margin-left:3px}.photo-worker-count p{max-width:340px;margin:0;color:#735659;font-size:11px;line-height:1.6}.photo-worker-count--complete{border-color:#b7dbc9;border-left-color:var(--green);background:var(--green-bg)}.photo-worker-count--complete>div{color:var(--green)}.photo-worker-count--complete p{color:#466a58}.photo-worker-note{margin:0 0 12px;padding:9px 12px;background:#f3f6f9;color:var(--muted);font-size:10px;line-height:1.6}.photo-worker-list{border:1px solid var(--border)}.photo-worker-list>article{display:grid;grid-template-columns:34px 1fr 124px;align-items:center;gap:12px;padding:13px;border-bottom:1px solid var(--border)}.photo-worker-list>article:last-child{border-bottom:0}.photo-worker-list>article>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--red-bg);color:var(--red);font-size:12px;font-weight:700}.photo-worker-list article>div{display:grid;gap:4px}.photo-worker-list strong{font-size:13px}.photo-worker-list p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.photo-worker-list .photo-upload-button{min-height:42px}.photo-empty{min-height:180px;display:grid;justify-items:center;align-content:center;gap:8px;color:var(--green)}.photo-empty strong{font-size:16px}.photo-empty span{font-size:10px;color:var(--muted)}
.photo-worker-connectivity{margin-top:14px;border:1px solid #b7d6c7;border-left:4px solid var(--green);background:var(--green-bg);padding:10px 12px;display:grid;grid-template-columns:auto minmax(180px,1fr) auto minmax(260px,1.5fr);align-items:center;gap:8px;color:var(--green)}.photo-worker-connectivity>div{display:grid;gap:2px}.photo-worker-connectivity strong{font-size:11px}.photo-worker-connectivity span,.photo-worker-connectivity p{font-size:9px;line-height:1.5}.photo-worker-connectivity span{color:#4f6f5d}.photo-worker-connectivity p{margin:0;color:#405b4d}
.photo-worker-status-rail{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);margin-bottom:10px}.photo-worker-status-rail>div{min-height:55px;padding:8px 10px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-content:center;color:var(--blue)}.photo-worker-status-rail>div:last-child{border-right:0}.photo-worker-status-rail svg{grid-row:1/3;align-self:center}.photo-worker-status-rail span{font-size:9px;color:var(--muted)}.photo-worker-status-rail strong{font-size:13px}.photo-worker-status-rail .waiting{color:var(--amber)}.photo-worker-status-rail .failed{color:var(--red)}.photo-worker-status-rail .synced{color:var(--green)}
.photo-worker-list>article.photo-worker-item--failed{background:#fffafa}.photo-worker-list>article.photo-worker-item--queued{background:#fffdf8}.photo-worker-list>article.photo-worker-item--uploading{background:#f7fbff}.photo-worker-list>article.photo-worker-item--failed>span{background:var(--red-bg);color:var(--red)}.photo-worker-list>article.photo-worker-item--queued>span{background:var(--amber-bg);color:var(--amber)}.photo-worker-list>article.photo-worker-item--uploading>span{background:var(--blue-2);color:var(--blue)}
.photo-worker-file-state{margin-top:5px;max-width:430px;border-left:3px solid var(--blue);background:#edf5ff;padding:7px 8px;display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:7px;color:var(--blue)}.photo-worker-file-state>span{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;min-width:0}.photo-worker-file-state b{font-size:9px}.photo-worker-file-state>span>small{grid-column:1/-1;font-size:8px;color:#557492;font-weight:500}.photo-worker-file-state--failed{border-left-color:var(--red);background:var(--red-bg);color:var(--red)}.photo-worker-file-state--failed>span>small{color:#7d5558}.photo-worker-file-state--queued{border-left-color:var(--amber);background:var(--amber-bg);color:var(--amber)}.photo-worker-file-state--queued>span>small{color:#796849}.photo-retry-button{border-color:#e5a1a5;color:var(--red);background:white}.photo-worker-upload-progress{display:grid!important;grid-template-columns:1fr auto;align-items:center;gap:7px}.photo-worker-upload-progress>span{height:7px;background:#dce6f0;border-radius:8px;overflow:hidden}.photo-worker-upload-progress i{height:100%;display:block;background:var(--blue);transition:width .3s ease}.photo-worker-upload-progress strong{font-size:10px;color:var(--blue)}
.photo-status-icon--queued{color:var(--amber);background:var(--amber-bg)}.photo-status-icon--failed{color:var(--red);background:var(--red-bg)}.photo-sync-state--danger{color:var(--red)}.photo-sync-state--danger strong{color:var(--red)}.photo-detail-preview--synced{border-style:solid;background:#eef6ff;color:var(--blue)}.photo-detail-preview--queued{background:var(--amber-bg);border-color:#e5c180;color:var(--amber)}.photo-detail-preview--failed{background:var(--red-bg);border-color:#e6a7aa;color:var(--red)}.photo-detail-preview--uploading{background:#eef6ff;border-color:#9fc2ea;color:var(--blue)}.photo-detail-sync-note{margin:14px;padding:10px 11px;display:flex;align-items:center;gap:8px;background:#f3f7fb;color:var(--blue)}.photo-detail-sync-note>span{display:grid;gap:2px;font-size:9px;color:var(--muted)}.photo-detail-sync-note strong{font-size:10px;color:var(--ink)}.photo-detail-sync-note--failed{background:var(--red-bg);color:var(--red)}.photo-detail-sync-note--queued{background:var(--amber-bg);color:var(--amber)}
@keyframes photo-spin{to{transform:rotate(360deg)}}.spin{animation:photo-spin 1s linear infinite}
@media (max-width:1120px){.photo-manager-layout{grid-template-columns:1fr}.photo-detail-panel{position:static}.photo-detail-panel{display:grid;grid-template-columns:1fr 1.15fr}.photo-detail-heading,.photo-record-editor,.photo-record-delete-confirm,.photo-detail-management-actions{grid-column:1/-1}.photo-detail-preview{grid-row:2/5}.photo-detail-panel>.photo-upload-button{align-self:end}.photo-summary-rail{grid-template-columns:repeat(2,1fr)}.photo-summary-rail .photo-project-total{grid-column:1/-1;min-height:42px;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid var(--border)}}
@media (max-width:760px){.photo-context-bar{display:block;padding:11px}.photo-context-selectors{display:grid;grid-template-columns:1fr 1fr;gap:8px}.photo-context-selectors select,.photo-context-selectors label:last-child select{width:100%;min-width:0}.photo-sync-state{margin-top:10px;padding-top:10px;border-top:1px solid var(--border);justify-content:start}.photo-summary-rail{grid-template-columns:repeat(2,1fr)}.photo-summary-rail>div{min-height:62px;padding:8px 10px}.photo-summary-rail strong{font-size:19px}.photo-summary-rail .photo-project-total{grid-column:1/-1}.photo-notification{grid-template-columns:auto 1fr}.photo-notification .button{grid-column:1/-1;width:100%}.photo-requirement-list>article{grid-template-columns:1fr}.photo-requirement-main{grid-template-columns:34px minmax(160px,1fr) auto 16px;padding:8px 9px}.photo-requirement-main small{display:none}.photo-requirement-action{border-left:0;padding:0 10px 10px}.photo-requirement-action .button{width:100%}.photo-detail-panel{display:block}.photo-worker-shell{padding:12px}.photo-worker-shell>.photo-context-selectors{grid-template-columns:1fr}.photo-worker-connectivity{grid-template-columns:auto 1fr}.photo-worker-connectivity>svg:nth-of-type(2),.photo-worker-connectivity>p{margin-top:5px}.photo-worker-status-rail{grid-template-columns:1fr 1fr}.photo-worker-status-rail>div:nth-child(2){border-right:0}.photo-worker-status-rail>div:nth-child(n+3){border-top:1px solid var(--border)}.photo-worker-count{display:block;padding:14px}.photo-worker-count p{margin-top:10px}.photo-worker-list>article{grid-template-columns:30px 1fr;padding:12px 10px}.photo-worker-list .photo-upload-button,.photo-worker-list>article>.button,.photo-worker-upload-progress{grid-column:1/-1;width:100%;min-height:40px}.photo-worker-page .page-actions{overflow:visible}.photo-worker-page .page-actions .button{width:100%}}

/* Required photo standards */
.photo-template-source{margin-left:auto;display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px;color:var(--blue);font-size:10px}.photo-template-source svg{grid-row:1/3}.photo-template-source strong{font-size:11px;color:var(--ink)}
.photo-checklist-actions{display:flex;align-items:center;gap:9px}.photo-checklist-actions label{white-space:nowrap}
.photo-project-add{border-bottom:1px solid var(--border);background:#f5f9fe;padding:13px 15px;display:grid;grid-template-columns:minmax(140px,.55fr) minmax(320px,1.45fr);gap:12px 14px;align-items:start}.photo-project-add>div:first-child{display:grid;gap:4px}.photo-project-add>div:first-child strong{font-size:12px}.photo-project-add>div:first-child span{font-size:9px;color:var(--muted);line-height:1.5}.photo-project-add-fields{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(125px,1fr) 88px;gap:8px}.photo-project-add-fields label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:700}.photo-project-add-fields label.span-2{grid-column:1/-1}.photo-project-add-fields input,.photo-project-add-fields select{width:100%;height:33px;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 8px;font-size:11px}.photo-project-add-actions{grid-column:2;display:flex;justify-content:flex-end;gap:7px}
.photo-worker-list article small{font-size:9px;color:var(--blue);font-weight:700}
.photo-master-context{min-height:70px;border:1px solid var(--border);background:white;padding:10px 14px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:20px}.photo-master-selectors{display:flex;align-items:end;gap:12px}.photo-master-selectors label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.photo-master-selectors select{height:38px;min-width:240px;border:1px solid #b9c7d5;border-radius:3px;background:white;color:var(--ink);padding:0 32px 0 10px;font-size:12px}.photo-master-version{display:grid;grid-template-columns:auto auto auto;align-items:center;gap:2px 8px;color:var(--blue)}.photo-master-version svg{grid-row:1/3}.photo-master-version span{font-size:9px;color:var(--muted)}.photo-master-version strong{font-size:13px}.photo-master-version small{grid-column:3;font-size:9px;color:var(--muted)}
.photo-master-notice{border:1px solid #abc8ea;border-left:4px solid var(--blue);background:var(--blue-2);color:var(--blue);display:flex;align-items:center;gap:11px;padding:10px 13px;margin-bottom:12px}.photo-master-notice>div{display:grid;gap:3px}.photo-master-notice strong{font-size:11px}.photo-master-notice span{font-size:9px;color:#4f6e91;line-height:1.5}
.photo-master-layout{display:grid;grid-template-columns:minmax(360px,.75fr) minmax(520px,1.25fr);gap:12px;align-items:start}.photo-master-list-panel,.photo-master-editor{padding:0;overflow:hidden}.photo-master-list-panel>.panel-heading{padding:14px 15px 12px;margin:0;border-bottom:1px solid var(--border);align-items:center}.photo-master-list{max-height:650px;overflow:auto}.photo-master-list>button{width:100%;min-height:64px;border:0;border-bottom:1px solid var(--border);background:white;display:grid;grid-template-columns:27px minmax(140px,1fr) auto 16px;align-items:center;gap:9px;padding:8px 12px;text-align:left;cursor:pointer}.photo-master-list>button:hover{background:#f7fbff}.photo-master-list>button.selected{background:#edf5ff;box-shadow:inset 3px 0 var(--blue)}.photo-master-list>button>span:first-child{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#edf1f5;color:#526273;font-size:10px;font-weight:700}.photo-master-list>button>div{display:grid;gap:4px}.photo-master-list>button strong{font-size:11px}.photo-master-list>button small{font-size:9px;color:var(--muted)}.photo-master-empty{min-height:200px;display:grid;justify-items:center;align-content:center;gap:7px;color:var(--muted)}.photo-master-empty strong{font-size:12px}.photo-master-empty span{font-size:9px}
.photo-master-editor{position:sticky;top:70px}.photo-master-editor-heading{min-height:65px;padding:12px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.photo-master-editor-heading>div{display:grid;gap:4px}.photo-master-editor-heading span{font-size:9px;color:var(--blue);font-weight:700}.photo-master-editor-heading h2{margin:0;font-size:17px}.photo-master-delete{color:var(--red)}.photo-master-form{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:13px 16px;padding:16px}.photo-master-form label{display:grid;gap:6px;color:var(--muted);font-size:10px;font-weight:700}.photo-master-form label.span-2{grid-column:1/-1}.photo-master-form input,.photo-master-form select,.photo-master-form textarea{width:100%;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 10px;font-size:12px}.photo-master-form input,.photo-master-form select{height:38px}.photo-master-form textarea{padding:9px 10px;resize:vertical;line-height:1.5}.photo-master-sample{margin:0 16px 16px;padding:12px;background:#f4f7fa;display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.photo-master-sample-preview{display:grid;grid-template-columns:38px 1fr;gap:2px 8px;align-items:center;color:#7d8d9d}.photo-master-sample-preview svg{grid-row:1/3}.photo-master-sample-preview strong{font-size:10px;color:var(--ink)}.photo-master-sample-preview span{font-size:8px;color:var(--muted)}.photo-master-sample label input{display:none}.photo-master-editor-empty{min-height:360px;display:grid;justify-items:center;align-content:center;gap:9px;color:var(--muted)}.photo-master-editor-empty strong{font-size:12px}
@media (max-width:1120px){.photo-context-bar{flex-wrap:wrap}.photo-template-source{margin-left:0}.photo-sync-state{margin-left:auto}.photo-project-add{grid-template-columns:1fr}.photo-project-add-fields{grid-template-columns:minmax(160px,1.5fr) minmax(130px,1fr) 90px}.photo-project-add-actions{grid-column:1;justify-content:flex-end}.photo-master-layout{grid-template-columns:minmax(320px,.8fr) minmax(430px,1.2fr)}}
@media (max-width:760px){.photo-manager-page .page-actions,.photo-master-page .page-actions{overflow:visible}.photo-manager-page .page-actions .button,.photo-master-page .page-actions .button{width:100%}.photo-template-source,.photo-sync-state{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--border)}.photo-template-source{width:100%}.photo-checklist-heading{display:grid}.photo-checklist-actions{width:100%;justify-content:space-between;flex-wrap:wrap}.photo-checklist-actions label{width:100%;justify-content:space-between}.photo-checklist-actions .button{flex:1}.photo-project-add-fields{grid-template-columns:1fr 1fr}.photo-project-add-fields label:first-child,.photo-project-add-fields label.span-2{grid-column:1/-1}.photo-project-add-actions{display:grid;grid-template-columns:1fr 1fr}.photo-master-context{display:block}.photo-master-selectors{display:grid;grid-template-columns:1fr}.photo-master-selectors select{width:100%;min-width:0}.photo-master-version{margin-top:11px;padding-top:10px;border-top:1px solid var(--border);justify-content:start}.photo-master-layout{grid-template-columns:1fr}.photo-master-list{max-height:none}.photo-master-editor{position:static}.photo-master-form{grid-template-columns:1fr}.photo-master-form label.span-2{grid-column:1}.photo-master-sample{grid-template-columns:1fr}.photo-master-sample .button{width:100%}.photo-record-delete-confirm{grid-template-columns:auto 1fr}.photo-record-delete-confirm>.button{width:100%}}

.photo-manager-tabs{height:52px;border:1px solid var(--border);background:white;display:flex;align-items:stretch;margin-bottom:10px}.photo-manager-tabs button{min-width:150px;border:0;border-right:1px solid var(--border);border-bottom:3px solid transparent;background:white;color:var(--muted);display:grid;grid-template-columns:auto auto auto;align-items:center;justify-content:center;gap:8px;padding:0 18px;font-size:12px;font-weight:700;cursor:pointer}.photo-manager-tabs button:hover{background:#f7f9fb}.photo-manager-tabs button.active{border-bottom-color:var(--blue);background:#f1f7fe;color:var(--blue)}.photo-manager-tabs button strong{min-width:24px;height:21px;border-radius:11px;background:#edf1f5;color:#526273;display:grid;place-items:center;padding:0 7px;font-size:10px}.photo-manager-tabs button.active strong{background:var(--blue);color:white}.photo-manager-tabs button strong.danger{background:var(--red);color:white}
.photo-worker-mode-switch{display:grid;grid-template-columns:1fr 1fr;border:1px solid #b8c7d6;margin-top:16px}.photo-worker-mode-switch button{min-height:76px;border:0;border-right:1px solid var(--border);border-bottom:4px solid transparent;background:white;color:#667789;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:11px 14px;text-align:left;cursor:pointer}.photo-worker-mode-switch button:last-child{border-right:0}.photo-worker-mode-switch button:hover{background:#f7fafe}.photo-worker-mode-switch button.active{border-bottom-color:var(--blue);background:#edf5ff;color:var(--blue)}.photo-worker-mode-switch button>span{display:grid;gap:4px}.photo-worker-mode-switch button strong{font-size:14px;color:var(--ink)}.photo-worker-mode-switch button small{font-size:9px;color:var(--muted);font-weight:500}.photo-worker-mode-switch button>b{min-width:42px;height:27px;border-radius:14px;background:var(--red);color:white;display:grid;place-items:center;padding:0 9px;font-size:11px}
.photo-field-capture{margin-top:14px}.photo-field-required-warning{border:1px solid #efc2c5;border-left:4px solid var(--red);background:var(--red-bg);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px 12px;color:var(--red);margin-bottom:12px}.photo-field-required-warning>div{display:grid;gap:3px}.photo-field-required-warning strong{font-size:11px}.photo-field-required-warning span{font-size:9px;color:#7b5558;line-height:1.5}.photo-field-required-warning .button{background:white}.photo-field-capture-main{min-height:118px;border:1px solid #a9c7e8;border-left:5px solid var(--blue);background:var(--blue-2);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px;color:var(--blue)}.photo-field-capture-main h2{margin:0 0 5px;color:var(--ink);font-size:17px}.photo-field-capture-main p{margin:0;max-width:470px;color:#4f6e91;font-size:10px;line-height:1.6}.photo-field-capture-main .photo-batch-upload-button{min-height:44px;padding:0 16px}.photo-field-recent-heading{min-height:60px;margin-top:14px;border:1px solid var(--border);border-bottom:0;display:flex;align-items:center;justify-content:space-between;padding:10px 13px}.photo-field-recent-heading>div{display:grid;gap:3px}.photo-field-recent-heading h2{margin:0;font-size:13px}.photo-field-recent-heading span{font-size:9px;color:var(--muted)}.photo-field-recent-heading>strong{font-size:13px;color:var(--blue)}.photo-field-recent-list{border:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr}.photo-field-recent-list>article{min-height:72px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;grid-template-columns:72px 1fr;align-items:center;gap:10px;padding:8px}.photo-field-recent-list>article:nth-child(2n){border-right:0}.photo-field-recent-list>article>div{display:grid;gap:5px;min-width:0}.photo-field-recent-list>article strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-field-recent-list>article div span{font-size:8px;color:var(--muted)}
.photo-all-panel,.photo-submission-panel{padding:0;overflow:hidden}.photo-library-heading{min-height:70px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px}.photo-library-heading>div:first-child{display:grid;gap:4px}.photo-library-heading h2{margin:0;font-size:16px}.photo-library-heading span{font-size:9px;color:var(--muted)}.photo-library-actions{display:flex;align-items:end;gap:9px}.photo-library-actions>label{display:grid;gap:4px;color:var(--muted);font-size:9px;font-weight:700}.photo-library-actions select{height:32px;min-width:120px;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 8px;font-size:10px}.photo-library-notice{min-height:50px;background:#f3f7fb;border-bottom:1px solid var(--border);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:8px 15px;color:var(--blue)}.photo-library-notice>div{display:grid;gap:2px}.photo-library-notice strong{font-size:10px;color:var(--ink)}.photo-library-notice span{font-size:8px;color:var(--muted)}.photo-library-notice>b{font-size:10px}
.photo-contact-sheet{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:0}.photo-contact-sheet>article{min-width:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px;display:grid;gap:9px;align-content:start}.photo-contact-sheet>article:nth-child(4n){border-right:0}.photo-contact-sheet>article.is-submission{box-shadow:inset 0 3px var(--blue)}.photo-contact-preview{position:relative;min-height:86px;background:#edf1f5;border:1px solid #d3dce5;color:#718293;display:grid;justify-items:center;align-content:center;gap:6px;padding:8px;text-align:center;overflow:hidden}.photo-contact-preview>span{max-width:100%;font-size:9px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-contact-preview>b{position:absolute;top:6px;right:6px;background:var(--blue);color:white;display:flex;align-items:center;gap:4px;padding:4px 6px;font-size:8px}.photo-contact-preview>small{position:absolute;left:6px;bottom:6px;background:white;color:var(--amber);border:1px solid #e2c688;padding:3px 5px;font-size:8px;font-weight:700}.photo-contact-preview--failed{background:var(--red-bg);border-color:#e8b7ba;color:var(--red)}.photo-contact-preview--uploading,.photo-contact-preview--queued{background:var(--amber-bg);border-color:#e6ca94;color:var(--amber)}.photo-contact-copy{display:grid;gap:3px;min-width:0}.photo-contact-copy strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-contact-copy span{font-size:8px;color:var(--muted)}.photo-contact-assign{display:grid;gap:4px;color:var(--muted);font-size:8px;font-weight:700}.photo-contact-assign select{width:100%;height:31px;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 6px;font-size:9px}.photo-submission-toggle{width:100%;justify-content:center}.photo-submission-toggle.active{border-color:#8eb9e7;background:#edf5ff;color:var(--blue)}.photo-contact-sheet>.photo-empty{grid-column:1/-1}
.photo-submission-heading{min-height:86px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px}.photo-submission-heading>div:first-child{display:grid;gap:3px}.photo-submission-heading span{font-size:9px;color:var(--blue);font-weight:700}.photo-submission-heading h2{margin:0;font-size:17px}.photo-submission-heading p{margin:0;color:var(--muted);font-size:9px}.photo-submission-actions{display:flex;gap:8px}.photo-submission-meta{min-height:54px;background:#f4f7fa;border-bottom:1px solid var(--border);display:grid;grid-template-columns:130px 130px 1fr;align-items:center}.photo-submission-meta>div{height:100%;border-right:1px solid var(--border);display:flex;align-items:baseline;justify-content:space-between;padding:13px}.photo-submission-meta span{font-size:9px;color:var(--muted)}.photo-submission-meta strong{font-size:13px;color:var(--blue)}.photo-submission-meta p{margin:0;padding:0 15px;text-align:right;color:var(--muted);font-size:9px}.photo-submission-list>article{min-height:84px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:38px 100px 1fr auto auto;align-items:center;gap:12px;padding:10px 14px}.photo-submission-list>article>div:nth-of-type(1){display:grid;gap:4px}.photo-submission-list>article>div:nth-of-type(1)>strong{font-size:11px}.photo-submission-list>article>div:nth-of-type(1)>span,.photo-submission-list>article>div:nth-of-type(1)>small{font-size:9px;color:var(--muted)}.photo-submission-order{width:28px;height:28px;border-radius:50%;background:var(--blue);color:white;display:grid;place-items:center;font-size:11px}.photo-submission-list .photo-contact-preview{min-height:60px}.photo-submission-move{display:flex;gap:5px}.photo-submission-move .button{width:32px;padding:0}.photo-submission-remove{color:var(--red)}
.photo-contact-preview:is(button){width:100%;font:inherit;cursor:pointer}.photo-contact-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.photo-contact-preview:is(button):hover img{transform:scale(1.025)}.photo-contact-preview img{transition:transform .18s ease}.photo-contact-preview>b,.photo-contact-preview>small{z-index:1}.photo-detail-image-button{width:100%;min-height:150px;border:0;background:#e7edf3;position:relative;overflow:hidden;cursor:zoom-in;padding:0}.photo-detail-image-button img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#182431}.photo-detail-image-button span{position:absolute;right:8px;bottom:8px;background:rgba(8,29,51,.82);color:white;padding:6px 9px;display:flex;align-items:center;gap:5px;font-size:9px}.photo-lightbox{position:fixed;inset:0;z-index:100;background:rgba(6,20,34,.76);display:grid;place-items:center;padding:24px}.photo-lightbox>section{width:min(900px,96vw);max-height:92vh;background:white;border:1px solid #9baaba;box-shadow:0 24px 70px rgba(0,0,0,.32);display:grid;grid-template-rows:auto minmax(220px,1fr) auto auto;overflow:auto}.photo-lightbox header{min-height:62px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 14px}.photo-lightbox header>div{display:grid;gap:3px;min-width:0}.photo-lightbox header strong{font-size:14px}.photo-lightbox header span{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-lightbox header button{width:40px;height:40px;border:0;background:white;color:var(--ink);display:grid;place-items:center;cursor:pointer}.photo-lightbox-image{min-height:320px;background:#15212d;display:grid;place-items:center;padding:12px}.photo-lightbox-image img{max-width:100%;max-height:58vh;object-fit:contain}.photo-lightbox dl{margin:0;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--border)}.photo-lightbox dl>div{min-width:0;border-right:1px solid var(--border);padding:10px 12px;display:grid;gap:4px}.photo-lightbox dl>div:last-child{border-right:0}.photo-lightbox dt{font-size:9px;color:var(--muted)}.photo-lightbox dd{margin:0;font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-lightbox footer{min-height:62px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:10px 14px}.photo-lightbox-delete{margin-right:auto;color:var(--red)}.photo-delete-confirm{border-color:var(--red);background:var(--red);color:white}.photo-delete-confirm:hover{background:#b9212b}
.photo-library-notice--trash{background:#f6f7f9;color:#657485}.photo-contact-sheet>article.is-trashed{background:#f7f8fa}.photo-contact-sheet>article.is-trashed .photo-contact-preview img{filter:saturate(.35);opacity:.82}.photo-contact-trash-meta{display:grid;gap:3px;color:var(--muted)}.photo-contact-trash-meta span{font-size:8px}.photo-contact-trash-meta strong{font-size:9px;color:#566778}.photo-trash-restore{width:100%;justify-content:center}
.photo-detail-progress{margin:0 13px 10px;border:1px solid #e4c888;background:var(--amber-bg);display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;padding:9px 10px;color:var(--amber)}.photo-detail-progress>span{font-size:9px;color:#756746}.photo-detail-progress>strong{font-size:18px}.photo-detail-progress>strong small{font-size:9px;margin-left:2px}.photo-detail-progress>p{grid-column:1/-1;margin:0;font-size:9px;color:#756746}.photo-detail-progress.complete{border-color:#9dceb6;background:var(--green-bg);color:var(--green)}.photo-detail-progress.complete>p{color:#527460}.photo-detail-complete-note{margin:0 13px 13px;min-height:38px;background:var(--green-bg);color:var(--green);display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:700}
@media (max-width:1120px){.photo-contact-sheet{grid-template-columns:repeat(3,minmax(180px,1fr))}.photo-contact-sheet>article:nth-child(4n){border-right:1px solid var(--border)}.photo-contact-sheet>article:nth-child(3n){border-right:0}}
@media (max-width:760px){.photo-manager-tabs{height:auto;display:grid;grid-template-columns:repeat(2,1fr)}.photo-manager-tabs button{min-width:0;min-height:54px;border-right:1px solid var(--border);padding:7px 5px;grid-template-columns:auto auto}.photo-manager-tabs button strong{grid-column:1/-1;margin:auto;height:18px}.photo-worker-mode-switch{grid-template-columns:1fr}.photo-worker-mode-switch button{border-right:0;border-bottom:1px solid var(--border);min-height:70px}.photo-worker-mode-switch button.active{box-shadow:inset 4px 0 var(--blue);border-bottom-color:var(--border)}.photo-field-required-warning{grid-template-columns:auto 1fr}.photo-field-required-warning .button{grid-column:1/-1;width:100%}.photo-field-capture-main{grid-template-columns:auto 1fr;padding:14px}.photo-field-capture-main .photo-batch-upload-button{grid-column:1/-1;width:100%}.photo-field-recent-list{grid-template-columns:1fr}.photo-field-recent-list>article{border-right:0}.photo-library-heading,.photo-submission-heading{display:grid}.photo-library-actions,.photo-submission-actions{display:grid;grid-template-columns:1fr 1fr}.photo-library-actions .photo-batch-upload-button,.photo-submission-actions .button{width:100%}.photo-contact-sheet{grid-template-columns:repeat(2,minmax(140px,1fr))}.photo-contact-sheet>article:nth-child(3n){border-right:1px solid var(--border)}.photo-contact-sheet>article:nth-child(2n){border-right:0}.photo-library-notice{grid-template-columns:auto 1fr}.photo-library-notice>b{grid-column:2}.photo-submission-meta{grid-template-columns:1fr 1fr}.photo-submission-meta p{grid-column:1/-1;padding:9px 12px;text-align:left;border-top:1px solid var(--border)}.photo-submission-list>article{grid-template-columns:32px 76px 1fr;gap:8px;padding:9px}.photo-submission-list>article>.photo-submission-move,.photo-submission-list>article>.photo-submission-remove{grid-column:3}.photo-submission-move{justify-content:flex-start}}

/* LINE MINI App prototype */
.line-prototype-stage{min-height:100vh;background:#edf2f6;padding:24px;display:flex;align-items:flex-start;justify-content:center}.line-mini-app{width:390px;max-width:100%;min-height:844px;background:white;border:1px solid #d3dce5;box-shadow:0 12px 32px rgba(10,37,64,.12);color:var(--ink);overflow:hidden}.line-app-header{height:58px;background:#06c755;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 16px;position:sticky;top:0;z-index:5}.line-app-header strong{font-size:18px;letter-spacing:.01em}.line-app-header span{font-size:13px;font-weight:700}.line-app-header--back{justify-content:flex-start;gap:7px}.line-app-header--back button{width:40px;height:40px;margin-left:-9px;border:0;background:transparent;color:white;display:grid;place-items:center;cursor:pointer}.line-app-body{padding:14px 12px 18px}.line-home-body{display:grid;gap:11px}.line-project-selectors{border:1px solid #cad5df;border-radius:5px;background:white;padding:11px;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px}.line-project-selectors label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.line-project-selectors select{width:100%;height:38px;border:1px solid #b5c3d1;border-radius:4px;background:white;color:var(--ink);padding:0 28px 0 8px;font-size:12px;font-weight:700}.line-alert{min-height:55px;border:1px solid #e9777c;border-left:4px solid var(--red);border-radius:4px;background:var(--red-bg);color:var(--red);display:flex;align-items:center;gap:10px;padding:10px 13px}.line-alert strong{font-size:13px}.line-alert--complete{border-color:#87c9a8;border-left-color:var(--green);background:var(--green-bg);color:var(--green)}.line-primary-action,.line-secondary-action{width:100%;min-height:68px;border-radius:5px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:0 14px;cursor:pointer;text-align:left}.line-primary-action{border:1px solid var(--blue);background:var(--blue);color:white}.line-primary-action:hover{background:#1255a3}.line-secondary-action{border:2px solid var(--blue);background:white;color:var(--blue);grid-template-columns:auto 1fr auto}.line-secondary-action:hover{background:#f3f8fe}.line-primary-action span,.line-secondary-action span{font-size:15px;font-weight:750}.line-primary-action b{font-size:14px}.line-home-menu{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-left:1px solid var(--border);border-radius:5px;overflow:hidden}.line-home-menu button{min-height:112px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:white;color:var(--blue);display:grid;justify-items:center;align-content:center;gap:10px;cursor:pointer}.line-home-menu button:hover{background:#f5f9fe}.line-home-menu span{color:var(--ink);font-size:14px;font-weight:750}.line-web-link{min-height:48px;border:1px solid #b8c6d4;border-radius:4px;background:white;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:750;cursor:pointer}.line-web-link:hover{border-color:var(--blue);background:#f5f9fe}.line-trial-note{margin:0;text-align:center;color:var(--muted);font-size:10px}
.line-sync-status{min-height:66px;border:1px solid #89c6a6;border-left:4px solid var(--green);border-radius:5px;background:var(--green-bg);color:var(--green);padding:10px 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px}.line-sync-status>div{display:grid;gap:3px}.line-sync-status strong{color:var(--ink);font-size:12px}.line-sync-status span{color:#557262;font-size:9px;line-height:1.45}.line-sync-status.is-pending{border-color:#e2bd79;border-left-color:var(--amber);background:var(--amber-bg);color:var(--amber)}.line-sync-status.is-pending span{color:#776340}.line-sync-status.is-offline{border-color:#e19a9e;border-left-color:var(--red);background:var(--red-bg);color:var(--red)}.line-sync-status.is-offline span{color:#87575a}.line-sync-status>button{min-height:34px;border:1px solid currentColor;border-radius:4px;background:white;color:inherit;padding:0 9px;font-size:9px;font-weight:750;white-space:nowrap;cursor:pointer}.line-sync-status>button:disabled{opacity:.6;cursor:wait}
.line-current-work{min-height:44px;border:1px solid #cad5df;border-radius:5px;background:white;padding:8px 11px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.line-current-work strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.line-current-work span{color:var(--muted);font-size:10px;font-weight:700;white-space:nowrap}.line-home-body--field{gap:8px}.line-sync-status--compact{min-height:44px;padding:7px 10px}.line-sync-status--compact>div{display:block}.line-alert--compact{min-height:44px;padding:7px 11px}.line-home-body--field .line-primary-action,.line-home-body--field .line-secondary-action{min-height:58px}.line-home-body--field .line-home-menu button{min-height:88px;gap:6px}.line-home-body--field .line-home-menu button b{padding:2px 7px}
.line-photo-body{padding:12px;display:grid;gap:10px}.line-selected-project{width:100%;min-height:49px;border:1px solid #c3cfda;border-radius:4px;background:white;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 11px;text-align:left;cursor:pointer}.line-selected-project span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:750}.line-photo-modes{display:grid;grid-template-columns:1fr 1fr;border:1px solid #8aa5c3;border-radius:4px;overflow:hidden}.line-photo-modes button{min-height:48px;border:0;border-right:1px solid #8aa5c3;background:white;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 7px;font-size:11px;font-weight:750;cursor:pointer}.line-photo-modes button:last-child{border-right:0}.line-photo-modes button.active{background:var(--blue);color:white}.line-photo-warning{min-height:68px;border:1px solid #e8757a;border-radius:4px;background:var(--red-bg);color:var(--red);display:flex;align-items:center;justify-content:center;gap:10px;padding:10px}.line-photo-warning strong{font-size:17px}.line-photo-warning--complete{border-color:#88c9a8;background:var(--green-bg);color:var(--green)}.line-photo-status{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--border)}.line-photo-status>div{min-height:62px;border-right:1px solid var(--border);display:grid;justify-items:center;align-content:center;gap:3px}.line-photo-status>div:last-child{border-right:0}.line-photo-status span{font-size:10px;color:var(--muted);font-weight:700}.line-photo-status strong{font-size:20px;color:var(--red)}.line-photo-status>div:nth-child(2) strong{color:var(--amber)}.line-photo-status>div:nth-child(3) strong{color:var(--green)}.line-required-list{border:1px solid var(--border);border-bottom:0}.line-required-item{min-height:104px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:48px minmax(0,1fr) 105px;align-items:center;gap:9px;padding:10px;background:white}.line-required-icon{width:46px;height:54px;border:1px solid #d4dde6;border-radius:4px;background:#f3f6f9;color:#65788a;display:grid;place-items:center}.line-required-copy{min-width:0;display:grid;gap:4px}.line-required-copy strong{font-size:13px}.line-required-copy>b{width:max-content;border-radius:10px;background:#edf3fa;color:var(--blue);padding:2px 7px;font-size:9px}.line-required-copy p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.line-required-copy small{color:var(--blue);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-required-control{display:grid;gap:6px;justify-items:stretch}.line-required-control>span{text-align:center;font-size:10px;font-weight:750;color:var(--red)}.line-required-item--queued .line-required-control>span,.line-required-item--syncing .line-required-control>span{color:var(--amber)}.line-required-item--saved .line-required-control>span{color:var(--green)}.line-required-item--failed .line-required-icon{background:var(--red-bg);color:var(--red);border-color:#edb8bb}.line-required-item--queued .line-required-icon,.line-required-item--syncing .line-required-icon{background:var(--amber-bg);color:var(--amber);border-color:#ead09e}.line-required-item--saved .line-required-icon{background:var(--green-bg);color:var(--green);border-color:#aed8c3}.line-photo-action{min-height:42px;border:1px solid var(--blue);border-radius:4px;background:white;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;font-size:10px;font-weight:750;cursor:pointer}.line-photo-action:hover{background:#f2f7fd}.line-photo-action input{display:none}.line-photo-action:disabled{cursor:default;opacity:.75}.line-photo-action--saved{border-color:#8ec7ab;background:var(--green-bg);color:var(--green)}
.line-field-warning{border:1px solid #edb7ba;border-left:4px solid var(--red);background:var(--red-bg);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:9px;color:var(--red)}.line-field-warning>div{display:grid;gap:2px}.line-field-warning strong{font-size:10px}.line-field-warning span{font-size:8px;color:#7c5558}.line-field-warning button{height:32px;border:1px solid #dfa0a4;background:white;color:var(--red);border-radius:3px;font-size:9px;font-weight:700}.line-field-upload{border:1px solid #a3c1e4;border-left:4px solid var(--blue);background:var(--blue-2);padding:14px 12px;display:grid;grid-template-columns:auto 1fr;gap:8px 10px;color:var(--blue)}.line-field-upload h2{margin:0;font-size:14px;color:var(--ink)}.line-field-upload p{margin:3px 0 0;font-size:9px;line-height:1.5;color:#4f6e91}.line-field-upload label{grid-column:1/-1;min-height:45px;border-radius:4px;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:750;cursor:pointer}.line-field-upload label input{display:none}.line-field-list{border:1px solid var(--border)}.line-field-list-heading{min-height:46px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:9px 11px}.line-field-list-heading strong{font-size:12px}.line-field-list-heading span{font-size:10px;color:var(--blue);font-weight:750}.line-field-list article{min-height:58px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:8px;padding:8px 10px;color:#708293}.line-field-list article:last-child{border-bottom:0}.line-field-list article>div{display:grid;gap:3px;min-width:0}.line-field-list article strong{font-size:10px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-field-list article span{font-size:8px;color:var(--green)}.line-field-list article>svg:last-child{color:var(--green)}.line-web-photo-link{min-height:54px;border:1px solid var(--blue);border-radius:4px;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:750;cursor:pointer;position:sticky;bottom:8px;box-shadow:0 4px 12px rgba(14,69,130,.18)}.line-web-photo-link:hover{background:#1255a3}
.line-required-icon--photo{padding:0;overflow:hidden;cursor:zoom-in}.line-required-icon--photo img,.line-field-thumb img{width:100%;height:100%;object-fit:cover}.line-field-thumb{width:32px;height:40px;border:1px solid #c8d4df;border-radius:3px;padding:0;background:#edf2f6;overflow:hidden;cursor:zoom-in}.line-photo-preview{position:fixed;z-index:40;inset:0;margin:auto;width:390px;max-width:100%;height:100vh;background:#10202e;color:white;display:grid;grid-template-rows:58px minmax(0,1fr) auto 54px}.line-photo-preview header{display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#06c755}.line-photo-preview header strong{font-size:15px}.line-photo-preview header button{width:40px;height:40px;border:0;background:transparent;color:white;font-size:28px;cursor:pointer}.line-photo-preview>img{width:100%;height:100%;object-fit:contain;background:#0c1823}.line-photo-preview>div{display:grid;gap:4px;padding:12px 14px;background:#172a3a}.line-photo-preview>div strong{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-photo-preview>div span{font-size:9px;color:#bfd0df}.line-photo-preview>button{border:0;background:var(--blue);color:white;font-size:13px;font-weight:750;cursor:pointer}
@media (max-width:700px){.photo-lightbox{padding:0}.photo-lightbox>section{width:100vw;max-height:100vh;height:100vh;border:0;grid-template-rows:auto minmax(180px,1fr) auto auto}.photo-lightbox-image{min-height:0;padding:0}.photo-lightbox-image img{max-height:100%}.photo-lightbox dl{grid-template-columns:1fr 1fr}.photo-lightbox dl>div{border-bottom:1px solid var(--border)}.photo-lightbox footer{flex-wrap:wrap}.photo-lightbox-delete{margin-right:0}.photo-lightbox footer .button{flex:1}}
@media (max-width:480px){.line-prototype-stage{padding:0;background:white}.line-mini-app{width:100%;min-height:100vh;border:0;box-shadow:none}.line-app-body{padding-left:12px;padding-right:12px}.line-home-menu button{min-height:106px}.line-photo-body{padding-bottom:16px}}

/* LINE photo storage responsive guard */
.line-photo-modes{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.line-photo-modes button{min-width:0;padding-left:6px;padding-right:6px;line-height:1.3;white-space:normal}
.line-photo-modes button svg,.line-photo-warning svg{flex:0 0 auto}
.line-photo-warning,.line-photo-warning strong,.line-photo-status>div,.line-required-list,.line-required-item,.line-required-control{min-width:0}
.line-photo-warning strong{text-align:center;overflow-wrap:anywhere}
.line-photo-status{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:480px){.line-photo-body{overflow:hidden}.line-photo-modes button{font-size:10px}.line-photo-warning strong{font-size:15px}.line-required-item{grid-template-columns:42px minmax(0,1fr) 96px;gap:7px;padding:9px 8px}.line-required-icon{width:40px;height:50px}.line-photo-action{min-width:0;padding-left:5px;padding-right:5px;font-size:9px}}

/* Material ordering */
.material-rule-rail{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr)) auto;border:1px solid var(--border);background:white;margin-bottom:10px}.material-rule-rail>div{min-height:65px;border-right:1px solid var(--border);display:grid;grid-template-columns:28px 1fr;align-content:center;gap:2px 7px;padding:9px 13px}.material-rule-rail svg{grid-row:1/3;color:var(--blue);align-self:center}.material-rule-rail span{font-size:9px;color:var(--muted)}.material-rule-rail strong{font-size:11px}.material-rule-rail p{margin:0;min-width:110px;display:grid;place-items:center;padding:8px 13px;color:var(--muted);font-size:10px;font-weight:700;background:#f5f7f9}
.material-summary-rail{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:white;margin-bottom:10px}.material-summary-rail>div{min-height:66px;padding:9px 15px;border-right:1px solid var(--border);display:flex;align-items:baseline;justify-content:space-between;gap:10px}.material-summary-rail>div:last-child{border-right:0}.material-summary-rail span{font-size:10px;color:var(--muted)}.material-summary-rail strong{font-size:23px;color:var(--blue)}.material-summary-rail strong small{font-size:10px;margin-left:3px;color:var(--muted)}.material-summary-rail .danger strong{color:var(--red)}
.material-toolbar{margin-bottom:10px}.material-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.material-sort-field{height:36px;border:1px solid var(--border);background:white;display:flex;align-items:center;gap:6px;padding:0 7px;color:var(--muted);font-size:9px;font-weight:700}.material-sort-field svg{color:var(--blue)}.material-sort-field select{height:28px;border:0;background:white;color:var(--ink);font-size:10px;font-weight:700}.material-master-detail{grid-template-columns:minmax(0,1fr) 410px;gap:12px}.material-master-detail>.panel{min-width:0}.material-table{min-width:910px}.material-order-table{min-width:1040px}.material-table td:first-child{min-width:132px}.material-table td:nth-child(2){min-width:210px}.material-table td small{display:block;margin-top:4px;color:var(--muted);font-size:9px;line-height:1.4}.material-table td:first-child strong{font-size:11px}.material-order-row{cursor:pointer}.material-order-row:hover,.material-order-row:focus{background:#f1f7fd;outline:0}.material-order-row:focus{box-shadow:inset 3px 0 var(--blue)}.material-empty{min-height:180px;display:grid;place-items:center;color:var(--muted);font-size:11px}.material-detail-drawer,.material-create-drawer{min-width:0;padding:0;overflow:hidden}.material-detail-drawer .drawer-head,.material-create-drawer .drawer-head{padding:15px;margin:0}.material-detail-drawer .detail-list{padding:0 15px}.material-detail-drawer .detail-list>div{padding:8px 0}.material-overdue-alert{margin:12px 15px 0;background:var(--red-bg);border-left:4px solid var(--red);color:var(--red);display:flex;gap:9px;padding:10px}.material-overdue-alert>div{display:grid;gap:3px}.material-overdue-alert strong{font-size:11px}.material-overdue-alert span{font-size:9px;color:#7c5558;line-height:1.5}
.material-batch-items{margin:12px 15px 0;border:1px solid var(--border);background:white}.material-batch-items-head{min-height:54px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 10px;background:#f6f9fc}.material-batch-items-head>div{display:flex;align-items:center;gap:6px}.material-batch-items-head svg{color:var(--blue)}.material-batch-items-head span{font-size:9px;color:var(--muted)}.material-batch-items-head strong{font-size:11px}.material-batch-items-head label{display:grid;grid-template-columns:auto 118px;align-items:center;gap:5px}.material-batch-items-head select{height:30px;border:1px solid #b8c6d4;background:white;padding:0 6px;color:var(--ink);font-size:9px}.material-batch-item-list{max-height:260px;overflow:auto}.material-batch-item{width:100%;min-height:55px;border:0;border-bottom:1px solid var(--border);background:white;display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;padding:7px 8px;text-align:left;color:var(--ink);cursor:pointer}.material-batch-item:last-child{border-bottom:0}.material-batch-item:hover,.material-batch-item.active{background:#edf5fd}.material-batch-item.active{box-shadow:inset 3px 0 var(--blue)}.material-batch-item-number{width:20px;height:20px;border-radius:50%;background:#e6edf4;color:var(--muted);display:grid;place-items:center;font-size:8px;font-weight:800}.material-batch-item.active .material-batch-item-number{background:var(--blue);color:white}.material-batch-item-name{min-width:0;display:grid;gap:3px}.material-batch-item-name strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-batch-item-name small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-batch-item .status-tag{font-size:7px;white-space:nowrap}.material-selected-item-heading{margin:12px 15px 0;border-left:4px solid var(--blue);background:#eef5fc;padding:8px 10px;display:grid;gap:3px}.material-selected-item-heading span{font-size:8px;color:var(--muted)}.material-selected-item-heading strong{font-size:11px}
.material-use-date{margin:12px 15px 0;padding:10px;background:#f3f7fb;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 10px;font-size:10px;color:var(--muted);font-weight:700}.material-use-date input{height:31px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 7px;color:var(--ink);font-size:11px}.material-use-date>span{grid-column:1/-1;font-size:9px;font-weight:500}.material-use-date>span strong{color:var(--ink)}
.material-flow{display:grid;grid-template-columns:repeat(7,1fr);margin:17px 12px 13px}.material-flow>div{position:relative;display:grid;justify-items:center;align-content:start;gap:5px;color:#a7b1bc;font-size:8px;text-align:center;line-height:1.3}.material-flow>div:before{content:"";position:absolute;height:2px;background:#d7dfe7;left:-50%;right:50%;top:7px}.material-flow>div:first-child:before{display:none}.material-flow svg{width:15px;height:15px;background:white;z-index:1}.material-flow .done,.material-flow .current{color:var(--blue)}.material-flow .done:before,.material-flow .current:before{background:var(--blue)}.material-flow .current svg{fill:var(--blue-2)}
.material-answer-summary{margin:0 15px 12px;border:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr}.material-answer-summary span,.material-answer-summary strong{padding:8px 9px;border-bottom:1px solid var(--border);font-size:10px}.material-answer-summary span{color:var(--muted);background:#f6f8fa}.material-answer-summary strong:nth-last-child(-n+2),.material-answer-summary span:nth-last-child(-n+2){border-bottom:0}.material-action-box{margin:0 15px 15px;padding:12px;background:#f6f9fc;display:grid;gap:9px}.material-action-box>strong{font-size:11px}.material-action-box>p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.material-action-box>label{display:flex;align-items:center;gap:7px;font-size:10px}.material-action-box>label:has(select),.material-action-box>label:has(input[type=date]){display:grid;gap:5px;font-weight:700;color:var(--muted)}.material-action-box select,.material-action-box input[type=date]{height:34px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:11px}.material-action-box>small{text-align:center;color:var(--muted);font-size:8px}.material-complete{margin:0 15px 15px;padding:14px;background:var(--green-bg);color:var(--green);display:flex;gap:10px;align-items:center}.material-complete>div{display:grid;gap:3px}.material-complete strong{font-size:12px}.material-complete span{font-size:9px;color:#4f6f5d}
.material-form{padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:11px}.material-form>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:700}.material-form>label:nth-of-type(1),.material-form>label:nth-of-type(2),.material-form>label:nth-of-type(5),.material-form>label:nth-of-type(6),.material-form>label:nth-of-type(9){grid-column:1/-1}.material-form input,.material-form select{width:100%;height:35px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:11px}.material-responsibility{grid-column:1/-1;background:var(--blue-2);border-left:3px solid var(--blue);padding:9px 10px;display:grid;gap:3px}.material-responsibility span{font-size:9px;color:var(--blue)}.material-responsibility strong{font-size:10px}.material-deadline-preview{grid-column:1/-1;border:1px solid #e8c382;background:var(--amber-bg);padding:9px 10px;display:grid;grid-template-columns:1fr auto;gap:3px 8px}.material-deadline-preview span,.material-deadline-preview small{font-size:9px;color:#7b6848}.material-deadline-preview strong{font-size:13px;color:var(--amber)}.material-deadline-preview small{grid-column:1/-1}.material-form>.button{grid-column:1/-1;min-height:38px}
@media (max-width:1120px){.materials-page .material-master-detail{grid-template-columns:1fr}.materials-page .detail-drawer{display:block}.material-detail-drawer,.material-create-drawer{max-width:none}.material-rule-rail{grid-template-columns:repeat(4,1fr)}.material-rule-rail p{grid-column:1/-1;min-height:32px}.material-detail-drawer .detail-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.material-flow{max-width:620px;margin-left:auto;margin-right:auto}.material-action-box,.material-answer-summary,.material-complete{max-width:620px;margin-left:auto;margin-right:auto}.material-create-drawer .material-form{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.material-rule-rail{grid-template-columns:1fr 1fr}.material-rule-rail>div{min-height:58px;padding:8px 10px}.material-rule-rail>div:nth-child(2n){border-right:0}.material-rule-rail>div:nth-child(n+3){border-top:1px solid var(--border)}.material-summary-rail{grid-template-columns:1fr 1fr}.material-summary-rail>div{min-height:55px;padding:8px 11px}.material-summary-rail>div:nth-child(2){border-right:0}.material-summary-rail>div:nth-child(n+3){border-top:1px solid var(--border)}.material-toolbar{align-items:stretch}.material-toolbar-actions{display:grid;grid-template-columns:1fr}.material-sort-field{width:100%;justify-content:space-between}.material-sort-field select{flex:1}.material-toolbar .segmented{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.material-toolbar .segmented button{width:100%}.material-table{min-width:860px}.material-order-table{min-width:1040px}.materials-page .material-master-detail{display:grid}.material-detail-drawer .detail-list{display:block}.material-batch-items-head{grid-template-columns:1fr}.material-batch-items-head label{grid-template-columns:auto 1fr}.material-flow{overflow-x:auto;grid-template-columns:repeat(7,65px);justify-content:start;padding-bottom:6px}.material-action-box,.material-answer-summary,.material-complete{margin-left:12px;margin-right:12px}.material-create-drawer .material-form{grid-template-columns:1fr}.material-form>label,.material-form>label:nth-of-type(n),.material-responsibility,.material-deadline-preview,.material-form>.button{grid-column:1}.materials-page .page-actions{overflow:visible}.materials-page .page-actions .button{width:100%}}

/* Expense approval workflow */
.expense-error{margin:0 0 12px;border:1px solid #edb8bb;background:var(--red-bg);color:var(--red);padding:10px 12px;font-size:11px}.expense-summary-rail{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:white;margin-bottom:12px}.expense-summary-rail>div{min-height:76px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-content:center;gap:2px 9px;padding:11px 14px}.expense-summary-rail>div:last-child{border-right:0}.expense-summary-rail svg{grid-row:1/3;align-self:center;color:var(--blue)}.expense-summary-rail span{font-size:9px;color:var(--muted)}.expense-summary-rail strong{font-size:18px}.expense-summary-rail strong small{font-size:9px;margin-left:3px;color:var(--muted)}.expense-summary-rail .warning{background:var(--amber-bg)}.expense-summary-rail .warning svg,.expense-summary-rail .warning strong{color:var(--amber)}.expense-toolbar{border:1px solid var(--border);background:white;padding:11px 12px;margin-bottom:12px;display:grid;grid-template-columns:220px 220px minmax(0,1fr);gap:10px;align-items:end}.expense-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.expense-toolbar select{height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 8px;color:var(--ink)}.expense-toolbar p{margin:0 0 9px;text-align:right;color:var(--muted);font-size:9px}.expense-workspace{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(470px,1.2fr);gap:12px;align-items:start}.expense-inbox{min-width:0}.expense-case-list{max-height:630px;overflow:auto}.expense-case{width:100%;min-height:88px;border:0;border-top:1px solid var(--border);background:white;padding:12px 14px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;color:var(--ink);cursor:pointer}.expense-case:hover,.expense-case.active{background:#f2f7fc}.expense-case.active{box-shadow:inset 4px 0 0 var(--blue)}.expense-case-icon{width:36px;height:36px;border-radius:50%;background:#e8f1fb;color:var(--blue);display:grid;place-items:center}.expense-case-copy{min-width:0;display:grid;gap:3px}.expense-case-copy strong{font-size:12px}.expense-case-copy b{font-size:11px}.expense-case-copy small{font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-case-status{display:grid;justify-items:end;gap:5px}.expense-case-status em{font-style:normal;font-size:8px;font-weight:750;color:var(--red);background:var(--red-bg);padding:3px 6px;border-radius:10px}.expense-empty{margin:0;padding:42px 15px;text-align:center;color:var(--muted);font-size:11px}.expense-empty--detail{min-height:300px;display:grid;place-items:center}.expense-detail{min-width:0;padding-bottom:15px}.expense-duplicate-warning{margin:0 14px 12px;border:1px solid #e5a5a8;border-left:4px solid var(--red);background:var(--red-bg);color:var(--red);padding:10px 12px;display:flex;gap:9px;align-items:flex-start}.expense-duplicate-warning div{display:grid;gap:3px}.expense-duplicate-warning strong{font-size:11px}.expense-duplicate-warning span{font-size:9px;line-height:1.5}.expense-detail-body{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(260px,1.3fr);gap:14px;padding:0 14px 14px}.expense-receipt{border:1px solid var(--border);background:#f5f7f9;min-height:250px;display:grid;grid-template-rows:minmax(220px,1fr) auto;overflow:hidden}.expense-receipt img{width:100%;height:100%;max-height:390px;object-fit:contain;background:#e8edf2}.expense-receipt span{padding:8px 9px;font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-detail-list{margin:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-left:1px solid var(--border);align-content:start}.expense-detail-list>div{min-height:58px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px 10px;display:grid;gap:4px;align-content:center}.expense-detail-list dt{font-size:8px;color:var(--muted)}.expense-detail-list dd{margin:0;font-size:10px;font-weight:700;overflow-wrap:anywhere}.expense-detail-list dd.amount{font-size:16px;color:var(--blue)}.expense-flow{display:grid;grid-template-columns:repeat(4,1fr);margin:6px 14px 16px}.expense-flow>div{position:relative;display:grid;justify-items:center;gap:6px;color:#8996a3;font-size:8px;text-align:center}.expense-flow>div:before{content:"";position:absolute;top:12px;right:50%;left:-50%;height:2px;background:#d5dde5}.expense-flow>div:first-child:before{display:none}.expense-flow i{width:25px;height:25px;border-radius:50%;background:#e5eaf0;display:grid;place-items:center;font-style:normal;z-index:1}.expense-flow .done,.expense-flow .active{color:var(--blue);font-weight:750}.expense-flow .done:before,.expense-flow .active:before{background:var(--blue)}.expense-flow .done i{background:var(--blue);color:white}.expense-flow .active i{background:white;border:2px solid var(--blue)}.expense-next-action{width:calc(100% - 28px);margin:0 14px;justify-content:center}.expense-complete{margin:0 14px;border:1px solid #9ccab4;background:var(--green-bg);color:var(--green);min-height:42px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;font-weight:750}

/* LINE expense entry */
.line-expense-body{display:grid;gap:11px}.line-expense-guide{border:1px solid #93b7db;border-left:4px solid var(--blue);background:#f1f7fd;color:var(--blue);padding:11px 12px;display:flex;align-items:center;gap:10px}.line-expense-guide div{display:grid;gap:3px}.line-expense-guide strong{font-size:12px;color:var(--ink)}.line-expense-guide span{font-size:9px;color:var(--muted)}.line-expense-form{border:1px solid var(--border);background:white;padding:13px;display:grid;gap:10px}.line-expense-form>label,.line-expense-row label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.line-expense-form input,.line-expense-form select,.line-expense-form textarea{width:100%;border:1px solid #b5c3d1;border-radius:4px;background:white;padding:0 10px;color:var(--ink);font-size:13px}.line-expense-form input,.line-expense-form select{height:41px}.line-expense-form textarea{min-height:66px;padding-top:9px;resize:vertical}.line-expense-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.line-expense-receipt-preview{margin:0;border:1px solid #7aa9d4;border-radius:6px;background:#f5f9fd;padding:9px;display:grid;gap:8px}.line-expense-receipt-preview-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.line-expense-receipt-preview-heading>span{min-width:0;display:grid;gap:2px}.line-expense-receipt-preview-heading strong{font-size:12px;color:var(--ink)}.line-expense-receipt-preview-heading small{font-size:8px;line-height:1.4;color:var(--muted)}.line-expense-receipt-preview-heading button{flex:0 0 auto;border:1px solid #d1dae4;border-radius:4px;background:white;color:#b42318;min-height:30px;padding:0 8px;display:flex;align-items:center;gap:3px;font-size:9px;font-weight:700;cursor:pointer}.line-expense-receipt-preview img{display:block;width:100%;max-height:420px;object-fit:contain;border:1px solid #d6e0ea;border-radius:4px;background:#eef2f6}.line-expense-receipt-preview p{margin:0;border-radius:4px;background:#e9f6ee;color:#177347;min-height:32px;padding:7px 9px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:10px;font-weight:750}.line-expense-receipt{min-height:116px!important;border:2px dashed #83a9ce!important;background:#f5f9fd!important;color:var(--blue)!important;display:grid!important;place-items:center;align-content:center;gap:4px!important;text-align:center;cursor:pointer}.line-expense-receipt.selected{min-height:86px!important;border-style:solid!important;background:#eef8f2!important;color:var(--green)!important}.line-expense-receipt strong{font-size:13px}.line-expense-receipt span{max-width:100%;padding:0 8px;font-size:9px;font-weight:500;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-expense-receipt input{display:none}.line-expense-submit{min-height:50px;border:0;border-radius:4px;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:750;cursor:pointer}.line-expense-submit:disabled{opacity:.6;cursor:wait}.line-expense-note{margin:0;display:flex;align-items:flex-start;gap:5px;color:var(--muted);font-size:8px;line-height:1.5}.line-expense-note svg{flex:0 0 auto;color:var(--amber)}.line-expense-history{border:1px solid var(--border);background:white}.line-expense-history article{min-height:67px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px}.line-expense-history article:last-child{border-bottom:0}.line-expense-history-icon{width:36px;height:36px;border-radius:50%;background:#edf4fb;color:var(--blue);display:grid;place-items:center}.line-expense-history article>div{min-width:0;display:grid;gap:3px}.line-expense-history strong{font-size:11px}.line-expense-history span,.line-expense-history small{font-size:8px;color:var(--muted)}.line-expense-history small{color:var(--blue);font-weight:700}
.line-material-body{display:grid;gap:11px}.line-material-guide{border:1px solid #93b7db;border-left:4px solid var(--blue);background:#f1f7fd;color:var(--blue);padding:11px 12px;display:flex;align-items:center;gap:10px}.line-material-guide div{display:grid;gap:3px}.line-material-guide strong{font-size:12px;color:var(--ink)}.line-material-guide span{font-size:9px;color:var(--muted);line-height:1.5}.line-material-form{border:1px solid var(--border);background:white;padding:13px;display:grid;gap:10px}.line-material-form>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.line-material-form input,.line-material-form select{width:100%;height:41px;border:1px solid #b5c3d1;border-radius:4px;background:white;padding:0 10px;color:var(--ink);font-size:13px}.line-material-responsibility{display:grid;grid-template-columns:1fr auto;gap:5px 12px;background:#f5f8fb;border-left:3px solid var(--blue);padding:9px 10px}.line-material-responsibility span{font-size:9px;color:var(--muted)}.line-material-responsibility strong{font-size:10px;text-align:right}.line-material-deadline{display:flex;align-items:center;gap:9px;border:1px solid #e2bd79;background:var(--amber-bg);padding:10px;color:var(--amber)}.line-material-deadline div{display:grid;gap:3px}.line-material-deadline span{font-size:8px;color:#7b6848}.line-material-deadline strong{font-size:14px}.line-material-submit{min-height:50px;border:0;border-radius:4px;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:750;cursor:pointer}.line-material-submit:disabled{opacity:.6;cursor:wait}.line-material-history{border:1px solid var(--border);background:white}.line-material-history article{min-height:67px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px}.line-material-history article:last-child{border-bottom:0}.line-material-history-icon{width:36px;height:36px;border-radius:50%;background:#edf4fb;color:var(--blue);display:grid;place-items:center}.line-material-history article>div{min-width:0;display:grid;gap:3px}.line-material-history strong{font-size:11px}.line-material-history span,.line-material-history small{font-size:8px;color:var(--muted)}.line-material-history small{color:var(--blue);font-weight:700}
@media (max-width:760px){.completion-scope-note{display:grid;gap:4px}.completion-scope-note strong{white-space:normal}.completion-actions{display:grid;grid-template-columns:1fr}.completion-actions .button{width:100%;justify-content:center}.completion-history article{grid-template-columns:1fr}.completion-history article p{grid-column:1}}

@media (max-width:1080px){.expense-workspace{grid-template-columns:1fr}.expense-case-list{max-height:360px}.expense-detail-body{grid-template-columns:minmax(220px,.7fr) minmax(300px,1.3fr)}}
@media (max-width:760px){.expense-summary-rail{grid-template-columns:1fr 1fr}.expense-summary-rail>div:nth-child(2n){border-right:0}.expense-summary-rail>div:nth-child(n+3){border-top:1px solid var(--border)}.expense-toolbar{grid-template-columns:1fr}.expense-toolbar p{text-align:left;margin:0}.expense-workspace{display:block}.expense-inbox{margin-bottom:12px}.expense-case{grid-template-columns:36px minmax(0,1fr)}.expense-case-status{grid-column:2;justify-items:start}.expense-detail-body{grid-template-columns:1fr}.expense-receipt{min-height:220px}.expense-detail-list{grid-template-columns:1fr 1fr}.expense-flow{overflow-x:auto;grid-template-columns:repeat(4,90px);justify-content:start;padding-bottom:5px}}

/* Shared attendance ledger */
.attendance-worker-empty{margin:0;padding:24px 14px;text-align:center;color:var(--muted);font-size:11px;line-height:1.6}
.attendance-page .attendance-actions .button:disabled{background:#d9e0e7;color:#7a8897;cursor:not-allowed}
.attendance-page .attendance-summary button{min-height:72px;border:1px solid var(--border);background:white;padding:12px 15px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px;text-align:left;color:var(--ink);cursor:pointer}.attendance-page .attendance-summary button.active{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue);background:#f3f8fe}.attendance-page .attendance-summary button svg{color:var(--blue)}.attendance-page .attendance-summary button strong{font-size:22px}.attendance-page .attendance-summary button span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-error{margin:0 0 12px;border:1px solid #edb8bb;background:var(--red-bg);color:var(--red);padding:10px 12px;font-size:11px}.attendance-register{padding-bottom:15px}.attendance-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:13px}.attendance-fields label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.attendance-fields label.wide{grid-column:1/-1}.attendance-fields input,.attendance-fields select{width:100%;height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 9px;color:var(--ink);font-size:11px}.attendance-page .worker-checks{margin-top:4px}.attendance-page .attendance-actions{padding:0 14px}.attendance-page .attendance-actions .button{flex:1}.attendance-page .entry-list>div{grid-template-columns:auto minmax(0,1fr) auto auto;padding:10px 0}.attendance-page .entry-list div>div{min-width:0}.attendance-page .entry-list small{font-size:9px;color:var(--muted)}.attendance-page .entry-list time{white-space:nowrap}.attendance-page .entry-list .button{min-width:72px}.attendance-empty{margin:0;padding:34px 12px;text-align:center;color:var(--muted);font-size:11px}.attendance-history{margin-top:14px}.attendance-history .data-table{min-width:760px}
.attendance-view-switch{display:flex;border:1px solid var(--border);background:white;margin-bottom:12px;width:max-content}.attendance-view-switch button{min-height:42px;border:0;border-right:1px solid var(--border);background:white;color:var(--ink);padding:0 18px;display:flex;align-items:center;gap:7px;font-size:12px;font-weight:750;cursor:pointer}.attendance-view-switch button:last-child{border-right:0}.attendance-view-switch button.active{background:var(--navy);color:white}.attendance-summary-toolbar{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(140px,.9fr) minmax(140px,.9fr) 132px 132px 158px;gap:9px;align-items:end;border:1px solid var(--border);background:white;padding:12px;margin-bottom:10px}.attendance-summary-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.attendance-summary-toolbar input,.attendance-summary-toolbar select{width:100%;height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 8px;color:var(--ink);font-size:11px}.attendance-summary-toolbar .button{height:36px;min-width:158px;white-space:nowrap}.attendance-counting-rule{display:flex;align-items:flex-start;gap:9px;border:1px solid #a9c6e3;border-left:4px solid var(--blue);background:#f4f9ff;color:var(--blue);padding:10px 12px;margin-bottom:10px}.attendance-counting-rule div{display:grid;gap:3px}.attendance-counting-rule strong{font-size:11px}.attendance-counting-rule span{font-size:9px;line-height:1.5;color:#516d8c}.attendance-kpis{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--border);background:white;margin-bottom:12px}.attendance-kpis>div{min-height:74px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-content:center;gap:2px 8px;padding:10px 13px}.attendance-kpis>div:last-child{border-right:0}.attendance-kpis svg{grid-row:1/3;color:var(--blue);align-self:center}.attendance-kpis span{font-size:9px;color:var(--muted)}.attendance-kpis strong{font-size:18px;color:var(--ink)}.attendance-kpis strong small{font-size:9px;margin-left:3px;color:var(--muted)}.attendance-kpis .warning{background:var(--amber-bg)}.attendance-kpis .warning svg,.attendance-kpis .warning strong{color:var(--amber)}.attendance-kpis .danger{background:var(--red-bg)}.attendance-kpis .danger svg,.attendance-kpis .danger strong{color:var(--red)}.attendance-analysis-layout{display:grid;grid-template-columns:minmax(350px,.85fr) minmax(440px,1.15fr);gap:12px;margin-bottom:12px}.attendance-budget-panel{padding-bottom:14px}.attendance-budget-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 12px}.attendance-budget-fields label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.attendance-budget-fields input,.attendance-budget-fields select{width:100%;height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 8px;color:var(--ink);font-size:11px}.attendance-budget-panel>.button{width:calc(100% - 28px);margin:0 14px}.attendance-cost-note{margin:9px 14px 0;color:var(--muted);font-size:8px;line-height:1.5}.attendance-profit-panel{border-top:3px solid #92a6b8}.attendance-profit-panel--safe{border-top-color:var(--green)}.attendance-profit-panel--warning{border-top-color:var(--amber)}.attendance-profit-panel--danger{border-top-color:var(--red)}.attendance-profit-list{margin:0;padding:0 14px 13px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.attendance-profit-list>div{min-height:40px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.attendance-profit-list>div.wide{grid-column:1/-1}.attendance-profit-list dt{font-size:9px;color:var(--muted)}.attendance-profit-list dd{margin:0;font-size:11px;font-weight:750;text-align:right}.attendance-profit-list dd.negative{color:var(--red)}.attendance-profit-list dd:has(i){flex:1}.attendance-profit-list i{display:block;width:100%;height:7px;background:#e2e8ef;border-radius:5px;overflow:hidden}.attendance-profit-list i b{display:block;height:100%;background:var(--blue)}.attendance-profit-panel--warning .attendance-profit-list i b{background:var(--amber)}.attendance-profit-panel--danger .attendance-profit-list i b{background:var(--red)}.attendance-daily-summary .data-table{min-width:940px}.attendance-daily-summary tfoot th{background:#eef3f8;color:var(--navy);font-size:11px;border-top:2px solid #aebdcb}.attendance-daily-summary tbody td:nth-child(5),.attendance-daily-summary tfoot th:nth-child(2){text-align:center}

.attendance-kpis--external{grid-template-columns:repeat(3,1fr)}
.attendance-daily-summary .table-wrap{max-width:100%;overflow-x:auto}

/* LINE attendance */
.line-home-menu button b{font-size:9px;color:var(--blue);background:#eaf3ff;border-radius:10px;padding:3px 8px}.line-attendance-body{display:grid;gap:11px}.line-attendance-summary{min-height:70px;border:1px solid #7eb59a;border-left:4px solid var(--green);background:var(--green-bg);color:var(--green);display:flex;align-items:center;gap:12px;padding:12px 14px}.line-attendance-summary div{display:grid;gap:3px}.line-attendance-summary span{font-size:9px;color:#557262}.line-attendance-summary strong{font-size:16px}.line-attendance-form{border:1px solid var(--border);background:white;padding:13px;display:grid;gap:10px}.line-attendance-form>header{display:flex;align-items:flex-start;gap:9px;color:var(--blue);padding-bottom:10px;border-bottom:1px solid var(--border)}.line-attendance-form>header div{display:grid;gap:3px}.line-attendance-form h2{margin:0;color:var(--ink);font-size:14px}.line-attendance-form p{margin:0}.line-attendance-form>header p{font-size:9px;color:var(--muted)}.line-attendance-form>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.line-attendance-form>label input,.line-worker-fields input{width:100%;height:40px;border:1px solid #b5c3d1;border-radius:4px;background:white;padding:0 10px;color:var(--ink);font-size:13px}.line-worker-fields{border-top:1px solid var(--border);padding-top:10px;display:grid;gap:8px}.line-worker-fields>span{font-size:10px;color:var(--muted);font-weight:750}.line-worker-fields>div{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px}.line-worker-fields>div button{border:1px solid #c8d3dd;background:white;color:var(--muted);border-radius:4px;display:grid;place-items:center;cursor:pointer}.line-add-worker{min-height:38px;border:1px dashed var(--blue);border-radius:4px;background:#f6faff;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:750;cursor:pointer}.line-attendance-submit{min-height:50px;border:0;border-radius:4px;background:var(--blue);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:750;cursor:pointer}.line-attendance-submit:disabled{opacity:.6;cursor:wait}.line-location-note{text-align:center;color:var(--muted);font-size:9px}.line-active-workers,.line-attendance-history{border:1px solid var(--border);background:white}.line-attendance-heading{min-height:45px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:9px 11px}.line-attendance-heading strong{font-size:12px}.line-attendance-heading span{color:var(--blue);font-size:10px;font-weight:750}.line-active-workers article{min-height:76px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:38px minmax(0,1fr) 62px;align-items:center;gap:8px;padding:9px 10px}.line-active-workers article:last-child{border-bottom:0}.line-worker-avatar{width:36px;height:36px;border-radius:50%;background:#e7f0fa;color:var(--blue);display:grid;place-items:center;font-size:13px;font-weight:800}.line-active-workers article>div{min-width:0;display:grid;gap:3px}.line-active-workers article strong{font-size:12px}.line-active-workers article span{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-active-workers article small{display:flex;align-items:center;gap:3px;color:#607489;font-size:8px}.line-active-workers article>button{min-height:38px;border:1px solid var(--blue);border-radius:4px;background:white;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:4px;font-size:10px;font-weight:750;cursor:pointer}.line-attendance-empty{margin:0;padding:28px 10px;text-align:center;color:var(--muted);font-size:10px}.line-attendance-history article{min-height:57px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px}.line-attendance-history article:last-child{border-bottom:0}.line-attendance-history article>div{min-width:0;display:grid;gap:3px}.line-attendance-history strong{font-size:10px}.line-attendance-history span{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-attendance-history time{font-size:8px;color:var(--green);white-space:nowrap}
.line-completion-menu{color:var(--green)!important;background:#f5fff9!important}.line-completion-body{display:grid;gap:11px}.line-completion-guide{border:1px solid #80bea0;border-left:4px solid var(--green);background:var(--green-bg);color:var(--green);padding:12px;display:flex;align-items:center;gap:10px}.line-completion-guide div{display:grid;gap:3px}.line-completion-guide strong{font-size:13px;color:var(--ink)}.line-completion-guide span{font-size:9px;line-height:1.5;color:#527061}.line-completion-checks{border:1px solid var(--border);background:white}.line-completion-checks>div{min-height:56px;border-bottom:1px solid var(--border);padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px}.line-completion-checks>div:last-child{border-bottom:0}.line-completion-checks span{font-size:9px;color:var(--muted)}.line-completion-checks strong{font-size:11px;text-align:right}.line-completion-checks .warning strong{color:var(--red)}.line-completion-checks .ready strong{color:var(--green)}.line-completion-form{border:1px solid var(--border);background:white;padding:13px;display:grid;gap:11px}.line-completion-warning{border:1px solid #e5b2b5;background:var(--red-bg);color:var(--red);padding:9px;display:flex;align-items:flex-start;gap:7px;font-size:10px;line-height:1.5}.line-completion-blocked{border:1px solid #df8f94;border-left:4px solid var(--red);background:var(--red-bg);color:var(--red);padding:11px;display:flex;align-items:flex-start;gap:8px}.line-completion-blocked>div{min-width:0;display:grid;gap:6px;flex:1}.line-completion-blocked strong{font-size:12px}.line-completion-blocked>div>span{font-size:9px;line-height:1.5}.line-completion-blocked ul{list-style:none;margin:2px 0;padding:0;border-top:1px solid #eac6c8}.line-completion-blocked li{min-height:31px;border-bottom:1px solid #eac6c8;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px}.line-completion-blocked li b{white-space:nowrap}.line-completion-blocked button{min-height:40px;border:1px solid var(--red);border-radius:4px;background:white;color:var(--red);display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:800;cursor:pointer}.line-completion-form>label:not(.line-completion-confirm){display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.line-completion-form textarea{min-height:90px;border:1px solid #b5c3d1;border-radius:4px;padding:9px;color:var(--ink);font:inherit;font-size:12px;resize:vertical}.line-completion-confirm{min-height:48px;border:1px solid #a6bacd;background:#f7fafc;padding:9px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:10px;font-weight:750}.line-completion-confirm:has(input:disabled){color:var(--muted);background:#f1f3f5}.line-completion-confirm input{width:19px;height:19px;accent-color:var(--green)}.line-completion-submit{min-height:52px;border:0;border-radius:4px;background:var(--green);color:white;display:flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:800;cursor:pointer}.line-completion-submit:disabled{opacity:.72;cursor:not-allowed}.line-completion-submit:disabled:has(.lucide-circle-alert){background:var(--red)}.line-completion-form>p{margin:0;color:var(--muted);font-size:9px;line-height:1.6;text-align:center}.line-completion-reported{min-height:145px;border:1px solid #82c3a3;background:var(--green-bg);color:var(--green);display:flex;align-items:flex-start;gap:12px;padding:18px}.line-completion-reported>div{display:grid;gap:5px}.line-completion-reported strong{font-size:15px;color:var(--ink)}.line-completion-reported span{font-size:9px;color:#567565}.line-completion-reported p{margin:5px 0 0;color:#3c5b4c;font-size:10px;line-height:1.6}

@media (max-width:760px){.attendance-fields{grid-template-columns:1fr}.attendance-fields label.wide{grid-column:1}.attendance-page .entry-list>div{grid-template-columns:auto minmax(0,1fr) auto}.attendance-page .entry-list time{display:none}.attendance-history{overflow:hidden}}
@media (max-width:1280px){.attendance-summary-toolbar{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-summary-toolbar .button{width:100%;min-width:0}.attendance-kpis{grid-template-columns:repeat(3,1fr)}.attendance-kpis>div:nth-child(3){border-right:0}.attendance-kpis>div:nth-child(n+4){border-top:1px solid var(--border)}.attendance-analysis-layout{grid-template-columns:1fr}.attendance-profit-list{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.attendance-view-switch{width:100%;display:grid;grid-template-columns:1fr 1fr}.attendance-view-switch button{justify-content:center;padding:0 8px;font-size:10px}.attendance-summary-toolbar{grid-template-columns:1fr 1fr}.attendance-summary-toolbar label:nth-child(-n+3){grid-column:1/-1}.attendance-summary-toolbar .button{grid-column:1/-1}.attendance-kpis{grid-template-columns:1fr 1fr}.attendance-kpis>div{border-top:1px solid var(--border)}.attendance-kpis>div:nth-child(1),.attendance-kpis>div:nth-child(2){border-top:0}.attendance-kpis>div:nth-child(2n){border-right:0}.attendance-kpis>div:nth-child(3){border-right:1px solid var(--border)}.attendance-kpis>div:last-child{grid-column:1/-1;border-right:0}.attendance-budget-fields,.attendance-profit-list{grid-template-columns:1fr}.attendance-profit-list>div.wide{grid-column:1}.attendance-daily-summary{overflow:hidden}}

/* Documents, manuals, and payment statements */
.document-tabs{display:flex;width:max-content;max-width:100%;border:1px solid var(--border);background:white;margin-bottom:12px;overflow-x:auto}.document-tabs button{min-height:44px;border:0;border-right:1px solid var(--border);background:white;padding:0 18px;display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:750;cursor:pointer}.document-tabs button:last-child{border-right:0}.document-tabs button.active{background:var(--navy);color:white}.document-safety-note{display:flex;align-items:flex-start;gap:10px;border:1px solid #9ebdde;border-left:4px solid var(--blue);background:#f4f9ff;color:var(--blue);padding:11px 13px;margin-bottom:12px}.document-safety-note div{display:grid;gap:3px}.document-safety-note strong{font-size:11px;color:var(--ink)}.document-safety-note span{font-size:9px;line-height:1.5;color:#526d8b}.document-loading{min-height:180px;border:1px solid var(--border);background:white;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px}.document-summary-rail{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:white;margin-bottom:12px}.document-summary-rail>div{min-height:70px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-content:center;gap:2px 9px;padding:10px 14px}.document-summary-rail>div:last-child{border-right:0}.document-summary-rail svg{grid-row:1/3;color:var(--blue);align-self:center}.document-summary-rail span{font-size:9px;color:var(--muted)}.document-summary-rail strong{font-size:18px}.document-workspace{display:grid;grid-template-columns:minmax(260px,.68fr) minmax(520px,1.32fr);gap:12px;align-items:start}.document-list-panel,.document-detail-panel,.manual-editor{min-width:0}.document-case-list,.manual-list{display:grid}.document-case-list>button{min-height:68px;border:0;border-top:1px solid var(--border);background:white;padding:10px 13px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;cursor:pointer}.document-case-list>button:first-child{border-top:0}.document-case-list>button.active{background:#f1f7fd;box-shadow:inset 4px 0 0 var(--blue)}.document-case-list>button>div{min-width:0;display:grid;gap:4px}.document-case-list strong{font-size:11px}.document-case-list span:not(.status-tag){font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-recipient-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 14px 14px}.document-recipient-grid label,.manual-fields label,.payment-import-fields label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.document-recipient-grid input,.manual-fields input,.manual-fields textarea,.payment-import-fields input,.payment-import-fields select{width:100%;border:1px solid #b8c6d4;border-radius:3px;background:white;color:var(--ink);padding:0 9px;font-size:11px}.document-recipient-grid input,.manual-fields input,.payment-import-fields input,.payment-import-fields select{height:37px}.document-checklist{border-top:1px solid var(--border);border-bottom:1px solid var(--border);overflow-x:auto}.document-checklist-head,.document-check-row{min-width:690px;display:grid;grid-template-columns:100px minmax(220px,1fr) 112px 140px;gap:9px;align-items:center}.document-checklist-head{min-height:34px;background:#f3f6f9;padding:0 14px;color:var(--muted);font-size:9px;font-weight:750}.document-check-row{min-height:52px;border-top:1px solid var(--border);padding:7px 14px}.document-check-row strong{font-size:10px}.document-check-row>input{width:100%;height:34px;border:1px solid #b8c6d4;border-radius:3px;padding:0 8px;font-size:10px}.document-check-row label{display:flex;align-items:center;gap:5px;font-size:9px;color:var(--muted)}.document-check-row label span{padding-left:20px}.document-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;padding:14px}.document-final-confirm{margin-right:auto;display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted)}.manual-list>button{min-height:68px;border:0;border-top:1px solid var(--border);background:white;padding:10px 12px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;cursor:pointer}.manual-list>button:first-child{border-top:0}.manual-list>button.active{background:#f1f7fd;box-shadow:inset 4px 0 0 var(--blue)}.manual-list svg{color:var(--blue)}.manual-list>button>div{min-width:0;display:grid;gap:3px}.manual-list strong{font-size:10px}.manual-list span{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-list b{font-size:9px;color:var(--blue);white-space:nowrap}.manual-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0 14px 14px}.manual-fields label.wide{grid-column:1/-1}.manual-fields textarea{min-height:72px;padding:9px;resize:vertical;line-height:1.5}.manual-fields .manual-steps-input{min-height:140px}.manual-readonly{min-height:37px;border:1px solid #e0e6ec;background:#f6f8fa;padding:0 9px;display:flex;align-items:center;color:var(--ink);font-size:10px;font-weight:500}.payment-import{margin-bottom:12px}.payment-import-fields{display:grid;grid-template-columns:130px minmax(150px,1fr) minmax(210px,1.3fr) minmax(200px,1.2fr) auto;gap:9px;align-items:end;padding:0 14px 14px}.payment-file-picker{height:37px;border:1px dashed var(--blue);border-radius:3px;background:#f6faff;color:var(--blue)!important;display:flex!important;align-items:center;gap:6px;padding:0 9px;cursor:pointer;overflow:hidden}.payment-file-picker span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.payment-file-picker input{display:none}.payment-import-fields>.button{height:37px;white-space:nowrap}.document-empty{margin:0;padding:30px 12px;text-align:center;color:var(--muted);font-size:10px}.document-empty-detail{min-height:220px;display:grid;place-items:center;align-content:center;gap:6px;color:var(--muted)}.document-empty-detail strong{font-size:12px}.document-empty-detail span{font-size:9px}.payment-details{margin:0;padding:0 14px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.payment-details>div{min-height:45px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.payment-details>div.wide{grid-column:1/-1}.payment-details dt{font-size:9px;color:var(--muted)}.payment-details dd{margin:0;font-size:10px;font-weight:700;text-align:right}.payment-details a{color:var(--blue)}.payment-details input{width:min(330px,55vw);height:34px;border:1px solid #b8c6d4;border-radius:3px;padding:0 8px}.payment-confirmations{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:14px}.payment-confirmations>label{border:1px solid var(--border);background:#f8fafc;padding:11px;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start}.payment-confirmations span{display:grid;gap:3px}.payment-confirmations strong{font-size:10px}.payment-confirmations small{font-size:8px;color:var(--muted);line-height:1.5}

/* LINE manuals */
.line-manual-body{display:grid;gap:11px}.line-manual-guide{border:1px solid #93b7db;border-left:4px solid var(--blue);background:#f1f7fd;color:var(--blue);padding:11px 12px;display:flex;align-items:center;gap:10px}.line-manual-guide div{display:grid;gap:3px}.line-manual-guide strong{font-size:12px;color:var(--ink)}.line-manual-guide span{font-size:9px;color:var(--muted);line-height:1.5}.line-manual-loading,.line-manual-empty{min-height:150px;border:1px solid var(--border);background:white;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;color:var(--muted);font-size:10px}.line-manual-empty strong{font-size:12px;color:var(--ink)}.line-manual-select{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.line-manual-select select{width:100%;height:40px;border:1px solid #b5c3d1;border-radius:4px;background:white;padding:0 10px;color:var(--ink);font-size:12px}.line-manual-card{border:1px solid var(--border);background:white}.line-manual-card>header{border-bottom:1px solid var(--border);padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.line-manual-card>header div{min-width:0;display:grid;gap:3px}.line-manual-card>header span{font-size:8px;color:var(--muted)}.line-manual-card h2{margin:0;font-size:14px}.line-manual-card>header b{border:1px solid #8bb8e5;background:#edf5ff;color:var(--blue);padding:5px 7px;font-size:9px;white-space:nowrap}.line-manual-card>p{margin:0;padding:12px;border-bottom:1px solid var(--border);font-size:10px;line-height:1.7;color:#40546a}.line-manual-card ol{list-style:none;margin:0;padding:5px 12px}.line-manual-card li{min-height:48px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:25px minmax(0,1fr);align-items:center;gap:7px;font-size:11px;line-height:1.5}.line-manual-card li:last-child{border-bottom:0}.line-manual-card li svg{width:25px;height:25px;border-radius:50%;background:var(--green-bg);color:var(--green);padding:5px}.line-manual-card>footer{border-top:1px solid var(--border);background:#f6f8fa;padding:9px 12px;display:flex;align-items:center;gap:5px;font-size:8px;color:var(--muted)}
.line-site-documents-body{display:grid;gap:11px}.line-site-documents-guide{border:1px solid #93b7db;border-left:4px solid var(--blue);background:#f1f7fd;color:var(--blue);padding:12px;display:flex;align-items:center;gap:10px}.line-site-documents-guide>div{display:grid;gap:3px}.line-site-documents-guide strong{font-size:12px;color:var(--ink)}.line-site-documents-guide span{font-size:9px;color:var(--muted);line-height:1.5}.line-site-documents-summary{min-height:58px;border:1px solid var(--border);background:white;padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.line-site-documents-summary>div{min-width:0;display:grid;gap:3px}.line-site-documents-summary span{font-size:9px;color:var(--muted)}.line-site-documents-summary strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-site-documents-summary>b{min-width:48px;border-radius:16px;background:#eaf3ff;color:var(--blue);padding:7px 10px;text-align:center;font-size:11px}.line-site-documents-loading,.line-site-documents-empty{min-height:160px;border:1px solid var(--border);background:white;padding:24px 16px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;color:var(--muted);font-size:10px}.line-site-documents-empty strong{font-size:13px;color:var(--ink)}.line-site-documents-empty span{max-width:290px;line-height:1.6}.line-site-documents-empty.is-error{border-color:#e5a7aa;background:#fff8f8;color:var(--red)}.line-site-documents-empty button{min-height:42px;margin-top:4px;border:1px solid var(--blue);border-radius:4px;background:white;color:var(--blue);padding:0 14px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;font-weight:750}.line-site-document-list{display:grid;gap:10px}.line-site-document-card{border:1px solid var(--border);background:white}.line-site-document-card>header{min-height:48px;border-bottom:1px solid var(--border);background:#f7f9fb;padding:9px 11px;display:flex;align-items:center;justify-content:space-between;gap:10px}.line-site-document-card>header>div{display:flex;align-items:center;gap:7px;color:var(--blue)}.line-site-document-card>header strong{color:var(--ink);font-size:12px}.line-site-document-card>header span{border-radius:12px;background:#eaf3ff;color:var(--blue);padding:3px 8px;font-size:9px;font-weight:750}.line-site-document-card>div{display:grid}.line-site-document-file{width:100%;min-height:68px;border:0;border-bottom:1px solid var(--border);background:white;padding:9px 11px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;color:var(--blue);cursor:pointer}.line-site-document-file:last-child{border-bottom:0}.line-site-document-file:active{background:#edf5ff}.line-site-document-icon{width:40px;height:44px;border:1px solid #bad0e6;border-radius:4px;background:#f1f7fd;color:var(--blue);display:grid;place-items:center}.line-site-document-icon--image{border-color:#a7ceb9;background:#eff9f4;color:var(--green)}.line-site-document-icon--sheet{border-color:#b4c7a7;background:#f2f8ee;color:#4f7d34}.line-site-document-copy{min-width:0;display:grid;gap:4px}.line-site-document-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:11px}.line-site-document-copy small{color:var(--muted);font-size:8px}.line-site-documents-refresh{min-height:48px;border:1px solid var(--blue);border-radius:4px;background:white;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:750;cursor:pointer}.line-site-documents-refresh:disabled{opacity:.6;cursor:wait}

@media (max-width:1180px){.document-workspace{grid-template-columns:1fr}.document-case-list{grid-template-columns:repeat(2,minmax(0,1fr))}.document-case-list>button:nth-child(2){border-top:0}.payment-import-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.payment-import-fields>.button{width:100%}}
@media (max-width:760px){.document-tabs{width:100%}.document-tabs button{flex:1;justify-content:center;padding:0 9px;font-size:10px}.document-safety-note{display:grid}.document-summary-rail{grid-template-columns:1fr}.document-summary-rail>div{border-right:0;border-top:1px solid var(--border)}.document-summary-rail>div:first-child{border-top:0}.document-case-list{grid-template-columns:1fr}.document-case-list>button:nth-child(2){border-top:1px solid var(--border)}.document-recipient-grid,.manual-fields,.payment-import-fields,.payment-confirmations{grid-template-columns:1fr}.manual-fields label.wide,.payment-details>div.wide{grid-column:1}.document-actions{display:grid;grid-template-columns:1fr}.document-actions .button{width:100%;justify-content:center}.document-final-confirm{margin:0}.payment-details{grid-template-columns:1fr}.payment-details input{width:min(100%,260px)}}

/* Managed tasks and notifications */
.task-summary-rail{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:white;margin-bottom:12px}.task-summary-rail>div{min-height:72px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-content:center;gap:2px 9px;padding:10px 14px}.task-summary-rail>div:last-child{border-right:0}.task-summary-rail svg{grid-row:1/3;color:var(--blue);align-self:center}.task-summary-rail span{font-size:9px;color:var(--muted)}.task-summary-rail strong{font-size:19px}.task-summary-rail .danger{background:var(--red-bg)}.task-summary-rail .danger svg,.task-summary-rail .danger strong{color:var(--red)}.task-completion-review{margin-bottom:12px;padding:16px;border-left:4px solid var(--green);display:grid;gap:14px}.task-completion-review>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-completion-review>header>div{display:grid;gap:3px}.task-completion-review>header span{font-size:9px;color:var(--muted)}.task-completion-review>header h2{margin:0;font-size:16px}.task-completion-report-meta{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border)}.task-completion-report-meta>div{min-height:62px;padding:10px 12px;border-right:1px solid var(--border);display:grid;align-content:center;gap:4px}.task-completion-report-meta>div:last-child{border-right:0}.task-completion-report-meta span,.task-completion-note>span{font-size:8px;color:var(--muted)}.task-completion-report-meta strong{font-size:11px}.task-completion-auto-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px}.task-completion-auto-checks>div{min-height:58px;border:1px solid #9bcab2;background:var(--green-bg);padding:10px 12px;display:flex;align-items:center;gap:9px;color:var(--green)}.task-completion-auto-checks span{display:grid;gap:2px}.task-completion-auto-checks strong{font-size:11px;color:var(--ink)}.task-completion-auto-checks small{font-size:8px;color:#527061}.task-completion-note{border:1px solid var(--border);background:#f8fafc;padding:11px 12px;display:grid;gap:4px}.task-completion-note p{margin:0;font-size:11px;line-height:1.6}.task-completion-links{display:flex;gap:8px;flex-wrap:wrap}.task-completion-links .button{justify-content:center}.task-completion-confirm{min-height:56px;border:1px solid #a6bacd;background:#f7fafc;padding:10px 12px;display:flex;align-items:center;gap:9px;font-size:11px;font-weight:750;transition:background-color .18s,border-color .18s,box-shadow .18s}.task-completion-confirm input{width:19px;height:19px;accent-color:var(--green)}.task-completion-confirm>span{display:grid;gap:3px}.task-completion-confirm small{font-size:9px;font-weight:650;color:#687a8c}.task-completion-confirm--checked{border-color:#2b9f6a;background:#e9f8f0;box-shadow:inset 4px 0 #158657}.task-completion-confirm--checked small{color:#0d7148}.task-completion-approve{min-height:48px;justify-content:center;transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s}.task-completion-approve--waiting:disabled{border-color:#bcc7d1!important;background:#e7ebef!important;color:#71808d!important;opacity:1;cursor:not-allowed;box-shadow:none}.task-completion-approve--ready{border-color:#11764b;background:#158657;color:#fff;box-shadow:0 3px 9px rgba(21,134,87,.24)}.task-completion-approve--ready:hover{border-color:#0b633e;background:#0f7348;color:#fff}.task-capture-panel{margin-bottom:12px}.task-capture-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:0 14px 12px}.task-sentence{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.task-sentence textarea{width:100%;min-height:72px;border:1px solid #b8c6d4;border-radius:3px;padding:9px;resize:vertical;color:var(--ink);font-size:12px;line-height:1.5}.task-capture-buttons{display:grid;grid-template-columns:1fr;gap:7px;align-content:end}.task-capture-buttons .button{justify-content:center;white-space:nowrap}.task-fields{display:grid;grid-template-columns:1.2fr .7fr .8fr;gap:10px;padding:12px 14px;border-top:1px solid var(--border);background:#f8fafc}.task-fields label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.task-fields label.wide{grid-column:span 2}.task-fields input,.task-fields select{width:100%;height:37px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 9px;color:var(--ink);font-size:11px}.task-create-action{display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:12px 14px}.task-create-action>span{margin-right:auto;color:var(--muted);font-size:9px}.task-toolbar{display:grid;grid-template-columns:180px 240px 1fr;gap:10px;align-items:end;padding:12px 14px;border-bottom:1px solid var(--border)}.task-toolbar label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.task-toolbar select{width:100%;height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 8px;font-size:11px}.task-toolbar>span{text-align:right;color:var(--muted);font-size:9px;padding-bottom:10px}.task-ledger-list{display:grid}.managed-task{min-height:74px;border-bottom:1px solid var(--border);border-left:4px solid var(--blue);display:grid;grid-template-columns:55px minmax(0,1fr) auto 150px;align-items:center;gap:11px;padding:10px 14px}.managed-task:last-child{border-bottom:0}.managed-task--overdue{border-left-color:var(--red);background:#fffafa}.managed-task--today,.managed-task--soon{border-left-color:var(--amber)}.managed-task--done{border-left-color:var(--green);background:#f8fbf9}.managed-task--selected{outline:2px solid #91bce9;outline-offset:-2px;background:#f5f9ff}.managed-task>time{font-size:13px;font-weight:800;text-align:center}.managed-task>div{min-width:0;display:grid;gap:3px}.managed-task>div span,.managed-task>div small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.managed-task>div strong{font-size:11px}.managed-task--done>div strong{text-decoration:line-through;color:var(--muted)}.managed-task>.button{justify-content:center}.task-ledger-empty{margin:0;padding:36px 12px;text-align:center;color:var(--muted);font-size:11px}.button--danger{border-color:#e2a4a8!important;background:var(--red-bg)!important;color:var(--red)!important}
@media (max-width:900px){.task-completion-report-meta{grid-template-columns:1fr 1fr}.task-completion-report-meta>div:nth-child(2){border-right:0}.task-completion-report-meta>div:nth-child(-n+2){border-bottom:1px solid var(--border)}.task-fields{grid-template-columns:1fr 1fr}.task-fields label.wide{grid-column:1/-1}.managed-task{grid-template-columns:50px minmax(0,1fr) auto}.managed-task>.button{grid-column:2/-1;justify-self:end}}
@media (max-width:760px){.task-summary-rail{grid-template-columns:1fr}.task-summary-rail>div{border-right:0;border-top:1px solid var(--border)}.task-summary-rail>div:first-child{border-top:0}.task-completion-review{padding:12px}.task-completion-review>header{align-items:flex-start}.task-completion-report-meta,.task-completion-auto-checks{grid-template-columns:1fr}.task-completion-report-meta>div{border-right:0;border-bottom:1px solid var(--border)}.task-completion-report-meta>div:last-child{border-bottom:0}.task-completion-links{display:grid}.task-capture-grid{grid-template-columns:1fr}.task-capture-buttons{grid-template-columns:1fr 1fr}.task-fields,.task-toolbar{grid-template-columns:1fr}.task-fields label.wide{grid-column:1}.task-toolbar>span{text-align:left;padding:0}.task-create-action{display:grid}.task-create-action .button{width:100%;justify-content:center}.managed-task{grid-template-columns:45px minmax(0,1fr);align-items:start}.managed-task>.status-tag{grid-column:1}.managed-task>.button{grid-column:2;justify-self:stretch}}

/* Sunday is a standard non-working day */
.gantt-day-row .sunday,.portfolio-day-row span.sunday{background:#fff0f0;color:#b4232c}
.gantt-track>div.sunday,.gantt-group-track>div.sunday,.portfolio-track>i.sunday{background:#fff3f3;border-right-color:#efc5c8}
.gantt-day-row .holiday,.portfolio-day-row span.holiday{background:#fff4dc;color:#8a5200}
.gantt-track>div.holiday,.gantt-group-track>div.holiday,.portfolio-track>i.holiday{background:#fff9e9;border-right-color:#e7c77f}
.gantt-day-row span,.portfolio-day-row span{box-shadow:inset 0 -2px 0 #8fa6bb}

/* Working Gantt editor */
.gantt-add-form{display:grid;grid-template-columns:140px minmax(180px,1fr) minmax(150px,.8fr) 130px 90px auto;gap:9px;align-items:end;border:1px solid #9dbbd8;border-left:4px solid var(--blue);background:#f5f9fe;padding:12px;margin-bottom:12px}.gantt-add-form label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.gantt-add-form input,.gantt-add-form select{width:100%;height:36px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 8px;color:var(--ink);font-size:10px}.gantt-add-form>div{display:flex;gap:7px}.inspector-input{width:100%;min-width:0;height:32px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 7px;color:var(--ink);font-size:10px}
.schedule-view-switch{display:inline-flex;align-items:center;border:1px solid #9eb4c9;background:#f3f6f9;padding:3px;margin:0 0 12px}.schedule-view-switch button{height:38px;border:0;background:transparent;color:#496075;padding:0 18px;font-size:12px;font-weight:750;cursor:pointer;display:flex;align-items:center;gap:7px}.schedule-view-switch button strong{font-size:10px;font-weight:750;background:#dfe7ef;color:#40566b;padding:2px 6px;border-radius:10px}.schedule-view-switch button.is-active{background:#1764c0;color:#fff;box-shadow:0 1px 3px rgba(17,70,127,.2)}.schedule-view-switch button.is-active strong{background:#fff;color:#1764c0}.schedule-period-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--border);padding:9px 12px;margin:0 0 10px}.schedule-period-label{display:flex;align-items:center;gap:8px;color:#1764c0}.schedule-period-label>span{display:flex;flex-direction:column;gap:2px}.schedule-period-label small{font-size:9px;color:var(--muted)}.schedule-period-label strong{font-size:12px;color:var(--ink);white-space:nowrap}.schedule-period-actions{display:flex;align-items:center;gap:6px}.schedule-period-actions label{display:flex;align-items:center;gap:6px;margin-left:4px;font-size:10px;font-weight:750;white-space:nowrap}.schedule-period-actions input{height:30px;border:1px solid #aebdcb;border-radius:3px;background:#fff;padding:0 7px;color:var(--ink);font-size:11px}.gantt-project-picker{min-height:46px;background:white;border:1px solid var(--border);padding:7px 12px;display:flex;align-items:center;gap:18px;margin-bottom:10px}.gantt-project-picker label{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:750}.gantt-project-picker select{height:32px;min-width:280px;border:1px solid #aebdcb;border-radius:3px;background:white;padding:0 30px 0 9px;color:var(--ink);font-size:12px}.gantt-project-picker span{font-size:10px;color:var(--muted)}
.portfolio-summary{display:grid;grid-template-columns:150px 150px 150px 1fr;border:1px solid var(--border);background:#fff;margin-bottom:10px}.portfolio-summary>div{min-height:74px;border-right:1px solid var(--border);padding:12px 15px;display:flex;flex-direction:column;justify-content:center}.portfolio-summary small{font-size:10px;color:var(--muted);margin-bottom:3px}.portfolio-summary strong{font-size:24px;color:var(--ink);line-height:1}.portfolio-summary strong.text-red{color:var(--red)}.portfolio-summary em{font-style:normal;font-size:10px;margin-left:4px;color:var(--muted)}.portfolio-summary p{margin:0;padding:0 18px;display:flex;align-items:center;color:#526579;font-size:11px;line-height:1.65}.portfolio-controls{min-height:43px;background:#fff;border:1px solid var(--border);border-bottom:0;display:flex;align-items:center;gap:13px;padding:6px 12px;font-size:11px}.portfolio-controls>small{margin-left:auto;color:var(--muted)}.portfolio-frame{background:#fff;border:1px solid var(--border);min-height:520px;overflow:hidden}.portfolio-table{--portfolio-info-width:430px;display:grid;grid-template-columns:var(--portfolio-info-width) max-content;align-content:start;max-height:650px;overflow:auto;overscroll-behavior-x:contain}.portfolio-head{height:62px;background:#f7f9fb;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.portfolio-info-head{left:0;z-index:8;display:grid;grid-template-columns:2fr 1.1fr 1fr;box-shadow:2px 0 5px rgba(16,37,61,.08)}.portfolio-info-head span{display:grid;place-items:center;border-right:1px solid var(--border);font-size:10px;font-weight:750;color:#526273}.portfolio-calendar-head{display:grid;grid-template-rows:25px 37px;width:var(--portfolio-calendar-width);overflow:visible}.portfolio-month-row,.portfolio-day-row{display:grid;grid-template-columns:repeat(var(--portfolio-days),36px);width:var(--portfolio-calendar-width)}.portfolio-month-row span{display:flex;align-items:center;padding-left:8px;border-right:1px solid #b8c8d8;border-bottom:1px solid var(--border);font-size:10px;color:#40576d;background:#eef3f7}.portfolio-month-row span b{position:sticky;left:calc(var(--portfolio-info-width) + 8px);white-space:nowrap}.portfolio-day-row span{display:grid;place-items:center;align-content:center;border-right:1px solid var(--border);font-size:9px;color:#526273;line-height:1.05}.portfolio-day-row span b{white-space:nowrap}.portfolio-day-row span small{font-size:8px;margin-top:2px}.portfolio-day-row span.weekend{background:#f5f7f9}.portfolio-day-row span.current-day{background:#1764c0;color:white}.portfolio-project-row,.portfolio-task-row{display:contents}.portfolio-project-info,.portfolio-task-info{position:sticky;left:0;z-index:3;display:grid;grid-template-columns:2fr 1.1fr 1fr;border-bottom:1px solid #b9cadc;background:#f6f9fc;box-shadow:2px 0 5px rgba(16,37,61,.08)}.portfolio-project-info{height:64px}.portfolio-project-info>span,.portfolio-task-info>span{min-width:0;border-right:1px solid var(--border);padding:8px 10px;display:flex;align-items:center;gap:6px;font-size:10px}.portfolio-project-info>span:not(:first-child){flex-direction:column;align-items:flex-start;justify-content:center;gap:3px}.portfolio-project-info>span:last-child{align-items:stretch}.portfolio-project-info b{font-size:11px}.portfolio-project-info small{font-size:9px;color:var(--muted)}.portfolio-project-name{padding-left:6px!important}.portfolio-project-name>.icon-button{width:27px;height:27px;flex:0 0 auto}.portfolio-project-name>span{display:flex;flex-direction:column;gap:4px;min-width:0}.portfolio-project-name b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-project-info .table-link{display:inline-flex;align-items:center;gap:3px;font-size:9px;justify-content:flex-start}.portfolio-track{position:relative;display:grid;grid-template-columns:repeat(var(--portfolio-days),36px);width:var(--portfolio-calendar-width);border-bottom:1px solid #b9cadc}.portfolio-project-track{height:64px;background:#f9fbfd}.portfolio-track>i{border-right:1px solid #e2e9ef}.portfolio-track>i.weekend{background:#f3f6f8}.portfolio-track>i.current-column{background:#e8f2ff;border-left:1px solid #4b97ee}.portfolio-project-bar,.portfolio-task-bar{position:absolute;left:calc(var(--start) * 36px + 4px);width:calc(var(--duration) * 36px - 8px);background:var(--bar-color);border-radius:3px;overflow:hidden}.portfolio-project-bar{top:19px;height:27px;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 8px;box-shadow:0 1px 2px rgba(10,42,74,.18)}.portfolio-project-bar b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-project-bar em{font-size:9px;font-style:normal;font-weight:750;margin-left:8px}.portfolio-task-info{height:46px;background:white;border-bottom-color:var(--border)}.portfolio-task-info>span:first-child{padding-left:37px;position:relative}.portfolio-task-info>span:first-child:before{content:"";position:absolute;left:20px;top:0;bottom:50%;width:8px;border-left:1px solid #b7c4d0;border-bottom:1px solid #b7c4d0}.portfolio-task-info>span:first-child i{width:8px;height:8px;border-radius:2px;flex:0 0 auto}.portfolio-task-info b{font-size:10px}.portfolio-task-track{height:46px;border-bottom-color:var(--border);background:#fff}.portfolio-task-bar{top:14px;height:18px}.portfolio-task-bar em{display:block;height:100%;background:rgba(0,0,0,.2)}.portfolio-empty{border:1px solid var(--border);background:#fff;padding:50px 20px;text-align:center;color:var(--muted);font-size:12px}
.schedule-empty-state{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.schedule-empty-state strong{font-size:17px;color:var(--ink)}.schedule-empty-state span{font-size:12px;color:var(--muted)}.schedule-empty-state .button{margin-top:8px}
@media (max-width:1180px){.gantt-add-form{grid-template-columns:repeat(3,minmax(0,1fr))}.gantt-add-form>div{grid-column:1/-1;justify-content:flex-end}}
@media (max-width:1120px){.portfolio-table{--portfolio-info-width:390px}.portfolio-summary{grid-template-columns:130px 130px 130px 1fr}}
@media (max-width:760px){.gantt-add-form{grid-template-columns:1fr}.gantt-add-form>div{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.gantt-add-form .button{justify-content:center}.schedule-view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%}.schedule-view-switch button{justify-content:center;padding:0 8px}.schedule-period-controls{display:grid}.schedule-period-actions{display:grid;grid-template-columns:repeat(3,1fr)}.schedule-period-actions .button{justify-content:center;padding-left:5px;padding-right:5px}.schedule-period-actions label{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;margin:0}.schedule-period-actions input{width:100%}.gantt-project-picker{display:block}.gantt-project-picker label{display:grid;gap:5px}.gantt-project-picker select{min-width:0;width:100%}.gantt-project-picker>span{display:block;margin-top:6px}.portfolio-summary{grid-template-columns:repeat(3,1fr)}.portfolio-summary>div{min-height:64px;padding:9px;border-bottom:1px solid var(--border)}.portfolio-summary p{grid-column:1/-1;padding:10px 12px}.portfolio-controls{overflow-x:auto;white-space:nowrap}.portfolio-controls>small{display:none}.portfolio-frame{min-height:500px}.portfolio-table{--portfolio-info-width:330px;max-height:600px}.portfolio-info-head,.portfolio-project-info,.portfolio-task-info{grid-template-columns:1.65fr .95fr .9fr}.portfolio-project-info>span,.portfolio-task-info>span{padding-left:6px;padding-right:6px}.portfolio-project-info .table-link svg{display:none}.portfolio-project-bar b{display:none}}
@media (max-width:760px){.gantt-group-add-form{width:330px}.gantt-group-add-info{padding-left:6px;padding-right:6px}.gantt-group-add-info button{font-size:9px}}

/* Project post-order checklist */
.project-checklist-panel{overflow:hidden}.arrangement-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;border-top:1px solid var(--border);background:#f7f9fb;padding:12px 14px}.arrangement-fields label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.arrangement-fields select{width:100%;height:37px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 9px;color:var(--ink);font-size:10px}
@media (max-width:760px){.arrangement-fields{grid-template-columns:1fr}}

/* Project list filters */
.project-filter-panel{display:flex;align-items:end;gap:12px;margin:-4px 0 14px;padding:12px 14px;border:1px solid var(--border);background:#f7f9fb}.project-filter-panel label{display:grid;gap:5px;min-width:180px;color:var(--muted);font-size:11px;font-weight:700}.project-filter-panel select{height:38px;border:1px solid #b8c5d1;border-radius:4px;background:white;padding:0 10px;color:var(--ink)}.project-filter-panel>span{margin-left:auto;color:var(--muted);font-size:12px;font-weight:700}.project-filter-panel .text-button{min-height:38px}
.project-list-row{cursor:pointer}.data-table tbody tr.project-list-row:hover{background:#edf5ff}.project-list-row:hover .table-link--strong{text-decoration:underline}.project-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding-left:5px}.project-open-button{color:var(--blue);background:#eef5ff}.project-open-button:hover{background:#dcecff}.project-delete-button{position:relative;color:var(--red);background:#fff7f7}.project-delete-button:before{content:"";position:absolute;left:-9px;top:6px;bottom:6px;border-left:1px solid #d5dee7;pointer-events:none}.project-delete-button:hover{background:var(--red-bg)}.project-delete-confirm-row>td{padding:0!important;background:#fff8f8}.project-delete-confirm{min-height:66px;border-top:1px solid #e8b7ba;border-bottom:1px solid #e8b7ba;box-shadow:inset 4px 0 0 var(--red);display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;gap:10px;padding:10px 14px;color:var(--red)}.project-delete-confirm>div:nth-child(2){display:grid;gap:3px}.project-delete-confirm strong{font-size:12px}.project-delete-confirm span{color:#73595b;font-size:10px;line-height:1.5}.project-delete-confirm>div:last-child{display:flex;gap:7px}.project-delete-confirm .button--danger{background:var(--red);border-color:var(--red);color:white}
@media(max-width:760px){.project-filter-panel{align-items:stretch;flex-direction:column}.project-filter-panel label{min-width:0}.project-filter-panel>span{margin-left:0}}

/* Selected construction photos can be printed or saved as PDF from the browser. */
@media print{body *{visibility:hidden!important}.photo-submission-panel,.photo-submission-panel *{visibility:visible!important}.photo-submission-panel{position:absolute;inset:0 auto auto 0;width:100%;border:0;box-shadow:none}.photo-submission-actions,.photo-submission-move,.photo-submission-remove,.sidebar,.topbar{display:none!important}.photo-submission-list article{break-inside:avoid;grid-template-columns:40px 180px minmax(0,1fr);min-height:150px}.photo-submission-list .photo-contact-preview{width:170px;height:125px}.photo-submission-list .photo-contact-preview img{width:100%;height:100%;object-fit:contain}.photo-submission-meta{break-inside:avoid}}
.dashboard-empty-note{display:block;padding:14px;color:var(--muted);font-size:10px;text-align:center}

/* Material order import from the workbook's 原価表 sheet. */
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.material-excel-import{padding:0;margin-bottom:14px;overflow:hidden}.material-excel-heading{min-height:72px;padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.material-excel-heading>div{display:flex;align-items:center;gap:11px;min-width:0}.material-excel-heading>div>svg{color:var(--green);flex:0 0 auto}.material-excel-heading>div>span{display:grid;gap:4px;min-width:0}.material-excel-heading strong{font-size:14px}.material-excel-heading small{font-size:10px;color:var(--muted);font-weight:500}.material-excel-state{min-height:160px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--blue)}.material-excel-state strong{font-size:13px}.material-excel-state span{font-size:10px;color:var(--muted)}.material-excel-error{margin:14px 16px;padding:12px;background:var(--red-bg);border-left:4px solid var(--red);color:var(--red);display:flex;align-items:flex-start;gap:9px}.material-excel-error>div{display:grid;gap:4px}.material-excel-error strong{font-size:12px}.material-excel-error span{font-size:10px;line-height:1.5;color:#795457}.material-excel-source{margin:14px 16px 0;padding:11px 12px;background:var(--green-bg);border-left:4px solid var(--green);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 10px;color:var(--green)}.material-excel-source>div{display:grid;gap:3px}.material-excel-source strong{font-size:12px}.material-excel-source span{font-size:9px;color:#4f6f5d}.material-excel-source>small{max-width:270px;font-size:9px;line-height:1.4;color:#735f32;background:var(--amber-bg);padding:6px 8px}.material-excel-settings{margin:12px 16px;display:grid;grid-template-columns:1.3fr 1fr .85fr 1fr auto;gap:10px;align-items:end}.material-excel-settings>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.material-excel-settings select,.material-excel-settings input{width:100%;height:36px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:11px}.material-excel-deadline{min-width:142px;min-height:55px;padding:8px 10px;background:var(--amber-bg);border:1px solid #e7c27e;display:grid;grid-template-columns:1fr auto;gap:2px 8px}.material-excel-deadline span,.material-excel-deadline small{font-size:8px;color:#7b6848}.material-excel-deadline strong{font-size:12px;color:var(--amber)}.material-excel-deadline small{grid-column:1/-1}.material-excel-deadline.overdue{background:var(--red-bg);border-color:#e8a1a5}.material-excel-deadline.overdue strong{color:var(--red)}.material-column-mapping{margin:0 16px 13px;border:1px solid var(--border);background:#f8fafc}.material-column-mapping summary{cursor:pointer;padding:10px 12px;color:var(--blue);font-size:10px;font-weight:750}.material-column-mapping>div{border-top:1px solid var(--border);padding:11px;display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:9px}.material-column-mapping label{display:grid;gap:5px;color:var(--muted);font-size:8px;font-weight:700}.material-column-mapping select{width:100%;height:34px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 7px;color:var(--ink);font-size:10px}.material-excel-table-heading{padding:10px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.material-excel-table-heading>div{display:flex;align-items:baseline;gap:10px}.material-excel-table-heading strong{font-size:12px}.material-excel-table-heading span{font-size:9px;color:var(--muted)}.material-excel-table-wrap{border-top:1px solid var(--border);border-bottom:1px solid var(--border);max-height:380px}.material-excel-table{min-width:1060px}.material-excel-table th:first-child,.material-excel-table td:first-child{width:52px;text-align:center}.material-excel-table th:nth-child(2),.material-excel-table td:nth-child(2){width:62px}.material-excel-table td{padding:6px}.material-excel-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}.material-excel-table input:not([type=checkbox]){width:100%;height:32px;border:1px solid #c3cfda;background:white;border-radius:3px;padding:0 7px;color:var(--ink);font-size:10px}.material-excel-table tr.row-muted{opacity:.52}.material-excel-empty{min-height:100px;display:grid;place-items:center;color:var(--muted);font-size:10px}.material-excel-actions{min-height:75px;padding:12px 16px;background:#f6f9fc;display:flex;align-items:center;justify-content:space-between;gap:18px}.material-excel-actions>div{display:grid;gap:4px}.material-excel-actions strong{font-size:12px}.material-excel-actions span{font-size:9px;color:var(--muted)}
.material-excel-dropzone{position:relative;min-height:104px;margin:14px 16px;border:2px dashed #85a9ca;background:#f6faff;color:var(--blue);transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}.material-excel-dropzone:hover,.material-excel-dropzone:focus-within{border-color:var(--blue);background:#edf6ff;box-shadow:0 0 0 3px rgba(23,100,192,.1);outline:0}.material-excel-dropzone.is-dragging{border-style:solid;border-color:var(--green);background:var(--green-bg);color:var(--green);box-shadow:0 0 0 4px rgba(30,122,82,.12);transform:translateY(-1px)}.material-excel-dropzone.has-file{min-height:82px}.material-excel-native-input{position:absolute;inset:0;z-index:2;width:100%;height:100%;opacity:0;cursor:pointer}.material-excel-native-input:disabled{cursor:wait}.material-excel-dropzone-content{min-height:100px;padding:17px 20px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;pointer-events:none}.material-excel-dropzone.has-file .material-excel-dropzone-content{min-height:78px}.material-excel-dropzone-content>svg{flex:0 0 auto}.material-excel-dropzone-content>div{display:grid;gap:5px}.material-excel-dropzone strong{font-size:15px;color:var(--ink)}.material-excel-dropzone span{font-size:10px;color:var(--muted)}.material-excel-dropzone-content>b{min-width:118px;border:1px solid currentColor;background:white;padding:9px 12px;text-align:center;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.line-material-sync{border:1px solid #9ccbb3;background:#f1faf5;padding:11px;display:grid;grid-template-columns:auto 1fr;gap:5px 9px;align-items:center;color:var(--green)}.line-material-sync>div{display:grid;gap:3px}.line-material-sync strong{font-size:11px;color:var(--ink)}.line-material-sync span{font-size:8px;line-height:1.5;color:var(--muted)}.line-material-sync button{grid-column:1/-1;min-height:38px;border:1px solid #7db597;background:white;color:var(--green);display:flex;align-items:center;justify-content:center;gap:6px;font-size:10px;font-weight:750}
@media (max-width:1120px){.material-excel-settings{grid-template-columns:1fr 1fr 1fr}.material-column-mapping>div{grid-template-columns:repeat(3,1fr)}}
@media (max-width:1328px){.materials-page .page-header{flex-wrap:wrap}.materials-page .page-header>div:first-child{min-width:0}.materials-page .page-actions{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:wrap}.material-excel-settings{grid-template-columns:1fr 1fr 1fr}.material-column-mapping>div{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){.material-excel-heading{align-items:stretch;flex-direction:column}.material-excel-heading>.button{width:100%}.material-excel-dropzone{min-height:112px}.material-excel-dropzone-content{grid-template-columns:auto minmax(0,1fr);padding:15px;min-height:108px}.material-excel-dropzone-content>b{grid-column:1/-1;width:100%}.material-excel-source{grid-template-columns:auto 1fr}.material-excel-source>small{grid-column:1/-1;max-width:none}.material-excel-settings{grid-template-columns:1fr 1fr}.material-excel-deadline{grid-column:1/-1}.material-column-mapping>div{grid-template-columns:1fr}.material-excel-table-heading{align-items:flex-start}.material-excel-table-heading>div{display:grid;gap:3px}.material-excel-actions{align-items:stretch;flex-direction:column}.material-excel-actions>.button{width:100%}}

/* The eight Excel order columns scroll inside the preview instead of widening the page. */
.material-excel-table{min-width:1480px}
.material-excel-table th:nth-child(3){width:190px}
.material-excel-table th:nth-child(4),.material-excel-table th:nth-child(7),.material-excel-table th:nth-child(8){width:95px}
.material-excel-table th:nth-child(5),.material-excel-table th:nth-child(6){width:155px}
.material-excel-table th:nth-child(9){width:80px}
.material-excel-table th:nth-child(10){width:230px}
.attendance-inline-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;font-weight:750}.attendance-inline-filter select{height:30px;min-width:150px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 7px;color:var(--ink);font-size:10px}
/* 17:30未退場通知 */
.attendance-overdue-panel{margin:0 0 14px;border-left:4px solid var(--green)}.attendance-overdue-panel--alert{border-left-color:var(--amber)}.attendance-overdue-list{display:grid;gap:0;padding:0 14px}.attendance-overdue-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.attendance-overdue-list>div:last-child{border-bottom:0}.attendance-overdue-list>div>div{display:grid;gap:3px;min-width:0}.attendance-overdue-list strong{font-size:12px}.attendance-overdue-list span{font-size:10px;color:var(--muted)}.attendance-overdue-empty{margin:0;padding:10px 14px;color:var(--muted);font-size:11px}.attendance-overdue-note{margin:0;padding:9px 14px;background:#f7f9fb;color:var(--muted);font-size:9px;line-height:1.5}
/* 再入場履歴 */
.attendance-history-row--reentry{background:#eef6ff}.attendance-history-row--reentry td:first-child{font-weight:750}.attendance-first-entry{color:var(--muted);font-size:10px}
.project-excel-import{display:flex;align-items:center;gap:12px;border:1px dashed #8fa9c2;background:#f8fbff;color:var(--blue);padding:13px 14px;margin-bottom:17px}.project-excel-import>div{display:grid;gap:3px;flex:1}.project-excel-import strong{font-size:12px;color:var(--ink)}.project-excel-import span,.project-excel-import small{font-size:10px;color:var(--muted)}.project-excel-import-error{color:var(--red)!important}.project-excel-import label{position:relative}.project-excel-import input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
/* 工程に紐づく天候・気温の実績ログ */
.schedule-weather-panel{margin:10px 0;padding:13px 15px}.schedule-weather-panel .panel-heading h2{display:flex;align-items:center;gap:6px}.schedule-weather-form{display:grid;grid-template-columns:repeat(5,minmax(100px,1fr));gap:8px;align-items:end}.schedule-weather-form label{display:grid;gap:4px;font-size:10px;font-weight:750;color:#40566b}.schedule-weather-form input,.schedule-weather-form select{height:32px;border:1px solid #aebdcb;border-radius:3px;background:#fff;padding:0 7px;color:var(--ink);font-size:11px}.schedule-weather-form .schedule-weather-note{grid-column:span 2}.schedule-weather-form>.button{height:32px;justify-content:center}.schedule-weather-summary{display:flex;gap:16px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}.schedule-weather-summary strong{color:#1764c0}.schedule-weather-list{display:grid;gap:0;margin-top:8px;border:1px solid var(--border);border-bottom:0}.schedule-weather-list>div{display:grid;grid-template-columns:100px 50px 110px 60px 1fr 28px;align-items:center;gap:8px;min-height:34px;padding:4px 8px;border-bottom:1px solid var(--border);font-size:10px}.schedule-weather-list time{font-variant-numeric:tabular-nums}.schedule-weather-list b{color:#1764c0}.schedule-weather-list small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-weather-toggle-heading{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:14px}.schedule-weather-toggle-heading>div{display:flex;align-items:center;gap:14px;min-width:0}.schedule-weather-toggle-heading h2{margin:0;display:flex;align-items:center;gap:6px;font-size:15px;white-space:nowrap}.schedule-weather-toggle-heading span{color:var(--muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-weather-toggle-heading span strong{color:var(--blue)}.schedule-weather-toggle-heading .button{min-width:106px;justify-content:center}.schedule-weather-toggle-heading svg{transition:transform .15s ease}.schedule-weather-toggle-heading svg.is-open{transform:rotate(180deg)}.schedule-weather-details{border-top:1px solid var(--border);margin-top:8px;padding-top:10px}.schedule-weather-detail-actions{display:flex;justify-content:flex-end}.schedule-weather-detail-actions+.schedule-weather-auto-status{margin-top:8px}
.schedule-weather-auto-status{margin-top:10px;padding:10px 12px;border:1px solid #c8d8e7;border-left:4px solid var(--blue);background:#f7faff;display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:6px 12px}
.schedule-weather-auto-status strong{grid-row:1 / span 2;align-self:center;border-radius:12px;background:#e7f2ff;color:var(--blue);padding:4px 8px;font-size:10px;white-space:nowrap}
.schedule-weather-auto-status span{font-size:11px;font-weight:650;line-height:1.5;color:var(--ink)}
.schedule-weather-auto-status small{font-size:9px;line-height:1.5;color:var(--muted)}
.schedule-weather-auto-status em{grid-column:2;margin-top:2px;border-left:3px solid var(--red);background:var(--red-bg);padding:6px 8px;color:var(--red);font-size:10px;font-style:normal;line-height:1.5}
@media (max-width:760px){.schedule-weather-panel{padding:10px}.schedule-weather-panel .panel-heading{display:grid;gap:8px}.schedule-weather-form{grid-template-columns:1fr 1fr}.schedule-weather-form .schedule-weather-note{grid-column:1/-1}.schedule-weather-form>.button{grid-column:1/-1}.schedule-weather-list>div{grid-template-columns:82px 42px 92px 42px 1fr 24px;gap:4px}}
@media (max-width:760px){.schedule-weather-toggle-heading{align-items:flex-start}.schedule-weather-toggle-heading>div{display:grid;gap:3px}.schedule-weather-toggle-heading span{white-space:normal}.schedule-weather-toggle-heading .button{min-width:94px}.schedule-weather-detail-actions .button{width:100%;justify-content:center}}
@media (max-width:760px){.schedule-weather-auto-status{grid-template-columns:1fr;gap:7px;padding:10px}.schedule-weather-auto-status strong{grid-row:auto;justify-self:start}.schedule-weather-auto-status span,.schedule-weather-auto-status small,.schedule-weather-auto-status em{grid-column:1}.schedule-weather-auto-status em{margin-top:1px}}
.schedule-weather-form .schedule-weather-location{grid-column:span 2}
@media (max-width:760px){.schedule-weather-form .schedule-weather-location{grid-column:1/-1}}
.schedule-weather-day{border-bottom:1px solid var(--border);background:#fff}.schedule-weather-day>header{display:grid;grid-template-columns:90px 92px minmax(0,1fr) 28px;align-items:center;gap:8px;min-height:36px;padding:5px 9px;background:#f7faff}.schedule-weather-day>header time{font-weight:750;font-variant-numeric:tabular-nums}.schedule-weather-day>header strong{color:var(--blue);font-size:10px}.schedule-weather-day>header small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.schedule-weather-periods{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px}.schedule-weather-periods>div{display:grid;grid-template-columns:minmax(80px,1fr) 48px 84px 72px 62px;align-items:center;gap:7px;min-height:42px;padding:7px 9px;border:1px solid #c8d8e7;border-radius:4px;background:#fbfdff;font-size:10px}.schedule-weather-periods>div>span:first-child{display:grid;gap:1px}.schedule-weather-periods b{font-size:12px;color:var(--ink)}.schedule-weather-periods small{color:var(--muted)}.schedule-weather-periods>div>strong{color:var(--blue);font-size:12px}.schedule-weather-hourly{margin:0 9px 9px;border:1px solid var(--border);border-radius:4px}.schedule-weather-hourly summary{cursor:pointer;padding:7px 9px;color:var(--blue);font-size:10px;font-weight:750}.schedule-weather-hourly>div{display:grid;grid-template-columns:repeat(5,minmax(105px,1fr));gap:1px;background:var(--border);border-top:1px solid var(--border)}.schedule-weather-hourly>div>span{display:grid;grid-template-columns:auto auto;gap:2px 6px;padding:6px 7px;background:#fff;font-size:9px}.schedule-weather-hourly b{font-size:10px}.schedule-weather-hourly em{justify-self:end;color:var(--blue);font-style:normal;font-weight:750}.schedule-weather-hourly small{color:var(--muted)}.schedule-weather-day>footer{padding:0 9px 8px;color:var(--muted);font-size:9px}.schedule-weather-legacy{display:grid;grid-template-columns:50px 90px 55px 1fr;gap:8px;align-items:center;padding:8px 9px}.schedule-weather-legacy>b{color:var(--blue)}.schedule-weather-legacy small{color:var(--muted)}
@media (max-width:760px){.schedule-weather-day>header{grid-template-columns:76px 80px minmax(0,1fr) 26px}.schedule-weather-periods{grid-template-columns:1fr}.schedule-weather-periods>div{grid-template-columns:minmax(74px,1fr) 42px 78px 64px 54px}.schedule-weather-hourly>div{grid-template-columns:repeat(2,minmax(120px,1fr));max-height:220px;overflow:auto}.schedule-weather-legacy{grid-template-columns:42px 82px 48px}.schedule-weather-legacy small{grid-column:1/-1}}

/* 天候・気温ログの分析画面 */
.weather-page{display:grid;gap:14px}.weather-page>.page-header{margin-bottom:0}.weather-project-bar{display:grid;grid-template-columns:minmax(300px,1fr) minmax(260px,1fr) auto;align-items:end;gap:12px}.weather-project-bar label{display:grid;gap:5px;color:#40566b;font-size:11px;font-weight:750}.weather-project-bar select{height:38px;border:1px solid #aebdcb;border-radius:4px;background:#fff;padding:0 10px;color:var(--ink)}.weather-project-bar>span{min-height:38px;display:flex;align-items:center;gap:7px;color:var(--ink);font-size:12px}.weather-project-bar>small{align-self:center;color:var(--muted);font-size:10px}.weather-page-error{border:1px solid #efb0b4;border-left:4px solid var(--red);background:var(--red-bg);padding:10px 12px;color:var(--red);font-size:12px;line-height:1.5}.weather-loading{color:var(--muted);font-size:13px}.weather-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--border);background:#fff}.weather-kpis>div{min-height:88px;display:flex;align-items:center;gap:12px;padding:15px 18px;border-right:1px solid var(--border);color:var(--blue)}.weather-kpis>div:last-child{border-right:0}.weather-kpis>div.is-caution{color:var(--amber);background:#fffaf1}.weather-kpis span{display:grid;gap:4px;color:var(--muted);font-size:11px}.weather-kpis strong{color:var(--ink);font-size:27px;line-height:1;font-variant-numeric:tabular-nums}.weather-kpis small{margin-left:4px;color:var(--muted);font-size:11px}.weather-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.weather-section-heading>div{display:flex;align-items:flex-start;gap:8px;color:var(--blue)}.weather-section-heading span{display:grid;gap:3px}.weather-section-heading h2{margin:0;color:var(--ink);font-size:16px}.weather-section-heading p{margin:0;color:var(--muted);font-size:11px}.weather-section-heading>strong{border-radius:14px;background:var(--blue-2);padding:5px 9px;color:var(--blue);font-size:10px}.weather-chart-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:12px}.weather-chart-card{min-width:0;border:1px solid var(--border);border-radius:4px;background:#fbfdff;padding:12px}.weather-chart-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.weather-chart-title>div{display:flex;align-items:center;gap:8px;color:var(--blue)}.weather-chart-title span{display:grid;gap:2px}.weather-chart-title strong{color:var(--ink);font-size:13px}.weather-chart-title small,.weather-chart-title p{margin:0;color:var(--muted);font-size:9px}.weather-chart-title p{display:flex;align-items:center;gap:5px}.weather-chart-title i{width:15px;height:3px;display:inline-block;border-radius:2px}.weather-chart-title i.is-high{background:#dc6a35}.weather-chart-title i.is-low{background:#1764c0}.weather-chart-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.weather-line-chart,.weather-rain-chart{display:block;width:100%;min-width:520px;height:auto}.weather-chart-grid{stroke:#dce5ee;stroke-width:1}.weather-chart-axis,.weather-chart-date{fill:#65758b;font-size:10px}.weather-chart-line{fill:none;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.weather-chart-line--high{stroke:#dc6a35}.weather-chart-line--low{stroke:#1764c0}.weather-chart-point{stroke:#fff;stroke-width:2}.weather-chart-point--high{fill:#dc6a35}.weather-chart-point--low{fill:#1764c0}.weather-chart-value{font-size:10px;font-weight:750}.weather-chart-value--high{fill:#b44c1e}.weather-chart-value--low{fill:#1557a4}.weather-chart-value--rain{fill:#0f7f86}.weather-rain-bar{fill:#1595a0}.weather-summary-table .data-table td{font-variant-numeric:tabular-nums}.weather-condition{display:inline-flex;min-width:42px;justify-content:center;border-radius:12px;padding:3px 7px;background:#eef3f7;color:#43566a;font-size:10px}.weather-condition--雨,.weather-condition--雪{background:#eaf3ff;color:#1764c0}.weather-condition--強風,.weather-condition--猛暑{background:var(--amber-bg);color:var(--amber)}.weather-daily-section{display:grid;gap:0}.weather-daily-section>.weather-section-heading{margin:3px 0 9px}.weather-daily-section>.schedule-weather-list{margin-top:0;background:#fff}
@media (max-width:1050px){.weather-chart-grid{grid-template-columns:1fr}.weather-project-bar{grid-template-columns:1fr 1fr}.weather-project-bar>small{grid-column:1/-1}.weather-kpis>div{padding:13px}}
@media (max-width:760px){.weather-page{gap:10px}.weather-page>.page-header{display:grid}.weather-page>.page-header .page-actions{width:100%;margin:0;display:grid;grid-template-columns:1fr 1fr}.weather-project-bar{grid-template-columns:1fr;padding:11px}.weather-project-bar>small{grid-column:auto}.weather-kpis{grid-template-columns:1fr 1fr}.weather-kpis>div{min-height:76px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:12px}.weather-kpis>div:nth-child(2){border-right:0}.weather-kpis>div:nth-child(n+3){border-bottom:0}.weather-kpis strong{font-size:23px}.weather-analysis,.weather-summary-table{padding:11px}.weather-section-heading{display:grid;gap:7px}.weather-section-heading>strong{justify-self:start}.weather-chart-card{padding:9px}.weather-line-chart,.weather-rain-chart{width:620px;min-width:620px}.weather-summary-table .data-table-wrap{overflow:visible}.weather-summary-table .data-table,.weather-summary-table .data-table tbody{display:grid;gap:8px}.weather-summary-table .data-table thead{display:none}.weather-summary-table .data-table tr{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:4px;background:#fff;padding:6px 9px}.weather-summary-table .data-table td{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #edf1f5;padding:7px 4px;text-align:right}.weather-summary-table .data-table td:nth-child(1),.weather-summary-table .data-table td:nth-child(2){grid-column:span 1}.weather-summary-table .data-table td:nth-child(n+3){grid-column:1/-1}.weather-summary-table .data-table td:last-child{border-bottom:0}.weather-summary-table .data-table td::before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:700}.weather-daily-section>.weather-section-heading{padding:0 2px}}
.weather-chart-rule{stroke:#dce5ee;stroke-width:1}
.weather-page-notice{border:1px solid #b9d4ef;border-left:4px solid var(--blue);background:#f3f8fe;padding:10px 12px;color:#235b91;font-size:12px;line-height:1.5}
.weather-line-chart,.weather-rain-chart{min-width:420px}
@media (max-width:760px){.weather-line-chart,.weather-rain-chart{width:620px;min-width:620px}}
@media (max-width:760px){.weather-summary-table .data-table{width:100%;min-width:0}}
@media (max-width:760px){.weather-page{max-width:100%;min-width:0;overflow:hidden}.weather-page>*{min-width:0}.weather-summary-table{overflow:hidden}}

/* 過去実績を参照した工程案は、担当者が根拠を確認してから反映する。 */
.schedule-proposal-panel{margin:10px 0 12px;padding:0;overflow:hidden;border-color:#9fc0e4;box-shadow:0 4px 14px rgba(23,100,192,.08)}
.schedule-proposal-heading{min-height:64px;padding:12px 15px;background:#eef6ff;border-bottom:1px solid #c9dcef;display:flex;align-items:center;justify-content:space-between;gap:12px}.schedule-proposal-heading>div{display:flex;align-items:center;gap:10px;color:var(--blue)}.schedule-proposal-heading span{display:grid;gap:2px}.schedule-proposal-heading small{font-size:9px;font-weight:750}.schedule-proposal-heading h2{margin:0;color:var(--ink);font-size:16px}
.schedule-proposal-summary{margin:0;padding:13px 15px 11px;color:#334b63;font-size:11px;line-height:1.7}
.schedule-proposal-evidence{margin:0 15px 12px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:#fafcfe}.schedule-proposal-evidence>span{min-height:58px;padding:9px 11px;border-right:1px solid var(--border);display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-content:center;gap:1px 7px}.schedule-proposal-evidence>span:last-child{border-right:0}.schedule-proposal-evidence svg{grid-row:1/3;align-self:center;color:var(--blue)}.schedule-proposal-evidence small{font-size:9px;color:var(--muted)}.schedule-proposal-evidence strong{font-size:15px}
.schedule-proposal-basis{margin:0 15px;border:1px solid var(--border);border-bottom:0}.schedule-proposal-basis>div{min-height:52px;padding:8px 10px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:minmax(130px,.9fr) 76px minmax(220px,1.6fr);align-items:center;gap:10px}.schedule-proposal-basis span{display:grid;gap:2px}.schedule-proposal-basis span strong{font-size:11px}.schedule-proposal-basis span small{font-size:9px;color:var(--muted)}.schedule-proposal-basis b{color:var(--blue);font-size:11px}.schedule-proposal-basis p{margin:0;color:#51677d;font-size:9px;line-height:1.5}
.schedule-proposal-note{margin:10px 15px 0;padding:8px 10px;border-left:3px solid var(--amber);background:var(--amber-bg);color:#735f32;font-size:9px;line-height:1.5}.schedule-proposal-actions{padding:12px 15px 15px;display:flex;justify-content:flex-end;gap:8px}.schedule-proposal-actions .button{min-width:130px}
@media(max-width:760px){.schedule-proposal-evidence{grid-template-columns:1fr 1fr}.schedule-proposal-evidence>span:nth-child(2){border-right:0}.schedule-proposal-evidence>span:nth-child(-n+2){border-bottom:1px solid var(--border)}.schedule-proposal-basis>div{grid-template-columns:1fr auto}.schedule-proposal-basis p{grid-column:1/-1}.schedule-proposal-actions{display:grid;grid-template-columns:1fr 1fr}.schedule-proposal-actions .button{min-width:0;padding:0 8px}}

/* 案件Excel「材工試算」の工賃を、工事区分ごとの採算基準として表示する。 */
.work-editor-head,.work-editor-row{grid-template-columns:38px 58px minmax(150px,1fr) minmax(130px,.8fr) minmax(190px,1.2fr) minmax(170px,1fr) 38px}
.work-amount-field{display:grid;gap:3px}.work-amount-field>span{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work-amount-field input:disabled{background:#f1f4f7;color:#8190a0}
.project-excel-import-success{color:var(--green)!important;font-weight:700}.project-excel-import-warning{color:var(--amber)!important}
.jutec-construction-status{margin:-5px 0 17px;padding:11px 12px;border:1px solid;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.jutec-construction-status>div{display:grid;gap:3px}.jutec-construction-status strong{font-size:11px}.jutec-construction-status span{font-size:9px;line-height:1.55}.jutec-construction-status.is-required{border-color:#e3a454;border-left:4px solid #d88419;background:#fff8e9;color:#9a5c0b}.jutec-construction-status.is-required span{color:#755936}.jutec-construction-status.is-complete{border-color:#8cc6a9;border-left:4px solid var(--green);background:var(--green-bg);color:var(--green)}.jutec-construction-status.is-complete span{color:#3e6955}.jutec-construction-backdrop{position:fixed;inset:0;z-index:190;background:rgba(5,25,45,.64);display:grid;place-items:center;padding:20px}.jutec-construction-dialog{width:min(680px,96vw);background:#fff;border:1px solid #8fa5ba;box-shadow:0 20px 60px rgba(0,20,45,.34);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.jutec-construction-dialog>header{min-height:68px;padding:11px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.jutec-construction-dialog>header>div{display:flex;align-items:center;gap:10px;color:#bd7316}.jutec-construction-dialog>header span{display:grid;gap:2px}.jutec-construction-dialog>header strong{font-size:15px;color:var(--ink)}.jutec-construction-dialog>header small{font-size:9px;color:var(--muted)}.jutec-construction-dialog>header>button{width:36px;height:36px;border:1px solid #b8c6d4;background:#fff;color:var(--ink);font-size:22px;cursor:pointer}.jutec-construction-body{padding:16px;display:grid;gap:13px}.jutec-construction-body>p{margin:0;color:#40566b;font-size:11px;line-height:1.7}.jutec-construction-body dl{margin:0;border:1px solid var(--border);display:grid;grid-template-columns:repeat(3,1fr)}.jutec-construction-body dl>div{padding:9px 10px;border-right:1px solid var(--border);display:grid;gap:4px}.jutec-construction-body dl>div:last-child{border-right:0}.jutec-construction-body dt{color:var(--muted);font-size:8px;font-weight:750}.jutec-construction-body dd{margin:0;color:var(--ink);font-size:10px;font-weight:700;line-height:1.5}.jutec-construction-drop{min-height:120px;border:2px dashed #4c91cf;background:#f1f7fd;padding:16px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;color:var(--blue)}.jutec-construction-drop>div{display:grid;gap:4px}.jutec-construction-drop strong{font-size:12px}.jutec-construction-drop span{font-size:9px;color:var(--muted);line-height:1.5}.jutec-construction-drop label{position:relative;cursor:pointer}.jutec-construction-drop input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.jutec-construction-error{border:1px solid #df9298;background:var(--red-bg);color:var(--red);padding:9px 10px;font-size:10px;font-weight:700}.jutec-construction-dialog>footer{min-height:62px;padding:10px 15px;border-top:1px solid var(--border);background:#f8fafc;display:flex;justify-content:flex-end}
@media(max-width:760px){.jutec-construction-status{grid-template-columns:auto 1fr}.jutec-construction-status .button{grid-column:1/-1;width:100%}.jutec-construction-backdrop{padding:0}.jutec-construction-dialog{width:100vw;min-height:100dvh}.jutec-construction-body{padding:12px}.jutec-construction-body dl{grid-template-columns:1fr}.jutec-construction-body dl>div{border-right:0;border-bottom:1px solid var(--border)}.jutec-construction-body dl>div:last-child{border-bottom:0}.jutec-construction-drop{grid-template-columns:auto 1fr}.jutec-construction-drop label{grid-column:1/-1;width:100%}.jutec-construction-dialog>footer .button{width:100%}}
.attendance-budget-source{color:var(--green);font-size:8px;line-height:1.45}.attendance-budget-source--empty{color:var(--muted)}
@media(max-width:1120px){.work-editor-head,.work-editor-row{grid-template-columns:36px 50px minmax(140px,1fr) minmax(120px,.8fr) minmax(160px,1fr) minmax(150px,1fr) 36px}}
@media(max-width:760px){.work-editor-head{display:none}.work-editor-row{grid-template-columns:34px 42px 1fr 34px}.work-editor-row>.work-amount-field{grid-column:3/5}}

/* 積算数量は参考値として残し、業者の実発注と差異を蓄積する。 */
.project-material-order-guidance{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid #f0d49b;background:#fff9ed;color:var(--amber)}
.project-material-order-guidance>div{display:grid;gap:2px}.project-material-order-guidance strong{font-size:11px;color:#674b12}.project-material-order-guidance span{font-size:9px;line-height:1.5;color:#80632c}
.project-material-candidate-table{min-width:1320px}.project-material-candidate-table th:nth-child(2){width:245px}.project-material-candidate-table th:nth-child(3),.project-material-candidate-table th:nth-child(4){width:140px}.project-material-candidate-table th small{font-size:8px;color:var(--muted)}
.project-material-row--over{background:#fff9ed}.project-material-candidate-actions>div{flex-wrap:wrap}.project-material-order-warning{border-radius:12px;background:#fff0cf;padding:5px 8px!important;color:#8b5b00!important;font-weight:750}.text-blue{color:var(--blue)}

/* 案件Excelを1回だけ読み取り、材料候補台帳から発注する導線。 */
.project-material-import-results{margin:12px 0 18px;border:1px solid #a9c9b7;background:#f7fcf9}.project-material-import-results>header{min-height:56px;padding:11px 14px;border-bottom:1px solid #cde1d5;display:flex;align-items:center;justify-content:space-between;gap:14px}.project-material-import-results>header>div{display:flex;align-items:center;gap:9px;color:var(--green)}.project-material-import-results>header span{display:grid;gap:2px}.project-material-import-results>header strong{font-size:13px;color:var(--ink)}.project-material-import-results>header small{font-size:10px;color:var(--green)}.project-material-import-results>header p{margin:0;padding:6px 9px;background:white;border:1px solid #cde1d5;color:var(--green);font-size:9px;font-weight:750}.project-material-import-results article{min-height:68px;padding:10px 14px;border-bottom:1px solid #dce9e1;display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px) auto;align-items:end;gap:12px}.project-material-import-results article:last-child{border-bottom:0}.project-material-import-results article>div{display:grid;gap:4px;align-self:center;min-width:0}.project-material-import-results article>div strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-material-import-results article>div span{font-size:9px;color:var(--muted)}.project-material-import-results article>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.project-material-import-results select{width:100%;height:34px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:10px}
.project-material-import-results .project-workbook-number{width:max-content;padding:3px 7px;border-radius:999px;background:#e8f2ff;color:var(--blue);font-size:9px;line-height:1.2}
.project-material-candidates{margin:14px 0;overflow:hidden}.project-material-candidates-heading{min-height:68px;padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px}.project-material-candidates-heading>div{display:flex;align-items:center;gap:10px}.project-material-candidates-heading>div>svg{color:var(--blue)}.project-material-candidates-heading span{display:grid;gap:3px}.project-material-candidates-heading strong{font-size:14px}.project-material-candidates-heading small{font-size:9px;color:var(--muted);font-weight:500}.project-material-candidate-controls{padding:12px 16px;background:#f6f9fc;display:grid;grid-template-columns:1.25fr 1fr 1.2fr 120px;align-items:end;gap:11px}.project-material-candidate-controls>label,.project-material-candidate-actions label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.project-material-candidate-controls select,.project-material-candidate-actions select,.project-material-candidate-actions input{width:100%;height:36px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 8px;color:var(--ink);font-size:10px}.project-material-candidate-count{min-height:52px;padding:7px 11px;border:1px solid #b9cee2;background:white;display:flex;align-items:center;justify-content:space-between}.project-material-candidate-count span{font-size:9px;color:var(--muted)}.project-material-candidate-count strong{font-size:22px;color:var(--blue)}.project-material-candidate-count small{font-size:9px;margin-left:3px}.project-material-candidate-empty{min-height:115px;padding:20px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--amber)}.project-material-candidate-empty>div{display:grid;gap:4px}.project-material-candidate-empty strong{font-size:12px;color:var(--ink)}.project-material-candidate-empty span{font-size:9px;color:var(--muted)}.project-material-candidate-table-wrap{max-height:430px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.project-material-candidate-table{min-width:1140px}.project-material-candidate-table th:first-child,.project-material-candidate-table td:first-child{width:54px;text-align:center}.project-material-candidate-table th:nth-child(2){width:260px}.project-material-candidate-table th:nth-child(3),.project-material-candidate-table th:nth-child(4){width:150px}.project-material-candidate-table th:nth-child(n+5){width:105px}.project-material-candidate-table td>strong{font-size:10px}.project-material-candidate-table td>small{display:block;margin-top:3px;max-width:260px;color:var(--muted);font-size:8px;white-space:normal}.project-material-candidate-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}.project-material-candidate-table input[type=number]{width:90px;height:32px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 7px;font-size:10px}.project-material-candidate-table input:disabled{background:#eef2f5;color:#9aa6b2}.project-material-candidate-actions{min-height:77px;padding:12px 16px;background:#f6f9fc;display:flex;align-items:end;justify-content:space-between;gap:16px}.project-material-candidate-actions>div{display:flex;align-items:end;gap:10px}.project-material-candidate-actions label{min-width:155px}.project-material-candidate-actions>div>span{padding-bottom:8px;color:var(--muted);font-size:9px}.project-material-candidate-actions>div>span strong{color:var(--amber)}.material-update-guide{margin:0 0 14px;border:1px solid var(--border);background:#f8fafc}.material-update-guide summary{cursor:pointer;padding:10px 13px;color:var(--blue);font-size:10px;font-weight:750}.material-update-guide p{margin:0;padding:0 13px 12px;color:var(--muted);font-size:9px;line-height:1.6}
.project-material-manual{border-top:1px solid var(--border);background:#fff}.project-material-manual>header{min-height:66px;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:16px}.project-material-manual.is-open>header{background:#f4f8fc}.project-material-manual>header>div{display:flex;align-items:center;gap:10px}.project-material-manual>header svg{color:var(--blue)}.project-material-manual>header span{display:grid;gap:3px}.project-material-manual>header strong{font-size:12px}.project-material-manual>header small{font-size:9px;color:var(--muted);font-weight:500}.project-material-manual-form{padding:14px 16px;border-top:1px solid var(--border);background:#f8fbfe;display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:12px}.project-material-manual-form label{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.project-material-manual-form label>span{justify-self:start;border-radius:10px;background:#fff0cf;padding:2px 6px;color:#8b5b00;font-size:8px}.project-material-manual-form label>input,.project-material-manual-form label>select{grid-column:1/-1;width:100%;height:38px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 9px;color:var(--ink);font-size:10px}.project-material-manual-form label>small{grid-column:1/-1;color:#597089;font-size:8px;font-weight:500;line-height:1.35}.project-material-manual-form label.is-wide{grid-column:span 2}.project-material-manual-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.project-material-manual-list{border-top:1px solid var(--border);padding:10px 16px 14px;background:#fff}.project-material-manual-list>strong{display:block;margin-bottom:7px;color:var(--muted);font-size:9px}.project-material-manual-list>strong span{color:var(--blue)}.project-material-manual-list article{min-height:58px;padding:8px 10px;border:1px solid #b9cee2;border-left:3px solid var(--blue);display:grid;grid-template-columns:minmax(0,1fr) 130px 70px;align-items:center;gap:12px}.project-material-manual-list article+article{border-top:0}.project-material-manual-list article>div{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:3px 8px;min-width:0}.project-material-manual-list article>div>strong{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-material-manual-list article>div>small{grid-column:1/-1;color:var(--muted);font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-material-manual-badge{border-radius:10px;background:#e9f2ff;padding:3px 7px;color:var(--blue);font-size:8px;font-weight:750}.project-material-manual-list article>p{margin:0;display:grid;justify-items:end;gap:2px}.project-material-manual-list article>p strong{font-size:11px}.project-material-manual-list article>p small{font-size:8px;color:var(--muted)}.project-material-manual-list article>button{height:32px;border:1px solid #efb7b7;background:#fff5f5;color:#c93434;border-radius:3px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:9px;font-weight:750}
.project-material-product-name{position:relative}.project-material-product-input{grid-column:1/-1;position:relative}.project-material-product-input>svg{position:absolute;left:10px;top:50%;z-index:1;transform:translateY(-50%);color:#607991}.project-material-product-input>svg:last-child{left:auto;right:10px}.project-material-product-input>input{width:100%;height:38px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 35px;color:var(--ink);font-size:10px}.project-material-product-results{grid-column:1/-1;position:absolute;top:66px;left:0;right:0;z-index:25;max-height:260px;overflow:auto;border:1px solid #8ea9c3;background:white;box-shadow:0 10px 24px rgba(15,45,75,.2)}.project-material-product-results>button{width:100%;min-height:46px;border:0;border-bottom:1px solid #dce5ed;background:white;padding:7px 10px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;cursor:pointer}.project-material-product-results>button:last-child{border-bottom:0}.project-material-product-results>button:hover,.project-material-product-results>button:focus{background:#edf5ff}.project-material-product-results span{display:grid;gap:2px;min-width:0}.project-material-product-results strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--ink)}.project-material-product-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:var(--muted)}.project-material-product-results b{color:var(--blue);font-size:9px;white-space:nowrap}.is-spinning{animation:material-spin .9s linear infinite}@keyframes material-spin{to{transform:translateY(-50%) rotate(360deg)}}
.project-material-supplier-input{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}.project-material-supplier-input>input{width:100%;height:38px;border:1px solid #b8c6d4;background:white;border-radius:3px;padding:0 9px;color:var(--ink);font-size:10px}.project-material-supplier-input>button{min-width:82px;height:38px;border:1px solid #8eb1d5;background:#fff;color:var(--blue);border-radius:3px;padding:0 10px;font-size:9px;font-weight:750;cursor:pointer}.project-material-supplier-input>button:disabled{cursor:not-allowed;opacity:.5}.project-material-supplier-input>span{height:38px;border:1px solid #94c7ad;background:#edf9f2;color:#217348;border-radius:3px;padding:0 10px;display:flex;align-items:center;justify-content:center;white-space:nowrap;font-size:9px;font-weight:750}
@media(max-width:1120px){.project-material-candidate-controls{grid-template-columns:1fr 1fr 1fr 110px}.project-material-candidate-actions{align-items:stretch;flex-direction:column}.project-material-candidate-actions>.button{width:100%}}
@media(max-width:760px){.project-material-import-results>header{align-items:flex-start;flex-direction:column}.project-material-import-results article{grid-template-columns:1fr}.project-material-import-results article>.button{width:100%}.project-material-candidate-controls{grid-template-columns:1fr 1fr}.project-material-candidate-controls>label:first-child,.project-material-candidate-controls>label:nth-child(3){grid-column:1/-1}.project-material-candidate-actions>div{display:grid;grid-template-columns:1fr 1fr}.project-material-candidate-actions label{min-width:0}.project-material-candidate-actions>div>span{grid-column:1/-1}.project-material-candidates-heading{align-items:stretch;flex-direction:column}.project-material-candidates-heading>.button{width:100%}}
@media(max-width:760px){.project-material-manual>header{align-items:stretch;flex-direction:column}.project-material-manual>header>.button{width:100%}.project-material-manual-form{grid-template-columns:1fr 1fr}.project-material-manual-form label.is-wide{grid-column:1/-1}.project-material-manual-list article{grid-template-columns:minmax(0,1fr) auto}.project-material-manual-list article>button{grid-column:1/-1}.project-material-manual-form-actions{display:grid;grid-template-columns:1fr 1fr}.project-material-manual-form-actions .button{width:100%}}
@media(max-width:760px){.project-material-export-actions{width:100%;display:grid!important;grid-template-columns:1fr!important}.project-material-export-actions>small{grid-column:1;text-align:left}.project-material-export-actions>.button{width:100%;white-space:normal}.project-material-candidate-actions>div.project-material-export-actions{display:grid}}

.project-material-candidate-table{min-width:1380px}.project-material-candidate-table th:nth-child(2){width:245px}.project-material-candidate-table th:nth-child(3),.project-material-candidate-table th:nth-child(4){width:140px}.project-material-candidate-table th:nth-child(9){width:170px}.project-material-candidate-table th small{font-size:8px;color:var(--muted)}.project-material-candidate-actions>div{flex-wrap:wrap}
.project-material-export-actions{display:grid!important;grid-template-columns:auto auto;align-items:end;gap:6px 8px!important;flex:0 0 auto}.project-material-export-actions>small{grid-column:1/-1;text-align:right;color:var(--muted);font-size:8px}.project-material-export-actions>.button{white-space:nowrap}
.project-material-export-actions--with-draft{grid-template-columns:auto auto}.project-material-export-actions--with-draft .project-material-draft-after-order{grid-column:1/-1;min-height:40px}
.project-material-quantity-stepper{display:grid;grid-template-columns:30px minmax(76px,1fr) 30px;align-items:center;gap:4px;min-width:148px}.project-material-quantity-stepper button{height:32px;border:1px solid #aebfd0;border-radius:3px;background:#f7faff;color:var(--blue);font-size:17px;font-weight:800;line-height:1;cursor:pointer}.project-material-quantity-stepper button:hover:not(:disabled){border-color:var(--blue);background:#eaf3ff}.project-material-quantity-stepper button:disabled{background:#eef2f5;color:#9aa6b2;cursor:not-allowed}.project-material-quantity-stepper input[type=number]{width:100%;min-width:76px;text-align:right;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}.project-material-quantity-stepper input[type=number]::-webkit-inner-spin-button,.project-material-quantity-stepper input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.project-material-row--reference{background:#f4f8fd}.project-material-reference-cell{min-width:142px;border:1px solid #9cbcdf;background:#eef6ff;color:var(--blue);padding:6px 8px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 6px}.project-material-reference-cell strong{font-size:10px}.project-material-reference-cell small{grid-column:2;margin:0!important;font-size:8px!important;color:#53779c!important}.project-material-drawing-upload{margin:12px 16px;border:1px solid #afc5da;background:#f7faff;padding:12px;display:grid;grid-template-columns:minmax(260px,1fr) minmax(280px,1.2fr);align-items:center;gap:10px 16px}.project-material-drawing-upload.is-selected{border-color:var(--blue);box-shadow:inset 4px 0 var(--blue)}.project-material-drawing-copy{display:flex;align-items:center;gap:10px;color:var(--blue)}.project-material-drawing-copy>span{display:grid;gap:3px}.project-material-drawing-copy strong{font-size:11px;color:var(--ink)}.project-material-drawing-copy small{font-size:9px;line-height:1.5;color:var(--muted)}.project-material-drawing-drop{min-height:48px;border:1px dashed #6f9ac6;background:white;color:var(--blue);display:flex!important;align-items:center;justify-content:center;gap:7px;padding:8px 12px;cursor:pointer;font-size:10px!important}.project-material-drawing-drop:hover{background:#edf6ff}.project-material-drawing-drop input{display:none}.project-material-drawing-files{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}.project-material-drawing-files>span{max-width:100%;border:1px solid #c4d4e4;background:white;padding:5px 6px;display:flex;align-items:center;gap:5px;color:var(--ink);font-size:9px}.project-material-drawing-files>span>svg{flex:0 0 auto;color:var(--blue)}.project-material-drawing-files>span>button{border:0;background:transparent;color:var(--red);padding:2px;display:grid;place-items:center;cursor:pointer}.material-order-attachments{display:grid;gap:6px}.material-order-attachments a{border:1px solid #b8cee3;background:#f4f8fd;padding:6px 7px;color:var(--blue);display:flex;align-items:center;gap:6px;font-size:9px;text-decoration:none}.material-order-attachments a:hover{text-decoration:underline}
.project-material-drawing-file-name{min-width:0;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-material-drawing-files>span>.project-material-drawing-preview{border:1px solid #9cbcdf;background:#eef6ff;color:var(--blue);padding:4px 7px;display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:750;white-space:nowrap}.project-material-drawing-files>span>.project-material-drawing-preview:hover{border-color:var(--blue);background:#dfeeff}.project-material-preview-backdrop{position:fixed;inset:0;z-index:100;background:rgba(5,25,45,.68);display:grid;place-items:center;padding:24px}.project-material-preview-dialog{width:min(1120px,96vw);height:min(820px,92vh);border:1px solid #8fa5ba;background:white;box-shadow:0 18px 52px rgba(0,20,45,.3);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.project-material-preview-dialog>header{min-height:64px;padding:11px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.project-material-preview-dialog>header>div{display:flex;align-items:center;gap:9px;min-width:0;color:var(--blue)}.project-material-preview-dialog>header>div>span{min-width:0;display:grid;gap:3px}.project-material-preview-dialog>header strong{color:var(--ink);font-size:14px}.project-material-preview-dialog>header small{max-width:780px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.project-material-preview-dialog>header>button{width:36px;height:36px;flex:0 0 36px;border:1px solid #b8c6d4;background:white;color:var(--ink);display:grid;place-items:center;cursor:pointer}.project-material-preview-dialog>header>button:hover{border-color:var(--blue);color:var(--blue)}.project-material-preview-body{min-height:0;background:#e8edf2;display:grid;place-items:center;overflow:hidden}.project-material-preview-body img{max-width:100%;max-height:100%;object-fit:contain}.project-material-preview-unsupported{padding:28px;display:grid;place-items:center;gap:8px;text-align:center;color:var(--muted)}.project-material-preview-unsupported strong{color:var(--ink)}.project-material-preview-dialog>footer{min-height:68px;padding:10px 14px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.project-material-preview-dialog>footer>span{color:var(--muted);font-size:10px}.project-material-preview-dialog>footer>div{display:flex;gap:8px}.project-material-pdf-preview{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr)}.project-material-pdf-toolbar{min-height:46px;padding:6px 10px;border-bottom:1px solid #aebdcb;background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:10px}.project-material-pdf-toolbar>div{display:flex;align-items:center;gap:7px}.project-material-pdf-toolbar button{width:32px;height:32px;border:1px solid #aebdcb;background:white;color:var(--blue);display:grid;place-items:center;cursor:pointer}.project-material-pdf-toolbar button:disabled{background:#edf1f4;color:#9ba7b2;cursor:not-allowed}.project-material-pdf-toolbar strong{min-width:74px;text-align:center;color:var(--ink);font-size:10px;font-variant-numeric:tabular-nums}.project-material-pdf-canvas-wrap{position:relative;min-height:0;overflow:auto;padding:18px;display:grid;place-items:start center}.project-material-pdf-canvas-wrap canvas{display:block;max-width:none;background:white;box-shadow:0 3px 16px rgba(0,25,50,.18)}.project-material-pdf-loading,.project-material-pdf-error{position:absolute;inset:18px auto auto 50%;transform:translateX(-50%);border:1px solid #b8c6d4;background:rgba(255,255,255,.94);padding:8px 12px;color:var(--muted);font-size:10px;white-space:nowrap}.project-material-pdf-error{border-color:#dfaaaa;color:var(--red)}

.line-material-estimate{display:grid;grid-template-columns:1fr 1fr;gap:8px;border:1px solid #9ccbb3;border-left:4px solid var(--green);background:#f3fbf7;padding:10px}.line-material-estimate>span{display:grid;gap:2px;color:var(--muted);font-size:8px}.line-material-estimate>span:nth-child(3){grid-column:1/-1}.line-material-estimate strong{color:var(--ink);font-size:12px}.line-material-estimate small{grid-column:1/-1;color:var(--green);font-size:8px;line-height:1.5}.line-material-estimate.is-over{border-color:#e2bd79;border-left-color:var(--amber);background:var(--amber-bg)}.line-material-estimate.is-over small,.line-material-estimate.is-over>span:nth-child(3) strong{color:var(--amber)}
.line-material-drawing-upload{border:1px solid #8fb3d8;border-left:4px solid var(--blue);background:#f2f7fc;padding:11px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 9px;color:var(--blue)}.line-material-drawing-upload>div{display:grid;gap:3px}.line-material-drawing-upload>div strong{font-size:12px;color:var(--ink)}.line-material-drawing-upload>div span{font-size:8px;line-height:1.5;color:var(--muted)}.line-material-drawing-upload>label{grid-column:1/-1;min-height:43px;border:1px dashed #6e99c5;background:white;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--blue);font-size:10px;font-weight:750}.line-material-drawing-upload>label input{display:none}.line-material-drawing-upload ul{grid-column:1/-1;list-style:none;margin:0;padding:0;display:grid;gap:5px}.line-material-drawing-upload li{min-width:0;border:1px solid #c5d5e5;background:white;padding:6px 7px;display:flex;align-items:center;justify-content:space-between;gap:8px}.line-material-drawing-upload li span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;color:var(--ink)}.line-material-drawing-upload li button{border:0;background:transparent;color:var(--red);padding:3px;display:grid;place-items:center}
@media(max-width:760px){.project-material-drawing-upload{grid-template-columns:1fr}.project-material-drawing-files{grid-column:1}.project-material-drawing-files>span{width:100%;flex-wrap:wrap}.project-material-drawing-file-name{max-width:calc(100% - 28px);flex:1 1 auto}.project-material-preview-backdrop{padding:0}.project-material-preview-dialog{width:100vw;height:100dvh;border:0}.project-material-preview-dialog>footer{align-items:stretch;flex-direction:column}.project-material-preview-dialog>footer>div{display:grid;grid-template-columns:1fr 1fr}.project-material-preview-dialog>footer .button{width:100%}}

.material-email-backdrop{position:fixed;inset:0;z-index:140;background:rgba(5,25,45,.66);display:grid;place-items:center;padding:20px}.material-email-dialog{width:min(920px,96vw);height:min(860px,94vh);background:white;border:1px solid #8fa5ba;box-shadow:0 20px 60px rgba(0,20,45,.35);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.material-email-dialog>header{min-height:64px;padding:11px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:14px}.material-email-dialog>header>div{display:flex;align-items:center;gap:10px;color:var(--blue)}.material-email-dialog>header span{display:grid;gap:2px}.material-email-dialog>header strong{font-size:15px;color:var(--ink)}.material-email-dialog>header small{font-size:9px;color:var(--muted)}.material-email-dialog>header>button{width:36px;height:36px;border:1px solid #b8c6d4;background:white;display:grid;place-items:center;cursor:pointer}.material-email-body{min-height:0;overflow:auto;padding:14px 16px;background:#f6f8fa;display:grid;align-content:start;gap:12px}.material-email-steps{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:white}.material-email-steps li{padding:9px;text-align:center;color:var(--muted);font-size:10px;font-weight:750;border-right:1px solid var(--border)}.material-email-steps li:last-child{border-right:0}.material-email-steps li.active{background:#eaf3ff;color:var(--blue)}.material-email-steps li.done{background:var(--green-bg);color:var(--green)}.material-email-steps li.error{background:var(--red-bg);color:var(--red)}.material-email-loading,.material-email-setup,.material-email-error{border:1px solid var(--border);background:white;padding:11px 12px;display:flex;align-items:center;gap:10px;font-size:10px}.material-email-setup{border-color:#91b6da;background:#eef6ff;color:var(--blue)}.material-email-error{border-color:#dc9d9d;background:var(--red-bg);color:var(--red)}.material-email-setup>div,.material-email-error>div{display:grid;gap:3px}.material-email-setup span,.material-email-error span{font-size:9px;line-height:1.5}.material-email-summary,.material-email-fields,.material-email-attachments,.material-email-items,.material-email-final,.material-email-result{border:1px solid var(--border);background:white;padding:13px}.material-email-summary h3,.material-email-attachments h3,.material-email-items h3,.material-email-final h3{margin:0 0 10px;font-size:12px}.material-email-summary dl,.material-email-final dl{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0;border:1px solid var(--border)}.material-email-summary dl>div,.material-email-final dl>div{display:grid;grid-template-columns:90px 1fr;min-height:35px;border-bottom:1px solid var(--border)}.material-email-summary dl>div:nth-last-child(-n+2),.material-email-final dl>div:nth-last-child(-n+2){border-bottom:0}.material-email-summary dt,.material-email-final dt{padding:8px;background:#f5f8fb;color:var(--muted);font-size:9px}.material-email-summary dd,.material-email-final dd{margin:0;padding:8px;font-size:10px;font-weight:700;overflow-wrap:anywhere}.material-email-fields{display:grid;gap:10px}.material-email-fields>label,.material-email-addresses>label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.material-email-fields input,.material-email-fields textarea{width:100%;border:1px solid #b5c3d1;border-radius:3px;background:white;padding:9px 10px;color:var(--ink);font:inherit;font-size:11px}.material-email-fields input:read-only{background:#f2f5f8}.material-email-fields textarea{resize:vertical;line-height:1.6}.material-email-addresses{display:grid;grid-template-columns:1fr 1fr;gap:10px}.material-email-attachments article{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border);color:var(--blue)}.material-email-attachments article div{display:grid;gap:2px;min-width:0}.material-email-attachments article strong{color:var(--ink);font-size:10px;overflow-wrap:anywhere}.material-email-attachments article span{color:var(--muted);font-size:8px}.material-email-items{max-height:210px;overflow:auto}.material-email-items>div{display:grid;grid-template-columns:1fr auto;gap:10px;padding:7px 0;border-top:1px solid var(--border);font-size:10px}.material-email-final>label{display:flex;align-items:flex-start;gap:8px;margin-top:11px;font-size:10px;font-weight:700}.material-email-result{text-align:center;place-items:center;padding:34px 16px;color:var(--green)}.material-email-result h3{margin:10px 0 5px;color:var(--ink)}.material-email-result p,.material-email-result small{margin:0;color:var(--muted);line-height:1.6}.material-email-history{border:1px solid var(--border);background:white}.material-email-history summary{padding:10px 12px;cursor:pointer;font-size:10px;font-weight:750}.material-email-history article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:8px 12px;border-top:1px solid var(--border)}.material-email-history article>span{padding:3px 6px;font-size:8px;font-weight:750}.material-email-history article>span.success{background:var(--green-bg);color:var(--green)}.material-email-history article>span.failed{background:var(--red-bg);color:var(--red)}.material-email-history article strong{font-size:9px}.material-email-history article small{font-size:8px;color:var(--muted)}.material-email-dialog>footer{min-height:66px;padding:10px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:8px}.material-email-dialog>footer .button{min-width:170px}.line-material-email-button{min-height:46px;width:calc(100% - 20px);margin:0 10px 10px;border:1px solid var(--blue);background:#eef6ff;color:var(--blue);font-size:11px;font-weight:750;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer}
.material-email-dialog>footer .button:disabled{border-color:#b8c6d4;background:#d9e0e7;color:#667482;opacity:1;cursor:not-allowed}
.material-email-readiness{margin:0 0 12px;border:1px solid #91b6da;background:#eef6ff;padding:11px 13px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;color:var(--blue)}.material-email-readiness.is-ready{border-color:#8bc3a7;background:var(--green-bg);color:var(--green)}.material-email-readiness-icon{width:38px;height:38px;border:1px solid currentColor;background:white;display:grid;place-items:center}.material-email-readiness>div:nth-child(2){display:grid;gap:2px;min-width:0}.material-email-readiness span{font-size:9px;color:var(--muted)}.material-email-readiness strong{font-size:11px;color:var(--ink)}.material-email-readiness small{font-size:8px;line-height:1.45;color:var(--muted);overflow-wrap:anywhere}.material-email-readiness small.success{color:var(--green)}.material-email-readiness>.button{white-space:nowrap;background:white}
.material-email-setup-content{display:grid;gap:3px}.material-email-setup-content ul{list-style:none;margin:7px 0;padding:0;display:grid;gap:5px}.material-email-setup-content li{position:relative;padding-left:18px;color:#57697a;font-size:9px;line-height:1.45}.material-email-setup-content li::before{content:'○';position:absolute;left:0;color:#6f8294;font-weight:800}.material-email-setup-content li.done{color:var(--green)}.material-email-setup-content li.done::before{content:'✓'}.material-email-setup-content .button{justify-self:start;margin-top:5px;min-height:34px;padding:7px 11px;background:white}.material-email-setup-content>small{margin-top:5px;color:#76551a;line-height:1.5}.material-email-setup-content>small.success{color:var(--green)}
.material-email-attachments article{grid-template-columns:28px minmax(0,1fr) auto}.material-email-attachments article>.button{min-height:30px;padding:5px 9px;text-decoration:none}.material-email-draft-note{margin:12px 0 0;padding:10px;border:1px solid #91b6da;background:#eef6ff;color:var(--blue);font-size:10px;font-weight:700}.material-email-result-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px}.material-email-result-actions .button{background:white}
@media(max-width:760px){.material-email-backdrop{padding:0}.material-email-dialog{width:100vw;height:100dvh;border:0}.material-email-body{padding:10px}.material-email-addresses,.material-email-summary dl,.material-email-final dl{grid-template-columns:1fr}.material-email-summary dl>div,.material-email-final dl>div{border-bottom:1px solid var(--border)!important}.material-email-summary dl>div:last-child,.material-email-final dl>div:last-child{border-bottom:0!important}.material-email-history article{grid-template-columns:1fr}.material-email-dialog>footer{display:grid;grid-template-columns:1fr 1fr;padding:9px 10px}.material-email-dialog>footer .button{min-width:0;width:100%;padding-left:8px;padding-right:8px}.material-email-steps li{font-size:9px;padding:8px 4px}}
@media(max-width:760px){.material-email-readiness{grid-template-columns:auto 1fr}.material-email-readiness>.button{grid-column:1/-1;width:100%}}
@media(max-width:1120px){.project-material-export-actions{width:100%;grid-template-columns:1fr 1fr}.project-material-export-actions>small{text-align:left}.project-material-export-actions>.button{width:100%}}
@media(max-width:760px){.project-material-export-actions{grid-template-columns:1fr}.project-material-export-actions>small{grid-column:1}.project-material-export-actions>.button{width:100%}}

/* MHC雨樋発注書 */
.mhc-order-flow{display:grid;gap:14px}.mhc-order-heading{display:flex;align-items:flex-start;gap:18px;padding:14px 16px;border:1px solid #b9cee2;background:#f6faff}.mhc-order-heading>div{display:grid;gap:3px}.mhc-order-heading h2{margin:0;font-size:19px}.mhc-order-heading p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.mhc-order-kicker{color:var(--blue);font-size:10px;font-weight:800}.mhc-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:#f6f8fb}.mhc-steps li{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border-right:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:750}.mhc-steps li:last-child{border-right:0}.mhc-steps li span{width:24px;height:24px;border:1px solid #aebdcb;border-radius:50%;display:grid;place-items:center;background:white}.mhc-steps li.current{background:var(--blue);color:white}.mhc-steps li.current span{border-color:white;color:var(--blue)}.mhc-steps li.done{color:var(--green);background:var(--green-bg)}.mhc-steps li.done span{border-color:var(--green);color:var(--green)}
.mhc-order-basics,.mhc-material-panel,.mhc-delivery-panel,.mhc-review-panel{padding:16px}.mhc-order-basics .panel-heading>div,.mhc-material-panel .panel-heading>div,.mhc-delivery-panel .panel-heading>div,.mhc-review-panel .panel-heading>div{align-items:center}.mhc-order-basics .panel-heading svg,.mhc-material-panel .panel-heading svg,.mhc-delivery-panel .panel-heading svg,.mhc-review-panel .panel-heading svg{color:var(--blue)}.mhc-form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.mhc-form-grid label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:750}.mhc-form-grid input,.mhc-form-grid select{width:100%;height:38px;border:1px solid #b8c6d4;border-radius:3px;background:white;padding:0 10px;color:var(--ink);font-size:11px}.mhc-form-grid input[readonly]{background:#f2f5f8}.mhc-form-grid--delivery{grid-template-columns:minmax(190px,.7fr) minmax(190px,.7fr) minmax(320px,1.6fr)}.mhc-wide{grid-column:auto}.mhc-empty{min-height:100px;margin-top:14px;border:1px dashed #d8ae66;background:#fffaf0;display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;color:var(--amber)}.mhc-empty>div{display:grid;gap:4px}.mhc-empty strong{font-size:12px;color:var(--ink)}.mhc-empty span{font-size:10px;color:var(--muted)}
.mhc-material-table{min-width:1160px}.mhc-material-table th:first-child,.mhc-material-table td:first-child{width:60px;text-align:center}.mhc-material-table th:nth-child(2){width:275px}.mhc-material-table th:nth-child(3){width:115px}.mhc-material-table th:nth-child(4){width:205px}.mhc-material-table th:nth-child(5){width:185px}.mhc-material-table td>strong{font-size:10px}.mhc-material-table td>small{display:block;margin-top:3px;color:var(--muted);font-size:8px}.mhc-material-table input[type=checkbox]{width:17px;height:17px;accent-color:var(--blue)}.mhc-material-table select{width:100%;height:34px;border:1px solid #b8c6d4;background:white;padding:0 7px;font-size:9px}.mhc-row--changed{background:#fff4c7}.mhc-change-label{color:#9a6200!important;font-weight:800}.mhc-quantity-stepper{display:grid;grid-template-columns:34px minmax(78px,1fr) 34px;gap:4px;align-items:center}.mhc-quantity-stepper button{width:34px;height:34px;border:1px solid #aebfd0;background:#f7faff;color:var(--blue);display:grid;place-items:center;cursor:pointer}.mhc-quantity-stepper button:disabled{background:#eef2f5;color:#9aa6b2;cursor:not-allowed}.mhc-quantity-stepper input{width:100%;height:34px;border:1px solid #aebfd0;padding:0 7px;text-align:right;appearance:textfield;-moz-appearance:textfield}.mhc-quantity-stepper input::-webkit-inner-spin-button,.mhc-quantity-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.mhc-code-box{display:inline-block;border:2px solid #33475b;padding:3px 6px;background:white;font-size:9px;font-weight:750;white-space:nowrap}
.mhc-lead-alert,.mhc-lead-ok{margin-top:13px;padding:11px 13px;display:flex;align-items:center;gap:9px}.mhc-lead-alert{border:1px solid #efbe69;background:#fff7e8;color:var(--amber)}.mhc-lead-ok{border:1px solid #a9c9b7;background:var(--green-bg);color:var(--green)}.mhc-lead-alert>div,.mhc-lead-ok>div{display:grid;gap:2px}.mhc-lead-alert strong,.mhc-lead-ok strong{font-size:11px}.mhc-lead-alert span,.mhc-lead-ok span{font-size:9px;color:var(--muted)}.mhc-next-button{width:min(360px,100%);margin:14px 0 0 auto;display:flex}.mhc-check-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mhc-check-list>div{min-height:62px;padding:10px;border:1px solid var(--border);display:flex;align-items:flex-start;gap:8px}.mhc-check-list>div svg{width:18px;flex:0 0 18px}.mhc-check-list>div span{display:grid;gap:4px;color:var(--muted);font-size:9px}.mhc-check-list>div strong{font-size:11px;color:var(--ink)}.mhc-check-list .ok{border-color:#a9c9b7;background:#f4fbf7;color:var(--green)}.mhc-check-list .warning{border-color:#efbe69;background:#fff7e8;color:var(--amber)}.mhc-short-ack{margin-top:12px;border:2px solid var(--amber);background:#fff9ed;padding:12px;display:flex;align-items:flex-start;gap:9px;cursor:pointer}.mhc-short-ack input{width:19px;height:19px;accent-color:var(--amber)}.mhc-short-ack span{display:grid;gap:3px;color:var(--muted);font-size:10px}.mhc-short-ack strong{color:var(--ink);font-size:11px}
.mhc-order-document{border:1px solid #8fa5ba;background:white;padding:26px;box-shadow:0 3px 12px rgba(20,45,70,.08)}.mhc-order-document>header{display:flex;align-items:flex-start;justify-content:space-between;border-bottom:3px solid var(--navy);padding-bottom:12px}.mhc-order-document>header span{font-size:11px;color:var(--muted)}.mhc-order-document>header h2{margin:3px 0 0;font-size:26px}.mhc-order-document>header p{margin:0;border:1px solid var(--blue);color:var(--blue);padding:5px 8px;font-size:9px;font-weight:800}.mhc-order-document dl{display:grid;grid-template-columns:1fr 2fr 1fr 2fr;margin:16px 0;border-top:1px solid #899caf;border-left:1px solid #899caf}.mhc-order-document dl>div{display:grid;grid-template-columns:95px 1fr;border-right:1px solid #899caf;border-bottom:1px solid #899caf}.mhc-order-document dl>div.wide{grid-column:1/-1}.mhc-order-document dt,.mhc-order-document dd{margin:0;padding:8px;font-size:10px}.mhc-order-document dt{background:#edf2f6;font-weight:800}.mhc-order-document dd{font-weight:650}.mhc-order-document table{width:100%;border-collapse:collapse;font-size:9px}.mhc-order-document th,.mhc-order-document td{border:1px solid #899caf;padding:7px;text-align:left}.mhc-order-document th{background:#edf2f6}.mhc-order-document td:nth-child(1),.mhc-order-document td:nth-child(5),.mhc-order-document td:nth-child(6),.mhc-order-document td:nth-child(7){text-align:right}.mhc-order-document tr.changed{background:#fff2b8}.mhc-order-document footer{margin-top:12px;padding-top:8px;border-top:1px solid #b9c6d2;color:var(--muted);font-size:8px;line-height:1.6}.mhc-order-document footer p{margin:2px 0}.mhc-review-actions{position:sticky;bottom:12px;z-index:4;margin-left:auto;width:max-content;max-width:100%;display:flex;gap:9px;padding:10px;border:1px solid #b9cee2;background:rgba(255,255,255,.96);box-shadow:0 4px 18px rgba(10,40,70,.15)}
@media(max-width:1050px){.mhc-form-grid{grid-template-columns:repeat(2,1fr)}.mhc-form-grid--delivery{grid-template-columns:1fr 1fr}.mhc-form-grid--delivery .mhc-wide{grid-column:1/-1}.mhc-check-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.mhc-order-heading{flex-direction:column}.mhc-order-heading>.button{width:100%}.mhc-steps li{min-height:42px;font-size:10px}.mhc-steps li span{width:21px;height:21px}.mhc-form-grid,.mhc-form-grid--delivery{grid-template-columns:1fr}.mhc-form-grid--delivery .mhc-wide{grid-column:1}.mhc-check-list{grid-template-columns:1fr}.mhc-review-actions{position:static;width:100%;display:grid}.mhc-order-document{padding:14px;overflow-x:auto}.mhc-order-document dl{min-width:620px}.mhc-order-document table{min-width:850px}}
@media print{body{background:white}.app-shell>*:not(.main-column),.topbar,.page-header,.mhc-order-flow>*:not(.mhc-order-document){display:none!important}.page-content{padding:0;max-width:none}.mhc-order-flow{display:block}.mhc-order-document{border:0;box-shadow:none;padding:0}.mhc-order-document>header p{display:none}.mhc-no-print{display:none!important}}

.project-lifecycle-tabs,.completion-view-tabs{display:flex;width:max-content;max-width:100%;min-height:48px;border:1px solid var(--border);background:white;margin-bottom:14px;overflow-x:auto}.project-lifecycle-tabs button,.completion-view-tabs button{min-width:170px;border:0;border-right:1px solid var(--border);border-bottom:3px solid transparent;background:white;color:#526273;display:flex;align-items:center;justify-content:center;gap:8px;padding:0 17px;font-size:12px;font-weight:750;white-space:nowrap;cursor:pointer}.project-lifecycle-tabs button:last-child,.completion-view-tabs button:last-child{border-right:0}.project-lifecycle-tabs button:hover,.completion-view-tabs button:hover{background:#f7f9fb}.project-lifecycle-tabs button.active,.completion-view-tabs button.active{border-bottom-color:var(--blue);background:#f1f7fe;color:var(--blue)}.project-lifecycle-tabs button strong,.completion-view-tabs button strong{min-width:24px;height:21px;border-radius:11px;background:#edf1f5;color:#526273;display:grid;place-items:center;padding:0 7px;font-size:10px}.project-lifecycle-tabs button.active strong,.completion-view-tabs button.active strong{background:var(--blue);color:white}.project-archived-date{display:block;margin-top:4px;color:var(--muted);font-size:8px}.project-list-empty{min-height:220px;display:grid;place-items:center;align-content:center;gap:7px;color:var(--muted)}.project-list-empty svg{color:var(--blue)}.project-list-empty strong{font-size:14px;color:var(--ink)}.project-list-empty span{font-size:10px}.project-archive-banner{min-height:62px;border:1px solid #9bcfae;border-left:4px solid var(--green);background:var(--green-bg);display:grid;grid-template-columns:auto minmax(260px,1fr) minmax(260px,.75fr);align-items:center;gap:11px;padding:10px 14px;margin-bottom:14px;color:var(--green)}.project-archive-banner>div{display:grid;gap:3px}.project-archive-banner strong{font-size:12px;color:#1f5f40}.project-archive-banner span{font-size:9px;color:#4f6f5d}.project-archive-banner small{justify-self:end;text-align:right;color:#315c44;font-size:9px;line-height:1.5;word-break:break-all}.project-readonly-label{color:var(--green);font-size:10px;font-weight:750}.project-archive-side dl{margin:0}.project-archive-side dl>div{padding:10px 0;border-bottom:1px solid var(--border);display:grid;gap:4px}.project-archive-side dt{color:var(--muted);font-size:9px}.project-archive-side dd{margin:0;color:var(--ink);font-size:10px;line-height:1.5;word-break:break-all}.project-archive-side .button{width:100%;justify-content:center;margin-top:12px}
.project-photo-standard-panel{margin-top:16px;border:1px solid var(--border);background:#f8fafc}.project-photo-standard-panel--active{border-color:#80add9;background:#f4f9ff}.project-photo-standard-panel>header{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border);background:white}.project-photo-standard-panel>header>div{display:grid;gap:3px}.project-photo-standard-panel>header strong{font-size:12px}.project-photo-standard-panel>header span,.project-photo-standard-panel small{color:var(--muted);font-size:9px;line-height:1.5}.project-photo-standard-panel>header b{border-radius:12px;background:#eaf3fd;color:var(--blue);padding:5px 9px;font-size:9px;white-space:nowrap}.project-photo-standard-select{display:grid;gap:5px;padding:13px 14px}.project-photo-standard-select>span,.project-photo-standard-fields legend{color:var(--muted);font-size:9px;font-weight:750}.project-photo-standard-select select{height:38px;border:1px solid #aebdca;border-radius:3px;background:white;padding:0 9px;font-size:11px}.project-photo-standard-fields{display:grid;grid-template-columns:1fr 1.45fr;gap:12px;padding:0 14px 14px}.project-photo-standard-fields fieldset{min-width:0;margin:0;border:1px solid #bfd3e7;background:white;padding:11px}.project-photo-standard-fields legend{padding:0 5px}.project-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.project-choice-grid--materials{grid-template-columns:repeat(2,minmax(0,1fr))}.project-choice-grid label,.project-pv-choice label{min-height:38px;border:1px solid var(--border);background:white;display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:10px;font-weight:700;cursor:pointer}.project-choice-grid label:has(input:checked),.project-pv-choice label:has(input:checked){border-color:var(--blue);background:#edf6ff;color:var(--blue)}.project-choice-grid input,.project-pv-choice input{width:17px;height:17px;accent-color:var(--blue)}.project-pv-choice{grid-column:1/-1}.project-pv-choice label{margin-bottom:6px}.project-pv-choice label.disabled{background:#eef1f4;color:#8794a0;cursor:not-allowed}.project-photo-standard-summary{grid-column:1/-1;min-height:42px;border:1px solid #8bc89f;border-left:4px solid var(--green);background:#effaf3;color:#1e704c;display:flex;align-items:center;gap:9px;padding:9px 12px;font-size:10px;font-weight:750}
.mitsui-auto-selection{padding:16px;display:grid;gap:12px;border-bottom:1px solid var(--border);line-height:1.65}.mitsui-auto-selection>p{margin:0}.mitsui-auto-selection .project-photo-standard-select{padding:0}.mitsui-auto-selection select,.mitsui-auto-selection input{min-height:44px;max-width:100%;width:100%;font-size:14px}.mitsui-auto-selection input{padding:10px;border:1px solid #aebdca;background:white}.mitsui-auto-selection details{padding:10px;border:1px solid var(--border);background:white;overflow-wrap:anywhere}.mitsui-auto-selection small{font-size:12px}.mitsui-auto-selection .form-error{font-size:14px}
.project-photo-standard-fields.mitsui-roof-fields{grid-template-columns:minmax(0,1fr);gap:16px;line-height:1.65}
.mitsui-roof-fields>p{margin:0}.mitsui-roof-fields .form-error{font-size:14px}
.mitsui-roof-fields .project-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mitsui-roof-fields .project-fields label{min-width:0}.mitsui-roof-fields .project-fields select{min-width:0;width:100%;font-size:14px;min-height:44px}
.mitsui-roof-fields>ol{margin:0;padding-left:25px}.mitsui-roof-fields>ol li{padding:8px 0;border-bottom:1px solid var(--border)}.mitsui-roof-fields>ol p{margin:4px 0}
.mitsui-roof-fields details{padding:12px;background:white;border:1px solid var(--border)}.mitsui-roof-fields summary{cursor:pointer;font-weight:700}
.line-photo-body--mitsui .line-required-item{grid-template-columns:42px minmax(0,1fr);align-items:start;gap:10px;padding:14px 10px}
.line-photo-body--mitsui .line-required-copy strong{font-size:16px}.line-photo-body--mitsui .line-required-copy p{font-size:14px;line-height:1.7;color:var(--ink);overflow-wrap:anywhere}
.line-photo-body--mitsui .line-required-copy>b,.line-photo-body--mitsui .line-required-copy small{font-size:12px}
.line-photo-body--mitsui .line-required-control{grid-column:2;justify-items:stretch}.line-photo-body--mitsui .line-required-control>span{font-size:12px}
.line-photo-body--mitsui .line-photo-action{font-size:14px;min-height:44px}
@media(max-width:760px){.mitsui-roof-fields .project-fields{grid-template-columns:minmax(0,1fr)}}
.photo-master-source{margin:-5px 0 14px;border:1px solid #b6cae0;border-left:4px solid var(--blue);background:#f5f9ff;display:flex;align-items:flex-start;gap:10px;padding:11px 13px;color:var(--blue)}.photo-master-source>div{display:grid;gap:3px}.photo-master-source strong{font-size:10px}.photo-master-source span,.photo-master-source small{color:#526b83;font-size:8px;line-height:1.5;word-break:break-word}

.completion-empty--illustrated{min-height:180px;display:grid;place-items:center;align-content:center;gap:6px}.completion-empty--illustrated svg{color:var(--blue)}.completion-empty--illustrated strong{color:var(--ink);font-size:12px}.completion-empty--illustrated span{font-size:9px}.completion-archive-confirm{border:1px solid #9bcfae;background:#fbfffc}.completion-archive-confirm>header{display:grid;grid-template-columns:1fr minmax(280px,auto);align-items:center;gap:12px;border-bottom:1px solid #cde6d6;padding:13px 15px;background:var(--green-bg)}.completion-archive-confirm>header>div{display:flex;align-items:center;gap:9px;color:var(--green)}.completion-archive-confirm>header span{display:grid;gap:2px}.completion-archive-confirm>header strong{font-size:12px;color:#1f5f40}.completion-archive-confirm>header small{font-size:8px;color:#4f6f5d}.completion-archive-confirm code{font:600 9px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;color:#315c44;text-align:right;word-break:break-all}.completion-archive-checklist{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px}.completion-archive-checklist label{min-height:64px;border:1px solid var(--border);background:white;padding:10px;display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;cursor:pointer}.completion-archive-checklist label.checked{border-color:#8bc89f;background:#f1fbf4}.completion-archive-checklist input{margin-top:3px}.completion-archive-checklist span{display:grid;gap:3px}.completion-archive-checklist strong{font-size:10px}.completion-archive-checklist small{color:var(--muted);font-size:8px;line-height:1.5}.completion-archive-actions{border-top:1px solid #dbe8df;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}.completion-archive-actions p{margin:0;color:var(--muted);font-size:9px;line-height:1.5}.completion-archive-summary{border:1px solid #9bcfae;background:#fbfffc}.completion-archive-summary>header{display:flex;align-items:flex-start;gap:10px;padding:15px;background:var(--green-bg);color:var(--green)}.completion-archive-summary>header div{display:grid;gap:3px}.completion-archive-summary>header span{font-size:9px;color:#4f6f5d}.completion-archive-summary>header h3{margin:0;color:#1f5f40;font:700 12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all}.completion-archive-summary dl{margin:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #cde6d6;border-bottom:1px solid #cde6d6}.completion-archive-summary dl>div{padding:10px 14px;border-right:1px solid #cde6d6;display:grid;gap:3px}.completion-archive-summary dl>div:last-child{border-right:0}.completion-archive-summary dt{color:var(--muted);font-size:8px}.completion-archive-summary dd{margin:0;font-size:10px;font-weight:700}.completion-archive-checks{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:10px}.completion-archive-checks>div{min-height:48px;display:flex;align-items:center;gap:7px;padding:8px;color:var(--green)}.completion-archive-checks span{display:grid;gap:2px}.completion-archive-checks strong{color:var(--ink);font-size:9px}.completion-archive-checks small{color:var(--muted);font-size:8px}.completion-restore{margin-top:14px;border:1px solid var(--border);background:#f8fafc;padding:13px;display:grid;grid-template-columns:minmax(240px,1fr) minmax(220px,1.2fr) auto;align-items:end;gap:11px}.completion-restore>div{display:flex;align-items:flex-start;gap:8px;color:var(--blue)}.completion-restore>div span{display:grid;gap:3px}.completion-restore strong{color:var(--ink);font-size:10px}.completion-restore small,.completion-restore p{color:var(--muted);font-size:8px;line-height:1.5}.completion-restore textarea{min-height:58px;border:1px solid var(--border);border-radius:3px;background:white;padding:8px;font-size:10px;resize:vertical}.completion-restore p{margin:0;grid-column:2/-1}.completion-restore .button{white-space:nowrap}
.completion-role-confirm{margin-bottom:14px}.completion-owner-badge{justify-self:end;border:1px solid #82acd4;border-radius:12px;background:white;color:var(--blue);padding:5px 9px;font-size:9px;white-space:nowrap}.completion-role-note{border-top:1px solid #dbe8df;padding:10px 14px;color:var(--muted);font-size:9px}.completion-role-status-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px}.completion-role-status-list>div{min-height:72px;border:1px solid var(--border);background:white;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto;gap:3px 9px;align-items:start}.completion-role-status-list>div.confirmed{border-color:#8bc89f;background:#f1fbf4}.completion-role-status-list>div.pending{border-color:#e4b0b5;background:#fff6f7}.completion-role-status-list i{grid-row:1/3;color:var(--green);font-style:normal}.completion-role-status-list .pending i{color:var(--red)}.completion-role-status-list span{grid-row:1/3;display:grid;gap:3px}.completion-role-status-list strong{font-size:10px}.completion-role-status-list small{color:var(--muted);font-size:8px;line-height:1.5}.completion-role-status-list b{border-radius:10px;background:#eaf3fd;color:var(--blue);padding:3px 7px;font-size:8px;white-space:nowrap}.completion-role-status-list em{color:var(--green);font-size:8px;font-style:normal;text-align:right}.completion-role-status-list .pending em{color:var(--red)}

@media(max-width:760px){.project-lifecycle-tabs,.completion-view-tabs{width:100%}.project-lifecycle-tabs button,.completion-view-tabs button{min-width:145px;padding:0 10px}.project-archive-banner{grid-template-columns:auto 1fr}.project-archive-banner small{grid-column:2;justify-self:start;text-align:left}.completion-archive-confirm>header{grid-template-columns:1fr}.completion-archive-confirm code{text-align:left}.completion-owner-badge{justify-self:start}.completion-archive-checklist,.completion-role-status-list{grid-template-columns:1fr}.completion-archive-actions{display:grid}.completion-archive-actions .button{width:100%;justify-content:center}.completion-archive-summary dl,.completion-archive-checks{grid-template-columns:1fr}.completion-archive-summary dl>div{border-right:0;border-bottom:1px solid #cde6d6}.completion-archive-summary dl>div:last-child{border-bottom:0}.completion-restore{grid-template-columns:1fr}.completion-restore p{grid-column:1}.completion-restore .button{width:100%;justify-content:center}}
@media(max-width:760px){.project-photo-standard-fields{grid-template-columns:1fr}.project-pv-choice,.project-photo-standard-summary{grid-column:1}.project-choice-grid,.project-choice-grid--materials{grid-template-columns:1fr 1fr}}

/* 材料手配先マスター */
.project-summary{grid-template-columns:repeat(5,minmax(130px,1fr))}
.project-field-help{color:var(--muted);font-size:9px;font-weight:500;line-height:1.5}
.project-field-error{color:var(--red);font-size:9px;font-weight:700;line-height:1.5}
@media(max-width:1120px){.project-summary{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){.project-summary{grid-template-columns:1fr 1fr}}

/* 経費画面の所属会社スコープ */
.expense-access-scope{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;border:1px solid #9fc7ec;border-radius:6px;background:#eef7ff;color:#143d63}.expense-access-scope div{display:grid;gap:3px}.expense-access-scope span{color:#53708b;font-size:13px}

/* PC receipt OCR and project-level additional-order workflow */
.expense-order-batch{margin-bottom:12px;padding:15px 16px;border-left:4px solid var(--blue)}
.expense-order-batch-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.expense-order-batch-heading>div{display:grid;gap:3px}.expense-order-batch-heading span{font-size:9px;color:var(--muted)}.expense-order-batch-heading h2{margin:0;font-size:17px}
.expense-order-batch-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);margin-bottom:12px}.expense-order-batch-summary>div{min-height:55px;padding:9px 12px;border-right:1px solid var(--border);display:grid;gap:3px}.expense-order-batch-summary>div:last-child{border-right:0}.expense-order-batch-summary span{font-size:8px;color:var(--muted)}.expense-order-batch-summary strong{font-size:14px}
.expense-order-create,.expense-order-created{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f4f8fc;padding:11px 12px}.expense-order-create label,.expense-order-approval label{display:flex;align-items:flex-start;gap:8px;font-size:10px;line-height:1.5;font-weight:700}.expense-order-create input,.expense-order-approval input{margin-top:1px}.expense-order-create>small,.expense-order-created small{font-size:8px;line-height:1.5;color:var(--muted)}.expense-order-create .button,.expense-order-created .button{flex:0 0 auto}.expense-order-created>div{display:grid;gap:6px}.expense-order-created strong{font-size:11px}.expense-order-created span{font-size:9px;color:var(--muted)}.expense-order-created a.button{width:max-content;text-decoration:none}.expense-order-approval{display:grid;justify-items:end;gap:7px}.expense-order-waiting,.expense-order-approved{display:flex;align-items:center;gap:5px!important;color:var(--amber)!important;font-weight:750}.expense-order-approved{color:var(--green)!important}
.expense-ocr-check{margin:0 14px 14px;border:1px solid #b9c7d5;background:#f7f9fb;padding:11px 12px}.expense-ocr-check--matched{border-color:#94c5ad;background:#f0f8f4}.expense-ocr-check--mismatch{border-color:#e4a0a4;background:#fff3f3}.expense-ocr-check--unreadable{border-color:#e1bd77;background:#fff8ea}.expense-ocr-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.expense-ocr-heading>div{display:flex;align-items:center;gap:8px}.expense-ocr-heading>div>span{display:grid;gap:2px}.expense-ocr-heading strong{font-size:11px}.expense-ocr-heading small{font-size:8px;color:var(--muted)}.expense-ocr-check>p{margin:9px 0 0;font-size:9px;color:var(--muted)}.expense-ocr-warning{color:var(--amber)!important;font-weight:700}.expense-ocr-result{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:9px;margin-top:10px}.expense-ocr-result>div{border:1px solid rgba(120,140,160,.35);background:white;padding:8px 9px;display:grid;gap:2px}.expense-ocr-result span{font-size:8px;color:var(--muted)}.expense-ocr-result strong{font-size:14px}.expense-ocr-result>b{font-size:10px;color:var(--red)}.expense-ocr-check--matched .expense-ocr-result>b{color:var(--green)}.expense-ocr-manual-confirm{margin-top:10px;border-top:1px solid rgba(160,120,90,.25);padding-top:9px;display:flex;align-items:flex-start;gap:7px;font-size:9px;font-weight:750;line-height:1.5}.expense-ocr-manual-confirm input{margin-top:1px}

@media (max-width:760px){.expense-order-batch-summary{grid-template-columns:1fr 1fr}.expense-order-batch-summary>div:nth-child(2){border-right:0}.expense-order-batch-summary>div:nth-child(3){grid-column:1/-1;border-top:1px solid var(--border)}.expense-order-create,.expense-order-created{display:grid}.expense-order-create .button,.expense-order-created .button,.expense-order-created a.button{width:100%;justify-content:center}.expense-order-approval{justify-items:stretch}.expense-ocr-heading{display:grid}.expense-ocr-heading .button{width:100%;justify-content:center}.expense-ocr-result{grid-template-columns:1fr 1fr}.expense-ocr-result>b{grid-column:1/-1}}

/* 利用者・権限管理 / LINE招待 */
.access-page{max-width:1320px;margin:0 auto}.access-loading{min-height:280px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--blue);font-size:13px;font-weight:700}.access-summary{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:white;margin-bottom:12px}.access-summary>div{min-height:82px;border-right:1px solid var(--border);padding:13px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:3px 9px;color:var(--blue)}.access-summary>div:last-child{border-right:0}.access-summary svg{grid-row:1/3}.access-summary span{font-size:10px;color:var(--muted)}.access-summary strong{grid-row:1/3;grid-column:3;font-size:25px}.access-summary small{font-size:10px;margin-left:3px;color:var(--muted)}
.access-internal-role-guide{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:12px;border:1px solid #a9c8e7;background:#f4f9ff}.access-internal-role-guide>div{min-height:68px;padding:11px 14px;display:flex;align-items:center;gap:10px;border-right:1px solid #c9dced;color:var(--blue)}.access-internal-role-guide>div:last-child{border-right:0}.access-internal-role-guide span{display:grid;gap:3px}.access-internal-role-guide strong{font-size:12px;color:var(--ink)}.access-internal-role-guide small{font-size:9px;line-height:1.5;color:#58728a}
.contractor-scope-banner{min-height:66px;margin-bottom:12px;border:1px solid #9fc7ec;border-left:4px solid var(--blue);background:#eef7ff;padding:11px 14px;display:flex;align-items:center;gap:11px;color:var(--blue)}.contractor-scope-banner>div{display:grid;gap:3px}.contractor-scope-banner strong{font-size:13px;color:var(--ink)}.contractor-scope-banner span{font-size:10px;color:#53708b}.access-toolbar{min-height:58px;border:1px solid var(--border);background:#f7f9fb;padding:9px 10px;margin-bottom:12px;display:flex;align-items:center;gap:10px}.access-toolbar .search-field{margin:0;min-width:260px}.access-toolbar>label:not(.search-field){display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px;font-weight:700}.access-toolbar select{height:36px;min-width:210px;border:1px solid #b8c6d4;background:white;padding:0 30px 0 10px;color:var(--ink);font-size:12px}.access-toolbar>.button{margin-left:auto}
.access-layout{display:grid;grid-template-columns:minmax(400px,.9fr) minmax(520px,1.3fr);gap:12px;align-items:start}.access-layout--contractor{grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr)}.access-user-panel{min-width:0}.access-list-heading{min-height:50px;padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.access-list-heading strong{font-size:13px}.access-list-heading span{color:var(--blue);font-size:11px;font-weight:700}.access-user-list{max-height:610px;overflow:auto}.access-user-list>button{width:100%;min-height:66px;border:0;border-bottom:1px solid var(--border);background:white;padding:8px 11px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 18px;align-items:center;gap:9px;text-align:left;cursor:pointer}.access-user-list>button:hover{background:#f7fbff}.access-user-list>button.selected{background:#edf5ff;box-shadow:inset 4px 0 var(--blue)}.access-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eaf3ff;color:var(--blue);font-size:13px;font-weight:800}.access-avatar--invited{background:var(--amber-bg);color:var(--amber)}.access-avatar--suspended{background:#eef1f4;color:#718091}.access-user-name{min-width:0;display:grid;gap:3px}.access-user-name strong{font-size:12px}.access-user-name small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.access-empty{min-height:150px;display:grid;place-items:center;color:var(--muted);font-size:11px}
.access-detail-panel{padding:0;overflow:hidden}.access-detail-panel>header{min-height:72px;padding:12px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.access-detail-panel>header>div{display:flex;align-items:center;gap:10px}.access-detail-panel>header>div>span:last-child{display:grid;gap:3px}.access-detail-panel>header strong{font-size:15px}.access-detail-panel>header small{font-size:10px;color:var(--muted)}.access-detail-grid{padding:14px 15px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.access-detail-grid label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.access-detail-grid input,.access-detail-grid select{height:38px;border:1px solid #b8c6d4;background:white;padding:0 9px;color:var(--ink);font-size:12px}.access-detail-grid input:disabled,.access-detail-grid select:disabled{background:#f2f5f8;color:#677688}.access-name-editor{grid-column:1/-1}.access-name-editor>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.access-system-admin-note{grid-column:1/-1;margin:0;padding:9px 10px;border:1px solid #b9d4ee;background:#f2f8ff;color:#3f607e;font-size:10px;line-height:1.5;display:flex;align-items:flex-start;gap:7px}.access-system-admin-note svg{flex:0 0 auto;color:var(--blue)}.access-permission-section,.access-project-section{margin:0 15px 14px;border-top:1px solid var(--border);padding-top:13px}.access-permission-section>div:first-child,.access-project-section>div:first-child{display:grid;gap:3px;margin-bottom:9px}.access-permission-section strong,.access-project-section strong{font-size:12px}.access-permission-section>div:first-child span,.access-project-section>div:first-child span{font-size:9px;color:var(--muted)}.access-permission-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);border-left:1px solid var(--border)}.access-permission-grid label{min-height:42px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:7px;padding:7px 9px;color:#5d6d7e;font-size:10px;font-weight:700;cursor:pointer}.access-permission-grid label.checked{background:#eef6ff;color:var(--blue)}.access-permission-grid input{position:absolute;opacity:0;pointer-events:none}.access-permission-grid svg{width:18px;height:18px;border:1px solid #afbdca;padding:2px;background:white;color:transparent}.access-permission-grid label.checked svg{border-color:var(--blue);background:var(--blue);color:white}.access-project-section>div:last-child{border:1px solid var(--border);max-height:150px;overflow:auto}.access-project-section label{min-height:40px;border-bottom:1px solid var(--border);padding:7px 10px;display:flex;align-items:center;gap:8px;font-size:10px}.access-project-section label:last-child{border-bottom:0}.access-project-section input{width:16px;height:16px;accent-color:var(--blue)}.access-detail-panel>footer{min-height:62px;padding:10px 15px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:8px;background:#f8fafc}.access-detail-panel>footer>div{margin-right:auto;display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.access-stop-button{color:var(--red);border-color:#e1a4a7}.access-detail-empty{min-height:320px;display:grid;justify-items:center;align-content:center;gap:8px;color:#7c8c9d}.access-detail-empty strong{font-size:12px}
.access-device-section{margin:0 15px 14px;border:1px solid #c8d8e6;background:#f8fbfd;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:center}.access-device-section.is-connected{border-color:#8bc9aa;background:#f2fbf6}.access-device-heading{grid-column:1/-1;display:flex;align-items:center;gap:9px;color:var(--blue)}.access-device-heading>span:nth-child(2){min-width:0;display:grid;gap:3px;flex:1}.access-device-heading strong{font-size:12px;color:var(--ink)}.access-device-heading small{font-size:9px;line-height:1.5;color:var(--muted)}.access-device-section dl{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);background:white}.access-device-section dl>div{min-height:50px;padding:8px 9px;border-right:1px solid var(--border);display:grid;align-content:center;gap:3px}.access-device-section dl>div:last-child{border-right:0}.access-device-section dt{font-size:8px;color:var(--muted)}.access-device-section dd{margin:0;font-size:10px;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.access-device-revoke{color:var(--red);border-color:#dca0a4;background:white;white-space:nowrap}
.access-delete-button{color:#a0181f;border-color:#dca0a4;background:#fff8f8}.access-delete-button:hover{background:#fff0f0}
.access-invite-history{margin-top:12px}.access-invite-history>.panel-heading{margin-bottom:0}.access-invite-history>div:last-child{border-top:1px solid var(--border)}.access-invite-history article{min-height:48px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;padding:7px 4px;color:var(--blue)}.access-invite-history article:last-child{border-bottom:0}.access-invite-history article>span{display:grid;gap:2px}.access-invite-history article strong{font-size:10px;color:var(--ink)}.access-invite-history article small{font-size:8px;color:var(--muted)}
.access-modal-backdrop{position:fixed;z-index:180;inset:0;background:rgba(6,28,50,.62);display:grid;place-items:center;padding:20px}.access-modal{width:min(640px,96vw);max-height:92vh;background:white;border:1px solid #93a6b9;box-shadow:0 20px 60px rgba(0,20,45,.3);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.access-modal>header{min-height:64px;border-bottom:1px solid var(--border);padding:10px 14px;display:flex;align-items:center;justify-content:space-between}.access-modal>header>div{display:flex;align-items:center;gap:10px;color:var(--blue)}.access-modal>header span{display:grid;gap:2px}.access-modal>header strong{font-size:14px;color:var(--ink)}.access-modal>header small{font-size:9px;color:var(--muted)}.access-modal>header>button{width:36px;height:36px;border:1px solid #b8c6d4;background:white;font-size:22px;cursor:pointer}.access-modal-body{min-height:0;overflow:auto;padding:15px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.access-modal-body>label{display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:700}.access-modal-body input,.access-modal-body select{height:40px;border:1px solid #b5c3d1;background:white;padding:0 10px;color:var(--ink);font-size:12px}.access-modal-body fieldset{grid-column:1/-1;border:1px solid var(--border);padding:8px 10px 10px}.access-modal-body legend{padding:0 6px;color:var(--muted);font-size:10px;font-weight:700}.access-modal-body fieldset label{min-height:36px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;font-size:10px}.access-modal-body fieldset label:last-child{border-bottom:0}.access-modal-body fieldset input{width:16px;height:16px;accent-color:var(--blue)}.access-modal>footer{min-height:62px;border-top:1px solid var(--border);padding:10px 14px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.access-invite-ready{padding:24px 20px;display:grid;justify-items:center;gap:8px;text-align:center;color:var(--green)}.access-invite-ready strong{font-size:16px;color:var(--ink)}.access-invite-ready span,.access-invite-ready small{font-size:10px;line-height:1.6;color:var(--muted)}.access-invite-ready code{width:100%;margin-top:8px;border:1px solid #b9c9d8;background:#f5f8fb;padding:11px;text-align:left;color:#315171;font-family:inherit;font-size:10px;overflow-wrap:anywhere}
.access-role-help{grid-column:1/-1;min-height:58px;padding:10px 12px;border:1px solid #9fc7ec;border-left:4px solid var(--blue);background:#eef7ff;display:grid;gap:4px}.access-role-help strong{font-size:12px;color:var(--ink)}.access-role-help span{font-size:10px;line-height:1.6;color:#53708b}
.access-delete-modal{width:min(560px,96vw)}.access-delete-modal>header>div{color:var(--red)}.access-delete-confirmation{padding:22px 20px;display:grid;gap:8px}.access-delete-confirmation>strong{font-size:16px;color:var(--ink)}.access-delete-confirmation>span{font-size:11px;color:var(--muted)}.access-delete-confirmation>p{margin:8px 0 0;padding:12px;border:1px solid #e9b7ba;background:#fff5f5;color:#7d3035;font-size:11px;line-height:1.7}.access-delete-error{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid #df9298;background:#fff0f1;color:#9d1d27;font-size:11px;font-weight:700;line-height:1.5}
.line-invite-stage{min-height:100vh;background:#edf2f6;padding:24px;display:grid;place-items:start center}.line-invite-card{width:390px;max-width:100%;min-height:700px;background:white;border:1px solid #d2dce5;box-shadow:0 12px 32px rgba(10,37,64,.12)}.line-invite-card>header{height:60px;background:#06c755;color:white;padding:0 16px;display:flex;align-items:center;gap:9px}.line-invite-card>header strong{font-size:18px}.line-invite-loading,.line-invite-error{min-height:500px;padding:30px;display:grid;justify-items:center;align-content:center;gap:9px;text-align:center;color:var(--blue)}.line-invite-loading strong,.line-invite-error strong{font-size:15px;color:var(--ink)}.line-invite-loading span,.line-invite-error span,.line-invite-error small{font-size:10px;line-height:1.6;color:var(--muted)}.line-invite-error{color:var(--red)}.line-invite-welcome{padding:28px 20px 20px;display:grid;justify-items:center;text-align:center;color:#06a846}.line-invite-welcome h1{margin:10px 0 4px;color:var(--ink);font-size:21px}.line-invite-welcome p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.line-invite-card dl{margin:0 16px;border-top:1px solid var(--border)}.line-invite-card dl>div{min-height:47px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:82px 1fr;align-items:center}.line-invite-card dt{padding:8px;color:var(--muted);font-size:10px}.line-invite-card dd{margin:0;padding:8px;font-size:12px;font-weight:700}.line-invite-security{margin:14px 16px;border:1px solid #9fc7ec;border-left:4px solid var(--blue);background:#eef7ff;padding:10px;display:flex;align-items:center;gap:9px;color:var(--blue)}.line-invite-security span{display:grid;gap:2px}.line-invite-security strong{font-size:10px;color:var(--ink)}.line-invite-security small{font-size:8px;color:var(--muted)}.line-invite-accept{width:calc(100% - 32px);min-height:52px;margin:0 16px;border:0;border-radius:4px;background:#06c755;color:white;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:800;cursor:pointer}.line-invite-accept:hover{background:#05ad49}.line-invite-expiry{margin:10px 0 20px;display:flex;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:9px}
@media(max-width:1020px){.access-layout,.access-layout--contractor{grid-template-columns:1fr}.access-user-list{max-height:320px}.access-detail-panel{min-height:0}.access-summary{grid-template-columns:repeat(2,1fr)}.access-summary>div:nth-child(2){border-right:0}.access-summary>div:nth-child(-n+2){border-bottom:1px solid var(--border)}}
@media(max-width:760px){.access-toolbar{align-items:stretch;flex-wrap:wrap}.access-toolbar .search-field{min-width:100%}.access-toolbar>label:not(.search-field){width:100%;display:grid}.access-toolbar select{width:100%;min-width:0}.access-toolbar>.button{margin-left:0;width:100%}.access-summary{grid-template-columns:1fr 1fr}.access-summary>div{padding:10px;min-height:68px}.access-summary strong{font-size:20px}.access-internal-role-guide{grid-template-columns:1fr}.access-internal-role-guide>div{border-right:0;border-bottom:1px solid #c9dced}.access-internal-role-guide>div:last-child{border-bottom:0}.access-detail-grid{grid-template-columns:1fr}.access-device-section{grid-template-columns:1fr}.access-device-section dl{grid-template-columns:1fr}.access-device-section dl>div{border-right:0;border-bottom:1px solid var(--border)}.access-device-section dl>div:last-child{border-bottom:0}.access-device-section>.button{width:100%}.access-permission-grid{grid-template-columns:repeat(2,1fr)}.access-detail-panel>footer{align-items:stretch;flex-wrap:wrap}.access-detail-panel>footer>div{width:100%;margin:0}.access-detail-panel>footer .button{flex:1}.access-modal-backdrop{padding:0}.access-modal{width:100vw;max-height:100dvh;height:100dvh;border:0}.access-modal-body{grid-template-columns:1fr}.access-modal>footer{display:grid;grid-template-columns:1fr 1fr}.access-modal>footer .button{width:100%;padding:0 6px}.line-invite-stage{padding:0;background:white}.line-invite-card{width:100%;min-height:100vh;border:0;box-shadow:none}}

/* 追加材料の入力と、発注全体の条件設定を別の作業として見せる。 */
.project-material-section-step{justify-self:start;width:max-content;border-radius:12px;background:#e7f1ff;padding:3px 8px;color:var(--blue);font-size:8px;font-weight:800;line-height:1}
.project-material-manual-form-actions{align-items:center}.project-material-manual-form-actions>small{margin-right:auto;color:var(--muted);font-size:8px;line-height:1.4}
.project-material-candidate-actions{min-height:110px;margin-top:16px;padding:16px;border-top:8px solid #e8eef4;background:#fff;align-items:stretch}
.project-material-order-settings{flex:1;min-width:0;border:1px solid #a9c6e5;border-left:4px solid var(--blue);background:#f5f9fe;padding:12px 14px}
.project-material-order-settings>header{display:flex;align-items:flex-start;gap:9px;margin-bottom:12px}.project-material-order-settings>header>svg{flex:0 0 auto;margin-top:2px;color:var(--blue)}.project-material-order-settings>header>div{display:grid;gap:4px}.project-material-order-settings>header strong{font-size:12px}.project-material-order-settings>header small{color:var(--muted);font-size:8px;font-weight:500}
.project-material-order-settings-fields{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.project-material-order-settings-fields>span{padding-bottom:8px;color:var(--muted);font-size:9px}.project-material-order-settings-fields>span strong{color:var(--amber)}
@media(max-width:1120px){.project-material-candidate-actions{align-items:stretch;flex-direction:column}.project-material-export-actions{width:100%}}
@media(max-width:760px){.project-material-order-settings-fields{display:grid;grid-template-columns:1fr 1fr}.project-material-order-settings-fields>span{grid-column:1/-1}.project-material-manual-form-actions>small{grid-column:1/-1}}

/* 入退場に統合した稼働日・天候 */
.weather-page--embedded{gap:12px}.attendance-weather-intro{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-left:4px solid var(--blue)}.attendance-weather-intro>div{display:flex;align-items:center;gap:10px;color:var(--blue)}.attendance-weather-intro span{display:grid;gap:3px}.attendance-weather-intro h2{margin:0;color:var(--ink);font-size:16px}.attendance-weather-intro p{margin:0;color:var(--muted);font-size:10px}.weather-workday-table{min-width:980px}.weather-workday-table tr.is-selected td{background:#eef6ff}.weather-workday-table tr.is-selected td:first-child{box-shadow:inset 4px 0 var(--blue)}.weather-day-link{border:0;background:transparent;padding:4px 0;color:var(--blue);display:inline-flex;align-items:center;gap:4px;font:inherit;font-weight:750;cursor:pointer}.weather-day-link:hover{text-decoration:underline}.weather-attendance-value,.weather-work-time{display:flex;align-items:center;gap:5px;color:var(--blue)}.weather-work-time{flex-wrap:wrap}.weather-work-time small{width:100%;color:var(--amber);font-size:8px}.admin-weather-operations{margin-top:12px}.admin-weather-operations .admin-section-heading h2{display:flex;align-items:center;gap:7px}.admin-weather-operations .data-table{min-width:760px}.admin-weather-operations>p{margin:9px 0 0;color:var(--muted);font-size:9px;line-height:1.5}
@media(max-width:760px){.attendance-view-switch{grid-template-columns:repeat(3,1fr)}.attendance-weather-intro{align-items:stretch;display:grid;padding:11px}.attendance-weather-intro .button{width:100%;justify-content:center}.weather-workday-table{min-width:0}.weather-attendance-value,.weather-work-time{justify-content:flex-end}.admin-weather-operations{overflow:hidden}}

/* 1工程に離れた複数日程を登録する編集欄 */
.inspector-period-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:2px}.inspector-period-heading>span{color:var(--muted);font-size:10px;font-weight:700}.inspector-period-heading>strong{color:var(--blue);font-size:10px}
.inspector-period-list{display:grid;gap:8px}.inspector-period{border:1px solid #c4d2df;border-radius:4px;background:#f8fbfe;padding:9px}.inspector-period-title{display:flex;align-items:center;gap:7px;margin-bottom:7px}.inspector-period-title>b{font-size:11px}.inspector-period-title>span{color:var(--muted);font-size:9px}.inspector-period-title>.icon-button{width:26px;height:26px;margin-left:auto;color:var(--red)}.inspector-period>small{display:block;margin-top:5px;color:var(--muted);font-size:8px}.inspector-add-period{width:100%;justify-content:center;border-color:#8db8e1;color:var(--blue);background:#f2f8ff}

/* 工程の日程を一覧で変更 */
.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}
.schedule-edit-list{margin:0 0 12px;border:1px solid #9abbdc;background:#fff}.schedule-edit-list-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;background:#eef6ff}.schedule-edit-list-heading h2{font-size:16px;margin:0 0 3px}.schedule-edit-list-heading p{font-size:12px;color:#405e79;margin:0}.schedule-edit-table-scroll{overflow-x:auto}.schedule-edit-table{width:100%;min-width:930px;border-collapse:collapse}.schedule-edit-table th,.schedule-edit-table td{padding:9px 8px;border-top:1px solid #d6e1eb;text-align:left;vertical-align:middle}.schedule-edit-table thead th{color:#38546d;font-size:12px;white-space:nowrap;background:#f8fbfe}.schedule-edit-table thead th:first-child{width:55px}.schedule-edit-table thead th:nth-child(2){width:18%}.schedule-edit-table thead th:nth-child(3){width:39%}.schedule-edit-table thead th:nth-child(4){width:17%}.schedule-edit-table thead th:nth-child(5){width:116px}.schedule-edit-table thead th:nth-child(6){width:70px}.schedule-edit-table td:first-child{text-align:center}.schedule-edit-table td:first-child input{width:20px;height:20px;accent-color:#1764c0}.schedule-edit-group th{background:#edf2f7;color:#183b5b;font-size:12px}.schedule-edit-table tr.is-selected td{background:#f0f7ff}.schedule-edit-cell input,.schedule-edit-table select,.schedule-edit-period input{width:100%;min-height:38px;border:1px solid #aabed0;border-radius:4px;padding:6px 8px;background:white;color:#17324d;font-size:13px}.schedule-edit-periods{display:grid;gap:7px}.schedule-edit-period{display:flex;align-items:center;gap:6px}.schedule-edit-period>strong{min-width:39px;white-space:nowrap;color:#405e79;font-size:11px}.schedule-edit-period label{min-width:0;flex:1}.schedule-edit-period>span{color:#61758a}.schedule-bulk-shift{padding:14px 15px;border-top:1px solid #c9d8e6;display:grid;gap:11px}.schedule-bulk-heading{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.schedule-bulk-heading strong{font-size:14px}.schedule-bulk-heading span{font-size:11px;color:#506981}.schedule-bulk-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.schedule-bulk-controls label{display:grid;gap:3px;font-size:11px;font-weight:700;color:#405e79}.schedule-bulk-controls select,.schedule-bulk-controls input{height:38px;border:1px solid #aabed0;border-radius:4px;background:white;padding:5px 8px;color:#17324d;font-size:13px}.schedule-bulk-controls input{width:78px}.schedule-bulk-shift>.button{justify-self:start}.schedule-bulk-preview{border:1px solid #a9c7e5;background:#f4f9ff;padding:10px;display:grid;gap:5px;font-size:12px}.schedule-bulk-preview>div{display:grid;grid-template-columns:minmax(90px,1fr) 120px 15px 120px;gap:5px;align-items:center}.schedule-bulk-preview>div>span:first-child{font-weight:700}.schedule-edit-list-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:11px 15px;border-top:1px solid #c9d8e6;background:#f8fbfe}.schedule-edit-list-actions>span{margin-right:auto;font-size:12px;font-weight:700;color:#405e79}.schedule-edit-list-actions>.button{min-height:38px}.gantt-inspector .inspector-editor{display:flex;flex-direction:column;padding-bottom:72px}.gantt-inspector .inspector-period-heading{order:-4}.gantt-inspector .inspector-period-list{order:-3}.gantt-inspector .inspector-add-period{order:-2}.gantt-inspector .inspector-editor>p{order:-1}.gantt-inspector .inspector-period-heading>span,.gantt-inspector .inspector-period-heading>strong{font-size:12px}.gantt-inspector .inspector-date-fields label{font-size:11px}.gantt-inspector .inspector-period>small{font-size:10px}@media(min-width:1121px){.gantt-page:has(.gantt-inspector) .gantt-save-dock{right:380px}}@media(max-width:1120px){.schedule-edit-list{margin-bottom:10px}}@media(max-width:760px){.schedule-edit-list-heading{padding:12px}.schedule-edit-list-heading h2{font-size:15px}.schedule-edit-list-heading p{font-size:11px}.schedule-bulk-preview>div{grid-template-columns:1fr 1fr;gap:3px 8px}.schedule-bulk-preview>div>span:nth-child(3){display:none}.schedule-edit-list-actions{flex-wrap:wrap}.schedule-edit-list-actions>span{width:100%}.schedule-edit-list-actions>.button{flex:1}}

/* 工事担当者の完工後処理は売上依頼：所内まで */
.stage-stepper--manager{grid-template-columns:repeat(4,1fr)}
.completion-stage-handoff{display:flex;align-items:center;gap:10px;margin:-12px 0 18px;padding:11px 13px;border:1px solid #92c7ab;border-left:4px solid #27865d;background:#f0faf5;color:#1d6f4d}.completion-stage-handoff>div{display:grid;gap:2px}.completion-stage-handoff strong{font-size:11px}.completion-stage-handoff span{font-size:10px;color:#547264}
@media(max-width:760px){.stage-stepper--manager{grid-template-columns:repeat(4,90px)}.completion-stage-handoff{align-items:flex-start;margin-top:-8px}}

/* 施工マニュアルの新規登録・版管理 */
.manual-list-heading{align-items:center}.manual-list-heading>.button{height:34px;white-space:nowrap}.manual-permission-note{margin:0 12px 10px;padding:9px 10px;border:1px solid #a8c5df;background:#f3f8fd;color:#46647f;display:flex;align-items:center;gap:7px;font-size:9px;line-height:1.5}.manual-fields input:disabled,.manual-fields textarea:disabled{background:#f4f6f8;color:#485c70;opacity:1}.manual-attachment-section{margin:0 14px 14px;padding:12px;border:1px solid var(--border);background:#f7fafc;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:9px}.manual-attachment-section>div{display:grid;gap:3px;min-width:0}.manual-attachment-section>div>strong{display:flex;align-items:center;gap:6px;font-size:10px}.manual-attachment-section>div>span{font-size:8px;color:var(--muted)}.manual-attachment-section>.button{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-file-picker{min-height:34px;border:1px dashed var(--blue);background:#f4f9ff;color:var(--blue);padding:0 10px;display:flex;align-items:center;gap:6px;cursor:pointer;font-size:9px;font-weight:750}.manual-file-picker span{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manual-file-picker input{display:none}.manual-history{margin:0 14px 4px;border:1px solid var(--border);background:white}.manual-history>strong{display:block;padding:9px 10px;background:#f3f6f9;font-size:9px}.manual-history>div{min-height:34px;border-top:1px solid var(--border);padding:6px 10px;display:grid;grid-template-columns:90px 1fr 120px;gap:8px;align-items:center;font-size:9px}.manual-history>div span:nth-child(2),.manual-history>div span:nth-child(3){color:var(--muted)}.line-manual-attachment{width:calc(100% - 24px);min-height:46px;margin:8px 12px 12px;border:1px solid var(--blue);background:#f1f7fd;color:var(--blue);padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;text-align:left;font-size:10px;font-weight:750}.line-manual-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){.manual-list-heading{align-items:stretch;display:grid;gap:8px}.manual-list-heading>.button{width:100%}.manual-attachment-section{grid-template-columns:1fr}.manual-attachment-section>.button,.manual-file-picker{width:100%;max-width:none;justify-content:center}.manual-history>div{grid-template-columns:70px 1fr}.manual-history>div span:nth-child(3){grid-column:2}}

/* 施工マニュアル添付のドラッグ＆ドロップ */
.manual-attachment-section{transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.manual-attachment-section.is-dragging{border:2px dashed var(--blue);background:#eaf4ff;box-shadow:0 0 0 3px rgba(27,106,183,.12)}.manual-attachment-section.is-dragging>div>strong,.manual-attachment-section.is-dragging>div>span{color:var(--blue)}.manual-attachment-section.is-dragging .manual-file-picker{border-style:solid;background:var(--blue);color:white}

/* 受注資料の実ファイル添付 */
.distribution-attachment-guide{margin:0 14px 14px;padding:11px 12px;border:1px solid #a8c5df;border-left:4px solid var(--blue);background:#f3f8fd;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;color:var(--blue)}.distribution-attachment-guide>div:nth-child(2){display:grid;gap:3px}.distribution-attachment-guide strong{font-size:10px;color:var(--ink)}.distribution-attachment-guide span{font-size:8px;color:var(--muted);line-height:1.5}.distribution-add-document{display:flex;gap:6px;flex-wrap:wrap}.distribution-add-document .button{min-height:32px;padding:0 9px;white-space:nowrap}.distribution-document-list{display:grid;gap:10px;padding:12px 14px;background:#f5f7f9;overflow:visible}.distribution-document-card{border:1px solid var(--border);border-radius:4px;background:white;overflow:hidden}.distribution-document-heading{min-height:45px;padding:8px 11px;background:#f8fafc;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.distribution-document-heading>div{display:flex;align-items:center;gap:8px}.distribution-document-heading strong{font-size:11px}.distribution-document-heading label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px}.attachment-ready,.attachment-missing,.approval-not-required{border-radius:12px;padding:3px 7px;font-size:8px;font-weight:750}.attachment-ready{background:#e7f7ef;color:#1c8056}.attachment-missing{background:#fff0ef;color:#c43c3c}.approval-not-required{background:#edf2f7;color:#66788b}.legacy-file-note{margin:9px 11px 0;padding:7px 9px;border:1px solid #f0c37a;background:#fff9ed;color:#8a601c;font-size:8px;line-height:1.45}.distribution-drop-zone{margin:10px 11px;padding:10px;border:1px dashed #8db8e1;background:#f6faff;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;color:var(--blue);transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.distribution-drop-zone.is-dragging{border:2px dashed var(--blue);background:#e7f3ff;box-shadow:0 0 0 3px rgba(27,106,183,.12)}.distribution-drop-zone>div{display:grid;gap:2px}.distribution-drop-zone>div strong{font-size:9px}.distribution-drop-zone>div span{font-size:8px;color:var(--muted)}.distribution-file-picker{min-height:32px;border:1px solid var(--blue);border-radius:3px;background:white;color:var(--blue);display:flex;align-items:center;justify-content:center;gap:5px;padding:0 9px;font-size:9px;font-weight:750;cursor:pointer;white-space:nowrap}.distribution-file-picker input{display:none}.distribution-file-list{display:grid;border-top:1px solid var(--border)}.distribution-file-list>div{min-height:46px;border-top:1px solid var(--border);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.distribution-file-list>div:first-child{border-top:0}.distribution-file-open{min-width:0;border:0;background:white;padding:8px 11px;display:flex;align-items:center;gap:8px;text-align:left;color:var(--blue);cursor:pointer}.distribution-file-open>span{min-width:0;display:grid;gap:2px}.distribution-file-open strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:9px}.distribution-file-open small{font-size:8px;color:var(--muted)}.distribution-file-delete{width:36px;height:36px;margin-right:7px;border:1px solid #efb9b9;border-radius:3px;background:#fff8f8;color:#c43c3c;display:grid;place-items:center;cursor:pointer}.distribution-file-delete:disabled{opacity:.45;cursor:not-allowed}.document-recipient-grid input:disabled{background:#f4f6f8;color:#52667a;opacity:1}
@media(max-width:760px){.distribution-attachment-guide{grid-template-columns:auto 1fr}.distribution-add-document{grid-column:1/-1}.distribution-add-document .button{flex:1;justify-content:center}.distribution-document-list{padding:9px}.distribution-document-heading{align-items:flex-start;display:grid}.distribution-document-heading>div{justify-content:space-between}.distribution-drop-zone{grid-template-columns:auto 1fr}.distribution-file-picker{grid-column:1/-1;width:100%}.distribution-file-list>div{min-height:54px}.distribution-file-open{padding:9px}.distribution-file-delete{width:42px;height:42px}}
.distribution-drop-zone.is-locked{border-style:solid;border-color:#c9d3dc;background:#f3f5f7;color:#687b8d}

/* 担当現場すべてを現場別工程と同じ密度で比較 */
.portfolio-summary--compact{min-height:45px;display:flex;align-items:center;gap:24px;padding:7px 13px;margin-bottom:10px}.portfolio-summary--compact>span{font-size:10px;color:#526579;white-space:nowrap}.portfolio-summary--compact>span strong{font-size:11px;color:var(--ink)}.portfolio-summary--compact>span.text-red,.portfolio-summary--compact>span.text-red strong{color:var(--red)}.portfolio-summary--compact>p{margin-left:auto;padding:0;font-size:9px;white-space:nowrap}.portfolio-controls{min-height:48px}.portfolio-controls .gantt-view-mode{margin-left:0}.portfolio-controls>small{margin-left:auto}.portfolio-table{--portfolio-day-width:36px;grid-template-columns:var(--portfolio-info-width) max-content}.portfolio-month-row,.portfolio-day-row,.portfolio-track{grid-template-columns:repeat(var(--portfolio-days),var(--portfolio-day-width))}.portfolio-project-bar,.portfolio-task-bar{left:calc(var(--start) * var(--portfolio-day-width) + 2px);width:max(2px,calc(var(--duration) * var(--portfolio-day-width) - 4px))}.portfolio-project-link{max-width:100%;border:0;background:transparent;color:var(--blue);padding:0;font:inherit;font-size:11px;font-weight:750;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.portfolio-project-link:hover{text-decoration:underline}.portfolio-project-link:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.portfolio-project-info>span:nth-child(2){min-width:0;overflow:hidden}.portfolio-project-info>span:nth-child(2)>b,.portfolio-project-info>span:nth-child(2)>small{display:block;width:100%;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-table--overview .portfolio-head{height:45px}.portfolio-table--overview .portfolio-calendar-head{grid-template-rows:24px 21px}.portfolio-table--overview .portfolio-day-row span b,.portfolio-table--overview .portfolio-day-row span small{display:none}.portfolio-table--overview .portfolio-project-info,.portfolio-table--overview .portfolio-project-track{height:50px}.portfolio-table--overview .portfolio-task-info,.portfolio-table--overview .portfolio-task-track{height:38px}.portfolio-table--overview .portfolio-project-bar{top:17px;height:17px;padding:0}.portfolio-table--overview .portfolio-task-bar{top:13px;height:12px}.portfolio-table--overview .portfolio-project-info>span,.portfolio-table--overview .portfolio-task-info>span{padding-top:5px;padding-bottom:5px}.portfolio-table--overview .portfolio-project-bar b,.portfolio-table--overview .portfolio-project-bar em{display:none}.portfolio-table--overview .portfolio-track>i{border-right-color:#e7edf2}.portfolio-table--overview .portfolio-month-row span b{left:auto;position:static}.portfolio-table--overview .portfolio-month-row span{padding-left:5px}.portfolio-table--detail .portfolio-project-bar,.portfolio-table--detail .portfolio-task-bar{left:calc(var(--start) * var(--portfolio-day-width) + 4px);width:calc(var(--duration) * var(--portfolio-day-width) - 8px)}
@media(max-width:760px){.portfolio-summary--compact{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px}.portfolio-summary--compact>p{grid-column:1/-1;margin:0;white-space:normal}.portfolio-controls{display:grid;grid-template-columns:1fr auto;overflow:visible}.portfolio-controls .gantt-view-mode{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.portfolio-controls>small{grid-column:1/-1;margin:0}.portfolio-table{--portfolio-info-width:300px}.portfolio-project-info,.portfolio-task-info,.portfolio-info-head{grid-template-columns:1.65fr .95fr .9fr}}

/* 親案件行と工程側の罫線を揃える */
.portfolio-table--overview .portfolio-project-info,.portfolio-table--overview .portfolio-project-track{height:52px}

/* 担当現場すべて：1か月表示は現場別工程と同じ幅・日付密度にする */
.portfolio-table--single-month.portfolio-table--overview{grid-template-columns:var(--portfolio-info-width) minmax(0,1fr)}
.portfolio-table--single-month.portfolio-table--overview .portfolio-head{height:58px}
.portfolio-table--single-month.portfolio-table--overview .portfolio-calendar-head{grid-template-rows:22px 36px}
.portfolio-table--single-month.portfolio-table--overview .portfolio-month-row span{padding-left:8px;font-size:10px}
.portfolio-table--single-month.portfolio-table--overview .portfolio-day-row span b{display:block;font-size:10px;line-height:1}
.portfolio-table--single-month.portfolio-table--overview .portfolio-day-row span small{display:block;font-size:8px;line-height:1;margin-top:3px}

/* 携帯専用：月カレンダーから週工程を選ぶ */
.gantt-page--mobile-schedule{max-width:760px;margin:0 auto}.gantt-page--mobile-schedule .page-header{margin-bottom:10px}.mobile-schedule{display:grid;gap:10px;background:#fff;border:1px solid var(--border);color:var(--ink)}
.mobile-schedule-project{display:grid;gap:5px;padding:12px;border-bottom:1px solid var(--border);font-size:10px;font-weight:750;color:var(--muted)}.mobile-schedule-project select{width:100%;height:44px;border:1px solid #aebdcb;border-radius:3px;background:#fff;color:var(--ink);padding:0 36px 0 11px;font-size:15px;font-weight:750}
.mobile-schedule-month{display:grid}.mobile-schedule-month>header{height:48px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-bottom:1px solid var(--border)}.mobile-schedule-month>header strong{text-align:center;font-size:17px}.mobile-schedule-month>header button,.mobile-schedule-mode>span button{width:42px;height:42px;border:0;background:#fff;color:var(--ink);display:grid;place-items:center;cursor:pointer}.mobile-schedule-month>header button:focus-visible,.mobile-schedule-mode button:focus-visible,.mobile-month-grid button:focus-visible,.mobile-week-bar:focus-visible,.mobile-week-item:focus-visible{outline:3px solid #77aef0;outline-offset:-3px}
.mobile-month-weekdays,.mobile-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mobile-month-weekdays{height:28px;align-items:center;border-bottom:1px solid var(--border);font-size:11px;font-weight:750;text-align:center}.mobile-month-weekdays .sunday,.mobile-month-grid .sunday{color:#d33a3a}.mobile-month-weekdays .saturday,.mobile-month-grid .saturday{color:#1764c0}.mobile-month-grid{border-left:1px solid var(--border);border-top:1px solid var(--border);margin:0 10px}.mobile-month-grid button{position:relative;min-width:0;height:50px;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;color:var(--ink);padding:5px 2px;display:grid;align-content:start;justify-items:center;gap:2px;cursor:pointer}.mobile-month-grid button.outside{color:#a6b0ba;background:#fafbfc}.mobile-month-grid button.selected{background:#1764c0;color:#fff;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #1764c0}.mobile-month-grid button.selected.sunday,.mobile-month-grid button.selected.saturday{color:#fff}.mobile-month-grid button b{font-size:14px;line-height:1}.mobile-month-grid button small{position:absolute;top:22px;font-size:8px;background:#fff;color:#1764c0;border-radius:8px;padding:1px 4px;font-weight:750}.mobile-month-grid button>span{position:absolute;left:3px;right:3px;bottom:5px;display:flex;align-items:center;justify-content:center;gap:2px}.mobile-month-grid button i{display:block;width:8px;height:4px;border-radius:3px}.mobile-month-legend{padding:8px 10px 2px;display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap}.mobile-month-legend>span{min-width:0;display:inline-flex;align-items:center;gap:4px;font-size:9px;color:#42566b}.mobile-month-legend>span i{width:14px;height:5px;border-radius:4px;flex:0 0 auto}.mobile-month-legend>small{font-size:8px;color:var(--muted)}
.mobile-schedule-mode{min-height:52px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-schedule-mode>div{display:grid;grid-template-columns:1fr 1fr;border:1px solid #9fb6ce;border-radius:4px;overflow:hidden}.mobile-schedule-mode>div button{height:38px;border:0;border-right:1px solid #9fb6ce;background:#fff;color:#40576d;padding:0 11px;font-size:11px;font-weight:750;cursor:pointer}.mobile-schedule-mode>div button:last-child{border-right:0}.mobile-schedule-mode>div button.active{background:#1764c0;color:#fff}.mobile-schedule-mode>span{display:flex;align-items:center;gap:1px}.mobile-schedule-mode>span strong{min-width:76px;text-align:center;font-size:11px;white-space:nowrap}
.mobile-week-heading{min-height:40px;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.mobile-week-heading>span{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:750}.mobile-week-heading small{font-size:8px;color:var(--muted);white-space:nowrap}.mobile-week-gantt{display:grid;grid-template-columns:94px minmax(0,1fr);border-top:1px solid #b8c7d5;border-bottom:1px solid #b8c7d5}.mobile-week-corner{min-height:54px;border-right:1px solid #b8c7d5;border-bottom:1px solid #b8c7d5;display:grid;place-items:center;font-size:11px;font-weight:750;background:#f8fafc}.mobile-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid #b8c7d5}.mobile-week-days>span{position:relative;min-width:0;border-right:1px solid var(--border);display:grid;place-items:center;align-content:center;gap:2px;font-size:8px}.mobile-week-days>span:last-child{border-right:0}.mobile-week-days b{font-size:9px;white-space:nowrap}.mobile-week-days small{font-size:8px}.mobile-week-days .saturday{color:#1764c0;background:#f4f8fd}.mobile-week-days .sunday{color:#d33a3a;background:#fff7f7}.mobile-week-days em{font-style:normal;font-size:7px;background:#1764c0;color:#fff;padding:1px 3px;border-radius:7px}.mobile-week-row{display:contents}.mobile-week-item{min-width:0;min-height:58px;border:0;border-right:1px solid #b8c7d5;border-bottom:1px solid var(--border);background:#fff;color:var(--ink);padding:7px 8px;text-align:left;display:grid;align-content:center;gap:3px;cursor:pointer}.mobile-week-item strong{font-size:10px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mobile-week-item small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-week-track{position:relative;min-height:58px;border-bottom:1px solid var(--border);display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.mobile-week-track>i{border-right:1px dashed #d8e0e7}.mobile-week-track>i:last-of-type{border-right:0}.mobile-week-track>i.saturday{background:#f4f8fd}.mobile-week-track>i.sunday{background:#fff7f7}.mobile-week-track>i.today{box-shadow:inset 2px 0 #1764c0}.mobile-week-bar{position:absolute;z-index:2;top:18px;left:calc(var(--start) * 14.285714% + 2px);width:max(5px,calc(var(--duration) * 14.285714% - 4px));height:22px;border:0;border-radius:4px;background:var(--bar-color);box-shadow:0 1px 2px rgba(13,44,76,.2);cursor:pointer}.mobile-week-empty{grid-column:1/-1;min-height:88px;display:grid;place-items:center;color:var(--muted);font-size:10px;padding:16px}
.mobile-schedule-detail{position:relative;margin:0 10px;border:1px solid #8bb5df;border-left:4px solid #1764c0;background:#f4f9ff;padding:11px 42px 11px 11px;display:grid;gap:9px}.mobile-schedule-detail>.icon-button{position:absolute;right:7px;top:7px}.mobile-schedule-detail>span{display:flex;align-items:center;gap:7px}.mobile-schedule-detail>span i{width:14px;height:6px;border-radius:4px}.mobile-schedule-detail>span strong{font-size:12px}.mobile-schedule-detail dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mobile-schedule-detail dl>div{display:grid;gap:2px}.mobile-schedule-detail dt{font-size:8px;color:var(--muted)}.mobile-schedule-detail dd{margin:0;font-size:10px;font-weight:750}.mobile-schedule-help{margin:0;padding:2px 10px 12px;color:var(--muted);font-size:9px;text-align:center}
.mobile-schedule-edit-periods{display:grid;gap:9px;border:0;border-top:1px solid #b6cde4;margin:0;padding:10px 0 0}.mobile-schedule-edit-periods legend{font-size:13px;font-weight:700}.mobile-schedule-edit-periods>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mobile-schedule-edit-periods>div>span{grid-column:1/-1;font-size:11px;font-weight:700}.mobile-schedule-edit-periods label{display:grid;gap:4px;font-size:11px;font-weight:700}.mobile-schedule-edit-periods input{min-width:0;width:100%;min-height:44px;padding:5px;border:1px solid #9fb6ce;border-radius:4px;background:#fff;font-size:14px}.mobile-schedule-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 10px;padding:11px;border:1px solid #b6cde4;background:#f8fbff}.mobile-schedule-save>span{width:100%;font-size:12px;font-weight:700}.mobile-schedule-save>.button{flex:1;justify-content:center;min-height:44px}
@media(max-width:390px){.mobile-month-grid{margin:0 6px}.mobile-schedule-mode{align-items:stretch;display:grid;grid-template-columns:1fr auto}.mobile-schedule-mode>div button{padding:0 8px}.mobile-week-gantt{grid-template-columns:86px minmax(0,1fr)}.mobile-week-days b{font-size:8px}.mobile-week-days small{font-size:7px}.mobile-week-item{padding-left:6px;padding-right:6px}.mobile-week-item strong{font-size:9px}}
.toast{z-index:240}

/* 工程ごとのガント色 */
.gantt-info--child>span:first-child,.gantt-page--overview .gantt-info--child>span:first-child{grid-template-columns:16px 9px minmax(0,1fr)}
.gantt-info--child>span:first-child>b,.gantt-info--child>span:first-child>small{grid-column:3}
.gantt-info .gantt-item-color{grid-column:2;grid-row:1;width:9px;height:9px;border-radius:2px;align-self:center;overflow:visible}
.gantt-bar{background:var(--group-color,#1764c0)}
.gantt-bar>span{background:rgba(0,0,0,.2)}
.gantt-date-fields select{height:31px;border:1px solid #b8c6d4;border-radius:3px;background:#fff;color:var(--ink);padding:0 6px;font-size:10px}
.inspector-color-field{display:grid;gap:7px}
.inspector-color-field>span{color:var(--muted);font-size:10px;font-weight:700}
.inspector-color-field>div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.inspector-color-field button{min-height:38px;border:1px solid #c5d0da;border-radius:4px;background:#fff;color:var(--ink);padding:4px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:9px;cursor:pointer}
.inspector-color-field button i{width:13px;height:13px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.inspector-color-field button.is-selected{border:2px solid var(--blue);background:#edf5ff;font-weight:750}
.inspector-color-field small{color:var(--muted);font-size:9px}

/* 工程状態：利用者は％を入力せず、未着手・施工中・完了で管理する */
.inspector-status-field{display:grid;gap:6px}.inspector-status-field>span{font-size:10px;color:var(--muted);font-weight:700}.inspector-status-field>div{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #b8c6d4;border-radius:4px;overflow:hidden}.inspector-status-field button{min-height:36px;border:0;border-right:1px solid #b8c6d4;background:#fff;color:#40576d;font-size:10px;font-weight:750;cursor:pointer}.inspector-status-field button:last-child{border-right:0}.inspector-status-field button.is-selected{background:var(--blue);color:#fff}.inspector-status-field small{font-size:8px;color:var(--muted);line-height:1.45}
.gantt-info>span:last-child .status-tag,.portfolio-task-info>span:last-child .status-tag{align-self:flex-start}.gantt-page--overview .gantt-info>span:last-child .status-tag{min-height:18px;padding:1px 5px;font-size:8px}
.gantt-bar--not-started{opacity:.48}.gantt-bar--in-progress{opacity:.9}.gantt-bar--completed{opacity:1;box-shadow:0 0 0 1px rgba(16,72,44,.24),0 1px 2px rgba(10,42,74,.18)}.gantt-bar--delayed{opacity:1;background:#fff0f0;border:2px solid var(--red)}.gantt-bar--delayed>span{background:var(--red)}
.portfolio-task-bar--not-started,.mobile-week-bar--not-started{opacity:.46}.portfolio-task-bar--in-progress,.mobile-week-bar--in-progress{opacity:.9}.portfolio-task-bar--completed,.mobile-week-bar--completed{opacity:1;box-shadow:0 0 0 1px rgba(16,72,44,.24)}.portfolio-task-bar--delayed,.mobile-week-bar--delayed{opacity:1;background:#fff0f0!important;border:2px solid var(--red)!important}
.portfolio-task-open{display:block;width:100%;min-width:0;border:0;background:transparent;padding:3px 0;color:#115aa8;font:inherit;font-weight:700;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.portfolio-task-open:hover{text-decoration:underline}.portfolio-task-open:focus-visible,.portfolio-task-bar:focus-visible{outline:2px solid #1764c0;outline-offset:2px}.portfolio-task-bar{padding:0;border:0;cursor:pointer}.portfolio-editor-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:rgba(10,31,53,.58);padding:18px}.portfolio-editor{width:min(100%,560px);max-height:min(90vh,800px);overflow:auto;background:#fff;border-radius:10px;box-shadow:0 18px 60px rgba(0,0,0,.26);color:var(--ink)}.portfolio-editor header{position:sticky;top:0;background:#fff;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.portfolio-editor header small{color:var(--muted);font-size:12px}.portfolio-editor h2{font-size:20px;margin:4px 0 0}.portfolio-editor-fields{padding:20px 24px;display:grid;gap:17px}.portfolio-editor-fields label{display:grid;gap:6px;color:#40576d;font-size:12px;font-weight:700}.portfolio-editor-fields input,.portfolio-editor-fields select{width:100%;min-height:42px;padding:8px 10px;border:1px solid #aabed0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.portfolio-editor-period{display:grid;gap:9px;border-top:1px solid var(--border);padding-top:15px}.portfolio-editor-period>strong{font-size:13px}.portfolio-editor-period>div{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portfolio-editor-error{margin:0 24px 12px;padding:10px 12px;color:#9b1c1c;background:#fff0f0;font-size:13px}.portfolio-editor footer{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;background:#fff;padding:14px 24px;border-top:1px solid var(--border)}@media(max-width:520px){.portfolio-editor-backdrop{padding:8px}.portfolio-editor header,.portfolio-editor-fields,.portfolio-editor footer{padding-left:16px;padding-right:16px}.portfolio-editor-period>div{grid-template-columns:1fr}}
/* Temporary materials closure: visible and readable, never a hidden menu. */
.materials-construction-badge { display: inline-block; margin-left: 8px; padding: 2px 6px; border-radius: 4px; color: #713f12; background: #fef3c7; font-size: 12px; font-weight: 700; }
.materials-construction-notice { padding: 14px 18px; border: 1px solid #d97706; border-radius: 8px; background: #fffbeb; color: #713f12; font-weight: 600; line-height: 1.7; }
.main-nav .nav-item:disabled { cursor: not-allowed; opacity: 1; color: #cbd5e1; }
.line-home-menu .materials-construction-menu:disabled { cursor: not-allowed; opacity: 1; color: #475569; background: #f1f5f9; border-color: #94a3b8; }
.line-home-menu .materials-construction-menu b { color: #713f12; background: #fef3c7; }
.attendance-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.attendance-fields > label { align-content: start; }
.attendance-history-field { min-width: 0; display: grid; align-content: start; gap: 6px; }
.attendance-history-field.wide { grid-column: 1 / -1; }
.attendance-history-field small { color: var(--muted); font-size: 11px; line-height: 1.6; }
.attendance-history-picker { min-width: 0; }
.attendance-history-picker summary { width: fit-content; padding: 9px 12px; border: 1px solid #b8c6d4; border-radius: 4px; color: var(--blue); background: white; cursor: pointer; font-size: 12px; font-weight: 700; }
.attendance-history-picker summary:focus-visible, .attendance-history-options button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.attendance-history-options { display: grid; gap: 4px; max-height: 220px; overflow-y: auto; margin-top: 6px; padding: 6px; border: 1px solid var(--border); background: #f3f8fe; }
.attendance-history-options button { width: 100%; min-height: 44px; padding: 10px; border: 1px solid var(--border); border-radius: 3px; text-align: left; overflow-wrap: anywhere; background: white; color: var(--ink); cursor: pointer; }
.attendance-history-options p { margin: 4px; font-size: 12px; line-height: 1.7; }
@media (max-width: 760px) { .attendance-fields { grid-template-columns: minmax(0, 1fr); } }
.access-modal:is([aria-labelledby="expense-context-title"], [aria-labelledby="attendance-leave-title"]) { width: min(520px, calc(100vw - 32px)); height: auto; max-height: calc(100dvh - 32px); display: block; overflow-y: auto; border-radius: 8px; }
.access-modal:is([aria-labelledby="expense-context-title"], [aria-labelledby="attendance-leave-title"]) > h2 { margin: 0; padding: 20px 20px 12px; font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.access-modal:is([aria-labelledby="expense-context-title"], [aria-labelledby="attendance-leave-title"]) > p { margin: 0; padding: 0 20px 20px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.access-modal:is([aria-labelledby="expense-context-title"], [aria-labelledby="attendance-leave-title"]) > footer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding: 12px; }
.access-modal:is([aria-labelledby="expense-context-title"], [aria-labelledby="attendance-leave-title"]) > footer .button { min-width: 0; min-height: 44px; white-space: normal; }
.access-modal.draft-guard-dialog { margin: auto; border: 0; padding: 0; height: fit-content; min-height: 0; }

/* Worker invitations: keep the invitation action separate from management. */
.access-management--internal>summary{display:none}
.access-invite-company{margin:0 0 16px;color:var(--muted);font-size:14px;overflow-wrap:anywhere}
.access-worker-list{margin-bottom:16px}
.access-worker-list>article{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}
.access-worker-list>article:last-child{border-bottom:0}
.access-worker-select{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:4px 0;border:0;background:white;color:var(--ink);text-align:left;cursor:pointer;font-family:inherit;font-size:15px}
.access-worker-select strong{overflow-wrap:anywhere}
.access-worker-select .status-tag{flex-shrink:0}
.access-management>summary{min-height:44px;padding:12px 0;color:var(--blue);font-size:14px;font-weight:700;cursor:pointer}
.access-management .access-toolbar{margin-top:12px}
.access-worker-registration,.access-invite-modal--simple{width:min(520px,calc(100vw - 32px));height:auto;max-height:calc(100dvh - 32px);margin:auto;grid-template-rows:auto minmax(0,1fr) auto}
.access-worker-registration>header strong,.access-invite-modal--simple>header strong{font-size:18px}
.access-worker-registration>header small{font-size:13px}
.access-worker-registration .access-modal-body{display:flex;flex-direction:column;gap:20px;padding:20px}
.access-worker-registration .access-modal-body>label,.access-registration-role label{font-size:14px;display:grid;gap:8px}
.access-worker-registration .access-modal-body input:not([type=checkbox]),.access-worker-registration .access-modal-body select{font-size:16px;min-height:44px}
.access-worker-registration fieldset{padding:8px 12px;border:1px solid var(--border);margin:0}
.access-worker-registration .access-modal-body legend{font-size:14px}
.access-worker-registration .access-modal-body fieldset label{font-size:14px;min-height:48px;line-height:1.5}
.access-worker-registration fieldset p{font-size:14px;color:var(--muted)}
.access-registration-role summary{min-height:44px;padding:10px 0;font-size:13px;color:var(--muted);cursor:pointer}
.access-registration-role label{margin-top:8px}
.access-worker-registration>footer .button{min-height:44px;font-size:14px}
.access-invite-modal--simple .access-invite-ready{min-height:0;overflow-y:auto;padding:20px;gap:12px;align-content:start}
.access-invite-modal--simple .access-invite-ready strong{font-size:20px;overflow-wrap:anywhere}
.access-invite-modal--simple .access-invite-ready span,.access-invite-modal--simple .access-invite-ready small{font-size:14px;overflow-wrap:anywhere}
.access-invite-projects{list-style:none;margin:0;padding:0;color:var(--ink);font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.access-invite-link{width:100%;text-align:left}
.access-invite-link summary{padding:10px 0;color:var(--muted);font-size:13px;cursor:pointer}
.access-invite-modal--simple .access-invite-ready code{display:block;font-size:13px;box-sizing:border-box}
.access-invite-modal--simple>footer{display:flex;flex-direction:column;align-items:stretch;padding:16px;gap:10px}
.access-invite-modal--simple>footer .button{width:100%;min-height:48px;font-size:16px}
.line-invite-welcome--simple{padding:24px 20px 12px}
.line-invite-welcome--simple h1{font-size:22px;margin:0}
@media(max-width:760px){
 .access-page--invite .page-header .page-actions{width:100%}
 .access-worker-list>article{padding:12px;flex-wrap:wrap;gap:4px 12px}
 .access-worker-select{flex-basis:100%}
 .access-worker-list>article>.button{min-height:44px;width:100%;font-size:14px}
 .access-worker-registration,.access-invite-modal--simple{width:calc(100vw - 32px);height:auto;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--border)}
 .access-worker-registration>footer{display:grid;grid-template-columns:1fr 1fr}
 .access-invite-modal--simple>footer{display:flex}
}
.draft-guard-dialog::backdrop { background: rgba(10, 35, 57, 0.65); }
/* Off-screen navigation must also leave the keyboard and accessibility trees. */
@media (max-width: 760px) {
  .sidebar { visibility: hidden; }
  .sidebar.sidebar--open { visibility: visible; }
}

.schedule-save-error p { margin: 0 0 8px; line-height: 1.5; overflow-wrap: anywhere; }
.schedule-save-error .button { display: inline-flex; }

/* The manual screen leads with the original document, not duplicate instructions. */
.line-manual-card > header { align-items: start; padding: 16px; }
.line-manual-card > header span { font-size: 12px; line-height: 1.5; }
.line-manual-card h2 { font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.line-manual-card > header b { font-size: 12px; }
.line-manual-open { width: calc(100% - 32px); min-height: 56px; margin: 16px; padding: 12px 14px; background: var(--blue); color: white; font-size: 16px; cursor: pointer; }
.line-manual-open:hover { background: #1255a3; }
.line-manual-open:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
.line-manual-card > footer { font-size: 12px; }
.line-manual-guide > strong { font-size: 12px; }
/* Administrator cleanup: isolated scroll area, explicit selection and confirmation. */
.cleanup-dialog { width: min(920px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); display: flex; flex-direction: column; background: white; border: 1px solid #d0dcec; border-radius: 12px; color: #14283f; box-shadow: 0 20px 70px #09203933; }
.cleanup-dialog > header, .cleanup-dialog > footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; flex-shrink: 0; }
.cleanup-dialog > header { border-bottom: 1px solid #d0dcec; }
.cleanup-dialog > header h2 { display: flex; align-items: center; gap: 10px; font-size: 22px; margin: 0; }
.cleanup-dialog > footer { border-top: 1px solid #d0dcec; justify-content: flex-end; flex-wrap: wrap; }
.cleanup-body { overflow: auto; padding: 20px; overscroll-behavior: contain; }
.cleanup-body > p { margin: 0 0 16px; }
.cleanup-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }
.cleanup-tabs button { padding: 10px 14px; border: 1px solid #cad8e8; background: #fff; color: #21598f; border-radius: 6px; min-height: 44px; }
.cleanup-tabs button[aria-selected="true"] { color: #fff; background: #1963ba; border-color: #1963ba; }
.cleanup-tabs small { padding-left: 8px; font-weight: 700; }
.cleanup-search, .cleanup-confirm { display: grid; gap: 6px; margin-bottom: 16px; }
.cleanup-search input, .cleanup-confirm input { padding: 12px; border: 1px solid #bbcce1; border-radius: 6px; font-size: 16px; min-width: 0; }
.cleanup-list { border: 1px solid #d0dcec; border-radius: 6px; max-height: 360px; overflow: auto; }
.cleanup-list > p { padding: 20px; }
.cleanup-list > label { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-bottom: 1px solid #e4ebf3; cursor: pointer; min-height: 60px; }
.cleanup-list > label:last-child { border-bottom: 0; }
.cleanup-list input { width: 20px; height: 20px; flex-shrink: 0; margin-top: 3px; accent-color: #1963ba; }
.cleanup-list span, .cleanup-preview-group li { display: grid; gap: 4px; overflow-wrap: anywhere; }
.cleanup-list small, .cleanup-preview-group small { color: #65788d; }
.cleanup-selected { margin-top: 14px !important; font-weight: 700; }
.cleanup-preview-group { border: 1px solid #d0dcec; border-radius: 6px; margin-bottom: 10px; padding: 12px; }
.cleanup-preview-group summary { font-weight: 700; cursor: pointer; min-height: 32px; }
.cleanup-preview-group ul { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.cleanup-warning { margin: 20px 0 !important; background: #fff3f3; border: 1px solid #facaca; padding: 12px; color: #9b242b; }
.cleanup-success svg { color: #21815c; }
.cleanup-success small { overflow-wrap: anywhere; }
@media (max-width: 600px) { .cleanup-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); } .cleanup-body { padding: 14px; } .cleanup-dialog > header, .cleanup-dialog > footer { padding: 12px; } .cleanup-dialog > footer .button { flex: 1 1 auto; } .cleanup-tabs button { flex-grow: 1; } }
/* Readable controls shared across every builder and role. */
.dashboard-projects { grid-column: 1 / -1; }
.dashboard-projects .data-table { width:100%; min-width:0; }
.dashboard-projects .data-table th:first-child { width:35%; }
.dashboard-projects .table-link { text-align:left; overflow-wrap:anywhere; }
.dashboard-projects .data-table td:not(:first-child) { white-space:nowrap; }
@media(max-width:760px) {
 .dashboard-projects .data-table thead { display:none; }
 .dashboard-projects .data-table tbody { display:grid; gap:12px; }
 .dashboard-projects .data-table tr { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--border); padding:12px 0; }
 .dashboard-projects .data-table td { border:0; padding:6px; white-space:normal; }
 .dashboard-projects .data-table td:first-child { grid-column:1 / -1; font-size:16px; }
 .dashboard-projects .data-table td:last-child { grid-column:1 / -1; }
 .dashboard-projects .data-table td:last-child button { width:100%; min-height:44px; }
}
.line-required-copy p,.line-required-copy small,.line-required-control>span,.line-photo-modes button { font-size:14px; line-height:1.6; white-space:normal; }
.line-required-copy strong { font-size:16px; }
.line-photo-action { min-height:44px; font-size:14px; }
.line-photo-action:focus-visible { outline:3px solid #1768c8; outline-offset:3px; }
.document-list-panel>label.manual-fields { display:flex; flex-direction:column; align-items:stretch; gap:8px; }
.document-list-panel>label.manual-fields select { width:100%; min-width:0; }
.access-detail-panel details>summary { cursor:pointer; padding:14px 0; min-height:44px; }
.photo-notification { display:block; }
.photo-notification>summary { cursor:pointer; min-height:44px; padding:12px; }
.photo-summary-rail .photo-summary-missing strong,.line-photo-status>div:first-child strong { color:var(--ink); }
.photo-manager-page details.photo-notification { background:#f5f8fc; color:var(--ink); border-color:var(--border); }
.manual-editor>details>summary { cursor:pointer; min-height:44px; padding:12px 0; }
@media(max-width:600px) {
 .line-required-item { grid-template-columns:32px minmax(0,1fr); }
 .line-required-control { grid-column:2; grid-template-columns:1fr 1fr; align-items:center; }
 .line-required-icon { width:30px; }
 .line-photo-action { font-size:14px; min-height:44px; }
 .line-photo-modes button { font-size:14px; }
}
.line-attendance-form select { width: 100%; min-height: 44px; font-size: 16px; padding: 8px; border: 1px solid #b6c8de; border-radius: 6px; background: white; color: #102e50; }
.line-attendance-form label { font-size: 14px; }
.line-worker-fields .line-worker-choice { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 16px; }
.line-worker-fields .line-worker-choice input { width: 22px; height: 22px; flex: 0 0 22px; }
.line-expense-form input,.line-expense-form select,.line-expense-form textarea { min-width:0; min-height:44px; font-size:16px; }
.line-expense-form>label,.line-expense-row label { font-size:14px; }
.line-expense-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.line-expense-submit,.line-expense-receipt-preview-heading button { min-height:44px; font-size:16px; }
/* Secondary explanations remain available without crowding the primary action. */
details.line-expense-note { display:block; font-size:14px; }
details.line-location-note { padding:0; }
details.line-expense-note>summary,details.line-location-note>summary,
.registration-photo-review details>summary,.photo-detail-panel details>summary,
.access-page>details>summary,.expense-detail>details>summary { cursor:pointer; min-height:44px; padding:12px 0; line-height:1.5; }
details.line-expense-note>p,details.line-location-note>p { margin:0 0 12px; line-height:1.6; }
.photo-worker-connectivity { grid-template-columns:auto minmax(0,1fr); }
.photo-worker-connectivity.is-disconnected { border-color:#e0b966; border-left-color:var(--amber); background:#fff8e8; color:var(--amber); }
