/* PBL executive design tokens — local assets, no external font dependency. */
:root {
    --pbl-maroon:#571f2c; --pbl-red:#970000; --pbl-warm-red:#ac3540;
    --pbl-charcoal:#202127; --pbl-ivory:#f5f3f0; --pbl-metal:#bea78a;
    --pbl-surface:#fffefd; --ink:#292930; --muted:#716d73; --line:#e7e1dc; --bg:var(--pbl-ivory);
    --radius-sm:9px; --radius-md:15px; --radius-lg:22px;
    --shadow-soft:0 3px 8px #30202b04,0 12px 30px #30202b05;
    --shadow-hover:0 12px 30px #40212b10;
    --ease:cubic-bezier(.2,.7,.2,1); --motion-fast:160ms; --motion:240ms;
    --gradient-brand:linear-gradient(120deg,#6e2332 0%,#970000 72%,#ad4144 100%);
}
body {background:var(--bg);font-family:"Segoe UI Variable","Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased}
::selection {background:#e6cbd0;color:#4e1b29}
h1,h2,h3 {color:var(--ink)}
h1 {font-size:30px;letter-spacing:-1px;font-weight:650}
h2 {font-size:18px;font-weight:650;letter-spacing:-.35px}
h3 {font-weight:650}
.eyebrow {font-size:10px;letter-spacing:1.8px;font-weight:600}
.pbl-icon {width:19px;height:19px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.app-sidebar {width:248px;background:linear-gradient(165deg,#28272e,#201f25 58%,#321f29);padding:25px 14px 12px;border:0;color:#ece4df;scrollbar-width:thin;scrollbar-color:#625058 transparent}
.brand {color:#fff6ee;font-size:16px;padding:2px 8px 24px;gap:11px;letter-spacing:-.3px}
.brand:hover {text-decoration:none;color:white}
.brand small {color:#c1b5b6;font-size:9px;letter-spacing:.3px;margin-top:2px}
.brand-mark {border:1px solid #d0afa45e;background:linear-gradient(145deg,#ad3d47,#5c2332);box-shadow:inset 0 1px 0 #fff3,0 5px 14px #0002;border-radius:12px;padding:12px 8px}
.nav-search {background:#ffffff08;border-color:#ffffff19;color:#f5efea;font-size:12px;padding:10px 12px 10px 35px;border-radius:9px}
.nav-search::placeholder {color:#b6a8ad}
.nav-search:focus {border-color:#c7a795;box-shadow:0 0 0 3px #c7a79517}
.nav-search-wrap {position:relative}
.nav-search-wrap>.pbl-icon {position:absolute;left:11px;top:11px;color:#b6a8ad;width:15px;height:15px}
.nav-link {display:flex;align-items:center;gap:10px;padding:9px 11px;margin:2px 0;color:#d3c9cd;font-size:12px;line-height:1.4;transition:background var(--motion-fast),color var(--motion-fast),transform var(--motion-fast)}
.nav-link .pbl-icon {width:16px;height:16px;color:#ad979f}
.nav-link:hover {background:#ffffff0b;color:white;transform:translateX(2px)}
.nav-link.selected {background:linear-gradient(105deg,#793240,#522833);color:#fff7f0;box-shadow:inset 2px 0 #d4ae94,0 3px 8px #0001;font-weight:600}
.nav-link.selected .pbl-icon {color:#edd1c0}
nav details {margin:10px 0 4px}
nav summary {display:flex;align-items:center;gap:9px;list-style:none;color:#bfb0b6;font-size:10px;letter-spacing:1.2px;padding:10px 11px}
nav summary::-webkit-details-marker {display:none}
nav summary::after {content:"";width:5px;height:5px;border-right:1px solid;border-bottom:1px solid;transform:rotate(-45deg);margin-left:auto;transition:transform var(--motion)}
nav details[open]>summary::after {transform:rotate(45deg)}
nav details[open]>.nav-link {animation:nav-enter var(--motion) var(--ease)}
nav summary .pbl-icon {width:15px;height:15px;color:#bba28d}
.sidebar-foot {color:#a898a0;border-top:1px solid #ffffff12;line-height:1.8;margin:20px 9px 0;padding:18px 0 8px}
.app-body {margin-left:248px}
.app-header {height:82px;padding:16px 34px;background:#fffefded;backdrop-filter:blur(12px);border-bottom:1px solid #e6dfd8;gap:16px}
.breadcrumb {display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-bottom:3px}
.breadcrumb a {color:var(--muted)}
.breadcrumb span {color:#b4a9a2}
.app-header strong {font-size:14px;font-weight:600}
.header-user {gap:13px;font-size:12px}
.header-user small {color:#86767b;letter-spacing:1px;font-size:9px}
.profile-avatar {display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:linear-gradient(140deg,#f2e9df,#e6d7cf);border:1px solid #dbc6bd;color:#6a2a38;font-weight:650;letter-spacing:-.5px}
.header-user .button {border:0;background:transparent;box-shadow:none;color:#766c71;padding:8px;font-weight:500;font-size:12px}
.icon-button {color:var(--ink);border-radius:9px;background:#fffefd;border-color:var(--line)}
[data-menu-toggle] {display:inline-flex;align-items:center;justify-content:center;min-width:35px;min-height:35px}
[data-menu-close] {color:#eee2df;background:#ffffff0a;border-color:#ffffff19;margin-bottom:16px}
.page {padding:30px 34px 36px;max-width:1740px;animation:executive-enter var(--motion) var(--ease)}
.page-heading {margin-bottom:25px;gap:18px}
.page-heading p {font-size:13px;margin-top:7px}
.app-footer {display:flex;justify-content:space-between;gap:16px;padding:18px 34px;border-top:1px solid var(--line);letter-spacing:.5px;font-size:10px}
.card,.container,.modal,.pbl-card {background:var(--pbl-surface);border-color:var(--line);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-soft)}
.card {transition:box-shadow var(--motion),border-color var(--motion)}
.card:hover {border-color:#d8cbc3}
.card:has(>.empty) {min-height:170px}
.cards {gap:16px}
.section-heading {display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}
.section-heading h2 {margin:0}
.section-heading .eyebrow {display:block;color:#9b7e70;margin-bottom:5px;font-size:9px}
.section-heading>a {font-size:12px;font-weight:600}
.section-heading .pbl-icon {color:#986d6a}
.executive-hero {position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:34px 36px;margin-bottom:24px;border-radius:var(--radius-lg);background:radial-gradient(ellipse at 88% 0%,#c17e6340,transparent 55%),linear-gradient(112deg,#30202b 0%,#632434 54%,#922d37);color:#f4eae4;box-shadow:0 14px 30px #64243416;border:1px solid #7a364c}
.executive-hero::before {content:"";position:absolute;width:380px;height:380px;border:1px solid #dec1a724;border-radius:50%;right:-40px;top:-170px;box-shadow:0 0 0 50px #dec1a708,0 0 0 110px #dec1a705;z-index:-1;pointer-events:none}
.executive-hero::after {content:"PBL";position:absolute;right:20px;bottom:-46px;font-size:160px;line-height:1;font-weight:750;letter-spacing:-10px;color:#ffffff04;z-index:-1;pointer-events:none}
.executive-hero .eyebrow {color:#dac0ac;font-size:9px;letter-spacing:2px}
.executive-hero h1 {color:#fff8f0;font-size:34px;letter-spacing:-1.2px;margin:13px 0 8px}
.executive-hero p {color:#dbc8ce;max-width:510px;font-size:13px;margin:0}
.hero-actions {display:flex;flex-direction:column;align-items:flex-end;gap:17px;flex-shrink:0}
.hero-date {font-size:11px;color:#e0c8bb;letter-spacing:1px}
.hero-actions .button {background:#fff8ee;color:#642633;border:1px solid #fff4e2;box-shadow:0 5px 16px #1f122020}
.live-indicator {display:inline-flex;align-items:center;gap:7px;font-size:10px;color:#e5d4c7}
.live-indicator::before {content:"";height:5px;width:5px;background:#d4c2a5;border-radius:50%;box-shadow:0 0 0 4px #d4c2a51a}
.dashboard-metrics {grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:24px}
.metric {position:relative;overflow:hidden;padding:20px 22px;min-height:138px;background:linear-gradient(125deg,#fffefd 55%,#f7f1ec);transition:transform var(--motion),box-shadow var(--motion)}
.metric::before {content:"";position:absolute;top:0;left:22px;width:35px;height:2px;background:linear-gradient(90deg,#8d3445,#cfb291)}
.metric:hover {transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.metric .label {font-size:12px;font-weight:500;color:#70646a;display:block;margin-right:36px}
.metric .value {font-size:29px;font-weight:650;letter-spacing:-1px;color:#3a2732;margin:7px 0 3px;font-variant-numeric:tabular-nums}
.metric .hint {font-size:11px;color:#89767a}
.metric>.pbl-icon {position:absolute;right:20px;top:20px;width:31px;height:31px;padding:6px;border:1px solid #bfa59438;border-radius:10px;background:#efe3dd5c;color:#8d5260}
.quick-actions {display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 24px;padding:15px 20px;background:#eee9e380;border:1px solid #e2d8cf;border-radius:13px}
.quick-actions>.eyebrow {margin-right:auto;font-size:9px;color:#8b756b}
.quick-actions a {font-size:12px;display:inline-flex;align-items:center;gap:8px;background:#fffaf6;border:1px solid #e0d4c9;border-radius:8px;padding:7px 12px;color:#67404a;transition:transform var(--motion)}
.quick-actions a:hover {transform:translateY(-2px);text-decoration:none}
.quick-actions .pbl-icon {width:15px;height:15px}
.button,.btn,button[type=submit],form>button {background:var(--gradient-brand);border:1px solid #792132;border-radius:var(--radius-sm);font-size:12px;font-weight:600;padding:10px 16px;gap:8px;min-height:39px;box-shadow:inset 0 1px #ffffff16,0 3px 6px #63202e0c;transition:transform var(--motion-fast),box-shadow var(--motion-fast),filter var(--motion-fast)}
.button:hover,.btn:hover,button[type=submit]:hover,form>button:hover {background:var(--gradient-brand);transform:translateY(-1px);box-shadow:0 6px 15px #69273820;filter:brightness(1.06);text-decoration:none}
.button:active,button:active {transform:translateY(1px);box-shadow:none}
.button.secondary,.btn.secondary,button.secondary {background:#fffefd;border-color:#ded5ce;color:#66565d;box-shadow:0 2px 4px #35282d03}
.button.secondary:hover,button.secondary:hover {background:#f5efea}
.danger,button.danger {background:#9d3040!important;border-color:#9d3040!important}
button:disabled,[aria-disabled=true] {opacity:.65;transform:none!important;cursor:wait;filter:none}
button.is-loading::before {content:"";width:12px;height:12px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}
label {font-size:12px;font-weight:600;color:#62535b;margin:9px 0 7px}
input,select,textarea {background:#fffefd;border-color:#dcd3ce;border-radius:9px;font-size:13px;padding:11px 12px;transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background var(--motion-fast)}
input:hover,select:hover,textarea:hover {border-color:#bca5a7}
input:focus,select:focus,textarea:focus {outline:none;border-color:#a85a69;box-shadow:0 0 0 3px #8e314411;background:#fff}
input::placeholder,textarea::placeholder {color:#a1979b}
input[readonly],input:disabled,select:disabled {background:#f3efeb;color:#84737b}
input[type=checkbox] {accent-color:#832b3d}
input[type=file] {padding:8px}
input[type=file]::file-selector-button {border:0;border-radius:6px;background:#ede3df;color:#693443;padding:6px 10px;margin-right:12px;font:inherit;cursor:pointer}
.field-error {color:#a02d42;font-size:12px;margin:6px 0 0;display:block}
[aria-invalid=true] {border-color:#b84557!important;background:#fff8f7}
.form-grid {gap:18px 24px}
.filters {gap:12px;border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:20px}
.filters.is-filtered {border-bottom-color:#b77d85}
.filter-indicator {flex-basis:100%;font-size:11px;color:#8e3449;display:flex;gap:7px;align-items:center}
.table-wrap,.table-scroll,.pbl-table-wrap {border:1px solid var(--line);border-radius:11px;scrollbar-width:thin;scrollbar-color:#c6b7b1 transparent}
table {font-size:12px;border-collapse:separate;border-spacing:0}
th {background:#f1ede8;color:#87756f;font-size:10px;letter-spacing:.65px;border-top:0;font-weight:600;padding:13px 15px;white-space:nowrap}
td {padding:15px;border-color:#eee8e3;transition:background var(--motion-fast);vertical-align:middle}
tbody tr:last-child td {border-bottom:0}
tbody tr:nth-child(even) {background:#fbf9f6}
tbody tr:hover td {background:#f3ebe6}
td>a {font-weight:500}
td small {color:var(--muted)}
td form {display:inline-block;margin:4px 4px 0 0}
td .button,td button[type=submit] {font-size:11px;padding:6px 10px;min-height:30px}
table .numeric {font-size:12px}
.badge {border-radius:6px;padding:4px 8px;font-size:9px;letter-spacing:.35px;font-weight:600;background:#eee9e7;color:#796971;border:1px solid #d8cfcd60;white-space:nowrap}
.badge::before {content:"";width:4px;height:4px;border-radius:50%;background:currentColor;margin-right:5px;align-self:center}
.badge-approved,.badge-posted,.badge-active,.badge-paid,.badge-closed {background:#edf3ee;color:#4f7763;border-color:#cadbc980}
.badge-submitted,.badge-hold {background:#f7f0e4;color:#997c43;border-color:#e6d7b7}
.badge-rejected,.badge-cancelled,.badge-inactive {background:#f8ebed;color:#a1485a;border-color:#e8cbd1}
.badge-draft,.badge-planning,.badge-superseded {background:#f0edf1;color:#797182}
.empty {padding:36px 22px;color:#93818a;font-size:12px}
.empty::before {content:"";display:block;width:30px;height:24px;border:1px solid #cdb8ae;border-radius:6px;margin:0 auto 13px;box-shadow:4px -4px 0 -1px #f5efea,4px -4px 0 0 #e1d3ca;background:linear-gradient(145deg,#faf5f0,#f1e6df)}
.empty strong {font-size:14px;font-weight:600;color:#69505b;margin-bottom:5px}
.alert,.feedback,.toast,.success,.error {border-radius:11px;padding:15px 18px;font-size:13px}
.toast {box-shadow:0 5px 18px #35292c08;border-left-width:3px}
.success {background:#f1f6f0;border-color:#d0dfca;color:#4b7156}
.error,.feedback {background:#fcf0f0;border-color:#e9cbd0;color:#983548}
.toast button {padding:2px 7px}
.toast-exit {opacity:0;transform:translateY(-6px);transition:opacity var(--motion),transform var(--motion)}
.detail-list {font-size:13px;gap:12px}
.detail-list dt {font-size:12px}
.history {margin:0}
.history li {position:relative;padding:13px 0 13px 20px;border-color:#ede5df;font-size:12px}
.history li::before {content:"";position:absolute;left:0;top:21px;width:6px;height:6px;border-radius:50%;background:#ad7981;box-shadow:0 0 0 4px #ad798112}
.history small {margin-top:3px;font-size:10px;color:#93808a}
.progress-track {background:#ebe2de;height:5px;margin:7px 0;min-width:70px}
.progress-track span {background:linear-gradient(90deg,#782b3e,#bb7a71);transform-origin:left;animation:progress-enter 280ms var(--ease)}
.module-grid {gap:10px}
.module-link {padding:13px 15px;border-color:#e7ddd5;font-size:12px;background:linear-gradient(130deg,#fffefd,#faf6f2);transition:transform var(--motion),box-shadow var(--motion)}
.module-link:hover {transform:translateY(-2px);background:#faf0eb;box-shadow:0 5px 12px #54273208}
.module-link span {font-size:11px;background:#ede4df;min-width:25px;text-align:center;padding:1px 6px;border-radius:5px}
.module-directory>summary {cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.module-directory>summary::after {content:"+";font-size:22px;font-weight:300;color:#986d70}
.module-directory[open]>summary::after {content:"−"}
.module-directory>summary h2 {margin:0}
.module-directory .module-grid {margin-top:20px;animation:executive-enter var(--motion) var(--ease)}
dialog {border-color:#e2d1c7;border-radius:20px;padding:30px;background:#fffdfa;box-shadow:0 30px 100px #20131b50;max-width:460px;color:var(--ink)}
dialog[open] {animation:modal-enter var(--motion) var(--ease)}
dialog::backdrop {background:#201b2666;backdrop-filter:blur(4px);animation:executive-enter 160ms ease-out}
dialog .modal-mark {display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:linear-gradient(140deg,#f2e4db,#f4e7e8);color:#8a3a4e;margin-bottom:18px}
dialog h2 {font-size:22px;margin-bottom:9px}
dialog p {font-size:13px;color:#847079}
dialog .actions {justify-content:flex-end;margin-top:24px}
.skeleton-panel {position:fixed;z-index:19;inset:82px 0 0 248px;background:#f5f3f0f5;padding:34px;pointer-events:none;opacity:0;visibility:hidden;transition:opacity 160ms}
.command-palette{width:min(620px,calc(100vw - 32px));padding:20px;border:1px solid var(--line);border-radius:16px}.command-palette form{margin:0}.command-results{display:grid;gap:6px;margin-top:12px;max-height:52vh;overflow:auto}.command-result{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:inherit}.command-result:hover,.command-result:focus{background:#fff5f3;text-decoration:none}.command-result small{display:block;color:var(--muted)}
body.is-navigating .skeleton-panel {opacity:1;visibility:visible}
.skeleton-bar,.skeleton-card {border-radius:12px;background:linear-gradient(100deg,#e7e0da 20%,#f5efea 45%,#e7e0da 70%);background-size:220% 100%;animation:skeleton-sheen 1.3s ease-in-out infinite}
.skeleton-bar {height:16px;width:180px;margin:16px 0}
.skeleton-bar.wide {width:45%;height:34px;margin-bottom:35px}
.skeleton-cards {display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.skeleton-card {height:145px}
.guest {background:radial-gradient(ellipse at 20% 10%,#732c3f13,transparent 50%),var(--bg);min-height:100vh}
.guest .app-header {background:transparent;border:0}
.guest .brand {color:var(--pbl-maroon)}
.login-card {max-width:440px;margin:10px auto 40px;padding:36px;border-radius:22px;background:#fffefd;border:1px solid #e5d9d1;box-shadow:0 20px 70px #59263712;border-top:3px solid #833349}
.login-card .branding {text-align:center;margin-bottom:24px}
.login-card .logo {max-width:170px;max-height:90px;object-fit:contain;margin:0 auto 20px}
.login-card h1 {font-size:23px;letter-spacing:-.5px}
.login-card .system-name,.login-card .footer-text {font-size:11px;color:#93808a}
.login-card .footer-text {text-align:center;margin-top:25px}
.login-card .login-btn {width:100%;margin-top:24px}
@keyframes executive-enter {from {opacity:0;transform:translateY(5px)} to {opacity:1;transform:none}}
@keyframes nav-enter {from {opacity:0;transform:translateY(-3px)} to {opacity:1;transform:none}}
@keyframes modal-enter {from {opacity:0;transform:scale(.97) translateY(8px)} to {opacity:1;transform:none}}
@keyframes progress-enter {from {transform:scaleX(0)} to {transform:scaleX(1)}}
@keyframes spin {to {transform:rotate(360deg)}}
@keyframes skeleton-sheen {to {background-position:-220% 0}}
@media(min-width:1101px) {body.sidebar-hidden .app-sidebar {transform:translateX(-100%)}body.sidebar-hidden .app-body {margin-left:0}body.sidebar-hidden .skeleton-panel {left:0}.app-sidebar {transition:transform var(--motion) var(--ease)}}
@media(max-width:1100px) {.app-body {margin-left:0}.app-sidebar {width:248px}.skeleton-panel {left:0}.grid-two {grid-template-columns:1fr}.executive-hero {padding:28px}.app-header {padding-inline:24px}.page {padding:25px}}
@media(max-width:700px) {.hero-actions {align-items:flex-start}.executive-hero {flex-direction:column;align-items:flex-start;gap:20px;padding:25px}.executive-hero h1 {font-size:28px}.hero-actions {flex-direction:row;align-items:center;flex-wrap:wrap}.hero-date {display:none}.dashboard-metrics {grid-template-columns:repeat(2,minmax(0,1fr))}.metric {padding:17px;min-height:140px}.metric .value {font-size:24px;overflow-wrap:anywhere}.metric>.pbl-icon {display:none}.metric .label {margin-right:0}.quick-actions {padding:14px}.quick-actions>.eyebrow {flex-basis:100%}.header-user>span {display:none}.header-user {gap:4px}.breadcrumb {font-size:10px}.app-header {padding:12px 16px;height:76px}.page {padding:18px 15px}.card,.container {padding:19px}.app-footer {padding:17px;flex-wrap:wrap}.profile-avatar {display:none}.section-heading {align-items:flex-start}.skeleton-panel {top:76px;padding:20px}.skeleton-cards {grid-template-columns:1fr 1fr}.login-card {padding:25px}.detail-list {grid-template-columns:1fr 1.5fr}h1 {font-size:26px}}
@media(prefers-reduced-motion:reduce) {*,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print {.executive-hero {background:white;color:#222;box-shadow:none;border:1px solid #ddd}.executive-hero h1,.executive-hero p,.executive-hero .eyebrow {color:#222}.hero-actions,.quick-actions,.skeleton-panel {display:none!important}.app-body {margin:0!important}.card {box-shadow:none}.module-directory:not([open]) {display:none}}

.container>.header,.container>.top{justify-content:space-between;align-items:center;margin-bottom:20px}.container>.header p,.container>.top p{color:var(--muted);font-size:13px}.container>p:first-of-type{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}.container>.note{padding:13px 16px;background:#f6f0eb;border-left:2px solid #b99b88;border-radius:0 8px 8px 0;font-size:12px}.table-scroll:has(>.filters){border:0;overflow:visible}.delete-btn{background:#9d3040!important;border-color:#9d3040!important}.action-wrap>a.edit{padding:5px 9px;border:1px solid var(--line);border-radius:7px;background:#fffefd;font-size:11px}
.brand-logo{width:43px;height:43px;object-fit:contain;border-radius:50%;background:#fff;flex-shrink:0}.brand small{max-width:153px;line-height:1.5;font-size:8px}
.official-cover{margin:0 0 24px;border-radius:18px;overflow:hidden;border:1px solid #dfd1c8;box-shadow:0 12px 28px #5123320d;background:#f1eae5}.official-cover img{width:100%;display:block;height:auto}
.branded-hero{background-image:linear-gradient(90deg,#30202bf5 0%,#632434e8 48%,#63243488),var(--company-cover);background-size:cover;background-position:center,right center;min-height:225px}
.login-layout{max-width:1360px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr);gap:44px;align-items:center;margin:10px auto 35px}.login-layout .login-card{margin:0;width:100%;max-width:none}.login-cover{padding:10px}.login-cover h1{font-size:36px;max-width:550px;line-height:1.2;margin:15px 0 25px;color:#602738}.login-cover p{font-size:12px;color:#806d74;line-height:1.8}.login-cover .official-cover{border-radius:14px}.print-company{display:none}
.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.field-entry{border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#fffcf8}.field-entry img{width:100%;height:190px;object-fit:cover;display:block}.field-entry-body{padding:18px}.field-entry h2{font-size:17px;margin-top:9px}.progress-photo{max-width:100%;max-height:650px;border-radius:12px;object-fit:contain}.badge-completed{color:#4f7763;background:#edf3ee}.badge-blocked{color:#a1485a;background:#f8ebed}
@media(max-width:950px){.login-layout{grid-template-columns:1fr;max-width:620px;gap:20px}.login-cover h1{font-size:27px}.login-cover p{display:none}.login-cover .official-cover{margin-bottom:0}.login-layout .login-card{padding:26px}.branded-hero{background-position:center,right center}}
@media print{.print-company{display:flex;gap:20px;align-items:center;margin-bottom:25px;border-bottom:2px solid #76283a;padding-bottom:18px}.print-company img{width:65px;height:65px;object-fit:contain}.print-company p{font-size:11px;margin:5px 0}.print-company small{font-size:10px}}

[hidden]{display:none!important}
.gantt-scroll{overflow:auto}.gantt-row{display:grid;grid-template-columns:200px minmax(360px,1fr) 100px;align-items:center;gap:15px;min-width:710px;padding:12px 0;border-bottom:1px solid var(--line)}.gantt-row small{display:block;color:var(--muted)}.gantt-track{height:22px;background:#f1e9e3;border-radius:6px;overflow:hidden;position:relative}.gantt-bar{display:block;height:100%;background:#c9a8ac;border-radius:6px;overflow:hidden;position:relative;z-index:1}.gantt-bar>span{display:block;height:100%;background:var(--pbl-maroon)}.gantt-actual{position:absolute;top:4px;height:14px;background:#b47b35;border-radius:4px;opacity:.9;z-index:2;box-shadow:0 0 0 1px #fff8}
.boq-group{font-weight:700;background:#f0e5df}.boq-subgroup{font-weight:600;background:#faf6f1}.boq-specification{color:var(--muted);font-size:12px}@media print{.quotation-table thead{display:table-header-group}.quotation-table tr{break-inside:avoid}.quotation-table{font-size:10px}}
.project-board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:16px;overflow:auto;padding-bottom:12px}.board-column{background:#f4eee8;border-radius:12px;padding:16px}.board-column .field-entry{margin-bottom:12px}.agenda-day{border-left:3px solid var(--pbl-maroon);padding:4px 18px;margin-block:20px}
.account-photo{width:140px;height:140px;object-fit:cover;border-radius:18px;border:1px solid var(--line)}img.profile-avatar{object-fit:cover}
.login-layout .login-card{background:linear-gradient(145deg,#f3ece4,#eae0d7);border-color:#d6bdba}
.login-layout .login-card .logo{width:156px;height:156px;max-width:100%;max-height:none;margin-bottom:22px}
.login-card input[type=email],.login-card input[type=password]{background:#eee5dc;border:1px solid #b58b91;color:#402c32}
.login-card input:focus{border-color:#76283a;box-shadow:0 0 0 3px #76283a20;background:#f5eee6}
.branded-hero{background:linear-gradient(112deg,#30202b,#632434 54%,#922d37)}.branded-hero::before{inset:0 0 0 42%;width:auto;height:auto;border:0;border-radius:0;box-shadow:none;background-image:linear-gradient(90deg,#632434,#63243466),var(--company-cover);background-size:cover,auto 240%;background-position:center,right center;opacity:.72}.branded-hero>div{position:relative;z-index:1}@media(max-width:700px){.branded-hero::before{left:10%;opacity:.4}}

.approval-person{display:flex;align-items:center;gap:9px;min-width:150px}.approval-person .profile-avatar{flex:0 0 30px;width:30px;height:30px;font-size:11px}.approval-person img.profile-avatar{object-fit:cover}
