body{color:#222;-webkit-font-smoothing:antialiased;background:#fafafa;margin:0;font-family:Assistant,Segoe UI,Arial,sans-serif}:root{--color-primary:#3fb8a6;--color-primary-dark:#2f9686;--color-primary-darker:#14163d;--color-primary-light:#e6f7f4;--color-bg:#f4f6f9;--color-surface:#fff;--color-border:#e3e7ed;--color-text:#1a1d29;--color-text-muted:#5f6b7a;--color-success:#2fae60;--color-success-bg:#e7f7ee;--color-warning:#d98c1f;--color-warning-bg:#fdf1de;--color-danger:#d9503f;--color-danger-bg:#fbe9e7;--color-neutral-bg:#eef0f4;--color-info:#2f6fae;--color-info-bg:#e7f0fb;--color-purple:#7a4fae;--color-purple-bg:#f1e9fb;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px #14163d0f;--shadow-md:0 6px 20px #14163d14;--color-company-accent:var(--color-primary)}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text)}.app{max-width:1160px;margin:0 auto;padding:24px}.app-header{border-bottom:2px solid var(--color-company-accent);justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:14px 24px;display:flex}.app-header-company{align-items:center;gap:10px;font-weight:700;display:flex}.app-header-logo{object-fit:contain;height:28px}.company-switcher{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);padding:4px 8px;font-size:13px;font-weight:600}.app-header-user{position:relative}.app-header-user-btn{color:var(--color-text);background:0 0;border:none;font-size:14px;font-weight:600}.app-header-menu{z-index:20;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:160px;box-shadow:var(--shadow-md);flex-direction:column;margin-top:4px;display:flex;position:absolute;top:100%;left:0;overflow:hidden}.app-header-menu button{text-align:right;background:0 0;border:none;border-radius:0;padding:10px 14px;font-size:14px}.app-header-menu button:hover{background:var(--color-neutral-bg)}.app-header-modal-backdrop{z-index:30;background:#14163d59;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.app-header-modal{background:var(--color-surface);border-radius:var(--radius);width:320px;box-shadow:var(--shadow-md);flex-direction:column;gap:14px;padding:24px;display:flex}.app-header-modal label{color:var(--color-text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.app-header-modal-actions{gap:8px;display:flex}.app-shell{align-items:flex-start;gap:24px;max-width:1400px;margin:0 auto;padding:24px;display:flex}.app-main{flex:1;min-width:0}.sidebar{background:var(--color-primary-darker);border-radius:var(--radius);width:220px;box-shadow:var(--shadow-md);flex-shrink:0;padding:16px 0;position:sticky;top:24px}.sidebar-logo{height:34px;margin:0 auto 16px;display:block}.sidebar-group{margin-bottom:10px}.sidebar-group-label{letter-spacing:.03em;color:#ffffff73;text-transform:uppercase;padding:6px 20px;font-size:11px;font-weight:700}.sidebar button{text-align:right;color:#ffffffbf;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:9px 20px;font-size:14px;font-weight:600;display:flex}.sidebar-badge{background:var(--color-danger);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.sidebar button{transition:background .15s,color .15s}.sidebar button:hover:not(:disabled){color:#fff;background:#ffffff0f}.sidebar button.active{background:var(--color-company-accent);color:#fff}@media (width<=860px){.app-shell{flex-direction:column}.sidebar{flex-wrap:wrap;width:100%;padding:12px;display:flex;position:static}.sidebar-logo{display:none}.sidebar-group{margin-bottom:0}.sidebar-group-label{display:none}.sidebar button{width:auto}}h1{letter-spacing:-.01em;margin:0;font-size:22px;font-weight:700}h2{color:var(--color-text);margin:0 0 12px;font-size:16px;font-weight:600}h3{color:var(--color-text-muted);margin:20px 0 10px;font-size:14px;font-weight:600}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-company-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-company-accent) 22%, transparent);outline:none}textarea{resize:vertical;font-family:inherit}input[type=number]{text-align:right}button{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);cursor:pointer;padding:9px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,transform 50ms}button:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-light)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.5}button[type=submit],.btn-primary{background:var(--color-company-accent);border-color:var(--color-company-accent);color:#fff}button[type=submit]:hover:not(:disabled),.btn-primary:hover:not(:disabled){filter:brightness(.9)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:20px;padding:20px}.filters{gap:12px;margin-bottom:16px;display:flex}.filters input{flex:1;min-width:200px}table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-sm);margin-bottom:16px;overflow:hidden}th{text-align:right;background:var(--color-neutral-bg);color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase;padding:13px 16px;font-size:12px;font-weight:700}td{text-align:right;border-top:1px solid var(--color-border);padding:14px 16px}tbody tr{transition:background .1s}tbody tr:hover{background:var(--color-primary-light)}.clickable-row{cursor:pointer}.link-cell{cursor:pointer;color:var(--color-primary-dark);font-weight:600}.pagination{color:var(--color-text-muted);align-items:center;gap:12px;font-size:14px;display:flex}.error{color:var(--color-danger);font-size:14px}.success{color:var(--color-success);font-size:14px}.hint-text{color:var(--color-text-muted);font-size:14px}.empty-state{color:var(--color-text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 16px;display:flex}.empty-state-icon{opacity:.6;font-size:28px}.empty-state p{margin:0;font-size:14px}.loading-state{color:var(--color-text-muted);align-items:center;gap:10px;padding:24px 0;font-size:14px;display:flex}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-company-accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.7s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.document-actions{align-items:center;gap:16px;display:flex}.link-cell.danger{color:var(--color-danger)}.document-actions .link-cell.danger{margin-inline-start:20px}.link-cell.disabled{opacity:.5;pointer-events:none;cursor:default}.callout{background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;margin:8px 0;padding:10px 14px;font-size:14px;display:flex}.callout-actions{white-space:nowrap;align-items:center;gap:10px;display:flex}.callout-danger{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger);font-weight:600}.toast{z-index:1000;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:10px 20px;font-size:14px;font-weight:600;position:fixed;top:20px;left:50%;transform:translate(-50%)}.toast-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success)}.toast-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger)}.panel-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:14px;display:flex}.panel-actions{border-top:1px solid var(--color-border);justify-content:flex-end;gap:10px;margin-top:16px;padding-top:14px;display:flex}@keyframes fade-in-up{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in,.app-main{animation:.18s fade-in-up}.sub-row{animation:.15s fade-in-up}.dashboard-list li{transition:background .15s}.tabs button{transition:color .15s,border-color .15s}.badge{background:var(--color-neutral-bg);color:var(--color-text-muted);white-space:nowrap;border:none;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}button.badge{cursor:pointer}button.badge:hover:not(:disabled){filter:brightness(.95)}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.detail-cards{grid-template-columns:repeat(2,1fr);align-items:start;gap:20px;display:grid}.detail-cards .card{margin-bottom:0}.institutions-columns{grid-template-columns:repeat(3,1fr);align-items:start;gap:20px;display:grid}.institution-column{border-radius:var(--radius);border:1px solid var(--color-border);padding:20px}.institution-column.vat{background:var(--color-info-bg);border-color:var(--color-info)}.institution-column.income-tax{background:var(--color-success-bg);border-color:var(--color-success)}.institution-column.national-insurance{background:var(--color-purple-bg);border-color:var(--color-purple)}@media (width<=900px){.institutions-columns{grid-template-columns:1fr}}@media (width<=700px){.detail-cards{grid-template-columns:1fr}}.dashboard-kpis{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px;display:grid}.dashboard-kpi{flex-direction:column;gap:4px;display:flex}.dashboard-kpi-value{color:var(--color-primary-darker);font-size:26px;font-weight:700}.dashboard-kpi-label{color:var(--color-text-muted);font-size:13px}@media (width<=900px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}}.dashboard-status-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.dashboard-status-list li{justify-content:space-between;align-items:center;display:flex}.dashboard-donut-wrap{align-items:center;gap:24px;display:flex}.dashboard-donut{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:120px;height:120px;display:flex}.dashboard-donut-center{background:var(--color-surface);border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:18px;font-weight:700;display:flex}.dashboard-donut-legend{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.dashboard-donut-legend li{align-items:center;gap:8px;display:flex}.dashboard-donut-swatch{border-radius:50%;flex-shrink:0;width:10px;height:10px}.dashboard-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.dashboard-list li{border-radius:var(--radius-sm);justify-content:space-between;align-items:center;padding:8px 4px;display:flex}.dashboard-list li:hover{background:var(--color-primary-light)}.dashboard-quick-actions{gap:12px;display:flex}.detail-grid{grid-template-columns:180px 1fr;gap:12px;display:grid}.detail-grid dt{color:var(--color-text-muted);font-size:13px;font-weight:600}.detail-grid dd{margin:0}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.client-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.client-avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;font-weight:700;display:flex}.client-header-info{flex-direction:column;flex:1;gap:4px;display:flex}.client-header-badges{align-items:center;gap:6px;display:flex}.client-header-sub{color:var(--color-text-muted);font-size:13px}.tabs{border-bottom:1px solid var(--color-border);gap:4px;margin-bottom:20px;display:flex}.tabs button{color:var(--color-text-muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-left:20px;padding:10px 6px}.tabs button:hover:not(:disabled){border-color:var(--color-border);background:0 0}.tabs button.active{color:var(--color-company-accent);border-color:var(--color-company-accent)}.tab-count{background:var(--color-neutral-bg);color:var(--color-text-muted);border-radius:999px;margin-right:6px;padding:1px 7px;font-size:11px;display:inline-block}.tabs button.active .tab-count{background:var(--color-primary-light);color:var(--color-primary-dark)}.client-form{flex-direction:column;gap:14px;max-width:520px;display:flex}.client-form label{color:var(--color-text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.client-form input,.client-form select,.client-form textarea{color:var(--color-text);font-weight:400}.client-form fieldset{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px}.client-form legend{color:var(--color-text-muted);padding:0 6px;font-size:13px;font-weight:600}.checkbox-label{align-items:center;flex-direction:row!important;gap:6px!important}.checkbox-label input{width:auto}.form-actions{gap:12px;margin-top:8px;display:flex}.inline-form{gap:8px;margin-top:8px;margin-bottom:24px;display:flex}.inline-form input{flex:1}.inline-form-column{flex-direction:column;align-items:flex-start}.list-reset{width:100%;margin:0;padding:0;list-style:none}.label-block{display:block}.access-gate{background:linear-gradient(180deg, var(--color-bg) 0%, var(--color-primary-light) 100%);flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100vh;animation:.35s access-gate-fade-in;display:flex}@keyframes access-gate-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.access-gate form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:320px;box-shadow:var(--shadow-md);flex-direction:column;gap:16px;padding:32px;display:flex}.access-gate h1{text-align:center;margin-bottom:8px}.access-gate label{color:var(--color-text-muted);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.access-gate-checking{text-align:center;margin-top:40px}.company-select{text-align:center;width:520px}.company-select h1{margin-bottom:24px}.company-select-grid{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.company-select-card{background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);width:190px;box-shadow:var(--shadow-sm);color:var(--color-text);flex-direction:column;align-items:center;gap:14px;padding:28px 18px;font-size:14px;font-weight:700;transition:box-shadow .15s,transform .15s;display:flex}.company-select-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.company-select-card img{object-fit:contain;max-width:100%;height:56px}.tracking-page{background:var(--color-bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 16px;display:flex}.tracking-loading{color:var(--color-text-muted);margin-top:40px}.tracking-card{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow-md);margin-top:24px;padding:28px 24px}.tracking-header{text-align:center;margin-bottom:20px}.tracking-logo{object-fit:contain;height:44px;margin-bottom:12px}.tracking-header h1{font-size:20px}.tracking-subtitle{color:var(--color-text-muted);margin-top:6px;font-size:14px}.tracking-current-status{background:var(--color-company-accent,var(--color-primary-light));color:#fff;border-radius:var(--radius-sm);text-align:center;margin-bottom:24px;padding:12px 16px;font-weight:700}.tracking-complete-banner{background:var(--color-success-bg);border:1px solid var(--color-success);border-radius:var(--radius-sm);text-align:center;margin-bottom:24px;padding:18px 16px}.tracking-complete-title{margin:0 0 4px;font-size:18px;font-weight:700}.tracking-complete-text{color:var(--color-text-muted);margin:0;font-size:14px}.tracking-rating-link{color:var(--color-success);margin-top:12px;font-weight:700;display:inline-block}.tracking-error{text-align:center;color:var(--color-text-muted)}.tracking-timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tracking-step{align-items:flex-start;gap:12px;padding-bottom:24px;display:flex;position:relative}.tracking-step:not(:last-child):before{content:"";background:var(--color-border);width:2px;position:absolute;top:26px;bottom:0;right:11px}.tracking-step-icon{background:var(--color-neutral-bg);width:24px;height:24px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.tracking-step-completed .tracking-step-icon{background:var(--color-success-bg);color:var(--color-success)}.tracking-step-current .tracking-step-icon{background:var(--color-company-accent,var(--color-primary));color:#fff}.tracking-step-body{flex-direction:column;gap:2px;padding-top:2px;display:flex}.tracking-step-label{font-weight:600}.tracking-step-future .tracking-step-label{color:var(--color-text-muted);font-weight:400}.tracking-step-date{color:var(--color-text-muted);font-size:12px}.tracking-footer{text-align:center;color:var(--color-text-muted);margin:8px 0 0;font-size:13px}.upload-page{background:var(--color-bg);justify-content:center;align-items:flex-start;min-height:100vh;padding:24px 16px;display:flex}.upload-loading{color:var(--color-text-muted);margin-top:40px}.upload-card{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:440px;box-shadow:var(--shadow-md);margin-top:24px;padding:28px 24px}.upload-header{text-align:center;margin-bottom:20px}.upload-logo{object-fit:contain;height:44px;margin-bottom:12px}.upload-header h1{font-size:20px}.upload-subtitle{color:var(--color-text-muted);margin-top:6px;font-size:14px}.upload-error,.upload-empty-state{text-align:center;color:var(--color-text-muted)}.upload-intro{background:var(--color-neutral-bg);border-radius:var(--radius-sm);color:var(--color-text-muted);margin-bottom:16px;padding:12px 14px;font-size:13px;line-height:1.6}.upload-progress{margin-bottom:16px}.upload-progress-label{justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:13px;font-weight:700;display:flex}.upload-progress-track{background:var(--color-border);border-radius:999px;height:8px;overflow:hidden}.upload-progress-fill{background:var(--color-company-accent,var(--color-success));border-radius:999px;height:100%;transition:width .3s}.upload-missing-toggle{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:100%;color:var(--color-text-muted);background:0 0;margin-top:10px;padding:8px;font-size:13px}.upload-missing-toggle.active{border-color:var(--color-company-accent,var(--color-primary));color:var(--color-company-accent,var(--color-primary));font-weight:700}.upload-tiles{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.upload-tile{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-neutral-bg);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.upload-tile-done{border-color:var(--color-success);background:var(--color-success-bg)}.upload-tile-info{align-items:center;gap:8px;display:flex}.upload-tile-icon{flex-shrink:0;font-size:16px}.upload-tile-name{flex:1;font-weight:600}.upload-tile-count{color:var(--color-success);font-size:12px;font-weight:700}.upload-tile-file-input{display:none}.upload-tile-actions{gap:8px;display:flex}.upload-tile-button{border-radius:var(--radius-sm);border:1px solid var(--color-company-accent,var(--color-primary));background:var(--color-company-accent,var(--color-primary));color:#fff;flex:1;padding:10px;font-size:14px;font-weight:700}.upload-tile-done .upload-tile-button{color:var(--color-company-accent,var(--color-primary));background:0 0}.upload-tile-camera-button{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-muted);white-space:nowrap;background:0 0;padding:10px 12px;font-size:14px}.upload-tile-error{color:var(--color-danger);margin:0;font-size:12px}.upload-tile-description{color:var(--color-text-muted);margin:0;font-size:12.5px;line-height:1.5}.upload-tile-howto-toggle{color:var(--color-company-accent,var(--color-primary));background:0 0;border:none;align-self:flex-start;padding:0;font-size:12.5px;font-weight:600;text-decoration:underline}.upload-tile-howto-text{color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-sm);margin:0;padding:8px 10px;font-size:12.5px;line-height:1.5}.upload-tile-sample-link{color:var(--color-company-accent,var(--color-primary));font-size:12.5px}.upload-tile-status-row{gap:8px;display:flex}.upload-tile-status-button{border-radius:var(--radius-sm);border:1px solid var(--color-border);color:var(--color-text-muted);background:0 0;flex:1;padding:8px;font-size:12.5px}.upload-tile-status-button.active{border-color:var(--color-warning,#b8860b);color:var(--color-warning,#b8860b);font-weight:700}.upload-tile-status-badge{color:var(--color-warning,#b8860b);margin:0;font-size:12.5px;font-weight:600}.upload-tile-reason-input{border-radius:var(--radius-sm);border:1px solid var(--color-border);width:100%;padding:8px;font-size:13px}.upload-footer{text-align:center;color:var(--color-text-muted);margin:20px 0 0;font-size:13px}
