/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-white:#fff;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.box-border{box-sizing:border-box}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.table-cell{display:table-cell}.table-column{display:table-column}.table-row{display:table-row}.min-h-screen{min-height:100vh}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-\[\#f5f7fb\]{background-color:#f5f7fb}.bg-white{background-color:var(--color-white)}.p-4{padding:calc(var(--spacing) * 4)}.pb-\[calc\(40rpx\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(40rpx + env(safe-area-inset-bottom))}.italic{font-style:italic}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.\!outline{outline-style:var(--tw-outline-style)!important;outline-width:1px!important}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--navy:#0b1739;--navy-2:#102552;--blue:#2866e8;--cyan:#10a9c7;--orange:#f59e0b;--red:#ef4444;--ink:#17233f;--muted:#71809c;--line:#e7ecf4;--surface:#f5f7fb}*{box-sizing:border-box}html,body{background:var(--surface);min-height:100%;color:var(--ink);margin:0;font-family:Microsoft YaHei UI,PingFang SC,Segoe UI,sans-serif}button{font:inherit}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:linear-gradient(165deg,var(--navy),#07102a 78%);color:#fff;flex-direction:column;height:100vh;padding:22px 16px;display:flex;position:sticky;top:0;box-shadow:12px 0 40px #0512301a}.brand{border-bottom:1px solid #ffffff17;align-items:center;gap:12px;padding:4px 8px 24px;display:flex}.brand-mark{background:linear-gradient(145deg,#ffca57,#ff7a00);border-radius:13px;place-items:center;width:42px;height:42px;display:grid;position:relative;box-shadow:0 8px 24px #f59e0b47}.brand-mark:before,.brand-mark:after,.brand-mark span{content:"";background:#fff;border-radius:2px 2px 0 0;width:7px;position:absolute;bottom:9px}.brand-mark:before{height:13px;left:9px}.brand-mark span{height:22px;left:18px}.brand-mark:after{height:17px;right:8px}.brand strong{letter-spacing:.04em;font-size:17px;display:block}.brand small{color:#9eacd0;margin-top:2px;font-size:10px;display:block}.main-nav{scrollbar-width:thin;flex:1;padding-top:10px;overflow:auto}.main-nav p{color:#6f80ad;letter-spacing:.14em;margin:10px 10px 6px;font-size:10px}.main-nav button{color:#aab6d7;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;grid-template-columns:22px minmax(0,1fr);justify-content:stretch;align-items:center;column-gap:11px;width:100%;min-height:36px;margin:2px 0;padding:0 12px;transition:all .2s;display:grid}.main-nav button:hover,.main-nav button.active{color:#fff;background:linear-gradient(90deg,#366ff159,#366ff11a)}.main-nav button.active{box-shadow:inset 3px 0 #4f8cff}.nav-dot{color:#7f91be;background:#ffffff14;border-radius:7px;place-items:center;width:22px;height:22px;font-size:10px;display:grid}.nav-label{white-space:nowrap;min-width:0}.active .nav-dot{color:#fff;background:#2f6ce5}.nav-group{margin:3px 0}.main-nav .nav-group .group-head{grid-template-columns:22px minmax(0,1fr) 18px}.main-nav .nav-group .group-head .nav-chevron{color:#7f91be;justify-self:end;font-size:11px;font-style:normal;transition:transform .18s}.main-nav .nav-group.open .group-head .nav-chevron{transform:rotate(0)}.main-nav .nav-subitem{grid-template-columns:18px minmax(0,1fr);min-height:32px;padding-left:26px;font-size:12px}.main-nav .nav-subitem .nav-dot.sub{background:#ffffff0f;border-radius:6px;width:18px;height:18px;font-size:9px}.main-nav .nav-subitem.active .nav-dot.sub{color:#fff;background:#2f6ce5}.sidebar-user{border-top:1px solid #ffffff17;align-items:center;gap:10px;padding:14px 8px 4px;display:flex}.avatar{color:#d8e5ff;background:#27447d;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.sidebar-user b,.sidebar-user small{display:block}.sidebar-user b{font-size:12px}.sidebar-user small{color:#7182ad;margin-top:3px;font-size:10px}.beian-footer{border-top:1px solid #ffffff17;gap:2px;margin:10px 8px 0;padding:8px 6px 0;display:grid}.beian-footer a{color:#7182ad;font-size:9px;text-decoration:none;display:block}.beian-footer a:hover{color:#aab6d7}.beian-ga img{vertical-align:-2px;margin-right:3px}.beian-footer span{color:#5d6f92;font-size:9px;line-height:1.5}.workspace{min-width:0;padding:30px 34px 50px}.workspace-view{transform-origin:50% 0;min-width:0;animation:.22s cubic-bezier(.2,.78,.2,1) both workspace-view-in}.topbar{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.eyebrow{color:var(--blue);letter-spacing:.14em;margin:0 0 4px;font-size:11px;font-weight:700}.topbar h1{letter-spacing:-.04em;margin:0;font-size:28px;animation:.18s both workspace-title-in}.top-actions{gap:10px;display:flex}.top-actions button,.notice button,.panel-heading button{border:1px solid var(--line);color:#3b4b68;cursor:pointer;background:#fff;border-radius:10px;min-height:38px;padding:0 16px}.top-actions .primary{border-color:var(--blue);background:var(--blue);color:#fff;box-shadow:0 7px 20px #2866e838}@keyframes workspace-view-in{0%{opacity:0;transform:translateY(8px)scale(.997)}to{opacity:1;transform:none}}@keyframes workspace-title-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.notice{background:linear-gradient(90deg,#fffaf0,#fff);border:1px solid #fde1ad;border-radius:14px;align-items:center;gap:13px;padding:15px 18px;display:flex;box-shadow:0 8px 24px #2a3f640d}.notice-icon{color:#cf7c00;background:#ffecbd;border-radius:10px;place-items:center;width:34px;height:34px;font-weight:900;display:grid}.notice b{font-size:13px}.notice p{color:#8a7455;margin:4px 0 0;font-size:11px}.notice button{color:#8c5c0a;background:#fff9ec;border-color:#efc97d;margin-left:auto}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:18px 20px;position:relative;overflow:hidden;box-shadow:0 8px 28px #1d30550f}.stat-card:after{content:"";background:var(--accent);opacity:.08;border-radius:50%;width:72px;height:72px;position:absolute;top:-18px;right:-18px}.stat-card p{color:var(--muted);margin:0;font-size:12px}.stat-card strong{color:var(--accent);margin:8px 0 5px;font-size:28px;display:block}.stat-card small{color:#8b97ac;font-size:10px}.stat-card.blue{--accent:var(--blue)}.stat-card.cyan{--accent:var(--cyan)}.stat-card.orange{--accent:var(--orange)}.stat-card.red{--accent:var(--red)}.dashboard-grid{grid-template-columns:minmax(0,1fr) 310px;gap:18px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:16px;box-shadow:0 8px 28px #1d30550f}.panel-heading{border-bottom:1px solid #edf1f7;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;display:flex}.panel-heading h2{margin:0;font-size:15px}.panel-heading p{color:var(--muted);margin:4px 0 0;font-size:10px}.panel-heading button{min-height:32px;font-size:11px}.project-list{padding:2px 20px 10px}.project-row{border-bottom:1px solid #edf1f7;grid-template-columns:minmax(220px,1.3fr) 150px minmax(120px,.7fr) 70px;align-items:center;gap:16px;min-height:78px;display:grid}.project-row:last-child{border-bottom:0}.project-title span,.project-title b,.project-title small,.project-stage small,.project-stage b{display:block}.project-title span{color:#8390a7;letter-spacing:.05em;font-size:9px}.project-title b{margin:4px 0;font-size:12px}.project-title small,.project-stage small{color:#8c98ad;font-size:10px}.project-stage b{margin-top:5px;font-size:11px}.progress-wrap{align-items:center;gap:9px;display:flex}.progress-wrap>div{background:#eaf0f8;border-radius:10px;flex:1;height:7px;overflow:hidden}.progress-wrap span{background:linear-gradient(90deg,var(--blue),var(--cyan));border-radius:10px;height:100%;display:block}.progress-wrap small{color:#61708a;font-size:9px}.risk{border-radius:20px;justify-self:end;padding:5px 8px;font-size:9px}.risk.正常{color:#0b8f65;background:#e8f8f1}.risk.待审核{color:#b56d00;background:#fff3da}.risk.待分配{color:#c54444;background:#feecec}.action-panel{padding-bottom:8px}.action-panel>button{width:calc(100% - 24px);color:var(--ink);text-align:left;cursor:pointer;background:#f7f9fd;border:0;border-radius:11px;align-items:center;gap:12px;margin:10px 12px;padding:11px;display:flex}.action-panel>button:hover{background:#eef4ff}.action-panel>button>span{width:33px;height:33px;color:var(--blue);background:#fff;border-radius:10px;place-items:center;font-size:10px;font-weight:700;display:grid;box-shadow:0 3px 10px #23437e14}.action-panel b,.action-panel small{display:block}.action-panel b{font-size:11px}.action-panel small{color:#8b97aa;margin-top:3px;font-size:9px}.action-panel i{color:#8fa0bc;margin-left:auto;font-size:20px;font-style:normal}.dashboard-approvals{margin-top:18px;overflow:hidden}.approval-heading{align-items:flex-start}.approval-filter{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.approval-filter button{color:#65738d;cursor:pointer;background:#f8faff;border:1px solid #dfe7f3;border-radius:10px;align-items:center;gap:6px;min-height:34px;padding:0 11px;transition:background .18s,border-color .18s,color .18s,transform .18s;display:flex}.approval-filter button:hover{color:var(--blue);border-color:#bcd0f6;transform:translateY(-1px)}.approval-filter button.active{color:#1e5fd6;background:#edf4ff;border-color:#2866e8;box-shadow:0 5px 15px #2866e81a}.approval-filter span{min-width:20px;color:inherit;text-align:center;background:#fff;border-radius:20px;padding:2px 6px;font-size:9px}.approval-list{padding:5px 20px 12px}.approval-row{opacity:0;border-bottom:1px solid #edf1f7;border-left:3px solid #0000;grid-template-columns:80px minmax(150px,.9fr) minmax(180px,1fr) 72px minmax(180px,1fr) 145px 74px;align-items:center;gap:14px;min-height:84px;padding:12px 4px 12px 12px;animation:.26s forwards approval-row-in;display:grid}.approval-row:last-child{border-bottom:0}.approval-row.approved{border-left-color:#23a374}.approval-row.rejected{background:linear-gradient(90deg,#fff8f8,#fff 23%);border-left-color:#ef5350}.approval-type{white-space:nowrap;border-radius:8px;justify-self:start;padding:5px 8px;font-size:9px;font-weight:700}.approval-type.document{color:#245fc8;background:#eaf2ff}.approval-type.hidden{color:#b96800;background:#fff1df}.approval-type.engineering{color:#b86900;background:#fff2dd}.approval-type.boq{color:#117f68;background:#e8f8f3}.approval-project small,.approval-project b,.approval-item small,.approval-item b,.approval-meta small,.approval-meta b,.approval-comment small{display:block}.approval-project small,.approval-item small,.approval-meta small,.approval-comment small{color:#8794aa;font-size:9px}.approval-project b,.approval-item b,.approval-meta b{margin-top:5px;font-size:11px}.approval-project b,.approval-item b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.approval-comment p{color:#53617b;margin:5px 0 0;font-size:10px;line-height:1.55}.approval-comment.reject-reason small,.approval-comment.reject-reason p{color:#c74242}.approval-comment.reject-reason p{font-weight:700}.approval-open{color:#425371;cursor:pointer;background:#fff;border:1px solid #dce5f3;border-radius:9px;min-height:32px;padding:0 10px;font-size:10px;transition:all .18s}.approval-open:hover{color:var(--blue);background:#f4f8ff;border-color:#9cbcf5}@keyframes approval-row-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1050px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.workspace{padding:24px 22px}.stat-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.action-panel{display:none}.project-row{grid-template-columns:minmax(170px,1fr) 100px minmax(90px,.6fr) 55px;gap:10px}}@media (max-width:1180px){.approval-row{grid-template-columns:72px minmax(150px,1fr) minmax(170px,1fr) 70px minmax(180px,1fr) 76px}.approval-meta{display:none}}@media (max-width:820px){.approval-heading{display:block}.approval-filter{margin-top:13px}.approval-row{grid-template-columns:76px minmax(0,1fr) 70px 70px}.approval-item{grid-column:2}.approval-comment{grid-column:2/4}.approval-open{grid-area:1/4/3}.approval-meta{grid-column:2/4;display:block}.approval-meta b,.approval-meta small{margin:0 8px 0 0;display:inline}}@media (max-width:720px){.app-shell{display:block}.sidebar{width:100%;height:auto;padding:12px 16px;position:relative}.brand{border:0;padding:0}.main-nav,.sidebar-user{display:none}.workspace{padding:18px 14px}.topbar{align-items:flex-start}.top-actions .ghost{display:none}.notice{align-items:flex-start}.notice button{display:none}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px}.project-row{grid-template-columns:1fr 74px}.project-stage,.progress-wrap{display:none}.approval-list{padding:7px 12px 12px}.approval-row{grid-template-columns:72px minmax(0,1fr) 66px;gap:9px;padding:14px 3px 14px 9px}.approval-project{grid-column:2}.approval-item{grid-column:2/4}.approval-comment{grid-column:1/4}.approval-meta{grid-column:1/3}.approval-open{grid-area:3/3}.approval-heading{padding:16px}.approval-filter button{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){.approval-row{opacity:1;animation:none}.approval-filter button,.approval-open{transition:none}}input,select,textarea{width:100%;min-height:40px;color:var(--ink);font:inherit;background:#fff;border:1px solid #dce4f0;border-radius:9px;outline:0;padding:9px 11px;font-size:12px}input:focus,select:focus,textarea:focus{border-color:#7da4f4;box-shadow:0 0 0 3px #2866e81a}textarea{resize:vertical;line-height:1.6}label{color:#52617b;gap:6px;font-size:11px;font-weight:600;display:grid}button,.button{border:1px solid var(--line);color:#3b4b68;cursor:pointer;background:#fff;border-radius:9px;justify-content:center;align-items:center;min-height:36px;padding:0 14px;font-size:11px;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:#f7faff;border-color:#afc5eb}button:disabled{opacity:.45;cursor:not-allowed}.primary{box-shadow:0 7px 18px #2866e82e;border-color:var(--blue)!important;background:var(--blue)!important;color:#fff!important}.wide{width:100%}.logout{color:#8294c0;background:0 0;border-color:#ffffff1f;min-height:28px;margin-left:auto;padding:0 7px}.environment{color:#71809c;align-items:center;gap:7px;font-size:10px;display:flex}.environment span{background:#24b47e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #24b47e1f}.toast{z-index:80;color:#344564;background:#fff;border:1px solid #c9d9f7;border-radius:11px;align-items:center;gap:16px;max-width:430px;padding:12px 14px;font-size:12px;display:flex;position:fixed;top:20px;right:24px;box-shadow:0 14px 50px #0f234e33}.toast button{border:0;min-height:24px;padding:0 6px;font-size:18px}.toolbar{border:1px solid var(--line);background:#fff;border-radius:13px;justify-content:space-between;align-items:center;gap:16px;min-height:58px;margin-bottom:15px;padding:10px 14px;display:flex}.toolbar p{color:#72809a;margin:0;font-size:11px}.toolbar>div{align-items:center;gap:8px;display:flex}.toolbar select{min-width:270px}.status{color:#52617b;white-space:nowrap;background:#edf2f8;border-radius:20px;align-items:center;width:max-content;padding:4px 8px;font-size:9px;display:inline-flex}.status-正常,.status-通过,.status-已通过,.status-已确认{color:#0b8f65;background:#e8f8f1}.status-待分配,.status-错误,.status-已退回,.status-已驳回,.status-已停用,.status-成本预警,.status-超支预警{color:#c54444;background:#feecec}.status-待审核,.status-待确认,.status-待首次改密,.status-已锁定{color:#b56d00;background:#fff3da}.status-已发布,.status-在建{color:#2866e8;background:#eaf1ff}.status-草稿,.status-策划,.status-待完成{color:#65728a;background:#f0f2f6}.table-wrap{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:auto;box-shadow:0 8px 28px #1d30550d}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;border-bottom:1px solid #edf1f7;padding:12px 13px;font-size:11px}th{z-index:2;color:#6d7a91;background:#f7f9fc;font-weight:600;position:sticky;top:0}td{color:#44526c}td b,td small{display:block}td small{color:#929db0;margin-top:4px;font-size:9px}td input[type=checkbox],th input[type=checkbox]{width:15px;min-height:15px}.danger{color:#d74747!important}em{color:#d2771c;font-style:normal}.auth-screen{background:radial-gradient(circle at 20% 10%,#1b4d99 0,#0000 37%),linear-gradient(145deg,#08152f,#10295a);place-items:center;min-height:100vh;padding:30px;display:grid}.auth-card{background:#fffffff5;border:1px solid #ffffff29;border-radius:20px;gap:16px;width:min(430px,100%);padding:28px;display:grid;box-shadow:0 28px 90px #00081c61}.auth-card .brand{background:#0b1739;border-radius:20px 20px 0 0;margin:-28px -28px 6px;padding:20px 28px}.auth-copy{padding:4px 0 3px}.auth-copy h1{margin:7px 0;font-size:24px}.auth-copy p{color:#73819a;margin:0;font-size:11px;line-height:1.7}.step{color:var(--blue);letter-spacing:.09em;font-size:10px;font-weight:700}.check{grid-template-columns:16px auto;grid-auto-flow:column;justify-content:start;align-items:flex-start;line-height:1.5;display:flex}.check input{width:15px;min-height:15px;margin-top:1px}.form-error{color:#d03f3f;margin:0;font-size:11px}.setup-card{grid-template-columns:1fr 1fr;width:min(520px,100%)}.setup-card .brand,.setup-card .auth-copy,.setup-card .check,.setup-card .form-error,.setup-card>button{grid-column:1/-1}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.company-card{border:1px solid var(--line);background:#fff;border-radius:15px;min-height:180px;padding:20px;position:relative;overflow:hidden;box-shadow:0 8px 28px #1d30550d}.company-card:after{content:"";opacity:.05;background:#2866e8;border-radius:50%;width:90px;height:90px;position:absolute;top:-25px;right:-25px}.company-code{color:var(--blue);letter-spacing:.12em;font-size:9px;font-weight:700}.company-card h3{margin:9px 0 6px;font-size:16px}.company-card p{color:#77849a;min-height:32px;margin:0;font-size:10px;line-height:1.6}.company-meta{flex-wrap:wrap;gap:6px;margin:13px 0;display:flex}.company-meta span{color:#5b6b86;background:#f1f5fb;border-radius:7px;padding:4px 7px;font-size:9px}.company-card>small{color:#8995aa;font-size:9px}.promotion-panel{margin-top:16px}.promotion-row{grid-template-columns:1fr auto auto;align-items:center;gap:12px;display:grid!important}.promotion-row p{margin:4px 0!important}.promotion-row>span:last-child{gap:6px;display:flex}.profile-panel{margin-top:16px}.profile-panel .panel-heading select{width:280px}.profile-body{grid-template-columns:1fr 1fr 1fr;gap:18px;padding:16px 20px;display:grid}.profile-body>div{border-right:1px solid var(--line);min-height:120px;padding-right:18px}.profile-body>div:last-child{border:0}.profile-body h3{margin:0 0 10px;font-size:11px}.profile-body p{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;margin:0;padding:7px 0;font-size:9px;display:flex}.profile-body p span{color:#7e8a9f;text-align:right}.profile-actions{padding:0 20px 16px}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040d2294;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:17px;width:min(570px,100%);max-height:90vh;padding:20px;overflow:auto;box-shadow:0 30px 100px #0006196b}.modal-wide{width:min(850px,100%)}.modal>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin:-4px 0 18px;padding-bottom:13px;display:flex}.modal h2{margin:0;font-size:16px}.modal>header button{border:0;min-height:28px;font-size:19px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.span-2{grid-column:1/-1}.assign-head{grid-template-columns:1fr 1fr;align-items:end;gap:20px;padding:4px 0 15px;display:grid}.mini-list{border:1px solid var(--line);border-radius:11px;max-height:430px;margin-bottom:16px;overflow:auto}.mini-list>div{border-bottom:1px solid var(--line);grid-template-columns:1.2fr .7fr 1fr;align-items:center;gap:14px;padding:10px 12px;display:grid}.mini-list>div:last-child{border:0}.mini-list span b,.mini-list span{font-size:10px;display:block}.mini-list span b{color:var(--blue);margin-bottom:3px}.mini-list small{color:#7b879c;font-size:9px}.migration-excluded{color:#8a5a15;background:#fff8ed;border:1px solid #ffd9a8;border-radius:11px;gap:6px;margin:-4px 0 16px;padding:12px 14px;font-size:11px;display:grid}.migration-excluded span{color:#6c5b43}.node-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:17px;display:grid}.node-card{border:1px solid var(--line);background:#fff;border-top:3px solid #cfd8e7;border-radius:13px;min-height:178px;padding:15px}.node-card.submitted{border-top-color:#f59e0b}.node-card.approved{border-top-color:#24b47e}.node-card.rejected{border-top-color:#ef4444}.node-card>div:first-child{justify-content:space-between;align-items:center;display:flex}.node-order{color:#9aa5b7;font-size:10px;font-weight:700}.node-card h3{margin:12px 0 6px;font-size:13px}.node-card h3 i{color:#bc6d00;background:#fff0d8;border-radius:5px;margin-left:7px;padding:3px 5px;font-size:8px;font-style:normal}.node-card p{color:#7d899e;margin:0;font-size:9px}.review-comment{color:#d24b4b;margin-top:8px;font-size:9px;display:block}.node-actions{flex-wrap:wrap;gap:6px;margin-top:15px;display:flex}.node-actions button,.upload{border:1px solid var(--line);color:#53617b;cursor:pointer;background:#fff;border-radius:7px;align-items:center;min-height:29px;padding:0 8px;font-size:9px;display:flex}.upload input{display:none}.node-actions .approve{color:#087a56;border-color:#bde7d6}.node-actions .reject{color:#b93e3e;border-color:#f3c5c5}.two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.feed{max-height:310px;padding:8px 18px 16px;overflow:auto}.feed>div{border-bottom:1px solid var(--line);padding:10px 0}.feed b,.feed p,.feed small{display:block}.feed b{font-size:10px}.feed p{color:#59677e;margin:5px 0;font-size:10px}.feed small{color:#929caf;font-size:9px}.empty{color:#9aa5b6;text-align:center;padding:35px 10px;font-size:10px}.template-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.template-card{padding:18px}.template-card>div:first-child{justify-content:space-between;align-items:center;display:flex}.version{color:var(--blue);font-size:10px;font-weight:800}.template-card h3{margin:14px 0 7px;font-size:14px}.template-card p{color:#6e7b91;margin:0 0 11px;font-size:10px}.template-card>small{color:#929caf;font-size:9px}.template-actions{gap:7px;margin-top:16px;display:flex}.cost-grid{gap:14px;display:grid}.cost-card{padding:18px}.cost-card.over{border-left:3px solid #ef4444}.cost-title{justify-content:space-between;display:flex}.cost-title small,.cost-title h3,.cost-title p{margin:0;display:block}.cost-title small{color:#8090aa;font-size:9px}.cost-title h3{margin:4px 0;font-size:14px}.cost-title p{color:#8692a6;font-size:9px}.cost-metrics{grid-template-columns:repeat(6,1fr);gap:9px;margin:16px 0;display:grid}.cost-metrics span{color:#8190a7;background:#f7f9fc;border-radius:9px;padding:10px;font-size:9px}.cost-metrics b{color:#31415f;margin-top:6px;font-size:13px;display:block}.cost-actions{gap:7px;display:flex}.change-list{border-top:1px solid var(--line);margin-top:10px}.change-list>div{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:9px 0;display:grid}.change-list b,.change-list small{font-size:9px;display:block}.change-list small{color:#8a96a9;margin-top:3px}.change-list button{min-height:27px;padding:0 7px}.data-grid{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.data-card{min-height:220px;padding:22px}.big-icon{width:42px;height:42px;color:var(--blue);background:#edf3ff;border-radius:12px;place-items:center;font-size:22px;display:grid}.data-card h2{margin:16px 0 8px;font-size:14px}.data-card p{color:#76839a;min-height:42px;margin:0 0 14px;font-size:10px;line-height:1.6}.data-card input{margin-bottom:9px}.import-preview{grid-column:1/-1}.import-actions{justify-content:flex-end;gap:9px;padding:14px;display:flex}.temporary{gap:15px;display:grid}.temporary p,.temporary small{color:#6e7b91;margin:0;font-size:11px}.temporary strong{color:#174ea8;text-align:center;letter-spacing:.06em;background:#f1f6ff;border:1px dashed #84a9ef;border-radius:10px;padding:15px;font-family:Consolas,monospace;font-size:20px}.timeline{border-left:2px solid #dfe6f1;margin-left:120px;padding-left:25px;position:relative}.timeline article{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:1fr;gap:4px;margin-bottom:13px;padding:14px 17px;display:grid;position:relative}.timeline article:before{content:"";background:#2866e8;border:3px solid #f5f7fb;border-radius:50%;width:10px;height:10px;position:absolute;top:20px;left:-32px}.timeline article>span{color:#7d899e;text-align:right;width:105px;font-size:9px;position:absolute;top:17px;right:calc(100% + 45px)}.timeline b{font-size:11px}.timeline p{color:#8290a6;margin:5px 0 0;font-size:9px}.timeline details{color:#61708a;margin-top:9px;font-size:9px}.timeline pre{white-space:pre-wrap;background:#f5f7fb;max-height:170px;padding:9px;overflow:auto}@media (max-width:1100px){.card-grid,.template-list,.node-grid{grid-template-columns:repeat(2,1fr)}.cost-metrics{grid-template-columns:repeat(3,1fr)}.data-grid{grid-template-columns:1fr 1fr}.data-card:last-of-type{grid-column:1/-1}}@media (max-width:720px){.toolbar{flex-direction:column;align-items:flex-start}.toolbar>div{flex-wrap:wrap}.toolbar select{min-width:220px}.card-grid,.template-list,.node-grid,.two-col,.data-grid{grid-template-columns:1fr}.data-card:last-of-type{grid-column:auto}.form-grid,.setup-card,.assign-head{grid-template-columns:1fr}.span-2,.setup-card>*{grid-column:1}.cost-metrics{grid-template-columns:repeat(2,1fr)}.timeline{margin-left:0}.timeline article>span{text-align:left;width:auto;position:static}.timeline article:before{display:none}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(18px)scale(.965)}to{opacity:1;transform:none}}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:none}}@keyframes pulse-soft{0%,to{opacity:.38}50%{opacity:.8}}.modal-backdrop,.drawer-backdrop{animation:.16s ease-out both overlay-in}.modal-backdrop{z-index:120}.modal{animation:.22s cubic-bezier(.2,.8,.2,1) both modal-in}.modal-backdrop.is-exiting,.drawer-backdrop.is-exiting{opacity:0;transition:opacity .18s}.modal-backdrop.is-exiting .modal{opacity:0;transition:all .18s;transform:translateY(12px)scale(.98)}.modal>header>div:first-child,.drawer>header>div:first-child{min-width:0}.modal>header p,.drawer>header p{color:#7b879c;margin:5px 0 0;font-size:10px;font-weight:400}.icon-close{width:32px;color:#65728a!important;background:#f3f6fa!important;border:0!important;border-radius:9px!important;min-height:32px!important;padding:0!important;font-size:20px!important}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:18px;display:flex}.confirm-modal{width:min(430px,100%)}.confirm-content{text-align:center}.confirm-symbol{color:#d47b00;background:#fff0dc;border-radius:15px;place-items:center;width:48px;height:48px;margin:2px auto 15px;font-size:22px;font-weight:900;display:grid}.confirm-symbol.danger{color:#d54444;background:#ffeded}.confirm-symbol.primary{color:#2866e8;background:#eaf1ff}.confirm-content p{color:#68758c;margin:0;font-size:12px;line-height:1.8}.enter-confirm-hint{color:#bf620c;background:#fff4e8;border-radius:14px;margin-top:12px;padding:6px 10px;font-size:9px;font-weight:700;display:inline-flex}.nested-confirm{z-index:130;text-align:center;background:#fff;border:1px solid #e2e8f2;border-radius:18px;width:min(390px,100% - 36px);padding:24px;animation:.2s both modal-in;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 34px 120px #020a1c7a}.nested-confirm h3{margin:0;font-size:16px}.nested-confirm p{color:#71809a;margin:8px 0 18px;font-size:11px;line-height:1.7}.nested-confirm>div:last-child{justify-content:center;gap:8px;display:flex}.drawer-backdrop{z-index:105;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#040d2294;position:fixed;inset:0}.drawer{background:#f6f8fc;flex-direction:column;width:min(780px,94vw);height:100%;animation:.26s cubic-bezier(.2,.8,.2,1) both drawer-in;display:flex;position:absolute;top:0;right:0;overflow:hidden;box-shadow:-30px 0 100px #00061957}.drawer-backdrop.is-exiting .drawer{transition:all .26s cubic-bezier(.4,0,1,1);transform:translate(100%)}.drawer>header{background:#fff;border-bottom:1px solid #e3e9f2;justify-content:space-between;align-items:center;gap:18px;min-height:76px;padding:16px 22px;display:flex}.drawer>header h2{margin:0;font-size:18px}.drawer-body{flex:1;padding:18px 22px 100px;overflow:auto}.drawer-actions{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-top:1px solid #e1e7f1;justify-content:flex-end;gap:8px;padding:14px 22px;display:flex;position:absolute;bottom:0;left:0;right:0}.company-stats{grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px;display:grid}.company-stats article{border:1px solid var(--line);background:#fff;border-radius:15px;min-height:104px;padding:17px 20px;position:relative;overflow:hidden;box-shadow:0 8px 26px #1b30570f}.company-stats article:before{content:"";background:#2866e8;width:4px;position:absolute;top:0;bottom:0;left:0}.company-stats article.green:before{background:#22a06b}.company-stats article.orange:before{background:#f47a12}.company-stats small{color:#8a95a8;font-size:10px;display:block}.company-stats b{color:#164b9d;margin-top:12px;font-size:25px;display:block}.company-stats .green b{color:#20823f}.company-stats .orange b{color:#ef6c00}.company-toolbar{align-items:center;gap:12px;margin-bottom:17px;display:flex}.search-box{flex:1;align-items:center;display:flex;position:relative}.search-box>span{z-index:1;color:#8d99aa;font-size:21px;font-weight:400;position:absolute;left:13px}.search-box input{border-radius:12px;height:42px;padding-left:42px;box-shadow:0 5px 18px #1830590a}.segmented{border:1px solid var(--line);background:#fff;border-radius:12px;padding:4px;display:flex}.segmented button{min-height:32px;box-shadow:none;background:0 0;border:0}.segmented button.active{color:#1f5fcf;background:#edf3ff;font-weight:700}.profile-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.rich-card{flex-direction:column;min-height:440px;padding:0;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.rich-card:hover{border-color:#cbdaf4;transform:translateY(-3px);box-shadow:0 18px 48px #1a34601f}.rich-card:after{display:none}.rich-card>header{border-bottom:1px solid #edf1f7;align-items:center;gap:12px;padding:18px 20px;display:flex}.company-avatar{color:#fff;border-radius:12px;flex:none;place-items:center;width:44px;height:44px;font-size:17px;font-weight:800;display:grid;box-shadow:0 7px 18px #122c582e}.company-avatar.large{border-radius:17px;width:58px;height:58px;font-size:23px}.tone-emerald{background:linear-gradient(145deg,#1a9c58,#19763f)}.tone-rose{background:linear-gradient(145deg,#db145e,#a80846)}.tone-violet{background:linear-gradient(145deg,#7656e8,#5134bc)}.tone-blue{background:linear-gradient(145deg,#1e69df,#0645a6)}.tone-amber{background:linear-gradient(145deg,#f19b19,#cf6500)}.rich-card>header>div:nth-child(2){flex:1;min-width:0}.rich-card h3{text-overflow:ellipsis;white-space:nowrap;margin:0 0 5px;font-size:14px;overflow:hidden}.rich-card>header p{text-overflow:ellipsis;white-space:nowrap;min-height:0;margin:0;font-size:9px;overflow:hidden}.type-badge{color:#0755ad;white-space:nowrap;background:#e9f3ff;border-radius:18px;align-items:center;width:max-content;padding:5px 8px;font-size:9px;font-weight:700;display:inline-flex}.type-badge.resource{color:#b76700;background:#fff3df}.company-card-body{flex:1;padding:17px 20px}.metric-line{color:#7f8a9c;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:10px;display:flex}.metric-line b{color:#263652;font-size:11px}.stars{gap:1px;display:inline-flex}.stars i{color:#d8dee8;font-style:normal}.stars i.filled{color:#ffae00}.score-good{color:#188340!important}.score-warning{color:#ef6c00!important}.mini-score-list{gap:8px;margin-top:12px;display:grid}.mini-score-list>div>span{justify-content:space-between;margin-bottom:4px;display:flex}.mini-score-list small,.mini-score-list i{color:#78859a;font-size:9px;font-style:normal}.mini-score-list>div>div{background:#e8ebef;border-radius:6px;height:6px;overflow:hidden}.mini-score-list>div>div b{background:linear-gradient(90deg,#23864a,#3ca85e);border-radius:6px;height:100%;display:block}.mini-score-list>div:nth-child(2)>div b{background:linear-gradient(90deg,#f47812,#ff9a33)}.score-empty{color:#99a3b2;text-align:center;padding:18px 0;font-size:9px}.tag-cloud{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.tag-cloud span{border-radius:18px;padding:5px 8px;font-size:9px;font-weight:600}.tag-cloud.compact{min-height:49px}.rich-card>footer{background:#fbfcfe;border-top:1px solid #edf1f7;justify-content:flex-end;gap:7px;padding:12px 20px;display:flex}.rich-card>footer button{min-height:30px;padding:0 10px}.text-danger{color:#d74747!important}.company-empty{grid-column:1/-1}.skeleton-grid .skeleton{background:linear-gradient(100deg,#fff,#eef2f8,#fff);animation:1.2s ease-in-out infinite pulse-soft}.profile-hero{background:#fff;align-items:center;gap:15px;padding:18px 22px;display:flex}.profile-hero>div:nth-child(2){flex:1}.profile-hero h3{margin:0 0 5px;font-size:18px}.profile-hero p{color:#77839a;margin:0 0 9px;font-size:10px}.profile-hero>div:nth-child(2)>div{gap:6px;display:flex}.profile-score{text-align:right}.profile-score small,.profile-score b,.profile-score span{display:block}.profile-score small{color:#8792a5;font-size:9px}.profile-score b{color:#168542;margin:3px 0;font-size:24px}.drawer-tabs{background:#fff;border-top:1px solid #eef1f6;border-bottom:1px solid #e1e7f1;padding:0 22px;display:flex;overflow:auto}.drawer-tabs button{white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;min-height:44px;padding:0 13px}.drawer-tabs button.active{color:#1d5ed1;border-bottom-color:#2866e8;font-weight:700}.profile-sections{gap:15px;display:grid}.profile-sections>section{background:#fff;border:1px solid #e3e8f1;border-radius:15px;padding:18px;box-shadow:0 6px 20px #1d30550a}.profile-sections>section>header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px;display:flex}.profile-sections h3{margin:0;font-size:13px}.profile-sections header p{color:#8793a7;margin:4px 0 0;font-size:9px}.profile-sections header>span{color:#8d98aa;font-size:9px}.detail-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.detail-grid span{background:#f7f9fc;border-radius:10px;padding:11px}.detail-grid small,.detail-grid b{display:block}.detail-grid small{color:#8a95a8;font-size:9px}.detail-grid b{color:#35445f;margin-top:5px;font-size:11px}.profile-summary{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.profile-summary span{text-align:center;background:#f5f8fd;border-radius:10px;padding:12px 8px}.profile-summary b,.profile-summary small{display:block}.profile-summary b{color:#1d5fce;font-size:17px}.profile-summary small{color:#7d899d;margin-top:4px;font-size:8px}.long-copy{color:#61708a;background:#f8f9fc;border-radius:9px;margin:7px 0;padding:10px;font-size:10px;line-height:1.7}.muted{color:#929caf}.capability-grid{grid-template-columns:1fr 1fr;gap:14px 20px;display:grid}.capability-grid>div>div:first-child{justify-content:space-between;display:flex}.capability-grid b{font-size:10px}.capability-grid strong{color:#237c42;font-size:11px}.capability-bar{background:#e9edf3;border-radius:8px;height:8px;margin-top:7px;overflow:hidden}.capability-bar i{background:linear-gradient(90deg,#2866e8,#16a6b8);border-radius:8px;height:100%;display:block}.capability-grid>div>small{color:#8b96aa;margin-top:5px;font-size:8px;display:block}.qualification-list{gap:12px;display:grid}.qualification-list>article{border:1px solid #e5eaf2;border-radius:12px;padding:14px}.qualification-head{align-items:center;gap:11px;display:flex}.qualification-head>div{flex:1}.qualification-icon{color:#2763ce;background:#eef4ff;border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.qualification-head h4,.qualification-head p{margin:0}.qualification-head h4{font-size:11px}.qualification-head p{color:#8490a3;margin-top:4px;font-size:9px}.qualification-dates{color:#7d899d;gap:18px;margin:12px 0;font-size:9px;display:flex}.attachment-list{gap:7px;display:grid}.attachment-list>div{background:#f7f9fc;border-radius:9px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:9px;padding:8px;display:grid}.file-type{color:#2461ce;background:#fff;border-radius:7px;place-items:center;width:36px;height:30px;font-size:8px;font-weight:800;display:grid}.attachment-list b,.attachment-list small{display:block}.attachment-list b{font-size:9px}.attachment-list small{color:#8994a7;margin-top:3px;font-size:8px}.attachment-list a{color:#2461ce;font-size:9px;text-decoration:none}.attachment-list button{min-height:26px;padding:0 7px}.attachment-empty{color:#96a0b0;text-align:center;margin:0;padding:10px;font-size:9px}.qualification-list footer{justify-content:flex-end;gap:7px;margin-top:11px;display:flex}.qualification-list footer button{min-height:29px}.profile-projects,.promotion-history{gap:9px;display:grid}.profile-projects article,.promotion-history article{border:1px solid #e7ebf2;border-radius:11px;align-items:center;gap:12px;padding:12px;display:flex}.profile-projects article>div:first-child{flex:1}.profile-projects small,.profile-projects h4,.profile-projects p{margin:0;display:block}.profile-projects h4{margin:4px 0;font-size:11px}.profile-projects p{color:#818da0;font-size:9px}.profile-projects article>div:last-child{text-align:right}.profile-projects article>div:last-child>b{margin-bottom:7px;font-size:11px;display:block}.promotion-history>article>div{flex:1}.promotion-history .up,.promotion-history .down{color:#188645;background:#e8f8ef;border-radius:10px;place-items:center;width:34px;height:34px;font-size:18px;display:grid}.promotion-history .down{color:#d74747;background:#ffeded}.promotion-history h4,.promotion-history p,.promotion-history small{margin:0}.promotion-history h4{font-size:11px}.promotion-history p{color:#60708a;margin:5px 0;font-size:9px}.promotion-history small{color:#909bad;font-size:8px}.drawer-loading{color:#7c889c;place-items:center;gap:14px;height:60vh;display:grid}.drawer-loading span{border:4px solid #dfe8f8;border-top-color:#2866e8;border-radius:50%;width:42px;height:42px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.company-form{max-height:70vh;padding-right:4px;overflow:auto}.score-editor{grid-template-columns:1fr 1fr;gap:10px;display:grid}.score-editor label{background:#f7f9fc;border-radius:10px;grid-template-columns:120px 1fr 38px;align-items:center;gap:10px;padding:11px;display:grid}.score-editor label>span b,.score-editor label>span small{display:block}.score-editor label>span b{font-size:10px}.score-editor label>span small{color:#8b96a9;margin-top:3px;font-size:8px}.score-editor input{min-height:18px;box-shadow:none;border:0;padding:0}.score-editor strong{color:#1c5fcf;text-align:right;font-size:12px}.tag-selector{grid-template-columns:1fr 1fr;gap:9px;display:grid}.tag-selector button{justify-content:flex-start;gap:8px}.tag-selector button i{border-radius:50%;width:8px;height:8px}.tag-selector button span{margin-left:auto}.tag-selector button.selected{font-weight:700}.upload-modal{width:min(720px,100%)}.drop-zone{cursor:pointer;background:linear-gradient(145deg,#f7faff,#f1f6ff);border:2px dashed #b9cae7;border-radius:15px;place-items:center;min-height:180px;padding:24px;transition:all .18s;display:grid}.drop-zone.dragging{background:#eaf2ff;border-color:#2866e8;transform:scale(1.01)}.upload-illustration{color:#fff;background:#2866e8;border-radius:16px;place-items:center;width:50px;height:50px;margin-bottom:10px;font-size:25px;display:grid;box-shadow:0 10px 24px #2866e83d}.drop-zone b{font-size:12px}.drop-zone small{color:#7d899d;margin-top:6px;font-size:9px}.upload-queue{gap:8px;max-height:280px;margin-top:14px;display:grid;overflow:auto}.upload-item{border:1px solid #e5eaf2;border-radius:11px;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px;display:grid}.file-preview{color:#245fc7;background:#edf3ff;border-radius:9px;place-items:center;width:46px;height:42px;font-size:9px;font-weight:800;display:grid;overflow:hidden}.file-preview img{object-fit:cover;width:100%;height:100%}.file-info b,.file-info small{display:block}.file-info b{font-size:10px}.file-info small{color:#8390a3;margin-top:4px;font-size:8px}.file-progress{background:#e9edf3;border-radius:4px;height:4px;margin-top:6px;overflow:hidden}.file-progress i{background:#2866e8;width:0;height:100%;display:block}.upload-item.uploading .file-progress i{width:65%;animation:.8s infinite pulse-soft}.upload-item.done .file-progress i{background:#24a568;width:100%}.upload-item.error{background:snow;border-color:#f2caca}.queue-empty{color:#98a2b1;text-align:center;padding:18px;font-size:9px}@media (max-width:1450px){.profile-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:1150px){.company-stats{grid-template-columns:repeat(3,1fr)}.profile-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:820px){.company-toolbar{flex-wrap:wrap;align-items:stretch}.search-box{flex-basis:100%}.company-stats{grid-template-columns:repeat(2,1fr)}.company-stats article:last-child{grid-column:1/-1}.profile-card-grid,.detail-grid,.capability-grid,.score-editor,.tag-selector{grid-template-columns:1fr}.profile-summary{grid-template-columns:repeat(2,1fr)}.drawer{width:100vw}.drawer-actions{justify-content:flex-start;overflow:auto}.profile-hero{align-items:flex-start}.profile-score{margin-left:auto}.score-editor label{grid-template-columns:100px 1fr 34px}}@media (max-width:560px){.company-stats{gap:8px}.company-stats article{min-height:85px;padding:13px}.company-stats b{font-size:21px}.segmented{width:100%}.segmented button{flex:1}.company-toolbar>.primary{width:100%}.drawer-body{padding:14px 14px 100px}.profile-hero{padding:14px}.profile-score b{font-size:18px}.drawer-tabs{padding:0 12px}.detail-grid{grid-template-columns:1fr}.qualification-dates{gap:5px;display:grid}.attachment-list>div{grid-template-columns:auto 1fr}.attachment-list a,.attachment-list button{grid-column:auto}.modal-backdrop{padding:10px}.modal{border-radius:15px;padding:16px}.company-form{max-height:74vh}}.table-link{min-height:0;color:inherit;text-align:left;border:0;padding:0;display:block;box-shadow:none!important;background:0 0!important}.table-link:hover b{color:#1f63d5}.table-link small{color:#929db0;margin-top:4px;font-size:9px;display:block}.project-form{max-height:70vh;padding-right:4px;overflow:auto}.form-hint{color:#63728b;background:#f2f6fd;border-radius:9px;margin:0;padding:10px 12px;font-size:10px;line-height:1.7}.project-detail-hero{background:#fff;border-bottom:1px solid #e3e9f2;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;display:flex}.project-detail-hero h3{margin:5px 0;font-size:20px}.project-detail-hero p,.project-detail-hero small{color:#7d899d;margin:0;font-size:10px}.project-detail-hero>div:last-child{justify-items:end;gap:6px;display:grid}.project-detail-hero strong{color:#1d62d3;font-size:25px}.project-detail{gap:15px;display:grid}.project-detail>section{background:#fff;border:1px solid #e2e8f1;border-radius:15px;padding:18px;box-shadow:0 6px 20px #1d30550a}.project-detail>section>header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.project-detail>section h3{margin:0;font-size:13px}.project-detail>section header>span{color:#8995a8;font-size:9px}.project-summary{grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:13px;display:grid}.project-summary span{background:#f5f8fd;border-radius:11px;padding:13px}.project-summary small,.project-summary b{display:block}.project-summary small{color:#7f8b9e;font-size:9px}.project-summary b{color:#215fc9;margin-top:6px;font-size:14px}.project-dates{margin-top:4px}.assignment-history,.project-change-list{gap:8px;display:grid}.assignment-history article,.project-change-list article{border:1px solid #e8ecf3;border-radius:10px;align-items:flex-start;gap:11px;padding:11px;display:flex}.assignment-history article>span{color:#738198;background:#edf2f8;border-radius:10px;padding:4px 7px;font-size:8px}.assignment-history article>span.active{color:#188345;background:#e7f8ef}.assignment-history article>div,.project-change-list article>div{flex:1}.assignment-history b,.assignment-history small,.project-change-list b,.project-change-list small{display:block}.assignment-history b,.project-change-list b{font-size:10px}.assignment-history small,.project-change-list small,.project-change-list article>span{color:#8793a7;margin-top:4px;font-size:8px}.project-change-list article>span{min-width:118px;margin:0}.project-drawer{width:min(860px,96vw)}@media (max-width:720px){.project-summary{grid-template-columns:repeat(2,1fr)}.project-detail-hero{align-items:flex-start;padding:15px}.project-detail-hero h3{font-size:17px}.project-change-list article{display:grid}.project-change-list article>span{min-width:0}.project-form{max-height:74vh}}@keyframes overlay-out{0%{opacity:1}to{opacity:0}}@keyframes modal-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes drawer-out{0%{transform:none}to{transform:translate(100%)}}.modal-backdrop.is-exiting,.drawer-backdrop.is-exiting{animation:.18s both overlay-out}.modal-backdrop.is-exiting .modal{animation:.22s cubic-bezier(.4,0,1,1) both modal-out}.drawer-backdrop.is-exiting .drawer{animation:.26s cubic-bezier(.4,0,1,1) both drawer-out}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.feed-link{color:#2461ce;min-height:25px;margin-top:7px;padding:0 8px}.managed-files{gap:9px;max-height:520px;display:grid;overflow:auto}.managed-files article{background:#fafbfd;border:1px solid #e5eaf2;border-radius:11px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;padding:11px;display:grid}.managed-files b,.managed-files small{display:block}.managed-files b{font-size:10px}.managed-files small{color:#8591a4;margin-top:4px;font-size:8px}.excel-drop{cursor:pointer;background:linear-gradient(145deg,#f8fbff,#edf4ff);border:2px dashed #b9cae7;border-radius:16px;place-items:center;min-height:220px;display:grid}.excel-drop.dragging{background:#e7f0ff;border-color:#2866e8}.excel-drop>span{color:#fff;background:#2866e8;border-radius:16px;place-items:center;width:52px;height:52px;margin-bottom:12px;font-size:25px;display:grid;box-shadow:0 10px 24px #2866e83d}.excel-drop>b{font-size:12px}.excel-drop>small{color:#7f8b9f;margin-top:7px;font-size:9px}@media (max-width:560px){.managed-files article{grid-template-columns:auto 1fr}.managed-files article>a,.managed-files article>button{grid-column:auto}}.progress-tabs{border:1px solid var(--line);background:#fff;border-radius:13px;gap:5px;margin:0 0 14px;padding:5px;display:flex;box-shadow:0 7px 22px #1d30550d}.progress-tabs button{color:#66748b;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:8px;min-height:39px;font-weight:600;transition:color .18s,background .18s,box-shadow .18s,transform .18s;display:flex}.progress-tabs button:hover{transform:translateY(-1px)}.progress-tabs button span{color:#7f8ba0;background:#edf1f7;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 5px;font-size:8px;transition:background .18s,color .18s,transform .18s;display:grid}.progress-tabs button.active{color:#fff;background:linear-gradient(135deg,#1d5fd1,#2877e8);box-shadow:0 7px 16px #2065da38}.progress-tabs button.active span{color:#fff;background:#fff3;transform:scale(1.06)}.progress-tab-panel{min-width:0;animation:.19s cubic-bezier(.2,.76,.2,1) both progress-panel-in}.document-summary{grid-template-columns:1.5fr repeat(3,1fr);gap:12px;margin-bottom:14px;display:grid}.document-summary article{border:1px solid var(--line);background:#fff;border-radius:13px;min-height:90px;padding:15px 17px;box-shadow:0 7px 22px #1d30550d}.document-summary small,.document-summary b{display:block}.document-summary small{color:#8290a5;font-size:9px}.document-summary b{color:#195cc8;margin-top:9px;font-size:22px}.document-summary b em{color:#919caf;margin-left:3px;font-size:10px;font-style:normal}.document-summary article>div{background:#e9edf3;border-radius:6px;height:6px;margin-top:10px;overflow:hidden}.document-summary article>div i{background:linear-gradient(90deg,#1e67dc,#17a7bb);border-radius:6px;height:100%;display:block}@keyframes progress-panel-in{0%{opacity:0;transform:translate(9px)}to{opacity:1;transform:none}}.stage-accordion{gap:10px;display:grid}.stage-panel{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 7px 24px #1c2f540d}.stage-panel.open{border-color:#cbdaf2}.stage-heading{text-align:left;background:#fff;border:0;border-radius:0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;min-height:66px;padding:11px 16px;display:grid}.stage-heading>span{color:#1e61cf;background:#edf3ff;border-radius:10px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:800;display:grid}.stage-heading>div b,.stage-heading>div small{display:block}.stage-heading>div b{font-size:12px}.stage-heading>div small{color:#8793a7;margin-top:5px;font-size:9px}.stage-heading>i{color:#6e7d93;font-size:18px;font-style:normal}.stage-panel.open>.stage-heading{background:linear-gradient(90deg,#f8fbff,#fff);border-bottom:1px solid #e7ebf2}.stage-nodes{background:#f6f8fc;padding:9px 12px 12px}.document-node{background:#fff;border:1px solid #e2e8f2;border-left:3px solid #c9d3e3;border-radius:11px;margin-top:8px;overflow:hidden}.document-node:first-child{margin-top:0}.document-node.submitted{border-left-color:#f0a11c}.document-node.approved{border-left-color:#27a76e}.document-node.rejected{border-left-color:#df5555}.document-node-head{text-align:left;background:#fff;border:0;border-radius:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;width:100%;min-height:62px;padding:11px 13px;display:grid}.document-node-head:hover{background:#f9fbfe}.doc-code{color:#1f60cb;background:#edf3ff;border-radius:8px;place-items:center;min-width:37px;height:28px;padding:0 7px;font-size:9px;font-weight:800;display:grid}.document-node-head>div b,.document-node-head>div small{display:block}.document-node-head>div b{font-size:11px}.document-node-head>div small{color:#8491a5;margin-top:4px;font-size:8px}.document-node-head>i{color:#738197;font-size:8px;font-style:normal}.document-approval-state{justify-content:flex-end;align-items:center;gap:6px;display:flex}.document-approval-state>i{color:#7f8998;background:#eef1f5;border-radius:50%;place-items:center;width:28px;height:28px;font-size:15px;font-style:normal;font-weight:900;animation:.24s both document-state-pop;display:grid;box-shadow:inset 0 0 0 1px #63728814}.document-approval-state.approved>i{color:#078553;background:#dcf7e9;box-shadow:inset 0 0 0 1px #bfe9d3}.document-approval-state.rejected>i{color:#d93e3e;background:#ffe5e5;box-shadow:inset 0 0 0 1px #f5c3c3}.document-approval-state.submitted>i{color:#bd7200;background:#fff0c9;box-shadow:inset 0 0 0 1px #f1d694}.document-node-body{background:#fbfcfe;border-top:1px solid #edf0f5;padding:12px 14px 14px}.requirement-list{gap:7px;display:grid}.material-requirement{background:#fff;border:1px solid #e5eaf2;border-radius:10px;grid-template-columns:auto 1fr minmax(220px,auto);align-items:center;gap:10px;padding:10px 11px;display:grid}.material-state{color:#d46819;background:#fff0e7;border-radius:8px;place-items:center;width:27px;height:27px;font-size:12px;font-weight:800;display:grid}.material-requirement.ready .material-state{color:#17824e;background:#e9f8f0}.material-requirement.not-applicable .material-state{color:#7c889b;background:#edf1f6}.material-name b,.material-name small{display:block}.material-name b{font-size:10px}.material-name small{color:#8793a6;margin-top:4px;font-size:8px}.material-name em{color:#bb6a0b;background:#fff0df;border-radius:5px;margin-left:7px;padding:2px 5px;font-size:7px;font-style:normal}.material-buttons{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.material-buttons>button,.inline-node-actions button{min-height:29px;padding:0 9px}.material-buttons>.manage-files-button{color:#bd3f3f;background:#fff7f7;border-color:#f0b9b9}.inline-review{color:#9e6516;background:#fff4e5;border-radius:8px;margin:10px 0 0;padding:9px 11px;font-size:9px}.inline-node-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;margin-top:12px;display:flex}.inline-node-actions .approve{color:#087a56;border-color:#bfe6d3}.inline-node-actions .reject{color:#b83f3f;border-color:#f1c8c8}.inline-files{gap:6px;width:100%;margin-top:7px;display:grid}.inline-files article{background:#f3f6fb;border-radius:8px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;padding:8px;display:grid}.inline-files article>span{color:#2461ce;background:#fff;border-radius:6px;place-items:center;width:32px;height:26px;font-size:7px;font-weight:800;display:grid}.inline-files b,.inline-files small{display:block}.inline-files b{font-size:8px}.inline-files small{color:#8792a5;margin-top:3px;font-size:7px}.inline-files a{color:#2461ce;font-size:8px;text-decoration:none}.inline-files button{color:#b93d3d;background:#fff8f8;border-color:#f1c3c3;min-height:25px;padding:0 8px;font-size:8px}.field-accordion .document-node-body>.inline-files{margin:0 0 10px}.progress-feed{padding-bottom:12px}.inline-entry-form{background:#f7faff;border:1px solid #dce5f3;border-radius:11px;grid-template-columns:180px 1fr auto;align-items:end;gap:10px;margin:0 18px 12px;padding:13px;display:grid}.inline-entry-form label{margin:0}.inline-entry-form textarea{min-height:68px}.inline-entry-form .form-error{grid-column:1/-1}.receipt-form{grid-template-columns:repeat(3,1fr)}.receipt-form .grow{grid-column:1/3}.activity-list{margin:0 18px;display:grid}.activity-list>article{border-bottom:1px solid #e8ecf2;grid-template-columns:130px 1fr auto;align-items:start;gap:14px;padding:13px 3px;display:grid}.activity-date b,.activity-date small,.activity-list>article>p b,.activity-list>article>p small{display:block}.activity-date b,.activity-list>article>p b{font-size:10px}.activity-date small,.activity-list>article>p small{color:#8894a7;margin-top:4px;font-size:8px}.activity-list>article>p{color:#52617a;margin:0;font-size:10px;line-height:1.6}.activity-list .inline-files{grid-column:1/-1}.stage-heading{grid-template-columns:auto minmax(0,1fr) auto auto}.stage-panel.approved{border-left:4px solid #27a76e}.stage-panel.rejected{border-left:4px solid #df5555}.stage-panel.submitted{border-left:4px solid #f0a11c}.stage-approval-state{color:#67758a;white-space:nowrap;background:#f0f2f6;border-radius:10px;align-items:center;gap:7px;min-width:108px;padding:5px 9px;font-style:normal;display:flex}.stage-approval-state>i{width:25px;height:25px;color:inherit;background:#fff;border-radius:50%;place-items:center;font-size:14px;font-style:normal;font-weight:900;animation:.24s both document-state-pop;display:grid;box-shadow:0 2px 7px #1e305014}.stage-approval-state>b{font-size:9px}.stage-approval-state.approved{color:#087f55;background:#e4f8ee}.stage-approval-state.rejected{color:#cc3d3d;background:#ffe8e8}.stage-approval-state.submitted{color:#b66c00;background:#fff1cf}@keyframes document-state-pop{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}.stage-nodes{animation:.18s both accordion-content-in}.document-node-body{animation:.17s both accordion-content-in}@keyframes accordion-content-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}@media (max-width:600px){.stage-heading{grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px}.stage-approval-state{min-width:34px;padding:4px}.stage-approval-state>b{display:none}.stage-approval-state>i{width:26px;height:26px}}.log-type-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0 18px 12px;display:grid}.log-type-tabs>button{text-align:left;background:#fff;border:1px solid #dfe6f1;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:68px;padding:10px 12px;display:grid}.log-type-tabs>button:hover{background:#f9fbff;border-color:#bbceeb}.log-type-tabs>button.active{background:linear-gradient(135deg,#edf4ff,#fff);border-color:#8db4ee;box-shadow:0 7px 18px #2263cf1a}.log-type-tabs>button>span{color:#71809a;background:#eef3fb;border-radius:10px;place-items:center;width:34px;height:34px;font-size:9px;font-weight:800;display:grid}.log-type-tabs>button.active>span{color:#fff;background:#2468d7}.log-type-tabs>button>div{min-width:0}.log-type-tabs b,.log-type-tabs small{display:block}.log-type-tabs b{font-size:10px}.log-type-tabs small{color:#8793a6;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:7px;overflow:hidden}.log-type-tabs em{color:#69788f;background:#f0f3f8;border-radius:999px;place-items:center;min-width:24px;height:24px;padding:0 6px;font-size:8px;font-style:normal;font-weight:800;display:grid}.log-type-tabs>button.active em{color:#1c5dc4;background:#dceaff}.log-section-heading{background:#fff8ee;border-left:3px solid #f59b23;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin:0 18px 12px;padding:11px 13px;display:flex}.log-section-heading b,.log-section-heading small{display:block}.log-section-heading b{font-size:11px}.log-section-heading small{color:#7d899b;margin-top:3px;font-size:8px}.log-section-heading p{color:#8b611f;margin:0;font-size:8px}.log-section-heading p span{color:#fff;background:#f59b23;border-radius:5px;margin-right:6px;padding:3px 6px;font-weight:800}@media (max-width:900px){.document-summary{grid-template-columns:repeat(2,1fr)}.material-requirement{grid-template-columns:auto 1fr}.material-buttons{grid-column:1/-1;justify-content:flex-start;padding-left:37px}.inline-entry-form,.receipt-form{grid-template-columns:1fr 1fr}.inline-entry-form .grow,.receipt-form .grow{grid-column:1/-1}.inline-entry-form>button{grid-column:2}.activity-list>article{grid-template-columns:100px 1fr}.log-section-heading{flex-direction:column;align-items:flex-start}}@media (max-width:600px){.progress-tabs{overflow:auto}.progress-tabs button{min-width:112px}.document-summary{grid-template-columns:1fr 1fr}.document-node-head{grid-template-columns:auto 1fr auto}.document-node-head>i{display:none}.material-requirement{grid-template-columns:auto 1fr}.material-buttons{padding-left:0}.inline-entry-form,.receipt-form{grid-template-columns:1fr}.inline-entry-form .grow,.receipt-form .grow,.inline-entry-form>button{grid-column:1}.activity-list>article{grid-template-columns:1fr}.inline-files article{grid-template-columns:auto 1fr}.inline-files article>a,.inline-files article>button{grid-column:auto}.log-type-tabs{scroll-snap-type:x mandatory;display:flex;overflow-x:auto}.log-type-tabs>button{scroll-snap-align:start;min-width:190px}}.work-template-card{flex-direction:column;min-height:285px;display:flex}.work-template-card .template-actions{flex-wrap:wrap;margin-top:auto;padding-top:15px}.template-outline{background:#f8fafe;border:1px solid #e6ebf3;border-radius:11px;gap:6px;min-height:90px;margin:13px 0;padding:10px;display:grid}.template-outline>span{color:#53617a;align-items:center;gap:8px;font-size:9px;display:flex}.template-outline i{color:#1f60ce;background:#e7efff;border-radius:7px;place-items:center;width:21px;height:21px;font-style:normal;font-weight:800;display:grid}.template-outline small{color:#8b96aa;font-size:8px}.template-builder-drawer{width:min(1120px,97vw)}.template-builder{flex:1;padding:18px 22px 92px;overflow:auto}.template-builder>section{background:#fff;border:1px solid #dfe6f1;border-radius:15px;margin-bottom:15px;box-shadow:0 7px 24px #1d30550d}.template-builder>section>header{border-bottom:1px solid #e8edf4;justify-content:space-between;align-items:center;gap:14px;padding:17px 19px;display:flex}.template-builder h3,.template-builder header p{margin:0}.template-builder h3{font-size:14px}.template-builder header p{color:#7f8ca1;margin-top:5px;font-size:9px}.template-builder header>span{color:#225fc7;background:#edf3ff;border-radius:16px;padding:6px 9px;font-size:9px}.builder-basics .form-grid{padding:17px 19px}.builder-sequence>header{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;position:sticky;top:-18px}.builder-stage-list{background:#f5f7fb;gap:13px;padding:14px;display:grid}.builder-stage{background:#fff;border:1px solid #d8e1ef;border-radius:14px;overflow:hidden;box-shadow:0 8px 24px #1b30550d}.builder-stage-head{background:linear-gradient(90deg,#f4f8ff,#fff);border-bottom:1px solid #e5eaf2;grid-template-columns:auto minmax(240px,1fr) 160px auto;align-items:end;gap:12px;padding:14px 15px;display:grid}.builder-stage-head label{gap:4px}.builder-stage-head label small{color:#7e8ba0;font-size:8px}.builder-order{color:#fff;background:linear-gradient(135deg,#1e61d1,#2d7aea);border-radius:11px;align-self:center;place-items:center;width:39px;height:39px;font-size:15px;font-weight:800;display:grid;box-shadow:0 7px 16px #2365d633}.builder-move,.builder-work-head>div,.builder-material>div{align-items:center;gap:5px;display:flex}.builder-move button,.builder-work-head>div button,.builder-material>div button{min-height:31px;padding:0 9px}.builder-work-list{gap:9px;padding:11px 13px 14px;display:grid}.builder-work{background:#fff;border:1px solid #e2e8f1;border-radius:11px;overflow:hidden}.builder-work-head{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;display:grid}.builder-work-head>span{color:#1d5fca;background:#edf3ff;border-radius:8px;place-items:center;min-width:43px;height:31px;padding:0 7px;font-size:9px;font-weight:800;display:grid}.builder-work-head>input{font-weight:700}.builder-work-settings{background:#fafbfd;border-top:1px solid #edf0f5}.builder-work-settings>summary{color:#53627b;cursor:pointer;align-items:center;gap:9px;padding:10px 12px;font-size:9px;font-weight:700;display:flex}.builder-work-settings>summary small{color:#8591a4;margin-left:auto;font-weight:500}.work-setting-grid{grid-template-columns:1fr 170px 1.4fr;gap:11px;padding:1px 12px 12px;display:grid}.work-setting-grid label>small{color:#8b96a8;font-size:8px;font-weight:400}.work-checks{background:#f1f5fb;border-radius:9px;gap:6px;padding:8px 10px;display:grid}.work-checks .check{font-size:9px;font-weight:500}.builder-materials{background:#f4f7fc;border:1px solid #dfe7f3;border-radius:10px;margin:0 12px 13px;padding:11px}.builder-material-title{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.builder-material-title b{font-size:10px}.builder-material-title button{min-height:29px}.builder-material{background:#fff;border-radius:9px;grid-template-columns:auto minmax(180px,1fr) 115px 70px auto;align-items:center;gap:7px;margin-top:7px;padding:7px;display:grid}.builder-material>span{color:#71809a;font-size:8px;font-weight:700}.builder-material .check{font-size:8px}.builder-empty{color:#8d98a9;text-align:center;border:1px dashed #cbd5e5;border-radius:9px;margin:0;padding:12px;font-size:9px}.add-work{color:#2763ce;background:#f8fbff;border-style:dashed;width:100%}.builder-error{background:#fff7f7;border:1px solid #efcaca;border-radius:10px;margin:0 0 12px;padding:12px}.builder-footer{z-index:4;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-top:1px solid #dfe6f0;justify-content:flex-end;align-items:center;gap:8px;padding:14px 22px;display:flex;position:absolute;bottom:0;left:0;right:0}.builder-footer>span{color:#7c899e;margin-right:auto;font-size:9px}@media (max-width:900px){.template-builder{padding:14px 14px 94px}.builder-stage-head{grid-template-columns:auto 1fr 140px}.builder-move{grid-column:2/-1;justify-content:flex-end}.work-setting-grid{grid-template-columns:1fr 140px}.work-checks{grid-column:1/-1}.builder-material{grid-template-columns:auto 1fr 110px}.builder-material>.check,.builder-material>div{grid-column:auto}.builder-material>div{grid-column:2/-1;justify-content:flex-end}}@media (max-width:600px){.template-builder-drawer{width:100vw}.template-builder>section>header{flex-direction:column;align-items:flex-start}.builder-stage-head{grid-template-columns:auto 1fr}.builder-stage-head>label:nth-of-type(2){grid-column:2}.builder-move{grid-column:1/-1}.builder-work-head{grid-template-columns:auto 1fr}.builder-work-head>div{grid-column:1/-1;justify-content:flex-end}.work-setting-grid{grid-template-columns:1fr}.builder-material{grid-template-columns:auto 1fr}.builder-material>select,.builder-material>.check{grid-column:2}.builder-material>div{grid-column:1/-1}.builder-footer>span{display:none}}.builder-work-head{grid-template-columns:auto minmax(180px,1fr) auto auto}.builder-work-head>span.builder-evidence,.builder-evidence{color:#748198;white-space:nowrap;cursor:pointer;background:#f5f7fb;border:1px solid #dbe4f1;border-radius:16px;flex-direction:row;align-items:center;gap:6px;min-width:0;height:auto;min-height:31px;padding:0 10px;font-size:9px;font-weight:700;display:inline-flex}.builder-evidence input{accent-color:#f47a18;width:13px;height:13px;margin:0}.builder-work-head>span.builder-evidence.required,.builder-evidence.required{color:#c65b05;background:#fff4e8;border-color:#ffd2ad}.builder-work-head>span.builder-evidence.document{color:#245fc4;cursor:default;background:#edf4ff;border-color:#cbdcf8}@media (max-width:900px){.builder-work-head{grid-template-columns:auto 1fr auto}.builder-work-head>div{grid-column:2/-1;justify-content:flex-end}}@media (max-width:600px){.builder-work-head{grid-template-columns:auto 1fr}.builder-evidence{grid-column:2;justify-self:start}.builder-work-head>div{grid-column:1/-1}}.mirror-settings{margin-top:16px;padding:18px}.mirror-metrics{grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0;display:grid}.mirror-metrics>span{background:#f7f9fc;border:1px solid #e2e8f1;border-radius:11px;gap:5px;padding:12px;display:grid}.mirror-metrics small{color:#7d899d;font-size:9px}.mirror-metrics b{font-size:14px}.mirror-form{background:#fbfcfe;border:1px solid #dfe7f2;border-radius:12px;grid-template-columns:180px 1fr;align-items:end;gap:12px;padding:14px;display:grid}.mirror-form>label>small{color:#8390a4;font-size:8px}.mirror-form>div{grid-column:1/-1;justify-content:flex-end;gap:8px;display:flex}.mirror-form>.check{align-self:center;font-size:10px}@media (max-width:760px){.mirror-metrics{grid-template-columns:repeat(2,1fr)}.mirror-form{grid-template-columns:1fr}.mirror-form>div{flex-wrap:wrap;grid-column:1;justify-content:flex-start}}.activity-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;min-width:180px;display:flex}.activity-actions .inline-files{flex:1 0 100%;min-width:460px}.record-delete{background:#fff8f8;border-color:#efc5c5;min-height:32px}@media (max-width:900px){.activity-actions{grid-column:1/-1;justify-content:flex-start;min-width:0}.activity-actions .inline-files{min-width:0}}.builder-track-badge{color:#245fc4;background:#edf4ff;border:1px solid #cadcf8;border-radius:18px;justify-content:center;align-self:center;align-items:center;min-height:34px;padding:0 12px;font-size:9px;font-weight:800;display:inline-flex}.template-builder .work-setting-grid{grid-template-columns:minmax(220px,1fr) 170px}@media (max-width:600px){.builder-track-badge{grid-column:2;justify-self:start}.template-builder .work-setting-grid{grid-template-columns:1fr}}.modal,.drawer-body,.template-builder{overscroll-behavior:contain;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch;touch-action:pan-y}.drawer>header{flex:none}.drawer-body,.template-builder,.template-builder-drawer{min-height:0}.modal{max-height:min(90vh,100dvh - 24px)}.template-builder:focus{outline-offset:-2px;outline:2px solid #2866e82e}.resource-library{margin-bottom:14px;overflow:hidden}.resource-library>header{background:linear-gradient(100deg,#f4f8ff,#fff);border-bottom:1px solid #e7edf5;justify-content:space-between;align-items:center;gap:16px;padding:15px 17px;display:flex}.resource-library>header>div{align-items:center;gap:12px;display:flex}.resource-library h3,.resource-library p{margin:0}.resource-library h3{font-size:13px}.resource-library p{color:#78869c;margin-top:4px;font-size:9px}.resource-icon{color:#2363cd;background:#e4efff;border-radius:11px;place-items:center;width:38px;height:38px;font-size:20px;font-weight:900;display:grid}.resource-files{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:11px;display:grid}.resource-files>article{background:#fff;border:1px solid #e2e8f1;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:9px;min-width:0;padding:10px 11px;display:grid}.resource-files>article>span{color:#49617f;background:#eef3fb;border-radius:9px;place-items:center;min-width:38px;height:34px;padding:0 5px;font-size:8px;font-weight:800;display:grid}.resource-files>article>div{min-width:0}.resource-files b,.resource-files small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.resource-files b{font-size:10px}.resource-files small{color:#8491a4;margin-top:4px;font-size:8px}.resource-files a,.resource-files button{color:#31537f;background:#fff;border:1px solid #dbe3ef;border-radius:8px;place-items:center;min-height:32px;padding:0 10px;font-size:9px;text-decoration:none;display:grid}.resource-files>p{color:#8a96a9;text-align:center;grid-column:1/-1;margin:0;padding:17px;font-size:10px}.hidden-work-summary{grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:12px;display:grid}.hidden-work-summary article{background:#fff;border:1px solid #e1e8f2;border-radius:13px;gap:6px;min-height:88px;padding:14px 16px;display:grid;box-shadow:0 7px 22px #1d30550d}.hidden-work-summary small{color:#7e8ca2;font-size:9px}.hidden-work-summary b{color:#1f62cd;font-size:21px}.hidden-work-summary b em{color:#8996aa;margin-left:3px;font-size:10px;font-style:normal}.hidden-work-summary span{color:#8995a8;font-size:8px}.hidden-work-guide{background:linear-gradient(100deg,#fff7e9,#fff);border:1px solid #f5d3a0;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;padding:15px 17px;display:flex}.hidden-work-guide>div{align-items:center;gap:12px;display:flex}.hidden-work-guide>div>span{color:#fff;background:linear-gradient(135deg,#f5a623,#ed7613);border-radius:12px;place-items:center;width:41px;height:41px;font-size:17px;font-weight:900;display:grid}.hidden-work-guide h2,.hidden-work-guide p{margin:0}.hidden-work-guide h2{font-size:14px}.hidden-work-guide p{color:#836f52;margin-top:5px;font-size:9px}.hidden-work-guide>small{color:#987c55;text-align:right;font-size:8px}.hidden-work-groups{gap:10px;display:grid}.hidden-work-group{background:#fff;border:1px solid #dfe7f2;border-radius:14px;overflow:hidden;box-shadow:0 7px 22px #1d30550a}.hidden-work-group.open{border-color:#c8daf7}.hidden-work-group.status-rejected{border-left:3px solid #e34b50}.hidden-work-group.status-approved{border-left:3px solid #20a774}.hidden-work-group.status-submitted{border-left:3px solid #efaa22}.hidden-group-head{width:100%;min-height:68px;color:inherit;text-align:left;background:linear-gradient(90deg,#f7faff,#fff);border:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;padding:12px 15px;display:grid}.hidden-group-head>span{color:#2465ce;background:#eaf2ff;border-radius:11px;place-items:center;width:39px;height:39px;font-size:13px;font-weight:900;display:grid}.hidden-group-head b,.hidden-group-head small{display:block}.hidden-group-head b{font-size:13px}.hidden-group-head small{color:#7f8ca1;margin-top:5px;font-size:9px}.hidden-group-head>i{color:#75839a;font-size:16px;font-style:normal}.hidden-sections{background:#f5f7fb;gap:8px;padding:9px;display:grid}.hidden-sections>section{background:#fff;border:1px solid #e1e7f0;border-radius:11px;overflow:hidden}.hidden-section-head{width:100%;min-height:52px;color:inherit;text-align:left;background:#fff;border:0;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;padding:9px 12px;display:grid}.hidden-section-head>span{color:#2966c9;background:#edf3ff;border-radius:8px;place-items:center;min-width:43px;height:29px;padding:0 7px;font-size:9px;font-weight:800;display:grid}.hidden-section-head b{font-size:11px}.hidden-section-head small{color:#72819a;font-size:9px}.hidden-section-head i{color:#7d899d;font-size:8px;font-style:normal}.hidden-requirements{background:#fafbfd;border-top:1px solid #e9edf4;gap:7px;padding:8px;display:grid}.hidden-requirements>article{background:#fff;border:1px solid #e3e8f0;border-left:3px solid #f0a32a;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:9px;min-width:0;padding:10px;display:grid}.hidden-requirements>article.ready{border-left-color:#22a875}.hidden-requirements>article>span{color:#6680a8;font-size:8px;font-weight:800}.hidden-requirements>article>div{min-width:0}.hidden-requirements b,.hidden-requirements small{display:block}.hidden-requirements b{font-size:10px;line-height:1.55}.hidden-requirements small{color:#8894a7;margin-top:4px;font-size:8px}.hidden-requirements>article>button{min-height:34px}.hidden-requirements .inline-files{grid-column:1/-1;width:100%}.hidden-work-actions{padding:8px 4px 2px}.hidden-work-actions button{min-width:96px}@media (max-width:900px){.resource-files{grid-template-columns:1fr}.hidden-work-guide{flex-direction:column;align-items:flex-start}.hidden-work-guide>small{text-align:left}.hidden-requirements>article{grid-template-columns:auto 1fr}.hidden-requirements>article>button,.hidden-requirements>article>.manage-files-button{grid-column:auto}.hidden-work-summary{grid-template-columns:1fr 1fr}.hidden-work-summary article:last-child{grid-column:1/-1}}@media (max-width:600px){.resource-library>header{flex-direction:column;align-items:flex-start}.resource-library>header>button{width:100%}.resource-files{padding:8px}.resource-files>article{grid-template-columns:auto minmax(0,1fr)}.resource-files>article>a,.resource-files>article>button{grid-column:auto}.hidden-work-summary{grid-template-columns:1fr 1fr}.hidden-work-summary article{min-height:80px;padding:12px}.hidden-group-head{grid-template-columns:auto 1fr auto;padding:10px}.hidden-group-head>i{display:none}.hidden-section-head{grid-template-columns:auto 1fr auto}.hidden-section-head i{display:none}.hidden-requirements>article{grid-template-columns:auto minmax(0,1fr)}.hidden-requirements>article>button{grid-column:auto}.modal-backdrop{overscroll-behavior:contain}}.document-reject-reason{color:#cf4545;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:9px;font-style:normal;font-weight:700;display:block;overflow:hidden}.inline-review.rejected{color:#b63e3e;background:#fff5f5;border-color:#f0c4c4}.resource-project-picker{gap:12px;min-height:0;display:grid}.resource-project-picker>header{justify-content:space-between;align-items:center;padding:0 2px;display:flex}.resource-project-picker>header span{color:#63738e;font-size:10px}.resource-project-picker>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:52vh;display:grid;overflow:auto}.resource-project-picker label{background:#fafbfd;border:1px solid #e1e7f0;border-radius:11px;align-items:center;gap:10px;min-height:56px;padding:10px 12px;display:flex}.resource-project-picker label.selected{background:#f2f7ff;border-color:#8bb3f5}.resource-project-picker label>span{min-width:0}.resource-project-picker label b,.resource-project-picker label small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.resource-project-picker label b{font-size:10px}.resource-project-picker label small{color:#7f8da2;margin-top:4px;font-size:8px}.unit-document-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:13px;display:grid}.unit-document-summary article{background:#f9fbfe;border:1px solid #e3e9f2;border-radius:11px;align-items:center;gap:9px;padding:11px;display:flex}.unit-document-summary article>span{color:#dd8317;background:#fff1dc;border-radius:8px;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.unit-document-summary article.ready>span{color:#16864a;background:#e8f8ef}.unit-document-summary b,.unit-document-summary small{display:block}.unit-document-summary b{font-size:10px}.unit-document-summary small{color:#8390a4;margin-top:4px;font-size:8px}.payment-conditions{background:linear-gradient(105deg,#f7faff,#fff);border:1px solid #dfe7f2;border-radius:13px;margin:14px 0;padding:13px}.payment-conditions>header{justify-content:space-between;margin-bottom:10px;display:flex}.payment-conditions h4,.payment-conditions p{margin:0}.payment-conditions h4{font-size:11px}.payment-conditions p{color:#7f8ca0;margin-top:3px;font-size:8px}.payment-condition-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.payment-condition-grid>article{background:#fff;border:1px solid #e1e7f0;border-radius:11px;gap:8px;padding:11px;display:grid}.payment-condition-grid>article.met{background:#f7fdf9;border-color:#bfe6cf}.payment-condition-grid>article.pending{background:#fffaf2;border-color:#f1d29e}.payment-condition-grid>article>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.payment-condition-grid>article>div:first-child>b{font-size:11px}.payment-condition-grid>article>strong{color:#205fca;font-size:18px}.payment-condition-grid>article>strong small{color:#8a96a8;font-size:9px}.payment-node-list{gap:5px;min-height:31px;display:grid}.payment-node-list span{color:#5f6f88;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:8px;display:flex;overflow:hidden}.payment-node-list i{background:#dba04a;border-radius:50%;flex:none;width:7px;height:7px}.payment-node-list i.ready{background:#24a56c}.payment-node-list small{color:#929cad;font-size:8px}.payment-condition-grid>article>button{min-height:30px}.payment-condition-dialog{gap:12px;min-height:0;display:grid}.condition-toolbar{background:#f4f7fc;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;display:flex}.condition-toolbar p{color:#60708a;margin:0;font-size:9px}.condition-toolbar strong{color:#2164d3;margin:0 3px;font-size:14px}.condition-toolbar>div{gap:6px;display:flex}.condition-node-groups{gap:10px;max-height:54vh;padding-right:4px;display:grid;overflow:auto}.condition-node-groups>section{border:1px solid #e1e7f0;border-radius:11px;overflow:hidden}.condition-node-groups>section>header{background:#f5f8fd;justify-content:space-between;padding:9px 12px;display:flex}.condition-node-groups>section>header b{font-size:10px}.condition-node-groups>section>header span{color:#6f7f98;font-size:9px}.condition-node-groups label{background:#fff;border-top:1px solid #edf0f5;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;display:grid}.condition-node-groups label.selected{background:#f5f9ff}.condition-node-groups label b,.condition-node-groups label small{display:block}.condition-node-groups label b{font-size:9px}.condition-node-groups label small{color:#8995a8;margin-top:3px;font-size:8px}@media (max-width:900px){.payment-condition-grid,.resource-project-picker>div,.unit-document-summary{grid-template-columns:1fr}}@keyframes condition-check-in{0%{opacity:.25;transform:scale(.55)}70%{transform:scale(1.14)}to{opacity:1;transform:scale(1)}}.payment-condition-modal{width:min(920px,100vw - 36px);overflow:hidden}.payment-condition-modal>.payment-condition-dialog{max-height:calc(90dvh - 96px)}.condition-summary{background:linear-gradient(112deg,#edf4ff,#f9fbff 68%,#fff7ec);border:1px solid #d9e5f7;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 16px;display:grid}.condition-summary-icon{color:#fff;background:linear-gradient(145deg,#2869dc,#1556c1);border-radius:12px;place-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:grid;box-shadow:0 8px 18px #2360cc33}.condition-summary p,.condition-summary strong,.condition-summary small{margin:0;display:block}.condition-summary p{color:#697991;font-size:9px}.condition-summary strong{color:#1f3150;margin-top:4px;font-size:14px}.condition-summary strong small{color:#8491a5;font-size:9px;font-weight:600;display:inline}.condition-summary-percent{color:#2564ce;font-size:17px;font-weight:900}.condition-summary-progress{background:#dfe7f3;border-radius:5px;height:5px;margin-top:9px;overflow:hidden}.condition-summary-progress>i{background:linear-gradient(90deg,#2868dd,#12a3bd);border-radius:5px;height:100%;transition:width .26s cubic-bezier(.2,.8,.2,1);display:block}.condition-filterbar{grid-template-columns:minmax(250px,1fr) auto auto;align-items:center;gap:8px;display:grid}.condition-search{align-items:center;display:flex;position:relative}.condition-search>span{z-index:1;color:#708099;font-size:18px;line-height:1;position:absolute;left:12px;transform:rotate(-20deg)}.condition-search input{background:#f8fafd;border-color:#dce5f1;border-radius:11px;height:40px;padding:0 64px 0 38px;font-size:10px}.condition-search input:focus{background:#fff}.condition-search kbd{color:#718099;background:#e9eef6;border:0;border-radius:7px;padding:3px 6px;font-family:inherit;font-size:8px;position:absolute;right:10px}.condition-selected-toggle{color:#64738a;background:#fff;border-color:#dce5f1;min-height:40px}.condition-selected-toggle.active{color:#235fc7;background:#edf4ff;border-color:#88b0f1;box-shadow:0 5px 13px #2866e81a}.condition-batch-actions{gap:6px;display:flex}.condition-batch-actions button{white-space:nowrap;min-height:40px}.condition-help{color:#7a879a;margin:-2px 2px 0;font-size:9px;line-height:1.55}.condition-node-groups{scrollbar-gutter:stable;grid-auto-rows:max-content;align-content:start;gap:8px;max-height:46vh;padding:1px 5px 2px 1px;display:grid;overflow:auto}.condition-node-groups>section.condition-stage{background:#fff;border:1px solid #dfe6f0;border-radius:13px;transition:border-color .2s,box-shadow .2s;overflow:hidden}.condition-node-groups>section.condition-stage.open{border-color:#bcd2f5;box-shadow:0 8px 20px #214b8f12}.condition-stage-head{width:100%;min-height:62px;color:inherit;text-align:left;background:linear-gradient(95deg,#f7faff,#fff);border:0;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;padding:10px 13px 13px;transition:background .18s;display:grid;position:relative}.condition-stage-head:hover{background:linear-gradient(95deg,#eef5ff,#fff)}.condition-stage-index{color:#2864ca;background:#eaf2ff;border-radius:10px;place-items:center;width:36px;height:36px;font-size:10px;font-weight:900;display:grid}.condition-stage-copy{min-width:0}.condition-stage-copy b,.condition-stage-copy small{display:block}.condition-stage-copy b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.condition-stage-copy small{color:#8390a3;margin-top:4px;font-size:8px}.condition-stage-count{color:#6f7e94;white-space:nowrap;font-size:9px}.condition-stage-count b{color:#2463ce;font-size:12px}.condition-stage-chevron{color:#718096;font-size:18px;line-height:1;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.condition-stage.open .condition-stage-chevron{transform:rotate(180deg)}.condition-stage-track{background:#eef2f7;height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.condition-stage-track>i{background:linear-gradient(90deg,#2868dc,#18a28c);height:100%;transition:width .26s cubic-bezier(.2,.8,.2,1);display:block}.condition-stage-body{visibility:hidden;opacity:0;pointer-events:none;max-height:0;transition:max-height .28s cubic-bezier(.2,.8,.2,1),opacity .18s,visibility 0s linear .28s;overflow:hidden}.condition-stage-body>div{overflow:visible}.condition-stage.open .condition-stage-body{visibility:visible;opacity:1;pointer-events:auto;max-height:720px;transition:max-height .28s cubic-bezier(.2,.8,.2,1),opacity .18s,visibility}.condition-node-grid{background:#f6f8fc;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;display:grid}.condition-node-groups label.condition-node-card{cursor:pointer;background:#fff;border:1px solid #e1e7f0;border-radius:11px;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:9px;min-height:58px;padding:9px 10px;transition:transform .16s,border-color .18s,background .18s,box-shadow .18s;display:grid;position:relative}.condition-node-groups label.condition-node-card:hover{z-index:1;border-color:#aec7ee;transform:translateY(-1px);box-shadow:0 6px 14px #234a8914}.condition-node-groups label.condition-node-card.selected{background:#eef5ff;border-color:#79a7ee;box-shadow:inset 3px 0 #2868dc}.condition-node-card input{opacity:0;pointer-events:none;position:absolute}.condition-check{color:#0000;background:#fff;border:1px solid #cbd5e3;border-radius:6px;place-items:center;width:20px;height:20px;font-size:11px;font-weight:900;display:grid}.condition-node-card.selected .condition-check{color:#fff;background:#2868dc;border-color:#2868dc;animation:.21s cubic-bezier(.2,.8,.2,1) both condition-check-in}.condition-node-order{color:#74839a;background:#f0f3f8;border-radius:7px;place-items:center;min-width:27px;height:26px;font-size:8px;font-weight:800;display:grid}.condition-node-card.selected .condition-node-order{color:#245ec1;background:#dceaff}.condition-node-copy{min-width:0}.condition-node-copy b,.condition-node-copy small{display:block}.condition-node-copy b{color:#263750;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.condition-node-copy small{color:#8793a6;margin-top:4px;font-size:8px}.condition-node-card .status{white-space:nowrap}.payment-condition-dialog>.dialog-actions{background:#fff;border-top:1px solid #e8edf4;margin-top:0;padding-top:11px}@media (max-width:720px){.payment-condition-modal{width:100%}.payment-condition-modal>.payment-condition-dialog{max-height:calc(92dvh - 88px)}.condition-summary{grid-template-columns:auto minmax(0,1fr);padding:12px}.condition-summary-percent{display:none}.condition-filterbar{grid-template-columns:1fr 1fr}.condition-search{grid-column:1/-1}.condition-selected-toggle{width:100%}.condition-batch-actions{grid-template-columns:1fr 1fr;display:grid}.condition-node-groups{max-height:43dvh}.condition-stage-head{grid-template-columns:auto minmax(0,1fr) auto;padding-right:10px}.condition-stage-count{grid-column:2}.condition-stage-chevron{grid-area:1/3/3}.condition-node-grid{grid-template-columns:1fr;padding:8px}.condition-node-groups label.condition-node-card{grid-template-columns:auto auto minmax(0,1fr);min-height:64px}.condition-node-card .status{grid-column:3;justify-self:start}}.payment-ledger-overview{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.payment-ledger-overview>button,.payment-ledger-overview>article{min-height:98px;color:inherit;text-align:left;background:#fff;border:1px solid #dfe7f2;border-radius:13px;gap:6px;padding:14px 15px;display:grid;box-shadow:0 7px 20px #18315a0d}.payment-ledger-overview>button{cursor:pointer;transition:transform .17s,border-color .18s,box-shadow .18s}.payment-ledger-overview>button:hover{border-color:#a9c4ef;transform:translateY(-2px);box-shadow:0 10px 24px #1f4c9717}.payment-ledger-overview>button.active{background:linear-gradient(135deg,#edf4ff,#fff);border-color:#6e9fea;box-shadow:inset 3px 0 #2868dc,0 9px 22px #1f4c9714}.payment-ledger-overview span{color:#6f7e94;font-size:9px}.payment-ledger-overview strong{color:#205fc8;font-size:22px}.payment-ledger-overview strong small{color:#8591a4;font-size:9px}.payment-ledger-overview i{color:#8a96a8;font-size:8px;font-style:normal}.payment-ledger-overview>button.cyan strong{color:#0889a0}.payment-ledger-overview>button.orange strong{color:#cf7214}.payment-ledger-overview>button.purple strong{color:#7252bd}.payment-ledger{overflow:hidden}.payment-ledger-toolbar{background:linear-gradient(100deg,#f8faff,#fff);border-bottom:1px solid #e6ebf2;grid-template-columns:minmax(210px,1fr) minmax(220px,1.1fr) 115px 120px 120px auto;align-items:end;gap:9px;padding:15px 16px;display:grid}.payment-ledger-toolbar h2,.payment-ledger-toolbar p{margin:0}.payment-ledger-toolbar h2{font-size:14px}.payment-ledger-toolbar p{color:#7d899d;margin-top:5px;font-size:8px}.payment-ledger-toolbar label{color:#738198;gap:4px;font-size:8px;display:grid}.payment-ledger-toolbar select,.payment-ledger-toolbar input{background:#fff;height:38px;font-size:9px}.payment-ledger-toolbar>button{min-height:38px}.ledger-search{position:relative}.ledger-search>span{z-index:1;color:#74839a;font-size:17px;position:absolute;bottom:8px;left:11px;transform:rotate(-20deg)}.ledger-search input{padding-left:35px}.payment-ledger-result{color:#718097;border-bottom:1px solid #edf0f5;padding:9px 16px;font-size:9px}.payment-ledger-result b{color:#2563cb;font-size:12px}.payment-ledger-result span{color:#50617b}.payment-ledger-table{min-height:240px;max-height:calc(100dvh - 390px)}.payment-ledger-table table{min-width:1460px}.payment-ledger-table thead{z-index:3;position:sticky;top:0}.payment-ledger-table th{color:#65748b;white-space:nowrap;background:#f4f7fb;height:42px;font-size:8px}.payment-ledger-table td{vertical-align:middle;padding:10px 9px}.ledger-row{transition:background .16s}.ledger-row:hover{background:#f9fbff}.ledger-row.over td:first-child{box-shadow:inset 3px 0 #ef5b5b}.ledger-project,.ledger-money,.ledger-deviation{gap:4px;display:grid}.ledger-project{min-width:150px}.ledger-project small{color:#2864cb;font-size:8px;font-weight:800}.ledger-project b,.ledger-money b,.ledger-deviation b{font-size:10px}.ledger-money small,.ledger-deviation small{color:#8290a5;font-size:8px}.ledger-deviation.danger b{color:#db4141}.ledger-payment{background:#f8f9fc;border:1px solid #e1e7f0;border-radius:9px;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;min-width:132px;padding:8px;display:grid}.ledger-payment>span{color:#6e7c91;white-space:nowrap;grid-column:1/-1;align-items:center;gap:5px;font-size:8px;display:flex}.ledger-payment>span i{background:#adb7c6;border-radius:50%;width:7px;height:7px}.ledger-payment>strong{font-size:11px}.ledger-payment>small{color:#6e7c91;place-self:center end;font-size:8px}.ledger-payment>b{color:#66758c;font-size:8px}.ledger-payment>button{color:#315e9e;background:#fff;border-color:#d8e2f0;grid-area:3/2;min-height:25px;padding:0 7px;font-size:8px}.ledger-payment.met{background:#f2fbf6;border-color:#bce4cf}.ledger-payment.met>span{color:#167a52}.ledger-payment.met>span i{background:#20a66d}.ledger-payment.pending{background:#fff9ef;border-color:#f0d19f}.ledger-payment.pending>span{color:#aa6813}.ledger-payment.pending>span i{background:#eba02c}.ledger-actions{gap:5px;min-width:78px;display:grid}.ledger-actions button{white-space:nowrap;min-height:30px;padding:0 8px}.ledger-detail-row>td{background:#f5f8fc;padding:0!important}.ledger-detail{border-top:1px solid #dfe6f1;border-bottom:1px solid #dfe6f1;padding:14px 18px 17px;animation:.19s ease-out both ledger-detail-in}@keyframes ledger-detail-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.ledger-detail .cost-metrics{margin:0 0 11px}.ledger-detail .change-list{margin-top:12px}.ledger-empty-change{color:#8995a8;margin:0;padding:13px 0;font-size:9px}@media (max-width:1100px){.payment-ledger-overview{grid-template-columns:repeat(2,1fr)}.payment-ledger-toolbar{grid-template-columns:1fr 1fr 120px 120px}.payment-ledger-toolbar>div:first-child{grid-column:1/-1}.payment-ledger-toolbar>button{align-self:end}}@media (max-width:720px){.payment-ledger-overview{grid-template-columns:1fr 1fr}.payment-ledger-overview>button,.payment-ledger-overview>article{min-height:90px;padding:12px}.payment-ledger-toolbar{grid-template-columns:1fr 1fr;padding:12px}.payment-ledger-toolbar>div:first-child,.ledger-search{grid-column:1/-1}.payment-ledger-toolbar>button{min-height:44px}.payment-ledger-table{max-height:none}.ledger-detail .cost-metrics{grid-template-columns:1fr 1fr}}.payment-plan-dialog{gap:13px;display:grid}.payment-plan-hero{background:linear-gradient(115deg,#edf4ff,#fff 68%,#fff7e9);border:1px solid #d7e4f7;border-radius:15px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:16px 18px;display:grid}.payment-plan-hero small,.payment-plan-hero strong,.payment-plan-hero p{margin:0;display:block}.payment-plan-hero>div>small{color:#718199;font-size:9px}.payment-plan-hero>div>strong{color:#215fc6;margin-top:5px;font-size:23px}.payment-plan-hero>div>strong i{color:#7f8da2;margin-left:4px;font-size:9px;font-style:normal}.payment-plan-hero p{color:#79869a;margin-top:7px;font-size:8px}.payment-plan-hero>span{text-align:right;background:#fff6f6;border:1px solid #f0c6c6;border-radius:12px;gap:3px;min-width:126px;padding:11px 14px;display:grid}.payment-plan-hero>span.valid{background:#f3fbf6;border-color:#bce2cc}.payment-plan-hero>span small{color:#7e8a9e;font-size:8px}.payment-plan-hero>span b{color:#d24b4b;font-size:18px}.payment-plan-hero>span.valid b{color:#168157}.payment-plan-hero>span em{color:#a76666;font-size:8px;font-style:normal}.payment-plan-hero>span.valid em{color:#4e8c70}.payment-ratio-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.payment-ratio-grid>label{background:#fff;border:1px solid #dfe6f0;border-top:3px solid #3574df;border-radius:12px;gap:8px;padding:13px;display:grid}.payment-ratio-grid>label.cyan{border-top-color:#17a0b5}.payment-ratio-grid>label.orange{border-top-color:#ef8b24}.payment-ratio-grid>label.purple{border-top-color:#7957c5}.payment-ratio-grid>label>span{align-items:center;gap:7px;display:flex}.payment-ratio-grid>label>span i{color:#2865ce;background:#edf4ff;border-radius:7px;place-items:center;width:24px;height:24px;font-size:8px;font-style:normal;font-weight:900;display:grid}.payment-ratio-grid>label>span b{font-size:11px}.payment-ratio-grid>label>div{position:relative}.payment-ratio-grid input{color:#243754;background:#f7f9fc;height:42px;padding-right:29px;font-size:15px;font-weight:800}.payment-ratio-grid>label>div em{color:#748299;font-size:10px;font-style:normal;position:absolute;top:11px;right:10px}.payment-ratio-grid>label>small{color:#8793a5;font-size:8px}.payment-ratio-grid>label>strong{color:#3d4e69;font-size:11px}.payment-distribution{background:#f9fbfd;border:1px solid #e0e7f1;border-radius:13px;gap:9px;padding:13px 15px;display:grid}.payment-distribution>header{justify-content:space-between;align-items:center;display:flex}.payment-distribution>header b{font-size:10px}.payment-distribution>header span{color:#7d899d;font-size:8px}.payment-distribution>div{background:#e7ecf3;border-radius:9px;height:11px;display:flex;overflow:hidden}.payment-distribution>div i{background:#3474e0;height:100%;transition:width .26s cubic-bezier(.2,.8,.2,1);display:block}.payment-distribution>div i.cyan{background:#14a3b9}.payment-distribution>div i.orange{background:#ef8b24}.payment-distribution>div i.purple{background:#7957c5}.payment-distribution>footer{flex-wrap:wrap;gap:10px 16px;display:flex}.payment-distribution>footer span{color:#65748a;align-items:center;gap:5px;font-size:8px;display:flex}.payment-distribution>footer i,.ledger-plan-summary span>small:before{background:#3474e0;border-radius:50%;width:7px;height:7px}.payment-distribution>footer i.cyan{background:#14a3b9}.payment-distribution>footer i.orange{background:#ef8b24}.payment-distribution>footer i.purple{background:#7957c5}.payment-plan-warning{color:#c14646;background:#fff2f2;border-radius:9px;margin:0;padding:9px 11px;font-size:9px}.payment-plan-dialog>.dialog-actions{margin-top:0}.ledger-plan-summary{background:#fff;border:1px solid #dfe6f0;border-radius:12px;margin-bottom:11px;padding:12px}.ledger-plan-summary>header{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.ledger-plan-summary>header b,.ledger-plan-summary>header small{display:block}.ledger-plan-summary>header b{font-size:10px}.ledger-plan-summary>header small{color:#8490a4;margin-top:4px;font-size:8px}.ledger-plan-summary>div{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.ledger-plan-summary>div>span{background:#f6f9ff;border-left:3px solid #3474e0;border-radius:8px;gap:4px;padding:9px 10px;display:grid}.ledger-plan-summary>div>span.cyan{border-left-color:#14a3b9}.ledger-plan-summary>div>span.orange{border-left-color:#ef8b24}.ledger-plan-summary>div>span.purple{border-left-color:#7957c5}.ledger-plan-summary span small{color:#7f8b9e;font-size:8px}.ledger-plan-summary span b{font-size:12px}.ledger-plan-summary span em{color:#66758b;font-size:8px;font-style:normal}@media (max-width:1100px){.payment-ledger-toolbar{grid-template-columns:1fr 1fr 1fr}.payment-ledger-toolbar>div:first-child{grid-column:1/-1}.payment-ledger-overview{grid-template-columns:repeat(3,1fr)}}@media (max-width:720px){.payment-plan-modal{width:100%}.payment-plan-hero{grid-template-columns:1fr}.payment-plan-hero>span{text-align:left}.payment-ratio-grid,.ledger-plan-summary>div,.payment-ledger-overview{grid-template-columns:1fr 1fr}}.project-row-actions{white-space:nowrap;align-items:center;gap:6px;display:flex}.project-row-actions .text-danger{color:#cf3f3f;background:#fff7f7;border-color:#f0caca}.project-row-actions .text-danger:hover{background:#fff0f0;border-color:#dc5151}.join-application-panel{overflow:hidden}.join-application-panel table small{color:#8491a4;margin-top:4px;display:block}.join-application-panel .status{white-space:nowrap}.join-application-panel .project-row-actions .approve{color:#147452;background:#effaf5;border-color:#b9e3d0}.join-review-summary{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:15px;display:grid}.join-review-summary span{border:1px solid var(--line);background:#f8fafd;border-radius:11px;gap:5px;padding:12px 14px;display:grid}.join-review-summary small{color:#8491a4;font-size:9px}.join-review-summary b{font-size:12px}.danger-button{color:#fff!important;background:#d94545!important;border-color:#e25d5d!important}@media (max-width:420px){.payment-ratio-grid,.ledger-plan-summary>div{grid-template-columns:1fr}}.payment-ledger-toolbar{grid-template-columns:minmax(210px,1fr) minmax(210px,1.1fr) repeat(4,112px) auto}.ledger-payment>.payment-record-status{justify-self:start}.payment-record-status{color:#627087;background:#eef2f7;border-radius:999px;align-items:center;width:max-content;padding:3px 7px;font-style:normal;font-weight:800;line-height:1.2;display:inline-flex;font-size:7px!important}.payment-record-status.applied{color:#2462c8;background:#eaf2ff}.payment-record-status.processing{color:#b96c0c;background:#fff3dc}.payment-record-status.paid{color:#167a52;background:#e7f8ef}.payment-record-status.overdue{color:#c64040;background:#fff0f0}.ledger-payment-date{grid-column:1/-1;justify-self:start!important}.ledger-actions .payment-record-button{color:#245fc3;background:#f0f6ff;border-color:#b7cdf0}.ledger-plan-summary>div>span>.payment-record-status:before{display:none}.ledger-plan-summary>div>span>small{display:block}.payment-record-modal{width:min(960px,100vw - 36px)}.payment-record-dialog{gap:13px;display:grid}.payment-record-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:62dvh;padding:1px 5px 1px 1px;display:grid;overflow:auto}.payment-record-card{background:#fff;border:1px solid #dfe6f0;border-top:3px solid #3474e0;border-radius:13px;animation:.22s cubic-bezier(.2,.8,.2,1) both payment-record-in;overflow:hidden}.payment-record-card.cyan{border-top-color:#14a3b9}.payment-record-card.orange{border-top-color:#ef8b24}.payment-record-card.purple{border-top-color:#7957c5}.payment-record-card>header{background:linear-gradient(90deg,#f6f9ff,#fff);border-bottom:1px solid #e8edf4;align-items:center;gap:10px;padding:11px 13px;display:flex}.payment-record-card>header>span{color:#2462cb;background:#e8f1ff;border-radius:9px;place-items:center;width:31px;height:31px;font-size:9px;font-weight:900;display:grid}.payment-record-card>header b,.payment-record-card>header small{display:block}.payment-record-card>header b{font-size:11px}.payment-record-card>header small{color:#7d899d;margin-top:4px;font-size:8px}.payment-record-card>.form-grid{padding:12px}.payment-record-dialog>.form-hint{margin:0}.payment-record-dialog>.dialog-actions{margin-top:0}.payment-import-panel{margin-top:16px}.payment-data-grid{padding:0 16px 16px}.payment-import-preview{background:#fff;border:1px solid #e0e7f1;border-radius:13px;margin:0 16px 16px}.payment-import-preview .panel-heading{border-bottom:1px solid #e8edf4}.payment-import-preview small{color:#8290a5;margin-top:3px;display:block}.payment-import-panel>.panel-heading{border-bottom:0}.payment-import-panel .data-card{animation:.22s cubic-bezier(.2,.8,.2,1) both payment-record-in}@keyframes payment-record-in{0%{opacity:0;transform:translateY(7px)scale(.99)}to{opacity:1;transform:none}}@media (max-width:1100px){.payment-ledger-toolbar{grid-template-columns:1fr 1fr 1fr}.payment-record-grid{grid-template-columns:1fr}}@media (max-width:720px){.payment-record-modal{width:100%}.payment-record-grid{max-height:none;overflow:visible}.payment-record-card>.form-grid{grid-template-columns:1fr 1fr}.payment-data-grid{padding:0 12px 12px}.payment-import-preview{margin:0 12px 12px}}@media (max-width:460px){.payment-record-card>.form-grid{grid-template-columns:1fr}.payment-record-card .span-2{grid-column:1}}.payment-balance-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:13px;display:grid}.payment-balance-overview>article,.payment-balance-overview>button{min-height:88px;color:inherit;text-align:left;background:#fff;border:1px solid #dfe7f2;border-radius:13px;gap:5px;padding:13px 15px;display:grid;box-shadow:0 7px 20px #18315a0d}.payment-balance-overview>button{cursor:pointer;transition:transform .17s,border-color .18s,box-shadow .18s}.payment-balance-overview>button:hover{border-color:#a9c4ef;transform:translateY(-2px)}.payment-balance-overview>button.active{background:#fff5f5;border-color:#e7a1a1;box-shadow:inset 3px 0 #df4c4c}.payment-balance-overview span{color:#6f7e94;font-size:9px}.payment-balance-overview strong{color:#214f99;font-size:20px}.payment-balance-overview strong small{font-size:9px}.payment-balance-overview i{color:#8692a5;font-size:8px;font-style:normal}.payment-balance-overview .paid strong{color:#13815b}.payment-balance-overview .remaining strong{color:#d17815}.payment-balance-overview>button strong{color:#cf4545}.payment-ledger-table.compact table{min-width:1080px}.payment-ledger-table.compact td{padding:11px 10px}.ledger-money.paid b{color:#168158}.ledger-money.unpaid b{color:#cf7214}.ledger-pay-progress{align-items:center;gap:9px;min-width:120px;display:flex}.ledger-pay-progress>div{background:#e8edf4;border-radius:7px;width:82px;height:7px;overflow:hidden}.ledger-pay-progress>div i{background:linear-gradient(90deg,#1f68d8,#16a174);border-radius:7px;height:100%;transition:width .26s cubic-bezier(.2,.8,.2,1);display:block}.ledger-pay-progress>b{color:#32506f;font-size:9px}.ledger-stage-pills{grid-template-columns:1fr 1fr;gap:5px;min-width:200px;display:grid}.ledger-stage-pills>span{color:#69778d;background:#f0f3f7;border-radius:7px;justify-content:space-between;align-items:center;gap:5px;padding:5px 7px;font-size:7px;display:flex}.ledger-stage-pills>span b{font-size:8px}.ledger-stage-pills>span small{font-size:7px}.ledger-stage-pills>span.applied{color:#245fc4;background:#eaf2ff}.ledger-stage-pills>span.processing{color:#a96711;background:#fff3dd}.ledger-stage-pills>span.paid{color:#167b53;background:#e7f8ef}.ledger-stage-pills>span.overdue{color:#bd4141;background:#fff0f0}.compact-actions{grid-template-columns:1fr 1fr;min-width:150px}.compact-actions .payment-record-button{grid-column:1/-1}.compact-actions .more-action{color:#64748b}.ledger-plan-summary>div>span>button{color:#315e9e;background:#fff;min-height:27px;margin-top:3px;padding:0 7px;font-size:8px}.payment-record-dialog{gap:11px}.payment-record-balance{background:linear-gradient(110deg,#f1f6ff,#fff);border:1px solid #d9e4f4;border-radius:13px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;display:grid}.payment-record-balance>span{border-left:2px solid #9db8e4;gap:3px;padding:3px 9px;display:grid}.payment-record-balance>span.paid{border-left-color:#25a16c}.payment-record-balance>span.remaining{border-left-color:#ef972a}.payment-record-balance small{color:#78869a;font-size:8px}.payment-record-balance b{font-size:13px}.payment-record-balance .paid b{color:#168158}.payment-record-balance .remaining b{color:#cf7214}.payment-record-balance>div{background:#e5ebf3;border-radius:8px;grid-column:1/-1;height:7px;margin-top:3px;position:relative}.payment-record-balance>div i{background:linear-gradient(90deg,#2469da,#18a170);border-radius:8px;height:100%;transition:width .26s cubic-bezier(.2,.8,.2,1);display:block}.payment-record-balance>div em{color:#52627b;font-size:8px;font-style:normal;font-weight:800;position:absolute;top:-19px;right:0}.payment-record-tabs{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.payment-record-tabs button{color:#617189;text-align:left;background:#fff;border:1px solid #dfe6f0;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:2px 7px;min-height:50px;padding:7px 9px;transition:transform .16s,border-color .18s,background .18s,box-shadow .18s;display:grid}.payment-record-tabs button:hover{border-color:#aec7ef;transform:translateY(-1px)}.payment-record-tabs button.active{background:#eef5ff;border-color:#7ea8ed;box-shadow:inset 3px 0 #2868dc,0 6px 14px #255bb514}.payment-record-tabs button>span{color:#2863c8;background:#edf2fa;border-radius:8px;grid-row:1/3;place-items:center;width:27px;height:27px;font-size:8px;font-weight:900;display:grid}.payment-record-tabs button b{font-size:9px}.payment-record-tabs button small{color:#8490a3;font-size:7px}.payment-record-single{animation:.21s cubic-bezier(.2,.8,.2,1) both payment-stage-switch}.payment-record-single>header>em{margin-left:auto}.payment-record-single>.form-grid{grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 13px}.payment-record-single .payment-remark-field{grid-column:1/-1}.payment-record-single .payment-remark-field textarea{resize:vertical;min-height:66px}.payment-record-single select,.payment-record-single input{height:39px}.payment-record-single label{font-size:8px}@keyframes payment-stage-switch{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:none}}@media (max-width:1050px){.payment-balance-overview{grid-template-columns:repeat(2,1fr)}.payment-record-single>.form-grid{grid-template-columns:1fr 1fr}}@media (max-width:720px){.payment-balance-overview{grid-template-columns:1fr 1fr}.payment-record-tabs{display:flex;overflow-x:auto}.payment-record-tabs button{min-width:130px}.payment-record-single>.form-grid,.payment-record-balance{grid-template-columns:1fr 1fr}.payment-record-balance>span:first-child{grid-column:1/-1}.payment-ledger-table.compact table{min-width:940px}}@media (max-width:460px){.payment-record-single>.form-grid{grid-template-columns:1fr}.payment-record-single .payment-remark-field{grid-column:1}.payment-balance-overview,.payment-record-balance{grid-template-columns:1fr}.payment-record-balance>span:first-child{grid-column:1}.payment-record-tabs button{min-width:118px}}.payment-ledger-table.compact.three-stage table{min-width:1320px}.ledger-payment>em{color:#6e7c91;grid-column:1/-1;font-size:8px;font-style:normal}.payment-term-clause{border-top:1px dashed #dce4ef;padding-top:6px;line-height:1.55;color:#65748a!important;margin-top:4px!important}.payment-plan-modal{width:min(1040px,100vw - 36px)}.payment-template-toolbar{background:#f8fafd;border:1px solid #dfe6f0;border-radius:12px;justify-content:space-between;align-items:center;gap:14px;padding:11px 14px;display:flex}.payment-template-toolbar b,.payment-template-toolbar small{display:block}.payment-template-toolbar b{font-size:10px}.payment-template-toolbar small{color:#7d899c;margin-top:4px;font-size:8px}.payment-template-toolbar button{color:#245fc3;background:#eef5ff;border-color:#b6ccef}.payment-term-editor{gap:10px;display:grid}.payment-term-editor>section{background:#fff;border:1px solid #dfe6f0;border-top:3px solid #3474e0;border-radius:13px;animation:.22s cubic-bezier(.2,.8,.2,1) both payment-record-in;overflow:hidden}.payment-term-editor>section.cyan{border-top-color:#14a3b9}.payment-term-editor>section.purple{border-top-color:#7957c5}.payment-term-editor>section>header{background:linear-gradient(90deg,#f6f9ff,#fff);border-bottom:1px solid #e8edf4;align-items:center;gap:10px;padding:10px 13px;display:flex}.payment-term-editor>section>header>span{color:#2462cb;background:#e8f1ff;border-radius:9px;place-items:center;width:31px;height:31px;font-size:9px;font-weight:900;display:grid}.payment-term-editor>section>header>div{flex:1;min-width:0}.payment-term-editor>section>header b,.payment-term-editor>section>header small{display:block}.payment-term-editor>section>header b{font-size:11px}.payment-term-editor>section>header small{color:#7c899c;margin-top:3px;font-size:8px}.payment-term-editor>section>header strong{color:#245fc4;font-size:14px}.payment-term-fields{grid-template-columns:150px 180px 1fr 1fr;align-items:end;gap:9px;padding:12px 13px;display:grid}.payment-term-fields label{color:#66758b;gap:5px;font-size:8px;display:grid}.payment-term-fields label>div{position:relative}.payment-term-fields label>div input{padding-right:28px}.payment-term-fields label>div em{color:#78869a;font-size:9px;font-style:normal;position:absolute;top:10px;right:10px}.payment-term-fields input,.payment-term-fields select{height:39px}.payment-term-fields>span{background:#f5f7fb;border-radius:9px;gap:4px;min-height:39px;padding:6px 9px;display:grid}.payment-term-fields>span small{color:#7c899c;font-size:7px}.payment-term-fields>span b{font-size:10px}.payment-term-fields .span-4{grid-column:1/-1}.payment-term-fields textarea{resize:vertical;min-height:66px;line-height:1.55}.payment-record-condition{color:#65748a;background:#fbfcfe;border-bottom:1px solid #e8edf4;margin:0;padding:10px 13px;font-size:8px;line-height:1.6}.payment-record-tabs,.ledger-plan-summary>div{grid-template-columns:repeat(3,1fr)}@media (max-width:900px){.payment-term-fields{grid-template-columns:1fr 1fr}.payment-term-fields .span-4{grid-column:1/-1}.payment-ledger-table.compact.three-stage table{min-width:1240px}}@media (max-width:560px){.payment-template-toolbar{flex-direction:column;align-items:stretch}.payment-term-fields{grid-template-columns:1fr}.payment-term-fields .span-4{grid-column:1}.payment-term-editor>section>header strong{font-size:12px}.ledger-plan-summary>div{grid-template-columns:1fr}}.change-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-bottom:14px;display:grid}.change-overview article{background:#fff;border:1px solid #dfe7f2;border-radius:14px;gap:5px;min-height:92px;padding:14px 16px;display:grid;box-shadow:0 7px 22px #18315a0d}.change-overview span{color:#6e7d93;font-size:9px}.change-overview strong{color:#245fbd;font-size:22px}.change-overview strong i{font-size:9px;font-style:normal}.change-overview small{color:#8793a6;font-size:8px}.change-overview .pending{border-top:3px solid #eda22c}.change-overview .pending strong{color:#b96e11}.change-overview .approved{border-top:3px solid #20a36e}.change-overview .approved strong{color:#16805a}.change-overview .rejected{border-top:3px solid #e35a5a}.change-overview .rejected strong{color:#c84444}.change-overview .amount{border-top:3px solid #2868da}.engineering-ledger{overflow:hidden}.engineering-ledger-head{border-bottom:1px solid #e8edf4;grid-template-columns:minmax(210px,1fr) minmax(260px,1.3fr) 180px 130px auto;align-items:end;gap:9px;padding:14px 16px;display:grid}.engineering-ledger-head h2,.engineering-ledger-head p{margin:0}.engineering-ledger-head h2{font-size:14px}.engineering-ledger-head p{color:#7c899e;margin-top:4px;font-size:8px}.engineering-ledger-head label{font-size:8px}.engineering-ledger-head select,.engineering-ledger-head input{min-height:38px}.change-search{position:relative}.change-search>span{z-index:1;color:#74839a;font-size:17px;position:absolute;bottom:8px;left:11px;transform:rotate(-20deg)}.change-search input{padding-left:35px}.engineering-ledger-result{color:#718097;border-bottom:1px solid #edf0f5;padding:9px 16px;font-size:9px}.engineering-ledger-result b{color:#2563cb;font-size:12px}.engineering-change-table{min-height:250px;max-height:calc(100dvh - 390px);box-shadow:none;border:0;border-radius:0}.engineering-change-table table{min-width:1450px}.engineering-change-table td{vertical-align:middle;padding:10px}.change-project,.change-detail,.change-money,.change-review-state{gap:4px;display:grid}.change-project{min-width:155px}.change-project small{color:#2864cb;margin:0;font-size:8px;font-weight:900}.change-project b{font-size:10px}.change-project em{color:#7f8b9f;font-size:8px;font-style:normal}.change-detail{min-width:210px;max-width:300px}.change-detail b{font-size:10px}.change-detail small{color:#76849a;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:8px;line-height:1.55;display:-webkit-box;overflow:hidden}.change-money{background:#f5f7fb;border-radius:9px;min-width:105px;padding:8px 9px}.change-money b{font-size:11px}.change-money small{margin:0;font-size:7px}.change-money.increase{background:#eef8f3}.change-money.increase b,.increase{color:#16805a}.change-money.decrease{background:#fff1f1}.change-money.decrease b,.decrease{color:#c44}.change-money.after{background:#edf4ff}.change-money.after b{color:#245fc4}.change-files{gap:5px;min-width:118px;display:grid}.change-files>span{border-radius:999px;width:max-content;padding:4px 7px;font-size:8px}.change-files>span.ready{color:#167a52;background:#e7f7ef}.change-files>span.missing{color:#aa6712;background:#fff1dc}.change-files button{min-height:27px;padding:0 8px;font-size:8px}.change-files .inline-files{z-index:7;background:#fff;border:1px solid #d9e2f0;border-radius:11px;width:min(620px,100vw - 300px);max-height:310px;padding:9px;position:absolute;right:20px;overflow:auto;box-shadow:0 18px 48px #142a5233}.change-review-state{min-width:135px}.change-review-state small{max-width:210px;margin:0;line-height:1.45}.change-review-state .reject-comment{color:#c44040}.change-review-state em{color:#8a96a8;font-size:7px;font-style:normal}.change-actions{grid-template-columns:1fr 1fr;gap:5px;min-width:90px;display:grid}.change-actions button{min-height:29px;padding:0 7px}.change-actions .approve{color:#167b53;background:#eefaf4;border-color:#a9ddc4}.change-actions .reject{color:#bf3e3e;background:#fff5f5;border-color:#efbcbc}.change-actions>span{color:#8b96a7;font-size:8px}.engineering-change-modal{width:min(940px,100vw - 36px)}.engineering-change-form{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:14px;display:grid}.change-form-main{gap:11px;display:grid}.change-form-main label>small{color:#8793a5;font-size:8px}.change-calculation{background:#f7faff;border:1px solid #d8e4f5;border-radius:14px;overflow:hidden}.change-calculation header{color:#fff;background:linear-gradient(110deg,#173a79,#2868d6);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.change-calculation header span{font-size:10px;font-weight:700}.change-calculation header b{font-size:9px}.change-calculation>div{gap:8px;padding:13px;display:grid}.change-calculation>div>span{background:#fff;border-radius:9px;justify-content:space-between;align-items:center;padding:9px 10px;display:flex}.change-calculation small{color:#75839a;font-size:8px}.change-calculation b{font-size:11px}.change-calculation .result{background:#edf4ff;border:1px solid #bcd1f2;gap:5px;margin-top:3px;padding:13px;display:grid}.change-calculation .result strong{color:#205fc8;font-size:20px}.change-calculation>p{color:#7a879a;margin:0;padding:0 13px 13px;font-size:8px;line-height:1.6}.engineering-change-form>.form-error,.engineering-change-form>.dialog-actions{grid-column:1/-1}.review-change-summary{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:13px;display:grid}.review-change-summary span{background:#f5f7fb;border-radius:10px;gap:5px;padding:10px;display:grid}.review-change-summary small{color:#7d899d;font-size:8px}.review-change-summary b{font-size:11px}.change-agreement-tag{color:#245fc4;background:#edf4ff;border-radius:999px;width:max-content;padding:3px 7px;font-weight:700}.change-agreement-tag~.reject-comment{margin-top:2px}.boq-change-no-tag{color:#245fc4;background:#edf4ff;border-radius:999px;width:max-content;padding:4px 9px;font-size:8px;font-style:normal;font-weight:700}.change-seq-tag{color:#b96e11;vertical-align:1px;background:#fff3e2;border-radius:999px;margin-left:5px;padding:2px 6px;font-size:8px;font-style:normal;font-weight:800;display:inline-block}@media (max-width:1100px){.change-overview{grid-template-columns:1fr 1fr}.engineering-ledger-head{grid-template-columns:1fr 1fr 150px}.engineering-ledger-head>div:first-child{grid-column:1/-1}.engineering-change-form{grid-template-columns:1fr}.engineering-change-form>.form-error,.engineering-change-form>.dialog-actions{grid-column:1}.change-files .inline-files{width:min(600px,100vw - 80px)}}@media (max-width:720px){.mobile-changes{padding-bottom:20px}.mobile-changes .toolbar{align-items:flex-start}.mobile-changes .toolbar p{max-width:55%;line-height:1.5}.mobile-changes .change-overview{grid-template-columns:1fr 1fr;gap:8px}.mobile-changes .change-overview article{min-height:80px;padding:11px}.mobile-changes .engineering-ledger-head{grid-template-columns:1fr 1fr;padding:12px}.mobile-changes .engineering-ledger-head>div:first-child,.mobile-changes .change-search{grid-column:1/-1}.mobile-changes .engineering-ledger-head>button{min-height:40px}.mobile-changes .engineering-change-table{max-height:none}.mobile-changes .engineering-change-table table{min-width:1280px}.engineering-change-modal{width:100%}.engineering-change-form,.review-change-summary{grid-template-columns:1fr}.change-files .inline-files{width:auto;position:fixed;bottom:84px;left:12px;right:12px}.mobile-sticky-actions{grid-template-columns:repeat(3,1fr)}}.boq-module{gap:15px;display:grid}.boq-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.boq-stats article{background:linear-gradient(145deg,#fff,#f6f9ff);border:1px solid #dae4f2;border-radius:15px;min-height:102px;padding:16px 18px;position:relative;overflow:hidden;box-shadow:0 8px 24px #21375b0d}.boq-stats article:before{content:"";background:#3478eb;width:4px;position:absolute;inset:0 auto 0 0}.boq-stats article.green:before{background:#1eaa72}.boq-stats article.orange:before{background:#f0a21d}.boq-stats article.red:before{background:#e35a5a}.boq-stats small,.boq-stats span,.boq-stats b{display:block}.boq-stats small{color:#77859d;font-size:9px}.boq-stats b{color:#173f91;margin:8px 0 4px;font-size:23px}.boq-stats span{color:#98a2b4;font-size:8px}.boq-ledger{overflow:hidden}.boq-ledger-toolbar{border-bottom:1px solid #e7edf5;grid-template-columns:minmax(230px,1fr) minmax(220px,.65fr) 138px auto auto;align-items:end;gap:10px;padding:16px 18px;display:grid}.boq-ledger-toolbar h2{color:#15284b;margin:0;font-size:16px}.boq-ledger-toolbar p{color:#8793a7;margin:5px 0 0;font-size:9px}.boq-ledger-toolbar label{color:#65728a;gap:5px;font-size:9px;display:grid}.boq-ledger-toolbar select,.boq-ledger-toolbar input,.boq-ledger-toolbar>button{min-height:38px}.boq-search{position:relative}.boq-search span{color:#8a98ad;position:absolute;bottom:10px;left:11px}.boq-search input{padding-left:30px}.boq-ledger-table{box-shadow:none;border:0;border-radius:0}.boq-ledger-table table{min-width:1080px}.boq-ledger-table td{vertical-align:middle}.boq-ledger-table td:last-child button{min-height:31px}.boq-alert{color:#d67812!important}.boq-loading{padding:80px 20px}.boq-catalog-modal{width:min(1080px,100vw - 40px)}.boq-import-file{background:#f7faff;border:1px dashed #b8cbea;border-radius:13px;grid-template-columns:minmax(260px,.7fr) 1fr;align-items:center;gap:14px;padding:15px;display:grid}.boq-import-file p{color:#71809a;margin:0;font-size:10px;line-height:1.6}.boq-import-preview{gap:12px;margin-top:14px;display:grid}.boq-import-preview>div:first-child{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.boq-import-preview>div:first-child span{background:#f5f8fd;border-radius:11px;padding:12px}.boq-import-preview small,.boq-import-preview b{display:block}.boq-import-preview small{color:#7f8ca2;font-size:8px}.boq-import-preview b{color:#2165d7;margin-top:4px;font-size:18px}.boq-import-preview ul{color:#9a620e;background:#fff6e6;border-radius:10px;margin:0;padding:10px 10px 10px 28px;font-size:9px}.boq-import-preview .table-wrap{max-height:260px}.boq-import-preview table{min-width:760px}.success-message{color:#14805a;background:#eaf8f1;border-radius:9px;margin:0;padding:10px;font-size:9px}.boq-import-slots{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.boq-import-slot{background:#fbfcff;border:1px solid #d7e3f3;border-radius:12px;gap:7px;padding:12px;display:grid}.boq-import-slot-head{color:#183c79;justify-content:space-between;align-items:center;font-size:11px;display:flex}.boq-import-slot>small{color:#7c8ca5;font-size:8px}.boq-import-slot>button{justify-self:start}.boq-import-preview-metrics{gap:6px;display:flex}.boq-import-preview-metrics span{color:#7b8aa0;background:#f1f5fb;border-radius:8px;gap:2px;padding:7px 8px;font-size:8px;display:grid}.boq-import-preview-metrics b{color:#1d4f9a;font-size:12px}.boq-editor{min-width:0;padding-bottom:10px}.boq-editor-summary{z-index:8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border:1px solid #d9e4f3;border-radius:15px;grid-template-columns:auto minmax(260px,1fr) repeat(6,minmax(98px,auto));align-items:center;gap:12px;margin-bottom:12px;padding:13px 15px;display:grid;position:sticky;top:0;box-shadow:0 10px 28px #22375b17}.boq-editor-summary>.boq-back{color:#285fae;background:#f3f7fd;border-color:#bcd0ed;align-self:stretch;padding:0 13px}.boq-editor-summary>div small,.boq-editor-summary>div p{color:#7f8da2;font-size:8px}.boq-editor-summary h2{color:#152748;margin:3px 0;font-size:16px}.boq-editor-summary p{margin:0}.boq-editor-summary>span{border-left:1px solid #e6ebf3;min-height:54px;padding:9px 11px}.boq-editor-summary>span small,.boq-editor-summary>span b{display:block}.boq-editor-summary>span small{color:#8692a5;font-size:8px}.boq-editor-summary>span b{color:#1d4f9f;margin-top:6px;font-size:14px}.boq-editor-summary>span b em{font-size:9px}.boq-rejection{background:#fff5f5;border:1px solid #f2b6b6;border-left:4px solid #e24f4f;border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:12px;padding:12px 14px;animation:.22s both boq-warning-in;display:grid}.boq-rejection b{color:#b83232;font-size:10px}.boq-rejection p{color:#8a4a4a;margin:0;font-size:10px}.boq-editor-actions{z-index:9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border:1px solid #d1deef;border-radius:14px;justify-content:flex-end;align-items:center;gap:7px;margin-top:14px;padding:10px 12px;display:flex;position:sticky;bottom:10px;box-shadow:0 10px 30px #142b4f26}.boq-editor-actions>div{margin-right:auto}.boq-editor-actions>div b,.boq-editor-actions>div small{display:block}.boq-editor-actions>div b{color:#2f4d7a;font-size:9px}.boq-editor-actions>div small{color:#8794a8;margin-top:3px;font-size:7px}.boq-editor-actions>button{min-height:36px}.danger-text{color:#d94b4b!important}.green-text{color:#13815a!important}.boq-excel-preview ul{color:#bb3b3b;background:#fff1f1;border-radius:10px;grid-column:1/-1;margin:0;padding:10px 10px 10px 28px;font-size:9px}.boq-lines-table-wrap{max-width:100%;padding:0 10px 10px;overflow-x:auto}.boq-lines-table{border-collapse:separate;border-spacing:0;background:#fff;width:100%;min-width:1220px}.boq-lines-table thead th{z-index:2;color:#56708f;text-align:left;white-space:nowrap;background:#eef4fd;border-bottom:1px solid #cddbef;padding:9px 8px;font-size:8px;position:sticky;top:0}.boq-lines-table tbody td{vertical-align:middle;color:#324a6d;border-bottom:1px solid #e8edf5;padding:9px 8px;font-size:9px}.boq-lines-table tbody tr:last-child td{border-bottom:0}.boq-table-row.used td{background:#f8fbff}.boq-table-row.needs-rate td{background:#fffaf0}.boq-table-row.has-price-diff td{background:#fff9ee}.boq-table-index{width:40px;font-weight:800;color:#8a98ad!important}.boq-table-name{min-width:210px}.boq-table-name b,.boq-table-name small,.boq-table-name em,.boq-table-rate small,.boq-table-rate b{display:block}.boq-table-name em{color:#ae6a20;margin-top:4px;font-size:7px;font-style:normal}.boq-table-spec input,.boq-table-spec select{min-width:180px;min-height:32px}.boq-table-quantity{width:92px}.boq-table-quantity input{width:82px;min-height:32px}.boq-qty-locked{color:#98a2b4;margin-top:2px;font-size:7px;line-height:1.3;display:block}.boq-table-unit{white-space:nowrap;width:58px}.boq-table-rate{min-width:125px}.boq-table-rate small{color:#8492a7;font-size:7px}.boq-table-rate b{color:#24569f;margin-top:3px;font-size:9px}.boq-table-rate em{margin-top:3px;font-size:7px;font-style:normal;display:block}.boq-table-rate em.higher,.boq-table-row .higher{color:#b34c35}.boq-table-rate em.lower,.boq-table-row .lower{color:#13815a}.boq-table-rate button,.boq-table-audit button{min-height:25px;margin-top:4px;padding:0 7px;font-size:7px}.boq-table-remark input{min-width:170px;min-height:32px}.boq-adjustment-required{color:#b34c35;margin-top:3px;font-size:7px;display:block}.boq-table-audit{min-width:105px}.boq-table-audit>span{font-size:8px;font-weight:700;display:block}.audit-diff{color:#b76a19}.audit-error{color:#d94b4b}.audit-ok{color:#168459}.boq-table-audit .inline-attachments>button{min-height:25px;padding:0 7px;font-size:7px}.boq-epc-rate-input{width:112px;min-height:30px;padding:0 7px;font-size:9px}.boq-excel-preview li div{color:#a64646;margin-top:3px}.boq-excel-preview li div small{color:#9a6a35;margin-top:2px;font-size:8px;display:block}@keyframes boq-warning-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (max-width:1280px){.boq-ledger-toolbar{grid-template-columns:1fr 1fr 130px}.boq-ledger-toolbar>button{justify-self:start}.boq-editor-summary{grid-template-columns:auto minmax(220px,1fr) repeat(3,minmax(100px,auto))}.boq-editor-summary>span:nth-last-child(-n+3){display:none}}@media (max-width:900px){.boq-stats{grid-template-columns:repeat(2,1fr)}.boq-ledger-toolbar{grid-template-columns:1fr 1fr}.boq-ledger-toolbar>div:first-child{grid-column:1/-1}.boq-editor-summary{grid-template-columns:auto 1fr;position:relative}.boq-editor-summary>span{display:none}.boq-editor-actions{justify-content:flex-start;overflow-x:auto}.boq-editor-actions>div{display:none}}@media (prefers-reduced-motion:reduce){.boq-rejection{animation:none}}@media (max-width:420px){.mobile-changes .change-overview{grid-template-columns:1fr 1fr}.mobile-changes .change-overview strong{font-size:18px}}.inline-attachments{display:contents}.contract-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.contract-summary article{background:#fff;border:1px solid #dfe7f2;border-top:4px solid #2866e8;border-radius:17px;gap:6px;min-height:116px;padding:20px;display:grid;box-shadow:0 10px 26px #18315a0f}.contract-summary article.orange{border-top-color:#f39a25}.contract-summary article.danger{border-top-color:#e95757}.contract-summary article.purple{border-top-color:#7658c8}.contract-summary small{color:#718099}.contract-summary b{color:#173f91;font-size:29px}.contract-summary span{color:#94a0b2;font-size:11px}.contract-ledger{overflow:hidden}.contract-filter{border-bottom:1px solid #e8edf4;grid-template-columns:minmax(280px,1fr) 260px 190px;align-items:center;gap:12px;padding:18px;display:grid}.contract-filter h2,.contract-filter p{margin:0}.contract-filter p{color:#8390a4;margin-top:6px;font-size:11px}.contract-filter input,.contract-filter select{height:44px}.contract-risk{color:#d74b4b;font-weight:700}.contract-ok{color:#1b8c64}.contract-drawer{width:min(1120px,92vw)}.contract-tabs{z-index:5;position:sticky;top:0}.contract-drawer-body{background:#f5f7fb}.contract-archive{gap:14px;display:grid}.contract-archive>header,.dynamic-payments>header,.condition-panel>header,.execution-panel>header{justify-content:space-between;align-items:center;gap:15px;display:flex}.contract-archive h3,.contract-archive p,.dynamic-payments h3,.dynamic-payments p,.condition-panel h3,.condition-panel p,.execution-panel h3,.execution-panel p{margin:0}.contract-archive p,.dynamic-payments p,.condition-panel p,.execution-panel p{color:#7d8a9e;margin-top:5px;font-size:11px}.contract-doc-list{gap:10px;display:grid}.contract-doc-list>article{background:#fff;border:1px solid #dfe6f0;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px;animation:.24s both approval-row-in;display:grid}.contract-file-icon{color:#2762ca;background:#eaf2ff;border-radius:12px;place-items:center;width:44px;height:44px;font-weight:800;display:grid}.contract-doc-list b,.contract-doc-list small,.contract-doc-list p,.contract-doc-list em{display:block}.contract-doc-list p{color:#78869a;margin:4px 0;font-size:10px}.contract-doc-list em{color:#bb7219;margin-top:5px;font-size:10px;font-style:normal}.contract-doc-actions{align-items:center;gap:6px;display:flex}.contract-files-popover{display:inline-block}.contract-files-menu{z-index:300;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05112a7a;place-items:center;padding:24px;animation:.16s fade-in;display:grid;position:fixed;inset:0}.contract-files-menu>section{background:#fff;border-radius:17px;width:min(720px,90vw);max-height:70vh;padding:16px;animation:.22s modal-in;overflow:auto;box-shadow:0 26px 80px #07143047}.contract-files-menu header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.contract-files-menu a{color:#243652;border-top:1px solid #edf1f6;align-items:center;gap:11px;padding:12px;text-decoration:none;display:flex}.contract-files-menu a>span{color:#2866e8;background:#edf3ff;border-radius:11px;place-items:center;width:43px;height:43px;font-size:10px;font-weight:800;display:grid}.contract-files-menu a small{color:#8491a5;margin-top:4px;display:block}.contract-profile-form,.dynamic-payments,.condition-panel,.execution-panel,.readonly-contract{background:#fff;border:1px solid #dfe6f0;border-radius:16px;padding:18px}.contract-profile-form>header{justify-content:space-between;gap:12px;margin-bottom:16px;display:flex}.contract-profile-form h3,.contract-profile-form p{margin:0}.contract-profile-form p{color:#7e8b9f;margin-top:5px;font-size:11px}.payment-stage-list,.condition-list,.execution-cards{gap:9px;margin-top:14px;display:grid}.payment-stage-list>article{border:1px solid #e0e7f1;border-radius:14px;grid-template-columns:auto minmax(0,1fr) 170px auto auto;align-items:center;gap:12px;padding:14px;display:grid}.payment-stage-list>article>span{color:#2866e8;background:#edf3ff;border-radius:12px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.payment-stage-list b,.payment-stage-list small,.payment-stage-list p,.payment-stage-list em{display:block}.payment-stage-list p{color:#77859a;margin:5px 0 0;font-size:10px}.payment-amount{text-align:right}.payment-amount b{font-size:16px}.payment-amount em{color:#8491a5;margin-top:4px;font-size:9px;font-style:normal}.payment-total-strip{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px;display:grid}.payment-total-strip span{color:#75839a;background:#f4f7fb;border-radius:12px;padding:13px;font-size:10px}.payment-total-strip b{color:#183b78;margin-top:5px;font-size:18px;display:block}.payment-plan-editor{gap:10px;max-height:58vh;display:grid;overflow:auto}.payment-plan-editor article{border:1px solid #dfe6f0;border-radius:13px;grid-template-columns:auto 1fr 150px 145px 155px 110px;align-items:start;gap:7px;padding:11px;display:grid}.payment-plan-editor textarea{grid-column:2/7}.condition-list>article{border:1px solid #e2e8f1;border-radius:12px;align-items:center;gap:11px;padding:12px;display:flex}.condition-list>article>span{border-radius:9px;padding:6px 9px;font-size:9px;font-weight:800}.condition-list .hard{color:#ca4545;background:#ffebeb}.condition-list .warning{color:#bb7013;background:#fff2dd}.condition-editor{gap:9px;max-height:55vh;margin-top:12px;display:grid;overflow:auto}.condition-editor article{border:1px solid #dfe6ef;border-radius:12px;grid-template-columns:1.2fr 1.2fr 1.2fr 1.4fr 90px auto;gap:7px;padding:10px;display:grid}.execution-panel>nav{gap:7px;margin-bottom:15px;padding-bottom:3px;display:flex;overflow:auto}.execution-panel>nav button{flex:none}.execution-panel>nav button.active{color:#fff;background:#2866e8;border-color:#2866e8}.execution-cards>article{border:1px solid #e1e7f0;border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:13px;display:grid}.execution-cards>article>span{color:#2866e8;background:#edf3ff;border-radius:12px;place-items:center;width:42px;height:42px;font-size:10px;font-weight:800;display:grid}.execution-cards b,.execution-cards small,.execution-cards p{margin:0;display:block}.execution-cards p{color:#8290a4;margin-top:5px;font-size:10px}.contract-archive.compact>header{display:none}.contract-archive.compact .contract-doc-list{margin-top:12px}@media (max-width:1100px){.contract-summary,.contract-filter{grid-template-columns:1fr 1fr}.contract-filter>div{grid-column:1/-1}.payment-stage-list>article{grid-template-columns:auto 1fr auto}.payment-amount{grid-column:2}.contract-doc-list>article{grid-template-columns:auto 1fr}.contract-doc-actions{flex-wrap:wrap;grid-column:1/-1}.condition-editor article,.payment-plan-editor article{grid-template-columns:1fr 1fr}.condition-editor article>button,.payment-plan-editor article>textarea{grid-column:1/-1}}@media (max-width:767px){.contract-summary{grid-template-columns:1fr 1fr;gap:8px}.contract-summary article{min-height:96px;padding:14px}.contract-filter{grid-template-columns:1fr}.contract-filter>div{grid-column:auto}.contract-doc-list>article{grid-template-columns:auto minmax(0,1fr)}.contract-doc-list>article>.status{grid-column:2}.payment-stage-list>article{grid-template-columns:auto minmax(0,1fr)}.payment-stage-list>article>.status,.payment-stage-list>article>button{grid-column:2}.payment-total-strip{grid-template-columns:1fr}.contract-drawer{width:100vw}.contract-files-menu{padding:12px}.execution-cards>article{grid-template-columns:auto 1fr}.execution-cards>article>.status,.execution-cards>article>button{grid-column:2}}.mobile-contract-screen .mobile-fullscreen-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.mobile-contract-screen .contract-archive{box-shadow:none;border:0;padding:0}.mobile-contract-screen .contract-archive>header{align-items:flex-start;gap:12px}.mobile-contract-screen .contract-archive>header p{font-size:12px;line-height:1.55}.mobile-contract-screen .contract-doc-list article{grid-template-columns:44px minmax(0,1fr);gap:10px}.mobile-contract-screen .contract-doc-actions{flex-wrap:wrap;grid-column:1/-1;display:flex}@media (max-width:720px){.mobile-projects .mobile-sticky-actions{grid-template-columns:repeat(4,1fr)}}.dynamic-cost-summary article.green{border-top-color:#20a36e}.dynamic-cost-summary article.green b{color:#16805a}.dynamic-cost-ledger{overflow:hidden}.dynamic-cost-ledger table{min-width:1250px}.dynamic-stage-chips{flex-wrap:wrap;gap:7px;min-width:430px;display:flex}.dynamic-stage-chips>span{background:#f6f8fc;border:1px solid #dce5f1;border-radius:11px;grid-template-columns:26px minmax(82px,auto);align-items:center;column-gap:7px;padding:7px 9px;display:grid}.dynamic-stage-chips>span>i{color:#61738f;background:#e7eef9;border-radius:8px;grid-row:1/3;place-items:center;width:26px;height:26px;font-size:8px;font-style:normal;font-weight:900;display:grid}.dynamic-stage-chips b,.dynamic-stage-chips small{white-space:nowrap;margin:0}.dynamic-stage-chips b{font-size:9px}.dynamic-stage-chips small{color:#7c899d;font-size:8px}.dynamic-stage-chips .paid{background:#eef9f4;border-color:#bfe7d5}.dynamic-stage-chips .paid>i{color:#16805a;background:#d9f3e8}.dynamic-stage-chips .partial{background:#f0f5ff;border-color:#c7d9f8}.dynamic-stage-chips .partial>i{color:#2866e8;background:#dce9ff}.dynamic-stage-chips .blocked{background:#fff4f4;border-color:#f2c5c5}.dynamic-stage-chips .blocked>i{color:#c84444;background:#ffe0e0}.money-paid{color:#16805a;font-size:13px;font-weight:800}.money-remaining{color:#d47b17;font-size:13px;font-weight:800}@media (max-width:767px){.dynamic-cost-ledger table{min-width:1120px}.dynamic-stage-chips{min-width:360px}.dynamic-cost-summary article b{font-size:22px}}.assessment-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.assessment-stats article{background:#fff;border:1px solid #e0e7f2;border-radius:17px;min-height:108px;padding:19px 21px;position:relative;overflow:hidden;box-shadow:0 8px 24px #112d5a0d}.assessment-stats article:before{content:"";background:#2d6de4;border-radius:0 4px 4px 0;width:4px;position:absolute;top:18px;bottom:18px;left:0}.assessment-stats article.green:before{background:#1fa971}.assessment-stats article.red:before{background:#e04f52}.assessment-stats small,.assessment-stats span{color:#7b879a;font-size:10px;display:block}.assessment-stats b{color:#172949;margin:8px 0 5px;font-size:27px;display:block}.assessment-ledger{padding:0;overflow:visible}.assessment-ledger-head{border-bottom:1px solid #e6ebf3;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex}.assessment-ledger-head h2{margin:0;font-size:17px}.assessment-ledger-head p{color:#7b879a;margin:5px 0 0;font-size:10px}.assessment-head-actions,.assessment-row-actions{gap:7px;display:flex}.assessment-filters{background:#f8faff;grid-template-columns:minmax(260px,1.4fr) repeat(6,minmax(120px,.7fr));gap:9px;padding:14px 18px;display:grid}.assessment-filters input,.assessment-filters select{background:#fff;border:1px solid #dbe4f1;border-radius:10px;width:100%;min-width:0;height:40px;font-size:10px}.assessment-search{position:relative}.assessment-search span{z-index:1;color:#8995a8;font-size:18px;position:absolute;top:9px;left:13px}.assessment-search input{padding-left:36px}.assessment-table-wrap{overscroll-behavior-x:contain;width:100%;overflow:auto}.assessment-table-wrap table{border-collapse:separate;border-spacing:0;width:100%;min-width:1230px}.assessment-table-wrap th{z-index:2;color:#6d7c93;text-align:left;background:#f4f7fb;padding:12px 14px;font-size:9px;position:sticky;top:0}.assessment-table-wrap td{color:#31405b;vertical-align:middle;border-top:1px solid #edf1f6;padding:14px;font-size:10px}.assessment-table-wrap tr{animation:.26s both assessment-row-in}.assessment-table-wrap tbody tr:hover{background:#f8fbff}.assessment-table-wrap td>b,.assessment-table-wrap td>small{display:block}.assessment-table-wrap td>small{color:#8a96a9;margin-top:4px;font-size:8px}.assessment-type,.assessment-status,.assessment-grade{white-space:nowrap;border-radius:999px;align-items:center;min-height:25px;padding:4px 9px;font-size:9px;font-weight:800;display:inline-flex}.assessment-type.stage{color:#3967c8;background:#eef3ff}.assessment-type.final{color:#c46a0c;background:#fff1df}.assessment-status.draft{color:#657995;background:#edf2f8}.assessment-status.published{color:#16845a;background:#e7f8ef}.assessment-status.superseded{color:#7850bd;background:#f3edff}.assessment-grade.excellent{color:#128354;background:#e5f8ee}.assessment-grade.good{color:#2465cf;background:#e8f2ff}.assessment-grade.pass{color:#a76800;background:#fff4db}.assessment-grade.failed{color:#cf3d43;background:#ffebeb}.assessment-row-actions button{min-height:31px;padding:5px 10px}.assessment-create-form{gap:14px;display:grid}.assessment-create-form>label{color:#59677d;gap:7px;font-size:10px;display:grid}.assessment-type-choice{grid-template-columns:1fr 1fr;gap:10px;display:grid}.assessment-type-choice button{text-align:left;gap:3px;padding:14px;display:grid}.assessment-type-choice button.active{color:#225fc3;background:#eef5ff;border-color:#2d70e4}.assessment-type-choice small{color:#8591a4;font-size:9px}.assessment-score-drawer{width:min(1120px,96vw)}.assessment-score-summary{background:#fff;border-bottom:1px solid #dfe7f2;grid-template-columns:minmax(0,1fr) 104px 270px;align-items:center;gap:18px;padding:14px 22px;display:grid}.assessment-score-summary>div:first-child{justify-items:start;gap:5px;display:grid}.assessment-score-summary>div:first-child>b{font-size:16px}.assessment-score-summary>div:first-child>small{color:#7c899d;font-size:9px}.assessment-score-ring{--score:0%;background:conic-gradient(#2770e6 var(--score),#edf1f6 0);border-radius:50%;place-content:center;width:84px;height:84px;margin:auto;display:grid;position:relative}.assessment-score-ring:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:8px}.assessment-score-ring b,.assessment-score-ring small{z-index:1;text-align:center;position:relative}.assessment-score-ring b{font-size:20px}.assessment-score-ring small{color:#718098;font-size:8px}.assessment-score-meta{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.assessment-score-meta span{background:#f4f7fb;border-radius:11px;gap:3px;padding:10px;display:grid}.assessment-score-meta span.warning{color:#c84949;background:#fff1ef}.assessment-score-meta span.ready{color:#198557;background:#eaf8f1}.assessment-score-meta small{color:#7e8ba0;font-size:8px}.assessment-score-body{padding-bottom:28px}.assessment-error{color:#c43e44;background:#fff0f0;border-radius:10px;margin-bottom:12px;padding:11px}.assessment-publish-success{color:#168658;background:#ebfaf3;border:1px solid #c7ebda;border-radius:14px;justify-items:center;gap:4px;margin-bottom:14px;padding:16px;display:grid}.assessment-groups{gap:10px;display:grid}.assessment-group{background:#fff;border:1px solid #dfe6f1;border-left:4px solid #3979e8;border-radius:14px;overflow:hidden}.assessment-group.tone-purple{border-left-color:#8b62d9}.assessment-group.tone-green{border-left-color:#1fa671}.assessment-group.tone-orange{border-left-color:#ec8a25}.assessment-group.tone-cyan{border-left-color:#18a9b8}.assessment-group.tone-indigo{border-left-color:#5f6dd7}.assessment-group.tone-red{border-left-color:#dd565a}.assessment-group.tone-teal{border-left-color:#239b8d}.assessment-group-toggle{text-align:left;grid-template-columns:38px 1fr auto 24px;align-items:center;gap:12px;width:100%;background:#fff!important;border:0!important;border-radius:0!important;min-height:66px!important;padding:10px 14px!important;display:grid!important}.assessment-group-icon{color:#2469d3;background:#edf4ff;border-radius:11px;place-content:center;width:35px;height:35px;font-weight:900;display:grid}.assessment-group-toggle>span:nth-child(2){gap:4px;display:grid}.assessment-group-toggle small{color:#8692a6;font-size:8px}.assessment-group-toggle em{color:#cb4949;background:#fff0ee;border-radius:999px;padding:4px 8px;font-size:8px;font-style:normal}.assessment-group-toggle>i{font-size:18px;font-style:normal}.assessment-group-collapse{grid-template-rows:0fr;transition:grid-template-rows .24s cubic-bezier(.2,.8,.2,1);display:grid}.assessment-group.expanded .assessment-group-collapse{grid-template-rows:1fr}.assessment-group-collapse>div{min-height:0;overflow:hidden}.assessment-item-list{gap:9px;padding:0 12px 12px;display:grid}.assessment-item{background:#fbfcfe;border:1px solid #e6ebf3;border-radius:12px;padding:14px}.assessment-item.not-applicable{color:#788397;background:#f6f7fa}.assessment-item-main{grid-template-columns:minmax(0,1fr) 120px 86px;align-items:center;gap:14px;display:grid}.assessment-item-main>div:first-child{gap:5px;display:grid}.assessment-item-main>div:first-child>small{color:#7f8ca0;font-size:8px}.assessment-score-input{color:#69778c;gap:5px;font-size:8px;display:grid}.assessment-score-input input{height:37px;font-weight:800}.assessment-na{align-items:center;gap:7px;display:flex}.assessment-basis{border-top:1px dashed #dde4ef;margin-top:9px}.assessment-basis summary{color:#4772b8;cursor:pointer;padding-top:9px;font-size:8px;font-weight:700}.assessment-basis p{color:#65738a;margin:7px 0 0;font-size:9px;line-height:1.7}.assessment-reason-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:11px;display:grid}.assessment-reason-grid label{color:#69778c;gap:5px;font-size:8px;display:grid}.assessment-reason-grid textarea{resize:vertical;min-height:64px}.assessment-evidence-actions{gap:7px;margin-top:10px;display:flex}.assessment-evidence-actions button{min-height:30px;padding:4px 9px;font-size:8px}.assessment-item .inline-files{margin-top:9px}.assessment-score-footer{background:#fff;border-top:1px solid #dfe6f0;flex:none;justify-content:flex-end;align-items:center;gap:9px;min-height:70px;padding:12px 22px;display:flex;box-shadow:0 -10px 28px #14315b0f}.assessment-score-footer>div{gap:3px;margin-right:auto;display:grid}.assessment-score-footer span{color:#d04d4d;font-size:8px}.assessment-template-drawer{width:min(1240px,97vw)}.assessment-template-body{grid-template-columns:260px minmax(0,1fr);display:grid;padding:0!important;overflow:hidden!important}.assessment-template-versions{background:#f3f6fb;border-right:1px solid #e0e7f1;padding:14px;overflow:auto}.assessment-template-versions button{text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:8px;padding:12px;display:flex}.assessment-template-versions button.active{background:#eaf3ff;border-color:#2e71e4}.assessment-template-versions span{gap:4px;display:grid}.assessment-template-versions small{color:#8190a5;font-size:8px}.assessment-template-versions em{color:#2a6bd5;font-size:9px;font-style:normal}.assessment-template-editor{min-width:0;padding:18px;overflow:auto}.assessment-template-editor>header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.assessment-template-editor h3{margin:0}.assessment-template-editor p{color:#7b899d;margin:5px 0 0;font-size:9px}.assessment-template-editor>header strong{background:#edf2f8;border-radius:11px;padding:9px 12px}.assessment-template-editor>header strong.ready{color:#178359;background:#e9f8f1}.assessment-template-editor>header strong.warning{color:#ca484b;background:#fff0ee}.assessment-template-welcome{text-align:center;align-content:center;place-items:center;height:100%;display:grid}.assessment-template-welcome span{color:#2569d2;background:#e9f2ff;border-radius:18px;place-content:center;width:58px;height:58px;font-size:22px;font-weight:900;display:grid}.assessment-template-items{gap:10px;display:grid}.assessment-template-items article{background:#fff;border:1px solid #e1e8f2;border-radius:13px;grid-template-columns:32px 1fr auto;align-items:start;gap:11px;padding:13px;display:grid}.template-item-order{color:#286bd4;background:#edf4ff;border-radius:9px;place-content:center;width:30px;height:30px;font-weight:800;display:grid}.template-item-fields{gap:9px;display:grid}.template-item-fields>div{grid-template-columns:170px minmax(220px,1fr) 90px;gap:9px;display:grid}.template-item-fields label{color:#68768a;gap:5px;font-size:8px;display:grid}.template-item-fields textarea{resize:vertical;min-height:55px}.template-na-check{align-items:center;gap:7px;display:flex!important}.template-add-item{width:100%;margin:10px 0 24px;border-style:dashed!important}.assessment-template-footer{background:#fff;border-top:1px solid #e1e7ef;flex:none;justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.assessment-template-footer:empty{display:none}@keyframes assessment-row-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (max-width:1450px){.assessment-filters{grid-template-columns:repeat(4,minmax(150px,1fr))}.assessment-search{grid-column:span 2}}@media (max-width:900px){.assessment-stats{grid-template-columns:repeat(2,1fr)}.assessment-ledger-head{flex-direction:column;align-items:flex-start}.assessment-filters{grid-template-columns:repeat(2,1fr)}.assessment-search{grid-column:1/-1}.assessment-score-summary{grid-template-columns:1fr 90px}.assessment-score-meta{grid-column:1/-1}.assessment-template-body{grid-template-columns:1fr;overflow:auto!important}.assessment-template-versions{border-bottom:1px solid #e1e7f1;border-right:0;max-height:130px;display:flex}.assessment-template-versions button{min-width:220px}.assessment-template-editor{overflow:visible}.template-item-fields>div{grid-template-columns:1fr 1fr}.template-score-field{grid-column:1/-1}}@media (max-width:600px){.assessment-stats{gap:8px}.assessment-stats article{min-height:90px;padding:14px}.assessment-filters{grid-template-columns:1fr}.assessment-search{grid-column:auto}.assessment-head-actions{width:100%}.assessment-head-actions button{flex:1}.assessment-score-drawer,.assessment-template-drawer{width:100vw}.assessment-score-summary{grid-template-columns:1fr 76px;padding:11px 14px}.assessment-score-ring{width:70px;height:70px}.assessment-score-meta{gap:5px}.assessment-score-body{padding:12px 10px 24px!important}.assessment-group-toggle{grid-template-columns:34px 1fr 20px}.assessment-group-toggle em{display:none}.assessment-item-main{grid-template-columns:1fr 105px}.assessment-na{grid-column:1/-1}.assessment-reason-grid{grid-template-columns:1fr}.assessment-score-footer{padding:10px 12px;padding-bottom:max(10px,env(safe-area-inset-bottom))}.assessment-score-footer>div{display:none}.assessment-template-items article{grid-template-columns:28px 1fr}.assessment-template-items article>.text-danger{grid-column:2}.template-item-fields>div{grid-template-columns:1fr}.template-score-field{grid-column:auto}.assessment-type-choice{grid-template-columns:1fr}}.assessment-delete-form{gap:14px;display:grid}.assessment-delete-warning{background:#fff8e8;border:1px solid #f1d9a7;border-radius:13px;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:14px;display:grid}.assessment-delete-warning.published{background:#fff0f1;border-color:#f1b8bb}.assessment-delete-warning>span{color:#b97500;background:#fff0c9;border-radius:12px;place-content:center;width:38px;height:38px;font-size:18px;font-weight:900;display:grid}.assessment-delete-warning.published>span{color:#c33f47;background:#ffe0e2}.assessment-delete-warning b{color:#172b4d}.assessment-delete-warning p{color:#506079;margin:4px 0}.assessment-delete-warning small{color:#7b8798;line-height:1.6}.assessment-delete-form>label{gap:6px;display:grid}.assessment-delete-form textarea{resize:vertical;min-height:100px}.assessment-legacy-note{color:#8f6515;background:#fff8e9;border:1px solid #f0d9a8;border-radius:11px;margin-bottom:12px;padding:10px 12px;font-size:9px}.assessment-score-cards{gap:11px;display:grid}.assessment-score-card{background:#fff;border-left:4px solid #2f72e5;padding:15px 16px;animation:.22s both assessment-row-in;position:relative;overflow:hidden}.assessment-score-card:nth-child(3n+2){border-left-color:#12a88d}.assessment-score-card:nth-child(3n){border-left-color:#f39a27}.assessment-card-head{grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.assessment-card-head>div{gap:5px;display:grid}.assessment-card-head b{color:#14294b;font-size:13px}.assessment-card-head small{color:#718096;font-size:9px;line-height:1.65}.assessment-card-index{color:#276ad5;background:#edf4ff;border-radius:12px;place-content:center;width:38px;height:38px;font-size:11px;font-weight:900;display:grid}.assessment-score-card:nth-child(3n+2) .assessment-card-index{color:#128872;background:#e9f9f5}.assessment-score-card:nth-child(3n) .assessment-card-index{color:#c97812;background:#fff4e6}.assessment-card-entry{grid-template-columns:150px minmax(0,1fr);align-items:stretch;gap:12px;margin-top:12px;display:grid}.assessment-card-entry .assessment-score-input,.assessment-deduction-note{color:#5f6f86;align-content:start;gap:6px;font-size:9px;display:grid}.assessment-card-entry .assessment-score-input input{height:44px;font-size:15px}.assessment-deduction-note textarea{resize:vertical;min-height:70px}.assessment-score-card.not-applicable .assessment-card-entry{opacity:.82}.assessment-score-card .assessment-basis{margin-top:11px}.assessment-score-card .assessment-basis summary,.assessment-score-card .assessment-basis p{font-size:9px}.assessment-score-card .assessment-reason-grid{grid-template-columns:1fr}.assessment-score-card .assessment-na{color:#5f6f84;background:#f2f5f9;border-radius:9px;padding:7px 9px;font-size:9px}.assessment-score-card .assessment-na:has(input:checked){color:#7b8492;background:#eef0f4}@media (max-width:700px){.assessment-card-head{grid-template-columns:36px minmax(0,1fr)}.assessment-card-head>.assessment-na{grid-column:1/-1;width:max-content}.assessment-card-index{width:34px;height:34px}.assessment-card-entry{grid-template-columns:1fr}.assessment-score-card{padding:13px}.assessment-deduction-note textarea{min-height:82px}}.assessment-profile-summary{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.assessment-profile-summary article{background:#f2f6fc;border-radius:11px;padding:12px}.assessment-profile-summary article.danger{color:#c94747;background:#fff0f0}.assessment-profile-summary small,.assessment-profile-summary b{display:block}.assessment-profile-summary small{color:#7e8b9e;font-size:8px}.assessment-profile-summary b{margin-top:5px;font-size:17px}.assessment-profile-list,.assessment-profile-trend{gap:8px;display:grid}.assessment-profile-list article{border:1px solid #e2e8f1;border-radius:11px;justify-content:space-between;align-items:center;gap:12px;padding:11px;display:flex}.assessment-profile-list b,.assessment-profile-list small{display:block}.assessment-profile-list small{color:#8290a4;margin-top:4px;font-size:8px}.assessment-profile-list strong{color:#16845a}.assessment-profile-list strong.failed{color:#cd4549}.assessment-profile-trend article{grid-template-columns:160px minmax(0,1fr) 38px;align-items:center;gap:10px;display:grid}.assessment-profile-trend span b,.assessment-profile-trend span small{display:block}.assessment-profile-trend span small{color:#8491a5;font-size:8px}.assessment-profile-trend i{background:#3477e7;border-radius:999px;height:6px}.assessment-profile-trend strong{text-align:right}@media (max-width:600px){.assessment-profile-summary{grid-template-columns:1fr 1fr}.assessment-profile-summary article:first-child{grid-column:1/-1}.assessment-profile-trend article{grid-template-columns:110px 1fr 34px}}.mobile-sticky-actions.with-assessment{grid-template-columns:repeat(5,1fr)!important}.mobile-assessment-list{gap:11px;display:grid}.mobile-assessment-list article{background:#fff;border:1px solid #dfe7f2;border-radius:15px;padding:15px;box-shadow:0 7px 20px #132b4f0d}.mobile-assessment-list article>header{border:0;justify-content:space-between;align-items:center;padding:0;display:flex}.mobile-assessment-list em{color:#6c7c93;font-size:11px;font-style:normal}.mobile-assessment-list h3{margin:12px 0 5px;font-size:15px}.mobile-assessment-list p{color:#7c899e;margin:0;font-size:10px}.mobile-assessment-list article>div{justify-content:space-between;align-items:end;margin-top:14px;display:flex}.mobile-assessment-list article>div b{color:#2265cf;font-size:26px}.mobile-assessment-list article>div small{color:#8a96a8}@keyframes boq-detail-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes boq-row-in{0%{opacity:0}to{opacity:1}}@keyframes boq-pop-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.boq-tabbar{border-bottom:2px solid #e4eaf3;align-items:center;gap:20px;margin:2px 0 10px;display:flex}.boq-tax-tabs{background:0 0;border:0;flex-wrap:wrap;flex:1;gap:6px 34px;margin:0;padding:0 4px;display:flex;overflow:visible}.boq-tax-tabs button{color:#5e7089;white-space:nowrap;cursor:pointer;background:0 0;border:0;min-height:46px;padding:8px 2px 12px;font-size:14px;font-weight:700;transition:color .16s;position:relative}.boq-tax-tabs button:after{content:"";opacity:0;background:#2e6be6;border-radius:3px 3px 0 0;height:3px;transition:opacity .18s;position:absolute;bottom:-2px;left:0;right:0}.boq-tax-tabs button.active{color:#1e5fd6}.boq-tax-tabs button.active:after{opacity:1}.boq-detail-total{color:#5e7089;white-space:nowrap;align-items:baseline;gap:8px;font-size:12px;display:flex}.boq-detail-total b{color:#173f91;font-size:20px}.boq-detail-toolbar{align-items:center;gap:8px;margin:10px 0 8px;display:flex}.boq-dirty-badge{color:#b26a0b;white-space:nowrap;background:#fff2dd;border-radius:999px;align-items:center;min-height:24px;padding:3px 10px;font-size:9px;font-weight:800;animation:.18s cubic-bezier(.2,.78,.2,1) both boq-pop-in;display:inline-flex}.boq-discipline-tabs{gap:6px;display:flex;overflow:auto}.boq-discipline-tabs button{color:#627694;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #e0e8f2;border-radius:999px;min-height:26px;padding:0 10px;font-size:10px}.boq-discipline-tabs button.active{color:#245ca9;background:#eaf2ff;border-color:#8bb0ec;font-weight:700}.boq-detail-table-wrap{background:#fff;border:1px solid #e4eaf3;border-radius:12px;box-shadow:0 4px 16px #1f35580a}.boq-detail-table{table-layout:fixed;width:100%;min-width:900px}.boq-detail-table thead th:first-child{width:34px}.boq-detail-table thead th:nth-child(2){width:40px}.boq-detail-table thead th:nth-child(3){width:auto}.boq-detail-table thead th:nth-child(4){width:16%}.boq-detail-table thead th:nth-child(5){width:72px}.boq-detail-table thead th:nth-child(6){width:46px}.boq-detail-table thead th:nth-child(7){width:96px}.boq-detail-table thead th:nth-child(8){width:88px}.boq-detail-table thead th:nth-child(9){width:auto}.boq-detail-table tbody tr{animation:.2s both boq-row-in}.boq-detail-table tbody td{color:#2a3a55;vertical-align:middle;border-bottom:1px solid #eff2f7;padding:7px 6px;font-size:11px;transition:background .16s}.boq-detail-table thead th{color:#5b6c86;text-align:center;white-space:nowrap;background:#edf3fb;border-bottom:1px solid #dfe7f2;padding:8px 6px;font-size:11px;font-weight:700}.boq-detail-table tbody td{color:#2a3a55;vertical-align:middle;border-bottom:1px solid #eff2f7;padding:7px 6px;font-size:11px}.boq-detail-table tbody tr:hover>td{background:#fafcff}.boq-detail-table .boq-table-row.row-selected>td{background:#f2f7ff}.boq-table-empty{text-align:center;color:#7f8da4;padding:40px 12px}.boq-table-check{text-align:center;width:30px;padding:7px 4px!important}.boq-table-check input{accent-color:#2e6be6;width:14px;height:14px}.boq-table-index{text-align:center;width:38px;font-size:11px;font-weight:700;color:#8593a8!important}.boq-table-name{min-width:0;overflow:hidden}.boq-table-name b,.boq-table-name small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.boq-table-name b{color:#22344f;font-size:11px}.boq-table-name small{color:#93a0b4;margin-top:2px;font-size:9px}.boq-name-scope{color:#8b99ad;white-space:nowrap;text-overflow:ellipsis;max-width:220px;margin-top:2px;font-size:9px;font-style:normal;line-height:1.4;display:block;overflow:hidden}.boq-table-name .boq-name-scope{color:#8b99ad}.boq-table-spec{min-width:0}.boq-table-spec input,.boq-table-spec select{background:#fff;border-color:#e3e9f2;width:100%;max-width:170px;min-height:28px;font-size:11px}.boq-spec-desc{color:#8b99ad;white-space:nowrap;text-overflow:ellipsis;max-width:170px;margin-top:3px;font-size:9px;line-height:1.45;display:block;overflow:hidden}.boq-qty-input{color:#24406b;text-align:center;background:#f3f6fa;border:1px solid #0000;border-radius:6px;width:64px;min-height:28px;padding:0 2px;font-size:11px;font-weight:700}.boq-qty-input:focus{background:#fff;border-color:#9dbcf0}.boq-table-quantity{text-align:center;width:80px}.boq-table-unit{text-align:center;color:#4a5b75;width:44px}.boq-table-price{min-width:104px}.boq-price-input{color:#24406b;text-align:center;background:#f3f6fa;border:1px solid #0000;border-radius:6px;width:82px;min-height:28px;padding:0 2px;font-size:11px;font-weight:700}.boq-price-input:focus{background:#fff;border-color:#9dbcf0}.boq-price-base{color:#a0acc0;margin-top:2px;font-size:9px;animation:.16s both boq-pop-in;display:block}.boq-price-base.higher{color:#b34c35}.boq-price-base.lower{color:#13815a}.boq-price-quote{margin-top:2px;font-style:normal;display:block}.boq-price-quote button{min-height:22px;padding:0 7px;font-size:9px}.boq-table-amount{text-align:right;white-space:nowrap;min-width:84px;font-weight:800;color:#1f2d3d!important}.boq-table-remark{min-width:0}.boq-remark-input{background:#f3f6fa;border:1px solid #0000;border-radius:6px;width:100%;min-width:160px;min-height:28px;font-size:11px}.boq-remark-input:focus{background:#fff;border-color:#9dbcf0}.boq-remark-diff{color:#b34c35;margin-top:2px;font-size:9px;animation:.16s both boq-pop-in;display:block}.boq-remark-diff.ok{color:#13815a}.boq-detail-table .boq-group-row>td{white-space:nowrap;background:#f7fafe;border-top:1px solid #e4eaf3;border-bottom:1px solid #e4eaf3;align-items:center;gap:8px;padding:6px 8px;display:flex}.boq-detail-table tbody tr:first-child>td{border-top:0}.boq-group-toggle{color:#2767d1;cursor:pointer;background:#fff;border:1px solid #d3dfef;border-radius:5px;flex:none;place-items:center;width:18px;height:18px;font-size:11px;font-weight:800;display:grid}.boq-group-index{color:#2767d1;background:#e7effb;border-radius:6px;place-items:center;min-width:20px;height:20px;font-size:8px;font-weight:900;display:grid}.boq-group-row b{color:#22344f;font-size:11px}.boq-group-row small{color:#8a97ab;font-size:9px}.boq-group-row strong{color:#2662c2;margin-left:auto;font-size:10px}.boq-lines-table thead th[data-sortable="1"]{cursor:pointer;-webkit-user-select:none;user-select:none}.boq-lines-table thead th[data-sortable="1"]:hover{color:#245ca9}.boq-sort-mark{color:#a9bad6;margin-left:4px;font-size:9px}.boq-lines-table thead th[data-sortable="1"] .boq-sort-mark{color:#2868d6}.boq-payment-panel{gap:12px;animation:.24s cubic-bezier(.2,.78,.2,1) both boq-detail-in;display:grid}.boq-att-panel{background:#fff;border:1px solid #e4eaf3;border-radius:12px;gap:14px;padding:18px 20px;animation:.22s cubic-bezier(.2,.78,.2,1) both boq-detail-in;display:grid;box-shadow:0 4px 16px #1f35580a}.boq-att-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.boq-att-head h3{color:#173259;margin:0;font-size:14px}.boq-att-head p{color:#7e8ca0;margin:6px 0 0;font-size:10px;line-height:1.65}.boq-att-panel .inline-attachments{gap:8px;display:grid}.boq-att-panel .inline-attachments>button{justify-self:start}.boq-lines-table.boq-reviewing thead th:first-child{width:44px}.boq-reviewing .boq-table-check{width:40px}.boq-row-reject{white-space:nowrap;border-radius:6px;min-height:20px;padding:0 6px;font-size:9px}.boq-row-reject:hover{color:#c93b3b;background:#fff5f5;border-color:#e24f4f}.boq-table-row.row-rejecting>td{background:#fff5f5}.boq-inline-reject>td{background:#fff8f8;border-bottom:1px solid #f2d4d4!important;padding:0 8px 8px!important}.boq-inline-reject-box{background:#fff;border:1px solid #f2c9c9;border-left:3px solid #e24f4f;border-radius:9px;gap:6px;padding:9px 11px;animation:.2s cubic-bezier(.2,.8,.2,1) both boq-pop-in;display:grid}.boq-inline-reject-box>span{color:#b83232;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:11px;font-weight:800;display:flex}.boq-inline-reject-box>span small{color:#9a6a6a;font-size:9px;font-weight:400}.boq-inline-reject-box textarea{width:100%;min-height:44px;font-size:11px}.boq-inline-reject-actions{justify-content:flex-end;gap:7px;display:flex}.boq-inline-reject-actions button{min-height:26px;padding:0 11px;font-size:10px}.boq-lines-table thead th{padding:5px 6px;font-size:10px}.boq-lines-table thead th:first-child{width:28px}.boq-lines-table tbody td{padding:3px 6px}.boq-lines-table .boq-group-row>td{padding:4px 8px}.boq-lines-table .boq-qty-input,.boq-lines-table .boq-price-input,.boq-lines-table .boq-remark-input,.boq-lines-table .boq-table-spec input,.boq-lines-table .boq-table-spec select{min-height:24px}.boq-lines-table input:disabled{color:#8b99ad;background:#f4f6fa}.boq-table-check{width:24px;padding:3px 2px!important}.boq-payment-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.boq-payment-head h3{color:#173259;margin:0;font-size:14px}.boq-payment-head p{color:#7e8ca0;margin:5px 0 0;font-size:10px}.boq-payment-totals{gap:10px;display:flex}.boq-payment-totals span{text-align:right;background:#f4f7fb;border-radius:11px;gap:3px;min-width:130px;padding:10px 12px;display:grid}.boq-payment-totals small{color:#7e8ca0;font-size:9px}.boq-payment-totals b{color:#173f91;font-size:15px}.boq-payment-hint{color:#5e7089;margin:0;padding:14px;font-size:11px}.boq-payment-wrap{border:1px solid #e4eaf3;border-radius:12px}.boq-payment-table thead th{background:#edf3fb}@media (max-width:1280px){.boq-detail-total b{font-size:16px}}@media (prefers-reduced-motion:reduce){.boq-tabpane,.boq-detail-table tbody tr,.boq-payment-panel,.boq-dirty-badge,.boq-price-base,.boq-remark-diff{animation:none}.boq-tax-tabs button,.boq-tax-tabs button:after,.boq-detail-table tbody td{transition:none}.contract-generate,.contract-generate-picker,.contract-generate-picker button,.contract-table tbody tr,.contract-milestone-preview tbody tr,.boq-milestone-editor,.boq-milestone-table tbody tr,.boq-inline-reject-box,.boq-milestone-warn{transition:none;animation:none}}.boq-tabpane{animation:.22s cubic-bezier(.2,.78,.2,1) both boq-detail-in}.contract-generate header{display:block}.contract-generate header p{white-space:normal;word-break:break-word;max-width:980px}.boq-milestone-warn{color:#8f6515;background:#fff8e9;border:1px solid #f2d9a8;border-radius:9px;margin:6px 0;padding:7px 10px;font-size:10px;font-weight:700;animation:.22s both boq-warning-in}.contract-generate{margin-bottom:12px;padding:16px 18px;animation:.26s cubic-bezier(.2,.78,.2,1) both boq-detail-in}.contract-generate header h2{color:#173259;margin:0;font-size:15px}.contract-generate header p{color:#7e8ca0;margin:5px 0 0;font-size:10px;line-height:1.6}.contract-generate-picker{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;animation:.24s cubic-bezier(.2,.78,.2,1) 70ms both boq-detail-in;display:flex}.contract-generate-picker select{flex:1;min-width:320px;min-height:34px}.contract-generate-picker button{white-space:nowrap;min-height:34px;padding:0 14px;font-size:11px;transition:transform .16s,box-shadow .18s}.contract-generate-picker button:hover{transform:translateY(-1px);box-shadow:0 6px 14px #255bb51a}.contract-table tbody tr{animation:.24s cubic-bezier(.2,.78,.2,1) both boq-detail-in}.contract-table tbody tr:nth-child(2){animation-delay:35ms}.contract-table tbody tr:nth-child(3){animation-delay:70ms}.contract-table tbody tr:nth-child(4){animation-delay:.105s}.contract-table tbody tr:nth-child(5){animation-delay:.14s}.contract-table tbody tr:nth-child(n+6){animation-delay:.175s}.contract-table .contract-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.contract-download{color:#245ca9;font-size:10px;font-weight:700;text-decoration:none}.contract-download:hover{text-decoration:underline}.contract-schedule-title{color:#22344f;margin-bottom:6px;font-size:11px;display:block}.contract-milestone-preview{border-collapse:collapse;width:100%}.contract-milestone-preview th,.contract-milestone-preview td{text-align:left;border:1px solid #e4eaf3;padding:5px 8px;font-size:10px}.contract-milestone-preview th{background:#edf3fb}.contract-milestone-preview tbody tr{animation:.2s both boq-row-in}.contract-milestone-preview tbody tr:nth-child(n+2){animation-delay:25ms}.contract-milestone-preview tbody tr:nth-child(n+5){animation-delay:50ms}.contract-milestone-preview tbody tr:nth-child(n+8){animation-delay:75ms}.contract-missing{color:#d94b4b;font-weight:700}.boq-milestone-editor{border-top:1px dashed #e4eaf3;gap:8px;padding:12px 0;animation:.2s both accordion-content-in;display:grid}.boq-milestone-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.boq-milestone-head small{color:#8794a8;font-size:9px}.boq-milestone-table{border-collapse:collapse;width:100%}.boq-milestone-table tbody tr{animation:.22s both boq-row-in}.boq-milestone-table tbody tr:nth-child(2){animation-delay:40ms}.boq-milestone-table tbody tr:nth-child(3){animation-delay:80ms}.boq-milestone-table tbody tr:nth-child(4){animation-delay:.12s}.boq-milestone-table tbody tr:nth-child(5){animation-delay:.16s}.boq-milestone-table tbody tr:nth-child(6){animation-delay:.2s}.boq-milestone-table tbody tr:nth-child(7){animation-delay:.24s}.boq-milestone-table tbody tr:nth-child(8){animation-delay:.28s}.boq-milestone-table th,.boq-milestone-table td{text-align:center;border-bottom:1px solid #e8edf5;padding:4px 6px;font-size:11px}.boq-milestone-table th{color:#5b6c86;background:#f4f8fd;font-size:10px}.boq-milestone-table input[type=date]{min-height:26px;font-size:11px}.boq-milestone-table td:nth-child(2) input{width:100%;min-width:150px;min-height:26px;font-size:11px}.boq-milestone-table td:nth-child(4) input{width:100%;min-width:130px;min-height:26px;font-size:11px}.boq-excel-modal{width:min(820px,92vw)}.boq-excel-steps{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.boq-excel-steps>span{background:#f8faff;border:1px solid #dfe8f5;border-radius:13px;grid-template-columns:34px 1fr;align-items:center;column-gap:10px;padding:13px;display:grid}.boq-excel-steps i{color:#fff;background:#2e6fe2;border-radius:10px;grid-row:1/3;place-content:center;width:32px;height:32px;font-size:11px;font-style:normal;font-weight:900;display:grid}.boq-excel-steps b{color:#1c3153;font-size:10px}.boq-excel-steps small{color:#7d8ba0;margin-top:3px;font-size:8px}.boq-excel-download{color:#2463c8;background:#eef5ff;border:1px solid #b9d0f5;border-radius:11px;justify-content:center;align-items:center;min-height:42px;margin-bottom:11px;font-size:10px;font-weight:800;text-decoration:none;display:flex}.boq-excel-file{color:#395779;cursor:pointer;text-align:center;background:#fbfdff;border:1.5px dashed #afc5e7;border-radius:13px;place-items:center;min-height:112px;padding:18px;transition:border-color .16s,background .16s,transform .16s;display:grid}.boq-excel-file:hover{background:#f3f8ff;border-color:#2e6fe2;transform:translateY(-1px)}.boq-excel-file.selected{background:#f1fbf6;border-style:solid;border-color:#9bd5bb}.boq-excel-file input{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.boq-excel-file strong{font-size:11px}.boq-excel-file small{color:#7f8da1;margin-top:6px;font-size:9px}.boq-excel-preview{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.boq-excel-preview>span{color:#748199;background:#f5f8fd;border-radius:10px;padding:12px;font-size:9px}.boq-excel-preview>span.boq-new-count{color:#158057;background:#eef8f1}.boq-excel-preview>span b{margin-left:5px;font-size:15px}.boq-excel-preview ul{color:#bb3b3b;background:#fff1f1;border-radius:10px;grid-column:1/-1;max-height:210px;margin:0;padding:10px 10px 10px 28px;font-size:9px;overflow:auto}.boq-excel-preview li+li{margin-top:8px}.boq-excel-success{color:#17825b;background:#eaf8f1;border-radius:10px;grid-column:1/-1;margin:0;padding:11px 13px;font-size:9px;font-weight:700}.boq-excel-warning{color:#9a6a1c;background:#fff8e8;border-radius:10px;grid-column:1/-1;gap:4px;margin:0;padding:11px 13px;font-size:9px;display:grid}@media (max-width:650px){.boq-excel-modal{width:100vw}.boq-excel-steps{grid-template-columns:1fr}.boq-excel-file{min-height:96px}.boq-excel-preview{grid-template-columns:1fr 1fr}.boq-excel-preview>span:first-child{grid-column:1/-1}}.survey-card .survey-status{align-items:center;gap:8px;display:flex}.survey-card .survey-status button{min-height:30px;font-size:10px}.survey-form{padding:16px 20px}.survey-form .span-2{grid-column:1/-1}.survey-photos{padding:0 20px 18px}.power-card .power-stage-chip{color:#245fc8;white-space:nowrap;background:#eaf2ff;border-radius:20px;align-self:center;padding:6px 12px;font-size:11px;font-weight:700}.power-overdue-banner{color:#c0392b;background:#fff2f2;border:1px solid #f5c6c6;border-radius:11px;margin:12px 20px 0;padding:11px 14px;font-size:11px;font-weight:700}.power-missing-banner{color:#93610a;background:#fff8ec;border:1px solid #f2ddb0;border-radius:11px;margin:10px 20px 0;padding:10px 14px;font-size:11px}.power-stage-form{padding:14px 20px 18px}.power-steps{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:14px;display:flex}.power-step{color:#6a7c96;background:#f8faff;border:1px solid #dfe8f5;border-radius:11px;align-items:center;gap:8px;padding:8px 13px;display:flex}.power-step span{color:#6a7c96;background:#e3ebf7;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:800;display:grid}.power-step b{font-size:11px}.power-step.filled{color:#1e5fd6;background:#eef5ff;border-color:#bcd6fb}.power-step.filled span{color:#fff;background:#2f6ce5}.power-step:not(:last-child):after{content:"→";color:#a9b8cf;margin-left:8px}.power-date-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;padding:0;display:grid}.power-date-grid label small{color:#8b97ac;font-size:9px;font-weight:400}.power-date-grid .span-2{grid-column:span 2}.power-approval-files{padding:0 20px 18px}.power-overdue-panel{margin-bottom:18px}.power-overdue-list{padding:4px 20px 12px}.power-overdue-list article{border-bottom:1px solid #edf1f7;grid-template-columns:74px minmax(0,1fr) 90px;align-items:center;gap:14px;min-height:62px;display:grid}.power-overdue-list article:last-child{border-bottom:0}.power-overdue-list .overdue-days{color:#c0392b;background:#fff2f2;border-radius:10px;place-items:center;padding:7px 4px;font-size:12px;font-weight:800;display:grid}.power-overdue-list article.severe .overdue-days{color:#fff;background:#c0392b}.power-overdue-list b,.power-overdue-list small{display:block}.power-overdue-list b{font-size:12px}.power-overdue-list small{color:#8c98ad;margin-top:3px;font-size:10px}.power-overdue-list button{min-height:32px;font-size:11px}.builder-stage-head .builder-module{max-width:200px}.builder-stage-head .builder-module select{min-height:36px;font-size:11px}.template-outline .outline-module{color:#245fc8;white-space:nowrap;background:#eaf2ff;border-radius:6px;margin-right:5px;padding:2px 5px;font-size:8px;font-style:normal}@media (max-width:820px){.power-date-grid{grid-template-columns:1fr 1fr}.power-overdue-list article{grid-template-columns:60px minmax(0,1fr)}.power-overdue-list button{grid-column:2}}.document-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.document-summary .doc-stat{background:#fff;border:1px solid #e3eaf5;border-radius:16px;align-items:center;gap:14px;min-height:96px;padding:16px 18px;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 26px #1d30550f}.document-summary .doc-stat:hover{border-color:#c9d9f4;transform:translateY(-2px);box-shadow:0 14px 34px #1d30551a}.document-summary .doc-stat:before{content:"";background:var(--stat-accent,#2f6ce5);width:4px;position:absolute;inset:0 auto 0 0}.doc-stat .doc-stat-icon{background:linear-gradient(145deg,var(--stat-accent,#2f6ce5),var(--stat-accent-2,#10a9c7));color:#fff;width:46px;height:46px;box-shadow:0 8px 18px var(--stat-glow,#2f6ce547);border-radius:14px;flex:none;place-items:center;font-size:19px;font-weight:900;display:grid}.doc-stat .doc-stat-body{background:0 0;border-radius:0;flex:1;min-width:0;height:auto;margin-top:0;display:block;overflow:visible}.doc-stat .doc-stat-body>small{color:#8b97ab;letter-spacing:.02em;margin:0;font-size:10px;font-weight:600;display:block}.doc-stat .doc-stat-body>b{color:#17233f;letter-spacing:-.02em;align-items:baseline;gap:3px;margin-top:5px;font-size:30px;font-weight:800;line-height:1.05;display:flex}.doc-stat .doc-stat-body>b em{color:#9aa6b8;margin:0;font-size:13px;font-style:normal;font-weight:700}.doc-stat .doc-stat-note{color:#9aa6b8;margin-top:7px;font-size:9px;line-height:1.4;display:block}.doc-stat .doc-stat-bar{background:#e9eef5;border-radius:6px;height:7px;margin-top:9px;overflow:hidden}.doc-stat .doc-stat-bar i{background:linear-gradient(90deg,var(--stat-accent,#2f6ce5),var(--stat-accent-2,#10a9c7));border-radius:6px;height:100%;transition:width .5s cubic-bezier(.2,.76,.2,1);display:block}.doc-stat.stat-percent{--stat-accent:#2f6ce5;--stat-accent-2:#10a9c7;--stat-glow:#2f6ce542}.doc-stat.stat-approved{--stat-accent:#0e9f6e;--stat-accent-2:#38c793;--stat-glow:#0e9f6e3d}.doc-stat.stat-missing.danger{--stat-accent:#e2444c;--stat-accent-2:#f97316;--stat-glow:#e2444c3d}.doc-stat.stat-missing.danger .doc-stat-body>b{color:#c93a42}.doc-stat.stat-missing.done{--stat-accent:#0e9f6e;--stat-accent-2:#38c793;--stat-glow:#0e9f6e3d}.doc-stat.stat-missing.done .doc-stat-body>b{color:#0b8a5c}.doc-stat.stat-pending{--stat-accent:#f59e0b;--stat-accent-2:#fbbf24;--stat-glow:#f59e0b42}@media (max-width:900px){.document-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.document-summary{grid-template-columns:1fr}}.resource-library{border-color:#dfe8f6}.resource-library>header{background:linear-gradient(100deg,#eef4ff 0%,#f8fbff 55%,#fff);padding:16px 18px}.resource-library .resource-icon{color:#fff;background:linear-gradient(145deg,#2f6ce5,#10a9c7);border-radius:13px;width:44px;height:44px;font-size:21px;box-shadow:0 8px 18px #2f6ce542}.resource-library h3{letter-spacing:.01em;font-size:14px}.resource-files>article{transition:border-color .18s,box-shadow .18s,transform .18s}.resource-files>article:hover{border-color:#bcd0f2;transform:translateY(-1px);box-shadow:0 8px 20px #23437e14}.resource-files>article>span{color:#245fc8;background:linear-gradient(145deg,#e8f0fe,#f2f8ff)}.resource-files>article>a{transition:all .18s}.resource-files>article>a:hover{color:#1e5fd6;background:#f0f6ff;border-color:#2f6ce5}.resource-empty{background:#fbfdff;border:1.5px dashed #cddbf2;border-radius:13px;grid-column:1/-1;justify-content:center;align-items:center;gap:13px;margin:4px;padding:22px 16px;display:flex}.resource-empty-icon{color:#5b8be0;background:linear-gradient(145deg,#e8f0fe,#f4f9ff);border-radius:12px;place-items:center;width:42px;height:42px;font-size:19px;font-weight:900;display:grid}.resource-empty b,.resource-empty small{display:block}.resource-empty b{color:#3d4f6b;font-size:11px}.resource-empty small{color:#8b97ab;margin-top:5px;font-size:9px}.survey-card>header,.power-card>header{position:relative;overflow:hidden}.survey-card>header:before,.power-card>header:before{content:"";background:linear-gradient(#2f6ce5,#10a9c7);width:4px;position:absolute;inset:0 auto 0 0}.survey-card .form-grid{gap:14px}.survey-card input,.survey-card textarea{background:#f8faff;border-color:#dfe6f2}.survey-card input:focus,.survey-card textarea:focus{background:#fff;border-color:#7da4f4}.survey-card .survey-photos{background:#fcfdff;border-top:1px solid #eef2f8;margin-top:4px;padding:14px 20px 18px}.power-card .power-date-grid input{background:#f8faff;border-color:#dfe6f2}.power-card .power-date-grid input:focus{background:#fff;border-color:#7da4f4}.power-card .power-stage-form{background:linear-gradient(#fbfdff,#fff)}.stage-panel{transition:border-color .18s,box-shadow .18s}.stage-panel:hover{border-color:#cbdaf2;box-shadow:0 10px 28px #1c2f5414}.stage-panel .stage-heading>span{background:linear-gradient(145deg,#e8f0fe,#f0f6ff);box-shadow:inset 0 0 0 1px #d8e5f8}.boq-table-row.row-rejected td{background:#fff6f6}.boq-table-row.row-rejected td:first-child{box-shadow:inset 3px 0 #df5555}.boq-line-rejected-row td{border:0;padding:0!important}.boq-line-rejected-box{background:snow;border:1px solid #f3caca;border-left:4px solid #df5555;border-radius:10px;gap:6px;margin:4px 0 8px;padding:10px 13px;display:grid}.boq-line-rejected-box b{color:#c0392b;font-size:10px}.boq-line-rejected-box p{color:#7a4a4a;margin:0;font-size:10px;line-height:1.55}.boq-line-rejected-box small{color:#a08585;font-size:9px}.boq-settlement-panel .boq-settlement-kinds{flex-wrap:wrap;gap:10px;margin:0 18px 14px;display:flex}.boq-settlement-kinds>button{color:#52617b;text-align:left;background:#f8faff;border:1.5px solid #dfe8f5;border-radius:13px;flex:1;align-items:center;gap:11px;min-width:260px;min-height:64px;padding:10px 14px;transition:border-color .18s,background .18s,box-shadow .18s;display:flex}.boq-settlement-kinds>button:hover{border-color:#bcd0f6}.boq-settlement-kinds>button.active{background:linear-gradient(100deg,#eef4ff,#fbfdff);border-color:#2f6ce5;box-shadow:0 8px 22px #2f6ce524}.boq-settlement-kinds>button i{color:#6a7c96;background:#e3ebf7;border-radius:12px;place-items:center;width:44px;height:44px;font-size:13px;font-style:normal;font-weight:900;display:grid}.boq-settlement-kinds>button.active i{color:#fff;background:linear-gradient(145deg,#2f6ce5,#10a9c7);box-shadow:0 6px 14px #2f6ce547}.boq-settlement-kinds b,.boq-settlement-kinds small{display:block}.boq-settlement-kinds b{font-size:12px}.boq-settlement-kinds small{color:#8793a6;margin-top:4px;font-size:9px}.boq-settlement-panel .boq-settlement-flow{background:#f8faff;border:1px solid #dfe8f5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:12px 14px;display:flex}.boq-settlement-flow span{color:#6a7c96;background:#eef2f8;border-radius:10px;align-items:center;gap:8px;padding:7px 12px;font-size:11px;font-weight:600;display:flex}.boq-settlement-flow span i{color:#6a7c96;background:#dde5f0;border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-style:normal;font-weight:800;display:grid}.boq-settlement-flow span.done{color:#0b8a5c;background:#e9f8f0}.boq-settlement-flow span.done i{color:#fff;background:#23a374}.boq-settlement-flow span.locked{opacity:.55}.boq-settlement-flow span:not(:last-child):after{content:"→";color:#a9b8cf;margin-left:8px}.boq-settlement-warn{color:#93610a;background:#fff8ec;border:1px solid #f2ddb0;border-radius:11px;margin:0 18px 12px;padding:11px 14px;font-size:11px}.boq-settlement-summary{color:#52617b;background:#fbfdff;border:1px solid #dfe8f5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:22px;margin:0 18px 12px;padding:12px 16px;font-size:11px;display:flex}.boq-settlement-summary b{color:#195cc8;margin:0 3px;font-size:15px}.boq-settlement-summary em.boq-dirty-badge{margin-left:auto;font-style:normal}.boq-settlement-table-wrap{max-height:560px;overflow:auto}.boq-settlement-table .boq-settlement-name b{font-size:10px;display:block}.boq-settlement-table .boq-settlement-name small{color:#8793a6;margin-top:3px;font-size:8px;display:block}.boq-settlement-table .boq-settlement-section{color:#71809c;font-size:9px}.boq-settlement-table tr.filled td{background:#f4fbf7}.boq-settlement-table tr.over-contract td{background:#fff6f6}.boq-settlement-table tr.over-contract td:first-child{box-shadow:inset 3px 0 #df5555}.boq-settlement-table tr.change-locked td{background:#fffaf0}.boq-settlement-table tr.change-locked td:first-child{box-shadow:inset 3px 0 #d98a1d}.boq-settlement-table tr.change-locked .boq-issue-mark{color:#d98a1d}.boq-settlement-locked-count{color:#b45309;font-size:10px;font-style:normal;font-weight:700}.boq-settlement-over{color:#c0392b;margin-top:4px;font-size:9px;font-weight:700;display:block}.boq-settlement-over-count{color:#c0392b;font-size:10px;font-style:normal;font-weight:700}.boq-issue-mark{color:#df5555;margin-right:4px;font-weight:900}.boq-issue-filter{color:#c0392b;flex-direction:row;align-items:center;gap:6px;margin-left:auto;font-size:10px}.boq-issue-filter input{width:auto;min-height:auto}.boq-issue-badge{color:#c0392b;white-space:nowrap;background:#ffecec;border:1px solid #f2c6c6;border-radius:8px;align-items:center;gap:5px;padding:4px 9px;font-size:10px;font-weight:700;display:inline-flex}.table-wrap tr.boq-row-issue td{background:#fff7f7}.table-wrap tr.boq-row-issue:hover td{background:#fff2f2}.payment-requests-panel .payment-request-list{gap:6px;padding:8px 16px 12px;display:grid}.payment-request-card{background:#fff;border:1px solid #e2e8f2;border-left:4px solid #8fa2c4;border-radius:9px;transition:box-shadow .18s}.payment-request-card:hover{box-shadow:0 8px 22px #1c2f5412}.payment-request-card.status-submitted{border-left-color:#f0a11c}.payment-request-card.status-approved{border-left-color:#2f6ce5}.payment-request-card.status-paid{border-left-color:#23a374}.payment-request-card.status-rejected{background:linear-gradient(90deg,#fff8f8,#fff 30%);border-left-color:#df5555}.pr-head{border-bottom:1px solid #f0f3f8;flex-wrap:wrap;align-items:center;gap:9px;padding:5px 10px;display:flex}.pr-head b{font-size:12px}.pr-head small{color:#8793a6;font-size:10px}.pr-type{color:#245fc8;background:#eaf2ff;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700;display:inline-flex}.pr-body{grid-template-columns:190px minmax(0,1fr);gap:12px;padding:6px 10px;display:grid}.pr-amount small,.pr-amount b{display:block}.pr-amount b{color:#17233f;margin:2px 0;font-size:15px}.pr-amount b em{color:#9aa6b8;margin-left:3px;font-size:10px;font-style:normal}.pr-amount small:last-child{color:#98a3b6;margin-top:2px;font-size:9px}.pr-files{gap:4px;display:grid}.pr-files>div{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pr-files>div>small{color:#8793a6;white-space:nowrap;font-size:10px;font-weight:600}.pr-file-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pr-file-actions button,.pr-actions button{min-height:25px;padding:0 9px;font-size:10px}.pr-file-actions .manage-files-button{min-height:24px}.payment-request-card .inline-files{margin-top:3px}.payment-request-card .inline-files article{padding:3px 5px}.payment-request-card .inline-files article>span{width:26px;height:20px}.payment-request-card .inline-files b{font-size:9px}.payment-request-card .inline-files small{font-size:8px}.payment-request-card .inline-files a,.payment-request-card .inline-files button{min-height:22px;padding:0 6px;font-size:9px}.pr-actions{justify-content:flex-end;align-items:center;gap:8px;padding:0 10px 6px;display:flex}.pr-actions .approve{color:#087a56;border-color:#bfe6d3}.pr-actions .reject{color:#b83f3f;border-color:#f1c8c8}.pr-paid-note{color:#0b8a5c;font-size:10px;font-weight:600}@media (max-width:820px){.pr-body{grid-template-columns:1fr}}.contract-overview-detail{margin-bottom:16px}.co-hero{padding:12px 16px 14px}.co-hero-cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.co-hero-cards article{background:#fff;border:1px solid #e3eaf5;border-radius:12px;padding:12px 14px;position:relative;overflow:hidden}.co-hero-cards article:before{content:"";background:var(--ov-accent,#2f6ce5);width:4px;position:absolute;inset:0 auto 0 0}.co-hero-cards small,.co-hero-cards b{display:block}.co-hero-cards small{color:#8290a5;font-size:10px;font-weight:600}.co-hero-cards b{color:#17233f;letter-spacing:-.02em;margin-top:5px;font-size:20px}.co-hero-cards b em{color:#9aa6b8;margin-left:3px;font-size:11px;font-style:normal}.co-hero-cards .ov-blue{--ov-accent:#2f6ce5}.co-hero-cards .ov-green{--ov-accent:#0e9f6e}.co-hero-cards .ov-green b{color:#0b8a5c}.co-hero-cards .ov-orange{--ov-accent:#f59e0b}.co-hero-cards .ov-orange b{color:#b45309}.co-progress{margin-top:12px}.co-progress-track{background:#e8eef6;border-radius:8px;height:10px;overflow:hidden}.co-progress-track i{background:linear-gradient(90deg,#0e9f6e,#38c793);border-radius:8px;height:100%;transition:width .5s cubic-bezier(.2,.76,.2,1);display:block}.co-progress small{color:#8290a5;margin-top:6px;font-size:10px;display:block}.co-type-chart{padding:4px 16px 14px}.co-type-chart h3,.co-contracts h3,.co-requests h3{margin:0 0 10px;font-size:13px}.co-type-row{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 0;display:grid}.co-type-label{color:#52617b;font-size:11px;font-weight:700}.co-type-track{background:#edf1f7;border-radius:8px;height:16px;position:relative;overflow:hidden}.co-type-track i{border-radius:8px;height:100%;position:absolute;inset:0 auto 0 0}.co-type-track i.applied{background:#c9dcf8}.co-type-track i.paid{background:linear-gradient(90deg,#0e9f6e,#38c793)}.co-type-nums{color:#52617b;white-space:nowrap;font-size:10px}.co-type-nums b{color:#0b8a5c}.co-contracts{padding:4px 16px 12px}.co-contract-row{background:#fbfdff;border:1px solid #e8eef6;border-radius:10px;grid-template-columns:minmax(120px,auto) minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:6px;padding:7px 10px;display:grid}.co-contract-row b{font-size:11px}.co-contract-row span{color:#71809c;font-size:10px}.co-contract-row em{color:#17233f;font-size:11px;font-style:normal;font-weight:700}.co-contract-row.unsigned{opacity:.65;background:#fafafa}.co-requests{padding:4px 16px 16px}.co-request-table table td,.co-request-table table th{font-size:10px}@media (max-width:900px){.co-hero-cards{grid-template-columns:1fr}.co-type-row{grid-template-columns:56px minmax(0,1fr);gap:8px}.co-type-nums{grid-column:2}}@keyframes epc-fade-up{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes epc-pop{0%{opacity:0;transform:scale(.85)}70%{transform:scale(1.04)}to{opacity:1;transform:none}}@keyframes nav-sub-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:none}}.payment-request-card{animation:.24s cubic-bezier(.2,.76,.2,1) both epc-fade-up}.payment-request-card:first-child{animation-delay:20ms}.payment-request-card:nth-child(2){animation-delay:50ms}.payment-request-card:nth-child(3){animation-delay:80ms}.payment-request-card:nth-child(4){animation-delay:.11s}.payment-request-card:nth-child(5){animation-delay:.14s}.payment-request-card:nth-child(6){animation-delay:.17s}.payment-request-card:nth-child(7){animation-delay:.2s}.payment-request-card:nth-child(8){animation-delay:.23s}.co-hero-cards article{animation:.26s both epc-fade-up}.co-hero-cards article:nth-child(2){animation-delay:60ms}.co-hero-cards article:nth-child(3){animation-delay:.12s}.co-progress-track i{transition:width .7s cubic-bezier(.2,.76,.2,1)}.co-type-row{animation:.26s both epc-fade-up}.co-type-row:nth-child(2){animation-delay:80ms}.co-type-row:nth-child(3){animation-delay:.14s}.co-type-row:nth-child(4){animation-delay:.2s}.co-type-row:nth-child(5){animation-delay:.26s}.co-type-track i{transition:width .7s cubic-bezier(.2,.76,.2,1)}.co-contract-row{animation:.24s both epc-fade-up}.co-contract-row:nth-child(2){animation-delay:60ms}.document-summary .doc-stat{animation:.26s both epc-fade-up}.document-summary .doc-stat:nth-child(2){animation-delay:60ms}.document-summary .doc-stat:nth-child(3){animation-delay:.12s}.document-summary .doc-stat:nth-child(4){animation-delay:.18s}.boq-issue-badge{animation:.28s cubic-bezier(.2,.76,.2,1) both epc-pop}.boq-settlement-over-count{animation:.28s both epc-pop}.nav-subitem{animation:.2s both nav-sub-in}.nav-subitem:first-child{animation-delay:20ms}.nav-subitem:nth-child(2){animation-delay:60ms}.nav-subitem:nth-child(3){animation-delay:.1s}.nav-subitem:nth-child(4){animation-delay:.14s}.boq-settlement-kinds>button{transition:transform .18s,border-color .18s,box-shadow .18s}.boq-settlement-kinds>button:hover{transform:translateY(-1px)}.power-step,.survey-status{transition:all .2s}.pr-type{animation:.26s both epc-pop}.inline-files article{animation:.2s both epc-fade-up}@media (prefers-reduced-motion:reduce){.payment-request-card,.co-hero-cards article,.co-type-row,.co-contract-row,.document-summary .doc-stat,.boq-issue-badge,.boq-settlement-over-count,.nav-subitem,.pr-type,.inline-files article{opacity:1;animation:none}.co-progress-track i,.co-type-track i,.boq-settlement-kinds>button,.power-step,.survey-stage{transition:none}}.contract-overview{margin-bottom:16px;overflow:hidden}.contract-overview-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:14px 18px 4px;display:grid}.contract-overview-summary article{background:#fff;border:1px solid #e3eaf5;border-radius:14px;padding:14px 16px;position:relative;overflow:hidden}.contract-overview-summary article:before{content:"";background:var(--ov-accent,#2f6ce5);width:4px;position:absolute;inset:0 auto 0 0}.contract-overview-summary small,.contract-overview-summary b,.contract-overview-summary span{display:block}.contract-overview-summary small{color:#8290a5;font-size:10px;font-weight:600}.contract-overview-summary b{color:#17233f;letter-spacing:-.02em;margin-top:6px;font-size:22px}.contract-overview-summary b em{color:#9aa6b8;margin-left:3px;font-size:12px;font-style:normal}.contract-overview-summary span{color:#9aa6b8;margin-top:5px;font-size:9px}.contract-overview-summary .ov-blue{--ov-accent:#2f6ce5}.contract-overview-summary .ov-green{--ov-accent:#0e9f6e}.contract-overview-summary .ov-green b{color:#0b8a5c}.contract-overview-summary .ov-orange{--ov-accent:#f59e0b}.contract-overview-summary .ov-orange b{color:#b45309}.contract-overview-table table td,.contract-overview-table table th{font-size:11px}.contract-overview-table .ov-total-row td{background:#f6f9ff;border-top:2px solid #d7e0ee;font-weight:700}.contract-overview-table .ov-settled td{background:#f7fcf9}.contract-overview-table .ov-unsigned{color:#b45309;font-size:9px}@media (max-width:900px){.contract-overview-summary{grid-template-columns:1fr}}.boq-settlement-actions{align-items:center;gap:12px;margin:12px 18px 4px;display:flex}.boq-settlement-actions .button-link{border:1px solid var(--blue);background:var(--blue);border-radius:9px;align-items:center;min-height:36px;padding:0 16px;font-size:11px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 7px 18px #2866e82e;color:#fff!important}.boq-settlement-actions .button-link.button-ghost{box-shadow:none;background:#fff;border-color:#c9d6ee;color:#3b5a86!important}.boq-settlement-files{margin-top:8px;padding:0 18px 18px}.boq-settlement-table thead th{white-space:nowrap}.boq-settlement-table .boq-remark-input{width:100%;min-width:0}.boq-settlement-table:not(.boq-change-settle-table){min-width:1060px}.boq-settlement-table:not(.boq-change-settle-table) thead th:first-child{width:44px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(2){width:112px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(4){width:44px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(5){width:92px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(6),.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(7){width:100px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(8){width:118px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(9){width:100px}.boq-settlement-table:not(.boq-change-settle-table) thead th:nth-child(10){width:150px}.boq-settlement-table:not(.boq-change-settle-table) td:nth-child(5),.boq-settlement-table:not(.boq-change-settle-table) td:nth-child(6),.boq-settlement-table:not(.boq-change-settle-table) td:nth-child(7),.boq-settlement-table:not(.boq-change-settle-table) td:nth-child(8),.boq-settlement-table:not(.boq-change-settle-table) td:nth-child(9){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.boq-change-settle-table{min-width:1380px}.boq-change-settle-table thead th:first-child{width:44px}.boq-change-settle-table thead th:nth-child(2){width:112px}.boq-change-settle-table thead th:nth-child(3){width:auto}.boq-change-settle-table thead th:nth-child(4){width:44px}.boq-change-settle-table thead th:nth-child(5){width:92px}.boq-change-settle-table thead th:nth-child(6){width:96px}.boq-change-settle-table thead th:nth-child(7){width:92px}.boq-change-settle-table thead th:nth-child(8){width:96px}.boq-change-settle-table thead th:nth-child(9){width:92px}.boq-change-settle-table thead th:nth-child(10){width:106px}.boq-change-settle-table thead th:nth-child(11){width:126px}.boq-change-settle-table thead th:nth-child(12){width:100px}.boq-change-settle-table thead th:nth-child(13){width:150px}.boq-change-settle-table td:nth-child(5),.boq-change-settle-table td:nth-child(6),.boq-change-settle-table td:nth-child(7),.boq-change-settle-table td:nth-child(8),.boq-change-settle-table td:nth-child(9),.boq-change-settle-table td:nth-child(10),.boq-change-settle-table td:nth-child(11),.boq-change-settle-table td:nth-child(12){text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.boq-settlement-table .boq-settlement-section{overflow-wrap:anywhere;line-height:1.45}.boq-settlement-table .boq-settlement-name small{white-space:normal;overflow-wrap:anywhere}.boq-settlement-table .boq-settle-new-item{color:#9aa6b8;font-size:8px}.boq-settlement-table .boq-settle-settled-cell{color:#b45309;font-weight:800}.boq-settlement-table .boq-settle-over-tip{color:#c0392b;text-align:right;margin-top:3px;font-size:8px;font-weight:700;display:block}.boq-settlement-table tr.over-settled:not(.over-contract) td{background:#fff8ec}.boq-settlement-table tr.over-settled:not(.over-contract) td:first-child{box-shadow:inset 3px 0 #d98a1d}.boq-settlement-over-count,.boq-settled-over-count{color:#b45309;font-size:10px;font-style:normal;font-weight:700}.export-locked{opacity:.55;cursor:not-allowed;filter:grayscale(.4)}.boq-change-lines-table thead th:nth-child(6){width:80px}.boq-change-lines-table .boq-table-qtyref{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:#41527a}.boq-change-lines-table .boq-qtyref-new{color:#9aa6b8;font-size:8px}.boq-change-lines-table .boq-qtyref-over{color:#c0392b;font-weight:800}.boq-change-lines-table:not(.approved) thead th:nth-child(8){width:84px}.boq-change-lines-table:not(.approved) thead th:nth-child(9){width:96px}.boq-change-lines-table:not(.approved) thead th:nth-child(10){width:104px}.boq-change-lines-table:not(.approved) thead th:nth-child(11){width:88px}.boq-change-lines-table.approved thead th:nth-child(7){width:80px}.boq-change-lines-table.approved thead th:nth-child(8){width:86px}.boq-change-lines-table.approved thead th:nth-child(9){width:46px}.boq-change-lines-table.approved thead th:nth-child(10){width:84px}.boq-change-lines-table.approved thead th:nth-child(11){width:96px}.boq-change-lines-table.approved thead th:nth-child(12){width:104px}.boq-change-lines-table.approved thead th:nth-child(13){width:88px}@keyframes change-fade-up{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes change-row-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes over-settled-in{0%{background-color:#ffe2b0}60%{background-color:#ffedcf}to{background-color:#fff8ec}}@keyframes qtyref-in{0%{opacity:0;transform:translate(7px)}to{opacity:1;transform:none}}@keyframes over-qty-pulse{0%{opacity:0;transform:scale(.86)}45%{opacity:1;transform:scale(1.12)}70%{transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes issue-nudge{0%,to{transform:translate(0)}25%{transform:translate(-2px)}65%{transform:translate(2px)}}@keyframes lock-shake{0%,to{transform:translate(0)}30%{transform:translate(-3px)}60%{transform:translate(3px)}}.change-overview>article{animation:.38s both change-fade-up}.change-overview>article:nth-child(2){animation-delay:70ms}.change-overview>article:nth-child(3){animation-delay:.14s}.change-overview>article:nth-child(4){animation-delay:.21s}.engineering-change-table tbody tr{animation:.3s both change-row-in}.engineering-change-table tbody tr:nth-child(2){animation-delay:40ms}.engineering-change-table tbody tr:nth-child(3){animation-delay:80ms}.engineering-change-table tbody tr:nth-child(4){animation-delay:.12s}.engineering-change-table tbody tr:nth-child(5){animation-delay:.16s}.engineering-change-table tbody tr:nth-child(n+6){animation-delay:.2s}.change-seq-tag,.change-agreement-tag,.boq-change-no-tag{animation:.3s both epc-pop}.boq-ledger-table tbody tr{animation:.28s both change-row-in}.boq-ledger-table tbody tr:nth-child(2){animation-delay:30ms}.boq-ledger-table tbody tr:nth-child(3){animation-delay:60ms}.boq-ledger-table tbody tr:nth-child(4){animation-delay:90ms}.boq-ledger-table tbody tr:nth-child(n+5){animation-delay:.12s}.boq-settlement-flow span{animation:.34s both change-fade-up}.boq-settlement-flow span:nth-child(2){animation-delay:60ms}.boq-settlement-flow span:nth-child(3){animation-delay:.12s}.boq-settlement-flow span:nth-child(4){animation-delay:.18s}.boq-settlement-summary>span,.boq-settlement-summary>em,.boq-settlement-summary>label{animation:.32s both change-fade-up}.boq-settlement-summary>:nth-child(2){animation-delay:50ms}.boq-settlement-summary>:nth-child(3){animation-delay:.1s}.boq-settlement-summary>:nth-child(n+4){animation-delay:.15s}.boq-settlement-table tr.over-settled:not(.over-contract) td{animation:.55s both over-settled-in}.boq-settle-over-tip{animation:.28s .18s both epc-pop}.boq-settle-new-item{animation:.3s both epc-fade-up}.boq-settle-settled-cell{animation:.3s both change-fade-up}.boq-issue-mark{animation:2.4s ease-in-out infinite issue-nudge}.export-locked:hover{animation:.32s lock-shake}.boq-change-lines-table .boq-table-qtyref{animation:.36s both qtyref-in}.boq-change-lines-table .boq-table-qtyref:nth-child(7){animation-delay:50ms}.boq-change-lines-table.approved .boq-table-qtyref:nth-child(8){animation-delay:.1s}.boq-qtyref-over{animation:1s both over-qty-pulse}.boq-qtyref-new{animation:.3s both epc-fade-up}@media (prefers-reduced-motion:reduce){.change-overview>article,.engineering-change-table tbody tr,.boq-ledger-table tbody tr,.change-seq-tag,.change-agreement-tag,.boq-change-no-tag,.boq-settlement-flow span,.boq-settlement-summary>span,.boq-settlement-summary>em,.boq-settlement-summary>label,.boq-settlement-table tr.over-settled:not(.over-contract) td,.boq-settle-over-tip,.boq-settle-new-item,.boq-settle-settled-cell,.boq-issue-mark,.export-locked,.boq-change-lines-table .boq-table-qtyref,.boq-qtyref-over,.boq-qtyref-new{animation:none}}.settle-confirm-body{gap:11px;min-width:min(560px,80vw);display:grid}.settle-confirm-block{background:#f8fafd;border:1px solid #e2e8f1;border-radius:11px;padding:11px 13px}.settle-confirm-block.warn{background:#fffaf1;border-color:#f2cf9a}.settle-confirm-block>b{margin-bottom:7px;font-size:11px;display:block}.settle-confirm-block ul{color:#54627a;gap:4px;margin:0;padding-left:17px;font-size:10px;line-height:1.6;display:grid}.settle-confirm-note{gap:6px;display:grid}.settle-confirm-note>span{color:#5d6b84;font-size:10px;font-weight:700}.settle-confirm-note textarea{resize:vertical;border:1px solid #d7dfeb;border-radius:9px;width:100%;padding:9px 11px;font-family:inherit;font-size:11px;line-height:1.6}.settle-confirm-note textarea:focus{border-color:#8fb4ec;outline:2px solid #bcd2f5}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}.mobile-upload-sources{display:none}.mobile-shell{color:#17233f;background:#f3f6fb;min-height:100dvh}.mobile-header{z-index:35;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border-bottom:1px solid #dce3efd9;align-items:center;gap:11px;min-height:72px;padding:10px 16px;display:flex;position:sticky;top:0;box-shadow:0 8px 24px #12264c0f}.mobile-brand-mark{background:linear-gradient(145deg,#ffbc3e,#ff7a00);border-radius:13px;place-items:center;width:42px;height:42px;display:grid;position:relative;box-shadow:0 8px 18px #f5820b3d}.mobile-brand-mark:before,.mobile-brand-mark:after,.mobile-brand-mark span{content:"";background:#fff;border-radius:2px 2px 0 0;width:6px;position:absolute;bottom:9px}.mobile-brand-mark:before{height:12px;left:9px}.mobile-brand-mark span{height:21px;left:18px}.mobile-brand-mark:after{height:16px;right:8px}.mobile-header>div:nth-child(2){flex:1;min-width:0}.mobile-header small,.mobile-header h1{margin:0;display:block}.mobile-header small{color:#6f7e97;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.mobile-header h1{letter-spacing:-.03em;margin-top:3px;font-size:19px;animation:.17s both mobile-title-in}.mobile-online{box-sizing:content-box;background:#1fb879;border:3px solid #d7f7e7;border-radius:50%;width:10px;height:10px}.mobile-content{min-height:calc(100dvh - 72px);padding:0 0 calc(86px + env(safe-area-inset-bottom))}.mobile-route-view{min-width:0;animation:.21s cubic-bezier(.2,.78,.2,1) both mobile-route-in}.mobile-page{gap:14px;padding:14px;display:grid}.mobile-page button,.mobile-progress button,.mobile-bottom-nav button{touch-action:manipulation}@keyframes mobile-route-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes mobile-title-in{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:none}}.mobile-bottom-nav{z-index:70;height:calc(68px + env(safe-area-inset-bottom));padding:5px 8px env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border-top:1px solid #dce4f0;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 35px #11264b17}.mobile-bottom-nav button{color:#7b889f;background:0 0;border:0;border-radius:12px;align-content:center;place-items:center;gap:2px;min-height:56px;padding:0;display:grid}.mobile-bottom-nav button>span{place-items:center;width:29px;height:25px;font-size:20px;font-style:normal;display:grid;position:relative}.mobile-bottom-nav button>span i{color:#fff;background:#ef4d4d;border:2px solid #fff;border-radius:10px;min-width:17px;height:17px;padding:0 4px;font-size:8px;font-style:normal;line-height:13px;position:absolute;top:-4px;right:-10px}.mobile-bottom-nav button small{font-size:10px}.mobile-bottom-nav button.active{color:#1f63d5;background:#edf4ff;font-weight:800}.mobile-bottom-nav button:nth-child(3)>span{color:#fff;background:linear-gradient(145deg,#3478ed,#1f5dce);border:4px solid #f3f6fb;border-radius:15px;width:40px;height:40px;margin-top:-21px;font-size:22px;box-shadow:0 7px 18px #2866e847}.mobile-bottom-nav button:nth-child(3) small{margin-top:-3px}.mobile-greeting{color:#fff;background:linear-gradient(135deg,#0c1e49,#164aa2 78%,#2369d8);border-radius:21px;align-items:center;gap:12px;min-height:132px;padding:20px;display:flex;box-shadow:0 14px 32px #0d327430}.mobile-greeting>div{flex:1;min-width:0}.mobile-greeting small{color:#a9c6ff;font-size:10px}.mobile-greeting h2{margin:7px 0 6px;font-size:18px;line-height:1.35}.mobile-greeting p{color:#bfd2f7;margin:0;font-size:11px}.mobile-greeting>span{background:#ffffff24;border:1px solid #ffffff47;border-radius:16px;place-items:center;width:48px;height:48px;font-size:20px;font-weight:800;display:grid}.mobile-metrics{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.mobile-metrics button{text-align:center;background:#fff;border:1px solid #e1e8f2;border-radius:15px;gap:6px;min-width:0;min-height:86px;padding:13px 5px;display:grid;box-shadow:0 7px 20px #172f580d}.mobile-metrics span{color:#42516b;font-size:22px;font-weight:800}.mobile-metrics .metric-blue{color:#2866e8}.mobile-metrics .metric-orange{color:#ec8510}.mobile-metrics .metric-red{color:#e84a4a}.mobile-metrics small{color:#7b879b;white-space:nowrap;font-size:9px;overflow:hidden}.mobile-section{background:#fff;border:1px solid #e2e8f1;border-radius:18px;overflow:hidden;box-shadow:0 8px 24px #182f580d}.mobile-section>header{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;min-height:48px;padding:11px 14px;display:flex}.mobile-section>header h3{margin:0;font-size:14px}.mobile-section>header button{color:#2866e8;background:0 0;border:0;min-height:36px;padding:0 2px;font-size:10px}.mobile-approval-list{gap:8px;padding:10px;display:grid}.mobile-approval-list>button{width:100%;min-height:82px;color:inherit;text-align:left;background:#fff;border:1px solid #e4e9f1;border-left:4px solid #23a374;border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px;animation:.26s both approval-row-in;display:grid}.mobile-approval-list>button.rejected{background:#fff9f9;border-left-color:#e94f4f}.mobile-approval-list>button>span{color:#2862c8;background:#eaf2ff;border-radius:9px;place-items:center;width:39px;height:31px;font-size:9px;font-weight:800;display:grid}.mobile-approval-list>button.rejected>span{color:#c83e3e;background:#ffebeb}.mobile-approval-list>button>div{min-width:0}.mobile-approval-list small,.mobile-approval-list b,.mobile-approval-list p{display:block}.mobile-approval-list small{color:#8491a5;text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.mobile-approval-list b{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.mobile-approval-list p{color:#4f806e;margin:5px 0 0;font-size:9px;line-height:1.45}.mobile-approval-list .rejected p{color:#c54141;font-weight:700}.mobile-approval-list>button>i{color:#8795aa;font-size:21px;font-style:normal}.mobile-quick-grid{grid-template-columns:repeat(2,1fr);padding:15px 8px;display:grid}.mobile-quick-grid button{background:#fff;border:0;place-items:center;gap:4px;min-width:0;min-height:82px;padding:5px;display:grid}.mobile-quick-grid i{color:#2563d2;background:#edf4ff;border-radius:13px;place-items:center;width:40px;height:40px;font-size:14px;font-style:normal;font-weight:800;display:grid}.mobile-quick-grid button:nth-child(2) i{color:#da7310;background:#fff0e2}.mobile-quick-grid button:nth-child(3) i{color:#13845c;background:#e8f8f2}.mobile-quick-grid button:nth-child(4) i{color:#7452c9;background:#f2ecff}.mobile-quick-grid b{font-size:11px}.mobile-quick-grid small{color:#8a96a8;font-size:8px}.mobile-task-list,.mobile-project-list{gap:10px;display:grid}.mobile-section .mobile-task-list,.mobile-section .mobile-project-list{padding:10px}.mobile-task-card{width:100%;min-height:96px;color:inherit;text-align:left;background:#fff;border:1px solid #e4e9f1;border-left:4px solid #c3cede;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px;display:grid}.mobile-task-card.high{border-left-color:#ee725f}.mobile-task-card.medium{border-left-color:#eea021}.mobile-task-card>div{min-width:0}.mobile-task-card small,.mobile-task-card b,.mobile-task-card p,.mobile-task-card em{display:block}.mobile-task-card small{color:#8491a5;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.mobile-task-card b{margin-top:4px;font-size:12px}.mobile-task-card p{color:#627089;margin:5px 0;font-size:10px;line-height:1.45}.mobile-task-card em{color:#909bad;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-style:normal;overflow:hidden}.mobile-task-card>i{color:#8795aa;font-size:22px;font-style:normal}.task-type{border-radius:9px;place-items:center;width:52px;height:29px;font-size:9px;font-weight:800;display:grid}.task-type.orange{color:#c66b08;background:#fff0dd}.task-type.red{color:#cf4343;background:#ffeded}.task-type.blue{color:#2762ca;background:#eaf2ff}.task-type.gray{color:#68758a;background:#edf0f5}.mobile-project-card{width:100%;min-height:150px;color:inherit;text-align:left;background:#fff;border:1px solid #e1e7f0;border-radius:17px;padding:15px;display:block;box-shadow:0 8px 24px #172f570d}.mobile-project-card header{align-items:flex-start;gap:10px;display:flex}.mobile-project-card header>div{flex:1;min-width:0}.mobile-project-card header small,.mobile-project-card header b,.mobile-project-card header span{display:block}.mobile-project-card header small{color:#2866e8;font-size:9px;font-weight:700}.mobile-project-card header b{text-overflow:ellipsis;white-space:nowrap;margin:6px 0 5px;font-size:14px;overflow:hidden}.mobile-project-card header span{color:#7b889d;font-size:10px}.mobile-progress-line{align-items:center;gap:10px;margin:17px 0 12px;display:flex}.mobile-progress-line>div{background:#e9eef5;border-radius:8px;flex:1;height:8px;overflow:hidden}.mobile-progress-line i{background:linear-gradient(90deg,#2866e8,#11a6be);border-radius:8px;height:100%;display:block}.mobile-progress-line b{color:#2866e8;font-size:11px}.mobile-project-card footer{color:#8793a7;justify-content:space-between;align-items:center;gap:8px;font-size:9px;display:flex}.mobile-project-card footer em{border-radius:9px;padding:4px 7px;font-style:normal}.mobile-project-card footer em.good{color:#16805b;background:#e9f8f1}.mobile-project-card footer em.warn{color:#c96915;background:#fff0e4}.mobile-search{position:relative}.mobile-search span{z-index:2;color:#8290a5;font-size:20px;position:absolute;top:11px;left:14px}.mobile-search input{background:#fff;border-radius:14px;height:46px;padding-left:43px}.mobile-filter,.mobile-task-filters{scrollbar-width:none;gap:7px;padding-bottom:2px;display:flex;overflow-x:auto}.mobile-filter::-webkit-scrollbar{display:none}.mobile-task-filters::-webkit-scrollbar{display:none}.mobile-filter button,.mobile-task-filters button{color:#6e7c92;white-space:nowrap;background:#fff;border:1px solid #dfe6f1;border-radius:19px;flex:none;min-height:38px;padding:0 13px;font-size:10px}.mobile-filter button.active,.mobile-task-filters button.active{color:#fff;background:#2866e8;border-color:#2866e8;box-shadow:0 7px 16px #2866e833}.mobile-task-filters button i{color:#6e7c92;background:#edf1f7;border-radius:9px;place-items:center;min-width:17px;height:17px;margin-left:5px;padding:0 4px;font-size:8px;font-style:normal;display:inline-grid}.mobile-task-filters button.active i{color:#fff;background:#ffffff38}.mobile-fullscreen{z-index:65;inset:0 0 calc(68px + env(safe-area-inset-bottom));background:#f3f6fb;flex-direction:column;animation:.26s cubic-bezier(.2,.8,.2,1) both drawer-in;display:flex;position:fixed}.mobile-fullscreen>header{background:#fff;border-bottom:1px solid #e0e7f1;align-items:center;gap:11px;min-height:72px;padding:10px 14px;display:flex}.mobile-fullscreen>header button{color:#2e4162;background:#f1f5fb;border:0;border-radius:13px;place-items:center;width:44px;min-height:44px;padding:0;font-size:30px;display:grid}.mobile-fullscreen>header div{min-width:0}.mobile-fullscreen>header small,.mobile-fullscreen>header h2{margin:0;display:block}.mobile-fullscreen>header small{color:#2866e8;font-size:9px}.mobile-fullscreen>header h2{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:16px;overflow:hidden}.mobile-fullscreen-body{gap:12px;padding:14px 14px 90px;display:grid;overflow:auto}.mobile-project-hero{color:#fff;background:linear-gradient(135deg,#102753,#1f61c4);border-radius:17px;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:16px;display:grid}.mobile-project-hero strong{font-size:24px}.mobile-project-hero span{color:#bdd2f7;font-size:9px}.mobile-project-hero>div{background:#ffffff2b;border-radius:8px;grid-column:1/-1;height:7px;overflow:hidden}.mobile-project-hero>div i{background:#fff;border-radius:8px;height:100%;display:block}.mobile-detail-section{background:#fff;border:1px solid #e1e7f0;border-radius:17px;padding:15px}.mobile-detail-section h3{margin:0 0 12px;font-size:13px}.mobile-detail-section>div{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mobile-detail-section span{background:#f6f8fc;border-radius:11px;min-width:0;padding:10px}.mobile-detail-section small,.mobile-detail-section b{display:block}.mobile-detail-section small{color:#8390a4;font-size:9px}.mobile-detail-section b{overflow-wrap:anywhere;margin-top:5px;font-size:11px}.mobile-sticky-actions{padding:12px 14px calc(12px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border-top:1px solid #dfe6ef;grid-template-columns:1fr 1.5fr;gap:9px;display:grid;position:absolute;bottom:0;left:0;right:0}.mobile-sticky-actions button{min-height:46px}.mobile-account-card{color:#fff;background:linear-gradient(135deg,#0c1e49,#1e58b2);border-radius:20px;align-items:center;gap:14px;min-height:126px;padding:20px;display:flex;box-shadow:0 14px 32px #0d32742e}.mobile-account-card>span{background:#ffffff21;border:1px solid #ffffff40;border-radius:18px;place-items:center;width:58px;height:58px;font-size:22px;font-weight:800;display:grid}.mobile-account-card h2,.mobile-account-card p,.mobile-account-card small{margin:0;display:block}.mobile-account-card h2{font-size:18px}.mobile-account-card p{color:#bfd2f6;margin:6px 0;font-size:11px}.mobile-account-card small{color:#90addf;font-size:9px}.mobile-me-group{background:#fff;border:1px solid #e1e7f0;border-radius:18px;padding:17px;box-shadow:0 8px 24px #182f580d}.mobile-me-group>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.mobile-me-group header small,.mobile-me-group header h3{margin:0;display:block}.mobile-me-group header small{color:#8290a4;font-size:9px}.mobile-me-group header h3{margin-top:5px;font-size:14px}.mobile-me-group>p{color:#718097;margin:13px 0;font-size:10px}.mobile-setting-list{padding:0;overflow:hidden}.mobile-setting-list>button{width:100%;min-height:72px;color:inherit;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1f5;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 15px;display:grid}.mobile-setting-list>button:last-child{border-bottom:0}.mobile-setting-list>button>span{color:#2866e8;background:#edf3ff;border-radius:12px;place-items:center;width:38px;height:38px;font-size:17px;display:grid}.mobile-setting-list b,.mobile-setting-list small{display:block}.mobile-setting-list b{font-size:12px}.mobile-setting-list small{color:#8491a5;margin-top:5px;font-size:9px}.mobile-setting-list>button>i{color:#8a97aa;font-size:20px;font-style:normal}.mobile-version{text-align:center;color:#929daf!important;margin:4px 0!important;font-size:9px!important}.mobile-error{color:#b64242;background:#fff;border:1px solid #f1c6c6;border-radius:18px;place-items:center;gap:12px;margin:40px 16px;padding:28px;font-size:12px;display:grid}.mobile-error button{min-height:42px}.mobile-skeleton{gap:10px;padding:14px;display:grid}.mobile-skeleton i{background:linear-gradient(100deg,#edf1f6 25%,#f8fafd 45%,#edf1f6 65%) 0 0/300% 100%;border-radius:17px;height:96px;animation:1.3s infinite mobile-loading;display:block}@keyframes mobile-loading{to{background-position:-150% 0}}.mobile-return-button{z-index:150;color:#fff;background:#2866e8;border:0;border-radius:22px;min-height:44px;padding:0 16px;position:fixed;bottom:16px;right:16px;box-shadow:0 10px 28px #1f52b14d}@keyframes mobile-sheet-in{0%{opacity:.7;transform:translateY(100%)}to{opacity:1;transform:none}}@media (max-width:767px){body{overscroll-behavior-y:none}.toast{top:calc(78px + env(safe-area-inset-top));max-width:none;min-height:48px;left:12px;right:12px}.mobile-progress{gap:12px;padding:12px 12px 4px;display:grid}.mobile-progress>.toolbar{z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;border:1px solid #e0e7f1;border-radius:14px;margin:0;padding:8px;display:block;position:sticky;top:72px;box-shadow:0 6px 18px #152c5212}.mobile-progress>.toolbar p{display:none}.mobile-progress>.toolbar>div{display:block}.mobile-progress>.toolbar select{background:#f3f6fb;border:0;min-width:0;height:44px;font-size:12px;font-weight:700}.mobile-progress>.progress-tabs{z-index:24;border-radius:14px;margin:0;padding:5px;display:flex;position:sticky;top:134px;box-shadow:0 6px 18px #152c520f}.mobile-progress>.progress-tabs button{min-width:98px;min-height:44px;font-size:11px}.mobile-progress .document-summary{grid-template-columns:1fr 1fr;gap:8px;margin:0}.mobile-progress .document-summary article{min-height:92px;padding:13px}.mobile-progress .document-summary small{font-size:10px}.mobile-progress .document-summary b{font-size:22px}.mobile-progress .stage-accordion{gap:10px}.mobile-progress .stage-heading{min-height:68px;padding:12px}.mobile-progress .stage-heading>span{width:38px;height:38px;font-size:12px}.mobile-progress .stage-heading>div b{font-size:13px}.mobile-progress .stage-heading>div small{font-size:10px}.mobile-progress .stage-nodes{padding:8px}.mobile-progress .document-node-head{grid-template-columns:auto minmax(0,1fr) auto;gap:9px;min-height:66px;padding:10px}.mobile-progress .document-node-head>div{min-width:0}.mobile-progress .document-node-head>div b{font-size:12px}.mobile-progress .document-node-head>div small{font-size:9px;line-height:1.4}.mobile-progress .document-node-head>i{display:none}.mobile-progress .doc-code{min-width:39px;height:34px;font-size:10px}.mobile-progress .document-node-body{padding:10px}.mobile-progress .material-requirement{grid-template-columns:auto minmax(0,1fr);gap:9px;padding:11px}.mobile-progress .material-name b{font-size:11px}.mobile-progress .material-name small{font-size:9px;line-height:1.5}.mobile-progress .material-buttons{grid-column:1/-1;justify-content:flex-start;padding-left:0}.mobile-progress .material-buttons>button,.mobile-progress .inline-node-actions button{min-height:40px;padding:0 12px;font-size:10px}.mobile-progress .inline-node-actions{justify-content:flex-start}.mobile-progress .progress-feed{border-radius:16px;margin:0}.mobile-progress .panel-heading{align-items:flex-start;padding:14px}.mobile-progress .panel-heading h2{font-size:14px}.mobile-progress .panel-heading p{font-size:10px;line-height:1.5}.mobile-progress .panel-heading button{min-height:40px}.mobile-progress .inline-entry-form,.mobile-progress .receipt-form{grid-template-columns:1fr;margin:0 10px 12px;padding:12px}.mobile-progress .inline-entry-form .grow,.mobile-progress .receipt-form .grow,.mobile-progress .inline-entry-form>button{grid-column:1}.mobile-progress .inline-entry-form button{min-height:44px}.mobile-progress .activity-list{margin:0 12px}.mobile-progress .activity-list>article{grid-template-columns:1fr;padding:13px 0}.mobile-progress .activity-date b,.mobile-progress .activity-list>article>p b{font-size:11px}.mobile-progress .activity-date small,.mobile-progress .activity-list>article>p small,.mobile-progress .activity-list>article>p{font-size:10px}.mobile-progress .inline-files article{grid-template-columns:auto minmax(0,1fr);padding:10px}.mobile-progress .inline-files b{overflow-wrap:anywhere;font-size:10px}.mobile-progress .inline-files small{font-size:8px;line-height:1.45}.mobile-progress .inline-files article>a,.mobile-progress .inline-files article>button{grid-column:auto;min-height:38px;padding:0 10px;font-size:10px}.mobile-progress .log-type-tabs{scrollbar-width:none;scroll-snap-type:x mandatory;gap:7px;margin:0 10px 12px;padding-bottom:2px;display:flex;overflow-x:auto}.mobile-progress .log-type-tabs::-webkit-scrollbar{display:none}.mobile-progress .log-type-tabs>button{scroll-snap-align:start;min-width:188px;min-height:64px}.mobile-progress .log-type-tabs b{font-size:11px}.mobile-progress .log-type-tabs small{font-size:8px}.mobile-progress .log-section-heading{margin:0 10px 12px}.mobile-progress .log-section-heading p{font-size:9px;line-height:1.55}.modal-backdrop{place-items:end center;padding:0}.modal{width:100%;max-height:92dvh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;animation:.24s cubic-bezier(.2,.8,.2,1) both mobile-sheet-in}.modal-backdrop.is-exiting .modal{opacity:1;transition:all .22s cubic-bezier(.4,0,1,1);transform:translateY(100%)}.modal>header{min-height:50px;margin:-4px 0 15px}.modal h2{font-size:17px}.modal>header p{font-size:10px}.modal input,.modal select,.modal textarea{min-height:44px;font-size:14px}.modal label{font-size:11px}.modal .dialog-actions{z-index:3;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#fffffff5;margin:15px -16px -18px;position:sticky;bottom:0;box-shadow:0 -10px 24px #162d540f}.modal .dialog-actions button{min-height:44px}.confirm-modal{width:100%}.confirm-content{text-align:left}.confirm-content .confirm-symbol{margin:2px 0 15px}.nested-confirm{width:calc(100% - 28px);padding:20px}.drawer{width:100vw}.drawer>header{min-height:68px;padding:12px 14px}.drawer>header h2{font-size:16px}.drawer-body{padding:13px 13px calc(96px + env(safe-area-inset-bottom))}.drawer-actions{padding:11px 13px calc(11px + env(safe-area-inset-bottom));justify-content:flex-start;overflow-x:auto}.drawer-actions button{flex:none;min-height:42px}.profile-hero{padding:13px}.drawer-tabs{padding:0 8px}.drawer-tabs button{min-height:46px;font-size:10px}.profile-sections>section{padding:14px}.detail-grid{grid-template-columns:1fr}.drop-zone{display:none}.mobile-upload-sources{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.mobile-upload-sources button{color:#263650;background:#f8faff;border:1px solid #dfe6f1;border-radius:14px;align-content:center;place-items:center;gap:4px;min-width:0;min-height:104px;padding:9px 4px;display:grid}.mobile-upload-sources button>span{color:#2866e8;background:#e8f1ff;border-radius:12px;place-items:center;width:38px;height:38px;font-size:13px;font-weight:800;display:grid}.mobile-upload-sources button>b{font-size:11px}.mobile-upload-sources button>small{color:#8793a6;font-size:8px}.upload-queue{max-height:36dvh}.upload-item{grid-template-columns:auto minmax(0,1fr) auto}.upload-item b{overflow-wrap:anywhere}.upload-modal>.dialog-actions button:first-child{display:none}}@media (max-width:370px){.mobile-page{padding:10px}.mobile-metrics,.mobile-quick-grid{grid-template-columns:1fr 1fr}.mobile-detail-section>div,.mobile-upload-sources{grid-template-columns:1fr}.mobile-upload-sources button{text-align:left;grid-template-columns:auto 1fr;min-height:66px}.mobile-upload-sources button small,.mobile-upload-sources button b{justify-self:start}}@media (prefers-reduced-motion:reduce){.mobile-fullscreen,.modal,.mobile-skeleton i{animation:none!important}.mobile-bottom-nav,.mobile-header{scroll-behavior:auto}}
