@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--dx-yellow: #ffd200;--dx-yellow-deep: #eec400;--dx-yellow-tint: #fff8d6;--dx-yellow-line: #e8d47c;--dx-topbar: #1a1b1e;--dx-splash: #141518;--color-brand-50: var(--dx-yellow-tint);--color-brand-100: var(--dx-yellow-line);--color-brand-600: #1f2023;--color-brand-700: #000000;--color-brand-800: #000000;--color-canvas: #f2f2ef;--color-surface: #ffffff;--color-surface-subtle: #f7f7f4;--color-text: #202124;--color-text-soft: #45474d;--color-text-muted: #71747b;--color-border: #dedfd9;--color-border-strong: #c9cac2;--color-success: #157347;--color-success-bg: #e9f6ef;--color-warning: #8a5a12;--color-warning-bg: #fdf3dc;--color-danger: #b42318;--color-danger-bg: #fdefed;--color-info: #175cd3;--color-info-bg: #eff6ff;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 3px;--radius-md: 4px;--radius-lg: 6px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgb(16 24 40 / 5%);--shadow-md: 0 8px 24px rgb(16 24 40 / 12%);--shadow-focus: 0 0 0 3px rgb(255 210 0 / 35%);--font-xs: .72rem;--font-sm: .8125rem;--font-md: .875rem;--font-lg: 1rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--bg: var(--color-canvas);--panel: var(--color-surface);--ink: var(--color-text);--muted: var(--color-text-muted);--line: var(--color-border);--brand: var(--dx-yellow);--danger: var(--color-danger);font-family:Inter Variable,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--color-text);background:var(--color-canvas);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;background:var(--color-canvas)}body{margin:0;min-width:320px;min-height:100vh;background:var(--color-canvas);font-size:13.5px}button,input,select,textarea{font:inherit}a{color:var(--color-text);font-weight:600;text-decoration:underline;text-decoration-color:var(--dx-yellow);text-decoration-thickness:2px;text-underline-offset:.18em}a:hover{background:var(--dx-yellow-tint)}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:0;box-shadow:var(--shadow-focus)}.centered{min-height:100vh;display:grid;place-items:center;padding:var(--space-6);background:var(--dx-splash);color:#c6c8cd}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:50;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-6);min-height:52px;padding:0 max(var(--space-5),calc((100vw - 1400px)/2));background:var(--dx-topbar);color:#fff}.brand-lockup{display:flex;align-items:center;gap:var(--space-3);white-space:nowrap}.brand-logo{display:block;height:24px;width:auto}.nav{display:flex;min-width:0;align-items:center;gap:2px;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{position:relative;flex:0 0 auto;min-height:52px;display:inline-flex;align-items:center;padding:0 var(--space-3);color:#a9abb2;font-size:var(--font-sm);font-weight:600;text-decoration:none}.nav a:hover{background:none;color:#fff}.nav a.active{color:#fff}.nav a.active:after{position:absolute;right:var(--space-2);bottom:0;left:var(--space-2);height:3px;background:var(--dx-yellow);content:""}.user{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);font-size:var(--font-sm);white-space:nowrap}.user-identity{line-height:1.25;text-align:right;color:#fff}.user em{display:block;max-width:230px;overflow:hidden;color:#8f9299;font-size:var(--font-xs);font-style:normal;text-overflow:ellipsis}.topbar .btn-secondary{min-height:30px;border-color:#3a3b40;background:transparent;color:#c6c8cd}.topbar .btn-secondary:hover:not(:disabled){border-color:#55575e;background:transparent;color:#fff}.topbar .card{box-shadow:var(--shadow-md);color:var(--color-text)}.content{width:100%;max-width:1400px;margin:0 auto;padding:var(--space-5) var(--space-5) var(--space-10);flex:1}.footer{padding:var(--space-4);border-top:1px solid var(--color-border);color:var(--color-text-muted);font-size:var(--font-xs);text-align:center}.loadbar{position:absolute;right:0;bottom:0;left:0;height:2px;overflow:hidden;pointer-events:none}.loadbar span{display:block;height:100%;width:0;background:var(--dx-yellow);opacity:0}.loadbar-running span{width:82%;opacity:1;transition:width .9s cubic-bezier(.2,.6,.3,1),opacity 80ms ease}.loadbar-finishing span{width:100%;opacity:0;transition:width .18s ease,opacity .28s ease .14s}.loadbar-idle span{transition:none}.skeleton-table{margin:var(--space-4) 0;padding:var(--space-1) 0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.skeleton-row{height:22px;margin:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:linear-gradient(90deg,#efefe9 25%,#f8f8f3,#efefe9 65%);background-size:300% 100%;animation:shimmer 1.1s linear infinite}.skeleton-row.wide{height:30px}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}.route-fade{animation:route-in .18s ease}@keyframes route-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-4)}.page-header-copy{min-width:0}.eyebrow{margin:0;color:var(--color-text-muted);font-size:var(--font-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.page-subtitle{max-width:80ch;margin:var(--space-1) 0 0;color:var(--color-text-muted);font-size:var(--font-sm);line-height:1.5}.project-context{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}h1,h2,h3{color:var(--color-text);line-height:1.25}h1{margin:0;font-size:var(--font-xl);font-weight:700;letter-spacing:-.015em}h2{margin:0 0 var(--space-2);font-size:var(--font-md);font-weight:700;letter-spacing:-.005em}h3{margin:0 0 var(--space-2);font-size:var(--font-sm);font-weight:700}p{line-height:1.5}.muted{color:var(--color-text-muted)}.big{margin:var(--space-1) 0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.card{margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.card:hover{border-color:var(--color-border-strong)}.card-inset{background:var(--color-surface-subtle)}.card-danger{border-left:3px solid var(--color-danger)}.login{width:min(100%,390px);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);box-shadow:var(--shadow-md)}.login h1{display:flex;justify-content:center;margin:var(--space-2) 0 0}.login-logo{display:block;height:44px}.login label{display:flex;flex-direction:column;gap:var(--space-2);color:var(--color-text-soft);font-size:var(--font-sm);font-weight:600}.hint{color:var(--color-text-muted);font-size:var(--font-xs);line-height:1.5}button{min-height:32px;padding:.35rem var(--space-3);border:1px solid var(--dx-yellow-deep);border-radius:var(--radius-md);background:var(--dx-yellow);color:#17181b;cursor:pointer;font-size:var(--font-sm);font-weight:700;line-height:1.2;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform 80ms ease}button:hover:not(:disabled){background:#ffdb33}button:active:not(:disabled){transform:translateY(1px)}button:disabled,button[aria-busy=true]{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-secondary{border-color:var(--color-border-strong);background:var(--color-surface);color:var(--color-text-soft);font-weight:600}.btn-secondary:hover:not(:disabled){border-color:var(--color-text-muted);background:var(--color-surface);color:var(--color-text)}.btn-danger{border-color:#f2bcb6;background:var(--color-surface);color:var(--color-danger);font-weight:600}.btn-danger:hover:not(:disabled){border-color:var(--color-danger);background:var(--color-danger-bg)}.btn-link{color:var(--color-text);font-size:var(--font-sm);font-weight:650;text-decoration:underline;text-decoration-color:var(--dx-yellow);text-decoration-thickness:2px}button.btn-link{min-height:0;padding:0;border:none;background:none;box-shadow:none}button.btn-link:hover:not(:disabled){background:var(--dx-yellow-tint)}button.portal-project{display:block;border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;font-weight:500}button.portal-project:hover:not(:disabled){background:var(--dx-yellow-tint);border-color:var(--dx-yellow-line)}button.portal-project.tile-brand{border-color:var(--dx-yellow-line)}.button-spinner{display:inline-block;width:.9em;height:.9em;margin-right:var(--space-2);border:2px solid rgb(23 24 27 / 25%);border-top-color:currentColor;border-radius:50%;vertical-align:-.1em;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}input,select,textarea{width:100%;min-height:32px;padding:.35rem var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--font-sm);transition:border-color .14s ease,box-shadow .14s ease}input:hover,select:hover,textarea:hover{border-color:#a3a5a0}input:focus,select:focus,textarea:focus{border-color:var(--dx-yellow-deep);outline:0;box-shadow:var(--shadow-focus)}input:disabled,select:disabled,textarea:disabled,input[readonly]{background:#efefec;color:var(--color-text-muted);cursor:not-allowed}input[type=checkbox],input[type=radio]{width:15px;height:15px;min-height:0;flex:0 0 auto;margin:0;padding:0;accent-color:var(--dx-yellow-deep);cursor:pointer}input[type=file]{min-height:36px;padding:var(--space-1);color:var(--color-text-soft)}input[type=file]::file-selector-button{margin-right:var(--space-3);padding:var(--space-1) var(--space-3);border:1px solid var(--dx-yellow-deep);border-radius:var(--radius-sm);background:var(--dx-yellow);color:#17181b;font-weight:700;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:var(--space-3);margin-bottom:var(--space-3)}.form-grid .form-span-all{grid-column:1 / -1}.field{display:flex;min-width:0;flex-direction:column;gap:var(--space-1);color:var(--color-text-soft);font-size:var(--font-xs);font-weight:650}.field>span{line-height:1.35;text-transform:uppercase;letter-spacing:.03em}.field>span.field-hint{text-transform:none;letter-spacing:0;font-weight:500}.actions-row,.actions-cell{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.actions-row{margin:var(--space-3) 0}.reason-inline{display:inline-flex;max-width:100%;align-items:center;flex-wrap:wrap;gap:var(--space-2)}.reason-inline input{width:auto;min-width:min(260px,100%)}.toggle-panel{margin:var(--space-3) 0}.form-card{margin-top:var(--space-2);border-color:var(--dx-yellow-line);background:#fffdf2}.error,.inline-error{color:var(--color-danger);font-size:var(--font-sm);font-weight:600}.inline-error{margin:var(--space-3) 0;padding:var(--space-2) var(--space-3);border:1px solid #f2bcb6;border-radius:var(--radius-md);background:var(--color-danger-bg)}.empty-state{display:grid;min-height:80px;place-items:center;padding:var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-subtle);color:var(--color-text-muted);font-size:var(--font-sm);text-align:center}.empty-state strong{display:block;margin-bottom:var(--space-1);color:var(--color-text-soft)}.loading-state{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-sm)}.loading-logo{height:16px;width:auto;animation:logo-pulse 1.2s ease-in-out infinite}@keyframes logo-pulse{0%,to{opacity:1}50%{opacity:.35}}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--space-2);margin:var(--space-4) 0 var(--space-5)}.tile{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.tile-value{color:var(--color-text);font-size:1.25rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tile-label{margin-top:2px;color:var(--color-text-muted);font-size:.68rem;font-weight:650;letter-spacing:.04em;line-height:1.35;text-transform:uppercase}.tile-brand{border-color:var(--dx-yellow-line);background:linear-gradient(150deg,var(--color-surface) 55%,var(--dx-yellow-tint))}.queue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:var(--space-3);margin:var(--space-4) 0}.queue-card{min-width:0;margin:0;padding:0;overflow:hidden}.queue-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle)}.queue-header h2{margin:0;font-size:var(--font-sm);line-height:1.4}.queue-count{min-width:22px;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--dx-yellow);color:#17181b;font-size:var(--font-xs);font-weight:800;line-height:1.6;text-align:center}.queue-card .table{border:0;border-radius:0}.table-scroll{max-height:520px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.table-scroll .table{border:0;border-radius:0}.table{width:100%;border-spacing:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);border-collapse:separate;overflow:hidden}.table th,.table td{padding:.42rem var(--space-3);border-bottom:1px solid #ecece7;color:var(--color-text-soft);font-size:.78rem;line-height:1.35;text-align:left;vertical-align:top}.table th{position:sticky;top:0;z-index:2;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:#fbfaf0}.table a{font-weight:700}.table .num,.num{text-align:right;font-variant-numeric:tabular-nums}.table-toolbar{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2)}.table-toolbar input,.table-toolbar select{width:auto;min-height:28px;font-size:var(--font-xs)}.table-toolbar .count{color:var(--color-text-muted);font-size:var(--font-xs)}.table-toolbar .spacer{flex:1}.badge{display:inline-flex;align-items:center;padding:1px 7px;border:1px solid transparent;border-radius:var(--radius-sm);background:var(--color-surface-subtle);color:var(--color-text-soft);font-size:.64rem;font-weight:750;letter-spacing:.04em;line-height:1.6;text-transform:uppercase;white-space:nowrap}.badge-draft,.badge-pending,.badge-open,.badge-uploaded,.badge-captured,.badge-superseded,.badge-archived,.badge-inactive,.badge-cancelled{border-color:var(--color-border-strong);background:var(--color-surface-subtle);color:#5b5e66}.badge-submitted,.badge-ready_for_review,.badge-internally_approved,.badge-final_approved,.badge-issued,.badge-query_raised,.badge-returned,.badge-assigned,.badge-rectification_in_progress,.badge-submitted_for_closure,.badge-requested,.badge-release_approved,.badge-partially_received,.badge-reopened,.badge-on_hold,.badge-review,.badge-in_review{border-color:#ecd39a;background:var(--color-warning-bg);color:var(--color-warning)}.badge-approved,.badge-frozen,.badge-current,.badge-released,.badge-paid,.badge-matched,.badge-completed,.badge-closed,.badge-fully_received,.badge-verified_closed,.badge-empanelled,.badge-success{border-color:#abdcc2;background:var(--color-success-bg);color:var(--color-success)}.badge-rejected,.badge-failed,.badge-blocked,.badge-overdue,.badge-critical,.badge-danger{border-color:#f2bcb6;background:var(--color-danger-bg);color:var(--color-danger)}.badge-active,.badge-info{border-color:var(--dx-yellow-line);background:var(--dx-yellow-tint);color:#6b5600}.tabs{display:flex;gap:var(--space-1);margin:var(--space-4) 0 var(--space-4);padding:var(--space-1);overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);scrollbar-width:thin}.tab{flex:0 0 auto;min-height:30px;border:0;background:transparent;color:var(--color-text-muted);font-weight:600;text-transform:capitalize;box-shadow:none}.tab:hover:not(:disabled){background:var(--color-surface-subtle);color:var(--color-text);box-shadow:none}.tab.active{background:var(--dx-topbar);color:#fff}.progress-track{height:8px;overflow:hidden;border-radius:var(--radius-pill);background:#e6e6df}.progress-fill{height:100%;border-radius:inherit;background:var(--dx-yellow)}.progress-fill-complete{background:var(--color-success)}.ncr-overdue{border-left:3px solid var(--color-danger)}.photo-selected{outline:3px solid var(--dx-yellow);outline-offset:2px}.annotation-pin{background:var(--color-danger);color:#fff;box-shadow:0 0 0 2px #fff}@media (max-width: 900px){.topbar{grid-template-columns:auto 1fr;gap:var(--space-3);padding-inline:var(--space-4)}.nav{grid-column:1 / -1;grid-row:2;order:3;margin-inline:calc(var(--space-2) * -1)}.nav a{min-height:44px}.nav a.active:after{bottom:4px}.user{min-width:0}.user-identity{display:none}.content{padding:var(--space-5) var(--space-4) var(--space-10)}}@media (max-width: 600px){.brand-logo{height:20px}.content{padding:var(--space-4) var(--space-3) var(--space-8)}.page-header{display:block;margin-bottom:var(--space-4)}.card{margin:var(--space-3) 0;padding:var(--space-3)}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.queue-grid{grid-template-columns:1fr}.table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap}.table th{position:static}.actions-row>*,.actions-cell>*{max-width:100%}.reason-inline{width:100%}.reason-inline input{width:100%;min-width:0;flex:1 1 100%}.project-shell button,.project-shell input,.project-shell select,.project-shell input[type=file],.portal-app button,.portal-app input,.portal-app select{min-height:44px}.project-shell input[type=checkbox],.project-shell input[type=radio],.portal-app input[type=checkbox],.portal-app input[type=radio]{min-height:0;width:18px;height:18px}.portal-app button.btn-link{display:inline-flex;align-items:center}.topbar .btn-secondary,.portal-app .topbar .btn-secondary{min-height:44px}.project-shell .tab{min-height:44px;padding-inline:var(--space-4)}}@media (max-width: 390px){.topbar{padding-inline:var(--space-3)}.user button{min-width:0;padding-inline:var(--space-3)}.content{padding-inline:var(--space-3)}.tiles{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}.overflow-x-auto{overflow-x:auto}.text-xs{font-size:.75rem}.text-sm{font-size:.8rem}.text-2xs{font-size:.6875rem}.mt-2{margin-top:var(--space-2)}.mt-8{margin-top:var(--space-8)}.mb-2{margin-bottom:var(--space-2)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.m-0{margin:0}.stack-list{margin:var(--space-1) 0}.inset-section{margin-top:var(--space-2);padding:var(--space-3)}.inset-row{margin-bottom:var(--space-2);padding:var(--space-3)}.inset-row-compact{margin-bottom:6px;padding:10px}.inline-check{display:inline-flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}.block-check{display:flex;align-items:center;gap:8px;margin-top:var(--space-2);font-weight:500;cursor:pointer}.check-list-item{display:flex;align-items:flex-start;gap:8px;padding:var(--space-1) 0;font-weight:500;cursor:pointer;line-height:1.45}.check-list-item input[type=checkbox]{margin-top:2px}.flex-gallery{display:flex;flex-wrap:wrap;gap:var(--space-3)}.flex-gallery-tight{display:flex;flex-wrap:wrap;gap:var(--space-2)}.photo-thumb{width:170px}.photo-thumb img{width:100%;height:110px;border-radius:var(--radius-lg);object-fit:cover;cursor:pointer}.photo-figure{width:160px;margin:0}.photo-figure img{display:block;width:100%;border-radius:var(--radius-lg)}.responsive-image{display:block;max-width:min(320px,100%);border-radius:var(--radius-lg)}.chart{width:100%;max-width:700px}.progress-column{width:35%}.max-w-720{max-width:720px}.max-w-640{max-width:640px}.max-w-560{max-width:560px}.max-w-420{max-width:420px}.max-w-110{max-width:110px}.notification-wrap{position:relative}.notification-count{margin-left:var(--space-1)}.dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:60;width:min(340px,calc(100vw - 24px));max-height:420px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-md);color:var(--color-text)}.dropdown-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3);border-bottom:1px solid var(--color-border);background:var(--color-surface-subtle)}.dropdown-title{margin:0;font-size:var(--font-md)}.dropdown-empty{margin:0;padding:var(--space-4)}.dropdown-item{padding:var(--space-3);border-bottom:1px solid var(--color-border)}.dropdown-item:last-child{border-bottom:0}.dropdown-item-unread{background:var(--dx-yellow-tint)}.dropdown-item-read{opacity:.65}.dropdown-item-body{margin-top:2px;font-size:var(--font-xs)}.dropdown-item-meta{margin-top:var(--space-1);font-size:.6875rem}.annotation-figure{display:inline-block;margin-right:var(--space-3);vertical-align:top}.annotation-canvas{position:relative;display:inline-block}.annotation-image{display:block;border-radius:var(--radius-lg);cursor:crosshair}.annotation-pin{position:absolute;width:22px;height:22px;padding:0;transform:translate(-50%,-50%);border:0;border-radius:50%;font-size:11px}.annotation-notes{margin:var(--space-1) 0 0;padding-left:18px;font-size:12px}.toolbar-search{min-width:min(220px,100%)}.table-toolbar{flex-wrap:wrap}.table-toolbar .toggle-panel{margin:0}.filter-list{display:contents}.portal-project-title{font-size:var(--font-lg)}.badge-lead,.badge-enquiry,.badge-survey,.badge-estimation,.badge-tendered,.badge-negotiation,.badge-shared,.badge-viewed,.badge-commented,.badge-scheduled,.badge-in_progress,.badge-internal_review,.badge-under_negotiation,.badge-held,.badge-generated,.badge-revised,.badge-delayed,.badge-revision_issued{border-color:#ecd39a;background:var(--color-warning-bg);color:var(--color-warning)}.badge-achieved,.badge-confirmed,.badge-validated,.badge-valid,.badge-imported,.badge-posted,.badge-clean,.badge-reconciled,.badge-checked,.badge-certified,.badge-won,.badge-applied_to_project,.badge-refunded,.badge-client_approved,.badge-approved_for_boq,.badge-approved_for_tender{border-color:#abdcc2;background:var(--color-success-bg);color:var(--color-success)}.badge-lost,.badge-dropped,.badge-invalid,.badge-quarantined,.badge-forfeited,.badge-client_rejected{border-color:#f2bcb6;background:var(--color-danger-bg);color:var(--color-danger)}.badge-internally_closed{border-color:var(--color-border-strong);background:var(--color-surface-subtle);color:#5b5e66}@media (max-width: 600px){.table-toolbar>input,.table-toolbar>select{flex:1 1 150px;width:auto;min-width:0}.table-toolbar .spacer{display:none}.dropdown{position:fixed;top:58px;right:var(--space-3);left:var(--space-3);width:auto}}.btn-expander{min-width:26px;padding:2px 6px}.line-details-cell{background:var(--color-surface-subtle);padding:var(--space-3)}.line-details{display:grid;gap:var(--space-3)}.line-details section h3{margin:0 0 var(--space-2);font-size:13px}.line-details .table{background:var(--color-surface)}.worklog-nag{border:1px solid #f2d9a0;background:var(--color-warning-bg, #fdf6e3);padding:var(--space-2) var(--space-3);border-radius:4px;margin-bottom:var(--space-3)}.task-out-of-order{color:var(--color-danger);font-weight:600}.msg-layout{display:grid;grid-template-columns:minmax(240px,320px) 1fr;gap:var(--space-4);align-items:start}.msg-list{padding:var(--space-3);max-height:70vh;overflow-y:auto}.msg-list h2{font-size:var(--font-md);margin-bottom:var(--space-2)}.msg-list .stack-list{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-1)}.msg-thread-pick{display:grid;gap:2px;width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:none;text-align:left;font-weight:400}.msg-thread-pick:hover{background:var(--color-surface-subtle)}.msg-thread-active{border-color:var(--dx-yellow-line);background:var(--dx-yellow-tint)}.msg-thread-subject{font-weight:700;font-size:var(--font-sm)}.msg-unread-dot{display:inline-block;width:8px;height:8px;margin-right:var(--space-1);border-radius:50%;background:var(--dx-yellow-deep);vertical-align:middle}.msg-open{min-width:0}.msg-open-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.msg-stream{list-style:none;margin:var(--space-4) 0;padding:0;display:grid;gap:var(--space-3);max-height:50vh;overflow-y:auto}.msg-stream>li{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-subtle)}.msg-stream>li.msg-mine{border-color:var(--dx-yellow-line);background:var(--dx-yellow-tint)}.msg-meta{display:flex;gap:var(--space-2);align-items:baseline}.msg-body{margin-top:2px;white-space:pre-wrap;font-size:var(--font-sm)}.msg-task{margin-top:var(--space-2);display:grid;gap:var(--space-1)}@media (max-width: 900px){.msg-layout{grid-template-columns:1fr}.msg-list{max-height:40vh}}.kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:var(--space-3) var(--space-5);margin:var(--space-3) 0}.kv{min-width:0}.kv-label{display:block;margin-bottom:2px;color:var(--color-text-muted);font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.kv-value{color:var(--color-text);font-size:var(--font-sm);font-weight:500;line-height:1.45;overflow-wrap:anywhere}.kv-value.num{font-variant-numeric:tabular-nums}.approval-trail{list-style:none;margin:var(--space-3) 0;padding:0;display:grid;gap:var(--space-2)}.trail-step{position:relative;display:flex;align-items:baseline;gap:var(--space-2);padding-left:var(--space-5);font-size:var(--font-sm);line-height:1.45}.trail-step:before{content:"";position:absolute;left:5px;top:.32em;width:9px;height:9px;border-radius:50%;border:2px solid var(--color-border-strong);background:var(--color-surface)}.trail-step.done:before{border-color:var(--color-success);background:var(--color-success)}.trail-step.rejected:before{border-color:var(--color-danger);background:var(--color-danger)}.trail-step.waiting:before{border-color:var(--dx-yellow-deep);background:var(--dx-yellow)}.trail-step:not(:last-child):after{content:"";position:absolute;left:9px;top:1.1em;bottom:-.85em;width:1px;background:var(--color-border)}.trail-who{font-weight:650}.trail-when{color:var(--color-text-muted);font-size:var(--font-xs);font-variant-numeric:tabular-nums}.flow-steps{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0 var(--space-4)}.flow-step{display:inline-flex;align-items:center;gap:var(--space-2);padding:3px 12px 3px 4px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-soft);font-size:var(--font-xs);font-weight:650}.flow-step-num{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--color-surface-subtle);border:1px solid var(--color-border-strong);color:var(--color-text-muted);font-size:.62rem;font-weight:800}.flow-step.active{border-color:var(--dx-yellow-line);background:var(--dx-yellow-tint);color:var(--color-text)}.flow-step.active .flow-step-num{background:var(--dx-yellow);border-color:var(--dx-yellow-deep);color:#17181b}.flow-step.done .flow-step-num{background:var(--color-success);border-color:var(--color-success);color:#fff}.inline-warning{margin:var(--space-3) 0;padding:var(--space-2) var(--space-3);border:1px solid #ecd39a;border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning);font-size:var(--font-sm);font-weight:600;line-height:1.5}.major-panel{margin:var(--space-4) 0;padding:var(--space-5);border:1px solid var(--dx-yellow-deep);border-left:4px solid var(--dx-yellow);border-radius:var(--radius-md);background:linear-gradient(150deg,var(--color-surface) 70%,var(--dx-yellow-tint))}.major-panel h2{font-size:var(--font-lg)}.major-panel .form-grid{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr))}.form-panel{width:min(100%,760px);margin:var(--space-3) 0}.section-title{display:flex;align-items:center;gap:var(--space-2);margin:var(--space-5) 0 var(--space-2);color:var(--color-text-soft);font-size:var(--font-sm);font-weight:700;letter-spacing:.02em}.section-title:after{content:"";flex:1;height:1px;background:var(--color-border)}
