._pageHeader_u5yo0_9{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}._pageTitleRow_u5yo0_18{display:flex;align-items:baseline;gap:8px}._pageSubtitle_u5yo0_24{font-size:12px;color:var(--ant-color-text-tertiary, #888)}._pageDescription_u5yo0_29{margin:2px 0 0;color:var(--ant-color-text-secondary, #666);font-size:13px}._pageActions_u5yo0_35{display:flex;gap:8px;align-items:center;flex-wrap:wrap}._boqTable_u5yo0_43{width:100%;border-collapse:collapse;font-size:12px}._boqTable_u5yo0_43 th,._boqTable_u5yo0_43 td{border:1px solid var(--ant-color-border, #d9d9d9);padding:4px 8px;text-align:left}._boqTable_u5yo0_43 thead th{background:var(--ant-color-fill-tertiary, #f5f5f5);font-weight:600;text-align:center}._thPz_u5yo0_62{background:#3b82f614}._thKz_u5yo0_66{background:#22c55e14}._tdNumber_u5yo0_70{text-align:right;font-variant-numeric:tabular-nums}._sectionRow_u5yo0_75{background:#22c55e0f;font-weight:600;cursor:pointer}._kanbanBoard_u5yo0_82{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}._kanbanColumn_u5yo0_90{flex:1 0 220px;min-width:220px;border-radius:8px;border:1px solid var(--ant-color-border, #d9d9d9);display:flex;flex-direction:column}._kanbanColumnHeader_u5yo0_99{display:flex;align-items:center;gap:6px;padding:8px 10px;font-weight:600;font-size:13px;border-bottom:1px solid var(--ant-color-border, #d9d9d9)}._kanbanDot_u5yo0_109{width:8px;height:8px;border-radius:50%;flex-shrink:0}._kanbanColumnBody_u5yo0_116{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:80px}._kanbanEmpty_u5yo0_124{padding:24px 8px;text-align:center;color:var(--ant-color-text-quaternary, #aaa);font-size:12px}._taskCard_u5yo0_132{border:1px solid var(--ant-color-border, #d9d9d9);border-radius:6px;background:var(--ant-color-bg-container, #fff);padding:8px 10px}._taskCardCodeRed_u5yo0_141{border-color:#ff4d4f;animation:_taskBlink_u5yo0_1 1.1s ease-in-out infinite}._taskCardDeadlineSoon_u5yo0_146{border-color:#faad14;animation:_taskBlink_u5yo0_1 1.4s ease-in-out infinite}._taskCardOverdue_u5yo0_151{border-color:#ff4d4f;box-shadow:0 0 0 1px #ff4d4f inset}@keyframes _taskBlink_u5yo0_1{0%,to{box-shadow:0 0 0 1px transparent inset}50%{box-shadow:0 0 0 2px currentColor inset}}._taskCardTop_u5yo0_166{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}._taskCardMeta_u5yo0_173{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px;color:var(--ant-color-text-secondary, #666);align-items:center}._projectGroupTasks_u5yo0_184{display:flex;flex-direction:column;gap:8px}._engineerGrid_u5yo0_191{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}._engineerActive_u5yo0_197{margin-top:8px;font-size:12px;display:flex;align-items:center;gap:6px}._ganttRail_u5yo0_206{border:1px dashed var(--ant-color-border, #d9d9d9);border-radius:8px;padding:16px;color:var(--ant-color-text-secondary, #666);font-size:13px}._gantt_13itx_1{-webkit-user-select:none;user-select:none;cursor:grab}._gantt_13itx_1._dragging_13itx_5{cursor:grabbing}._topbar_13itx_9{display:flex;flex-wrap:wrap;gap:.5rem;padding:.4rem .75rem;margin-bottom:.5rem;background:var(--ant-color-fill-quaternary, rgba(0, 0, 0, .04));border-radius:6px;align-items:center}._legendItem_13itx_19{display:flex;align-items:center;gap:.3rem;font-size:.68rem;color:var(--ant-color-text-secondary, #555)}._legendSwatch_13itx_26{width:8px;height:8px;border-radius:2px;display:inline-block}._spacer_13itx_32{flex:1}._dateLabel_13itx_35{font-size:.7rem;color:var(--ant-color-text-tertiary, #888);font-weight:600}._todayBtn_13itx_40{padding:.15rem .4rem;border-radius:4px;border:1px solid var(--ant-color-border, var(--border-color, #d9d9d9));background:transparent;color:var(--ant-color-text-tertiary, #888);cursor:pointer;font-size:.62rem}._emptyState_13itx_50{text-align:center;padding:2rem;color:var(--ant-color-text-tertiary, #888)}._chart_13itx_57{position:relative}._labelCol_13itx_60{--label-w: 220px}._hourHeader_13itx_64{position:relative;height:30px;margin-left:var(--label-w, 220px);margin-bottom:.5rem;border-bottom:1px solid var(--ant-color-border-secondary, #eee)}._hourTick_13itx_71{position:absolute;transform:translate(-50%);font-size:.68rem;color:var(--ant-color-text-tertiary, #888);white-space:nowrap;bottom:4px}._hourTickDate_13itx_79{font-size:.55rem;color:#6366f1;font-weight:600}._nowLine_13itx_85{position:absolute;top:0;bottom:0;z-index:10;pointer-events:none;width:2px;background:#ef4444}._nowLabel_13itx_94{position:absolute;top:4px;left:50%;transform:translate(-50%);font-size:.62rem;font-weight:700;color:#ef4444;background:#ef444426;padding:.08rem .3rem;border-radius:3px;white-space:nowrap;border:1px solid rgba(239,68,68,.3)}._dayBoundary_13itx_110{position:absolute;top:0;bottom:0;z-index:5;pointer-events:none;width:1px;background:#6366f166}._dayBoundaryLabel_13itx_119{position:absolute;top:2px;left:4px;font-size:.58rem;font-weight:700;color:#6366f1;background:#6366f11a;padding:.05rem .25rem;border-radius:2px;white-space:nowrap}._pastShade_13itx_133{position:absolute;top:0;bottom:0;z-index:1;pointer-events:none;left:var(--label-w, 220px);background:#0003}._futureShade_13itx_142{position:absolute;top:0;bottom:0;right:0;z-index:1;pointer-events:none;background:#00000026}._engHeader_13itx_152{padding:.4rem .5rem;font-weight:700;font-size:.82rem;color:var(--ant-color-text, #222);border-bottom:1px solid var(--ant-color-border-secondary, #eee);background:var(--ant-color-fill-quaternary, rgba(0, 0, 0, .04));cursor:pointer;display:flex;align-items:center;gap:.5rem}._engChevron_13itx_164{font-size:.7rem;transition:transform .2s}._engChevronOpen_13itx_168{transform:rotate(180deg)}._engCount_13itx_171{font-size:.7rem;color:var(--ant-color-text-tertiary, #888);font-weight:400}._row_13itx_177{display:flex;align-items:center;min-height:42px;border-bottom:1px solid var(--ant-color-border-secondary, #f0f0f0)}._rowLabel_13itx_183{width:var(--label-w, 220px);flex:0 0 var(--label-w, 220px);font-size:.7rem;color:var(--ant-color-text-secondary, #555);padding-left:1rem;display:flex;flex-direction:column;justify-content:center;gap:.05rem;overflow:hidden}._rowLabelTop_13itx_195{display:flex;align-items:center;gap:.3rem}._rowProject_13itx_200{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}._rowTaskName_13itx_207{font-size:.62rem;color:var(--ant-color-text-tertiary, #888);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}._workLabel_13itx_215{font-size:.56rem;font-weight:600;white-space:nowrap}._pauseLabel_13itx_220{font-size:.54rem;color:#7c3aed;font-weight:500;white-space:nowrap;opacity:.8}._pendingLabel_13itx_227{font-size:.58rem;color:#f59e0b;font-weight:500}._bars_13itx_233{position:relative;flex:1;height:28px}._seg_13itx_238{position:absolute;top:2px;bottom:2px;display:flex;align-items:center;overflow:hidden}._segLabel_13itx_246{font-size:.62rem;padding:0 .3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ant-color-text, #222);font-weight:500}._segPause_13itx_255{font-size:.6rem;color:#7c3aed;font-weight:700;padding:0 .2rem}._deadline_13itx_261{position:absolute;top:0;bottom:0;width:2px;opacity:.7;z-index:3}._deadlineMarker_13itx_269{position:absolute;top:-1px;left:-3px;font-size:.55rem}._deadlineShort_13itx_276{position:absolute;top:25%;height:50%;width:2px;background:#f59e0b;border-radius:1px;opacity:.6;z-index:3}@media(max-width:640px){._labelCol_13itx_60{--label-w: 120px}._hourHeader_13itx_64{margin-left:120px}}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}*{margin:0;padding:0;box-sizing:border-box}:root select,[data-theme=light] select{background-color:#fff;color:#0f172a}:root select option,[data-theme=light] select option{background-color:#fff;color:#0f172a}[data-theme=dark] select,[data-theme=dark] select option{background-color:#2d2d30;color:#e8eaed}select option:checked,select option:hover{background-color:#1a73e8;color:#fff}:root,[data-theme=light]{--primary: #1a73e8;--primary-dark: #1557b0;--primary-light: #dbeafe;--accent: #1a73e8;--success: #059669;--warning: #d97706;--danger: #dc2626;--bg-main: #fafafa;--bg-sidebar: #f0f0f1;--bg-card: #ffffff;--bg-hover: #f4f4f5;--bg-active: #e8f0fe;--bg-elevated: #ffffff;--border: #bdc1c6;--border-strong: #9aa0a6;--border-light: #dadce0;--text-primary: #202124;--text-secondary: #1f1f1f;--text-muted: #3c4043;--text-faint: #5f6368;--sidebar-width: 200px;--sidebar-collapsed: 60px;--header-height: 64px;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-lg: 0 4px 6px -1px rgba(0,0,0,.1), 0 2px 4px -2px rgba(0,0,0,.1);--shadow-card: 0 1px 3px rgba(15,23,42,.06);--shadow-elevated: 0 4px 12px rgba(15,23,42,.1);--transition-quick: .15s;--bg-secondary: var(--bg-card);--border-color: var(--border);--accent-color: var(--primary);--status-success-fg: #052e16;--status-success-bg: rgba(34,197,94,.2);--status-warning-fg: #78350f;--status-warning-bg: rgba(234,179,8,.2);--status-danger-fg: #7f1d1d;--status-danger-bg: rgba(239,68,68,.18);--status-info-fg: #1e3a8a;--status-info-bg: rgba(99,102,241,.16);--status-violet-fg: #5b21b6;--status-violet-bg: rgba(168,85,247,.16);--status-orange-fg: #9a3412;--status-orange-bg: rgba(249,115,22,.16);--status-pink-fg: #9d174d;--status-pink-bg: rgba(244,114,182,.16);--status-muted-fg: #475569;--status-cyan-fg: #155e75}[data-theme=dark]{--primary: #8ab4f8;--primary-dark: #669df6;--primary-light: #1c2c4a;--accent: #78d9ec;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--bg-main: #1e1e1e;--bg-sidebar: #181818;--bg-card: #252526;--bg-hover: #2a2d2e;--bg-active: #37373d;--bg-elevated: #2d2d30;--border: #3c3c3c;--border-strong: #4a4a4a;--border-light: #2c2c2c;--text-primary: #e8eaed;--text-secondary: #bdc1c6;--text-muted: #9aa0a6;--text-faint: #5f6368;--shadow: 0 1px 3px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.4);--shadow-lg: 0 4px 6px -1px rgba(0,0,0,.5), 0 2px 4px -2px rgba(0,0,0,.4);--shadow-card: 0 1px 3px rgba(0,0,0,.4);--shadow-elevated: 0 4px 12px rgba(0,0,0,.5);--bg-secondary: var(--bg-card);--border-color: var(--border);--accent-color: var(--primary);--status-success-fg: #4ade80;--status-success-bg: rgba(34,197,94,.22);--status-warning-fg: #fbbf24;--status-warning-bg: rgba(234,179,8,.18);--status-danger-fg: #f87171;--status-danger-bg: rgba(239,68,68,.22);--status-info-fg: #93c5fd;--status-info-bg: rgba(99,102,241,.18);--status-violet-fg: #c4b5fd;--status-violet-bg: rgba(168,85,247,.18);--status-orange-fg: #fdba74;--status-orange-bg: rgba(249,115,22,.28);--status-pink-fg: #f9a8d4;--status-pink-bg: rgba(244,114,182,.15);--status-muted-fg: #cbd5e1;--status-cyan-fg: #5eead4}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--bg-main);color:var(--text-primary);min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;transition:width .3s ease}.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed)}.sidebar-header{height:var(--header-height);padding:0 1rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:.6rem;overflow:hidden;color:#14532d}[data-theme=dark] .logo{color:#4ade80}.logo-icon{flex-shrink:0;display:inline-block}.logo-text{font-size:.95rem;font-weight:800;letter-spacing:.08em;color:inherit;white-space:nowrap}.sidebar-toggle{width:28px;height:28px;background:var(--bg-hover);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:all .2s;flex-shrink:0}.sidebar-toggle:hover{background:var(--bg-active);color:var(--primary)}.sidebar-nav{flex:1;padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:transparent;border:none;border-radius:var(--radius);color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;text-align:left;width:100%;position:relative}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:linear-gradient(135deg,#3b82f61f,#3b82f60f);color:var(--primary);font-weight:600;border-left:3px solid var(--primary, #3b82f6);padding-left:calc(1rem - 3px)}.nav-icon{font-size:1.125rem;flex-shrink:0;width:24px;text-align:center}.nav-label{white-space:nowrap;overflow:hidden}.sidebar-collapsed .nav-label{display:none}.sidebar-footer{padding:.75rem;border-top:1px solid var(--border)}.theme-toggle{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:var(--radius);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;width:100%}.theme-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.main-area{flex:1;min-width:0;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;transition:margin-left .3s ease}.sidebar-collapsed .main-area{margin-left:var(--sidebar-collapsed)}.header{height:var(--header-height);background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}.header-left{display:flex;flex-direction:column}.header-title{font-size:1.5rem;font-weight:800;color:#14532d;line-height:1.2;letter-spacing:.01em}[data-theme=dark] .header-title{color:#4ade80}.header-subtitle{font-size:.75rem;color:var(--text-muted)}.header-right{display:flex;align-items:center;gap:1rem}.admin-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.admin-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.admin-icon{font-size:1rem}.user-account{position:relative}.user-btn{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s}.user-btn:hover{border-color:var(--primary)}.user-avatar{width:32px;height:32px;background:var(--primary-light);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--primary)}.user-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.dropdown-arrow{font-size:.625rem;color:var(--text-muted)}.user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;z-index:100}.dropdown-header{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.dropdown-email{font-size:.75rem;color:var(--text-muted)}.dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all .2s;text-align:left}.dropdown-item:hover{background:var(--bg-hover);color:var(--text-primary)}.dropdown-item.logout{color:var(--danger)}.dropdown-item.logout:hover{background:#fef2f2}[data-theme=dark] .dropdown-item.logout:hover{background:#450a0a}.dropdown-divider{height:1px;background:var(--border);margin:.25rem 0}.content{flex:1;min-width:0;padding:1.5rem;overflow-y:auto}@keyframes boq-save-pulse{0%,to{box-shadow:0 0 #ef44448c}50%{box-shadow:0 0 0 4px #ef444400}}.boq-save-pending{animation:boq-save-pulse 1.6s ease-in-out infinite}.page-content h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.5rem}.page-description{font-size:.875rem;color:var(--text-muted);margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;align-items:center;gap:1rem;transition:all .2s}.stat-card:hover{border-color:var(--primary);box-shadow:var(--shadow-lg)}.stat-icon{width:48px;height:48px;background:var(--primary-light);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1.2}.stat-label{font-size:.875rem;color:var(--text-muted)}.placeholder-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center}.placeholder-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.placeholder-content p{font-size:1rem;color:var(--text-muted)}@media(max-width:1024px){.admin-label{display:none}.admin-btn{padding:.5rem}}@media(max-width:768px){.sidebar{width:var(--sidebar-collapsed)}.sidebar .nav-label,.sidebar .logo-text{display:none}.main-area{margin-left:var(--sidebar-collapsed)}.sidebar-toggle{display:none}.header{padding:0 1rem}.user-name{display:none}.content{padding:1rem}.stats-grid{grid-template-columns:1fr}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-main)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}::selection{background:var(--primary-light);color:var(--primary-dark)}.indicators-page{max-width:100%}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.page-title-section h1{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin-bottom:.25rem}.page-title-section .page-description{margin-bottom:0}.page-actions{display:flex;gap:.75rem}.btn-primary,.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-secondary{background:var(--bg-card);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary)}.filters-bar{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.search-box{flex:1;min-width:280px;display:flex;align-items:center;gap:.75rem;padding:.625rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s}.search-box:focus-within{border-color:var(--primary)}.search-icon{color:var(--text-faint)}.search-box input{flex:1;background:transparent;border:none;outline:none;font-size:.875rem;color:var(--text-primary)}.search-box input::placeholder{color:var(--text-faint)}.filter-select{padding:.625rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;color:var(--text-primary);cursor:pointer;min-width:200px}.filter-select:focus{outline:none;border-color:var(--primary)}.projects-container{display:flex;flex-direction:column;gap:1.5rem}.project-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.project-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--bg-hover);cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border)}.project-header:hover{background:var(--bg-active)}.project-expand{font-size:.75rem;color:var(--text-muted);width:20px}.project-info{flex:1;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.project-info h2{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.project-code{padding:.25rem .5rem;background:var(--primary-light);color:var(--primary);border-radius:4px;font-size:.75rem;font-weight:600}.project-address{font-size:.8125rem;color:var(--text-muted)}.project-stats{display:flex;gap:1.5rem;flex-wrap:wrap}.project-stat{display:flex;flex-direction:column;align-items:flex-end;min-width:80px}.project-stat .stat-label{font-size:.6875rem;color:var(--text-faint);text-transform:uppercase;letter-spacing:.025em}.project-stat .stat-value{font-size:.9375rem;font-weight:600;color:var(--text-primary)}.project-stat.highlight .stat-value{color:var(--primary)}.work-items-table-container{overflow-x:auto}.work-items-table{width:100%;border-collapse:collapse;font-size:.8125rem}.work-items-table th,.work-items-table td{padding:.75rem .625rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.work-items-table th{background:var(--bg-main);font-weight:600;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;z-index:10}.work-items-table th:hover{background:var(--bg-hover);color:var(--primary)}.work-items-table tbody tr:hover{background:var(--bg-hover)}.th-category{min-width:180px}.th-responsible{min-width:120px}.th-comment{min-width:200px;max-width:300px}.th-number{min-width:80px;text-align:right!important}.th-concrete,.th-status{min-width:100px}.td-category{font-weight:500;color:var(--text-primary)}.td-date{color:var(--text-muted);font-family:monospace}.td-comment{max-width:300px;overflow:hidden;text-overflow:ellipsis;color:var(--text-muted)}.td-number{text-align:right;font-family:monospace;color:var(--text-secondary)}.td-kp{color:var(--success);font-weight:500}.td-concrete{color:var(--text-muted);font-size:.75rem}.totals-row{background:var(--bg-active)!important}.totals-row td{border-top:2px solid var(--primary);color:var(--text-primary)}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:100px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-pending{background:#fef3c7;color:#92400e}.status-progress{background:#dbeafe;color:#1e40af}.status-completed{background:#d1fae5;color:#065f46}.status-review{background:#f3e8ff;color:#7c3aed}[data-theme=dark] .status-pending{background:#78350f;color:#fef3c7}[data-theme=dark] .status-progress{background:#1e3a8a;color:#bfdbfe}[data-theme=dark] .status-completed{background:#064e3b;color:#a7f3d0}[data-theme=dark] .status-review{background:#5b21b6;color:#e9d5ff}.legend-section{margin-top:2rem;padding:1rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.legend-section h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.legend-items{display:flex;flex-wrap:wrap;gap:1rem 2rem}.legend-item{font-size:.8125rem;color:var(--text-muted)}.legend-item strong{color:var(--text-secondary)}@media(max-width:1200px){.project-stats{gap:1rem}.project-stat{min-width:60px}}@media(max-width:768px){.page-header{flex-direction:column;align-items:stretch}.page-actions{justify-content:flex-end}.filters-bar{flex-direction:column}.search-box{min-width:100%}.filter-select{width:100%}.project-header{flex-direction:column;align-items:flex-start}.project-info{flex-direction:column;align-items:flex-start;gap:.5rem}.project-stats{width:100%;justify-content:space-between;margin-top:.5rem}.project-stat{align-items:flex-start}.legend-items{flex-direction:column;gap:.5rem}}.checklist-page{max-width:100%}.checklist-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:1.5rem}.checklist-summary h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.summary-table{width:100%;border-collapse:collapse;font-size:.8125rem}.summary-table th,.summary-table td{padding:.75rem .625rem;text-align:left;border-bottom:1px solid var(--border)}.summary-table th{background:var(--bg-main);font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.025em}.summary-table tbody tr:hover{background:var(--bg-hover)}.summary-table .project-name{font-weight:500;color:var(--text-primary)}.summary-table .project-code-cell{font-family:monospace;font-size:.75rem;color:var(--text-muted)}.readiness-bar{display:flex;align-items:center;gap:.75rem}.readiness-bar-track{flex:1;height:8px;background:var(--bg-main);border-radius:4px;overflow:hidden;min-width:80px}.readiness-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.readiness-bar-fill.high{background:var(--success)}.readiness-bar-fill.medium{background:var(--warning)}.readiness-bar-fill.low{background:var(--danger)}.readiness-value{font-weight:600;font-size:.875rem;min-width:45px}.readiness-value.high{color:var(--success)}.readiness-value.medium{color:var(--warning)}.readiness-value.low{color:var(--danger)}.filter-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.filter-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:100px;font-size:.8125rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--primary);color:var(--primary)}.filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.filter-btn .count{background:var(--bg-main);padding:.125rem .5rem;border-radius:100px;font-size:.75rem;font-weight:600}.filter-btn.active .count{background:#fff3;color:#fff}.checklist-project{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:1rem;overflow:hidden}.checklist-project-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--bg-hover);cursor:pointer;transition:background .2s;border-bottom:1px solid var(--border)}.checklist-project-header:hover{background:var(--bg-active)}.checklist-project-header .expand-icon{font-size:.75rem;color:var(--text-muted);width:20px;transition:transform .2s}.checklist-project-header.expanded .expand-icon{transform:rotate(90deg)}.checklist-project-header h3{flex:1;font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.checklist-project-header .readiness-badge{padding:.375rem .75rem;border-radius:100px;font-size:.75rem;font-weight:600}.readiness-badge.high{background:#d1fae5;color:#065f46}.readiness-badge.medium{background:#fef3c7;color:#92400e}.readiness-badge.low{background:#fee2e2;color:#991b1b}[data-theme=dark] .readiness-badge.high{background:#064e3b;color:#a7f3d0}[data-theme=dark] .readiness-badge.medium{background:#78350f;color:#fef3c7}[data-theme=dark] .readiness-badge.low{background:#7f1d1d;color:#fecaca}.checklist-section{border-bottom:1px solid var(--border)}.checklist-section:last-child{border-bottom:none}.checklist-section-header{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.5rem .875rem 3rem;background:var(--bg-main);cursor:pointer;transition:background .2s}.checklist-section-header:hover{background:var(--bg-hover)}.checklist-section-header .expand-icon{font-size:.625rem;color:var(--text-faint);width:16px}.checklist-section-header h4{flex:1;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin:0}.section-stats{display:flex;gap:.75rem;font-size:.75rem}.section-stat{display:flex;align-items:center;gap:.25rem}.section-stat .dot{width:8px;height:8px;border-radius:50%}.dot-green{background:var(--success)}.dot-red{background:var(--danger)}.dot-grey{background:var(--text-faint)}.checklist-table-container{overflow-x:auto}.checklist-table{width:100%;border-collapse:collapse;font-size:.8125rem}.checklist-table th,.checklist-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--border-light)}.checklist-table th{background:var(--bg-card);font-weight:600;color:var(--text-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.025em}.checklist-table tbody tr:hover{background:var(--bg-hover)}.th-item{min-width:200px}.th-date{min-width:100px}.th-responsible{min-width:140px}.th-status{min-width:160px}.th-comment{min-width:200px}.td-item{font-weight:500;color:var(--text-primary)}.td-date{color:var(--text-muted);font-family:monospace;font-size:.75rem}.td-responsible{color:var(--text-secondary)}.td-comment{color:var(--text-muted);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checklist-badge{display:inline-block;padding:.25rem .625rem;border-radius:4px;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.01em}.checklist-status-green{background:#d1fae5;color:#065f46}.checklist-status-red{background:#fee2e2;color:#991b1b}.checklist-status-grey{background:#f1f5f9;color:#64748b}[data-theme=dark] .checklist-status-green{background:#064e3b;color:#a7f3d0}[data-theme=dark] .checklist-status-red{background:#7f1d1d;color:#fecaca}[data-theme=dark] .checklist-status-grey{background:#334155;color:#94a3b8}.checklist-legend{margin-top:2rem;padding:1rem 1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg)}.checklist-legend h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem 1.5rem}.legend-entry{display:flex;align-items:center;gap:.5rem;font-size:.8125rem}.legend-entry .checklist-badge{min-width:100px;text-align:center}.legend-entry span{color:var(--text-muted)}.checklist-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;color:var(--text-muted)}.checklist-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}@media(max-width:1024px){.summary-table{font-size:.75rem}.summary-table th,.summary-table td{padding:.5rem .375rem}.readiness-bar-track{min-width:60px}}@media(max-width:768px){.checklist-summary{padding:1rem}.summary-table-container{overflow-x:auto}.filter-buttons{gap:.375rem}.filter-btn{padding:.375rem .75rem;font-size:.75rem}.checklist-project-header{padding:.75rem 1rem}.checklist-section-header{padding:.75rem 1rem .75rem 2rem}.checklist-table th,.checklist-table td{padding:.5rem;font-size:.75rem}.legend-grid{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 40px #0000004d;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close{width:32px;height:32px;border:none;background:var(--bg-hover);border-radius:var(--radius);color:var(--text-muted);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background:var(--danger);color:#fff}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border);background:var(--bg-hover)}.upload-dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-main)}.upload-dropzone:hover,.upload-dropzone.dragging{border-color:var(--primary);background:var(--primary-light)}.dropzone-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.dropzone-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.dropzone-subtitle{font-size:.875rem;color:var(--text-muted);margin:0}.dropzone-formats{margin-top:1rem;font-size:.75rem;color:var(--text-faint)}.upload-instructions{margin-top:1.5rem;padding:1rem;background:var(--bg-main);border-radius:var(--radius)}.upload-instructions h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.upload-instructions ul{margin:0;padding-left:1.25rem;font-size:.8125rem;color:var(--text-secondary)}.upload-instructions li{margin-bottom:.375rem}.upload-instructions strong{color:var(--primary)}.upload-status{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center}.upload-status.parsing .spinner{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.upload-status p{font-size:1rem;color:var(--text-secondary);margin:0}.upload-status.error .status-icon{font-size:3rem;margin-bottom:1rem}.error-message{color:var(--danger);font-weight:500;margin-bottom:1rem}.upload-preview{animation:fadeIn .3s ease}.preview-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.preview-header .status-icon{font-size:2.5rem}.preview-header .status-icon.success{color:var(--success)}.preview-info h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .25rem}.preview-info p{font-size:.875rem;color:var(--text-muted);margin:0}.preview-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.preview-stat{background:var(--bg-main);padding:1rem;border-radius:var(--radius);text-align:center}.preview-stat .stat-value{font-size:1.5rem;font-weight:700;color:var(--primary);display:block}.preview-stat .stat-label{font-size:.75rem;color:var(--text-muted);display:block;margin-top:.25rem}.target-project-selector{margin-bottom:1.5rem;padding:1rem;background:var(--bg-main);border-radius:var(--radius);border:1px solid var(--border)}.target-project-selector h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.project-select{width:100%;padding:.75rem 1rem;font-size:.9375rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:all .2s}.project-select:hover{border-color:var(--primary)}.project-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.selector-hint{margin:.75rem 0 0;font-size:.8125rem;color:var(--success);font-weight:500}.preview-categories{margin-bottom:1.5rem}.preview-categories h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.category-tags{display:flex;flex-wrap:wrap;gap:.5rem}.category-tag{display:inline-block;padding:.375rem .75rem;background:var(--primary-light);color:var(--primary);border-radius:100px;font-size:.75rem;font-weight:500}.preview-table-container{margin-top:1rem}.preview-table-container h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-table th,.preview-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--border)}.preview-table th{background:var(--bg-main);font-weight:600;color:var(--text-secondary);font-size:.75rem}.preview-table tbody tr:hover{background:var(--bg-hover)}.preview-more{text-align:center;font-size:.8125rem;color:var(--text-muted);margin-top:.75rem}.upload-modal-large{max-width:900px}.import-steps{display:flex;align-items:center;justify-content:center;padding:1rem 1.5rem;background:var(--bg-main);border-bottom:1px solid var(--border);gap:.5rem}.import-step{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:var(--radius);color:var(--text-muted);transition:all .2s}.import-step.active{background:var(--primary-light);color:var(--primary)}.import-step.completed,.import-step.ready{color:var(--success)}.step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:2px solid currentColor;border-radius:50%;font-size:.75rem;font-weight:600}.import-step.active .step-number,.import-step.completed .step-number{background:currentColor;color:#fff}.step-label{font-size:.875rem;font-weight:500}.step-connector{width:40px;height:2px;background:var(--border)}.preview-project-name{margin-bottom:1.5rem}.preview-project-name label{display:block;font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.project-name-input{width:100%;padding:.75rem 1rem;font-size:1rem;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);transition:all .2s}.project-name-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.detected-columns{margin-bottom:1.5rem;padding:1rem;background:var(--bg-main);border-radius:var(--radius);border:1px solid var(--border)}.detected-columns h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.column-tags{display:flex;flex-wrap:wrap;gap:.5rem}.column-tag{display:inline-block;padding:.25rem .625rem;background:var(--success-light, rgba(16, 185, 129, .1));color:var(--success);border-radius:var(--radius);font-size:.75rem;font-weight:500}.category-tag.excluded{background:var(--bg-hover);color:var(--text-muted);opacity:.6}.preview-table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.preview-table-header h4{margin:0}.excluded-count{font-size:.75rem;color:var(--warning);font-weight:500}.preview-table-scroll{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.preview-table.editable{font-size:.8125rem}.preview-table .th-checkbox,.preview-table .td-checkbox{width:40px;text-align:center;padding:.5rem}.preview-table .th-number,.preview-table .td-number{text-align:right;white-space:nowrap}.preview-table .th-actions,.preview-table .td-actions{width:40px;text-align:center}.preview-table .td-description{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-table .row-excluded{opacity:.5;background:var(--bg-hover)}.preview-table .row-editing{background:var(--primary-light)}.category-select{width:100%;padding:.375rem .5rem;font-size:.75rem;background:var(--bg-card);border:1px solid var(--primary);border-radius:var(--radius);color:var(--text-primary);cursor:pointer}.category-cell{display:inline-block;padding:.25rem .5rem;background:var(--primary-light);color:var(--primary);border-radius:var(--radius);font-size:.75rem;font-weight:500}.btn-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius);cursor:pointer;transition:all .2s;font-size:1rem}.btn-icon:hover{background:var(--bg-hover);color:var(--primary)}.btn-show-more{display:block;width:100%;padding:.75rem;margin-top:.5rem;background:transparent;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.8125rem;cursor:pointer;transition:all .2s}.btn-show-more:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.status-icon-large{margin-bottom:1rem;color:var(--danger)}.status-icon-large svg{width:48px;height:48px}.dropzone-icon svg{color:var(--text-muted);opacity:.7}.upload-dropzone:hover .dropzone-icon svg,.upload-dropzone.dragging .dropzone-icon svg{color:var(--primary);opacity:1}@media(max-width:768px){.upload-modal{margin:1rem;max-height:calc(100vh - 2rem)}.modal-header,.modal-body,.modal-footer{padding:1rem}.upload-dropzone{padding:2rem 1rem}.dropzone-icon{font-size:3rem}.preview-stats{grid-template-columns:1fr}.preview-stat .stat-value{font-size:1.25rem}}.tender-projects-container{display:flex;flex-direction:column;gap:1.5rem}.tender-project-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.tender-project-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:var(--bg-hover);cursor:pointer;transition:background-color .2s}.tender-project-header:hover{background:var(--bg-active)}.tender-file-section{margin-left:1.5rem;border-left:3px solid var(--primary)}.tender-file-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--bg-main);cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--border)}.tender-file-header:hover{background:var(--bg-hover)}.file-expand{font-size:.875rem;color:var(--text-secondary);width:1.25rem}.file-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.file-name{font-weight:600;color:var(--text-primary);font-size:.9375rem}.file-date{font-size:.8rem;color:#f59e0b;font-weight:600;background:#f59e0b26;padding:.25rem .75rem;border-radius:4px;border:1px solid rgba(245,158,11,.3)}.file-stats{display:flex;gap:1rem;font-size:.8125rem}.file-stat{color:var(--text-secondary)}.file-stat.highlight{color:var(--success);font-weight:600}.tender-table-container{overflow-x:auto;padding:0}.tender-table{width:100%;border-collapse:collapse;font-size:.75rem;min-width:1200px}.tender-table th,.tender-table td{padding:.5rem .625rem;text-align:left;border:1px solid var(--border);white-space:nowrap}.tender-header-row-1 th,.tender-header-row-2 th{background:#f5f5f5;font-weight:600;text-align:center;color:var(--text-primary);font-size:.6875rem}[data-theme=dark] .tender-header-row-1 th,[data-theme=dark] .tender-header-row-2 th{background:var(--bg-active)}.th-name{min-width:280px;text-align:left!important}.th-category{min-width:140px;text-align:left!important}.td-category{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.td-editable{cursor:pointer;transition:background-color .2s}.td-editable:hover{background-color:var(--bg-hover)}.editable-text{display:block;min-height:1.2em}.comment-edit-input{width:100%;padding:.25rem .5rem;font-size:.75rem;border:1px solid var(--primary);border-radius:4px;background:var(--bg-card);color:var(--text-primary);outline:none;box-shadow:0 0 0 2px var(--primary-light)}.comment-edit-input:focus{border-color:var(--primary)}.th-volume{min-width:80px}.th-unit{min-width:60px}.th-group{text-align:center!important}.th-group.th-pz{background:#e8f5e9!important}.th-group.th-kz{background:#fff8e1!important}[data-theme=dark] .th-group.th-pz{background:#1b5e20!important;color:#c8e6c9}[data-theme=dark] .th-group.th-kz{background:#e65100!important;color:#ffe0b2}.th-sub{font-size:.625rem;min-width:90px}.th-sub.th-pz{background:#f1f8e9!important}.th-sub.th-kz{background:#fffde7!important}[data-theme=dark] .th-sub.th-pz{background:#33691e!important;color:#dcedc8}[data-theme=dark] .th-sub.th-kz{background:#bf360c!important;color:#ffccbc}.th-gba{min-width:100px;background:#e3f2fd!important}[data-theme=dark] .th-gba{background:#0d47a1!important;color:#bbdefb}.tender-section-row{background:#c8e6c9!important;cursor:pointer;transition:background-color .2s}.tender-section-row:hover{background:#a5d6a7!important}[data-theme=dark] .tender-section-row{background:#2e7d32!important}[data-theme=dark] .tender-section-row:hover{background:#388e3c!important}.tender-section-row td{font-weight:600;color:#1b5e20}[data-theme=dark] .tender-section-row td{color:#e8f5e9}.td-section{display:flex;align-items:center;gap:.5rem}.section-expand{font-size:.625rem;width:1rem;flex-shrink:0;color:#2e7d32}[data-theme=dark] .section-expand{color:#a5d6a7}.tender-item-row{background:var(--bg-card);transition:background-color .2s}.tender-item-row:hover{background:var(--bg-hover)}.td-subitem{padding-left:2rem!important;color:var(--text-secondary)}.tender-table .td-number{text-align:right;font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:.6875rem}.tender-table .td-pz{background:#e8f5e94d}.tender-table .td-kz{background:#fff8e14d}[data-theme=dark] .tender-table .td-pz{background:#2e7d3226}[data-theme=dark] .tender-table .td-kz{background:#e6510026}.tender-table .td-total{font-weight:600}.tender-table .td-gba{background:#e3f2fd4d;font-weight:500}[data-theme=dark] .tender-table .td-gba{background:#0d47a133}.td-volume,.td-unit{text-align:center;color:var(--text-muted)}.tender-totals-row{background:var(--bg-active)!important}.tender-totals-row td{border-top:2px solid var(--primary);font-weight:600;color:var(--text-primary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius-lg);margin-top:1rem}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.empty-state p{color:var(--text-muted);margin-bottom:1.5rem}.legend-color{display:inline-block;width:1rem;height:1rem;border-radius:3px;margin-right:.5rem;vertical-align:middle;border:1px solid var(--border)}.legend-green{background:#c8e6c9}.legend-white{background:var(--bg-card)}[data-theme=dark] .legend-green{background:#2e7d32}@media(max-width:1400px){.tender-table{font-size:.6875rem}.tender-table th,.tender-table td{padding:.375rem .5rem}.th-name{min-width:250px}}@media(max-width:768px){.tender-project-header{flex-direction:column;align-items:flex-start}.tender-table-container{overflow-x:scroll;-webkit-overflow-scrolling:touch}}.analytics-container{display:flex;flex-direction:column;gap:.75rem}.analytics-section{background:var(--bg-card);border-radius:var(--radius);padding:.875rem 1rem;border:1px solid var(--border)}.analytics-section h3{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.analytics-section h4{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem;margin-top:.75rem}.project-checkboxes{display:flex;flex-direction:row;flex-wrap:wrap;gap:.5rem}.project-checkbox-label{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-hover);border-radius:var(--radius);cursor:pointer;transition:background-color .2s;flex:1;min-width:180px}.project-checkbox-label:hover{background:var(--bg-active)}.project-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.project-checkbox-label span{font-size:.8rem;color:var(--text-primary)}.project-checkbox-label .file-count{color:var(--text-muted);font-size:.7rem;margin-left:auto}.analytics-select{width:100%;max-width:450px;padding:.5rem .75rem;font-size:.85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);cursor:pointer;transition:border-color .2s}.analytics-select:hover{border-color:var(--primary)}.analytics-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.comparison-header{background:var(--bg-hover);padding:1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem;line-height:1.6;color:var(--text-secondary)}.comparison-header strong{color:var(--text-primary)}.comparison-table{width:100%;border-collapse:collapse;font-size:.875rem}.comparison-table th,.comparison-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.comparison-table th{background:var(--bg-hover);font-weight:600;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.025em}.comparison-table tbody tr:hover{background:var(--bg-hover)}.comparison-table .first-row{background:var(--primary-light)}.comparison-table .value-cell{font-weight:600;color:var(--primary);font-family:SF Mono,Consolas,monospace}.comparison-table .value-cell.no-data{color:var(--text-muted);font-weight:400;font-style:italic}.comparison-chart{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.chart-bar-container{display:flex;align-items:center;margin-bottom:.75rem;gap:1rem}.chart-label{width:200px;flex-shrink:0;font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-bar-wrapper{flex:1;display:flex;align-items:center;gap:.75rem;background:var(--bg-hover);border-radius:var(--radius);padding:.25rem;min-height:32px}.chart-bar{height:24px;border-radius:4px;transition:width .3s ease;min-width:4px}.chart-value{font-size:.8rem;font-weight:600;color:var(--text-primary);white-space:nowrap;font-family:SF Mono,Consolas,monospace}@media(max-width:768px){.chart-label{width:120px;font-size:.75rem}.comparison-table{font-size:.75rem}.comparison-table th,.comparison-table td{padding:.5rem}}.compare-mode-selector{display:flex;gap:.75rem;flex-wrap:wrap}.mode-option{display:flex;flex-direction:row;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-hover);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .2s;flex:1;min-width:180px}.mode-option:hover{border-color:var(--primary);background:var(--bg-active)}.mode-option.active{border-color:var(--primary);background:var(--primary-light)}.mode-option input[type=radio]{position:absolute;opacity:0;pointer-events:none}.mode-icon{font-size:1.5rem;margin-bottom:0}.mode-label{font-weight:600;font-size:.875rem;color:var(--text-primary);margin-bottom:0}.mode-desc{font-size:.7rem;color:var(--text-muted)}.mode-text{display:flex;flex-direction:column}.selection-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:.5rem}.project-checkbox-label.disabled{opacity:.5;cursor:not-allowed}.project-checkbox-label.disabled input{cursor:not-allowed}.selection-counter{margin-top:.5rem;padding:.4rem .75rem;border-radius:var(--radius);font-size:.8rem;font-weight:600}.selection-counter.insufficient{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.selection-counter.ok{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.3)}.selection-counter.max{background:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.counter-hint{font-weight:400;opacity:.8}.version-selection{display:flex;flex-direction:column;gap:1rem}.project-selector-wrapper{display:flex;flex-direction:column;gap:.5rem}.selector-label{font-size:.85rem;font-weight:600;color:var(--text-secondary)}.no-versions-hint{font-size:.85rem;color:var(--warning);background:#f59e0b1a;padding:.75rem 1rem;border-radius:var(--radius);margin-top:.5rem}.file-checkboxes{display:flex;flex-direction:column;gap:.5rem}.file-checkboxes .project-checkbox-label{display:flex;align-items:center;gap:.75rem}.file-checkboxes .file-name{flex:1;font-size:.9rem}.file-checkboxes .file-date{font-size:.8rem;color:var(--text-muted);background:var(--bg-main);padding:.25rem .5rem;border-radius:4px}.diff-cell{font-family:SF Mono,Consolas,monospace;font-size:.85rem}.diff-cell.positive{color:#10b981;font-weight:600}.diff-cell.negative{color:#ef4444;font-weight:600}.diff-cell.neutral{color:var(--text-muted)}.baseline-label{font-size:.75rem;color:var(--text-muted);background:var(--bg-hover);padding:.2rem .5rem;border-radius:4px;font-family:inherit}.diff-percent{font-size:.75rem;margin-left:.5rem;opacity:.8}@media(max-width:768px){.compare-mode-selector{flex-direction:column}.mode-option{min-width:auto}}.boq-upload-section{border:2px dashed var(--border);border-radius:var(--radius-lg);background:linear-gradient(135deg,#22d3ee08,#8b5cf608)}.boq-upload-hint{font-size:.8rem;color:var(--text-muted);margin-bottom:1rem;line-height:1.5}.boq-upload-list{display:flex;flex-direction:column;gap:.75rem}.boq-upload-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius);gap:1rem}.boq-upload-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.boq-file-label{font-size:.9rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.boq-file-date{font-size:.75rem;color:var(--text-muted)}.boq-upload-btn{padding:.5rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;border:none;border-radius:var(--radius);font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.boq-upload-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22d3ee4d}.boq-upload-btn:disabled{opacity:.6;cursor:not-allowed}.boq-uploaded-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.boq-success{color:#10b981;font-weight:600;font-size:.8rem}.boq-items-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-hover);padding:.2rem .5rem;border-radius:4px}.boq-reupload-btn{padding:.25rem .5rem;background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .2s}.boq-reupload-btn:hover{background:var(--bg-active);border-color:var(--primary);color:var(--primary)}.boq-analyze-btn{margin-top:1rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;border-radius:var(--radius);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.boq-analyze-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #10b9814d}.boq-analysis-result{margin-top:1.5rem}.boq-eng-report{background:var(--bg-main);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.boq-eng-header{padding:.75rem 1rem;background:linear-gradient(135deg,var(--primary) 0%,#8b5cf6 100%);color:#fff;display:flex;justify-content:space-between;align-items:center}.eng-title{font-weight:600;font-size:.9rem}.eng-versions{font-size:.75rem;opacity:.9}.eng-summary-cards{display:flex;gap:.5rem;padding:.75rem;background:var(--bg-hover);border-bottom:1px solid var(--border)}.eng-card{flex:1;padding:.6rem .75rem;background:var(--bg-main);border-radius:var(--radius);border:1px solid var(--border);text-align:center}.eng-card.up{border-color:#10b98166}.eng-card.down{border-color:#ef444466}.eng-card.total{background:var(--bg-hover)}.card-label{font-size:.7rem;color:var(--text-muted);margin-bottom:.25rem}.card-value{font-size:.95rem;font-weight:700}.eng-card.up .card-value{color:#10b981}.eng-card.down .card-value{color:#ef4444}.card-pct{font-size:.7rem;color:var(--text-muted)}.card-badges{display:flex;gap:.25rem;justify-content:center;margin-top:.25rem}.card-badges .badge{padding:.1rem .4rem;border-radius:8px;font-size:.65rem;font-weight:600}.badge.new{background:#10b98133;color:#10b981}.badge.rem{background:#ef444433;color:#ef4444}.badge.chg{background:#f59e0b33;color:#f59e0b}.eng-table-title{padding:.6rem 1rem;font-size:.8rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border)}.eng-table-wrap{overflow-x:auto}.eng-detail-table{width:100%;border-collapse:collapse;font-size:.75rem}.eng-detail-table th{padding:.5rem;text-align:left;background:var(--bg-hover);font-weight:600;font-size:.65rem;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap}.eng-detail-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:top}.eng-detail-table .pos-name{font-weight:500;color:var(--text-primary);word-break:break-word;min-width:200px}.eng-detail-table .pos-type{font-size:.72rem;color:var(--text-muted);text-align:center;white-space:nowrap;width:65px}.eng-detail-table .pos-vals{font-family:SF Mono,monospace;font-size:.78rem;white-space:nowrap;text-align:right;padding-right:.75rem}.eng-detail-table .pos-diff{font-family:SF Mono,monospace;font-size:.78rem;font-weight:600;white-space:nowrap;text-align:right;padding-right:.75rem}.eng-detail-table .pos-reason{font-size:.75rem;color:var(--text-secondary);max-width:150px}.eng-detail-table .pos-comment{font-size:.73rem;color:var(--primary);max-width:200px;line-height:1.4}.eng-detail-table .col-type{text-align:center;width:65px}.eng-detail-table .col-price,.eng-detail-table .col-diff{text-align:right;padding-right:.75rem}.eng-detail-table .pos-vals .qty{display:block;font-size:.65rem;color:var(--text-muted)}.eng-detail-table .diff-up{color:#10b981;font-weight:600}.eng-detail-table .diff-down{color:#ef4444;font-weight:600}.eng-detail-table .reason{font-size:.68rem;color:var(--text-secondary)}.eng-detail-table .comment{font-size:.65rem;color:var(--primary);line-height:1.3}.eng-detail-table tr.row-new{background:#10b9810d}.eng-detail-table tr.row-removed{background:#ef44440d}.eng-detail-table tr.row-removed .pos-name{text-decoration:line-through;opacity:.7}.eng-detail-table tr.type-sub-mat{background:#22c55e14}.eng-detail-table tr.type-mat{background:#3b82f614}.eng-detail-table tr.type-sub-rab{background:#a855f714}.eng-detail-table tr.type-rab{background:#b4825a14}[data-theme=dark] .eng-detail-table tr.type-sub-mat{background:#22c55e1f}[data-theme=dark] .eng-detail-table tr.type-mat{background:#3b82f61f}[data-theme=dark] .eng-detail-table tr.type-sub-rab{background:#a855f71f}[data-theme=dark] .eng-detail-table tr.type-rab{background:#b4825a1f}.more-rows{padding:.5rem 1rem;font-size:.75rem;color:var(--text-muted);text-align:center;border-top:1px solid var(--border)}.eng-conclusion{padding:1rem;background:linear-gradient(135deg,#22d3ee08,#8b5cf608);border-top:1px solid var(--border)}.concl-title{font-weight:700;font-size:.9rem;color:var(--text-primary);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.concl-section{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px dashed var(--border-light)}.concl-section:last-child{border-bottom:none;margin-bottom:0}.concl-subtitle{font-weight:600;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.concl-text{font-size:.8rem;line-height:1.6;color:var(--text-secondary)}.concl-text strong{color:var(--primary)}.concl-text.no-risks{color:var(--success)}.concl-top-list{display:flex;flex-direction:column;gap:.4rem}.top-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-hover);border-radius:4px;font-size:.75rem}.top-item.up{border-left:3px solid #10b981}.top-item.down{border-left:3px solid #ef4444}.top-num{font-weight:600;color:var(--text-muted);min-width:20px}.top-name{flex:1;color:var(--text-primary)}.top-diff{font-family:SF Mono,monospace;font-weight:600}.top-item.up .top-diff{color:#10b981}.top-item.down .top-diff{color:#ef4444}.top-pct{font-size:.7rem;color:var(--text-muted);min-width:45px;text-align:right}.concl-breakdown{display:flex;flex-direction:column;gap:.4rem}.breakdown-item{padding:.4rem .6rem;background:var(--bg-hover);border-radius:4px;font-size:.78rem}.breakdown-item.mat{border-left:3px solid #3b82f6}.breakdown-item.work{border-left:3px solid #a855f7}.breakdown-conclusion{font-size:.78rem;color:var(--text-secondary);margin-top:.3rem;padding-left:.5rem}.concl-risks{display:flex;flex-direction:column;gap:.3rem}.risk-item{padding:.4rem .6rem;background:#ef444414;border-left:3px solid #ef4444;border-radius:4px;font-size:.75rem;color:var(--text-primary)}.concl-recommendation{padding:.6rem .8rem;background:#3b82f614;border-left:3px solid var(--primary);border-radius:4px;font-size:.78rem;line-height:1.5;color:var(--text-secondary)}.concl-recommendation strong{color:var(--primary);display:block;margin-bottom:.25rem}.boq-no-data{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}@media(max-width:768px){.boq-upload-item{flex-direction:column;align-items:flex-start;gap:.75rem}.boq-uploaded-status{width:100%;justify-content:flex-start}.eng-summary-cards{flex-direction:column}.eng-detail-table{font-size:.65rem}.eng-detail-table th,.eng-detail-table td{padding:.3rem .4rem}}.comment-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.comment-panel{position:fixed;top:0;left:0;width:400px;max-width:90vw;height:100vh;background:var(--bg-card);box-shadow:4px 0 20px #0000004d;display:flex;flex-direction:column;animation:slideInLeft .3s ease;z-index:1001}@keyframes slideInLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.comment-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg-hover)}.comment-panel-header h3{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.comment-panel-close{width:36px;height:36px;border:none;background:transparent;font-size:1.5rem;color:var(--text-muted);cursor:pointer;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;transition:all .2s}.comment-panel-close:hover{background:var(--bg-active);color:var(--danger)}.comment-panel-row-info{padding:1rem 1.5rem;background:linear-gradient(135deg,var(--primary-light),var(--bg-hover));border-bottom:1px solid var(--border)}.comment-panel-row-info .row-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.comment-panel-row-info .row-name{display:block;font-size:.95rem;font-weight:600;color:var(--text-primary);line-height:1.4}.comment-panel-content{flex:1;padding:1.5rem;overflow-y:auto}.comment-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem}.comment-panel-textarea{width:100%;min-height:200px;padding:1rem;font-size:.95rem;line-height:1.6;border:2px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-main);color:var(--text-primary);resize:vertical;font-family:inherit;transition:border-color .2s,box-shadow .2s}.comment-panel-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}.comment-panel-textarea::placeholder{color:var(--text-muted)}.comment-panel-actions{display:flex;gap:1rem;padding:1.25rem 1.5rem;border-top:1px solid var(--border);background:var(--bg-hover)}.comment-panel-actions .btn-secondary,.comment-panel-actions .btn-primary{flex:1;padding:.875rem 1.5rem;font-size:.95rem;font-weight:600}.comment-preview{font-size:.8rem;display:inline}.comment-metadata{color:var(--text-muted);font-size:.75rem}.comment-text{color:#22d3ee;font-weight:600;font-size:.85rem;background:#22d3ee26;padding:.15rem .4rem;border-radius:4px;margin-left:.25rem}@media(max-width:500px){.comment-panel{width:100%;max-width:100%}}.login-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.login-modal{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000080;width:100%;max-width:420px;margin:1rem;overflow:hidden;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.login-modal-header{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;padding:2rem;text-align:center}.login-modal-header .login-icon{font-size:3rem;display:block;margin-bottom:1rem}.login-modal-header h2{margin:0 0 .5rem;font-size:1.5rem;font-weight:700}.login-modal-header p{margin:0;opacity:.9;font-size:.95rem}.login-modal-content{padding:2rem}.login-label{display:block;font-size:.9rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem}.login-input{width:100%;padding:1rem 1.25rem;font-size:1rem;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-main);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.login-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-light)}.login-input::placeholder{color:var(--text-muted)}.login-hint{margin-top:.75rem;font-size:.8rem;color:var(--text-muted);line-height:1.4}.login-modal-actions{padding:0 2rem 2rem}.login-btn{width:100%;padding:1rem 1.5rem;font-size:1.1rem;font-weight:600;border-radius:var(--radius)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.dropdown-user-name{display:block;font-weight:600;color:var(--text-primary);font-size:.95rem;margin-bottom:.25rem}.context-menu{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000004d;min-width:200px;padding:.5rem 0;animation:contextMenuFadeIn .15s ease}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;border:none;background:transparent;color:var(--text-primary);font-size:.9rem;cursor:pointer;text-align:left;transition:background-color .15s}.context-menu-item:hover{background:var(--bg-hover)}.context-menu-item:active{background:var(--bg-active)}.context-menu-icon{font-size:1rem}.boq-search-panel{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;margin-bottom:.5rem;background:var(--bg-hover);border-radius:var(--radius);border:1px solid var(--border)}.boq-search-wrapper{position:relative;display:flex;align-items:center;flex:1;max-width:400px}.boq-search-wrapper .search-icon{position:absolute;left:12px;font-size:.9rem;opacity:.6;pointer-events:none}.boq-search-input{width:100%;padding:.6rem 2.5rem;font-size:.9rem;border:2px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-primary);transition:all .2s ease}.boq-search-input:focus{outline:none;border-color:var(--primary);background:var(--bg-input);box-shadow:0 0 0 3px #3b82f626}.boq-search-input::placeholder{color:var(--text-muted)}.search-clear-btn{position:absolute;right:8px;display:none;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:var(--text-muted);color:#fff;font-size:.7rem;cursor:pointer;transition:background .15s ease}.search-clear-btn:hover{background:var(--danger)}.search-results-count{display:none;font-size:.85rem;color:var(--primary);font-weight:600;padding:.4rem .8rem;background:#3b82f61a;border-radius:4px;white-space:nowrap}.boq-filter-panel{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:.75rem;background:var(--bg-hover);border-radius:var(--radius);border:1px solid var(--border)}.boq-filter-panel .filter-label{font-weight:600;color:var(--text-secondary);font-size:.85rem;margin-right:.5rem}.boq-filter-panel .filter-btn{padding:.4rem .75rem;font-size:.8rem;font-weight:500;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all .15s ease;white-space:nowrap}.boq-filter-panel .filter-btn:hover{background:var(--bg-active);border-color:var(--primary);color:var(--primary)}.boq-filter-panel .filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.eng-detail-table tbody tr.sig-minor{background:#22c55e14;border-left:3px solid #22c55e}.eng-detail-table tbody tr.sig-medium{background:#eab30814;border-left:3px solid #eab308}.eng-detail-table tbody tr.sig-significant{background:#f9731614;border-left:3px solid #f97316}.eng-detail-table tbody tr.sig-critical{background:#ef44441a;border-left:3px solid #ef4444}[data-theme=dark] .eng-detail-table tbody tr.sig-minor{background:#22c55e1f}[data-theme=dark] .eng-detail-table tbody tr.sig-medium{background:#eab3081f}[data-theme=dark] .eng-detail-table tbody tr.sig-significant{background:#f9731626}[data-theme=dark] .eng-detail-table tbody tr.sig-critical{background:#ef44442e}.boq-filter-status{padding:.5rem 1rem;font-size:.85rem;color:var(--text-muted);text-align:right;border-top:1px solid var(--border);margin-top:.5rem}.aggregated-scope-section{margin-top:2rem;padding:1.5rem;background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border)}.aggregated-scope-section h3{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-primary)}.aggregated-scope-section .section-desc{margin:0 0 1.5rem;font-size:.85rem;color:var(--text-muted)}.scope-comparison-table-wrap{overflow-x:auto;margin-bottom:1.5rem;border-radius:var(--radius);border:1px solid var(--border)}.scope-comparison-table{width:100%;border-collapse:collapse;font-size:.78rem}.scope-comparison-table.visual-compare .group-header-row th{padding:.75rem .5rem;text-align:center;font-size:.8rem;font-weight:700;text-transform:none;border-bottom:none}.scope-comparison-table.visual-compare .group-header{position:relative}.scope-comparison-table.visual-compare .group-header.tender-a{background:linear-gradient(135deg,#3b82f626,#3b82f614);color:#60a5fa;border-left:3px solid #3b82f6}.scope-comparison-table.visual-compare .group-header.tender-b{background:linear-gradient(135deg,#a855f726,#a855f714);color:#c084fc;border-left:3px solid #a855f7}.scope-comparison-table.visual-compare .group-header.diff-group{background:linear-gradient(135deg,#fbbf2426,#fbbf2414);color:#fbbf24;border-left:3px solid #f59e0b}.tender-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:.7rem;font-weight:700;margin-right:.4rem}.group-header.tender-a .tender-badge{background:#3b82f6;color:#fff}.group-header.tender-b .tender-badge{background:#a855f7;color:#fff}.scope-comparison-table.visual-compare .sub-header-row th{padding:.5rem;font-size:.65rem;font-weight:600;text-transform:uppercase;border-bottom:2px solid var(--border)}.scope-comparison-table.visual-compare .sub-header-row th.tender-a{background:#3b82f60f;color:#93c5fd}.scope-comparison-table.visual-compare .sub-header-row th.tender-b{background:#a855f70f;color:#d8b4fe}.scope-comparison-table th{padding:.6rem .5rem;text-align:left;background:var(--bg-hover);font-weight:600;font-size:.65rem;text-transform:uppercase;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap}.scope-comparison-table th.col-num{width:40px;text-align:center}.scope-comparison-table th.col-scope{min-width:180px;text-align:left}.scope-comparison-table th.col-val{text-align:right;width:95px}.scope-comparison-table th.col-diff{text-align:center;width:110px}.scope-comparison-table th.col-pct{text-align:center;width:80px}.scope-comparison-table td{padding:.6rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle}.scope-comparison-table .scope-num{text-align:center;font-weight:700;color:var(--primary);font-size:.85rem}.scope-comparison-table .scope-name{font-weight:500;color:var(--text-primary)}.scope-comparison-table td.tender-a{background:#3b82f60a;border-left:1px solid rgba(59,130,246,.1)}.scope-comparison-table td.tender-a.total-col{background:#3b82f61a;font-weight:700;color:#60a5fa}.scope-comparison-table td.tender-b{background:#a855f70a;border-left:1px solid rgba(168,85,247,.1)}.scope-comparison-table td.tender-b.total-col{background:#a855f71a;font-weight:700;color:#c084fc}.scope-comparison-table .val{text-align:right;font-family:SF Mono,Consolas,monospace;font-size:.75rem;color:var(--text-secondary)}.scope-comparison-table .diff-cell,.scope-comparison-table .pct-cell{text-align:center;font-family:SF Mono,Consolas,monospace;font-weight:700;background:#fbbf240d;border-left:1px solid rgba(251,191,36,.15)}.scope-comparison-table .diff-cell .diff-value,.scope-comparison-table .pct-cell .pct-value{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.scope-comparison-table .diff-cell.up .diff-value,.scope-comparison-table .pct-cell.up .pct-value{background:#10b98126;color:#34d399}.scope-comparison-table .diff-cell.down .diff-value,.scope-comparison-table .pct-cell.down .pct-value{background:#ef444426;color:#f87171}.scope-comparison-table .diff-cell.neutral .diff-value,.scope-comparison-table .pct-cell.neutral .pct-value{background:#9ca3af26;color:var(--text-muted)}.scope-comparison-table .pct-cell.abnormal .pct-value{background:#f9731640;color:#fb923c;animation:pulse-warning 2s infinite}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.7}}.scope-comparison-table tr.abnormal-row{background:#f9731608}.scope-comparison-table tr.abnormal-row td:first-child{border-left:4px solid #f97316}.scope-comparison-table tfoot .totals-row{background:var(--bg-hover)}.scope-comparison-table tfoot .totals-row td{border-top:3px solid var(--border);padding:.75rem .5rem;font-weight:600}.scope-comparison-table tfoot .totals-row td.tender-a{background:#3b82f61f}.scope-comparison-table tfoot .totals-row td.tender-b{background:#a855f71f}.scope-comparison-table tfoot .totals-row .diff-cell,.scope-comparison-table tfoot .totals-row .pct-cell{background:#fbbf241f}.scope-comparison-table tfoot .totals-row td{border-top:2px solid var(--border);padding:.75rem .5rem}.scope-analytics-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.summary-card{padding:1rem;background:var(--bg-hover);border-radius:var(--radius);border:1px solid var(--border)}.summary-card h4{margin:0 0 .75rem;font-size:.85rem;color:var(--text-primary)}.summary-card.drivers{border-left:3px solid var(--primary)}.summary-card.abnormal{border-left:3px solid #f97316}.driver-list,.abnormal-list{display:flex;flex-direction:column;gap:.5rem}.driver-item,.abnormal-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-card);border-radius:4px;font-size:.75rem}.driver-item.up{border-left:3px solid #10b981}.driver-item.down{border-left:3px solid #ef4444}.driver-rank{font-weight:600;color:var(--text-muted);min-width:20px}.driver-name,.abnormal-name{flex:1;color:var(--text-primary)}.driver-diff{font-family:SF Mono,monospace;font-weight:600}.driver-item.up .driver-diff{color:#10b981}.driver-item.down .driver-diff{color:#ef4444}.abnormal-pct{font-family:SF Mono,monospace;font-weight:600}.abnormal-pct.up{color:#10b981}.abnormal-pct.down{color:#ef4444}.scope-table-with-panel{display:flex;gap:1rem}.scope-table-with-panel .scope-comparison-table-wrap{flex:1;min-width:0}.scope-comparison-table .clickable-row{cursor:pointer;transition:background .2s}.scope-comparison-table .clickable-row:hover{background:var(--bg-hover)}.scope-comparison-table .clickable-row.selected-row{background:#22d3ee1a;border-left:3px solid var(--primary)}.expand-indicator{color:var(--primary);font-size:.75rem;margin-left:.5rem}.scope-detail-panel{width:520px;min-width:520px;max-height:600px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.scope-detail-panel .panel-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-hover);border-bottom:1px solid var(--border)}.scope-detail-panel .panel-header h4{margin:0;font-size:.9rem;color:var(--text-primary)}.scope-detail-panel .panel-close{background:none;border:none;font-size:1.2rem;color:var(--text-muted);cursor:pointer;padding:.25rem .5rem;line-height:1}.scope-detail-panel .panel-close:hover{color:var(--text-primary)}.scope-detail-panel .panel-scope-name{padding:.75rem 1rem;font-size:.8rem;font-weight:600;color:var(--primary);background:#22d3ee0d;border-bottom:1px solid var(--border)}.scope-detail-panel .panel-labels{display:flex;gap:1rem;padding:.5rem 1rem;font-size:.7rem;color:var(--text-muted);border-bottom:1px solid var(--border)}.scope-detail-panel .panel-labels .label-a{color:#f59e0b}.scope-detail-panel .panel-labels .label-b{color:#8b5cf6}.scope-detail-panel .panel-items{flex:1;overflow-y:auto;padding:.5rem}.scope-detail-panel .panel-item{padding:.6rem .75rem;margin-bottom:.4rem;background:var(--bg-main);border-radius:4px;border-left:3px solid var(--border)}.scope-detail-panel .panel-item.up{border-left-color:#10b981}.scope-detail-panel .panel-item.down{border-left-color:#ef4444}.scope-detail-panel .panel-item .item-name{font-size:.75rem;color:var(--text-primary);margin-bottom:.3rem;line-height:1.3}.scope-detail-panel .panel-item .item-values{display:flex;align-items:center;gap:.5rem;font-size:.7rem;color:var(--text-muted);margin-bottom:.2rem}.scope-detail-panel .panel-item .item-values .val-a{color:#f59e0b}.scope-detail-panel .panel-item .item-values .val-b{color:#8b5cf6}.scope-detail-panel .panel-item .item-values .val-arrow{color:var(--text-muted)}.scope-detail-panel .panel-item .item-diff{font-size:.7rem;font-weight:600;font-family:SF Mono,monospace}.scope-detail-panel .panel-item .item-diff.up{color:#10b981}.scope-detail-panel .panel-item .item-diff.down{color:#ef4444}.scope-detail-panel .panel-no-items{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.8rem}@media(max-width:1200px){.scope-table-with-panel{flex-direction:column-reverse}.scope-detail-panel{width:100%;min-width:100%;max-height:300px}}.boq-detail-collapsible{margin:1.5rem 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);overflow:hidden}.boq-detail-toggle{width:100%;display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-hover);border:none;cursor:pointer;text-align:left;transition:background .2s}.boq-detail-toggle:hover{background:var(--bg-tertiary)}.boq-detail-toggle .toggle-icon{font-size:.75rem;color:var(--text-muted);transition:transform .25s ease}.boq-detail-collapsible.expanded .toggle-icon{transform:rotate(90deg)}.boq-detail-toggle .toggle-text{flex:1;font-size:.95rem;font-weight:600;color:var(--primary)}.boq-detail-toggle .toggle-hint{font-size:.75rem;color:var(--text-muted);font-weight:400}.boq-detail-collapsible.expanded .toggle-hint{display:none}.boq-detail-content{display:none;padding:1rem;border-top:1px solid var(--border)}.boq-detail-collapsible.expanded .boq-detail-content{display:block}.scope-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.scope-section-header h3{margin:0 0 .25rem}.scope-section-header .section-desc{margin:0}.scope-view-toggle{flex-shrink:0;padding:.5rem 1rem;background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);font-size:.8rem;color:var(--text-secondary);cursor:pointer;transition:all .2s;white-space:nowrap}.scope-view-toggle:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--primary)}.scope-view-toggle.active{background:var(--primary);color:#fff;border-color:var(--primary)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.agent-panel textarea:focus{outline:none;border-color:var(--primary)}.dt-page{display:flex;flex-direction:column;gap:1.25rem}.dt-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.dt-title{margin:0;font-size:1.75rem;font-weight:700;color:var(--text-primary)}.dt-date{margin:.25rem 0 0;color:var(--text-muted);font-size:.9rem}.dt-header-right{display:flex;align-items:center;gap:.75rem}.dt-connection{font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:20px}.dt-connected{color:#22c55e;background:#22c55e1a}.dt-disconnected{color:#ef4444;background:#ef44441a}.dt-stats-bar{display:flex;gap:1rem;flex-wrap:wrap}.dt-stat-item{flex:1;min-width:100px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem;text-align:center}.dt-stat-num{display:block;font-size:1.5rem;font-weight:700}.dt-stat-item span:last-child{font-size:.75rem;color:var(--text-muted)}.dt-tabs{display:flex;gap:0;background:transparent;border-radius:0;padding:0;border:none}.dt-tab{flex:1;padding:.6rem 1rem;border:none;background:transparent;color:var(--text-muted);font-size:.85rem;font-weight:500;border-radius:0;cursor:pointer;transition:all .2s}.dt-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.dt-tab-active{color:var(--text-primary)!important;background:#3b82f60f!important;font-weight:700!important;border-bottom:2px solid var(--primary, #3b82f6)!important}.dt-filters{display:flex;gap:.75rem;flex-wrap:wrap}.dt-filter-select{padding:.5rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:.85rem}.dt-task-list{display:flex;flex-direction:column;gap:.75rem}.dt-task-card{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:.35rem .5rem;transition:all .2s;margin-bottom:.15rem;font-size:.82rem;user-select:text;-webkit-user-select:text}.dt-task-card:hover{border-color:var(--primary)}.dt-task-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap}.dt-priority-badge{font-size:.7rem;font-weight:700;padding:2px 10px;border-radius:20px;letter-spacing:.5px}.dt-status-badge{font-size:.72rem;font-weight:600}.dt-task-type{font-size:.68rem;color:var(--text-muted);margin-left:auto;font-family:monospace}.dt-task-name{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary);user-select:text;-webkit-user-select:text;cursor:text}.dt-task-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.25rem 1rem;font-size:.82rem;color:var(--text-secondary);margin-bottom:.5rem;user-select:text;-webkit-user-select:text;cursor:text}.dt-task-message{font-size:.82rem;color:var(--text-secondary);padding:.5rem;background:var(--bg-hover);border-radius:6px;margin-bottom:.5rem;white-space:pre-wrap;word-break:break-all;user-select:text;-webkit-user-select:text;cursor:text}.dt-task-analysis{font-size:.8rem;color:var(--accent);padding:.5rem;background:#0891b20d;border-radius:6px;border-left:3px solid var(--accent);margin-bottom:.5rem;user-select:text;-webkit-user-select:text;cursor:text}.dt-task-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.dt-btn{padding:.5rem 1rem;border-radius:var(--radius);border:1px solid var(--border);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s}.dt-btn-new{background:var(--primary);color:#fff;border:none}.dt-btn-new:hover{opacity:.9}.dt-btn-accept{background:#22c55e;color:#fff;border:none}.dt-btn-accept:hover{background:#16a34a}.dt-btn-accept:disabled{opacity:.5;cursor:not-allowed}.dt-btn-complete{background:#3b82f6;color:#fff;border:none}.dt-btn-complete:hover{background:#2563eb}.dt-btn-remind{background:transparent;color:var(--text-secondary)}.dt-btn-remind:hover{background:var(--bg-hover)}.dt-btn-extend{background:transparent;color:#f59e0b;border-color:#f59e0b}.dt-btn-extend:hover{background:#f59e0b1a}.dt-blink{animation:dt-code-red-blink 1s ease-in-out infinite}@keyframes dt-code-red-blink{0%,to{box-shadow:0 0 #ef444400}50%{box-shadow:0 0 20px 4px #ef44444d}}.dt-overdue{animation:dt-overdue-blink .8s ease-in-out infinite;border-color:#ef4444!important}@keyframes dt-overdue-blink{0%,to{box-shadow:0 0 #ef444400;background:var(--bg-card)}50%{box-shadow:0 0 15px 3px #ef444440;background:#ef44440d}}.dt-sidebar-blink{animation:dt-sidebar-pulse 1.2s ease-in-out infinite}@keyframes dt-sidebar-pulse{0%,to{background:transparent}50%{background:#ef444426}}@keyframes dt-blink-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(1.3)}}.dt-engineers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.dt-engineer-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem}.dt-eng-header h4{margin:0;font-size:1rem;color:var(--text-primary)}.dt-eng-disciplines{font-size:.78rem;color:var(--text-muted);margin-top:.25rem}.dt-eng-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:1rem;text-align:center}.dt-eng-stat-value{display:block;font-size:1.25rem;font-weight:700}.dt-eng-stat-label{font-size:.68rem;color:var(--text-muted)}.dt-eng-active{margin-top:.75rem;font-size:.82rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.dt-eng-active-dot{width:8px;height:8px;border-radius:50%;background:#3b82f6;animation:dt-pulse 2s infinite}@keyframes dt-pulse{0%,to{opacity:1}50%{opacity:.3}}.dt-eng-queue{margin-top:.5rem;display:flex;gap:1rem;font-size:.78rem}.dt-gantt{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;overflow:hidden;position:relative;min-height:150px}.dt-gantt-header{display:none}.dt-gantt-hour{flex:1;text-align:center;font-size:.7rem;color:var(--text-muted);min-width:50px}.dt-gantt-now{display:none}.dt-gantt-row{display:flex;align-items:center;min-height:42px;border-bottom:1px solid var(--border)}.dt-gantt-label{width:220px;min-width:220px;font-size:.78rem;font-weight:600;color:var(--text-secondary);padding-right:.5rem;overflow:hidden}.dt-gantt-bars{flex:1;position:relative;height:28px}.dt-gantt-bar{position:absolute;top:2px;height:24px;border-radius:4px;border:1px solid;display:flex;align-items:center;padding:0 6px;overflow:hidden}.dt-gantt-bar-text{font-size:.65rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dt-gantt-pause{font-size:.7rem;font-weight:700;color:#8b5cf6;margin-left:4px}.dt-escalations{display:flex;flex-direction:column;gap:.75rem}.dt-escalation-card{display:flex;align-items:flex-start;gap:.75rem;background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);padding:1rem}.dt-esc-icon{font-size:1.25rem;font-weight:700;color:#ef4444;background:#ef44441a;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.dt-esc-detail{font-size:.82rem;color:var(--text-secondary);margin-top:.25rem}.dt-esc-time{font-size:.75rem;color:#ef4444;font-weight:600;margin-top:.25rem}.dt-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.dt-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.dt-modal-sm{max-width:400px}.dt-modal h3{margin:0 0 1rem;font-size:1.1rem;color:var(--text-primary)}.dt-form{display:flex;flex-direction:column;gap:.75rem}.dt-form-row{display:flex;gap:.75rem}.dt-form-row>*{flex:1}.dt-input{padding:.6rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-main);color:var(--text-primary);font-size:.85rem}.dt-input:focus{outline:none;border-color:var(--primary)}.dt-textarea{padding:.6rem .75rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-main);color:var(--text-primary);font-size:.85rem;resize:vertical;font-family:inherit}.dt-textarea:focus{outline:none;border-color:var(--primary)}.dt-empty{text-align:center;padding:3rem 2rem;background:var(--bg-card);border-radius:var(--radius-lg);border:1px dashed var(--border);color:var(--text-muted)}.dt-ai-result{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:var(--bg-main);border-radius:var(--radius);border:1px solid var(--border)}.dt-ai-row{display:flex;align-items:center;gap:.75rem}.dt-ai-label{min-width:120px;font-size:.78rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.dt-ai-value{font-size:.9rem;color:var(--text-primary)}@media(max-width:768px){.dt-page{padding:.5rem!important}.dt-header{flex-direction:column;gap:.5rem;align-items:flex-start!important}.dt-header-right{width:100%;justify-content:flex-end}.dt-title{font-size:1.2rem!important}.dt-tabs{overflow-x:auto;flex-wrap:nowrap;gap:0!important}.dt-tab{font-size:.75rem!important;padding:.4rem .6rem!important;white-space:nowrap}.dt-filters{flex-direction:column;gap:.4rem!important}.dt-filter-select{width:100%}.dt-task-card{padding:.3rem .4rem!important}.dt-task-meta{flex-direction:column;gap:.2rem}.dt-task-meta span{font-size:.75rem}.dt-task-actions{flex-wrap:wrap;gap:.3rem}.dt-task-actions .dt-btn{font-size:.7rem!important;padding:.3rem .5rem!important}.dt-engineers-grid{grid-template-columns:1fr!important}.dt-gantt-label{min-width:140px!important;width:140px!important;font-size:.65rem!important}.dt-gantt-hour{font-size:.6rem!important}.dt-gantt-bar-text{font-size:.55rem!important}.dt-modal{width:95vw!important;max-width:none!important;max-height:90vh!important}.dt-ai-row{flex-direction:column;align-items:flex-start;gap:.2rem}.dt-ai-label{min-width:auto}.dt-escalation-card{padding:.5rem!important}}@media(max-width:480px){.sidebar{display:none!important}.app-container{grid-template-columns:1fr!important}.header-right .admin-btn{display:none}.dt-header-right{flex-wrap:wrap}.dt-btn-new{font-size:.7rem!important;padding:.3rem .5rem!important}}@keyframes slideRight{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(-100%)}}table.boq-grid>tbody>tr>td,table.boq-grid>thead>tr>th,table.boq-grid>thead>tr>td{border-right:1px solid rgba(148,163,184,.18);border-bottom:1px solid rgba(148,163,184,.18)}table.boq-grid>tbody>tr>td:last-child,table.boq-grid>thead>tr>th:last-child,table.boq-grid>thead>tr>td:last-child{border-right:none}table.boq-grid>tbody>tr>td{color:#d4d8e0}
