:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*{box-sizing:border-box}body{color:#111827;background:#eef2f7;margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}input,select,textarea{color:#111827;background:#fff}input::placeholder,textarea::placeholder{color:#9ca3af}button{cursor:pointer}.app-center,.login-page{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.loading-card,.login-card{background:#fff;border-radius:24px;width:100%;max-width:460px;padding:32px;box-shadow:0 20px 60px #0f172a1f}.login-header{align-items:center;gap:16px;margin-bottom:28px;display:flex}.logo{color:#fff;letter-spacing:-.04em;background:#2563eb;border-radius:16px;flex-shrink:0;place-items:center;width:48px;height:48px;font-weight:800;display:grid}.login-header h1,.brand h2,.topbar h1,.documents-section h2{margin:0}.login-header p,.topbar p,.documents-section p{color:#475569;margin:6px 0 0}.login-form{flex-direction:column;gap:10px;display:flex}.login-form label{color:#374151;font-size:14px;font-weight:700}.login-form input{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:14px;outline:none;width:100%;padding:13px 14px}.login-form input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.login-form button,.topbar button{color:#fff;background:#2563eb;border:none;border-radius:14px;margin-top:12px;padding:13px 16px;font-weight:800}.login-form button:hover,.topbar button:hover,.upload-box button:hover,.uploaded-file-box button:hover,.review-box button:hover,.subcontractor-form button:hover,.workcenter-form button:hover,.assign-docs-form button:hover,.worker-form button:hover,.dashboard-filters button:hover{filter:brightness(.95)}.error-box{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:14px;margin:12px 0;padding:12px 14px;font-weight:700}.success-box{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:14px;margin:12px 0;padding:12px 14px;font-weight:700}.app-layout{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{color:#fff;background:#0f172a;flex-direction:column;min-height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;margin-bottom:34px;display:flex}.brand h2{color:#c5c9e9;letter-spacing:-.03em;font-weight:900}.brand span{color:#93c5fd;font-weight:700}.sidebar nav{flex-direction:column;gap:8px;display:flex}.sidebar nav button{color:#cbd5e1;text-align:left;background:0 0;border:none;border-radius:14px;padding:13px 14px;font-weight:700;text-decoration:none}.sidebar nav button.active,.sidebar nav button:hover:not(:disabled){color:#fff;background:#ffffff1f}.sidebar nav button:disabled{opacity:.35;cursor:not-allowed}.logout-button{color:#fff;border:none;border-radius:14px;margin-top:8px;padding:13px 16px;font-weight:800;background:#1e293b!important}.logout-button:hover{background:#334155!important}.main-content{padding:32px;overflow-x:auto}.topbar{background:#fff;border:1px solid #dbe4f0;border-radius:24px;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px;padding:22px 24px;display:flex;box-shadow:0 12px 30px #0f172a14}.topbar h1{color:#0f172a;letter-spacing:-.02em;margin:0 0 6px;font-size:30px;font-weight:900;line-height:1.1}.subcontractor-name{font-weight:800;color:#2563eb!important}.dashboard-filters{background:#fff;border:1px solid #dbe4f0;border-radius:24px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));align-items:end;gap:14px;margin-bottom:24px;padding:20px;display:grid;box-shadow:0 12px 30px #0f172a14}.dashboard-filters div{flex-direction:column;gap:8px;display:flex}.dashboard-filters label{color:#374151;font-size:14px;font-weight:800}.dashboard-filters input,.dashboard-filters select{font:inherit;color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:14px;outline:none;padding:12px 13px}.dashboard-filters input:focus,.dashboard-filters select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.dashboard-filters button{color:#fff;background:#0f172a;border:none;border-radius:14px;min-height:46px;padding:13px 16px;font-weight:800}.stats-grid{grid-template-columns:repeat(5,minmax(140px,1fr));gap:16px;margin-bottom:28px;display:grid}.compact-stats{grid-template-columns:repeat(4,minmax(140px,1fr))}.stat-card{background:#fff;border:1px solid #d8e0ec;border-left:6px solid #94a3b8;border-radius:22px;padding:20px;box-shadow:0 12px 30px #0f172a17}.stat-card span{color:#1f2937;font-weight:800}.stat-card strong{color:#0f172a;margin-top:8px;font-size:34px;display:block}.stat-card p{color:#475569}.stat-card.warning{background:#fffbeb;border-color:#fde68a #fde68a #fde68a #f59e0b}.stat-card.info{background:#eff6ff;border-color:#bfdbfe #bfdbfe #bfdbfe #3b82f6}.stat-card.success{background:#f0fdf4;border-color:#bbf7d0 #bbf7d0 #bbf7d0 #22c55e}.stat-card.danger{background:#fff5f5;border-color:#fecaca #fecaca #fecaca #ef4444}.documents-section{background:#fff;border:1px solid #d6dde8;border-radius:24px;margin-bottom:28px;padding:26px;box-shadow:0 14px 34px #0f172a1a}.section-header{background:linear-gradient(135deg,#eef4ff,#f8fafc);border:1px solid #dbeafe;border-radius:18px;margin-bottom:22px;padding:18px 20px}.section-header h2{color:#0f172a;letter-spacing:-.02em;font-size:23px;font-weight:900}.section-header p{color:#334155;font-size:15px;font-weight:600}.documents-list{flex-direction:column;gap:18px;display:flex}.document-card{background:#fff;border:1px solid #cfd8e6;border-left:6px solid #2563eb;border-radius:20px;padding:20px;box-shadow:0 8px 22px #0f172a12}.document-main{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.document-main h3,.document-card h3{color:#0f172a;margin:0;font-size:18px;font-weight:900}.document-main p,.document-card p{color:#334155;margin:6px 0;font-weight:500}.small-note{color:#475569;margin-top:4px;font-size:12px;font-weight:700;display:block}.warning-note{font-weight:900;color:#b45309!important}.danger-note{font-weight:900;color:#b91c1c!important}.status-pill{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:7px 10px;font-size:13px;font-weight:900;display:inline-flex}.status-pill.pending{color:#92400e;background:#fef3c7}.status-pill.uploaded,.status-pill.in_review{color:#1e40af;background:#dbeafe}.status-pill.approved{color:#166534;background:#dcfce7}.status-pill.rejected,.status-pill.expired{color:#991b1b;background:#fee2e2}.upload-box,.review-box,.uploaded-file-box{border-top:1px solid #e5e7eb;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.upload-box input[type=file]{color:#111827;background:#f9fafb;border:1px solid #d1d5db;border-radius:12px;padding:10px}.upload-box input[type=date],.review-box input{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:12px;min-width:220px;padding:11px 12px}.upload-box button,.uploaded-file-box button,.review-box button{color:#fff;background:#2563eb;border:none;border-radius:12px;padding:11px 14px;font-weight:800}.uploaded-file-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;justify-content:space-between;padding:14px}.approve-button{background:#16a34a!important}.reject-button{background:#dc2626!important}.review-comment{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;margin-top:10px;padding:10px 12px;font-weight:700}.empty-state{color:#475569;text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:16px;padding:30px;font-weight:700}.subcontractors-page,.workcenters-page,.assign-docs-page,.workers-page{width:100%}.subcontractors-grid,.workcenters-grid,.assign-docs-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:flex-start;gap:24px;display:grid}.workers-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:flex-start;gap:24px;width:100%;max-width:100%;display:grid;overflow:hidden}.subcontractor-form,.subcontractors-list,.workcenter-form,.workcenters-list,.assign-docs-form,.assign-docs-preview,.worker-form,.workers-list{background:#fff;border:1px solid #dbe4f0;border-radius:24px;padding:24px;box-shadow:0 12px 30px #0f172a14}.subcontractor-form,.workcenter-form,.assign-docs-form,.worker-form{flex-direction:column;gap:10px;display:flex}.subcontractor-form h2,.subcontractors-list h2,.workcenter-form h2,.workcenters-list h2,.assign-docs-form h2,.assign-docs-preview h2,.worker-form h2,.workers-list h2{color:#0f172a;margin:0 0 14px;font-weight:900}.subcontractor-form label,.workcenter-form label,.assign-docs-form label,.worker-form label{color:#374151;font-size:14px;font-weight:800}.subcontractor-form input,.workcenter-form input,.workcenter-form textarea,.workcenter-form select,.assign-docs-form select,.assign-docs-form input,.worker-form input,.worker-form select{font:inherit;color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:14px;outline:none;padding:12px 13px}.workcenter-form textarea{resize:vertical;min-height:90px}.subcontractor-form input:focus,.workcenter-form input:focus,.workcenter-form textarea:focus,.workcenter-form select:focus,.assign-docs-form select:focus,.assign-docs-form input:focus,.worker-form input:focus,.worker-form select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f}.subcontractor-form button,.workcenter-form button,.assign-docs-form button,.worker-form button{color:#fff;background:#2563eb;border:none;border-radius:14px;margin-top:10px;padding:13px 16px;font-weight:800}.subcontractor-card,.workcenter-card,.worker-card{background:#fff;border:1px solid #cfd8e6;border-radius:18px;margin-bottom:14px;padding:18px;box-shadow:0 6px 18px #0f172a0d}.subcontractor-card h3,.workcenter-card h3,.worker-card h3{color:#0f172a;margin:0;font-weight:900}.subcontractor-card p,.workcenter-card p,.worker-card p{color:#475569;margin:6px 0 12px;font-weight:500}.subcontractor-details,.worker-details{color:#4b5563;grid-template-columns:repeat(2,minmax(160px,1fr));gap:8px;font-size:14px;display:grid}.workcenter-header,.worker-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.workcenter-description{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.workcenter-details{color:#4b5563;flex-wrap:wrap;gap:16px;font-size:14px;display:flex}.workcenter-status,.worker-status{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:7px 10px;font-size:13px;font-weight:900;display:inline-flex}.workcenter-status.active,.worker-status.active{color:#166534;background:#dcfce7}.workcenter-status.paused{color:#92400e;background:#fef3c7}.workcenter-status.finished{color:#1e40af;background:#dbeafe}.workcenter-status.cancelled,.worker-status.blocked{color:#991b1b;background:#fee2e2}.worker-status.inactive{color:#374151;background:#f3f4f6}.assign-docs-preview p{color:#475569;margin:0 0 18px;font-weight:500}.document-type-preview-list{flex-direction:column;gap:10px;display:flex}.document-type-preview{background:#f8fafc;border:1px solid #d7deea;border-radius:16px;padding:14px}.document-type-preview strong{color:#0f172a;margin-bottom:5px;display:block}.document-type-preview span{color:#475569;font-size:14px;font-weight:600}@media (width<=1200px){.app-layout{grid-template-columns:240px 1fr}.sidebar{padding:18px}.stats-grid,.compact-stats{grid-template-columns:repeat(2,minmax(140px,1fr))}.subcontractors-grid,.workcenters-grid,.assign-docs-grid,.workers-grid{grid-template-columns:1fr}}@media (width<=800px){.app-layout{grid-template-columns:1fr}.sidebar{min-height:auto;padding:16px;position:relative}.brand{margin-bottom:16px}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.logout-button{margin-top:14px}.main-content,.topbar{padding:18px}.stats-grid,.compact-stats{grid-template-columns:1fr}.document-main,.topbar,.workcenter-header,.worker-header,.uploaded-file-box{flex-direction:column}.worker-details,.subcontractor-details{grid-template-columns:1fr}.upload-box,.review-box,.uploaded-file-box{align-items:stretch}.upload-box button,.uploaded-file-box button,.review-box button{width:100%}}.topbar h1{letter-spacing:-.02em;font-weight:900;margin:0 0 6px!important;font-size:30px!important;line-height:1.1!important}.topbar p{margin:4px 0 0;font-size:15px;line-height:1.4}.topbar{align-items:center}@media (width<=800px){.topbar h1{font-size:24px!important}}.workers-list,.workers-list *{min-width:0}.workers-list,.worker-card{width:100%;max-width:100%;overflow:hidden}.worker-details{word-break:break-word;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.worker-card .review-box{justify-content:flex-start}.main-content{max-width:100%;overflow-x:hidden}.worker-form,.workers-list{text-align:left}.worker-form h2,.workers-list h2{text-align:center}.worker-form label{text-align:left}.worker-form input,.worker-form select{width:100%}.subcontractors-grid{grid-template-columns:minmax(320px,420px) minmax(0,1fr);align-items:flex-start;gap:24px;width:100%;max-width:100%;display:grid;overflow:hidden}.subcontractors-list,.subcontractors-list *{min-width:0}.subcontractors-list,.subcontractor-card{width:100%;max-width:100%;overflow:hidden}.subcontractor-details{word-break:break-word;overflow-wrap:anywhere;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.subcontractor-card .review-box{justify-content:flex-start}.subcontractor-form,.subcontractors-list{text-align:left}.subcontractor-form h2,.subcontractors-list h2{text-align:center}.subcontractor-form label{text-align:left}.subcontractor-form input,.subcontractor-form select{width:100%}.user-badge{border-radius:999px;align-items:center;padding:4px 10px;font-size:14px;font-weight:900;line-height:1.2;display:inline-flex}.user-badge.admin{color:#1e40af;background:#dbeafe}.user-badge.subcontractor{color:#166534;background:#dcfce7}.user-badge.self-employed{color:#9a3412;background:#ffedd5}.user-badge.default{color:#374151;background:#f3f4f6}.subcontractor-name{letter-spacing:.06em;text-transform:uppercase;border-radius:0;padding:0;font-size:13px;font-weight:900;display:block;background:0 0!important;margin-top:8px!important}.subcontractor-name.subcontractor,.subcontractor-name.self-employed{color:#656016!important;background:0 0!important}.subcontractor-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.entity-badge{letter-spacing:.06em;text-transform:uppercase;background:0 0;align-items:center;width:fit-content;font-size:12px;font-weight:900;display:inline-flex}.entity-badge.subcontractor{color:#166534}.entity-badge.self-employed{color:#c2410c}button:disabled{opacity:.45;cursor:not-allowed}.access-company-card{background:#f9fafb}.access-company-info{flex-direction:column;gap:10px;margin-top:12px;display:flex}.access-company-type{align-items:center;display:flex}.access-company-line{color:#374151;flex-direction:column;gap:3px;font-size:14px;display:flex}.access-company-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:800}.access-subcontractor-card,.access-subcontractor-card h3,.access-subcontractor-card p,.access-subcontractor-card span{text-align:left}.access-subcontractor-card p{width:100%;margin-top:8px}.link-button{text-align:center;font-weight:800;color:#2563eb!important;background:0 0!important;margin-top:8px!important;padding:8px 0!important}.link-button:hover{text-decoration:underline}.secondary-button{background:#1e293b!important}
