.project-detail-page,.erp-shell-aside,.pd-shell{--pd-primary:#185fa5;--pd-primary-tint:#e6f1fb;--pd-primary-tint-text:#0c447c;--pd-amber-tint:#faeeda;--pd-amber-text:#633806;--pd-bar-todo:#888780;--pd-bar-progress:#378add;--pd-bar-review:#ef9f27;--pd-bar-done:#1d9e75;--color-background-primary:rgb(var(--background));--color-background-secondary:rgb(var(--surface-hover));--color-background-surface:rgb(var(--surface));--color-text-primary:rgb(var(--text-primary));--color-text-secondary:rgb(var(--text-secondary));--color-text-tertiary:rgb(var(--text-muted));--color-border-default:rgb(var(--border));--color-border-subtle:rgb(var(--border-subtle));--pd-rail-width:52px;--pd-panel-width:200px;--pd-topbar-height:44px}html.dark .project-detail-page,html.dark .pd-shell,html[data-theme=dark] .project-detail-page,html[data-theme=dark] .pd-shell{--pd-primary:#60a5fa;--pd-primary-tint:#1e3a5f8c;--pd-primary-tint-text:#bfdbfe;--pd-amber-tint:#63380666;--pd-amber-text:#fcd34d}.erp-shell-body--project-detail{grid-template-columns:minmax(0,1fr)}.erp-shell-body--project-detail .erp-shell-aside{display:none}.erp-shell-body--project-detail .erp-shell-main{grid-column:1}.erp-shell-main--project-detail{max-width:none;padding:0}.erp-shell-header--project-detail{height:var(--pd-topbar-height);min-height:var(--pd-topbar-height);box-shadow:none;border-bottom:1px solid var(--color-border-default)}.erp-shell-header--project-detail .header-search-input{background:var(--color-background-secondary);box-shadow:none}.erp-shell-header--project-detail .shell-search-wrap{box-shadow:none}.erp-shell-header--project-detail .shell-header-title,.erp-shell-header--project-detail .shell-sidebar-toggle{display:none}.pd-shell{min-height:calc(100vh - var(--shell-header-height));background:var(--color-background-surface);width:100%;display:flex}.pd-shell__main{background:var(--color-background-surface);flex-direction:column;flex:1;min-width:0;display:flex}.pd-app-rail{width:var(--pd-rail-width);border-right:1px solid var(--color-border-subtle);background:var(--color-background-surface);flex-direction:column;flex-shrink:0;align-items:center;padding:.5rem 0;display:flex}.pd-app-rail__logo{color:#fff;background:var(--pd-primary);border-radius:.375rem;justify-content:center;align-items:center;width:2rem;height:2rem;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:flex}.pd-app-rail__nav{flex-direction:column;flex:1;gap:.25rem;display:flex}.pd-app-rail__footer{flex-direction:column;gap:.25rem;margin-top:auto;display:flex}.pd-app-rail__btn{width:36px;height:36px;color:var(--color-text-secondary);background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.pd-app-rail__btn:hover{background:var(--color-background-secondary)}.pd-app-rail__btn--active{background:var(--pd-primary-tint);color:var(--pd-primary)}.pd-nav-panel{width:var(--pd-panel-width);border-right:1px solid var(--color-border-subtle);background:var(--color-background-surface);flex-direction:column;flex-shrink:0;display:flex}.pd-nav-panel__head{border-bottom:1px solid var(--color-border-subtle);padding:.75rem .75rem .5rem}.pd-nav-panel__project{color:var(--color-text-primary);margin:0;font-size:.6875rem;font-weight:600;line-height:1.3}.pd-nav-panel__org{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.625rem;line-height:1.35}.pd-nav-panel__scroll{flex:1;padding:.375rem .5rem .75rem;overflow-y:auto}.pd-nav-panel__section{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);margin:.625rem .375rem .25rem;font-size:.625rem;font-weight:600}.pd-nav-panel__item{width:100%;color:var(--color-text-secondary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:0 .375rem .375rem 0;align-items:center;gap:.5rem;margin-bottom:1px;padding:.375rem .5rem;font-size:.6875rem;line-height:1.35;text-decoration:none;display:flex}.pd-nav-panel__item:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.pd-nav-panel__item--active{background:var(--pd-primary-tint);color:var(--pd-primary-tint-text);border-left:2px solid var(--pd-primary);padding-left:calc(.5rem - 2px);font-weight:600}.pd-nav-panel__item--wp{padding-left:.625rem}.pd-nav-panel__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.pd-header-zone{border-bottom:1px solid var(--color-border-default);background:var(--color-background-surface)}.pd-header{grid-template-columns:1fr auto;align-items:start;gap:.75rem 1.5rem;padding:1rem 1.25rem .75rem;display:grid}.pd-header__title-block{min-width:0}.pd-header__title{color:var(--color-text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.pd-header__subtitle{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.6875rem;line-height:1.4}.pd-header__badges{flex-wrap:wrap;gap:.375rem;margin-top:.5rem;display:flex}.pd-header__actions{flex-wrap:wrap;justify-content:flex-end;align-self:start;gap:.375rem;display:flex}.pd-badge{border:none;border-radius:9999px;align-items:center;gap:.25rem;padding:.125rem .5rem;font-size:.625rem;font-weight:600;display:inline-flex}.pd-badge--status{background:var(--pd-primary-tint);color:var(--pd-primary-tint-text)}.pd-badge--category{background:var(--pd-amber-tint);color:var(--pd-amber-text)}.pd-badge--meta{background:var(--color-background-secondary);color:var(--color-text-secondary);font-weight:500}.pd-btn{border:1px solid var(--color-border-default);background:var(--color-background-surface);color:var(--color-text-primary);cursor:pointer;border-radius:.375rem;align-items:center;gap:.25rem;padding:.3125rem .625rem;font-size:.6875rem;font-weight:500;display:inline-flex}.pd-btn:hover{background:var(--color-background-secondary)}.pd-btn--primary{border-color:var(--pd-primary);background:var(--pd-primary);color:#fff}.pd-btn--primary:hover{filter:brightness(.95)}.pd-metrics{border-top:1px solid var(--color-border-subtle);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.pd-metrics__cell{border-right:1px solid var(--color-border-subtle);padding:.625rem .875rem}.pd-metrics__cell:last-child{border-right:none}.pd-metrics__label{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-tertiary);align-items:center;gap:.25rem;margin-bottom:.25rem;font-size:.625rem;font-weight:600;display:flex}.pd-metrics__value{color:var(--color-text-primary);font-size:1.0625rem;font-weight:700;line-height:1.2}.pd-metrics__sub{color:var(--color-text-tertiary);margin-top:.125rem;font-size:.625rem}.pd-metrics__bar{background:var(--color-border-subtle);width:100%;height:2px;margin-top:.375rem}.pd-metrics__bar-fill{background:var(--pd-bar-progress);height:100%}.pd-tab-pane{background:var(--color-background-primary);flex:1;padding:1rem 1.25rem}.pd-board{background:var(--color-background-primary);flex-direction:column;flex:1;min-height:0;padding:.75rem 1rem 1rem;display:flex}.pd-board-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.pd-board-toolbar__left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.pd-tab-switcher{background:var(--color-background-secondary);border-radius:9999px;gap:2px;padding:2px;display:inline-flex}.pd-tab-switcher__btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9999px;align-items:center;gap:.25rem;padding:.25rem .625rem;font-size:.6875rem;font-weight:500;display:inline-flex}.pd-tab-switcher__btn--active{background:var(--color-background-surface);border-color:var(--color-border-default);color:var(--color-text-primary)}.pd-board-summary{color:var(--color-text-tertiary);font-size:.6875rem}.pd-board-toolbar__right{align-items:center;gap:.375rem;display:flex}.pd-filter-btn{border:1px solid var(--color-border-default);background:var(--color-background-surface);color:var(--color-text-secondary);cursor:pointer;border-radius:.375rem;padding:.3125rem .625rem;font-size:.6875rem}.pd-add-task-btn{background:var(--pd-primary);color:#fff;cursor:pointer;border:none;border-radius:.375rem;padding:.3125rem .75rem;font-size:.6875rem;font-weight:600}.pd-kanban{flex:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem;min-height:280px;display:grid}.pd-kanban-col{flex-direction:column;min-width:0;min-height:200px;display:flex}.pd-kanban-col__head{background:var(--color-background-surface);border:1px solid var(--color-border-subtle);border-bottom:none;border-radius:.375rem .375rem 0 0;justify-content:space-between;align-items:center;padding:.5rem .625rem;display:flex}.pd-kanban-col__head-inner{align-items:center;gap:.375rem;min-width:0;display:flex}.pd-kanban-col__accent{border-radius:1px;flex-shrink:0;width:3px;height:1rem}.pd-kanban-col__name{color:var(--color-text-primary);font-size:.6875rem;font-weight:600}.pd-kanban-col__count{color:var(--color-text-tertiary);font-size:.625rem}.pd-kanban-col__body{background:var(--color-background-primary);border:1px solid var(--color-border-subtle);border-top:none;border-radius:0 0 .375rem .375rem;flex-direction:column;flex:1;gap:.375rem;padding:.375rem;display:flex}.pd-kanban-empty{color:var(--color-text-tertiary);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.375rem;padding:1.5rem .5rem;font-size:.6875rem;display:flex}.pd-kanban-empty__icon{border:1px dashed var(--color-border-default);border-radius:50%;width:2rem;height:2rem}.pd-task-card{background:var(--color-background-surface);border:.5px solid var(--color-border-default);border-radius:.375rem;padding:.5rem .625rem}.pd-task-card--done{opacity:.55}.pd-task-card__name{color:var(--color-text-primary);margin:0 0 .25rem;font-size:.6875rem;font-weight:600;line-height:1.35}.pd-task-card__name--done{text-decoration:line-through}.pd-task-card__wp{color:var(--color-text-tertiary);align-items:center;gap:.25rem;margin-bottom:.375rem;font-size:.625rem;display:flex}.pd-task-card__boq-badge{color:#633806;cursor:pointer;background:#faeeda;border:.5px solid #fac775;border-radius:10px;align-items:center;margin-bottom:.375rem;padding:1px 6px;font-size:10px;font-weight:500;display:inline-flex}.pd-task-card__footer{justify-content:space-between;align-items:center;gap:.375rem;display:flex}.pd-priority{text-transform:uppercase;letter-spacing:.03em;border-radius:.25rem;padding:.0625rem .3125rem;font-size:.5625rem;font-weight:600}.pd-priority--low{color:#166534;background:#f0fdf4}.pd-priority--medium{background:var(--pd-amber-tint);color:var(--pd-amber-text)}.pd-priority--high,.pd-priority--urgent{color:#991b1b;background:#fef2f2}.pd-task-card__avatar{background:var(--color-background-secondary);width:1.25rem;height:1.25rem;color:var(--color-text-secondary);border:.5px solid var(--color-border-subtle);border-radius:50%;justify-content:center;align-items:center;font-size:.5rem;font-weight:600;display:flex}.pd-task-card__move{border-top:1px solid var(--color-border-subtle);margin-top:.375rem;padding-top:.375rem}.pd-task-card__move-toggle{width:100%;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;padding:0;font-size:.625rem;font-weight:500;display:flex}@media (max-width:1024px){.pd-metrics,.pd-kanban{grid-template-columns:repeat(2,minmax(0,1fr))}}.pd-boq{--pd-green:#1d9e75;--pd-green-tint:#eaf3de;--pd-green-text:#27500a;--pd-red-tint:#fcebeb;--pd-red-text:#791f1f;--pd-pending-fill:#f1efe8;--pd-pending-text:#5f5e5a;--pd-radius-lg:10px;--pd-radius-md:6px;--color-border-secondary:var(--color-border-default);color:var(--color-text-primary);flex-direction:column;gap:1rem;display:flex}.pd-boq-card{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-lg);background:var(--color-background-surface);overflow:hidden}.pd-boq-toolbar{border-bottom:.5px solid var(--color-border-default);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;display:flex}.pd-boq-toolbar__left{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;min-width:0;display:flex}.pd-boq-toolbar__icon{color:var(--pd-primary);flex-shrink:0}.pd-boq-toolbar__title{color:var(--color-text-primary);margin:0;font-size:.875rem;font-weight:600}.pd-boq-toolbar__sync-hint{width:100%;color:var(--color-text-tertiary);margin:0;font-size:.6875rem}.pd-boq-toolbar__right{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pd-boq-summary{border-bottom:.5px solid var(--color-border-default);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.pd-boq-summary__cell{border-right:.5px solid var(--color-border-default);flex-direction:column;gap:.125rem;padding:.75rem 1rem;display:flex}.pd-boq-summary__cell:last-child{border-right:none}.pd-boq-summary__label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-tertiary);font-size:.625rem;font-weight:500}.pd-boq-summary__value{color:var(--color-text-primary);font-size:1.125rem;font-weight:600;line-height:1.2}.pd-boq-summary__sublabel{color:var(--color-text-tertiary);font-size:.6875rem}.pd-boq-filters{border-bottom:.5px solid var(--color-border-subtle);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.625rem 1rem;display:flex}.pd-boq-search{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);min-width:12rem;color:var(--color-text-tertiary);flex:1;align-items:center;gap:.5rem;padding:.375rem .625rem;display:flex}.pd-boq-search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.75rem}.pd-boq-filters select{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);color:var(--color-text-primary);padding:.375rem .625rem;font-size:.75rem}.pd-boq-table-wrap{max-height:560px;overflow:auto}.pd-boq-table{border-collapse:collapse;table-layout:fixed;width:100%}.pd-boq-th{z-index:2;text-transform:uppercase;letter-spacing:.05em;text-align:left;color:var(--color-text-tertiary);background:var(--color-background-secondary);border-bottom:.5px solid var(--color-border-default);padding:.5rem .625rem;font-size:.625rem;font-weight:600;position:sticky;top:0}.pd-boq-th.pd-boq-col-qty,.pd-boq-th.pd-boq-col-unit,.pd-boq-th.pd-boq-col-rate,.pd-boq-th.pd-boq-col-amount,.pd-boq-th.pd-boq-col-progress,.pd-boq-th.pd-boq-col-quotes{text-align:right}.pd-boq-col-sr{width:42px}.pd-boq-col-item{width:auto}.pd-boq-col-qty{width:64px}.pd-boq-col-unit{width:50px}.pd-boq-col-rate,.pd-boq-col-amount{width:80px}.pd-boq-col-progress{width:90px}.pd-boq-col-quotes{width:100px}.pd-boq-row{border-bottom:.5px solid var(--color-border-subtle);transition:background .12s}.pd-boq-row:hover{background:var(--color-background-secondary)}.pd-boq-layout{align-items:stretch;min-height:0;display:flex}.pd-boq-main{flex:1;min-width:0}.pd-boq--drawer-open .pd-boq-main{min-width:0}.pd-boq-row--active{background:var(--pd-primary-tint)}html.dark .pd-boq-row--active,html[data-theme=dark] .pd-boq-row--active{box-shadow:inset 3px 0 0 var(--pd-primary)}.pd-boq-td--sr-active{color:var(--pd-primary);font-weight:600}.pd-boq-row-actions{flex-direction:column;align-items:flex-start;gap:.375rem;margin-top:.25rem;display:flex}.pd-boq-add-task-btn{border-radius:var(--pd-radius-md);border:.5px solid var(--color-border-secondary);background:var(--color-background-secondary);color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:.25rem;padding:5px 11px;font-size:11px;font-weight:500;display:inline-flex}.pd-boq-quotes-btn{border-radius:var(--pd-radius-md);cursor:pointer;align-items:center;gap:.25rem;padding:3px 10px;font-size:11px;font-weight:500;display:inline-flex}.pd-boq-quotes-btn--amber{background:var(--pd-amber-tint);color:var(--pd-amber-text);border:.5px solid #fac775}.pd-boq-quotes-btn--blue{background:var(--pd-primary-tint);color:var(--pd-primary-tint-text);border:.5px solid #b5d4f4}.pd-boq-quote-drawer{border-left:.5px solid var(--color-border-default);background:var(--color-background-surface);flex-direction:column;flex-shrink:0;width:340px;animation:.2s ease-out pd-boq-drawer-in;display:flex}@keyframes pd-boq-drawer-in{0%{opacity:.6;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.pd-boq-quote-drawer__header{border-bottom:.5px solid var(--color-border-default);justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.75rem .875rem;display:flex}.pd-boq-quote-drawer__header h3{color:var(--color-text-primary);margin:0;font-size:.75rem;font-weight:600;line-height:1.35}.pd-boq-quote-drawer__header p{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.6875rem}.pd-boq-quote-drawer__tabs{border-bottom:.5px solid var(--color-border-default);display:flex}.pd-boq-quote-drawer__tab{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:.5rem .75rem;font-size:.6875rem;font-weight:500}.pd-boq-quote-drawer__tab--active{color:var(--pd-primary);border-bottom-color:var(--pd-primary)}.pd-boq-quote-drawer__body{flex:1;min-height:0;overflow-y:auto}.pd-boq-quote-drawer__empty{text-align:center;color:var(--color-text-tertiary);padding:1.25rem .875rem;font-size:.75rem}.pd-boq-quote-cards{flex-direction:column;gap:.5rem;padding:.625rem .75rem .75rem;display:flex}.pd-boq-quote-card{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);padding:.625rem .75rem}.pd-boq-quote-card--approved{background:#eaf3de59;border-color:#27500a26}.pd-boq-quote-card__top{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.pd-boq-quote-card__vendor{color:var(--color-text-primary);font-size:.8125rem;font-weight:600}.pd-boq-quote-card__meta{color:var(--color-text-tertiary);margin-top:.125rem;font-size:.6875rem}.pd-boq-quote-card__rate-row{align-items:center;gap:.375rem;margin-top:.375rem;display:flex}.pd-boq-quote-card__rate{color:var(--color-text-primary);font-size:1.125rem;font-weight:500}.pd-boq-quote-card__details{color:var(--color-text-tertiary);flex-wrap:wrap;gap:.5rem;margin-top:.375rem;font-size:.6875rem;display:flex}.pd-boq-quote-card__details span{align-items:center;gap:.25rem;display:inline-flex}.pd-boq-quote-card__approved-msg{color:var(--pd-green-text);align-items:center;gap:.25rem;margin-top:.5rem;font-size:.6875rem;font-weight:600;display:flex}.pd-boq-quote-card__actions{gap:.375rem;margin-top:.5rem;display:flex}.pd-boq-btn--reject{background:var(--color-background-secondary);color:var(--color-text-tertiary);border-color:var(--color-border-default);padding:.25rem .5rem}.pd-boq-vendor-select{position:relative}.pd-boq-vendor-select__trigger{text-align:left;border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);width:100%;color:var(--color-text-primary);cursor:pointer;justify-content:space-between;align-items:center;gap:.5rem;padding:.375rem .5rem;font-size:.75rem;display:flex}.pd-boq-vendor-select__placeholder{color:var(--color-text-tertiary)}.pd-boq-vendor-select__hint{color:var(--color-text-tertiary);font-size:.625rem}.pd-boq-vendor-select__menu{z-index:20;border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden}.pd-boq-vendor-select__search{border-bottom:.5px solid var(--color-border-subtle);color:var(--color-text-tertiary);align-items:center;gap:.375rem;padding:.375rem .5rem;display:flex}.pd-boq-vendor-select__search input{color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.75rem}.pd-boq-vendor-select__list{max-height:180px;margin:0;padding:0;list-style:none;overflow-y:auto}.pd-boq-vendor-select__option{text-align:left;width:100%;color:var(--color-text-primary);cursor:pointer;background:0 0;border:none;padding:.5rem .625rem;font-size:.6875rem;display:block}.pd-boq-vendor-select__option:hover,.pd-boq-vendor-select__option--active{background:var(--color-background-secondary)}.pd-boq-vendor-select__empty{color:var(--color-text-tertiary);text-align:center;padding:.75rem;font-size:.6875rem}.pd-boq-chevron--open{transform:rotate(180deg)}.pd-boq-quote-drawer__footer-hint{color:var(--color-text-tertiary);border-top:.5px solid var(--color-border-subtle);padding:.5rem .875rem;font-size:.625rem}.pd-boq-td{vertical-align:top;color:var(--color-text-primary);padding:.625rem;font-size:.75rem}.pd-boq-td--num{text-align:right;font-variant-numeric:tabular-nums}.pd-boq-td--muted{color:var(--color-text-tertiary)}.pd-boq-col-quotes .pd-boq-td,.pd-boq-td.pd-boq-col-quotes{text-align:center}.pd-boq-item-cell{flex-direction:column;gap:.375rem;min-width:0;display:flex}.pd-boq-item-desc{color:var(--color-text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.pd-boq-task-pills{flex-wrap:wrap;gap:.25rem;display:flex}.pd-boq-pill{border-radius:var(--pd-radius-md);white-space:nowrap;text-overflow:ellipsis;border:.5px solid #0000;align-items:center;max-width:100%;padding:.125rem .4375rem;font-size:.625rem;font-weight:500;display:inline-flex;overflow:hidden}.pd-boq-pill--progress{background:var(--pd-primary-tint);color:var(--pd-primary-tint-text);border-color:#0c447c1f}.pd-boq-pill--done{background:var(--pd-green-tint);color:var(--pd-green-text);border-color:#27500a1f}.pd-boq-pill--pending{background:var(--pd-pending-fill);color:var(--pd-pending-text)}.pd-boq-pill--add{color:var(--color-text-tertiary);border:.5px dashed var(--color-border-default);cursor:pointer;background:0 0}.pd-boq-pill--quote-approved{background:var(--pd-green-tint);color:var(--pd-green-text)}.pd-boq-pill--quote-rejected{background:var(--pd-red-tint);color:var(--pd-red-text)}.pd-boq-pill--lowest{background:var(--pd-green-tint);color:var(--pd-green-text);padding:.0625rem .375rem;font-size:.5625rem}.pd-boq-quote-line{color:var(--color-text-secondary);margin:0;font-size:.6875rem}.pd-boq-quote-line--empty{color:var(--color-text-tertiary)}.pd-boq-progress-cell{flex-direction:column;align-items:flex-end;gap:.25rem;display:flex}.pd-boq-progress-cell__label{color:var(--color-text-secondary);font-size:.6875rem;font-weight:500}.pd-boq-progress{background:var(--color-border-subtle);border-radius:1px;width:100%;height:2px;overflow:hidden}.pd-boq-progress--summary{max-width:5rem;margin-top:.25rem}.pd-boq-progress__fill{border-radius:1px;height:100%;transition:width .2s}.pd-boq-progress__fill--gray{background:var(--pd-pending-text)}.pd-boq-progress__fill--amber{background:var(--pd-amber-text)}.pd-boq-progress__fill--blue{background:var(--pd-primary)}.pd-boq-progress__fill--green{background:var(--pd-green)}.pd-boq-quotes-cell{flex-direction:column;align-items:center;gap:.25rem;display:flex}.pd-boq-quote-badge{color:var(--color-text-secondary);font-size:.625rem;font-weight:500}.pd-boq-btn{border-radius:var(--pd-radius-md);cursor:pointer;white-space:nowrap;border:.5px solid #0000;justify-content:center;align-items:center;gap:.375rem;padding:.375rem .625rem;font-size:.6875rem;font-weight:500;transition:opacity .12s;display:inline-flex}.pd-boq-btn:disabled{opacity:.5;cursor:not-allowed}.pd-boq-btn--primary{background:var(--pd-primary);color:#fff;border-color:var(--pd-primary)}.pd-boq-btn--outline{background:var(--color-background-surface);color:var(--color-text-primary);border-color:var(--color-border-default)}.pd-boq-btn--amber{background:var(--pd-amber-tint);color:var(--pd-amber-text);border-color:#63380633;width:100%}.pd-boq-btn--approve{background:var(--pd-green-tint);color:var(--pd-green-text);border-color:#27500a33;padding:.25rem .5rem}.pd-boq-btn--ghost{color:var(--color-text-secondary);border-color:var(--color-border-default);background:0 0}.pd-boq-link{color:var(--pd-primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.6875rem;font-weight:500;text-decoration:underline}.pd-boq-link--danger{color:var(--pd-red-text)}.pd-boq-icon-btn{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);width:1.75rem;height:1.75rem;color:var(--color-text-tertiary);cursor:pointer;justify-content:center;align-items:center;display:flex}.pd-boq-table-empty{text-align:center;color:var(--color-text-tertiary);padding:2.5rem 1rem;font-size:.8125rem}.pd-boq-spinner{width:1.25rem;height:1.25rem;color:var(--pd-primary);animation:.8s linear infinite pd-boq-spin}.pd-boq-spinner--inline{width:.875rem;height:.875rem}.pd-boq-spin{animation:.8s linear infinite pd-boq-spin}@keyframes pd-boq-spin{to{transform:rotate(360deg)}}.pd-boq-quote-panel{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-lg);background:var(--color-background-surface);overflow:hidden}.pd-boq-quote-panel__header{border-bottom:.5px solid var(--color-border-default);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;display:flex}.pd-boq-quote-panel__title{color:var(--color-text-primary);margin:0;font-size:.8125rem;font-weight:600}.pd-boq-quote-panel__meta{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.6875rem}.pd-boq-quote-panel__actions{border-bottom:.5px solid var(--color-border-subtle);flex-wrap:wrap;gap:.5rem;padding:.625rem 1rem;display:flex}.pd-boq-quote-list{flex-direction:column;display:flex}.pd-boq-quote-row{border-bottom:.5px solid var(--color-border-subtle);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem 1rem;display:flex}.pd-boq-quote-row--approved{background:#eaf3de59}.pd-boq-quote-row__vendor{color:var(--color-text-primary);font-size:.8125rem;font-weight:600}.pd-boq-quote-row__rate{color:var(--color-text-primary);margin-top:.125rem;font-size:.9375rem;font-weight:500}.pd-boq-quote-row__sub{color:var(--color-text-tertiary);flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:.25rem;font-size:.6875rem;display:flex}.pd-boq-quote-row__side{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.375rem;display:flex}.pd-boq-quote-row__actions{align-items:center;gap:.5rem;display:flex}.pd-boq-approved-label{color:var(--pd-green-text);align-items:center;gap:.25rem;font-size:.6875rem;font-weight:600;display:inline-flex}.pd-boq-quote-panel__loading,.pd-boq-quote-panel__empty{text-align:center;color:var(--color-text-tertiary);padding:1.5rem 1rem;font-size:.75rem}.pd-boq-quote-form{flex-direction:column;gap:.625rem;padding:1rem;display:flex}.pd-boq-quote-form__title{margin:0 0 .25rem;font-size:.8125rem;font-weight:600}.pd-boq-field{color:var(--color-text-secondary);flex-direction:column;gap:.25rem;font-size:.6875rem;display:flex}.pd-boq-field input,.pd-boq-field textarea{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);color:var(--color-text-primary);padding:.375rem .5rem;font-size:.75rem}.pd-boq-file-upload{color:var(--color-text-secondary);border:.5px dashed var(--color-border-secondary);border-radius:var(--pd-radius-md);background:var(--color-background-secondary);cursor:pointer;align-items:center;gap:.375rem;padding:.4375rem .5rem;font-size:.75rem;display:flex}.pd-boq-file-upload:hover{border-color:var(--pd-primary);color:var(--color-text-primary)}.pd-boq-file-upload__input{display:none}.pd-boq-file-upload__hint{color:var(--color-text-tertiary);margin:.25rem 0 0;font-size:.625rem}.pd-boq-file-upload__error{color:#b91c1c;margin:.25rem 0 0;font-size:.625rem}.pd-boq-quote-card__attachment{color:var(--pd-primary);align-items:center;gap:.25rem;margin-top:.25rem;font-size:.6875rem;font-weight:500;text-decoration:none;display:inline-flex}.pd-boq-quote-card__attachment:hover{text-decoration:underline}.pd-boq-quote-form__footer{gap:.5rem;margin-top:.25rem;display:flex}.pd-boq-alert{border-radius:var(--pd-radius-md);border:.5px solid var(--color-border-default);margin:0 1rem;padding:.5rem .625rem;font-size:.75rem}.pd-boq-alert--error{background:var(--pd-red-tint);color:var(--pd-red-text)}.pd-boq-alert--success{background:var(--pd-green-tint);color:var(--pd-green-text)}.pd-boq-toast{z-index:100;border-radius:var(--pd-radius-md);border:.5px solid var(--color-border-default);padding:.625rem .875rem;font-size:.75rem;position:fixed;top:1rem;right:1rem}.pd-boq-toast--success{background:var(--pd-green-tint);color:var(--pd-green-text)}.pd-boq-toast--error{background:var(--pd-red-tint);color:var(--pd-red-text)}.pd-boq-search-bar{border-bottom:.5px solid var(--color-border-subtle);background:var(--pd-amber-tint);color:var(--color-text-tertiary);align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.pd-boq-search-bar input{color:var(--color-text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.75rem}.pd-boq-list{flex-direction:column;display:flex}.pd-boq-item{border-bottom:.5px solid var(--color-border-subtle);padding:.75rem 1rem;transition:background .12s}.pd-boq-item--active{background:var(--pd-primary-tint)}html.dark .pd-boq-item--active,html[data-theme=dark] .pd-boq-item--active{box-shadow:inset 3px 0 0 var(--pd-primary)}html.dark .pd-boq-item--active .pd-boq-add-task-btn,html[data-theme=dark] .pd-boq-item--active .pd-boq-add-task-btn{background:rgb(var(--surface-hover));color:rgb(var(--text-primary));border-color:rgb(var(--border))}html.dark .pd-boq-item--active .pd-boq-quotes-btn--blue,html[data-theme=dark] .pd-boq-item--active .pd-boq-quotes-btn--blue{color:#bfdbfe;background:#254178;border-color:#3b82f699}html.dark .pd-boq-item--active .pd-boq-quotes-btn--amber,html[data-theme=dark] .pd-boq-item--active .pd-boq-quotes-btn--amber{color:#fcd34d;background:#63380673;border-color:#fac77573}.pd-boq-item__main{align-items:flex-start;gap:.5rem;min-width:0;display:flex}.pd-boq-item__sr{width:18px;color:var(--color-text-tertiary);flex-shrink:0;font-size:.75rem;font-weight:500;line-height:1.4}.pd-boq-item__sr--active{color:var(--pd-primary);font-weight:600}.pd-boq-item__desc{min-width:0;color:var(--color-text-primary);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin:0;font-size:.75rem;line-height:1.4;display:-webkit-box;overflow:hidden}.pd-boq-item__metrics{color:var(--color-text-secondary);flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.125rem;min-width:4.5rem;font-size:.6875rem;display:flex}.pd-boq-item__rate{color:var(--color-text-primary);font-weight:500}.pd-boq-item__rate--muted{color:var(--color-text-tertiary);font-weight:400}.pd-boq-item__actions{flex-direction:column;gap:.375rem;margin-top:.5rem;margin-left:28px;display:flex}.pd-boq-item__action-btns{flex-wrap:wrap;gap:.375rem;display:flex}.pd-boq-item__task-pills{flex-wrap:wrap;gap:.25rem;display:flex}.pd-boq-item__no-quotes{color:var(--color-text-tertiary);margin:0;font-size:.6875rem}.pd-boq-item__rate-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pd-boq-rate-badge{border-radius:var(--pd-radius-md);background:var(--pd-green-tint);color:var(--pd-green-text);align-items:center;gap:.25rem;padding:.125rem .4375rem;font-size:.6875rem;font-weight:500;display:inline-flex}.pd-boq-item__amount{color:var(--color-text-tertiary);font-size:.6875rem}.pd-boq-list-empty{text-align:center;color:var(--color-text-tertiary);padding:2.5rem 1rem;font-size:.8125rem}.pd-boq-readonly-field{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-secondary);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;padding:.375rem .5rem;font-size:.75rem;overflow:hidden}.pd-boq-field select{border:.5px solid var(--color-border-default);border-radius:var(--pd-radius-md);background:var(--color-background-surface);color:var(--color-text-primary);padding:.375rem .5rem;font-size:.75rem}.pd-boq-task-drawer{border-left:.5px solid var(--color-border-default);background:var(--color-background-surface);flex-direction:column;flex-shrink:0;width:340px;animation:.2s ease-out pd-boq-drawer-in;display:flex}.pd-boq-task-drawer__header{border-bottom:.5px solid var(--color-border-default);justify-content:space-between;align-items:center;padding:.75rem .875rem;display:flex}.pd-boq-task-drawer__header h3{margin:0;font-size:.8125rem;font-weight:600}.pd-boq-task-drawer__body{flex-direction:column;flex:1;gap:.625rem;padding:.75rem .875rem;display:flex;overflow-y:auto}.pd-boq-task-drawer__footer{border-top:.5px solid var(--color-border-default);gap:.5rem;padding:.75rem .875rem;display:flex}@media (max-width:900px){.pd-boq-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.pd-boq-summary__cell:nth-child(2){border-right:none}.pd-boq-summary__cell:nth-child(3),.pd-boq-summary__cell:nth-child(4){border-top:.5px solid var(--color-border-default)}}@media (max-width:768px){.pd-boq-layout{flex-direction:column;position:relative}.pd-boq-toolbar{flex-direction:column;align-items:stretch}.pd-boq-toolbar__sync-hint{order:3}.pd-boq-quote-drawer,.pd-boq-task-drawer{z-index:60;border-left:none;border-top:.5px solid var(--color-border-default);border-radius:var(--pd-radius-lg) var(--pd-radius-lg) 0 0;width:100%;max-height:92vh;animation:.25s ease-out pd-boq-drawer-mobile-in;position:fixed;inset:auto 0 0}@keyframes pd-boq-drawer-mobile-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pd-boq-item__main{flex-wrap:wrap}.pd-boq-item__desc{flex:100%;width:100%}.pd-boq-item__metrics{flex-direction:row;flex:100%;justify-content:flex-end;gap:.5rem;width:100%;margin-top:.25rem}.pd-boq-item__actions{margin-left:0}.pd-boq-item__action-btns{flex-direction:column;align-items:stretch}.pd-boq-add-task-btn,.pd-boq-quotes-btn{justify-content:center;width:100%}}.pd-task-drawer-backdrop{z-index:60;background:#00000040;position:fixed;inset:0}.pd-task-drawer{z-index:61;background:var(--color-background-surface,#fff);border-left:.5px solid var(--color-border-default);flex-direction:column;width:min(400px,100vw);height:100vh;display:flex;position:fixed;top:0;right:0;box-shadow:-4px 0 24px #00000014}.pd-task-drawer__header{border-bottom:.5px solid var(--color-border-default);justify-content:space-between;align-items:center;gap:.5rem;padding:.875rem 1rem;display:flex}.pd-task-drawer__header h2{color:var(--color-text-primary);margin:0;font-size:.875rem;font-weight:600}.pd-task-drawer__alert{margin:.5rem 1rem 0}.pd-task-drawer__body{flex-direction:column;flex:1;gap:.875rem;padding:1rem;display:flex;overflow-y:auto}.pd-task-drawer__loading{color:var(--color-text-tertiary);margin:0;font-size:.8125rem}.pd-task-drawer__boq-pill{color:var(--color-text-secondary);background:var(--color-background-secondary,#f3f4f6);border-radius:var(--pd-radius-md,6px);border:.5px solid var(--color-border-subtle);align-items:center;padding:.375rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.pd-task-drawer__field{flex-direction:column;gap:.25rem;display:flex}.pd-task-drawer__field>span{color:var(--color-text-secondary);font-size:.6875rem;font-weight:500}.pd-task-drawer__field input,.pd-task-drawer__field select,.pd-task-drawer__field textarea{border:.5px solid var(--color-border-secondary);border-radius:var(--pd-radius-md,6px);background:var(--color-background-surface);width:100%;color:var(--color-text-primary);padding:.4375rem .5rem;font-size:.8125rem}.pd-task-drawer__title-input{font-size:14px!important}.pd-task-drawer__row-2{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.pd-priority-toggle{gap:.375rem;display:flex}.pd-priority-toggle__btn{border:.5px solid var(--color-border-secondary);border-radius:var(--pd-radius-md,6px);background:var(--color-background-surface);color:var(--color-text-secondary);cursor:pointer;flex:1;padding:.375rem .5rem;font-size:.75rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.pd-priority-toggle__btn--active.pd-priority-toggle__btn--low{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.pd-priority-toggle__btn--active.pd-priority-toggle__btn--medium{color:#633806;background:#faeeda;border-color:#fac775}.pd-priority-toggle__btn--active.pd-priority-toggle__btn--high{color:#991b1b;background:#fef2f2;border-color:#fecaca}.pd-task-drawer__range{width:100%;accent-color:var(--pd-primary,#2563eb)}.pd-task-drawer__currency{border:.5px solid var(--color-border-secondary);border-radius:var(--pd-radius-md,6px);background:var(--color-background-surface);align-items:center;gap:.375rem;padding:0 .5rem;display:flex}.pd-task-drawer__currency span{color:var(--color-text-tertiary);font-size:.8125rem}.pd-task-drawer__currency input{background:0 0;border:none;flex:1;padding:.4375rem 0}.pd-task-drawer__footer{border-top:.5px solid var(--color-border-default);justify-content:flex-end;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.pd-task-drawer__footer--edit{justify-content:space-between}.pd-task-drawer__footer-actions{align-items:center;gap:.5rem;display:flex}.pd-task-drawer__delete{color:#b91c1c;cursor:pointer;background:0 0;border:none;padding:.375rem 0;font-size:.75rem;font-weight:500}.pd-task-drawer__delete:hover{color:#991b1b;text-decoration:underline}
