/* Final layout refinements for the project-first dashboard. */
.login-side { justify-content: center !important; }
.login-copy { margin: auto 0 !important; }
.login-copy h1 { max-width: 500px !important; }
.login-logo { display: flex; justify-content: center; margin: 0 auto 1.35rem; }
.login-logo .brand { justify-content: center; color: var(--brown); font-size: 0; }
.login-logo .brand img { width: 245px !important; height: 172px !important; object-fit: contain; }
.login-side { background: linear-gradient(90deg, rgba(63, 39, 25, .88), rgba(75, 47, 30, .70)), url('assets/projects/harbor-view-residence.png') center / cover no-repeat !important; }

/* Login redesign based on the approved visual reference. */
.login-redesign { grid-template-columns: 53% 47% !important; width: 100%; height: 100vh; height: 100dvh; min-height: 0 !important; overflow: hidden; background: #33261f; font-family: "Poppins",sans-serif !important; }
.login-redesign .login-side { position: relative; min-height: 0; height: 100vh; height: 100dvh; justify-content: center !important; padding: clamp(2.25rem,5vw,6rem) clamp(3rem,6.2vw,7.5rem) !important; background: linear-gradient(90deg,rgba(35,27,22,.76),rgba(58,42,32,.67)),url('assets/projects/harbor-view-residence.png') center/cover no-repeat !important; }
.login-redesign .login-side:after { display: none; }
.login-side-rings { position: absolute; z-index: 0; left: 43%; top: 11%; width: 62%; aspect-ratio: 1; border: 1px solid rgba(188,129,24,.58); border-radius: 50%; }
.login-side-rings:before,.login-side-rings:after { content: ""; position: absolute; border: 1px solid rgba(188,129,24,.45); border-radius: 50%; }
.login-side-rings:before { width: 64%; height: 64%; left: 25%; top: 25%; }.login-side-rings:after { width: 105%; height: 105%; left: -42%; top: 58%; }
.login-redesign .login-copy { position: relative; z-index: 1; max-width: 610px; margin: 0 !important; }
.login-redesign .login-copy h1 { max-width: 590px !important; margin: 0 0 clamp(.75rem,1.7vh,1.2rem); color: #fff; font-family: "Poppins",sans-serif !important; font-size: clamp(2.65rem,4.05vw,5rem) !important; font-weight: 700 !important; line-height: 1.08; letter-spacing: -.045em; }
.login-redesign .login-copy p { max-width: 530px; margin: 0; color: #f1e5d6; font-family: "Poppins",sans-serif; font-size: clamp(.92rem,1.1vw,1.22rem); font-weight: 400; line-height: 1.55; }
.login-redesign .login-panel { min-height: 0; height: 100vh; height: 100dvh; align-items: center; overflow: hidden; padding: clamp(1rem,2.7vh,2.6rem) clamp(2.5rem,7vw,8rem); border-radius: 18px 0 0 18px; background: #fff; box-shadow: -14px 0 40px rgba(25,17,12,.13); }
.login-redesign .login-card { display: flex; flex-direction: column; width: min(560px,100%); height: 100%; margin: 0 auto; }
.login-redesign .login-logo { position: relative; z-index: 100; display: flex; justify-content: center; align-items: center; width: 100%; height: clamp(76px,10vh,92px); margin: clamp(2.55rem,5.25vh,3.4rem) auto clamp(.7rem,1.6vh,1.1rem); overflow: visible; isolation: isolate; text-align: center; }
.login-redesign .login-logo .brand { position: relative; z-index: 101; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; overflow: visible; }
.login-redesign .login-logo .brand img { position: absolute; z-index: 102; display: block; left: 50%; top: 50%; width: clamp(195px,16vw,218px) !important; height: clamp(195px,16vw,218px) !important; object-fit: contain; object-position: center; transform: translate(-50%,-50%); }
.login-heading { margin-top: clamp(2.35rem,5.7vh,3rem); margin-bottom: clamp(.6rem,1.35vh,1rem); }.login-redesign .login-heading .eyebrow { margin-bottom: clamp(.3rem,.75vh,.55rem); color: #af7416; font-family: "Poppins",sans-serif; font-size: clamp(.67rem,1.25vh,.76rem); font-weight: 600; letter-spacing: .2em; }
.login-redesign .login-heading h2 { max-width: 470px; margin: 0; color: #31231c; font-family: "Poppins",sans-serif !important; font-size: clamp(1.85rem,2.35vw,2.8rem) !important; font-weight: 700 !important; line-height: 1.1; letter-spacing: -.04em; }
.login-redesign #login { margin-top: clamp(1.25rem,3vh,2rem); }
.login-redesign .field { gap: clamp(.22rem,.55vh,.4rem); margin-top: clamp(.55rem,1.05vh,.85rem); }.login-redesign .field:first-child { margin-top: 0; }.login-redesign .field label { color: #31231c; font-family: "Poppins",sans-serif; font-size: clamp(.73rem,1.35vh,.84rem); font-weight: 600; }
.login-input-wrap { position: relative; display: flex; align-items: center; min-height: clamp(50px,6.8vh,58px); border: 1px solid #cdbfb2; border-radius: 10px; background: #fff !important; transition: .18s ease; }
.login-input-wrap:focus-within { border-color: #b8862f; box-shadow: 0 0 0 3px rgba(184,134,47,.12); }
.login-ui-icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.login-redesign .login-input-wrap > .login-ui-icon { flex: 0 0 auto; margin-left: 2.3rem !important; color: #8b735e; }
.login-redesign .login-input-wrap input { min-width: 0; height: clamp(48px,6.6vh,56px); margin: 0; border: 0 !important; padding: 0 1rem !important; background: #fff !important; box-shadow: none !important; color: #2c201a; font-family: "Poppins",sans-serif; font-size: .88rem; font-weight: 600; }
.login-redesign .login-input-wrap input:-webkit-autofill,.login-redesign .login-input-wrap input:-webkit-autofill:hover,.login-redesign .login-input-wrap input:-webkit-autofill:focus { -webkit-text-fill-color: #2c201a !important; -webkit-box-shadow: 0 0 0 1000px #fff inset !important; box-shadow: 0 0 0 1000px #fff inset !important; caret-color: #2c201a; transition: background-color 9999s ease-out 0s; }
.login-redesign .password-wrap input { padding-right: 3.6rem !important; }.login-redesign .eye { right: .9rem; display: inline-grid; place-items: center; width: 38px; height: 38px; padding: 0; color: #826b58; }.login-redesign .eye .login-ui-icon { width: 20px; height: 20px; }
.login-submit { display: flex; align-items: center; justify-content: center; gap: 1.7rem; width: 86% !important; min-height: clamp(52px,6.9vh,58px); margin: clamp(.85rem,1.7vh,1.3rem) auto 0 !important; border-radius: 10px !important; font-family: "Poppins",sans-serif; font-size: .94rem; font-weight: 600; }.login-submit b { font-size: 1.3rem; font-weight: 400; }
.secure-access { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.15rem; margin-top: auto; padding-top: clamp(2rem,5vh,3.6rem); color: #806956; }.secure-access span { height: 1px; background: #d9cec3; }.secure-access .login-ui-icon { width: 18px; height: 18px; }
.secure-copy { margin: clamp(.45rem,1vh,.85rem) 0 0; color: #65554b; font-family: "Poppins",sans-serif; font-size: clamp(.75rem,1.45vh,.86rem); font-weight: 400; text-align: center; }
.login-support { display: flex; align-items: center; justify-content: center; gap: .6rem; margin-top: clamp(.65rem,1.5vh,1.25rem); color: #372a23; font-family: "Poppins",sans-serif; font-size: clamp(.75rem,1.45vh,.86rem); font-weight: 400; }.login-support .login-ui-icon { width: 18px; height: 18px; color: #765c43; }.login-support a { color: #a96f10; font-weight: 500; text-decoration: none; }.login-support a:hover { text-decoration: underline; }
@media(max-width:950px){.login-redesign{grid-template-columns:1fr !important;height:auto;min-height:100vh !important;overflow:auto}.login-redesign .login-side{min-height:430px;height:auto;padding:4rem 2rem !important}.login-redesign .login-copy{margin:auto !important}.login-redesign .login-panel{min-height:auto;height:auto;overflow:visible;border-radius:18px 18px 0 0;padding:3rem 2rem}.login-redesign .login-logo{margin-bottom:1.5rem}}
@media(max-width:560px){.login-redesign .login-side{min-height:360px}.login-redesign .login-copy h1{font-size:2.5rem !important}.login-redesign .login-panel{padding:2.3rem 1.25rem}.login-redesign .login-heading h2{font-size:1.9rem !important}.login-submit{width:92% !important}.login-support{flex-wrap:wrap}}
.app-header { min-height: 116px !important; }
.app-header .brand { min-width: 310px !important; }
.app-header .brand img { width: 266px !important; height: 100px !important; }
.projects-section { margin-top: 0 !important; }
.objectives-section { margin-top: 3.5rem !important; }
.objectives-section .task-list { max-width: 1000px; }
.task-list .task { padding: 1.05rem 1.2rem; }
.task-list .task p { margin-top: .35rem; }
.project-list { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 1.7rem !important; }
@media (max-width: 1050px) { .app-header .brand { min-width: 220px !important; } .app-header .brand img { width: 210px !important; } .project-list { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 760px) { .app-header .brand { min-width: 0 !important; } .app-header .brand img { width: 190px !important; height: 80px !important; } .project-list { grid-template-columns: 1fr !important; } }

.project-card-clickable { grid-template-columns: 42% 58% !important; cursor: pointer; border-left: 0 !important; transition: transform .18s ease, box-shadow .18s ease; }
.project-card-clickable:hover, .project-card-clickable:focus-visible { transform: translateY(-4px); box-shadow: 0 16px 30px rgba(37, 25, 16, .14) !important; outline: 2px solid var(--gold); outline-offset: 2px; }
.project-cover { display: block; width: 100%; height: 100%; min-height: 250px; object-fit: cover; }
.project-card-clickable .project-main { display: flex; min-height: 250px; flex-direction: column; justify-content: center; }
.gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.gallery img { width: 100%; height: 180px; border: 1px solid var(--line); border-radius: 12px; object-fit: cover; }
.gallery-note { margin: .75rem 0 0; font-size: .82rem; }
.project-orders { grid-template-columns: 1fr !important; }
@media (max-width: 760px) { .project-card-clickable { grid-template-columns: 1fr !important; } .project-cover { min-height: 180px; } .gallery { grid-template-columns: 1fr; } }

.app-header { min-height: 84px !important; padding-top: .35rem !important; padding-bottom: .35rem !important; }
.app-header .brand { min-width: 335px !important; }
.app-header .brand img { width: 300px !important; height: 76px !important; }
.project-card-clickable { display: block !important; }
.project-cover { height: 180px !important; min-height: 0 !important; object-position: center; }
.project-card-clickable .project-main { min-height: 0 !important; padding: 1.35rem !important; }
.project-banner { width: 100%; height: 210px; margin: -1.4rem 0 2.3rem; border-radius: 0 0 14px 14px; object-fit: cover; object-position: center 54%; }
.back-link { border: 0; background: transparent; padding: 0; color: var(--brown); font-size: .8rem; font-weight: 800; }
.hero:has(.back-link) { flex-direction: column; align-items: flex-start !important; gap: .7rem; }
.project-banner + .back-link { display: block; margin: -1.55rem 0 1.5rem; }
.task-title { display:flex; align-items:center; gap:.55rem; }
.edit-objective { border:0; background:transparent; color:var(--brown-2); font-size:1rem; padding:.15rem; }
.tool-icon { width:48px !important; height:48px !important; background:#f2e5d1 !important; color:var(--brown) !important; }
.tool-icon svg { width:25px; height:25px; stroke:currentColor; fill:none; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.order-actions { display:flex; align-items:center; gap:.45rem; }
.order-icon { display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--line); border-radius:7px; background:#fff; color:var(--brown); font-size:1rem; }
.order-icon:hover { border-color:var(--gold); background:#fbf5ea; }
@media (max-width:760px){.app-header .brand{min-width:0 !important}.app-header .brand img{width:220px !important;height:62px !important}.project-banner{height:155px;margin-top:-.7rem}}

.tool h3 { font-size: 1.45rem; font-weight: 800; }
.tool .secondary:hover { background: var(--brown); border-color: var(--brown); color: #fff; }
.project-hero { margin-top: 0 !important; }
.order-actions { flex-wrap: wrap; justify-content: flex-end; }
.delete-order { color: var(--red); }
.delete-order:hover { background: #fff0ee; border-color: var(--red); }
.po-form-modal { width: min(980px, 100%); }
.po-form-intro { margin-bottom: 1rem; padding: .8rem 1rem; border-radius: 8px; background: #fbf5ea; color: var(--brown); font-size: .86rem; }
.po-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.po-form-section { margin: 1.2rem 0 0; padding: .9rem; border: 1px solid var(--line); border-radius: 10px; }
.po-form-section legend { padding: 0 .45rem; color: var(--brown); font-size: .78rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.po-items-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.po-item-form { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding: .7rem; border: 1px solid var(--line); border-radius: 8px; background: #fffdf9; }
.po-item-form strong { grid-column: 1 / -1; color: var(--brown); }.po-item-form .field { margin-top: 0; }.po-item-form .field:nth-of-type(2) { grid-column: 1 / -1; }
.money-input,.warehouse-input { display: flex; gap: .35rem; }.money-input input { min-width: 0; flex: 1; }.money-input select { width: 94px; border: 1px solid #d5cabe; border-radius: 8px; background: #fffefa; padding: .4rem; }.warehouse-input select { min-width: 0; flex: 1; border: 1px solid #d5cabe; border-radius: 8px; background: #fffefa; padding: .65rem; }.warehouse-input button { white-space: nowrap; padding: .55rem .7rem; }.add-item { margin-top: .8rem; }.item-remove { grid-column: 1 / -1; justify-self: start; padding: .5rem .7rem; }
.po-preview-modal { width: min(1040px, 100%); }
.po-preview { color: #5f4638; background: #fff; padding: 1.4rem; font-family: Arial, sans-serif; }
.po-preview-head { display: flex; justify-content: space-between; align-items: flex-start; border-bottom: 2px solid #5f4638; padding-bottom: 1rem; }.hpg-mark { color: #4b2c1c; font-size: 2.3rem; font-weight: 800; line-height: .8; }.po-logo { display: block; width: 190px; height: auto; }.hpg-mark small { display: block; color: #b07c18; font-size: .42rem; letter-spacing: .08em; }.po-preview-head h1 { margin: .15rem 0 0; font-size: 1.65rem; letter-spacing: .04em; }.po-preview-head small { color: #a88f7c; font-size: .62rem; letter-spacing: .18em; }
.user-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .45rem; }
.po-meta,.po-commercial,.po-box-grid,.po-approvals { display: grid; gap: .55rem; margin: 1rem 0; }.po-meta { grid-template-columns: 1fr 1fr 1fr; }.po-meta > div,.po-commercial > div { min-height: 58px; padding: .75rem; background: #f5f1ea; }.po-meta > div:first-child,.po-commercial > div:last-child { background: #624533; color: #fff; }.po-meta b,.po-commercial b,.po-box-grid b,.po-approvals b { display: block; margin-bottom: .45rem; color: #a88f7c; font-size: .58rem; letter-spacing: .15em; }.po-meta > div:first-child b,.po-commercial > div:last-child b { color: #f4dfbc; }.po-meta span,.po-commercial span,.po-box-grid span,.po-box-grid small,.po-approvals span,.po-approvals small { display: block; min-height: 1.2rem; border-bottom: 1px solid #cbbbaa; font-size: .72rem; }.po-box-grid { grid-template-columns: 1fr 1fr; border: 1px solid #d8c9b8; }.po-box-grid > div { min-height: 72px; padding: .75rem; }.po-box-grid > div:nth-child(odd) { border-right: 1px solid #d8c9b8; }.po-box-grid > div:nth-child(-n+2) { border-bottom: 1px solid #d8c9b8; }.po-commercial { grid-template-columns: repeat(3,1fr); }
.po-items-table { width: 100%; border-collapse: collapse; margin-top: 1rem; font-size: .7rem; }.po-items-table th { padding: .55rem; background: #624533; color: #fff; font-size: .58rem; letter-spacing: .1em; text-align: left; }.po-items-table td { height: 35px; padding: .4rem; border-bottom: 1px solid #ddcfbf; }
.po-totals { display: grid; grid-template-columns: 1.4fr .9fr; gap: 1rem; margin: 1rem 0; }.po-totals > div { padding: .8rem; border: 1px solid #d8c9b8; }.po-totals p { margin: .45rem 0; font-size: .7rem; }.po-totals p strong { float: right; }.po-totals h3 { display: flex; justify-content: space-between; margin: .6rem -.8rem -.8rem; padding: .7rem .8rem; background: #624533; color: #fff; font-size: .9rem; }
.po-approvals { grid-template-columns: 1fr 1fr; border: 1px solid #d8c9b8; }.po-approvals > div { min-height: 70px; padding: .75rem; }.po-approvals > div:nth-child(odd) { border-right: 1px solid #d8c9b8; }.po-approvals > div:nth-child(-n+2) { border-bottom: 1px solid #d8c9b8; }.po-preview h4 { margin: 1.1rem 0 .35rem; color: #b17b16; font-size: .75rem; letter-spacing: .18em; }.po-preview h2 { margin-top: 1.2rem; color: #624533; font-size: 1.3rem; }.po-conditions { display: grid; grid-template-columns: 1fr 1fr; gap: .2rem 1.2rem; padding: 0; list-style: none; }.po-conditions li { display: grid; grid-template-columns: 2rem 1fr; min-height: 28px; border-bottom: 1px solid #ddcfbf; font-size: .68rem; }.po-conditions b { color: #b17b16; }.po-preview footer { margin-top: 2rem; padding-top: .7rem; border-top: 1px solid #d8c9b8; color: #aa9687; font-size: .62rem; }
.delete-confirm { color: var(--red); font-weight: 800; line-height: 1.45; }.print-order { background: #fff; }.print-order .po-preview { max-width: 1000px; margin: 0 auto; }
@media(max-width:760px){.po-form-grid,.po-items-form,.po-meta,.po-commercial,.po-totals,.po-approvals,.po-conditions{grid-template-columns:1fr}.po-box-grid{grid-template-columns:1fr}.po-box-grid > div:nth-child(odd){border-right:0}.po-box-grid > div:nth-child(-n+2){border-bottom:0}.po-box-grid > div:not(:last-child){border-bottom:1px solid #d8c9b8}.po-preview{padding:.5rem}.po-preview-head h1{font-size:1.1rem}.po-items-table{font-size:.58rem}.po-items-table th{font-size:.45rem;padding:.35rem}.po-items-table td{padding:.25rem}}
@media print{.print-order .po-preview{max-width:none}.print-order{padding:0}.po-preview-modal .modal-foot{display:none}}

/* Iteration 7 refinements. */
.app-header .brand { min-width: 390px !important; }
.app-header .brand { height: 76px !important; overflow: hidden; align-items: center; }
.app-header .brand img { width: 365px !important; height: 146px !important; object-fit: cover; object-position: center center; }
.po-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.money-display { min-width: 88px; align-self: center; color: var(--brown); font-weight: 800; font-size: .78rem; white-space: nowrap; }
.card-title-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.card-title-row h3 { margin-top: .35rem; }
.team-member { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .55rem 0; border-top: 1px solid var(--line); }.team-member p { margin: 0; font-size: .82rem; }.team-member .danger { padding: .4rem .55rem; font-size: .72rem; }
.gallery-image { cursor: zoom-in; transition: transform .15s ease, box-shadow .15s ease; }.gallery-image:hover { transform: scale(1.02); box-shadow: 0 8px 20px rgba(37,25,16,.18); }
.image-modal { width: min(1100px, 100%); }.image-viewer { display: grid; justify-items: center; gap: .8rem; }.image-viewer img { max-width: 100%; max-height: 68vh; object-fit: contain; border-radius: 10px; }.image-viewer .danger { font-size: .75rem; }
.history-filters { margin-bottom: 1rem; }.history-filters .po-form-grid { margin: 0; }
@media(max-width:760px){.app-header .brand{min-width:0 !important}.app-header .brand img{width:220px !important;height:62px !important}.po-form-grid{grid-template-columns:1fr}.money-input{flex-wrap:wrap}.money-display{width:100%}}

.spec-library { display: grid; grid-template-columns: 1fr; gap: .7rem; }
.spec-card { overflow: hidden; padding: 0; }.spec-card-body { padding: .85rem 1rem; }.spec-card-body h3 { margin: .18rem 0 0; font-size: 1.05rem; }.spec-card-body p { color: var(--muted); font-size: .8rem; }.spec-card-horizontal { border-left: 4px solid var(--gold); }.spec-card-identity .eyebrow { margin-bottom: .15rem; }.spec-card-details { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .75rem; }.spec-card-details span { min-width: 0; color: var(--ink); font-size: .76rem; overflow-wrap: anywhere; }.spec-card-details b { display: block; margin-bottom: .2rem; color: var(--muted); font-size: .62rem; letter-spacing: .06em; text-transform: uppercase; }.spec-card-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.spec-preview { background: #fff; color: #3d3029; padding: 1.2rem; font-family: Arial, sans-serif; }.spec-preview-head { display: flex; justify-content: space-between; align-items: flex-start; border-top: 7px solid #a88b6c; border-bottom: 1px solid #a88b6c; padding: 1rem 0; }.spec-preview-head h1 { margin: .45rem 0 .15rem; color: #624533; font-size: 1.4rem; }.spec-preview-head small { color: #8c7763; }.spec-code { min-width: 155px; padding: .65rem 1rem; border-radius: 8px; background: #c7b89c; text-align: center; font-weight: 800; }.spec-code span { display: block; margin-top: .25rem; font-size: 1.2rem; }.spec-data-table,.spec-item-table { width: 100%; border-collapse: collapse; margin-top: 1rem; font-size: .75rem; }.spec-data-table th,.spec-data-table td,.spec-item-table th,.spec-item-table td { padding: .55rem; border: 1px solid #d5c9ba; text-align: left; }.spec-data-table th { width: 16%; background: #f2eee7; }.spec-preview h4 { margin: 1.2rem 0 .45rem; padding: .55rem .7rem; background: #624533; color: #fff; font-size: .85rem; }.spec-image { max-width: 310px; max-height: 210px; object-fit: contain; border: 1px solid #d5c9ba; }.spec-preview p { line-height: 1.45; font-size: .78rem; }.spec-preview ul { margin: .25rem 0; padding-left: 1.2rem; font-size: .78rem; }.spec-preview footer { margin-top: 1.5rem; padding-top: .6rem; border-top: 1px solid #d5c9ba; color: #987f69; font-size: .65rem; }
.spec-form-modal { width: min(980px, 100%); }.spec-image-field { grid-column: 1 / -1; }.spec-preview-modal { width: min(980px, 100%); }
@media(max-width:960px){.spec-card-horizontal .spec-card-body{grid-template-columns:1fr auto}.spec-card-details{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.spec-library{grid-template-columns:1fr}.spec-card-horizontal .spec-card-body{grid-template-columns:1fr}.spec-card-details{grid-column:auto;grid-row:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.spec-card-actions{justify-content:flex-start}.spec-preview-head{flex-direction:column;gap:1rem}.spec-data-table,.spec-item-table{font-size:.65rem}}

.new-project-modal { width: min(780px, 100%); }
.new-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .2rem 1rem; }
@media(max-width:760px){.new-project-grid{grid-template-columns:1fr}}

/* Compact dashboard branding. */
.app-header .brand { min-width: 225px !important; width: 225px; height: 64px !important; overflow: hidden; }
.app-header .brand img { width: 210px !important; height: 84px !important; object-fit: cover !important; object-position: center center !important; }
@media(max-width:1050px){.app-header .brand{min-width:175px !important;width:175px}.app-header .brand img{width:168px !important;height:74px !important}}
@media(max-width:760px){.app-header .brand{min-width:0 !important;width:165px;height:54px !important}.app-header .brand img{width:158px !important;height:68px !important}}

.project-cover-field { grid-column: 1 / -1; padding-top: .35rem; }
.project-cover-field input { padding: .65rem; }
.project-cover-field small { color: var(--muted); font-size: .72rem; }
.spec-library-actions { justify-content: flex-end; margin-bottom: .8rem; }
.spec-card-horizontal{display:flex;align-items:stretch}
.spec-card-thumb{width:110px;min-height:90px;max-height:130px;flex-shrink:0;background:#f5f0e8;display:flex;align-items:center;justify-content:center;overflow:hidden;align-self:center;border-radius:6px 0 0 6px}
.spec-card-thumb img{width:100%;height:100%;object-fit:cover}
.spec-card-thumb-empty{color:var(--muted)}
.spec-card-thumb-empty .ui-icon{width:32px;height:32px;stroke:var(--muted);opacity:.5}
.spec-card-horizontal .spec-card-body { flex:1;display:grid;grid-template-columns: minmax(180px,.75fr) minmax(0,1.7fr) auto;align-items:center;gap:1rem }
.spec-card-details { grid-template-columns: repeat(3,minmax(0,1fr)); }
.spec-image-upload{display:flex;flex-direction:column;gap:.5rem}
.spec-image-preview{max-width:180px;max-height:120px;object-fit:contain;border:1px solid var(--line);border-radius:8px}
.spec-image-upload small{color:var(--muted);font-size:.7rem}
.spec-image-upload input[type="file"]{font-size:.78rem}

/* User management, adapted from the supplied layout reference. */
.user-management { display: grid; gap: 1.35rem; }
.user-management-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.user-management-head h1 { margin: .8rem 0 .25rem; color: var(--ink); font-size: clamp(2rem,3vw,3rem); letter-spacing: -.04em; }
.user-management-head p { margin: 0; color: var(--muted); }
.user-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.user-metric { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: .9rem; min-height: 104px; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.06); }
.user-metric-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: #f5e6c7; color: #a26f12; font-size: 1.35rem; }
.user-metric-admin .user-metric-icon { background: #f7ecd4; color: #9e6e17; }.user-metric-worker .user-metric-icon { background: #f3e0d5; color: #9b5936; }.user-metric-client .user-metric-icon { background: #e4eee9; color: #42735d; }
.user-metric b,.user-metric small { display: block; }.user-metric b { color: var(--ink); font-size: .78rem; }.user-metric strong { display: block; margin: .08rem 0; color: var(--brown); font-size: 1.7rem; }.user-metric small { color: var(--muted); font-size: .66rem; }
.user-directory-tools { display: flex; align-items: center; gap: 1rem; }
.user-search { display: flex; align-items: center; gap: .65rem; min-width: 300px; flex: 1; padding: 0 .9rem; border: 1px solid var(--line); border-radius: 9px; background: #fff; }
.user-search span { color: var(--muted); font-size: 1.2rem; }.user-search input { width: 100%; border: 0; padding: .8rem 0; background: transparent; outline: 0; }
.user-role-filters { display: flex; gap: .55rem; flex-wrap: wrap; }.user-role-filters button { border: 1px solid var(--line); border-radius: 8px; padding: .72rem 1rem; background: #fff; color: var(--ink); font-size: .76rem; font-weight: 750; }.user-role-filters button:hover,.user-role-filters button.active { border-color: #d9b96e; background: #fbf2df; color: #8b6111; }
.user-table-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.05); }
.user-directory { width: 100%; border-collapse: collapse; }.user-directory th { padding: .8rem 1.2rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .68rem; letter-spacing: .06em; text-align: left; text-transform: uppercase; }.user-directory td { padding: .75rem 1.2rem; border-bottom: 1px solid #eee5dc; vertical-align: middle; }.user-directory tr:last-child td { border-bottom: 0; }
.user-identity { display: flex; align-items: center; gap: .75rem; }.user-avatar { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border: 1px solid #dfcda9; border-radius: 50%; background: #f7edda; color: var(--brown); font-size: .72rem; font-weight: 850; }.user-identity strong,.user-identity small { display: block; }.user-identity strong { font-size: .82rem; }.user-identity small { margin-top: .12rem; color: var(--muted); font-size: .69rem; }
.role-pill { display: inline-flex; align-items: center; border-radius: 6px; padding: .42rem .7rem; font-size: .7rem; font-weight: 800; }.role-admin { background: #fbefd4; color: #98670d; }.role-worker { background: #f6e3d8; color: #985939; }.role-client { background: #e5efea; color: #397058; }
.user-state { display: inline-flex; align-items: center; gap: .55rem; color: var(--muted); font-size: .72rem; }.state-switch { position: relative; width: 31px; height: 17px; border-radius: 12px; background: #c9c9c9; }.state-switch:after { content: ''; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: #fff; transition: .15s; }.state-switch.on { background: #b8892c; }.state-switch.on:after { left: 16px; }
.user-table-actions { display: flex; justify-content: flex-start; gap: .5rem; }.user-table-actions button { min-width: 92px; padding: .52rem .72rem; font-size: .7rem; }.user-empty { padding: 2rem; color: var(--muted); text-align: center; }
.user-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap}.user-actions button{padding:.35rem .6rem;font-size:.68rem;min-width:auto;white-space:nowrap}.user-actions .danger{padding:.35rem .5rem}.user-actions .ui-icon{width:14px;height:14px}
@media(max-width:1100px){.user-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.user-directory-tools{align-items:stretch;flex-direction:column}.user-search{min-width:0}.user-table-wrap{overflow-x:auto}.user-directory{min-width:820px}}
@media(max-width:650px){.user-management-head{align-items:stretch;flex-direction:column}.user-metrics{grid-template-columns:1fr}.user-role-filters{display:grid;grid-template-columns:1fr 1fr}.user-role-filters button{width:100%}}

/* Metric hierarchy and professional iconography. */
.user-metric b { font-size: .9rem; font-weight: 850; }
.user-metric strong { margin: .12rem 0; font-size: 2rem; font-weight: 900; line-height: 1; }
.ui-icon { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.user-metric-icon .ui-icon { width: 25px; height: 25px; }
.user-management-head .primary { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; }.user-management-head .primary .ui-icon { width: 18px; height: 18px; }

/* Balanced header: logo, centered navigation, notifications and profile. */
.app-header { display: grid !important; grid-template-columns: 200px minmax(230px,1fr) auto; align-items: center; }
.top-nav { justify-content: center; }
.notification-bell { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: transparent; color: var(--brown); }
.notification-bell:hover { background: #f6ecde; }.notification-bell .ui-icon { width: 22px; height: 22px; }
.notification-bell > span { position: absolute; top: 0; right: 0; display: grid; place-items: center; min-width: 17px; height: 17px; padding: 0 4px; border: 2px solid #fff; border-radius: 12px; background: #b77d17; color: #fff; font-size: .58rem; font-weight: 900; }
.notification-modal { width: min(580px,100%); }.notification-list { display: grid; gap: .65rem; }.notification-list article { display: grid; grid-template-columns: 40px 1fr; gap: .8rem; padding: .9rem; border: 1px solid var(--line); border-radius: 10px; background: #fffdf9; }.notification-symbol { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: #f5e6c7; color: #98670d; }.notification-list strong,.notification-list p,.notification-list small { display: block; }.notification-list p { margin: .2rem 0; color: var(--ink); }.notification-list small { color: var(--muted); }

/* Supplier management. */
.supplier-metric-active .user-metric-icon { background: #e1f0e8; color: #3c7b5d; }.supplier-metric-categories .user-metric-icon { background: #f4e0d5; color: #a25d36; }.supplier-metric-pending .user-metric-icon { background: #faecd0; color: #a87312; }
.supplier-directory { min-width: 1140px; }.supplier-directory th:nth-child(1){width:22%}.supplier-directory th:nth-child(2){width:11%}.supplier-directory th:nth-child(3){width:12%}.supplier-directory th:nth-child(4){width:17%}.supplier-directory th:nth-child(5){width:13%}.supplier-directory th:nth-child(6){width:8%}.supplier-directory th:nth-child(7){width:17%}
.supplier-directory td.supplier-contact-name { color: var(--ink); font-size: .78rem; font-weight: 700; }
.supplier-directory td.supplier-contact-phone { color: var(--muted); font-size: .74rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.supplier-avatar { display: grid; place-items: center; width: 38px; height: 38px; flex: 0 0 auto; border-radius: 50%; background: linear-gradient(135deg,#5b3e2e,#ba8a35); color: #fff; font-size: .72rem; font-weight: 900; }.supplier-ruc { color: var(--ink); font-size: .76rem; font-weight: 750; }.supplier-category { display: inline-flex; border-radius: 6px; padding: .42rem .7rem; font-size: .68rem; font-weight: 800; }.category-services { background: #e6eff9; color: #4673a6; }.category-materials { background: #f8e4d8; color: #a96136; }.category-logistics { background: #ece7f7; color: #765da5; }.category-equipment { background: #e4f2ed; color: #3f7965; }.supplier-contact strong,.supplier-contact small { display: block; }.supplier-contact strong { font-size: .76rem; }.supplier-contact small { margin-top: .15rem; color: var(--muted); font-size: .68rem; }
@media(max-width:1100px){.app-header{grid-template-columns:175px minmax(190px,1fr) auto}.header-actions{gap:.55rem}.supplier-filters{display:flex}}
@media(max-width:760px){.app-header{display:flex !important;flex-wrap:wrap}.top-nav{justify-content:flex-start}.notification-bell{display:none}.supplier-filters{display:grid}}

/* Searchable tools directory. */
.tool-search-panel { max-width: 720px; margin: -1.4rem 0 1.5rem; }.tool-search-panel .user-search { min-height: 50px; box-shadow: 0 7px 20px rgba(54,36,25,.04); }.tool-search-empty { margin-top: 1rem; }

/* Purchase order history based on the supplied interface reference. */
.order-history-page { gap: 1.25rem; }.order-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }.order-metric { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: .9rem; min-height: 106px; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.06); }.order-metric b,.order-metric small { display: block; }.order-metric b { font-size: .9rem; font-weight: 850; }.order-metric strong { display: block; margin: .12rem 0; color: var(--brown); font-size: 2rem; font-weight: 900; line-height: 1; }.order-metric small { color: var(--muted); font-size: .68rem; }.order-metric-orders .user-metric-icon { background: #faecd0; color: #a87312; }.order-metric-calendar .user-metric-icon { background: #f4e0d5; color: #ad5d33; }.order-metric-building .user-metric-icon { background: #ece5f8; color: #7954aa; }
.order-filter-panel { display: grid; grid-template-columns: minmax(280px,1.5fr) minmax(145px,.7fr) minmax(145px,.7fr) minmax(190px,.9fr) auto; align-items: end; gap: .8rem; }.order-filter-panel .user-search { min-width: 0; height: 46px; }.order-date-field { display: grid; gap: .28rem; }.order-date-field label { color: var(--ink); font-size: .68rem; font-weight: 800; }.order-date-field input,.order-date-field select { width: 100%; height: 46px; border: 1px solid var(--line); border-radius: 9px; padding: 0 .8rem; background: #fff; color: var(--ink); }.clear-order-filters { height: 46px; white-space: nowrap; }
.order-status-filters { display: flex; gap: .55rem; flex-wrap: wrap; }.order-status-filters button { display: inline-flex; align-items: center; gap: .45rem; border: 1px solid var(--line); border-radius: 8px; padding: .65rem 1rem; background: #fff; color: var(--ink); font-size: .72rem; font-weight: 800; }.order-status-filters button.active,.order-status-filters button:hover { border-color: #c99834; background: #b98217; color: #fff; }.order-status-filters i,.order-status i { display: inline-block; width: 7px; height: 7px; border-radius: 50%; }.dot-approved,.status-approved i { background: #42a975; }.dot-pending,.status-pending i { background: #d69a27; }.dot-partial,.status-partial i { background: #4e93d8; }.dot-cancelled,.status-cancelled i { background: #d55f5f; }
.order-directory { min-width: 1120px; }.order-directory th,.order-directory td { padding-left: .7rem; padding-right: .7rem; }.order-directory td { color: var(--ink); font-size: .72rem; }.order-status { display: inline-flex; align-items: center; gap: .45rem; border-radius: 7px; padding: .4rem .65rem; font-size: .67rem; font-weight: 800; }.status-approved { background: #e4f3eb; color: #3f8765; }.status-pending { background: #fbefd6; color: #a37419; }.status-partial { background: #e6f0fa; color: #477daa; }.status-cancelled { background: #fae7e7; color: #a94c4c; }.history-actions { display: flex; align-items: center; gap: .38rem; }.history-actions button { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; min-width: 0; padding: .48rem .5rem; font-size: .64rem; white-space: nowrap; }.history-actions .ui-icon { width: 14px; height: 14px; }.history-actions .danger { width: 32px; padding: .48rem; }
@media(max-width:1150px){.order-filter-panel{grid-template-columns:1fr 1fr 1fr}.order-filter-panel .user-search{grid-column:1 / -1}.clear-order-filters{align-self:end}.order-metrics{grid-template-columns:repeat(3,minmax(180px,1fr));overflow-x:auto}}
@media(max-width:760px){.tool-search-panel{margin-top:-.7rem}.order-metrics{grid-template-columns:1fr;overflow:visible}.order-filter-panel{grid-template-columns:1fr}.order-filter-panel .user-search{grid-column:auto}.order-status-filters{display:grid;grid-template-columns:1fr 1fr}.order-status-filters button{justify-content:center}}

.workspace,.content{overflow-x:hidden!important;box-sizing:border-box!important}
/* Redesigned project detail with integrated banner gallery. */
.project-detail-redesign { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; width: 100%; min-width: 0; box-sizing: border-box; }.project-back { justify-self: start; }.project-detail-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }.project-detail-head h1 { margin: .25rem 0 .15rem; color: var(--ink); font-size: clamp(1.5rem,2.5vw,2.2rem); font-weight: 900; letter-spacing: -.045em; line-height: 1.1; }.project-detail-head > div:first-child > p:last-child { margin: .5rem 0 0; color: var(--muted); font-weight: 750; }.project-head-badges { display: flex; align-items: center; gap: .7rem; padding-bottom: .2rem; }.project-active,.project-code { display: inline-flex; align-items: center; min-height: 38px; border: 1px solid #bb9a54; border-radius: 8px; padding: .55rem .95rem; background: #fff; color: var(--ink); font-size: .75rem; font-weight: 800; }.project-active i { width: 10px; height: 10px; margin-right: .55rem; border-radius: 50%; background: #78a928; }
.project-banner-carousel { position: relative; overflow: hidden; min-height: 220px; max-width: 100%; border: 1px solid #ccbfae; border-radius: 15px; background: #32261f; box-shadow: 0 10px 28px rgba(49,31,21,.1); }.project-banner-carousel > img { display: block; width: 100%; max-width: 100%; height: clamp(220px,25vw,340px); object-fit: cover; object-position: center; }.banner-arrow { position: absolute; top: 50%; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; background: rgba(48,31,22,.58); color: #fff; transform: translateY(-50%); backdrop-filter: blur(6px); }.banner-arrow:hover { background: rgba(109,72,42,.85); }.banner-arrow .ui-icon { width: 23px; height: 23px; }.banner-prev { left: 1rem; }.banner-next { right: 1rem; }.banner-counter { position: absolute; left: 50%; bottom: .8rem; border-radius: 15px; padding: .35rem .65rem; background: rgba(42,28,20,.65); color: #fff; font-size: .65rem; font-weight: 800; transform: translateX(-50%); backdrop-filter: blur(5px); }.banner-edit { position: absolute; right: .8rem; bottom: .8rem; display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #d29b36; border-radius: 7px; background: rgba(255,255,255,.94); color: #8a5c0e; box-shadow: 0 5px 12px rgba(35,23,16,.18); }.banner-edit .ui-icon { width: 15px; height: 15px; }
.project-detail-cards { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1rem; align-items: stretch; width: 100%; min-width: 0; }.project-detail-card { min-width: 0; }.project-detail-card { overflow: hidden; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.055); }.project-card-head { display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: .8rem 1rem; border-bottom: 1px solid #eee4da; }.project-card-head h2 { margin: 0; color: var(--ink); font-size: 1rem; font-weight: 900; }.project-card-head button { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d7a247; border-radius: 7px; background: #fff; color: #9a6812; }.project-card-head button .ui-icon { width: 16px; height: 16px; }.project-detail-card dl { margin: 0; padding: 0 .95rem; }.project-info-row { display: grid; grid-template-columns: 38px minmax(88px,.8fr) minmax(0,1.35fr); align-items: center; gap: .55rem; min-height: 61px; border-bottom: 1px solid #eee5dc; }.project-info-row:last-child { border-bottom: 0; }.project-info-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 8px; background: #f4eadc; color: var(--brown); }.project-info-icon .ui-icon { width: 18px; height: 18px; }.project-info-row dt { color: var(--muted); font-size: .68rem; }.project-info-row dd { margin: 0; color: var(--ink); font-size: .72rem; font-weight: 800; overflow-wrap: anywhere; }.project-areas-card .project-info-row { grid-template-columns: 42px 1fr auto; min-height: 82px; }.project-areas-card .project-info-icon { width: 40px; height: 40px; }.project-areas-card dd { color: #b17616; font-size: 1.4rem; font-weight: 900; }
.project-team-list { padding: 0 .95rem; }.project-team-member { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 22px; align-items: center; gap: .65rem; min-height: 76px; border-bottom: 1px solid #eee5dc; }.project-team-member:last-child { border-bottom: 0; }.project-team-avatar { display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid #d8c69f; border-radius: 50%; background: #f7edda; color: var(--brown); font-size: .7rem; font-weight: 900; }.project-team-member strong,.project-team-member small { display: block; }.project-team-member strong { font-size: .75rem; }.project-team-member small { margin-top: .15rem; color: var(--muted); font-size: .65rem; }.project-team-phone { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; color: var(--ink); font-size: .66rem; }.project-team-phone .ui-icon { width: 16px; height: 16px; color: #ad7418; }.project-member-remove { border: 0; background: transparent; color: var(--red); font-size: 1rem; }.project-card-empty { padding: 2rem 1rem; color: var(--muted); font-size: .75rem; text-align: center; }.project-purchase-section { margin-top: 1.2rem !important; }.project-purchase-section .section-head h2 { margin-top: .2rem; }
.banner-manager-modal { width: min(920px,100%); }.banner-manager-list { display: grid; gap: .65rem; }.banner-manager-item { display: grid; grid-template-columns: 105px minmax(0,1fr) auto; align-items: center; gap: .8rem; padding: .65rem; border: 1px solid var(--line); border-radius: 10px; background: #fffdf9; }.banner-manager-item img { width: 105px; height: 68px; border-radius: 7px; object-fit: cover; }.banner-manager-item strong,.banner-manager-item small { display: block; }.banner-manager-item strong { font-size: .78rem; }.banner-manager-item small { margin-top: .2rem; color: var(--muted); font-size: .66rem; }.banner-manager-actions { display: flex; gap: .4rem; }.banner-manager-actions button { display: inline-flex; align-items: center; gap: .35rem; padding: .5rem .65rem; font-size: .66rem; }.banner-manager-actions .ui-icon { width: 14px; height: 14px; }.banner-upload-field { margin-top: 1rem; padding: .85rem; border: 1px dashed #c9b58f; border-radius: 10px; background: #fbf6ed; }.banner-upload-field small { color: var(--muted); font-size: .68rem; }
@media(max-width:1100px){.project-detail-cards{grid-template-columns:1fr 1fr}.project-team-card{grid-column:1 / -1}.project-team-list{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}}
@media(max-width:760px){.project-detail-head{align-items:flex-start;flex-direction:column}.project-head-badges{padding:0}.project-banner-carousel{min-height:220px}.project-banner-carousel>img{height:250px}.project-detail-cards{grid-template-columns:1fr}.project-team-card{grid-column:auto}.project-team-list{display:block}.project-team-member{grid-template-columns:42px minmax(0,1fr) 22px}.project-team-phone{grid-column:2}.banner-manager-item{grid-template-columns:80px 1fr}.banner-manager-item img{width:80px}.banner-manager-actions{grid-column:1 / -1;justify-content:flex-end}}

/* Team objectives workspace. */
.team-objectives-page { display: grid; gap: 1rem; }
.team-objectives-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; padding: .2rem 0 .45rem; }
.team-objectives-head h1 { margin: .22rem 0 .3rem; color: var(--ink); font-size: clamp(2.25rem,4vw,3.6rem); font-weight: 900; letter-spacing: -.045em; line-height: 1; }
.team-objectives-head p:last-child { margin: 0; color: var(--muted); font-size: .82rem; }
.team-objectives-head .primary { display: inline-flex; align-items: center; gap: .5rem; white-space: nowrap; }
.team-objectives-head .ui-icon { width: 18px; height: 18px; }
.team-filter-panel { display: grid; gap: .85rem; padding: .95rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.055); }
.team-filter-main { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.team-filter-main .user-search { min-width: 0; height: 45px; flex: 1 1 260px; }
.team-filter-group,.team-filter-secondary { display: flex; align-items: center; gap: .65rem; }
.team-filter-group > b,.team-filter-secondary > b { color: var(--ink); font-size: .7rem; white-space: nowrap; }
.team-filter-group select { height: 42px; min-width: 145px; border: 1px solid var(--line); border-radius: 8px; padding: 0 .75rem; background: #fff; color: var(--ink); font-size: .72rem; font-weight: 750; }
.team-segment,.team-status-filters { display: flex; align-items: center; gap: .4rem; }
.team-segment button,.team-status-filters button { min-height: 40px; border: 1px solid var(--line); border-radius: 8px; padding: .58rem .8rem; background: #fff; color: var(--ink); font-size: .69rem; font-weight: 800; white-space: nowrap; }
.team-segment button:hover,.team-segment button.active { border-color: #ba8425; background: #b77b14; color: #fff; }
.team-filter-secondary { justify-content: flex-start; border-top: 1px solid #eee5dc; padding-top: .8rem; }
.team-status-filters { flex: 1; }
.team-status-filters button { display: inline-flex; align-items: center; gap: .42rem; }
.team-status-filters button i { width: 7px; height: 7px; border-radius: 50%; background: #cd9b62; }
.team-status-filters button:nth-child(3) i { background: #3f8ed7; }.team-status-filters button:nth-child(4) i { background: #e88823; }.team-status-filters button:nth-child(5) i { background: #6b9d36; }
.team-status-filters button:hover,.team-status-filters button.active { border-color: #c69b50; background: #fbf1df; color: #8d5e0d; }
.team-advanced-button { display: inline-flex; align-items: center; gap: .45rem; margin-left: auto; white-space: nowrap; }
.team-advanced-button .ui-icon { width: 16px; height: 16px; }
.team-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.team-metric { display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: .9rem; min-height: 104px; padding: 1rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(54,36,25,.055); }
.team-metric-icon { display: grid; place-items: center; width: 49px; height: 49px; border-radius: 50%; background: #f4e7d7; color: #6e462c; }
.team-metric-clock .team-metric-icon { background: #f6e9d5; color: #9c6913; }.team-metric-progress .team-metric-icon { background: #e4effb; color: #3e78b9; }.team-metric-check .team-metric-icon { background: #e8f1df; color: #5f8b30; }
.team-metric-icon .ui-icon { width: 25px; height: 25px; }
.team-metric b,.team-metric strong,.team-metric small { display: block; }.team-metric b { color: var(--ink); font-size: .82rem; font-weight: 850; }.team-metric strong { margin: .12rem 0; color: var(--brown); font-size: 1.75rem; font-weight: 900; line-height: 1; }.team-metric small { color: var(--muted); font-size: .64rem; }
.team-table-wrap { overflow-x: auto; }.team-objectives-table { min-width: 1120px; }.team-objectives-table th,.team-objectives-table td { padding-left: .55rem; padding-right: .55rem; }.team-objectives-table th { font-size: .6rem; }.team-objectives-table td { font-size: .68rem; }
.team-objective-identity,.team-assignee,.team-due { display: flex; align-items: center; gap: .65rem; }
.team-objective-identity > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 8px; background: #f4eadc; color: var(--brown); }.team-objective-identity > span .ui-icon { width: 17px; height: 17px; }
.team-objective-identity strong,.team-objective-identity small,.team-assignee strong,.team-assignee small,.team-due strong,.team-due small { display: block; }.team-objective-identity strong,.team-assignee strong,.team-due strong { color: var(--ink); font-size: .7rem; }.team-objective-identity small { max-width: 250px; margin-top: .16rem; color: var(--muted); font-size: .61rem; line-height: 1.35; }.team-assignee small,.team-due small { margin-top: .12rem; color: var(--muted); font-size: .59rem; }
.team-assignee .user-avatar { width: 35px; height: 35px; font-size: .63rem; }.team-period { display: inline-flex; border-radius: 6px; padding: .4rem .62rem; background: #f4eee6; color: #6b5544; font-size: .64rem; font-weight: 800; }
.team-task-status { display: inline-flex; align-items: center; gap: .4rem; border-radius: 7px; padding: .4rem .62rem; font-size: .64rem; font-weight: 850; white-space: nowrap; }.team-task-status i { width: 7px; height: 7px; border-radius: 50%; }.team-status-pending { background: #fbecdf; color: #a26339; }.team-status-pending i { background: #da8654; }.team-status-progress { background: #e5effb; color: #3c78b5; }.team-status-progress i { background: #3487d7; }.team-status-fulfilled { background: #fff0dd; color: #a56218; }.team-status-fulfilled i { background: #ed8517; }.team-status-completed { background: #e7f0df; color: #5a8231; }.team-status-completed i { background: #70a13b; }
.team-progress { display: grid; gap: .35rem; min-width: 115px; }.team-progress b { color: var(--ink); font-size: .66rem; }.team-progress > span { overflow: hidden; width: 100%; height: 5px; border-radius: 4px; background: #ebe7e2; }.team-progress > span i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#b77b14,#d49a34); }
.team-due > .ui-icon { width: 17px; height: 17px; flex: 0 0 auto; color: var(--brown); }.team-row-actions { display: flex; gap: .38rem; }.team-row-actions button { display: inline-grid; place-items: center; min-width: 34px; padding: .48rem; }.team-row-actions .ui-icon { width: 15px; height: 15px; }
.team-objective-modal { width: min(780px,100%); }.team-form-wide { grid-column: 1 / -1; }.team-objective-form textarea { width: 100%; resize: vertical; }
@media(max-width:1180px){.team-filter-main .user-search{flex:1 1 100%}.team-filter-group:last-child{justify-content:flex-end}.team-role-shortcuts{display:none}.team-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.team-objectives-head{align-items:stretch;flex-direction:column}.team-objectives-head .primary{justify-content:center}.team-filter-main{grid-template-columns:1fr}.team-filter-main .user-search{grid-column:auto}.team-filter-group{align-items:stretch;flex-direction:column}.team-filter-group:last-child{justify-content:flex-start}.team-segment{display:grid;grid-template-columns:repeat(3,1fr)}.team-filter-secondary{align-items:stretch;flex-direction:column}.team-status-filters{display:grid;grid-template-columns:1fr 1fr}.team-advanced-button{justify-content:center;margin-left:0}.team-metrics{grid-template-columns:1fr}.team-form-wide{grid-column:auto}}

/* Per-user access editor */
.access-user-modal{width:min(920px,94vw);max-height:92vh}.access-user-modal .modal-body{display:grid;gap:22px}
.access-editor{border:1px solid #eadfce;border-radius:18px;background:#fffaf4;padding:20px}.access-editor-head h3,.access-editor h3{margin:0 0 4px;color:#3d281b;font-size:20px}.access-editor-head p,.access-editor>p{margin:0;color:#78685e;font-size:13px}
.access-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.access-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #eadfce;border-radius:12px;background:#fff;padding:12px}.access-row>span{display:grid;gap:3px;min-width:0}.access-row strong{color:#36251b;font-size:13px}.access-row small{color:#8b7a70;font-size:11px;line-height:1.35}.access-row select{width:142px;min-height:38px;border:1px solid #dcccb8;border-radius:9px;background:#fff;padding:0 9px;color:#4b3527}.access-prohibited{background:#f4f1ee;opacity:.72}.access-prohibited select{cursor:not-allowed}
.access-projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px;padding-top:16px;border-top:1px solid #eadfce}.access-projects h4{grid-column:1/-1;margin:2px 0 4px;color:#4b3527;font-size:14px}.access-projects label{display:flex;align-items:center;gap:8px;border:1px solid #eadfce;border-radius:10px;background:#fff;padding:10px 12px;font-size:12px;color:#544238}.access-projects input,.access-review input{accent-color:#a96b13}.access-review{display:flex;align-items:flex-start;gap:9px;margin-top:18px;border-radius:10px;background:#f7ead2;padding:13px;color:#5d3b15;font-size:12px;font-weight:600}.admin-fixed-access{background:#f8edd9}.access-summary{display:inline-flex;border-radius:999px;background:#f5ead8;padding:7px 10px;color:#8a5b16;font-size:11px;font-weight:700;white-space:nowrap}.no-access-workspace{min-height:100vh;display:grid;place-items:center}.no-access-panel{width:min(520px,90vw);text-align:center;padding:42px}.no-access-panel h1{margin-top:0;color:#3c291d}.document{display:flex;align-items:center;justify-content:space-between;gap:18px}
@media(max-width:760px){.access-list,.access-projects{grid-template-columns:1fr}.access-row{align-items:flex-start;flex-direction:column}.access-row select{width:100%}.access-user-modal{width:96vw}}

/* Corrective restoration: access overlay only. */
.app-header{position:relative;display:grid!important;grid-template-columns:minmax(300px,350px) minmax(250px,1fr) auto!important;align-items:center}.top-nav{position:static;justify-self:center;transform:none}.header-actions{justify-self:end}
/* Final compact header mark and a stable input face in every focus state. */
.app-header{grid-template-columns:350px minmax(230px,1fr) auto!important}
.app-header .brand{min-width:330px!important;width:330px!important;height:96px!important;overflow:hidden!important}
.app-header .brand img{width:302px!important;height:96px!important;object-fit:cover!important;object-position:center center!important}
.login-redesign .login-input-wrap > .ui-icon{flex:0 0 auto;margin-left:2rem!important;color:#8b735e}
.login-redesign .login-input-wrap input,.login-redesign .login-input-wrap input:hover,.login-redesign .login-input-wrap input:focus,.login-redesign .login-input-wrap input:active{font-family:"Poppins",sans-serif!important;font-weight:400!important;font-synthesis:none!important}
.tracking-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.modal-foot [data-command="close"]:empty::after{content:"Cerrar"}
.tracking-card{grid-template-columns:minmax(180px,1fr) auto minmax(210px,1fr) 122px!important}.tracking-actions{justify-content:flex-end;min-width:116px}
.po-pdf-modal{width:min(980px,100%)!important}.po-pdf-preview{display:grid;gap:1.2rem}.po-pdf-page{position:relative;width:min(100%,760px);margin:0 auto;box-shadow:0 4px 18px rgba(44,31,22,.14);background:#fff;aspect-ratio:595.56/842.28;overflow:hidden}.po-pdf-page>img{width:100%;height:100%;display:block}
.po-fill{position:absolute;color:#4a3728;font:700 clamp(5px,.82vw,8.5px)/1.35 'Segoe UI',Calibri,Arial,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.po-number{left:7.3%;top:13.9%;width:19%;font-size:clamp(9px,1.6vw,16px);font-weight:900;color:#fff;letter-spacing:.02em}
.po-project{left:30.2%;top:13.1%;width:22%;font-weight:800;font-size:clamp(6px,1vw,10px)}.po-area{left:30.2%;top:15.0%;width:22%;font-weight:400;font-size:clamp(5px,.78vw,7.5px)}
.po-contact-name{left:54.9%;top:13.1%;width:38%;font-weight:800;font-size:clamp(6px,1vw,10px)}.po-contact-info{left:54.9%;top:15.0%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}
.po-mfr-name{left:7.8%;top:22.8%;width:38%;font-weight:800;font-size:clamp(5.5px,.88vw,9px)}.po-mfr-addr{left:7.8%;top:25.3%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px);white-space:normal;line-height:1.45}.po-mfr-contact{left:7.8%;top:28.9%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}.po-mfr-email{left:7.8%;top:30.7%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}
.po-src-name{left:52.1%;top:22.8%;width:38%;font-weight:800;font-size:clamp(5.5px,.88vw,9px)}.po-src-addr{left:52.1%;top:25.3%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px);white-space:normal;line-height:1.45}.po-src-contact{left:52.1%;top:28.9%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}.po-src-email{left:52.1%;top:30.7%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}
.po-ship-name{left:7.8%;top:35.2%;width:38%;font-weight:800;font-size:clamp(5.5px,.88vw,9px)}.po-ship-addr{left:7.8%;top:37.4%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px);white-space:normal}.po-ship-dest{left:7.8%;top:40.0%;width:38%;font-weight:400;font-size:clamp(4px,.62vw,6px)}
.po-bill-name{left:52.1%;top:35.2%;width:40%;font-weight:800;font-size:clamp(5.5px,.88vw,9px)}.po-bill-addr{left:52.1%;top:37.4%;width:40%;font-weight:400;font-size:clamp(4px,.62vw,6px);white-space:normal}
.po-shipping-instr{left:7.8%;top:47.9%;width:23%;font-weight:800}.po-delivery-date{left:33.6%;top:47.9%;width:19%;font-weight:800}.po-freight{left:56.0%;top:47.9%;width:18%;font-weight:800}
.po-terms{left:7.8%;top:52.3%;width:23%;font-weight:800}.po-currency{left:33.6%;top:52.3%;width:19%;font-weight:800}.po-specified{left:56.0%;top:52.3%;width:35%;font-weight:800}
.po-sidemark{left:7.8%;top:56.6%;width:23%;font-weight:800}.po-prepby{left:33.6%;top:56.6%;width:24%;font-weight:400}
.po-total{left:61.6%;top:57.0%;width:30%;font-size:clamp(7px,1.35vw,13px);font-weight:900;color:#fff}
.po-itm-code{left:4.8%;width:9%;font-size:clamp(4.5px,.72vw,7px)}.po-itm-desc{left:24.1%;width:34%;white-space:normal;font-size:clamp(4.5px,.72vw,7px);line-height:1.4}.po-itm-qty{left:59.9%;width:8%;font-size:clamp(4.5px,.72vw,7px)}.po-itm-unit{left:70.0%;width:11%;font-size:clamp(4.5px,.72vw,7px);text-align:right}.po-itm-ext{left:82.3%;width:13%;font-size:clamp(4.5px,.72vw,7px);text-align:right}
.po-page-1 .po-row-0{top:68.1%}.po-page-1 .po-row-1{top:77.2%}
.po-page-2 .po-row-0{top:9%}.po-page-2 .po-row-1{top:19%}.po-page-2 .po-row-2{top:29%}.po-page-2 .po-row-3{top:39%}.po-page-2 .po-row-4{top:49%}.po-page-2 .po-row-5{top:59%}.po-page-2 .po-row-6{top:69%}.po-page-2 .po-row-7{top:79%}
.po-p2-number{left:18%;top:3.5%;width:16%;font-weight:800;font-size:clamp(5px,.78vw,7.5px)}.po-p2-project{left:40%;top:3.5%;width:24%;font-size:clamp(5px,.78vw,7.5px)}.po-p2-area{left:74%;top:3.5%;width:20%;font-size:clamp(5px,.78vw,7.5px)}
.po-subtotal{left:79%;top:86%;width:14%;font-weight:800;text-align:right}.po-po-total{left:79%;top:90%;width:14%;font-weight:900;font-size:clamp(8px,1.4vw,14px);text-align:right}
.po-p3-number{left:18%;top:3.5%;width:16%;font-weight:800;font-size:clamp(5px,.78vw,7.5px)}.po-p3-project{left:40%;top:3.5%;width:24%;font-size:clamp(5px,.78vw,7.5px)}.po-p3-area{left:74%;top:3.5%;width:20%;font-size:clamp(5px,.78vw,7.5px)}
.po-approved-for{left:62%;top:20%;width:28%;font-size:clamp(8px,1.5vw,15px);font-weight:900}.banner-image-manager{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.banner-image-manager figure{position:relative;margin:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.banner-image-manager img{display:block;width:100%;height:95px;object-fit:cover}.banner-image-manager button{position:absolute;right:.35rem;top:.35rem;width:28px;height:28px;padding:0;border-radius:50%}@media print{body.print-order #app,body.print-order #toast{display:none!important}body.print-order #modal-root{position:static!important}body.print-order .modal-backdrop{position:static!important;display:block!important;padding:0!important;background:#fff!important}body.print-order .modal{width:100%!important;max-height:none!important;box-shadow:none!important}body.print-order .modal-head,body.print-order .modal-foot{display:none!important}body.print-order .modal-body{padding:0!important}.po-pdf-page{width:100%!important;box-shadow:none!important;page-break-after:always}}
/* HPG PO — Pure HTML/CSS recreation */
.hpg-po{max-width:760px;margin:0 auto;background:#fff;color:#4a3728;font:400 8.5px/1.4 'Segoe UI',Calibri,Arial,sans-serif;padding:2.8em 3em}
.hpg-po,.hpg-po *{box-sizing:border-box;-webkit-translate:no;translate:no}
.hpg-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2em}
.hpg-header img{height:55px}
.hpg-title{text-align:right}
.hpg-title small{display:block;font-size:8px;font-weight:800;letter-spacing:.22em;color:#9c7a3c}
.hpg-title h1{margin:0;font-size:20px;font-weight:900;letter-spacing:.05em;color:#4a3728}
.hpg-info-row{display:grid;grid-template-columns:1.1fr 1.2fr 1fr;border:1px solid #d4c4b0;border-radius:3px;margin-bottom:1.6em;overflow:hidden}
.hpg-info-cell{padding:.7em .9em;border-right:1px solid #d4c4b0}
.hpg-info-cell:last-child{border-right:0}
.hpg-info-cell.po-num{background:#624533;color:#fff}
.hpg-po [data-t]{font-size:0!important;line-height:0}.hpg-po [data-t]::after{content:attr(data-t);font-size:inherit;font-weight:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;line-height:1.4}
.hpg-po label{display:block;margin-bottom:.3em}
.hpg-po label::after{font-size:6px!important;font-weight:800!important;letter-spacing:.15em!important;text-transform:uppercase!important;color:#9c7a3c!important;line-height:1.4!important}
.hpg-info-cell.po-num label::after{color:rgba(255,255,255,.65)!important}
.hpg-mark-cell.tot label::after{color:rgba(255,255,255,.6)!important}
.hpg-section{font-size:0!important}.hpg-section::after{font-size:8px!important;font-weight:900;letter-spacing:.15em;color:#9c7a3c;text-transform:uppercase}
.hpg-title small::after{font-size:8px!important;font-weight:800;letter-spacing:.22em;color:#9c7a3c}
.hpg-title h1{font-size:0!important}.hpg-title h1::after{font-size:20px!important;font-weight:900;letter-spacing:.05em;color:#4a3728}
.hpg-items th{font-size:0!important}.hpg-items th::after{content:attr(data-t);font-size:6px!important;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.hpg-tc h2{font-size:0!important}.hpg-tc h2::after{font-size:13px!important;font-weight:900}
.hpg-tc .tc-sub{font-size:0!important}.hpg-tc .tc-sub::after{font-size:6.5px!important;font-weight:800;letter-spacing:.13em;color:#9c7a3c;text-transform:uppercase}
.hpg-subtotal-line .lbl{font-size:0!important}.hpg-subtotal-line .lbl::after{font-size:8.5px!important}
.hpg-total-box label::after{font-size:7px!important;letter-spacing:.12em!important}
.hpg-sig-label span{font-size:0!important}.hpg-sig-label span::after{font-size:5.5px!important;color:#8a7a6a}
.hpg-approval p[data-t]{font-size:0!important}.hpg-approval p[data-t]::after{font-size:7.5px!important}
.hpg-party .note{font-size:0!important}.hpg-party .note::after{font-size:6.5px!important;font-weight:700;color:#9c7a3c}
.hpg-info-cell.po-num label{color:rgba(255,255,255,.65)}
.hpg-info-cell .val{font-size:11px;font-weight:900}
.hpg-info-cell .sub{font-size:7px;color:#8a7a6a;margin-top:.2em}
.hpg-section{font-size:8px;font-weight:900;letter-spacing:.15em;color:#9c7a3c;text-transform:uppercase;margin:1.4em 0 .5em}
.hpg-parties{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d4c4b0;border-radius:3px;margin-bottom:1.2em;overflow:hidden}
.hpg-party{padding:.6em .8em;border-right:1px solid #d4c4b0;border-bottom:1px solid #d4c4b0}
.hpg-party:nth-child(2n){border-right:0}
.hpg-party:nth-last-child(-n+2){border-bottom:0}
.hpg-party label{display:block;font-size:5.5px;font-weight:800;letter-spacing:.13em;color:#9c7a3c;text-transform:uppercase;margin-bottom:.4em}
.hpg-party p{margin:.15em 0;font-size:7.5px;min-height:.85em}
.hpg-party .name{font-weight:700;font-size:8px}
.hpg-party .note{font-size:6.5px;font-weight:700;color:#9c7a3c}
.hpg-terms-grid{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #d4c4b0;border-radius:3px;margin-bottom:.7em;overflow:hidden}
.hpg-term{padding:.5em .7em;border-right:1px solid #d4c4b0;border-bottom:1px solid #d4c4b0}
.hpg-term:nth-child(3n){border-right:0}
.hpg-term:nth-last-child(-n+3){border-bottom:0}
.hpg-term label{display:block;font-size:5.5px;font-weight:800;letter-spacing:.12em;color:#9c7a3c;text-transform:uppercase;margin-bottom:.25em}
.hpg-term .val{font-size:7.5px;font-weight:700}
.hpg-mark-row{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #d4c4b0;border-radius:3px;margin-bottom:1.5em;overflow:hidden}
.hpg-mark-cell{padding:.5em .7em;border-right:1px solid #d4c4b0}
.hpg-mark-cell:last-child{border-right:0}
.hpg-mark-cell.tot{background:#624533;color:#fff}
.hpg-mark-cell label{display:block;font-size:5.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9c7a3c;margin-bottom:.25em}
.hpg-mark-cell.tot label{color:rgba(255,255,255,.6)}
.hpg-mark-cell .val{font-size:7.5px;font-weight:700}
.hpg-mark-cell.tot .val{font-size:10px;font-weight:900}
.hpg-items{width:100%;border-collapse:collapse;margin-bottom:1.2em}
.hpg-items th{padding:.45em .5em;background:#624533;color:#fff;font-size:6px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;text-align:left}
.hpg-items th.r,.hpg-items td.r{text-align:right}
.hpg-items td{padding:.5em;border-bottom:1px solid #d4c4b0;font-size:7.5px;vertical-align:top}
.hpg-itm-ref{font-size:6px;color:#8a7a6a;margin-top:.15em}
.hpg-subtotal-line{display:flex;justify-content:flex-end;gap:2em;padding:.5em;font-size:8.5px;border-bottom:1px solid #d4c4b0}
.hpg-subtotal-line .lbl{color:#8a7a6a}
.hpg-subtotal-line .amt{min-width:80px;text-align:right;font-weight:700}
.hpg-total-bar{display:flex;justify-content:flex-end;margin:.8em 0}
.hpg-total-box{background:#624533;color:#fff;padding:.6em 1.5em;display:flex;align-items:center;gap:1.5em;font-weight:900;font-size:10px}
.hpg-total-box label{font-size:7px;letter-spacing:.12em;font-weight:800}
.hpg-payment-box{border:1px solid #d4c4b0;border-radius:3px;padding:.7em .9em;margin:1em 0 1.5em}
.hpg-payment-box p{margin:.35em 0;font-size:7.5px;display:flex;gap:.4em}
.hpg-payment-box p label{font-size:5.5px;font-weight:800;letter-spacing:.1em;color:#9c7a3c;text-transform:uppercase;min-width:90px;flex-shrink:0}
.hpg-payment-box .pay-val{font-weight:700}
.hpg-approvals{display:grid;grid-template-columns:1fr 1fr;border:1px solid #d4c4b0;border-radius:3px;margin-bottom:1.5em;overflow:hidden}
.hpg-approval{padding:.8em .9em;border-right:1px solid #d4c4b0;border-bottom:1px solid #d4c4b0;min-height:70px}
.hpg-approval:nth-child(2n){border-right:0}
.hpg-approval:nth-last-child(-n+2){border-bottom:0}
.hpg-approval label{display:block;font-size:5.5px;font-weight:800;letter-spacing:.13em;color:#9c7a3c;text-transform:uppercase;margin-bottom:.8em}
.hpg-approval p{font-size:7.5px;margin:.2em 0}
.hpg-sig-line{border-bottom:1px solid #c4a882;margin:1.8em 0 .15em}
.hpg-sig-label{display:flex;justify-content:space-between;font-size:5.5px;color:#8a7a6a}
.hpg-approved-val{font-size:12px;font-weight:900;margin:.5em 0}
.hpg-tc h2{font-size:13px;font-weight:900;margin:0 0 .1em}
.hpg-tc .tc-sub{font-size:6.5px;font-weight:800;letter-spacing:.13em;color:#9c7a3c;text-transform:uppercase;margin-bottom:1em}
.hpg-tc-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35em 2em}
.hpg-tc-item{padding:.2em 0;border-bottom:1px solid #c4a882}
.hpg-tc-item strong{font-size:7px;font-weight:900;margin-right:.5em}
.hpg-tc-item span{display:block;border-bottom:1px solid #c4a882;min-height:.7em;margin-top:.1em}
.hpg-footer{border-top:2px solid #c4a882;padding-top:.5em;margin-top:2.5em;font-size:6px;color:#8a7a6a;display:flex;justify-content:space-between}
.hpg-divider{border:none;border-top:2px solid #c4a882;margin:1em 0}
@media print{.hpg-po{padding:1.5em;max-width:none}.hpg-items{page-break-inside:auto}.hpg-items tr{page-break-inside:avoid}.hpg-approvals{page-break-inside:avoid}.hpg-tc{page-break-inside:avoid}}
.login-support{display:none!important}
.login-redesign .login-input-wrap input,.login-redesign .login-input-wrap input:hover,.login-redesign .login-input-wrap input:focus,.login-redesign .login-input-wrap input:active,.login-redesign .login-input-wrap input:-webkit-autofill{font:400 .88rem/1.2 "Poppins",sans-serif!important;font-style:normal!important;letter-spacing:0!important;-webkit-text-fill-color:#2c201a!important}
.tracking-manager{margin-top:1.5rem;border:1px solid var(--line);border-radius:12px;padding:1.1rem;background:#fff;box-shadow:0 7px 22px #35251d08}.tracking-manager-head h2{margin:.15rem 0;font-size:1.15rem}.tracking-list{display:grid;gap:.65rem}.tracking-card{display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(230px,1fr) auto;align-items:center;gap:.8rem;padding:.8rem;border:1px solid #eadfd5;border-radius:9px;background:#fffdfa}.tracking-card strong{display:block;color:var(--brown);font-size:.82rem}.tracking-card small{color:var(--muted);font-size:.68rem}.tracking-status{border-radius:999px;padding:.35rem .58rem;background:#edf3e5;color:#55752d;font-size:.68rem;font-weight:800;white-space:nowrap}.tracking-edit{display:inline-flex!important;align-items:center;gap:.3rem}.client-tracking-search{display:flex;align-items:center;gap:.55rem;max-width:390px;margin:1rem 0;padding:.62rem .8rem;border:1px solid var(--line);border-radius:8px;background:#fff}.client-tracking-search input{width:100%;border:0;outline:0;background:transparent;font:inherit}.tracking-modal-number{margin-bottom:1rem;padding:.8rem 1rem;border-radius:8px;background:#f7eee0;color:var(--brown);font-weight:850;letter-spacing:.06em}@media(max-width:800px){.tracking-card{grid-template-columns:1fr;gap:.4rem}.tracking-edit{justify-self:end}}
.notification-button{position:relative;display:grid;place-items:center;width:40px;height:40px;border:0;background:transparent;color:var(--brown)}.notification-button .ui-icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}
.user-metric small{display:block;margin-top:.25rem;color:var(--muted);font-size:.62rem}.user-metric b{font-size:.84rem;font-weight:900}.user-metric strong{font-size:1.75rem;font-weight:900}

/* Keep project tracking actions inside their order card and right-size only the dashboard mark. */
.app-header{grid-template-columns:205px minmax(230px,1fr) auto!important}
.app-header .brand{min-width:188px!important;width:188px!important;height:68px!important;overflow:hidden!important}
.app-header .brand img{width:188px!important;height:68px!important;object-fit:cover!important;object-position:center center!important}
.project-purchase-section,.project-management-section,.project-purchase-subsection,.tracking-manager,.tracking-list{width:100%;box-sizing:border-box}
.project-management-section>.section-head{margin-bottom:.3rem}
.project-management-subsection{margin-top:1rem}
.project-management-subsection:first-child{margin-top:.2rem}
.project-management-subsection .section-head{margin-bottom:.8rem}
.tracking-card{grid-template-columns:minmax(220px,1.1fr) max-content minmax(250px,1fr) max-content!important;width:100%;box-sizing:border-box}
.tracking-actions{min-width:auto;justify-self:end;justify-content:flex-end}
@media(max-width:800px){.tracking-card{grid-template-columns:1fr!important}.tracking-actions{justify-self:start}}
.profile-avatar{padding:0;border:0;background:transparent;cursor:pointer}.avatar,.user-avatar{overflow:hidden}.avatar img,.user-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.profile-photo-question{margin:.2rem 0 1rem;color:var(--ink);font-size:1.05rem;font-weight:850}.profile-cropper{display:grid;place-items:center;margin:1rem 0}.profile-cropper canvas{width:190px;height:190px;border:3px solid #d59b33;border-radius:50%;background:#f5eadc;box-shadow:0 6px 16px #4d321a24;touch-action:none;cursor:default}.profile-crop-actions{display:flex;align-items:center;gap:.8rem;margin:.8rem 0}.profile-crop-actions label{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.7rem}.profile-crop-actions input{width:130px;accent-color:#ad7418}.profile-crop-actions .active{background:#8a5c0e;color:#fff}.profile-cropper:not([hidden])~.profile-crop-actions .active~label{display:flex}.tracking-card>div:first-child{text-align:left}.tracking-card strong{display:inline-flex;align-items:center;gap:.38rem}.tracking-copy{display:inline-grid!important;place-items:center;width:30px!important;height:30px!important;padding:0!important;border:1px solid #d9c6a5!important;border-radius:7px!important;background:#fff!important;color:var(--brown)!important;cursor:pointer;transition:.15s}.tracking-copy:hover{background:#8a5c0e!important;color:#fff!important;border-color:#8a5c0e!important}.tracking-copy svg{width:16px;height:16px}
.project-invoice-section{margin-top:1.2rem!important}.invoice-history{display:grid;gap:.6rem}.invoice-record{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:.8rem;border:1px solid #eadfd5;border-radius:9px;background:#fffdfa}.invoice-record strong,.invoice-record small{display:block}.invoice-record strong{color:var(--brown);font-size:.82rem}.invoice-record small{margin-top:.18rem;color:var(--muted);font-size:.68rem}.invoice-record>span{font-weight:850;color:var(--brown);white-space:nowrap}.invoice-modal{width:min(980px,100%)!important}.invoice-modal h3{margin:1.15rem 0 .65rem;color:var(--brown);font-size:.82rem;text-transform:uppercase;letter-spacing:.1em}.invoice-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem}.invoice-breakdown .field{font-size:.65rem}.invoice-preview-modal{width:min(1000px,100%)!important}.payment-request-preview{position:relative;width:min(100%,760px);margin:0 auto;background:#fff;aspect-ratio:595.56/842.28;overflow:hidden;box-shadow:0 4px 18px rgba(44,31,22,.14)}.payment-request-preview>img{width:100%;height:100%;display:block}.pr-fill{position:absolute;color:#5d4638;font:600 clamp(6px,1vw,10px) Arial,sans-serif;line-height:1.2;overflow:hidden}.pr-number{left:7.4%;top:13.2%;width:24%;color:#fff}.pr-project{left:38%;top:13.2%;width:26%}.pr-po{left:38%;top:15.7%;width:26%}.pr-date{left:68%;top:13.2%;width:25%}.pr-currency{left:68%;top:15.7%;width:25%}.pr-detail{left:7.4%;top:25%;width:54%;height:5%}.pr-total-request{left:64%;top:26.2%;width:27%;color:#fff}.pr-source{left:7.4%;top:36.2%;width:40%}.pr-payable{left:52%;top:36.2%;width:39%}.pr-invoice{left:6.5%;top:58%;width:10%}.pr-invoice-total{left:84%;top:58%;width:10%}.pr-payment-to{left:7.4%;top:73.5%;width:57%}.pr-payment-amount{left:66%;top:73.5%;width:25%}.pr-payable-address{left:52%;top:40%;width:39%}.pr-payable-contact{left:52%;top:44%;width:39%}.pr-po-ref{left:17%;top:58%;width:12%}.pr-invoice-date{left:30%;top:58%;width:8%}.pr-due-date{left:39%;top:58%;width:8%}.pr-terms{left:48%;top:58%;width:9%}.pr-invoice-payable{left:58%;top:58%;width:15%}.pr-invoice-currency{left:74%;top:58%;width:8%}.pr-breakdown-0{left:6.5%;top:66%;width:10%}.pr-breakdown-1{left:17%;top:66%;width:10%}.pr-breakdown-2{left:28%;top:66%;width:10%}.pr-breakdown-3{left:38.5%;top:66%;width:10%}.pr-breakdown-4{left:49%;top:66%;width:10%}.pr-breakdown-5{left:60%;top:66%;width:10%}.pr-breakdown-6{left:71%;top:66%;width:10%}.pr-breakdown-7{left:82%;top:66%;width:10%}.pr-requested{left:7.4%;top:84.7%;width:42%}.pr-approved{left:52%;top:84.7%;width:39%}@media(max-width:760px){.invoice-record{grid-template-columns:1fr}.invoice-breakdown{grid-template-columns:1fr 1fr}}
.project-reports-section{margin-top:1.2rem!important}.project-report-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-report-card{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1.1rem;border:1px solid #eadfd5;border-radius:12px;background:#fffdfa}.report-card-icon{display:grid;place-items:center;width:2.75rem;height:2.75rem;border-radius:.8rem;background:#f6ecdc;color:#9a651a;font-size:1.25rem;font-weight:900}.project-report-card h3{margin:0 0 .3rem;color:var(--brown);font-size:1rem}.project-report-card p{margin:0;color:var(--muted);line-height:1.45;font-size:.8rem}.project-report-card small{display:block;margin-top:.4rem;color:#9a7127;font-weight:800;font-size:.72rem}.project-report-card .secondary{white-space:nowrap}@media(max-width:760px){.project-report-list{grid-template-columns:1fr}.project-report-card{grid-template-columns:auto 1fr}.project-report-card .secondary{grid-column:1/-1;width:100%}}
.app-header .brand{width:188px!important;min-width:188px!important;height:68px!important;overflow:hidden!important}.app-header .brand img{width:188px!important;height:68px!important;object-fit:cover!important;object-position:center center!important}.tracking-actions{display:flex;align-items:center;gap:.4rem}.tracking-delete,.invoice-delete{display:grid!important;place-items:center;width:34px;height:34px;padding:0!important}.invoice-record{grid-template-columns:minmax(0,1fr) auto auto auto!important}.confirm-question{margin:.2rem 0 .6rem;color:var(--ink);font-size:1.02rem;font-weight:850}@media(max-width:760px){.app-header .brand{width:190px!important;min-width:190px!important;height:60px!important}.app-header .brand img{width:190px!important;height:60px!important}.invoice-record{grid-template-columns:1fr!important}.tracking-actions{justify-content:flex-end}}
.payment-request-preview .pr-fill{font:600 clamp(5px,.92vw,9px) Arial,sans-serif}.payment-request-preview .pr-number{left:7.4%;top:13.1%;width:25%;font-size:clamp(8px,1.65vw,16px);font-weight:850}.payment-request-preview .pr-project{left:38%;top:14.2%;width:25%;font-size:clamp(6px,1.18vw,11px);font-weight:800}.payment-request-preview .pr-po{left:38%;top:17.1%;width:25%}.payment-request-preview .pr-date{left:68%;top:14.2%;width:24%;font-size:clamp(6px,1.18vw,11px);font-weight:800}.payment-request-preview .pr-currency{left:68%;top:17.1%;width:24%}.payment-request-preview .pr-detail{left:7.4%;top:25.2%;width:52%;height:4.8%;font-size:clamp(5px,1.05vw,10px)}.payment-request-preview .pr-total-request{left:64%;top:27.1%;width:27%;color:#fff;font-size:clamp(7px,1.3vw,13px);font-weight:850}.payment-request-preview .pr-source{left:7.4%;top:37.4%;width:40%;font-size:clamp(6px,1.14vw,11px);font-weight:800}.payment-request-preview .pr-payable{left:52%;top:37.4%;width:38%;font-size:clamp(6px,1.14vw,11px);font-weight:800}.payment-request-preview .pr-payable-address{left:52%;top:39.6%;width:38%;height:3.5%;font-size:clamp(5px,.88vw,8px)}.payment-request-preview .pr-payable-contact{left:52%;top:43.3%;width:38%;font-size:clamp(5px,.9vw,8px)}.payment-request-preview .pr-invoice{left:7.4%;top:52.5%;width:11%;font-weight:850}.payment-request-preview .pr-po-ref{left:18.1%;top:52.5%;width:14%}.payment-request-preview .pr-invoice-date{left:33%;top:52.5%;width:8%}.payment-request-preview .pr-due-date{left:41.8%;top:52.5%;width:8%}.payment-request-preview .pr-terms{left:50.3%;top:52.5%;width:9%}.payment-request-preview .pr-invoice-payable{left:61%;top:52.5%;width:16%}.payment-request-preview .pr-invoice-currency{left:78.2%;top:52.5%;width:5%}.payment-request-preview .pr-invoice-total{left:84%;top:52.5%;width:11%;font-weight:850}.payment-request-preview .pr-breakdown-0{left:7.4%;top:58.4%;width:9%;font-weight:850}.payment-request-preview .pr-breakdown-1{left:18.1%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-2{left:29.8%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-3{left:41.5%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-4{left:53.2%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-5{left:64.9%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-6{left:76.6%;top:58.4%;width:10%}.payment-request-preview .pr-breakdown-7{left:88.3%;top:58.4%;width:8%}.payment-request-preview .pr-payment-to{left:7.4%;top:73.5%;width:56%;font-weight:800}.payment-request-preview .pr-payment-amount{left:66%;top:73.3%;width:27%;font-size:clamp(7px,1.45vw,14px);font-weight:850}.payment-request-preview .pr-requested{left:7.4%;top:84.7%;width:42%;font-size:clamp(5px,1vw,10px)}
@media print{body.print-invoice #app,body.print-invoice #toast{display:none!important}body.print-invoice #modal-root{position:static!important}body.print-invoice .modal-backdrop{position:static!important;display:block!important;padding:0!important;background:#fff!important}body.print-invoice .modal{width:100%!important;max-height:none!important;box-shadow:none!important}body.print-invoice .modal-head,body.print-invoice .modal-foot{display:none!important}body.print-invoice .modal-body{padding:0!important}body.print-spec #app,body.print-spec #toast{display:none!important}body.print-spec #modal-root{position:static!important}body.print-spec .modal-backdrop{position:static!important;display:block!important;padding:0!important;background:#fff!important}body.print-spec .modal{width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important}body.print-spec .modal-head,body.print-spec .modal-foot{display:none!important}body.print-spec .modal-body{padding:0!important;overflow:visible!important}.payment-request-preview{width:100%!important;box-shadow:none!important}}
.access-switch{position:relative;display:inline-flex;width:46px;height:25px;flex:0 0 auto}.access-switch input{position:absolute;opacity:0;pointer-events:none}.access-switch i{width:46px;height:25px;border-radius:20px;background:#d9d4ce;box-shadow:inset 0 0 0 1px #cac2ba;transition:.18s}.access-switch i:after{content:"";display:block;width:19px;height:19px;margin:3px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:.18s}.access-switch input:checked+i{background:#bd811b}.access-switch input:checked+i:after{transform:translateX(21px)}.access-switch input:disabled+i{opacity:.62}
.access-user-summary{display:grid;gap:.25rem;padding:1rem;border:1px solid #eadfce;border-radius:12px;background:#fff}.access-user-summary strong{font-size:1.05rem}.access-user-summary small{color:var(--muted)}.project-choice.disabled{opacity:.52}.access-button{border-color:#c99d50!important;color:#79521b!important}
.tool h3{font-size:1.2rem!important;font-weight:900!important}.tool-search{display:block;margin:0 0 1.2rem}.tool-search input{width:min(540px,100%);height:48px;border:1px solid var(--line);border-radius:10px;padding:0 1rem;background:#fff}
.ui-icon{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){.top-nav{position:static;transform:none}.notification-button{display:none}}

/* Password reveal field for the admin user editor (2026-09-02). */
.reveal-input{position:relative;display:flex;align-items:center}
.reveal-input input{flex:1;width:100%;padding-right:44px}
.reveal-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer}
.reveal-toggle:hover{background:#f6ecde;color:var(--brown)}
.reveal-toggle.revealed{color:var(--brown)}
.reveal-toggle .ui-icon{width:18px;height:18px}

/* Global hidden helper so [hidden] wins over display rules (2026-09-02). */
[hidden]{display:none!important}

/* Redesigned profile photo dialog (2026-09-02). */
.profile-photo-modal{width:min(460px,100%)}
.profile-photo-body{display:flex;flex-direction:column;align-items:center;gap:1.15rem;text-align:center}
.profile-photo-question{margin:.15rem 0 0;color:var(--ink);font-size:1.16rem;font-weight:850;letter-spacing:-.01em}
.profile-photo-stage{display:flex;justify-content:center;padding:.2rem 0 .1rem}
.profile-photo-ring{position:relative;width:190px;height:190px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#f6ecdb,#e6d2b4);border:4px solid #fff;box-shadow:0 12px 32px rgba(60,40,24,.20),0 0 0 1px #e4d5bf}
.profile-photo-ring canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
.profile-photo-ring canvas:active{cursor:grabbing}
.profile-photo-initials{position:absolute;inset:0;display:grid;place-items:center;color:#8a5c2e;font-size:3.1rem;font-weight:900;letter-spacing:.03em}
.profile-photo-controls{display:flex;flex-direction:column;align-items:center;gap:.7rem;width:100%}
.profile-photo-btn{min-width:238px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem}
.profile-photo-btn.active{background:#8a5c0e;color:#fff;border-color:#8a5c0e}
.profile-zoom{display:none;align-items:center;gap:.65rem;width:100%;max-width:300px;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}
.profile-zoom.is-visible{display:flex}
.profile-zoom input[type=range]{flex:1;accent-color:#ad7418;cursor:pointer}
.profile-photo-hint{max-width:340px;color:var(--muted);font-size:.7rem;line-height:1.55}

/* User management role filter dropdown (2026-09-02). */
.user-toolbar{margin-top:1.4rem;display:flex;align-items:center;gap:.75rem}
.user-toolbar .user-search{flex:1;min-width:0}
.user-filter-select{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);font-size:.76rem;font-weight:800;flex-shrink:0}
.user-filter-select select{height:42px;border:1px solid var(--line);border-radius:8px;padding:0 2.1rem 0 .85rem;background:#fff;color:var(--ink);font-size:.78rem;font-weight:700;cursor:pointer}
.access-scope-note{margin:.5rem 0 0;padding:.6rem .7rem;border:1px dashed #cdb98f;border-radius:8px;background:#fbf6ec;color:var(--muted);font-size:.72rem;line-height:1.5}

/* Specs library: colored finish swatches + technical sheet (2026-09-02). */
.spec-colors{display:inline-flex;gap:5px;flex-wrap:wrap;vertical-align:middle}
.spec-swatch{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.spec-finish{display:inline-flex;align-items:center;gap:.5rem}
.spec-spec-grid{display:grid;grid-template-columns:1fr auto;gap:1.1rem;align-items:start}
.spec-spec-grid .spec-data-table{margin-top:0}
.spec-image-empty{display:grid;place-items:center;width:300px;height:190px;background:#f6f2ec;color:#987f69;font-size:.72rem;text-align:center}
.spec-photo-note{margin:.4rem 0 0;color:#8c7763;font-size:.68rem;font-style:italic}
@media(max-width:760px){.spec-spec-grid{grid-template-columns:1fr}.spec-image,.spec-image-empty{max-width:100%;width:100%}}

/* Tracking copy button (2026-09-02). */
.tracking-copy{display:inline-grid!important;place-items:center;width:30px!important;height:30px!important;padding:0!important;border:1px solid #d9c6a5!important;border-radius:7px!important;background:#fff!important;color:var(--brown)!important;cursor:pointer;transition:.15s}.tracking-copy:hover{background:#8a5c0e!important;color:#fff!important;border-color:#8a5c0e!important}.tracking-copy svg{width:16px;height:16px}

/* Spec color picker (2026-09-02). */
.spec-color-field{grid-column:1/-1}
.spec-color-picker{display:grid;gap:.55rem}
.spec-color-swatches{display:flex;flex-wrap:wrap;gap:.4rem;min-height:28px}
.spec-color-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border:1px solid #e0d4c4;border-radius:7px;background:#fffdf8;font-size:.72rem;font-weight:700}
.spec-color-tag i{width:16px;height:16px;border-radius:50%;border:1px solid rgba(0,0,0,.15)}
.spec-color-remove{border:0;background:transparent;color:var(--red);font-size:.9rem;padding:0 0 0 .2rem;cursor:pointer}
.spec-color-add{display:flex;flex-direction:column;gap:.5rem}
.spec-color-add-btn{height:36px;padding:0 1rem;font-size:.76rem;width:100%;border-radius:7px;margin-top:.15rem}
.color-palette-widget{display:flex;flex-direction:column;gap:.5rem;width:260px;padding:.6rem;border:1px solid var(--line);border-radius:10px;background:#fff}
.color-gradient-area{position:relative;width:100%;height:140px;border-radius:6px;cursor:crosshair;overflow:hidden}
.color-gradient-area canvas{width:100%;height:100%;display:block;border-radius:6px}
.color-gradient-cursor{position:absolute;width:14px;height:14px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0,0,0,.5);transform:translate(-50%,-50%);pointer-events:none}
.color-hue-slider{width:100%;height:14px;border-radius:7px;cursor:pointer;-webkit-appearance:none;appearance:none;outline:none;border:none;background:transparent}
.color-hue-slider::-webkit-slider-runnable-track{height:14px;border-radius:7px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00)}
.color-hue-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #888;box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:pointer;margin-top:-1px}
.color-hue-slider::-moz-range-track{height:14px;border-radius:7px;background:linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00);border:none}
.color-hue-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid #888;box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:pointer}
.color-hex-row{display:flex;align-items:center;gap:.45rem}
.color-preview-swatch{width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.color-hex-input{flex:1;height:32px;border:1px solid var(--line);border-radius:7px;padding:0 .5rem;font-size:.78rem;font-family:monospace}
.color-opacity-label{font-size:.7rem;color:var(--muted);white-space:nowrap}

/* Auto progress note (2026-09-02). */
.auto-progress-note{margin:.35rem 0 0;padding:.5rem .65rem;border:1px dashed #cdb98f;border-radius:7px;background:#fbf6ec;color:var(--muted);font-size:.72rem;line-height:1.45}

/* Client dashboard redesign (2026-09-02). */
.client-dashboard{display:grid;gap:1.25rem}
.client-banner{position:relative;overflow:hidden;min-height:220px;border-radius:16px;background:#2a1c14 center/cover no-repeat}
.client-banner-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:2rem 2.2rem;background:linear-gradient(0deg,rgba(30,18,10,.82) 0%,rgba(30,18,10,.35) 50%,transparent 100%)}
.client-banner-eyebrow{color:rgba(255,255,255,.7);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.client-banner-title{margin:.25rem 0 .15rem;color:#fff;font-size:clamp(1.6rem,3.5vw,2.6rem);font-weight:900;letter-spacing:-.03em;line-height:1.1}
.client-banner-line{width:52px;height:3px;margin:.55rem 0;border-radius:3px;background:linear-gradient(90deg,#d49a34,#b77b14)}
.client-banner-sub{color:rgba(255,255,255,.75);font-size:.78rem;font-weight:600}
.client-dashboard-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}
.client-history-card{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(54,36,25,.055)}
.client-card-head{display:flex;align-items:center;gap:.7rem;padding:.85rem 1.1rem;border-bottom:1px solid #eee5dc}
.client-card-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:#f4eadc;color:var(--brown)}
.client-card-icon .ui-icon{width:19px;height:19px}
.client-card-head h3{margin:0;color:var(--ink);font-size:.92rem;font-weight:900}
.client-history-table{width:100%;border-collapse:collapse}
.client-history-table th{padding:.6rem 1rem;background:#faf6f0;color:var(--muted);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-align:left;border-bottom:1px solid #eee5dc}
.client-history-table td{padding:.65rem 1rem;color:var(--ink);font-size:.73rem;border-bottom:1px solid #f4ede4}
.client-history-table tr:last-child td{border-bottom:0}
.client-view-btn{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:.38rem .7rem;border:1px solid #d4a840;border-radius:7px;background:#fff;color:#8a5c0e;font-size:.66rem;font-weight:800;cursor:pointer;transition:.15s}
.client-view-btn:hover{background:#8a5c0e;color:#fff;border-color:#8a5c0e}
.client-see-all{display:block;padding:.7rem 1rem;color:#9a6812;font-size:.74rem;font-weight:800;text-align:right;border-top:1px solid #eee5dc;cursor:pointer;transition:.12s}
.client-see-all:hover{background:#fbf6ec;color:#7a5210}
@media(max-width:800px){.client-dashboard-cards{grid-template-columns:1fr}.client-banner{min-height:180px}}

/* Client tracking page (2026-09-02). */
.client-tracking-page{display:grid;gap:1.25rem}
.client-tracking-search-card{padding:2rem 2.2rem;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(54,36,25,.055);text-align:center}
.client-tracking-search-icon{display:inline-grid;place-items:center;width:72px;height:72px;margin:0 auto .8rem;border-radius:50%;background:linear-gradient(135deg,#f6ecdc,#eedcc2);color:#9a6812}
.client-tracking-search-card h2{margin:0 0 .3rem;color:var(--ink);font-size:1.15rem;font-weight:900}
.client-tracking-search-card>p{margin:0 0 1.2rem;color:var(--muted);font-size:.82rem}
.client-tracking-input-row{display:flex;align-items:center;justify-content:center;gap:.65rem;max-width:540px;margin:0 auto}
.client-tracking-input-row input{flex:1;height:50px;border:2px solid #e4d9ca;border-radius:12px;padding:0 1.1rem;font-size:.88rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:#faf7f2}
.client-tracking-input-row input:focus{border-color:#bd811b;outline:none;box-shadow:0 0 0 3px rgba(189,129,27,.15);background:#fff}
.client-tracking-btn{height:50px;padding:0 2rem;border:0;border-radius:12px;background:linear-gradient(135deg,#b77b14,#d49a34);color:#fff;font-size:.88rem;font-weight:800;cursor:pointer;transition:.18s;white-space:nowrap;letter-spacing:.02em}
.client-tracking-btn:hover{background:linear-gradient(135deg,#9a6812,#b77b14);box-shadow:0 4px 14px rgba(183,123,20,.25)}

/* Tracking not found */
.client-tracking-not-found{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2.5rem 1.5rem;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(54,36,25,.055);text-align:center;color:var(--muted)}
.client-tracking-not-found svg{color:#c9b494}
.client-tracking-not-found p{margin:0;font-size:.92rem;font-weight:700;color:var(--ink)}
.client-tracking-not-found small{font-size:.76rem}

/* Tracking found card */
.client-tracking-found{overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(54,36,25,.055)}
.client-tracking-found-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.5rem;background:linear-gradient(135deg,#3d281b,#5a3a24);color:#fff}
.client-tracking-found-head h3{margin:0;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.7)}
.client-tracking-found-head p{margin:.25rem 0 0;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.9)}
.client-tracking-found-head p strong{color:#fff;font-weight:900;letter-spacing:.04em}
.client-tracking-found-head .tracking-status{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.25)}
.client-tracking-info{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-bottom:1px solid #eee5dc}
.client-tracking-info-item{padding:1rem 1.5rem;border-right:1px solid #eee5dc}
.client-tracking-info-item:last-child{border-right:0}
.client-tracking-info-item small{display:block;color:var(--muted);font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.client-tracking-info-item strong{display:block;margin-top:.25rem;color:var(--ink);font-size:.82rem;font-weight:850}
.client-tracking-timeline{display:flex;align-items:flex-start;justify-content:center;gap:0;padding:2.2rem 1.5rem 1.8rem}
.client-timeline-step{display:flex;flex-direction:column;align-items:center;gap:.55rem;width:120px;text-align:center}
.client-timeline-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;border:2.5px solid #ddd4ca;background:#f8f4ee;color:#b5a08a;transition:.3s}
.client-timeline-icon svg{width:26px;height:26px}
.client-timeline-step.active .client-timeline-icon{border-color:#b77b14;background:linear-gradient(135deg,#b77b14,#d49a34);color:#fff;box-shadow:0 4px 14px rgba(183,123,20,.3)}
.client-timeline-step.current .client-timeline-icon{box-shadow:0 0 0 5px rgba(183,123,20,.15),0 4px 14px rgba(183,123,20,.3)}
.client-timeline-label{color:var(--muted);font-size:.7rem;font-weight:700;line-height:1.35}
.client-timeline-step.active .client-timeline-label{color:var(--ink);font-weight:800}
.client-timeline-line{width:48px;height:3px;margin-top:28px;border-radius:3px;background:#ece6de;flex-shrink:0}
.client-timeline-line.active{background:linear-gradient(90deg,#b77b14,#d49a34)}
.client-tracking-updated{display:flex;align-items:center;gap:.4rem;margin:0;padding:.75rem 1.5rem;border-top:1px solid #eee5dc;background:#fbf6ec;color:var(--muted);font-size:.72rem;font-weight:700}
@media(max-width:700px){.client-tracking-input-row{flex-direction:column}.client-tracking-input-row input,.client-tracking-btn{width:100%}.client-tracking-info{grid-template-columns:1fr}.client-tracking-info-item{border-right:0;border-bottom:1px solid #eee5dc}.client-tracking-info-item:last-child{border-bottom:0}.client-tracking-timeline{flex-direction:column;align-items:stretch;gap:0;padding:1.5rem}.client-timeline-step{flex-direction:row;width:100%;text-align:left;gap:.8rem}.client-timeline-line{width:3px;height:28px;margin:0 0 0 27px}}

/* Client tracking cell in dashboard orders table */
.client-tracking-cell{display:inline-flex;align-items:center;gap:.35rem}
.client-tracking-cell code{font-size:.68rem;font-weight:700;color:var(--brown);letter-spacing:.03em;background:#f7eedc;padding:.2rem .45rem;border-radius:5px}
.client-copy-btn{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid #d9c6a5;border-radius:6px;background:#fff;color:var(--brown);cursor:pointer;transition:.15s}
.client-copy-btn:hover{background:#8a5c0e;color:#fff;border-color:#8a5c0e}

/* Team member selector modal */
.team-select-intro{margin:0 0 1rem;color:var(--muted);font-size:.82rem}
.team-client-list{display:grid;gap:.55rem;max-height:400px;overflow-y:auto}
.team-client-option{display:grid;grid-template-columns:auto 38px 1fr auto;align-items:center;gap:.7rem;padding:.75rem .9rem;border:1px solid #eadfd5;border-radius:10px;background:#fffdfa;cursor:pointer;transition:.12s}
.team-client-option:hover{border-color:#c99d50;background:#fdf8ef}
.team-client-option input[type=checkbox]{accent-color:#ad7418;width:18px;height:18px}
.team-client-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f4eadc;color:var(--brown);font-size:.7rem;font-weight:900}
.team-client-info strong{display:block;color:var(--ink);font-size:.78rem;font-weight:800}
.team-client-info small{display:block;margin-top:.12rem;color:var(--muted);font-size:.68rem}
.team-client-badge{padding:.25rem .5rem;border-radius:6px;background:#e8f0df;color:#5a8231;font-size:.62rem;font-weight:800}
.team-client-option.already-added{opacity:.65;cursor:default}
.team-no-clients{padding:2rem;text-align:center;color:var(--muted);font-size:.82rem}

/* Tracking update button text + status label (2026-09-03). */
.tracking-update-btn{display:inline-flex!important;align-items:center;gap:.35rem;width:auto!important;height:auto!important;padding:.38rem .7rem!important;font-size:.68rem;font-weight:700;white-space:nowrap}
.tracking-status b{font-weight:800;margin-right:.2rem}

/* Project team avatar with profile photo (2026-09-03). */
.project-team-avatar.has-photo{padding:0;overflow:hidden}
.project-team-avatar.has-photo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}

/* User table position column muted text (2026-09-03). */
.user-directory .text-muted{color:var(--muted);font-size:.78rem}

/* Tracking card redesign: status group + action buttons (2026-09-03). */
.tracking-status-group{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.tracking-update-btn{display:inline-flex!important;align-items:center;gap:.35rem;width:auto!important;height:auto!important;padding:.32rem .65rem!important;font-size:.66rem;font-weight:700;white-space:nowrap;border-radius:6px!important}
.spec-rubro-select{width:100%;height:42px;border:1px solid var(--line);border-radius:8px;padding:0 .85rem;font:inherit;font-size:.82rem;background:#fff;cursor:pointer}
.spec-rubro-otros-field{margin-top:.5rem}
.spec-rubro-otros-field input{width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem}
.primary{display:inline-flex!important;align-items:center;gap:.4rem}
.primary .ui-icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle}
.tracking-status b{font-weight:800;margin-right:.15rem}
.tracking-action-btn{display:inline-flex!important;align-items:center;gap:.35rem;padding:.5rem 1rem!important;font-size:.76rem;font-weight:700;white-space:nowrap;border-radius:8px!important;height:36px}
.tracking-action-btn .ui-icon{width:15px;height:15px;flex-shrink:0}

/* Supplier table: thinner borders (2026-09-03). */
.supplier-directory td,.supplier-directory th{border-bottom:1px solid #f0ece7!important;padding:.6rem .5rem!important}
.supplier-directory{border-spacing:0}
.supplier-rubros-cell{display:flex;flex-wrap:wrap;gap:4px}
.supplier-rubro-pill{display:inline-block;padding:.2rem .5rem;border-radius:999px;background:#f3ece0;color:var(--brown);font-size:.65rem;font-weight:700}

/* Rubro multi-select in supplier editor (2026-09-03). */
.rubro-checkbox-list{display:flex;flex-direction:column;gap:0;max-height:320px;overflow-y:auto;padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px;background:#faf8f5}
.rubro-check-option{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;font-size:.85rem;cursor:pointer;text-align:left;white-space:nowrap;border-bottom:none}
.rubro-check-option:hover{background:transparent}
.rubro-check-option input[type="checkbox"]{accent-color:var(--brown);width:16px;height:16px;flex-shrink:0;margin:0}
.rubro-otros-field{margin-top:.5rem}
.rubro-otros-field input{width:100%;padding:.55rem .7rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem}
.field-full{grid-column:1/-1}

/* Supplier information mirrored from the purchase-order party fields. */
.po-party-details{margin-top:-.25rem!important;padding:.7rem .85rem;border:1px solid #d8c9b8;border-left:3px solid #b98217;border-radius:7px;background:#fffdf9;color:#5f4638}
.po-party-details[hidden]{display:none}
.po-party-details-copy{display:grid;gap:.18rem;font-family:Arial,sans-serif;font-size:.78rem;line-height:1.35}
.po-party-details-copy .po-party-name{font-size:.88rem;font-weight:800;color:#3d3029}
.po-party-details-copy span:not(.po-party-name):empty{display:none}
.po-form-grid .field:has(input[name="manufacturerContact"]),.po-form-grid .field:has(input[name="sourceContact"]){display:none}
.hpg-project-reference{margin-top:.35em;color:#b98217;font-size:8px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.project-order-register{display:grid;gap:.45rem;margin-top:1rem}.project-order-register-head,.project-order-register-row{display:flex;align-items:center;gap:.8rem}.project-order-register-head{justify-content:space-between;color:var(--brown);font-size:.78rem}.project-order-register-head span{display:grid;place-items:center;min-width:22px;height:22px;border-radius:50%;background:#f5e6c7;font-size:.7rem;font-weight:800}.project-order-register-row{justify-content:space-between;padding:.7rem .8rem;border:1px solid var(--line);border-radius:8px;background:#fffdf9}.project-order-register-row div:first-child{display:grid;gap:.15rem;flex:1}.project-order-register-row small{color:var(--muted);font-size:.7rem}.project-order-register-row div:nth-child(2){display:grid;gap:.1rem;text-align:right;font-size:.76rem}.project-order-register-row .secondary{padding:.45rem .65rem;font-size:.72rem}

/* Team objectives: last update + delete button + filter layout (2026-09-03). */
.team-last-update{color:var(--muted);font-size:.7rem;white-space:nowrap}
.team-row-actions{display:flex;align-items:center;gap:.35rem}
.team-row-actions .danger{padding:.35rem .6rem!important;font-size:.72rem}
.team-filter-secondary:empty{display:none}

/* Login error box (2026-09-03). */
.login-error{margin:.6rem 0;padding:.7rem 1rem;border:1px solid #e74c3c;border-radius:8px;background:#fdf0ef;color:#c0392b;font-size:.82rem;font-weight:600;line-height:1.4}

/* Mobile responsive enhancements */
@media(max-width:480px){
.app-header{padding:.6rem 1rem!important;min-height:60px!important;gap:.5rem!important}
.app-header .brand{width:130px!important;min-width:130px!important;height:46px!important}
.app-header .brand img{width:130px!important;height:46px!important}
.top-nav{gap:.3rem!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.top-nav::-webkit-scrollbar{display:none}
.top-nav .nav{font-size:.75rem!important;padding:.45rem .5rem!important;white-space:nowrap;flex-shrink:0}
.header-actions{gap:.3rem}
.content{padding:1rem!important;overflow-x:hidden!important;max-width:100vw!important;box-sizing:border-box!important}
.hero h1{font-size:1.6rem!important}
.hero p:last-child{font-size:.85rem}
.section-head h2{font-size:1.15rem}
.modal{width:98vw!important;max-height:95vh!important;border-radius:10px!important}
.modal-head{padding:.8rem 1rem}
.modal-head h2{font-size:1.15rem!important}
.modal-body{padding:.8rem 1rem}
.modal-foot{padding:.7rem 1rem}
.form-grid{grid-template-columns:1fr!important;gap:.6rem}
.primary,.secondary,.ghost,.danger{font-size:.82rem;padding:.65rem .8rem}
.tool{padding:.8rem}
.tool h3{font-size:1rem!important}
.tool p{font-size:.78rem;min-height:auto!important}
.tool-icon{width:28px;height:28px;font-size:.85rem}
.tools{grid-template-columns:1fr!important;gap:.7rem!important}
.project-main h3{font-size:1.15rem!important}
.project-main{padding:1rem!important}
.meta{gap:.8rem;font-size:.72rem}
.field label{font-size:.78rem}
.field input,.field select,.field textarea{padding:.7rem .8rem;font-size:.85rem}
.user-management-head{gap:.6rem}
.user-management-head h2{font-size:1.3rem!important}
.user-role-filters{grid-template-columns:1fr!important}
.user-search input{height:42px!important}
.user-table-cell{font-size:.72rem;padding:.55rem .4rem}
.supplier-filters{gap:.5rem}
.order-filter-panel{gap:.5rem}
.order-status-filters{grid-template-columns:1fr!important}
.team-objectives-head h2{font-size:1.3rem!important}
.team-metric{min-height:auto;padding:.7rem}
.team-metric strong{font-size:1.4rem}
.team-metric b{font-size:.74rem}
.team-filter-main{gap:.5rem!important}
.team-filter-group select{font-size:.78rem;min-height:36px}
.team-segment button{font-size:.68rem;padding:.35rem .5rem}
.spec-spec-grid{gap:.7rem}
.tracking-card{padding:.8rem!important;gap:.5rem!important;font-size:.78rem}
.tracking-form{gap:.4rem}
.tracking-form input{padding:.65rem}
.tracking-card h1{font-size:1.6rem!important}
.invoice-modal{width:98vw!important}
.invoice-breakdown{grid-template-columns:1fr!important}
.project-detail-cards{grid-template-columns:1fr!important}
.app-footer{padding:.8rem 1rem;font-size:.7rem;gap:.5rem}
.app-footer strong{font-size:1.1rem}
.login-redesign .login-copy h1{font-size:2rem!important}
.login-redesign .login-panel{padding:1.8rem 1rem}
.login-redesign .login-heading h2{font-size:1.6rem!important}
.access-user-modal{width:98vw!important}
.access-list{grid-template-columns:1fr!important}
.access-projects{grid-template-columns:1fr!important}
.color-picker-modal{width:98vw!important}
}

/* Danger zone at project footer */
.danger-zone{margin-top:3rem;padding:1.5rem;border:2px solid #e74c3c;border-radius:12px;background:#fdf2f2}
.danger-zone h3{color:#c0392b;font-size:1rem;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}
.danger-zone h3 .ui-icon{width:18px;height:18px;color:#c0392b}
.danger-zone p{color:#666;font-size:.82rem;margin:0 0 1rem}
.danger-zone .danger{padding:.6rem 1.2rem;font-weight:700}

/* Confirm delete project dialog */
.confirm-sub{font-size:.82rem;color:#666;margin:.5rem 0}
.confirm-sub strong{color:#333}
.confirm-text-input{width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.88rem;margin-top:.5rem}

/* Spec delete button in editor modal footer */
.spec-delete-btn{margin-right:auto!important}
.modal-foot{display:flex;align-items:center;gap:.5rem}

/* Warehouse select wider */
.warehouse-select{min-width:100%!important;white-space:normal;word-break:break-word}
.warehouse-input{display:flex;flex-direction:column;gap:.5rem}
.warehouse-input select{width:100%;font-size:.82rem;padding:.6rem .8rem}

/* PO item spacing + subtotal + grand total */
.po-item-form{margin-bottom:1.2rem;padding-bottom:1.2rem;border-bottom:1px solid var(--line)}
.po-item-form:last-child{border-bottom:none}
.po-item-subtotal{font-weight:700;font-size:.9rem;color:var(--brown);padding:.6rem 0;display:block}
.po-grand-total{margin-top:1rem;padding:1rem;background:#f9f5ef;border-radius:10px;display:flex;justify-content:space-between;align-items:center;font-size:1rem}
.po-grand-total strong{color:#666}
.po-grand-total span{font-weight:700;font-size:1.15rem;color:var(--brown)}

/* Team inline status dropdown */
.team-status-inline{appearance:auto;border:1px solid var(--line);border-radius:6px;padding:.3rem .5rem;font-size:.72rem;font-weight:700;cursor:pointer;background:#fff}
.team-status-inline.team-status-pending{color:#e67e22;border-color:#e67e22}
.team-status-inline.team-status-progress{color:#3498db;border-color:#3498db}
.team-status-inline.team-status-completed{color:#27ae60;border-color:#27ae60}
.team-status-inline.team-status-fulfilled{color:#8e44ad;border-color:#8e44ad}

/* Due date urgent (red) */
.team-due-urgent strong{color:#e74c3c!important}
.team-due-urgent .ui-icon{color:#e74c3c!important}

/* Notification badge */
.notif-badge{position:absolute!important;top:-4px!important;right:-4px!important;width:auto!important;height:auto!important;min-width:20px;min-height:20px;padding:2px 5px!important;border:2px solid #fff;border-radius:50%!important;background:#c9a24b!important;color:#fff;font-size:.68rem;font-weight:800;display:flex!important;align-items:center;justify-content:center;font-style:normal;line-height:1;box-sizing:border-box}
.notification-button{position:relative}
.notification-button i:not(.notif-badge){position:absolute;right:7px;top:7px;width:7px;height:7px;border-radius:50%;background:#bd7c15}

/* Notification items */
.notif-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;border-radius:8px;margin-bottom:.5rem}
.notif-urgent{background:#fdf2f2;border:1px solid #f5c6cb}
.notif-icon{flex-shrink:0;color:#e74c3c}
.notif-icon .ui-icon{width:20px;height:20px}
.notif-item strong{display:block;font-size:.85rem;margin-bottom:.15rem}
.notif-item small{color:#666;font-size:.75rem}
.notif-delete-btn{background:none;border:none;cursor:pointer;color:#999;padding:.2rem;border-radius:4px;margin-left:auto;flex-shrink:0;transition:color .15s}.notif-delete-btn:hover{color:#c44}

/* Section eyebrow titles inside project detail (Gestión del Proyecto, Gestión Financiera, etc.) */
.project-management-section>.section-head .eyebrow,.project-invoice-section>.section-head .eyebrow,.project-reports-section>.section-head .eyebrow{font-size:1.05rem!important;font-weight:900!important;letter-spacing:.04em}

/* Per-project specs section */
.project-specs-subsection{margin-top:.5rem}
.project-specs-toolbar{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.project-specs-toolbar .user-search{flex:1;min-width:240px;height:44px}
.project-specs-toolbar .user-filter-select{display:flex;align-items:center;gap:.45rem}
.project-specs-toolbar .user-filter-select span{color:var(--ink);font-size:.7rem;font-weight:800;white-space:nowrap}
.project-specs-toolbar .user-filter-select select{height:44px;min-width:180px;border:1px solid var(--line);border-radius:9px;padding:0 .75rem;background:#fff;color:var(--ink);font-size:.72rem;font-weight:750}
@media(max-width:760px){.project-specs-toolbar{flex-direction:column}.project-specs-toolbar .user-search{width:100%}.project-specs-toolbar .user-filter-select select{width:100%}}

/* HPG Technical Specification Sheet */
.hpg-sheet{font-family:'Times New Roman',Times,serif;color:#333;line-height:1.4}
.hpg-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.2rem}
.hpg-logo-block{flex-shrink:0}
.hpg-logo-block .po-logo{height:60px;width:auto}
.hpg-title-block{text-align:right}
.hpg-item-code{display:inline-block;background:#c9a24b;color:#fff;padding:.4rem 1.2rem;font-size:.8rem;margin-bottom:.5rem;text-align:center}
.hpg-item-code span{display:block;font-size:.6rem;font-weight:400;letter-spacing:.05em}
.hpg-item-code b{font-size:.9rem}
.hpg-title-block h1{margin:.3rem 0 .1rem;font-size:1.15rem;font-weight:700;color:#6b4c2a;letter-spacing:.02em}
.hpg-title-block small{font-size:.75rem;color:#888}
.hpg-info-table{width:100%;border-collapse:collapse;margin-bottom:1.2rem;font-size:.75rem}
.hpg-info-table th,.hpg-info-table td{border:1px solid #c9a24b;padding:.45rem .6rem}
.hpg-info-table th{background:#8b6914;color:#fff;font-weight:700;width:14%;text-align:left;font-size:.68rem}
.hpg-info-table td{width:36%;background:#fff}
.hpg-section-title{background:#c9a24b;color:#fff;margin:1rem 0 .5rem;padding:.4rem .7rem;font-size:.8rem;font-weight:700;letter-spacing:.03em}
.hpg-spec-grid{display:grid;grid-template-columns:1fr 200px;gap:0;border:1px solid #c9a24b}
.hpg-spec-table{width:100%;border-collapse:collapse;font-size:.75rem}
.hpg-spec-table th{background:#f5ead5;color:#6b4c2a;font-weight:700;text-align:left;padding:.45rem .6rem;border-bottom:1px solid #c9a24b;width:40%;font-size:.68rem}
.hpg-spec-table td{padding:.45rem .6rem;border-bottom:1px solid #e8dcc8}
.hpg-spec-image{display:grid;place-items:center;border-left:1px solid #c9a24b;background:#faf7f0;min-height:180px}
.hpg-spec-image img{max-width:100%;max-height:180px;object-fit:contain;padding:.5rem}
.hpg-spec-image span{color:#999;font-style:italic;font-size:.85rem}
.hpg-photo-note{font-size:.65rem;color:#888;margin:.4rem 0 0;font-style:italic}
.hpg-text{min-height:2rem;font-size:.78rem;margin:0 0 .5rem;padding-left:.2rem}
.hpg-item-table{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:.75rem}
.hpg-item-table th{background:#8b6914;color:#fff;font-weight:700;padding:.4rem .6rem;text-align:left;font-size:.68rem}
.hpg-item-table td{border:1px solid #c9a24b;padding:.4rem .6rem}
.hpg-footer{margin-top:2rem;font-size:.6rem;color:#888;display:flex;justify-content:space-between;align-items:center}
.hpg-footer hr{display:none}
.spec-preview-modal{max-width:820px!important}

/* Client welcome hook above banner */
.client-welcome-hook{font-size:1.8rem;font-weight:900;color:#8b6914;margin:0 0 .8rem 0;text-align:left}

/* Access log toolbar */
.access-log-toolbar{display:flex;align-items:flex-end;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.access-log-toolbar .user-search{flex:1;min-width:220px}

/* Supplier contact cell with stacked contacts */
.supplier-contact-cell{vertical-align:top}
.supplier-contact-stack{display:flex;flex-direction:column;gap:.5rem}
.supplier-contact-stack div{display:flex;flex-direction:column;line-height:1.35}
.supplier-contact-stack strong{font-size:.78rem}
.supplier-contact-stack small{font-size:.68rem;color:#777}
.supplier-contact-2{border-top:1px solid var(--line);padding-top:.4rem}
.supplier-website-cell{max-width:190px}.supplier-website-cell a{display:inline-block;max-width:100%;overflow:hidden;color:#9a6812;font-size:.75rem;font-weight:700;text-decoration:underline;text-overflow:ellipsis;white-space:nowrap}.supplier-website-cell a:hover{color:var(--brown)}

/* Supplier contacts fieldset */
.supplier-contacts-fieldset{border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem .6rem;margin:0}
.supplier-contacts-fieldset legend{font-weight:700;font-size:.78rem;color:var(--ink);padding:0 .4rem}
.supplier-contacts-fieldset .new-project-grid{gap:.6rem .8rem}

/* Dynamic rubros */
.rubro-dynamic-select{display:flex;gap:.4rem;align-items:center}
.rubro-dynamic-select select{flex:1}
.rubro-add-btn{padding:.35rem .5rem!important;min-width:auto!important;font-size:.7rem!important}
.spec-rubro-delete-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;height:38px;padding:0;border:1px solid #df9a9a;border-radius:8px;background:#fff5f5;color:#c53434;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.spec-rubro-delete-btn:hover:not(:disabled){background:#fde7e7;border-color:#c53434;color:#a91f1f}
.spec-rubro-delete-btn:disabled{border-color:#e6dddd;background:#faf8f8;color:#c9bcbc;cursor:not-allowed;opacity:.7}
.spec-rubro-delete-btn .ui-icon{width:17px;height:17px}
.rubro-confirm-backdrop{z-index:1200!important}.rubro-confirm-modal{max-width:500px}
.rubro-search-row{display:flex;gap:.4rem;margin-bottom:.5rem}
.rubro-search-row input[type="search"]{flex:1;height:36px;border:1px solid var(--line);border-radius:8px;padding:0 .6rem;font-size:.75rem}
.rubro-delete-btn{background:none;border:none;color:#c44;cursor:pointer;font-size:.85rem;padding:0 .2rem;margin-left:.3rem}
.ruc-loading{display:block;margin-top:.3rem;font-size:.8rem;color:#bd811b;font-style:italic}.ruc-success{color:#2a7d2a!important}.ruc-error{color:#c44!important}.ruc-info{color:#666!important}
.team-pill{display:inline-flex;align-items:center;border-radius:6px;padding:.38rem .65rem;font-size:.67rem;font-weight:800;white-space:nowrap}.team-ffe{background:#e6eff9;color:#3b6ea8}.team-ose{background:#f3e4d8;color:#a25d36}

/* Phone field with country code selector */
.phone-field-wrap{display:flex;gap:0;align-items:stretch}.country-code-select{position:relative;flex:0 0 auto}.country-code-btn{display:flex;align-items:center;gap:.3rem;height:100%;min-height:42px;border:1px solid #d5cabe;border-right:0;border-radius:8px 0 0 8px;padding:0 .6rem;background:#f9f5ef;color:var(--ink);font-size:.78rem;font-weight:700;white-space:nowrap;cursor:pointer}.country-code-btn:hover{background:#f0e8da}.phone-number-input{flex:1;min-width:0;border-radius:0 8px 8px 0!important}
.country-code-dropdown{position:absolute;z-index:200;top:100%;left:0;width:260px;max-height:280px;margin-top:2px;border:1px solid #d5cabe;border-radius:10px;background:#fff;box-shadow:0 12px 32px rgba(40,25,15,.16);overflow:hidden}.country-code-search{width:100%;border:0;border-bottom:1px solid #eee5dc;padding:.6rem .8rem;font-size:.78rem;outline:0}.country-code-list{max-height:230px;overflow-y:auto}.country-code-option{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;font-size:.76rem;cursor:pointer}.country-code-option:hover{background:#fbf5ea}.country-code-option span{margin-left:auto;color:var(--muted);font-size:.72rem;font-weight:700}

/* OC rubro selector with search */
.oc-rubro-select-wrap{display:grid;gap:.35rem}.oc-rubro-search{width:100%;height:40px;border:1px solid #d5cabe;border-radius:8px;padding:0 .7rem;font-size:.78rem}.oc-rubro-search:focus{border-color:#b8862f;outline:0;box-shadow:0 0 0 3px rgba(184,134,47,.12)}#oc-rubro-select{width:100%}

/* Settings rubros section */
.settings-rubros-section{margin-top:1rem}.settings-rubros-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.settings-rubros-head h2{font-size:1rem;margin:0}.settings-rubros-head p{font-size:.78rem;color:var(--muted);margin:.3rem 0 0}.settings-rubros-toolbar{display:flex;align-items:center;gap:1rem;margin-bottom:.6rem;flex-wrap:wrap}.settings-rubros-toolbar .user-search{flex:1;min-width:200px}.rubros-count{font-size:.75rem;color:var(--muted);white-space:nowrap;font-weight:600}
.settings-rubros-toggle{display:block;width:100%;background:none;border:1px solid var(--line);border-radius:8px;padding:.6rem;font-size:.8rem;font-weight:600;color:#b8862f;cursor:pointer;text-align:center;transition:background .15s}.settings-rubros-toggle:hover{background:#faf5ec}
.settings-rubros-list{overflow-x:auto;margin-top:.6rem}.settings-rubros-table td,.settings-rubros-table th{font-size:.78rem;padding:.5rem .7rem}.rubro-code-pill{display:inline-block;background:#f0e8da;color:#a25d36;border-radius:6px;padding:.2rem .5rem;font-size:.7rem;font-weight:700;letter-spacing:.03em}.rubro-team-pill{display:inline-block;border-radius:6px;padding:.2rem .5rem;font-size:.7rem;font-weight:700;letter-spacing:.03em;white-space:nowrap}.rubro-team-ose{background:#e6efe6;color:#2f6b3f}.rubro-team-ffe{background:#ece6f2;color:#5b4488}.rubro-dup-error{margin:.6rem 0 0;color:#b3261e;font-size:.82rem;font-weight:600}.project-terms-bar{position:relative;display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;margin:.9rem 0 0;padding:.75rem 7rem;border:1px solid var(--line);border-radius:12px;background:#fffdfa;color:#5f4638;font:600 .85rem/1.2 inherit;letter-spacing:.02em;cursor:pointer;transition:background .15s,border-color .15s}.project-terms-bar:hover{background:#f7f0e6;border-color:#d8c3a5}.project-terms-bar .ui-icon{width:17px;height:17px;flex:0 0 auto;fill:#a25d36}.project-terms-bar span{text-align:center}.project-terms-bar em{position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);font-style:normal;font-size:.72rem;font-weight:700;color:#a25d36;background:#f0e8da;border-radius:6px;padding:.18rem .5rem;white-space:nowrap}@media(max-width:560px){.project-terms-bar{padding:.75rem 1rem;flex-wrap:wrap}.project-terms-bar em{position:static;transform:none}}.po-conditions-note{margin:0 0 .7rem;color:#8b7462;font-size:.78rem;line-height:1.5}.po-conditions-empty{margin:0;padding:.9rem 1rem;border:1px dashed var(--line);border-radius:10px;background:#fffdfa;color:#8b7462;font-size:.82rem;line-height:1.5}.rubro-group-title{position:sticky;top:0;z-index:1;margin:.5rem 0 .25rem;padding:.25rem .4rem;background:#f0e8da;color:#a25d36;border-radius:6px;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.rubro-group-title:first-child{margin-top:0}.access-client-note{margin:0 0 1rem;padding:.7rem .85rem;border:1px dashed var(--line);border-radius:10px;background:#fffdfa;color:#7d6553;font-size:.83rem;line-height:1.5}.access-scope-hint{margin:0 0 .6rem;color:#8b7462;font-size:.78rem;line-height:1.5}.project-team-empty{margin:0;padding:.7rem .2rem;color:#8b7462;font-size:.8rem;line-height:1.5}.po-condition-readonly{display:flex;align-items:flex-start;gap:.7rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.po-condition-readonly>strong{flex:0 0 auto;font-size:.72rem;font-weight:700;color:#a25d36;background:#f0e8da;border-radius:6px;padding:.15rem .4rem;margin-top:.1rem}.po-condition-readonly>p{margin:0;flex:1;font-size:.82rem;line-height:1.5;color:#5f4638}.terms-modal{width:min(760px,100%)!important}.terms-intro{margin:0 0 .9rem;color:#7d6553;font-size:.84rem;line-height:1.5}.terms-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.5rem}.terms-count{font-size:.75rem;font-weight:700;letter-spacing:.04em;color:#a25d36;text-transform:uppercase}.terms-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.terms-item{display:flex;align-items:flex-start;gap:.7rem;padding:.6rem .75rem;border:1px solid var(--line);border-radius:10px;background:#fff}.terms-item>strong{flex:0 0 auto;font-size:.72rem;font-weight:700;color:#a25d36;background:#f0e8da;border-radius:6px;padding:.15rem .4rem;margin-top:.1rem}.terms-item>span{flex:1;font-size:.85rem;line-height:1.5;color:#5f4638}.terms-actions{display:flex;gap:.25rem;flex:0 0 auto}.terms-actions button{padding:.25rem .4rem}.terms-actions .ui-icon{width:15px;height:15px}.terms-edit{flex:1;display:flex;flex-direction:column;gap:.5rem}.terms-edit-actions{display:flex;justify-content:flex-end;gap:.5rem}.terms-empty{padding:1rem;border:1px dashed var(--line);border-radius:10px;color:#8b7462;font-size:.83rem;line-height:1.5;text-align:center}.terms-input{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.85rem;line-height:1.5;color:#5f4638;resize:vertical}.terms-add{display:flex;align-items:flex-start;gap:.5rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--line)}.terms-add .terms-input{flex:1}.terms-add button{flex:0 0 auto;white-space:nowrap}.a4-stage{position:relative;overflow:hidden;margin:0 auto}.a4-stage>*{width:794px!important;max-width:none!important;min-width:794px!important;flex:none!important;margin:0!important}@media print{.a4-stage>*{width:794px!important;min-width:0!important;max-width:none!important}}.po-tax-hint{display:block;margin-top:.2rem;font-size:.68rem;line-height:1.35;color:#8b7462}.po-qty-limit{display:block;margin-top:.2rem;font-size:.68rem;line-height:1.35;color:#a25d36;font-weight:600}.po-qty-limit.po-qty-excede{color:#b3261e}.po-contact-block{display:flex;flex-direction:column;gap:.5rem}.project-order-register-actions{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end;align-items:center}.rev-modal,.rev-history-modal{width:min(820px,100%)!important;max-width:820px!important}.rev-intro{margin:0 0 1rem;color:#7d6553;font-size:.84rem;line-height:1.5}.rev-block{border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem 1rem;margin:0 0 .9rem}.rev-block legend{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a25d36;padding:0 .35rem}.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.6rem}.rev-grid .field span{display:block;font-size:.72rem;color:#8b7462;margin-bottom:.2rem}.rev-grid input,.rev-grid select{width:100%;box-sizing:border-box;padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem;color:#5f4638}.rev-items{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.6rem}.rev-item{display:grid;grid-template-columns:minmax(0,2fr) 80px 110px 110px auto;gap:.4rem;align-items:center}.rev-item input,.rev-item select{padding:.45rem .5rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem;color:#5f4638;min-width:0}.rev-item-remove{padding:.3rem .45rem}.rev-item-remove .ui-icon{width:15px;height:15px}.rev-total{margin:.7rem 0 0;text-align:right;font-size:.9rem;color:#5f4638}.rev-reason{width:100%;box-sizing:border-box;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:.85rem;line-height:1.5;color:#5f4638;resize:vertical}.rev-error{margin:.6rem 0 0;color:#b3261e;font-size:.84rem;font-weight:600}.rev-history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.6rem}.rev-history>li{border:1px solid var(--line);border-radius:10px;padding:.7rem .85rem}.rev-history-head{display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin-bottom:.4rem}.rev-history-head strong{color:#a25d36}.rev-history-head span{font-size:.76rem;color:#8b7462}.rev-history-changes{margin:.2rem 0 .5rem 1rem;padding:0;font-size:.83rem;color:#5f4638;line-height:1.5}.rev-history-reason{margin:0 0 .5rem;font-size:.83rem;color:#5f4638}.rev-history-original{opacity:.85}.invoice-record .ghost,.spec-card-actions .ghost{font-size:.74rem;padding:.3rem .5rem}.spec-card-actions{flex-wrap:wrap;gap:.35rem}.hpg-ts-specification .hpg-ref-revision,.pr-request-section .hpg-ref-revision{margin-bottom:8px}@media(max-width:640px){.rev-item{grid-template-columns:minmax(0,1fr) auto}}.hpg-ref-revision{font-family:'Courier New',monospace;font-size:8px;line-height:1.5;color:#33261b;white-space:normal}.hpg-ref-revision p{margin:0}.hpg-ref-stars{letter-spacing:.5px;overflow:hidden;white-space:nowrap}.hpg-ref-revision-head{font-weight:700;margin-top:3px!important}.hpg-ref-revision-reason{font-style:italic;margin-bottom:3px!important}.hpg-ref-revision-row td{background:#faf6f0;padding:6px 8px!important}.po-contact-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a25d36}.po-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.5rem}.po-contact-grid label{display:flex;flex-direction:column;gap:.2rem;font-size:.72rem;color:#8b7462}.po-contact-grid input{padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem;color:#5f4638;min-width:0}.settings-contact-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.7rem;align-items:end;margin-top:.8rem}.settings-contact-form button{height:fit-content}.po-adjust-block{display:flex;flex-direction:column;gap:.5rem}.po-adjust-title{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a25d36}.po-adjust-list{display:flex;flex-direction:column;gap:.4rem}.po-adjust-block,.po-contact-block{grid-column:1/-1!important;width:100%}.po-adjust-help{margin:0 0 .2rem;color:#8b7462;font-size:.75rem;line-height:1.45}.po-adjust-row{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(150px,1.1fr) minmax(110px,.9fr) auto;gap:.5rem;align-items:end;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;background:#fffdfa}.po-adjust-field{display:flex;flex-direction:column;gap:.2rem;min-width:0}.po-adjust-field>span{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#a25d36}.po-adjust-row input,.po-adjust-row select{width:100%;box-sizing:border-box;padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;font:inherit;font-size:.82rem;color:#5f4638;min-width:0;background:#fff}.po-adjust-remove{padding:.45rem .5rem;align-self:end}.po-adjust-remove .ui-icon{width:15px;height:15px}.po-adjust-add{align-self:flex-start}@media(max-width:700px){.po-adjust-row{grid-template-columns:1fr 1fr}.po-adjust-concept{grid-column:1/-1}.po-adjust-remove{grid-column:1/-1;justify-self:end}}.po-pdf-modal,.spec-preview-modal,.invoice-preview-modal,.po-preview-modal{width:min(858px,100%)!important;max-width:858px!important}.po-pdf-modal .modal-body,.spec-preview-modal .modal-body,.invoice-preview-modal .modal-body,.po-preview-modal .modal-body{padding-left:1rem;padding-right:1rem}@media print{.a4-stage{width:auto!important;height:auto!important;overflow:visible!important}.a4-stage>*{transform:none!important}}

/* OC Drafts */
.draft-modal{max-width:560px}.drafts-list{display:grid;gap:.7rem}.draft-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:1px solid var(--line);border-radius:10px;background:#faf7f2}.draft-card-info{display:grid;gap:.15rem}.draft-card-info strong{font-size:.85rem}.draft-card-info small{font-size:.72rem;color:var(--muted)}.draft-card-actions{display:flex;gap:.4rem;flex-shrink:0}.draft-label{display:inline-block;background:#fdf0d5;color:#bd811b;border-radius:6px;padding:.2rem .5rem;font-size:.68rem;font-weight:700;letter-spacing:.03em}.draft-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:9px;background:#b8862f;color:#fff;font-size:.65rem;font-weight:700;margin-left:.4rem;padding:0 5px}

/* Section divider golden line */
.section-divider{border:none;border-top:2px solid #c9a84c;margin:3rem 0}
.project-management-section{padding-top:.5rem}.project-management-section>.section-head{margin-bottom:1.5rem}
.project-management-subsection{padding-bottom:1rem}
.project-invoice-section{padding-top:.5rem}
.project-reports-section{padding-top:.5rem}

/* Keep the section titles visually balanced with their preceding divider. */
.section-divider{margin:1.5rem 0 1rem}
.section-divider+.project-invoice-section,.section-divider+.project-reports-section{margin-top:0!important;padding-top:0}

/* Compact the first project-management block beneath its divider. */
.project-detail-redesign>.section-divider:has(+.project-management-section){margin-bottom:0}
.project-detail-redesign>.section-divider+.project-management-section{margin-top:-.5rem!important;padding-top:0}
.project-management-section>.section-head{margin-bottom:.3rem}
.project-management-section>.project-specs-subsection{margin-top:0;padding-top:0}
.project-management-section>.project-specs-subsection>.section-head{margin-bottom:.65rem}

/* Drafts section (separate from tracking) */
.project-drafts-section{margin-top:1.2rem}.project-drafts-list{display:grid;gap:.6rem}

/* Section head actions (buttons side by side) */
.section-head-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

/* Project OC filters */
.project-oc-filters{display:flex;gap:.4rem;margin-top:.8rem;flex-wrap:wrap}.project-oc-filters button{display:inline-flex;align-items:center;gap:.35rem;border:1px solid var(--line);border-radius:8px;padding:.4rem .8rem;background:#fff;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s}.project-oc-filters button.active{background:#f5ead4;border-color:#c9a84c;color:#8b6914}.project-oc-filters button i{width:8px;height:8px;border-radius:50%;display:inline-block}.project-oc-filters .dot-approved{background:#2a7d2a}.project-oc-filters .dot-cancelled{background:#c44}.project-oc-filters .dot-pending{background:#bd811b}

/* Void order warning */
.void-warning{font-size:.82rem;color:var(--muted);margin-top:.5rem}

/* Status cancelled in order table */
.status-cancelled{background:#fde8e8;color:#c44}
.void-reason-cell{font-size:.75rem;color:#8b6914;max-width:180px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:none;cursor:pointer;text-decoration:underline;text-align:left;padding:0}.void-reason-cell:hover{color:#6b5010}
.input-error{border-color:#c44!important;box-shadow:0 0 0 2px #c4441a}

/* Purchase order: match the visual hierarchy of the approved HPG document. */
.hpg-po{font-family:"Times New Roman",Times,serif!important;color:#3d3028}
.hpg-po .po-logo{width:170px!important;height:auto!important;object-fit:contain}
.hpg-project-reference{margin-top:.45em;color:#9c7a3c;font-size:7px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hpg-items td:nth-child(2){width:16%;padding:.4em;text-align:center}
.hpg-item-image{display:block;width:100%;max-height:78px;object-fit:contain}
.hpg-item-name,.hpg-item-dimensions,.hpg-item-material{display:block}
.hpg-item-name{font-size:8px;font-weight:700;line-height:1.25}
.hpg-item-dimensions,.hpg-item-material{margin-top:.16em;font-size:6.5px;line-height:1.25;color:#75675c}
.hpg-section{display:block;border-bottom:1px solid rgba(83,70,60,.34);padding-bottom:.35em;margin-bottom:.65em}
.hpg-subtotal-line{display:flex!important;margin-top:0;padding:.65em .5em .5em;border-bottom:1px solid rgba(83,70,60,.22)}
.hpg-tc-grid{gap:0 2em}
.hpg-tc-item{padding:.45em 0;border-bottom:1px solid rgba(83,70,60,.22)}
.hpg-tc-item span{border-bottom:0;min-height:0;margin-top:.12em}
.hpg-tc-item strong{color:#9c7a3c}
.hpg-footer,.hpg-divider{border-color:rgba(83,70,60,.22)}
.assignee-multi-wrap{position:relative}
.assignee-dropdown-toggle{width:100%;padding:.55rem .7rem;border:1px solid #d0d0d0;border-radius:8px;background:#fff;text-align:left;font-size:.85rem;color:#555;cursor:pointer}
.assignee-dropdown-toggle:hover{border-color:#aaa}
.assignee-dropdown-body{position:absolute;top:100%;left:0;right:0;z-index:50;border:1px solid #d0d0d0;border-radius:8px;padding:.5rem;max-height:180px;overflow-y:auto;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.12);margin-top:2px}
.assignee-select-all-label{display:flex;align-items:center;gap:.5rem;padding:.3rem .2rem;border-bottom:1px solid #e0e0e0;margin-bottom:.3rem;cursor:pointer;font-size:.85rem}
.assignee-checkbox-list{display:flex;flex-direction:column;gap:.15rem}
.assignee-check-option{display:flex;align-items:center;gap:.5rem;padding:.25rem .2rem;border-radius:4px;cursor:pointer;font-size:.85rem}
.assignee-check-option:hover{background:#eef3ff}
.assignee-check-option input,.assignee-select-all-label input{width:16px;height:16px;flex-shrink:0}
.team-assignee-list{display:flex;flex-direction:column;gap:.25rem}
.team-assignee-list .team-assignee{padding:.1rem 0}
.deadline-alert-banner{display:flex;gap:.8rem;padding:1rem 1.2rem;border:1px solid #e8a838;border-radius:10px;background:linear-gradient(135deg,#fff8ed,#fff3dc);margin-bottom:.5rem}
.deadline-alert-icon{font-size:1.5rem;flex-shrink:0;line-height:1.3}
.deadline-alert-banner strong{color:#8a5c0e;font-size:.9rem}
.deadline-alert-banner ul{margin:.4rem 0 0;padding-left:1.2rem;font-size:.82rem;color:#5a3e0a}
.deadline-alert-banner li{margin-bottom:.2rem}
.deadline-alert-banner li small{color:#9a7a3a;margin-left:.3rem}
.void-info-inline{font-size:.72rem;color:#c44;display:block;margin-top:.2rem}
.inline-edit-field{border:1px solid var(--line);border-radius:6px;padding:.25rem .4rem;font-size:.82rem;font-weight:700;background:#faf8f5;width:120px;transition:border-color .15s}.inline-edit-field:focus{border-color:#c9a84c;outline:none}

/* Project disabled toggle */
.project-active{cursor:pointer;transition:background .15s,border-color .15s}.project-active:hover{opacity:.85}
.project-active.project-disabled{background:#f0f0f0;color:#888;border-color:#ccc}
.project-active.project-disabled i{background:#aaa}

/* Disabled project card on home */
.project-card-disabled{opacity:.55}.project-card-standby{opacity:.75}
.project-status-active i{background:#2a7d2a}.project-status-standby{background:#fff3cd;color:#7a5d0b;border-color:#dbc06e}.project-status-standby i{background:#bd811b}.project-status-disabled{background:#f0f0f0;color:#888;border-color:#ccc}.project-status-disabled i{background:#aaa}
.project-status-options{display:flex;flex-direction:column;gap:.5rem}.project-status-option{display:flex;flex-direction:column;gap:.2rem;padding:.7rem;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;text-align:left;transition:background .15s}.project-status-option:hover{background:#f5ead4}.project-status-option strong{font-size:.85rem}.project-status-option small{font-size:.75rem;color:var(--muted)}
.project-status-option-disabled:hover{background:#fde8e8}.project-status-option-standby:hover{background:#fff3cd}
.section-head>.project-filter-wrap{margin-left:auto}.project-filter-wrap{position:relative;display:inline-flex;margin-right:.4rem}
.project-filter-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;transition:background .15s}.project-filter-icon-btn:hover{background:#f5ead4}
.project-status-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:10;display:flex;flex-direction:column;gap:.2rem;padding:.4rem;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 6px 18px #35251d14;min-width:160px}
.project-status-dropdown button{display:block;width:100%;text-align:left;border:none;border-radius:6px;padding:.45rem .7rem;background:transparent;font-size:.78rem;font-weight:600;cursor:pointer;transition:background .15s}.project-status-dropdown button:hover{background:#f5ead4}.project-status-dropdown button.active{background:#f5ead4;color:#8b6914}

/* Unified and responsive purchase-order register in project details. */
.project-purchase-subsection>.section-head .section-head-actions{margin-left:auto}
.project-purchase-subsection [data-action="view-drafts"]{display:none!important}
.project-purchase-subsection>.tracking-manager,.project-purchase-subsection>.project-drafts-section,.project-purchase-subsection>.project-order-register{display:none!important}
.project-orders-unified{display:grid;gap:.75rem;width:100%;min-width:0;margin-top:1rem}
.project-order-card{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(150px,.65fr) minmax(190px,.8fr);align-items:start;gap:.85rem 1.1rem;width:100%;min-width:0;padding:1rem;border:1px solid #eadfd5;border-left:4px solid #bd8b2b;border-radius:11px;background:#fffdfa;box-sizing:border-box;overflow:hidden;box-shadow:0 5px 16px rgba(53,37,29,.035)}
.project-order-card[hidden]{display:none!important}
.project-order-identity,.project-order-state,.project-order-editor{display:grid;align-content:start;gap:.28rem;min-width:0}
.project-order-field-label{color:var(--muted);font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-order-identity strong,.project-order-identity span,.project-order-editor span{max-width:100%;overflow-wrap:anywhere}
.project-order-number{display:block;color:var(--brown);font-size:1.02rem;font-weight:800;letter-spacing:.02em;line-height:1.25}.project-order-tracking{display:flex!important;align-items:center;gap:.45rem;color:var(--brown)!important;font-size:.88rem!important;letter-spacing:.025em}.project-order-po{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.project-order-po .tracking-copy{padding:0;border:0;background:none;color:inherit;cursor:pointer;line-height:0}.project-order-po .tracking-copy svg{width:13px;height:13px}
.project-order-tracking .tracking-copy{position:static;flex:0 0 auto}
.project-order-po{font-size:.74rem;color:var(--muted)}
.project-order-po b{color:var(--brown)}
.project-order-state .tracking-status{justify-self:start;white-space:normal;text-align:left}
.tracking-status-preparation{background:#f5ead4;color:#805b11}.tracking-status-in-transit{background:#e8f0fb;color:#2f6193}.tracking-status-out-for-delivery{background:#efe9f8;color:#684798}.tracking-status-delivered{background:#e7f3e7;color:#28702c}.tracking-status-draft{background:#f6eee0;color:#9a6812}
.project-order-editor>span:last-child{color:var(--brown);font-size:.75rem;line-height:1.45}
.project-order-cancelled{grid-column:1/-1;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .7rem;padding:.58rem .7rem;border-radius:8px;background:#fff0f0;color:#b33;font-size:.73rem;overflow-wrap:anywhere}
.project-order-cancelled span{color:#7d4b4b}
.project-order-reason{border:0;background:transparent;color:#8b6914;font:inherit;font-weight:750;text-decoration:underline;cursor:pointer;padding:0}
.project-order-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:.5rem;min-width:0;padding-top:.15rem}
.project-order-actions .tracking-action-btn,.project-order-actions .tracking-update-btn{max-width:100%;white-space:normal}
.project-order-actions .tracking-update-btn{background:linear-gradient(135deg,#c79735,#986a14)!important;border-color:#986a14!important;color:#fff!important;box-shadow:0 5px 13px rgba(152,106,20,.2)}
.project-order-actions .tracking-update-btn:hover{filter:brightness(.96)}
.project-order-draft{border-left-color:#c9a257;background:#fffcf6}
@media(max-width:920px){.project-order-card{grid-template-columns:minmax(0,1fr) minmax(150px,.65fr)}.project-order-editor{grid-column:1/-1}}
@media(max-width:640px){.project-order-card{grid-template-columns:minmax(0,1fr);padding:.85rem}.project-order-editor,.project-order-cancelled,.project-order-actions{grid-column:1}.project-order-actions>*{flex:1 1 150px;justify-content:center}.project-purchase-subsection>.section-head{align-items:flex-start;gap:.75rem}.project-purchase-subsection>.section-head .section-head-actions{width:100%}.project-purchase-subsection>.section-head .section-head-actions .primary{width:100%;justify-content:center}}

/* Read-only project code for workers and grouped team-objective assignees. */
.project-code-readonly{display:inline-flex;align-items:center;min-height:31px;color:var(--brown);font-size:.82rem;font-weight:750}
.team-assignee-group{position:relative;min-width:185px}.team-assignee-group summary{display:flex;align-items:center;gap:.55rem;list-style:none;cursor:pointer;color:var(--brown)}.team-assignee-group summary::-webkit-details-marker{display:none}
.team-assignee-avatar-stack{display:flex;padding-left:8px}.team-assignee-avatar-stack .user-avatar{margin-left:-8px;border:2px solid #fff;box-sizing:border-box}
.team-assignee-caret{margin-left:auto;transition:transform .15s}.team-assignee-group[open] .team-assignee-caret{transform:rotate(180deg)}
.team-assignee-group-list{position:absolute;z-index:25;top:calc(100% + 7px);left:0;display:grid;gap:.35rem;min-width:240px;padding:.55rem;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 8px 24px rgba(53,37,29,.14)}
.team-assignee-group-member{display:flex;align-items:center;gap:.55rem;padding:.35rem;border-radius:6px}.team-assignee-group-member:hover{background:#faf5ec}.team-assignee-group-member strong,.team-assignee-group-member small{display:block}.team-assignee-group-member small{margin-top:.12rem;color:var(--muted);font-size:.62rem}
.role-team{background:#f2eadc;color:#795b28}.team-update-detail{display:grid;gap:.14rem;min-width:130px}.team-update-detail strong{color:var(--brown);font-size:.68rem}.team-update-detail small{color:var(--muted);font-size:.61rem;white-space:nowrap}
.void-reason-modal{max-width:520px}.void-reason-detail{display:grid;gap:.8rem}.void-reason-detail>div{display:grid;gap:.22rem;padding:.75rem;border:1px solid var(--line);border-radius:8px;background:#fffdf9}.void-reason-detail span{color:var(--muted);font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.void-reason-detail p{margin:0;line-height:1.55;white-space:pre-wrap}.void-reason-detail strong{color:var(--brown)}.void-reason-detail small{color:var(--muted);font-size:.75rem}

/* The expanded assignee list floats outside every table overflow boundary. */
.team-assignee-group[open]{position:relative;z-index:1000}.team-assignee-group[open] .team-assignee-group-list{position:fixed;z-index:10000;max-height:min(320px,calc(100vh - 24px));overflow-y:auto;box-sizing:border-box}
.team-objectives-table tr:has(.team-assignee-group[open]),.team-table-wrap:has(.team-assignee-group[open]){position:relative;z-index:1000}

/* Every modal owns the scroll while the page behind it remains fixed. */
@media screen{
body.vaak-modal-open{overflow:hidden!important}
#modal-root:has(.modal-backdrop){position:fixed;z-index:1000;inset:0;overflow:hidden}
#modal-root .modal-backdrop{overflow:hidden;overscroll-behavior:contain}
#modal-root .modal{display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);overflow:hidden!important}
#modal-root .modal-head,#modal-root .modal-foot{flex:0 0 auto}
#modal-root .modal-body{flex:1 1 auto;min-height:0;overflow-x:auto;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
}

/* Project spec duplication control. */
.spec-duplicate-button{display:inline-grid!important;place-items:center;min-width:40px!important;width:40px;padding:.55rem!important;color:var(--brown)}
.spec-duplicate-button .ui-icon{width:17px;height:17px}

/* Guided high-definition project banner upload. */
.banner-manager-modal{width:min(960px,100%)!important}
.banner-resolution-guide{margin:1rem 0;padding:1rem 1.1rem;border:1px solid #d8b56f;border-radius:12px;background:#fbf4e7;color:var(--ink)}
.banner-resolution-guide>strong{display:block;margin-bottom:.7rem;color:var(--brown);font-size:.9rem}
.banner-resolution-guide>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.banner-resolution-guide span{display:flex;flex-direction:column;gap:.15rem;padding:.65rem;border:1px solid #ead9ba;border-radius:9px;background:#fff;font-size:.78rem}
.banner-resolution-guide b{color:#a46d15;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
.banner-resolution-guide p{margin:.7rem 0 0;color:var(--muted);font-size:.72rem;line-height:1.5}
.banner-upload-field{display:grid;gap:.45rem;margin-top:.8rem!important}
.banner-upload-field input[type=file]{padding:.7rem;border:1px solid #dbc9ae;border-radius:8px;background:#fff}
.banner-crop-editor{margin-top:1rem;padding:1rem;border:1px solid #dcc8a8;border-radius:12px;background:#fffdf9}
.banner-crop-editor[hidden]{display:none!important}
.banner-crop-editor>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.7rem}
.banner-crop-editor>header strong,.banner-crop-editor>header small{display:block;overflow-wrap:anywhere}
.banner-crop-editor>header small{margin-top:.2rem;color:var(--muted);font-size:.68rem}
.banner-crop-editor canvas{display:block;width:100%;height:auto;aspect-ratio:4/1;border:1px solid #d8c8b5;border-radius:9px;background:#35271f;cursor:grab;object-fit:cover;touch-action:none;user-select:none}
.banner-crop-editor canvas.is-dragging{cursor:grabbing}
.banner-quality{flex:0 0 auto;border-radius:999px;padding:.38rem .62rem;font-size:.66rem;font-weight:850}
.banner-quality-ideal{background:#dff1e7;color:#31734f}.banner-quality-acceptable{background:#fbefd2;color:#906317}.banner-quality-low{background:#f9e2df;color:#a44242}
.banner-drag-hint{margin:.55rem 0 0;color:var(--brown);font-size:.72rem;font-weight:750;line-height:1.45}
.banner-quality-note{margin:.35rem 0 .65rem;color:var(--muted);font-size:.72rem;line-height:1.45}
.banner-crop-controls{display:grid;grid-template-columns:minmax(240px,520px);gap:.75rem;margin-top:.8rem}
.banner-crop-controls label{display:grid;gap:.35rem;color:var(--ink);font-size:.7rem;font-weight:800}
.banner-crop-controls input{width:100%;accent-color:#a9761b}
.banner-crop-editor>footer{display:flex;justify-content:flex-end;gap:.65rem;margin-top:1rem}
@media(max-width:700px){.banner-resolution-guide>div,.banner-crop-controls{grid-template-columns:1fr}.banner-crop-editor>header{align-items:flex-start;flex-direction:column}.banner-crop-editor>footer{flex-direction:column-reverse}.banner-crop-editor>footer button{width:100%}}

/* Spec cerrado porque una OC ya consumio toda su cantidad. */
.spec-closed-tag{display:inline-flex;align-items:center;gap:6px;padding:.45rem .65rem;border-radius:8px;background:#eef6ef;color:#2f6b3a;font-size:.68rem;font-weight:800;line-height:1.2}
.spec-closed-tag .ui-icon{width:14px;height:14px}
/* Resumen del pago registrado a mano en el requerimiento. */
.invoice-paid-note{display:block;margin-top:.25rem;color:#2f6b3a;line-height:1.45}

/* Motivo por cada cambio en las revisiones. */
.rev-reasons-list{display:grid;gap:.6rem}
.rev-reason-row{display:grid;gap:.3rem;padding:.55rem .7rem;border:1px solid var(--line,#e5ddd2);border-radius:8px;background:#fcfaf7}
.rev-reason-row>span{font-size:.72rem;font-weight:700;color:var(--ink,#302218);overflow-wrap:anywhere}
.rev-reason-row>input{width:100%}
.rev-reason-row>input.rev-reason-missing{border-color:#b42318;background:#fff5f4}
.rev-reasons-empty{margin:0;color:#8a7b6c;font-size:.72rem}
.rev-history-why{display:block;margin-top:.15rem;color:#6a4d3b;font-size:.72rem}
/* Status del documento en las tarjetas. */
.doc-status{display:block;margin-top:.3rem;color:#6a4d3b;font-size:.68rem;line-height:1.35}
.doc-status b{font-weight:800}
.spec-card-body .doc-status{margin:.35rem 0 .5rem}
.project-order-docstatus{display:grid;gap:.2rem}
.project-order-docstatus>span:last-child{font-size:.74rem;color:#6a4d3b}
/* Montos con simbolo de moneda en la solicitud de pago. */
.money-input{display:flex;align-items:stretch}
.money-input>.money-symbol{display:inline-flex;align-items:center;padding:0 .6rem;border:1px solid var(--line,#e5ddd2);border-right:0;border-radius:8px 0 0 8px;background:#f5efe7;color:#6a4d3b;font-weight:800;font-size:.75rem;white-space:nowrap}
.money-input>input{flex:1;min-width:0;border-radius:0 8px 8px 0!important;text-align:right}
.invoice-oc-alert{display:grid;gap:.3rem;margin:.6rem 0 0;padding:.6rem .8rem;border:1px solid #f1b8b3;border-radius:8px;background:#fff5f4;color:#b42318;font-size:.74rem;font-weight:700}
.invoice-oc-alert[hidden]{display:none}
.client-row-actions{display:inline-flex;gap:.4rem;flex-wrap:wrap}

/* ---------- Campos de monto con separador de miles ---------- */
.money-mask-wrap{position:relative;display:block;flex:1 1 auto;min-width:0;width:100%}
.money-mask-wrap>input{width:100%}
.money-mask{position:absolute;inset:0;display:none;align-items:center;pointer-events:none;white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums}
.money-mask-wrap.is-masked>input{color:transparent!important;-webkit-text-fill-color:transparent}
.money-mask-wrap.is-masked>.money-mask{display:flex}
textarea.auto-grow{resize:vertical;min-height:2.6rem;overflow:hidden;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;field-sizing:content}
.rev-field-wide{grid-column:1 / -1}

/* ---------- Tarjetas de spec y de requerimiento de pago ---------- */
.spec-card-horizontal .spec-card-body.card-v2{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.15rem;min-width:0}
.card-v2-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;min-width:0}
.card-v2-head .spec-card-identity,.card-v2-identity{min-width:0;display:grid;gap:.2rem}
.card-v2-head .spec-card-identity h3{margin:0;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}
.card-v2-head .spec-card-identity .eyebrow{margin:0}
.card-v2 .doc-status{flex-shrink:0;display:inline-flex;align-items:center;gap:.3rem;margin:0;padding:.28rem .6rem;border:1px solid #eadfd5;border-radius:999px;background:#fbf8f3;color:#6a4d3b;font-size:.68rem;line-height:1.2;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.card-v2-identity .doc-status{justify-self:start;margin-top:.25rem}
.card-v2-details{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding:.65rem .8rem;border-radius:8px;background:#faf6f0}
.card-v2-details span{display:grid;gap:.15rem;font-size:.85rem;color:#302218;min-width:0;overflow-wrap:anywhere}
.card-v2-details b{font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#9b7a5b}
.card-v2-actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding-top:.75rem;border-top:1px solid #efe6db}
.card-v2-main,.card-v2-tools{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.card-v2 .spec-card-actions{margin:0;display:flex;grid-template-columns:none}
.card-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:34px;padding:0 .8rem;border:1px solid #e3d7c8;border-radius:8px;background:#fff;color:#4a3426;font:inherit;font-size:.78rem;font-weight:700;line-height:1;white-space:nowrap;cursor:pointer;box-shadow:none;transition:background .15s,border-color .15s,color .15s}
.card-btn .ui-icon{width:16px;height:16px;flex-shrink:0;stroke:currentColor}
.card-btn:hover{background:#faf5ee;border-color:#cdb89c}
.card-btn:focus-visible{outline:2px solid #a9761b;outline-offset:2px}
.card-btn-primary{border-color:#d9bf94;background:#fbf4e8;color:#7a4f14}
.card-btn-primary:hover{background:#f6ead6;border-color:#c9a46a}
.card-btn-danger{width:34px;padding:0;color:#b42318;border-color:#f1d0cb}
.card-btn-danger:hover{background:#fff3f1;border-color:#e7a9a1}
.card-v2 .spec-closed-tag{height:34px;padding:0 .75rem}
.invoice-record.invoice-card-v2{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.15rem;grid-template-columns:none}
.card-v2-identity>strong{font-size:.95rem;color:#302218}
.card-v2-identity>small{color:#8a7b6c;font-size:.75rem}
.card-v2-amount{display:grid;gap:.15rem;text-align:right;flex-shrink:0}
.card-v2-amount span{font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#9b7a5b}
.card-v2-amount strong{font-size:1.05rem;color:#302218;font-variant-numeric:tabular-nums}
.card-v2-note{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .8rem;border-radius:8px;background:#eef6ef;color:#2f5e38;font-size:.76rem;line-height:1.45}
.card-v2-note .ui-icon{width:18px;height:18px;flex-shrink:0;margin-top:.1rem;stroke:currentColor}
.card-v2-note small{display:block;color:#4f7a57}
@media(max-width:700px){
  .card-v2-head{flex-direction:column;gap:.5rem}
  .card-v2-amount{text-align:left}
  .card-v2-details{grid-template-columns:1fr 1fr}
  .card-v2-actions{align-items:stretch}
  .card-v2-main,.card-v2-tools{width:100%}
  .card-v2-main .card-btn,.card-v2-tools .card-btn:not(.card-btn-danger){flex:1 1 auto}
}
/* Las tarjetas nuevas ocupan todo el ancho (reglas antiguas las centraban). */
.spec-card-horizontal .spec-card-body.card-v2,.invoice-record.invoice-card-v2{align-items:stretch;justify-content:flex-start}
.card-v2 .card-btn.spec-duplicate-button{display:inline-flex!important;width:auto;min-width:0!important;padding:0 .8rem!important;color:#4a3426}
.card-v2 .card-btn.spec-duplicate-button .ui-icon{width:16px;height:16px}
.card-v2-note strong{display:inline!important;font-size:inherit}

/* Una sola moneda por OC: las filas siguientes muestran la del primer item. */
.po-currency-locked{pointer-events:none;background:#f5efe7!important;color:#6a4d3b!important;cursor:not-allowed}
.po-currency-alert{display:block;margin-top:.35rem;color:#b42318;font-size:.72rem;font-weight:700;line-height:1.35}
.po-currency-alert[hidden]{display:none}

/* Eliminar proyecto: que se ve afectado y errores con motivo. */
.delete-project-scope{margin:.6rem 0 .9rem;padding:.7rem .9rem;border:1px solid #f1c9c4;border-radius:8px;background:#fff7f6;color:#5c2a24;font-size:.8rem}
.delete-project-scope p{margin:0 0 .35rem}
.delete-project-scope ul{margin:0 0 .35rem;padding-left:1.1rem;display:grid;gap:.15rem}
.delete-project-clients{font-weight:700}
.delete-project-warning{margin:.35rem 0 0!important;color:#b42318;font-weight:800;font-size:.76rem}
.delete-project-error{margin:.6rem 0 0;padding:.55rem .75rem;border:1px solid #f1b8b3;border-radius:8px;background:#fff5f4;color:#b42318;font-size:.78rem;font-weight:700;line-height:1.4}
.delete-project-error[hidden]{display:none}
.btn-spinner{display:inline-block;width:.9em;height:.9em;margin-right:.35rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-.12em;animation:vaak-giro .7s linear infinite}
@keyframes vaak-giro{to{transform:rotate(360deg)}}
