@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/build/assets/archivo-vietnamese-standard-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/build/assets/archivo-latin-ext-standard-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/build/assets/archivo-latin-standard-normal-DY7AcnAa.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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/build/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");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}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/build/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/build/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff");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{--surface: #ffffff;--sunk: #eef3f7;--line2: #cbd6df;--ink2: #3a5068;--ok: #25634c;--ok-soft: #e5f2eb;--warn: #805411;--warn-soft: #fbefd9;--bad: #a23535;--bad-soft: #fdeceb;--info: #2b5a85;--info-soft: #e6eef6;--font-ui: "Archivo Variable", "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}body{font-family:var(--font-ui);font-size:14px}h1,h2,h3{font-family:var(--font-ui)}.mono{font-family:var(--font-mono);font-size:.93em;letter-spacing:-.01em}table,.record-card dd,.summary-line strong,.stat strong,.finance-kpi>strong,.line-total strong{font-variant-numeric:tabular-nums}.sidebar{width:232px;padding:20px 12px 16px}.sidebar-logo{margin:0 6px 18px;padding:8px 14px;background:#fff;border-radius:8px}.sidebar-logo img{display:block;width:100%;max-height:92px;object-fit:contain}.nav-caption{font-size:10.5px;font-weight:650;letter-spacing:.14em;color:#8fa6bc;margin:16px 10px 6px}.nav-link{min-height:38px;padding:0 10px;margin:1px 0;border-radius:6px;font-size:13.5px;position:relative}.nav-link .icon{width:17px;height:17px}.nav-link small{font-family:var(--font-mono);font-size:10.5px}.nav-link.selected{background:#1f4163;font-weight:600}.nav-link.selected:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:2px;background:#6cc2b8}.sidebar-footer{padding-top:14px;border-top:1px solid #23415f}.main-shell{margin-left:232px}.topbar{height:56px;padding:0 28px;position:sticky;top:0;z-index:25}.breadcrumb,.account-name{font-size:13px}.content{max-width:1380px;padding:28px 28px 56px}.page-heading{margin-bottom:22px}h1{font-size:30px;font-weight:650;font-stretch:106%;letter-spacing:-.4px;line-height:1.1}.page-heading p{font-size:14px;margin-top:8px;max-width:680px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:.14em;margin-bottom:8px}.btn{min-height:36px;padding:0 14px;border-radius:6px;font-size:13px;font-weight:550}.btn.check-button{min-height:68px;font-size:15px}.btn.secondary{border-color:var(--line2)}.btn.small{min-height:30px;padding:0 10px;font-size:12px}.btn .icon{width:16px;height:16px}.record-action{min-height:32px;padding:0 6px;font-size:13px;font-weight:550;border-radius:5px}.record-action:hover{background:var(--sunk)}label{font-size:12px;font-weight:600;color:var(--ink2);margin-bottom:6px}fieldset.form-field{border:0;margin:0;padding:0;min-inline-size:0}.form-field legend,.field-label{display:block;padding:0;font-size:12px;font-weight:600;color:var(--ink2);margin-bottom:6px}input,select,textarea{min-height:40px;padding:8px 11px;border-radius:6px;font-size:14px;border-color:var(--line2)}textarea{min-height:80px}.filters label{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--muted)}.filters input,.filters select{min-height:36px;padding:6px 10px;font-size:13px}.field-hint{font-size:12px}.field-error{font-size:12.5px;font-weight:550}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:4px;font-size:12px;font-weight:550}.badge.green:before,.badge.amber:before,.badge.red:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.badge:has(.icon):before{display:none}.badge.green{background:var(--ok-soft);color:var(--ok)}.badge.amber{background:var(--warn-soft);color:var(--warn)}.badge.red{background:var(--bad-soft);color:var(--bad)}.detail-panel,.record-list,.stat,.finance-chart-panel,.attendance-picker{border-radius:8px}.purchase-line input,.purchase-line select{min-height:44px}.section-heading h2{font-size:17px}.tabs{gap:28px;margin-bottom:22px}.tabs a{font-size:14px;padding-bottom:10px}.tabs a.active{font-weight:600}.notice:not(.review-notice){border-radius:6px;padding:11px 14px;font-size:13.5px}.summary-line,.info-panel{border-radius:6px}.record-card h3{font-size:14.5px}.record-card p{font-size:12.5px;margin-top:3px}.record-card dt{font-size:11px}.record-card dd{font-size:13.5px}@media(min-width:601px){.page-heading{align-items:flex-end}.form-panel,.finance-kpi{border-radius:8px}.form-panel{padding:22px 24px}.record-card{padding:14px 18px;gap:16px}}@media(max-width:1200px){.sidebar{width:232px}.main-shell{margin-left:232px}.content{padding:24px 22px 48px}.topbar{padding:0 22px}}@media(max-width:900px){.main-shell{margin-left:0}}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:29;background:#0e223766}@media(min-width:901px){.sidebar-backdrop{display:none!important}}@media(max-width:600px){.content{padding:20px 16px 40px}.topbar{padding:0 14px}h1{font-size:25px}input,select,textarea,.btn,.btn.small,.record-action{min-height:44px}.btn.check-button{min-height:64px}}.data-table-wrap{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{background:var(--surface);text-align:left;font-size:11px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:11px 12px;border-bottom:1px solid var(--line2);white-space:nowrap}.data-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ink);overflow-wrap:break-word}.detail-panel h2,.detail-panel p,.detail-panel dd,.detail-panel li{overflow-wrap:anywhere}.detail-grid>div,.drawer-heading h2{min-width:0}.data-table th:first-child,.data-table td:first-child{padding-left:18px}.data-table th:last-child,.data-table td:last-child{padding-right:14px}.data-table tbody tr:last-child td{border-bottom:0}.data-table .num{text-align:right;white-space:nowrap}.data-table td>span{display:block}.data-table .cell-title{font-weight:600}@media(min-width:761px){.data-table .cell-title{overflow-wrap:anywhere;min-width:12ch}}.data-table .date,.data-table .mono{white-space:nowrap}.data-table .cell-sub{font-size:12px;color:var(--muted);margin-top:2px}.data-table .cell-wrap{max-width:360px;font-size:12.5px;color:var(--ink2)}.data-table .badge{display:inline-flex}.data-table .actions-col{width:1%;white-space:nowrap;text-align:right}.data-row.is-clickable{cursor:pointer}.data-row.is-clickable:hover td{background:var(--canvas)}.data-row.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.data-row.is-selected td{background:#eaf2f1}.data-row.is-selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.data-table-wrap .empty-state{border:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.form-panel.form-drawer{padding:0 28px 32px}.form-drawer .form-grid{grid-template-columns:minmax(0,1fr)}.form-drawer .purchase-line{grid-template-columns:repeat(2,minmax(0,1fr))}.form-drawer .purchase-line>div:first-child{grid-column:1 / -1}@media(max-width:600px){.form-panel.form-drawer{padding:0 18px 28px}}@media(min-width:1360px){body:has(.workspace.has-detail .drawer){overflow:auto}.workspace.has-detail{padding-right:492px}.workspace.has-detail .drawer-backdrop,.workspace.has-detail .data-table .actions-col,.workspace.has-detail .data-table .col-sec{display:none}.workspace.has-detail .detail-grid,.workspace.has-detail .journey-times,.workspace.has-detail .attendance-evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace.has-detail .detail-panel .form-grid{grid-template-columns:minmax(0,1fr)}.workspace.has-detail .detail-panel.drawer{top:56px;width:480px;border-radius:0;border-left:1px solid var(--line);box-shadow:-8px 0 24px #122b450f}}@media(min-width:1440px){.workspace.has-detail{padding-right:552px}.workspace.has-detail .detail-panel.drawer{width:540px}}@media(max-width:760px){.data-table-wrap{background:transparent;border:0}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-bottom:10px;padding:6px 0}.data-table td{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:start;border:0;padding:6px 14px!important;text-align:right;overflow-wrap:anywhere}.data-table td:before{content:attr(data-label);grid-row:1 / span 3;font-family:var(--font-ui);font-size:12px;letter-spacing:0;color:var(--muted);text-align:left;padding-top:1px}.data-table td>*{grid-column:2;justify-self:end}.data-table td>span{display:block}.data-table .actions-col{display:flex;width:100%;justify-content:flex-end;border-top:1px solid var(--line);margin-top:4px;padding-top:8px!important}.data-table .actions-col:before{content:none}.data-row.is-selected td:first-child{box-shadow:none}}.today{margin-bottom:36px}.today-heading{flex-wrap:wrap}.segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line2);border-radius:6px;overflow:hidden;background:var(--surface)}.segmented button{min-height:34px;padding:0 12px;border:0;border-right:1px solid var(--line);background:transparent;font:inherit;font-size:13px;color:var(--ink2);cursor:pointer}.segmented button:last-child{border-right:0}.segmented button span{margin-left:6px;font-variant-numeric:tabular-nums;opacity:.7}.segmented button[aria-pressed=true]{background:var(--navy);color:#fff}.ledger{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin:0 0 20px;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}.ledger>div{padding:12px 18px;border-right:1px solid var(--line)}.ledger>div:first-child{padding-left:0}.ledger>div:last-child{border-right:0}.ledger dt{font-size:12px}.ledger dt a{color:var(--muted)}.ledger dt a:hover{color:var(--accent)}.ledger dd{margin:4px 0 0;font-size:26px;font-weight:600;font-variant-numeric:tabular-nums}.inbox{background:var(--surface);border:1px solid var(--line);border-radius:8px}.inbox-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:14px 18px;border-bottom:1px solid var(--line)}.inbox-row:last-child{border-bottom:0}.inbox-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 10px 2px 0;vertical-align:middle}.tone-red{background:var(--bad)}.tone-amber{background:#c58a1d}.tone-blue{background:var(--info)}.inbox-text{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:2px}.inbox-text strong{font-size:14.5px;font-weight:600}.inbox-text>span{font-size:12.5px;color:var(--muted);padding-left:18px}.inbox-actions{display:flex;flex-wrap:wrap;gap:8px}.inbox-empty{padding:32px 18px;text-align:center;color:var(--muted)}.finance-title{font-size:22px;font-weight:650;letter-spacing:-.3px;margin:0}@media(max-width:600px){.ledger>div{padding-left:0;border-right:0;border-bottom:1px solid var(--line)}.ledger>div:last-child{border-bottom:0}}.next-step{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:18px;padding:14px 16px;border-radius:6px;background:var(--ok-soft);color:var(--ok);font-size:13.5px}.next-step>div{flex:1 1 240px}.stock-figure{display:flex;align-items:baseline;gap:10px;margin:6px 0 4px}.stock-figure strong{font-family:var(--font-mono);font-size:32px;font-weight:600;letter-spacing:-.5px}.stock-figure span{color:var(--muted)}.mini-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}.mini-row small{display:block;font-size:12px;color:var(--muted)}.sale-inline{margin:0 0 18px}.sale-fields{display:flex;flex-wrap:wrap;gap:8px}.sale-fields input{width:150px;background:#fff}@media(min-width:761px){.data-table .select-col{width:1%;padding-right:0}}@media(max-width:760px){.data-table td.select-col:empty{display:none}}.data-table .select-col input{width:18px;height:18px;min-height:0;accent-color:var(--accent)}.bulk-bar{position:sticky;top:56px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:14px;padding:10px 14px;border-radius:6px;background:var(--navy);color:#fff;font-size:13.5px}.bulk-bar span{flex:1 1 200px}.bulk-bar .btn.secondary{background:transparent;color:#fff;border-color:#fff6}.settings-preview{margin-top:18px;padding:14px 16px;border-radius:6px;background:var(--canvas);font-size:13.5px;line-height:1.6}.settings-preview p{margin:0}.today{padding:26px;border:1px solid #dce6ef;border-radius:20px;background:linear-gradient(125deg,#edf5fc,#f7f5ff 55%,#effaf6)}.today .today-heading{gap:20px;margin-bottom:24px}.today .eyebrow{color:#43648b}.today h1{font-size:38px;letter-spacing:-1.3px}.today .segmented{gap:6px;padding:6px;border:1px solid #dde5ee;border-radius:14px;background:#ffffffc9}.today .segmented button{border:0;border-radius:9px;min-height:38px;font-weight:600}.today .segmented button span{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 5px;border-radius:7px;background:#e9eef5;color:#334c69;opacity:1}.today .segmented button[aria-pressed=true]{background:#284f88;box-shadow:0 3px 8px #284f8825}.today .segmented button[aria-pressed=true] span{background:#ffffff29;color:#fff}.today .segmented .area-compras[aria-pressed=true]{background:#245daf}.today .segmented .area-asistencia[aria-pressed=true]{background:#7250ac}.today .segmented .area-proyectos[aria-pressed=true]{background:#147665}.today .segmented .area-ventas[aria-pressed=true]{background:#a25b10}.today .ledger{gap:14px;border:0;grid-template-columns:repeat(4,minmax(0,1fr))}.today .ledger>.today-card{--card-color: #245daf;--card-soft: #e5efff;position:relative;padding:18px;border:1px solid #ffffff;border-top:4px solid var(--card-color);border-radius:13px;background:#fff;box-shadow:0 5px 16px #223b5910;transition:transform .15s,box-shadow .15s}.today .ledger>.today-card:hover{transform:translateY(-3px);box-shadow:0 9px 22px #223b591c}.today .ledger>.today-card-overdue{--card-color: #a45216;--card-soft: #fff0df}.today .ledger>.today-card-reviews{--card-color: #7250ac;--card-soft: #f0e9fc}.today .ledger>.today-card-missing{--card-color: #147665;--card-soft: #e0f5ed}.today .today-card dt a{display:flex;align-items:center;gap:10px;color:#34445b;font-weight:600;line-height:1.45}.today-card dt a:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:13px}.today .today-card-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border-radius:11px;background:var(--card-soft);color:var(--card-color)}.today-card-arrow{margin-left:auto;color:var(--card-color)}.today .ledger dd{display:flex;align-items:baseline;gap:12px;margin-top:18px;color:var(--card-color);font-size:40px;line-height:1.1}.today .ledger dd small{font-size:11px;font-weight:500;color:#627086}.today .inbox{overflow:hidden;border-color:#dfe6ef;border-radius:13px}.today .inbox-row{padding:16px 18px}@media(max-width:1100px){.today .ledger{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.today{padding:16px;border-radius:14px}.today h1{font-size:30px}.today .segmented{width:100%}.today .segmented button{flex:1 1 auto;padding:0 8px}.today .ledger{gap:10px}.today .ledger>.today-card{padding:14px}.today .today-card dt a{flex-wrap:wrap;font-size:11px}.today .today-card-icon{flex-basis:30px;height:30px}.today-card-arrow{display:none}.today .ledger dd{flex-wrap:wrap;font-size:32px;gap:5px}}@media(prefers-reduced-motion:reduce){.today .ledger>.today-card{transition:none}.today .ledger>.today-card:hover{transform:none}}.finance-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.followup .ledger{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:0}@media(max-width:1200px){.finance-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.finance-kpis{grid-template-columns:minmax(0,1fr)}}.manual-reader{--manual-accent: var(--accent);--manual-line: var(--line);--manual-muted: var(--muted);background:var(--canvas);margin:-28px -28px -56px;min-height:calc(100vh - 110px);padding:0 34px 40px;color:var(--ink)}.manual-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px;padding:12px 0;border-bottom:1px solid var(--manual-line);color:var(--muted);background:#fff;margin:0 -34px;padding-inline:34px}.manual-toolbar strong{color:var(--ink);font-weight:600}.manual-reader-search{display:flex;align-items:center;gap:10px;width:min(500px,55%);background:var(--canvas);border:1px solid var(--manual-line);border-radius:8px;padding:0 14px}.manual-reader-search .icon{flex-shrink:0;width:18px;color:var(--muted)}.manual-reader-search input{border:0;box-shadow:none;background:transparent;min-width:0;width:100%;padding:12px 0;font-size:13px}.manual-reader-search:focus-within{outline:2px solid var(--manual-accent);outline-offset:2px}.manual-reader-search input:focus-visible{outline:none}.manual-reader-heading{padding:32px 0 30px}.manual-reader-heading .eyebrow{color:var(--manual-accent);margin-bottom:10px}.manual-reader-heading h1{font-size:34px;letter-spacing:-.8px;margin:0 0 12px}.manual-reader-heading p{color:var(--manual-muted);font-size:14px;line-height:1.6}.manual-reader-layout{display:grid;grid-template-columns:225px minmax(0,1fr);gap:28px;align-items:start}.manual-module-nav{display:flex;flex-direction:column;gap:3px;position:sticky;top:78px;max-height:calc(100vh - 105px);overflow-y:auto;padding:0 3px 12px 0}.manual-module-nav button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:15px 12px;border:0;border-left:3px solid transparent;border-radius:7px;background:transparent;color:var(--ink2);text-align:left;cursor:pointer;font:inherit;font-size:13px;line-height:1.4}.manual-module-nav button:hover{background:var(--sunk)}.manual-module-nav button.is-active{background:#fff;border-left-color:var(--manual-accent);color:var(--ink);font-weight:650}.manual-module-nav small{font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap}.manual-reader-content{min-width:0}.manual-module-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.manual-module-heading h2{font-size:26px;font-weight:650;letter-spacing:-.5px;margin:0}.manual-reader .btn.secondary{border-color:var(--line2);background:#fff;color:var(--ink)}.manual-watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:20px;align-items:start}.manual-watch-main{min-width:0}.manual-player{background:var(--navy);border-radius:10px;overflow:hidden}.manual-player-caption{padding:15px 18px;color:#b6d0e4;font-size:11px;line-height:1.6}.manual-video-stage{position:relative}.manual-video-stage video{display:block;width:100%;aspect-ratio:1536 / 900;background:var(--navy);object-fit:contain}.manual-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:66px;height:66px;padding:20px;border:0;border-radius:50%;background:var(--manual-accent);color:#fff;box-shadow:0 4px 20px #172f4640;cursor:pointer}.manual-play:hover{background:#155c59}.manual-play svg{width:26px;height:26px}.manual-video-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:11px;color:var(--manual-muted)}.manual-video-footer a{display:inline-flex;align-items:center;gap:6px;color:var(--ink2)}.manual-video-footer .icon{width:14px;height:14px}.manual-chapters{background:#fff;border:1px solid var(--manual-line);border-radius:9px;overflow:hidden}.manual-chapters h3{margin:0;padding:18px;font-size:16px;border-bottom:1px solid var(--manual-line)}.manual-chapters ol{list-style:none;margin:0;padding:0}.manual-chapters li+li{border-top:1px solid var(--manual-line)}.manual-chapters button{display:grid;grid-template-columns:39px minmax(0,1fr);gap:10px;align-items:baseline;text-align:left;width:100%;padding:14px 13px;border:0;background:#fff;color:var(--ink);font:inherit;font-size:12px;line-height:1.6;cursor:pointer}.manual-chapters button:hover{background:var(--canvas)}.manual-chapters button.is-active{background:#e5f2f1;box-shadow:inset 3px 0 var(--manual-accent)}.manual-chapters time{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.manual-written-guide{margin-top:20px;padding:24px;background:#fff;border:1px solid var(--manual-line);border-radius:10px}.manual-written-guide h3{margin:0 0 18px;text-transform:uppercase;font-size:11px;font-weight:650;letter-spacing:1.5px;color:var(--muted)}.manual-written-guide ol{margin:0;padding-left:21px}.manual-written-guide li{padding-left:3px;margin-bottom:14px;font-size:13px;line-height:1.8}.manual-written-guide li:last-child{margin-bottom:0}.manual-video-notice{font-size:11px;color:var(--muted);line-height:1.7;margin-top:14px}.manual-no-results{padding:60px 24px;text-align:center;background:#fff;border:1px solid var(--manual-line);border-radius:10px}.manual-no-results p{margin:12px 0 20px}@media(max-width:1450px){.manual-reader-layout{grid-template-columns:190px minmax(0,1fr);gap:22px}.manual-watch-layout{grid-template-columns:minmax(0,1fr) 230px;gap:16px}}@media(max-width:1150px){.manual-watch-layout{grid-template-columns:minmax(0,1fr)}.manual-module-heading h2{font-size:23px}.manual-chapters button{grid-template-columns:44px minmax(0,1fr)}}@media(max-width:1200px){.manual-reader{margin:-24px -22px -48px}}@media(max-width:760px){.manual-reader{margin:-20px -16px -40px;padding:0 18px 30px}.manual-toolbar{margin:0 -18px;padding:12px 18px;flex-wrap:wrap;gap:12px}.manual-reader-search{width:100%}.manual-reader-heading{padding:24px 0}.manual-reader-heading h1{font-size:28px}.manual-reader-layout{grid-template-columns:minmax(0,1fr);gap:20px}.manual-module-nav{position:static;flex-direction:row;overflow-x:auto;max-height:none;padding:0 0 8px}.manual-module-nav button{width:auto;flex:0 0 auto;border-left:0;border-bottom:3px solid transparent;padding:12px}.manual-module-nav button.is-active{border-bottom-color:var(--manual-accent)}.manual-module-heading{align-items:start}.manual-module-heading h2{font-size:22px}.manual-module-heading .btn{white-space:nowrap}.manual-written-guide{padding:20px}.manual-play{width:54px;height:54px;padding:14px}}.docs-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.docs-count{font-size:12px;color:var(--muted);white-space:nowrap}.project-docs>.field-hint{margin:4px 0 12px}.doc-list{display:grid;gap:10px}.doc-card{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:14px 16px}.doc-card.is-empty{border-style:dashed;background:var(--canvas)}.doc-card-head{display:flex;align-items:flex-start;gap:12px}.doc-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;background:#e6f0ef;color:var(--accent);flex:none}.doc-icon .icon{width:18px;height:18px}.doc-card.is-empty .doc-icon{background:var(--surface);color:var(--muted)}.doc-title{flex:1;min-width:0}.doc-title h4{margin:0;font-size:14px;font-weight:650;line-height:34px}.doc-title p{font-size:12.5px;color:var(--muted);margin-top:-4px}.doc-card-head .badge{margin-top:6px;flex:none}.doc-note{margin:12px 0 0 46px;padding:10px 12px;border-left:3px solid #c3d7da;background:var(--canvas);border-radius:0 6px 6px 0;font-size:13px;white-space:pre-line;overflow-wrap:anywhere}.doc-note-form{margin:12px 0 0 46px}.doc-note-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.doc-note-actions .field-hint{flex:1 1 200px;margin:0}.doc-files{list-style:none;margin:10px 0 0 46px;padding:0;border-top:1px solid var(--line)}.doc-files li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.doc-file-icon{width:18px;height:18px;color:var(--muted)}.doc-file-text{flex:1;min-width:0}.doc-file-text a{display:block;font-size:13px;font-weight:550;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-file-text a:hover{color:var(--accent);text-decoration:underline}.doc-file-text small{display:block;font-size:11.5px;color:var(--muted)}.doc-files .icon-button{display:inline-grid;place-items:center;min-width:36px;min-height:36px}.doc-remove:hover{color:var(--bad);background:var(--bad-soft)}.doc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0 0 46px}.doc-upload{cursor:pointer;margin:0}.doc-upload:focus-within{outline:2px solid var(--accent);outline-offset:2px}.doc-upload.is-busy{opacity:.55;pointer-events:none}.doc-progress{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.doc-progress-bar{width:90px;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.doc-progress-bar>span{display:block;height:100%;background:var(--accent);transition:width .15s}.project-docs .field-error{margin-left:46px}@media(max-width:600px){.doc-note,.doc-note-form,.doc-files,.doc-actions,.project-docs .field-error{margin-left:0}.doc-actions .btn{flex:1 1 140px}}.site-rules-card{border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:10px}.site-rules-card summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none;min-height:56px}.site-rules-card summary::-webkit-details-marker{display:none}.site-rules-card summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:10px}.site-rules-title{flex:1;min-width:0}.site-rules-title strong{display:block;font-size:15px}.site-rules-title small{display:block;font-size:12px;color:var(--accent);font-weight:600}.site-rules-chevron{width:18px;height:18px;color:var(--muted);transform:rotate(90deg);transition:transform .15s}.site-rules-card[open] .site-rules-chevron{transform:rotate(-90deg)}.site-rules-card .site-rules-text{margin:0 16px 14px;font-size:14.5px;line-height:1.6}.site-rules-files{list-style:none;margin:0 16px 14px;padding:0;display:grid;gap:8px}.site-rules-files a{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;border:1px solid var(--line2);border-radius:8px;color:var(--ink);font-size:14px;font-weight:550}.site-rules-files a:hover{border-color:var(--accent);color:var(--accent)}.site-rules-files a>span{flex:1;min-width:0;overflow-wrap:anywhere}.site-rules-files small{display:block;font-size:12px;font-weight:400;color:var(--muted)}.doc-audience{display:flex;align-items:center;gap:6px;color:var(--accent)!important;font-weight:550}.doc-audience .icon{width:14px;height:14px}.form-drawer .form-grid:has(.form-field.half){grid-template-columns:repeat(2,minmax(0,1fr))}.form-drawer .form-grid:has(.form-field.half)>.form-field:not(.half){grid-column:1 / -1}.quote-lines-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.quote-lines-heading .segmented label{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;margin:0;font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer}.quote-lines-heading .segmented label.is-active{background:var(--accent);color:#fff}.quote-lines-heading .segmented label:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.form-drawer .purchase-line.quote-line{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end}.form-drawer .purchase-line.quote-line>.quote-product{grid-column:1 / -1}.quote-product .field-hint{margin-top:4px}.quote-line-discount{grid-column:1 / -1}.form-drawer .purchase-line.quote-line.quote-section{grid-template-columns:minmax(0,1fr) auto}.form-drawer .purchase-line.quote-line.quote-section>.quote-product{grid-column:auto}.quote-section-title{margin:14px 0 4px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink2)}.quote-add-lines{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.discount-add,.discount-link{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.discount-add .icon{width:14px;height:14px}.discount-add:hover,.discount-link:hover{text-decoration:underline}.discount-link.danger{color:var(--bad)}.discount-applied{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}.discount-chip{display:inline-flex;align-items:center;gap:2px;padding:3px 8px;border-radius:4px;background:var(--ok-soft);color:var(--ok);font-size:12px;font-weight:600;max-width:100%;overflow-wrap:anywhere}.discount-amount{font-size:13px;color:var(--ok);font-variant-numeric:tabular-nums}.discount-editor{display:grid;grid-template-columns:auto minmax(0,140px) minmax(0,1fr);gap:8px;align-items:center;margin-top:6px;padding:10px 12px;border:1px solid var(--line2);border-radius:8px;background:var(--canvas)}.discount-editor .segmented label{display:inline-flex;align-items:center;min-height:36px;padding:0 10px;margin:0;font-size:12px;font-weight:600;color:var(--ink2);cursor:pointer}.discount-editor .segmented label.is-active{background:var(--accent);color:#fff}.discount-editor .segmented label:focus-within{outline:2px solid var(--accent);outline-offset:-2px}.discount-value{display:flex;align-items:center;border:1px solid var(--line2);border-radius:6px;background:var(--surface)}.discount-value:focus-within{border-color:var(--accent);outline:2px solid #b8d9d6;outline-offset:1px}.discount-value input{border:0;outline:0;min-height:36px;padding:0 8px;text-align:right;font-variant-numeric:tabular-nums;background:transparent}.discount-value input:focus{outline:0}.discount-value .affix{padding:0 8px;color:var(--muted);font-size:13px}.discount-reason input{min-height:36px}.discount-actions{grid-column:1 / -1;display:flex;align-items:center;gap:14px}.discount-hint{grid-column:1 / -1;font-size:11.5px;color:var(--muted);margin:0}.discount-editor .field-error{grid-column:1 / -1;margin:0}.line-total .line-gross{display:block;font-size:12px;color:var(--muted);font-weight:400}.quote-summary{margin:18px 0 0;padding:14px 16px;border-radius:8px;background:#eaf2f1}.quote-summary>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0}.quote-summary dt{font-size:13px;color:var(--ink2)}.quote-summary dd{margin:0;font-size:13.5px;font-variant-numeric:tabular-nums}.quote-summary .quote-summary-discount{display:block}.quote-summary .quote-summary-discount .discount-applied{justify-content:space-between}.quote-summary-freight .discount-value{width:160px}.quote-summary-freight .discount-value input{width:100%;min-width:0}.quote-summary-total{margin-top:6px;padding-top:10px!important;border-top:1px solid #c9dedb}.quote-summary-total dt{font-weight:650;color:var(--ink)}.quote-summary-total dd{font-size:20px;font-weight:700;color:var(--accent)}.quote-savings{margin:8px 2px 0;font-size:12.5px;color:var(--ok);font-weight:600}@media(max-width:600px){.discount-editor{grid-template-columns:auto minmax(0,1fr)}.discount-reason{grid-column:1 / -1}}.discount-detail{color:var(--ok)!important;font-weight:600}.discount-chip.is-invalid{background:var(--bad-soft);color:var(--bad);text-decoration:line-through}.discount-error{margin:4px 0 0}.app-dialog{position:fixed;top:0;right:0;bottom:0;left:0;margin:auto;height:fit-content;max-height:calc(100dvh - 32px);overflow:auto;width:min(440px,calc(100vw - 32px));padding:0;border:0;border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #0e223747}.app-dialog::backdrop{background:#0e223773}.app-dialog[open]{animation:app-dialog-in .16s ease-out}@keyframes app-dialog-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.app-dialog[open]{animation:none}}.app-dialog-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px 16px;padding:22px 22px 18px;margin:0}.app-dialog-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#e6f0ef;color:var(--accent)}.app-dialog-icon svg{width:20px;height:20px}.app-dialog[data-tone=danger] .app-dialog-icon{background:var(--bad-soft);color:var(--bad)}.app-dialog[data-tone=warning] .app-dialog-icon{background:var(--warn-soft);color:var(--warn)}.app-dialog-text h2{font-size:16px;font-weight:650;line-height:1.35;margin:8px 0 0}.app-dialog-text p{margin-top:6px;font-size:13.5px;color:var(--ink2);line-height:1.5;overflow-wrap:anywhere;white-space:pre-line}.app-dialog-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.app-dialog-actions [hidden]{display:none}.btn.danger{color:#fff;background:var(--bad)}.btn.danger:hover{background:#872b2b}@media(max-width:600px){.app-dialog{width:100vw;max-width:100vw;margin:auto 0 0;border-radius:14px 14px 0 0}.app-dialog-card{padding:20px 18px calc(18px + env(safe-area-inset-bottom))}.app-dialog-actions{flex-direction:column-reverse}.app-dialog-actions .btn{width:100%;min-height:48px}}.project-quick-action{display:inline-flex;align-items:center;min-height:32px;padding:5px 9px;margin:3px 2px;border-radius:5px;font-size:12px;font-weight:600}.project-purchase{background:var(--info-soft);color:var(--info)}.project-purchase:hover{background:#d1e2f1}.project-expense{background:var(--ok-soft);color:var(--ok)}.project-expense:hover{background:#cee8da}@media(max-width:600px){.data-table .actions-col{flex-wrap:wrap}.project-quick-action{min-height:44px}}.data-table .data-row.purchase-overdue td{background:var(--bad-soft)}.data-table .data-row.purchase-overdue td:first-child{box-shadow:inset 3px 0 0 var(--bad)}.data-table .data-row.purchase-overdue .cell-title,.data-table .data-row.purchase-overdue .date{color:var(--bad);font-weight:600}.data-table .data-row.purchase-overdue:hover td,.data-table .data-row.purchase-overdue.is-selected td{background:#f9dedd}.project-stages{list-style:none;display:flex;gap:10px;padding:0;margin:20px 0;counter-reset:stage}.project-stages li{flex:1;padding:13px 10px;border-top:3px solid var(--line);color:var(--muted);font-size:12px}.project-stages li.current{border-color:var(--accent);color:var(--ink);font-weight:600;background:#edf5f2}.project-stages small{display:block;margin-bottom:7px;font-family:monospace}.incident-card{border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:16px;background:#fff}.incident-card>small{color:var(--muted)}.incident-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.incident-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px;margin-top:12px}.incident-media img,.incident-media video{display:block;width:100%;max-height:400px;border-radius:8px;object-fit:contain;background:#f3f5f4}.client-tracking{background:#f3f5f2;color:#203a35;margin:0}.client-header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px max(6vw,20px);background:#fff;border-bottom:1px solid #dce3dd}.client-header img{width:150px;height:auto}.client-header>span{font-size:11px;letter-spacing:.14em;color:#63746b;text-align:right}.client-content{width:min(100% - 40px,980px);margin:auto}.client-hero{padding:56px 0 34px}.client-hero h1{font-size:clamp(30px,5vw,48px);line-height:1.13;margin:12px 0 18px;overflow-wrap:anywhere}.client-stage-label{display:inline-block;border-radius:20px;background:#dae9df;color:#244f3a;font-size:13px;padding:9px 16px;margin-top:16px;font-weight:600}.client-panel{background:#fff;border:1px solid #dce3dd;border-radius:16px;padding:clamp(20px,4vw,32px);margin-bottom:24px}.client-panel h2{font-size:23px;margin:8px 0 22px}.client-panel p{line-height:1.7}.client-section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.client-section-heading>span{font-size:12px;color:#63746b;white-space:nowrap}.client-empty{padding:30px 20px;background:#f6f8f5;border-radius:10px;line-height:1.7;color:#63746b}.client-documents+.client-documents{margin-top:28px;border-top:1px solid #dce3dd;padding-top:16px}.client-file{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid #e8ece8;color:#244f3a;text-decoration:none;font-size:14px}.client-file span{overflow-wrap:anywhere}.client-file strong{white-space:nowrap;font-size:12px}.client-file:hover{text-decoration:underline}.client-footer{padding:20px 0 40px;display:flex;justify-content:space-between;gap:16px;color:#63746b;font-size:11px;letter-spacing:.08em}@media(max-width:550px){.project-stages{flex-direction:column}.project-stages li{border-top:0;border-left:3px solid var(--line)}.client-header img{width:110px}.client-header>span{font-size:9px}.client-footer{flex-direction:column}}.installation-schedule{background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px}.schedule-toolbar{display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-bottom:20px}.schedule-toolbar label{display:block;font-weight:600;font-size:12px;margin-bottom:6px}.schedule-worker-picker{flex:1;min-width:220px;max-width:440px}.schedule-worker-picker select{width:100%}.schedule-month-picker{display:flex;align-items:end;gap:10px}.schedule-month-picker .icon-button{border:1px solid var(--line);margin-bottom:2px}.schedule-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin:24px 0 16px}.schedule-summary strong{font-size:22px;text-transform:capitalize}.schedule-summary>span{color:var(--muted);font-size:12px}.schedule-calendar-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:10px}.schedule-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));min-width:640px}.schedule-weekday{padding:12px 6px;text-align:center;background:#f4f7f6;font-size:11px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}.schedule-day{min-height:125px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;background:#fff}.schedule-day:nth-child(7n){border-right:0}.schedule-day.outside-month{background:#f7f8f8;color:#a2aba8}.schedule-day.selected-worker-day{background:#e9f5ef;box-shadow:inset 0 0 0 2px #398069}.schedule-day.schedule-today .schedule-day-button>span:first-child{border-radius:50%;background:#173c34;color:#fff}.schedule-day-button{min-height:44px;border:0;background:transparent;width:100%;padding:3px;display:flex;align-items:center;justify-content:space-between;color:inherit;font:inherit;font-weight:600;text-align:left}.schedule-day-button>span:first-child{display:inline-grid;place-items:center;width:28px;height:28px}.schedule-day-button:disabled{opacity:1;cursor:default}.schedule-day-button:not(:disabled):hover{background:#dbeae5;border-radius:6px}.schedule-check{color:#27684f;padding-right:4px}.schedule-add{color:#7f9690;padding-right:4px}.schedule-day-team{display:flex;flex-direction:column;gap:4px;margin-top:6px}.schedule-person{display:inline-block;padding:5px 7px;border-radius:5px;border:0;font-family:inherit;font-size:11px;line-height:1.35;overflow-wrap:anywhere;text-align:left}.schedule-color-0{background:#dcebf7;color:#244b70}.schedule-color-1{background:#ece1f8;color:#62437e}.schedule-color-2{background:#f9e6ce;color:#795121}.schedule-color-3{background:#d5ede7;color:#225e51}.schedule-color-4{background:#f5dfe7;color:#7e3c54}.schedule-color-5{background:#e5ebc9;color:#52622b}.schedule-overlap{margin-top:7px;color:#8a5613;font-size:10px;line-height:1.4;overflow-wrap:anywhere}.schedule-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:22px 0}.schedule-legend h3{flex-basis:100%;margin-bottom:2px}.schedule-legend button:hover{outline:2px solid var(--accent);outline-offset:2px}.schedule-mobile-hint{display:none;margin-top:8px}.installation-schedule>.field-hint{margin-bottom:8px}@media(max-width:760px){.installation-schedule{padding:14px}.schedule-mobile-hint{display:block}.schedule-worker-picker{max-width:none}.schedule-month-picker{width:100%;justify-content:space-between}.schedule-day{min-height:110px}}.projects-table .data-table{table-layout:fixed}.projects-table .data-table th,.projects-table .data-table td{white-space:normal;overflow-wrap:anywhere;padding:20px 8px}.projects-table .data-table th{padding-top:14px;padding-bottom:14px}.projects-table .data-table th:nth-child(1){width:14%}.projects-table .data-table th:nth-child(2),.projects-table .data-table th:nth-child(3){width:9%}.projects-table .data-table th:nth-child(4),.projects-table .data-table th:nth-child(5){width:8%}.projects-table .data-table th:nth-child(6){width:10%}.projects-table .data-table th:nth-child(7){width:14%}.projects-table .data-table th.actions-col{width:28%}.projects-table .data-table .cell-title{min-width:0}.projects-table .data-table .mono{white-space:normal}.projects-table .data-table .num{white-space:normal;font-size:12px}.projects-table .data-table .badge{height:auto;min-height:24px;padding:5px 8px;white-space:normal;line-height:1.4}.projects-table .data-table .actions-col{white-space:normal}.project-row-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%}.project-row-actions>a,.project-row-actions>button{display:inline-flex;justify-content:center;align-items:center;width:100%;min-width:0;min-height:44px;padding:9px 8px;margin:0;border:1px solid transparent;border-radius:7px;font-size:11px;font-weight:600;line-height:1.4;white-space:normal;text-align:center;overflow-wrap:anywhere}.project-row-actions .project-purchase{background:#e1ecfc;color:#234d88;border-color:#c9dcf6}.project-row-actions .project-expense{background:#e0f1e3;color:#2c653a;border-color:#c8e6ce}.project-row-actions .project-followup{background:#dcf1f0;color:#1b605e;border-color:#bedfdd}.project-row-actions .project-schedule{background:#eee4fa;color:#65408a;border-color:#decdf1}.project-row-actions .project-client{background:#fff0d5;color:#805414;border-color:#efdcb6}.project-row-actions .project-edit{background:#e9edf3;color:#43566c;border-color:#d4dde7}.project-row-actions>a:hover,.project-row-actions>button:hover{filter:brightness(.95)}.project-row-actions>a:focus-visible,.project-row-actions>button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:1100px){.projects-table{background:transparent;border:0}.projects-table .data-table thead{display:none}.projects-table .data-table,.projects-table .data-table tbody{display:block;width:100%}.projects-table .data-table .data-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:14px}.projects-table .data-table td{display:block;width:auto;border:0;padding:10px!important;text-align:left}.projects-table .data-table td:before{content:attr(data-label);display:block;color:var(--muted);font-size:11px;font-weight:600;margin-bottom:5px}.projects-table .data-table td>*{justify-self:start}.projects-table .data-table td:first-child,.projects-table .data-table td.actions-col{grid-column:1 / -1}.projects-table .data-table td.actions-col{display:block;border-top:1px solid var(--line);margin-top:8px;padding-top:16px!important}.projects-table .data-table td.actions-col:before{display:none}.project-row-actions>a,.project-row-actions>button{font-size:12px}}@media(min-width:1360px){.workspace.has-detail .projects-table .data-table,.workspace.has-detail .projects-table .data-table tbody{display:block}.workspace.has-detail .projects-table .data-table thead{display:none}.workspace.has-detail .projects-table .data-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line);padding:12px}.workspace.has-detail .projects-table .data-table td{display:block;border:0;width:auto;padding:8px!important;text-align:left}.workspace.has-detail .projects-table .data-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.workspace.has-detail .projects-table .data-table td:first-child,.workspace.has-detail .projects-table .data-table td.actions-col{grid-column:1 / -1}.workspace.has-detail .projects-table .data-table td.actions-col:before{display:none}}body:has(.installation-calendar-overlay){overflow:hidden}.installation-calendar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:24px;background:#0e223766}.installation-calendar-modal{display:flex;flex-direction:column;width:min(1120px,100%);max-height:calc(100dvh - 48px);overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 80px #0e22374d}.installation-calendar-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line);flex-shrink:0}.installation-calendar-header .eyebrow{margin-bottom:6px}.installation-calendar-header h2{font-size:24px;outline:none}.installation-calendar-header p{color:var(--muted);font-size:12px;margin-top:6px}.installation-calendar-body{overflow-y:auto;overscroll-behavior:contain;min-height:0}.installation-calendar-body .installation-schedule{border:0;border-radius:0}.installation-calendar-body>.notice{margin:18px 24px 0}.installation-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;border-top:1px solid var(--line);flex-shrink:0;background:#f7faf9}.installation-calendar-footer>span{font-size:12px;color:var(--muted)}@media(max-width:760px){.installation-calendar-overlay{padding:10px}.installation-calendar-modal{max-height:calc(100dvh - 20px);border-radius:10px}.installation-calendar-header{padding:16px}.installation-calendar-header h2{font-size:20px}.installation-calendar-footer{padding:12px 16px}.installation-calendar-footer>span{max-width:50%;font-size:11px}}.project-progress .incident-media{display:flex;flex-wrap:wrap;align-items:flex-start}.project-progress .incident-media>a{flex:0 0 144px;max-width:100%}.project-progress .incident-media img{width:100%;height:108px;max-height:108px;object-fit:cover}.attendance-view-tabs{display:flex;gap:8px;flex-wrap:wrap;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--line)}.attendance-view-tabs button{min-height:42px;padding:10px 18px;background:#fff;border:1px solid var(--line);border-radius:7px;color:var(--muted);font:inherit;font-weight:600}.attendance-view-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.attendance-team-calendar{background:#fff;border:1px solid var(--line);padding:24px;border-radius:12px}.ac-toolbar,.ac-controls,.ac-month-control,.ac-month-title,.ac-day-heading,.ac-worker-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.ac-toolbar{flex-wrap:wrap;align-items:start}.ac-toolbar .eyebrow{margin-bottom:6px}.ac-toolbar h2{font-size:24px}.ac-toolbar p{font-size:13px;color:var(--muted);margin-top:8px}.ac-controls{align-items:end;flex-wrap:wrap}.ac-controls label{display:block;font-size:11px;font-weight:600;margin-bottom:6px}.ac-controls select{max-width:260px}.ac-month-control{gap:6px;align-items:end}.ac-month-control .icon-button{border:1px solid var(--line);margin-bottom:2px}.ac-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0 20px}.ac-metric{padding:17px 20px;border-radius:9px}.ac-metric strong{display:block;font-size:28px;line-height:1.2}.ac-metric>span{display:block;font-size:12px;margin-top:5px}.ac-legend{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:24px}.ac-state{display:inline-flex;align-items:center;padding:5px 8px;border-radius:5px;font-size:11px;font-weight:600;line-height:1.4}.ac-scheduled{color:#214e85;background:#e1edfc}.ac-complete{color:#24613d;background:#dff2e7}.ac-incomplete{color:#805511;background:#fff0cf}.ac-absent{color:#983739;background:#fbe2e3}.ac-unplanned{color:#713d91;background:#f1e1fb}.ac-mismatch{color:#974716;background:#ffead9}.ac-none{color:#677481;background:#eef1f4}.ac-month-title{margin:0 0 12px}.ac-month-title h3{font-size:22px;text-transform:capitalize}.ac-month-title>span{color:var(--muted);font-size:11px}.ac-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:8px;overflow:hidden}.ac-weekday{text-align:center;padding:11px 4px;background:#f4f7f8;color:var(--muted);font-size:11px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.ac-day{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;min-height:132px;background:#fff;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px;color:var(--ink);text-align:left;font:inherit}.ac-day:not(:disabled):hover{background:#f4f8f7}.ac-day.ac-selected{box-shadow:inset 0 0 0 2px var(--accent);background:#f0f8f5}.ac-day.ac-outside{background:#f7f8f9;color:#a1aab0;opacity:1;cursor:default}.ac-day-number{display:inline-grid;place-items:center;width:26px;height:26px;font-size:12px;font-weight:600}.ac-today .ac-day-number{border-radius:50%;background:var(--accent);color:#fff}.ac-day-counts{display:flex;flex-wrap:wrap;gap:3px}.ac-dot-count{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:20px;font-size:10px;font-weight:700}.ac-day-people{display:flex;flex-direction:column;gap:3px}.ac-person{padding:3px 5px;font-size:10px;line-height:1.4;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ac-day-more{font-size:10px;color:var(--muted)}.ac-day-detail{margin-top:28px}.ac-day-heading{margin-bottom:16px}.ac-day-heading .eyebrow{margin-bottom:6px}.ac-day-heading h3{font-size:21px;text-transform:capitalize}.ac-day-heading>span{font-size:12px;color:var(--muted)}.ac-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ac-worker-card{min-width:0;border:1px solid var(--line);border-left:4px solid #ccd3da;padding:18px;border-radius:9px}.ac-border-scheduled{border-left-color:#4f86c6}.ac-border-complete{border-left-color:#3b9062}.ac-border-incomplete{border-left-color:#d5a13b}.ac-border-absent{border-left-color:#ca6468}.ac-border-unplanned{border-left-color:#a667c7}.ac-border-mismatch{border-left-color:#da874b}.ac-worker-heading{align-items:start;flex-wrap:wrap;gap:9px}.ac-worker-heading strong{font-size:14px;overflow-wrap:anywhere}.ac-worker-heading small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.ac-plan{margin:17px 0 12px}.ac-plan>small{display:block;font-size:9px;font-weight:600;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.ac-plan p{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.ac-project-code{color:var(--muted);font-size:10px}.ac-no-assignment{color:#713d91}.ac-record{border-top:1px solid var(--line);padding-top:11px;margin-top:10px}.ac-record>p{font-size:11px;line-height:1.5;overflow-wrap:anywhere}.ac-clock{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.ac-clock>div{padding:10px;border-radius:6px;background:#f3f7f5}.ac-clock small{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.ac-clock strong{font-size:17px}.ac-clock .ac-clock-missing{background:#fff4dc;color:#805511}.ac-no-clock{padding:12px 0 0;color:var(--muted);font-size:12px}.ac-footnote{color:var(--muted);font-size:11px;line-height:1.7;margin-top:22px}@media(max-width:760px){.attendance-team-calendar{padding:14px}.ac-toolbar h2{font-size:21px}.ac-controls{width:100%;gap:12px}.ac-controls>div{width:100%}.ac-controls select{width:100%;max-width:none}.ac-month-control{justify-content:space-between}.ac-metrics{gap:7px}.ac-metric{padding:12px 9px}.ac-metric strong{font-size:24px}.ac-metric>span{font-size:10px}.ac-day{min-height:88px;padding:4px;gap:4px}.ac-day-people{display:none}.ac-dot-count{min-width:17px;height:17px;font-size:9px}.ac-month-title{flex-wrap:wrap}.ac-roster{grid-template-columns:1fr}.ac-state{font-size:10px}.ac-day-heading h3{font-size:18px}}@media(min-width:1280px){.ac-calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.ac-calendar-layout .ac-day-detail{margin-top:0;position:sticky;top:76px}.ac-calendar-layout .ac-roster{grid-template-columns:1fr;max-height:650px;overflow-y:auto;padding-right:4px}.ac-calendar-layout .ac-day-heading{align-items:start;flex-wrap:wrap;gap:6px}.ac-calendar-layout .ac-day-heading h3{font-size:18px}}.ac-day-heading h3{text-transform:none}.ac-day-heading h3:first-letter{text-transform:uppercase}.schedule-attendance-person{display:flex;flex-direction:column;gap:3px;border-radius:6px;padding:8px;font-size:10px;line-height:1.4;overflow-wrap:anywhere}.schedule-attendance-person>strong{font-size:11px}.schedule-attendance-state{font-size:9px;font-weight:600;margin-bottom:3px}.schedule-actual-project{border-top:1px solid currentColor;padding-top:4px;margin-top:3px}.schedule-attendance-legend{margin:16px 0 0}.ac-record-hours{margin-top:9px;font-size:11px;color:var(--muted)}.attendance-modal.worker-calendar-modal{width:min(1160px,100%)}.attendance-modal .ac-compact{padding:18px}.attendance-modal .ac-compact .ac-toolbar h2{font-size:21px}.attendance-modal .ac-compact .ac-toolbar p{max-width:460px}@media(max-width:760px){.attendance-modal .ac-compact{padding:12px}.schedule-attendance-person{padding:6px}}.ac-day-clock{display:flex;flex-direction:column;gap:3px;font-size:10px;line-height:1.4;padding:5px;border-radius:4px;overflow-wrap:anywhere}@media(min-width:1280px){.attendance-modal .ac-calendar-layout .ac-day-detail{top:110px}}@media(max-width:760px){.ac-day-clock{padding:3px;font-size:9px}}.attendance-modal .attendance-card.is-open-journey,.attendance-card.is-open-journey{padding:18px 20px}.is-open-journey .worker-open-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:10px 18px;align-items:center}.is-open-journey .worker-entry-confirmation{gap:10px}.is-open-journey .worker-confirm-icon{width:38px;height:38px;border-radius:10px}.is-open-journey .worker-confirm-icon .icon{width:22px;height:22px}.is-open-journey .worker-entry-confirmation .eyebrow{font-size:9px;margin:0 0 3px;letter-spacing:1px}.is-open-journey .worker-entry-confirmation h2{font-size:18px;line-height:1.25;margin:0 0 4px}.is-open-journey .worker-entry-confirmation p{font-size:12px;line-height:1.4}.is-open-journey .worker-entry-time{grid-column:2;grid-row:1 / 3;margin:0;padding:12px 14px;gap:10px;border-radius:9px}.is-open-journey .worker-entry-time span{font-size:11px}.is-open-journey .worker-entry-time strong{font-size:26px;line-height:1.2;margin:3px 0}.is-open-journey .worker-entry-time small{font-size:10px}.is-open-journey .worker-journey-meta{gap:6px 10px}.is-open-journey .worker-journey-meta>span{font-size:11px}.is-open-journey .worker-journey-meta .badge{height:auto;padding:4px 7px;line-height:1.3}.is-open-journey .worker-next-step{margin-top:12px;padding:10px 12px;gap:9px;border-radius:8px}.is-open-journey .worker-step-number{width:23px;height:23px;font-size:11px}.is-open-journey .worker-next-step strong{font-size:13px}.is-open-journey .worker-next-step p{font-size:11px;line-height:1.45;margin-top:3px}.is-open-journey .capture-photo-hint{font-size:11px;line-height:1.45;margin:10px 0 8px}.is-open-journey .check-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0}.is-open-journey .btn.check-button{min-height:44px;padding:10px 12px;font-size:13px;line-height:1.35}.is-open-journey .privacy-note{margin-top:10px;padding-top:10px;font-size:10px;line-height:1.45}.is-open-journey .privacy-note .icon{width:15px;height:15px}@media(max-width:600px){.attendance-modal .attendance-card.is-open-journey,.attendance-card.is-open-journey{padding:14px}.is-open-journey .worker-open-overview{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.is-open-journey .worker-confirm-icon{display:none}.is-open-journey .worker-entry-confirmation h2{font-size:16px}.is-open-journey .worker-entry-confirmation p{font-size:11px}.is-open-journey .worker-entry-time{grid-row:1;padding:10px}.is-open-journey .worker-entry-time>.icon{display:none}.is-open-journey .worker-entry-time strong{font-size:24px}.is-open-journey .worker-entry-time small{font-size:9px}.is-open-journey .worker-journey-meta{grid-column:1 / -1}.is-open-journey .check-buttons{gap:7px}.is-open-journey .btn.check-button{font-size:12px;padding:9px 6px}}.attendance-history-days{display:flex;flex-direction:column;gap:18px;margin-top:16px}.attendance-history-day{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.attendance-day-header{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#edf4f3;padding:13px 18px;border-bottom:1px solid #dce7e4}.attendance-day-header>div{display:flex;align-items:baseline;gap:12px}.attendance-day-header span{text-transform:capitalize;color:var(--accent);font-size:12px;font-weight:600}.attendance-day-header h3{font-size:17px}.attendance-day-header>small{font-size:11px;color:var(--muted)}.attendance-day-record{padding:18px}.attendance-day-record+.attendance-day-record{border-top:1px solid var(--line)}.attendance-day-project{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.attendance-day-project>strong{display:inline-flex;align-items:center;gap:7px;font-size:13px}.attendance-day-project .icon{width:17px;height:17px;color:var(--accent)}.attendance-day-times{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.attendance-day-times>div{padding:11px 13px;border-radius:7px;background:#f3f6f8}.attendance-day-times dt{color:var(--muted);font-size:11px;margin-bottom:4px}.attendance-day-times dd{margin:0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.attendance-day-times .attendance-time-entry{background:#edf7f1}.attendance-day-times .attendance-time-open{background:#fff4dc;color:#805511}.attendance-day-record>.attendance-evidence{margin-top:0;padding-top:12px;border-top:1px solid var(--line)}.attendance-day-record .attendance-evidence>summary{color:var(--accent);font-weight:600;font-size:12px;cursor:pointer}.attendance-day-record .attendance-evidence-groups{margin-top:12px}.attendance-day-record .attendance-photo{max-height:150px;object-fit:contain}.ac-planned-project+.ac-planned-project{margin-top:12px}.ac-plan .ac-location-label{color:var(--muted);font-size:11px;margin-top:4px}.ac-location-link{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;margin-top:7px;font-size:11px;font-weight:600;color:#205d59;background:#e4f2ed;border:1px solid #c5dfd5;border-radius:6px}.ac-location-link .icon{width:15px;height:15px}.ac-location-link:hover{background:#d3e9df}@media(max-width:600px){.attendance-day-header{padding:11px 13px}.attendance-day-header>div{flex-wrap:wrap;gap:3px 10px}.attendance-day-record{padding:13px}.attendance-day-times{gap:6px}.attendance-day-times>div{padding:9px 7px}.attendance-day-times dd{font-size:12px}.attendance-day-times dt{font-size:10px}}.feedback-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 16px;border:0;border-radius:999px;background:var(--navy);color:#fff;font-size:12px;font-weight:600;box-shadow:0 8px 24px #0e223747}.feedback-fab:hover{background:#1b3955}.feedback-fab .icon{width:18px;height:18px}.feedback-reporter.is-capturing .feedback-overlay,.feedback-reporter.is-capturing .feedback-fab,.feedback-reporter.is-capturing .feedback-toast{visibility:hidden}.feedback-toast{position:fixed;right:20px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:71;display:flex;align-items:center;gap:9px;max-width:calc(100vw - 40px);padding:12px 16px;border-radius:8px;background:#e6f3ed;border:1px solid #bddbca;color:#225a3f;font-size:13px;font-weight:600;box-shadow:0 8px 24px #0e22372e}.feedback-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;background:#0e223766;overscroll-behavior:contain}.feedback-panel{width:min(520px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;background:#fff;border-radius:12px;box-shadow:0 24px 60px #0e223747}.feedback-heading{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px;background:#fff;border-bottom:1px solid var(--line)}.feedback-heading p{color:var(--muted);font-size:12px;margin-top:4px}.feedback-form{padding:18px 22px 22px}.feedback-form>label,.feedback-label{display:block;font-size:12px;font-weight:600;margin:16px 0 7px}.feedback-label small{color:var(--muted);font-weight:400}.feedback-types{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;border:0}.feedback-types legend{font-size:12px;font-weight:600;margin-bottom:7px;padding:0}.feedback-types label{position:relative;margin:0}.feedback-types input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-height:0;margin:0;cursor:pointer}.feedback-types span{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border:1px solid #cbd6df;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink);background:#fff}.feedback-types input:checked+span{background:#e4f2ef;border-color:var(--accent);color:#155d5a}.feedback-types input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.feedback-files-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.feedback-count{font-size:11px;color:var(--muted)}.feedback-file-actions{display:flex;flex-wrap:wrap;gap:8px}.feedback-pick{position:relative;cursor:pointer;margin:0;font-weight:600}.feedback-pick.is-busy{opacity:.5;cursor:not-allowed}.feedback-progress{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:var(--muted)}.feedback-progress-bar{flex:1;max-width:180px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}.feedback-progress-bar>span{display:block;height:100%;background:var(--accent);transition:width .15s}.feedback-files{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.feedback-files li{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:8px}.feedback-thumb{width:56px;height:42px;flex-shrink:0;object-fit:cover;border-radius:5px;background:#edf1f5}.feedback-thumb.is-icon{display:grid;place-items:center;color:var(--muted)}.feedback-file-name{flex:1;min-width:0;font-size:12px;overflow-wrap:anywhere}.feedback-file-name small{display:block;color:var(--muted);font-size:11px}.feedback-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}@media(hover:none){.feedback-paste-hint{display:none}}@media(max-width:600px){.feedback-fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:48px;height:48px;padding:0;justify-content:center}.feedback-fab span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.feedback-toast{right:14px;left:14px;bottom:calc(72px + env(safe-area-inset-bottom));max-width:none}.feedback-overlay{align-items:flex-end;padding:0}.feedback-panel{width:100%;max-height:92dvh;border-radius:14px 14px 0 0}.feedback-heading{padding:14px 16px}.feedback-form{padding:14px 16px calc(18px + env(safe-area-inset-bottom))}.feedback-file-actions .btn{flex:1 1 100%}.main-shell{padding-bottom:56px}}.nav-link .nav-badge{flex:0 0 auto;min-width:22px;padding:2px 7px;border-radius:999px;background:#f1b74a;color:#2b1d02;font-size:11px;font-weight:700;text-align:center}.data-table small.cell-sub{display:block}.feedback-excerpt{display:block;margin-top:5px;font-weight:500;overflow-wrap:anywhere}.feedback-detail-badges{display:flex;gap:8px;margin:14px 0 10px}.feedback-description{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6;padding:14px 16px;background:#f6f8fa;border-radius:8px}.feedback-agent{font-size:12px!important;color:var(--muted)}.feedback-attachments{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.feedback-attachments li{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.feedback-attachments img,.feedback-attachments video{display:block;width:100%;max-height:260px;object-fit:contain;background:#102b42}.feedback-attachment-text{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:12px}.feedback-attachment-text>span{flex:1;min-width:0;overflow-wrap:anywhere}.feedback-attachment-text small{display:block;color:var(--muted);font-size:11px}.feedback-attachment-text .icon{width:17px;height:17px;color:var(--muted)}.feedback-state-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px;margin-top:12px}@media(max-width:600px){.feedback-state-form{grid-template-columns:1fr}}.project-record-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;font-size:12px;color:var(--muted)}.project-record-meta .btn{flex:0 0 auto;width:auto;margin:0}.project-progress .project-incidents{background:#f0f6f6;border:1px solid #cddfdf;border-left:4px solid var(--accent);border-radius:10px;padding:20px;margin-top:24px}.project-incidents>h3{color:var(--accent);margin-bottom:10px}.project-incidents .incident-card{background:#fff}@media(max-width:600px){.project-progress .project-incidents{padding:16px 12px}}
