:root{--color-primary: #1565c0;--color-primary-hover: #0d47a1;--color-primary-soft: #e3f2fd;--color-surface: #eef2f7;--color-surface-elevated: #ffffff;--color-card: #ffffff;--color-text: #0f172a;--color-muted: #64748b;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-danger: #b91c1c;--color-danger-soft: #fef2f2;--color-success: #15803d;--color-success-soft: #f0fdf4;--color-warning-soft: #fffbeb;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow: 0 4px 16px rgba(15, 23, 42, .06);--shadow-lg: 0 12px 40px rgba(15, 23, 42, .1);--max-width: 1080px;--header-h: 3.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--font: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.35rem;--text-2xl: 1.65rem}*,*:before,*:after{box-sizing:border-box}html{font-family:var(--font);font-size:16px;color:var(--color-text);background:var(--color-surface);line-height:1.55;-webkit-font-smoothing:antialiased}body{margin:0;min-height:100vh}a{color:var(--color-primary);text-decoration-thickness:1px;text-underline-offset:2px}a:hover{color:var(--color-primary-hover)}img{max-width:100%;height:auto}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:100;background:#ffffffeb;backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.app-header-inner{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-5);min-height:var(--header-h);display:flex;align-items:center;gap:var(--space-4)}.brand-link{display:flex;align-items:center;gap:var(--space-2);text-decoration:none;color:inherit;flex-shrink:0}.brand-link img{height:32px;width:auto}.brand-link strong{font-size:var(--text-lg);font-weight:700;letter-spacing:-.02em}.app-header nav{display:flex;align-items:center;gap:var(--space-1);margin-left:auto;flex-wrap:wrap}.app-header nav a{text-decoration:none;color:var(--color-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;transition:background .15s,color .15s}.app-header nav a:hover{color:var(--color-text);background:var(--color-surface)}.app-header nav a.nav-active{color:var(--color-primary);background:var(--color-primary-soft);font-weight:600}.user-badge{display:none;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xs);color:var(--color-muted);background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);margin-left:var(--space-2)}@media(min-width:720px){.user-badge{display:inline-block}}.app-main{flex:1;max-width:var(--max-width);width:100%;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-8)}.offline-banner{background:var(--color-warning-soft);border-bottom:1px solid #fde68a;padding:var(--space-3) var(--space-5);display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center;font-size:var(--text-sm)}.page-header{margin-bottom:var(--space-6)}.breadcrumb{margin-bottom:var(--space-3)}.breadcrumb a{font-size:var(--text-sm);color:var(--color-muted);text-decoration:none;font-weight:500}.breadcrumb a:hover{color:var(--color-primary)}.page-header-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-4)}.page-header-main{flex:1;min-width:0}.page-title{margin:0;font-size:var(--text-2xl);font-weight:700;letter-spacing:-.03em;line-height:1.2}.page-subtitle{margin:var(--space-2) 0 0;color:var(--color-muted);font-size:var(--text-sm)}.page-header-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.page-stack{display:flex;flex-direction:column;gap:var(--space-5)}.muted{color:var(--color-muted)}.small{font-size:var(--text-sm)}.text-center{text-align:center}.page-title.text-center{margin-bottom:var(--space-4)}.pre-wrap{white-space:pre-wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.62rem 1.15rem;border-radius:var(--radius);border:1px solid transparent;font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;text-decoration:none;background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm);transition:background .15s,transform .1s,box-shadow .15s}.btn:hover:not(:disabled){background:var(--color-primary-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-outline{background:var(--color-card);color:var(--color-primary);border-color:var(--color-border-strong);box-shadow:none}.btn-outline:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary)}.btn-ghost{background:transparent;color:var(--color-muted);border-color:var(--color-border);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--color-surface);color:var(--color-text)}.btn-danger-ghost{color:var(--color-danger);margin-top:var(--space-4)}.btn-danger-ghost:hover:not(:disabled){background:var(--color-danger-soft);color:var(--color-danger)}.btn-sm{padding:.4rem .85rem;font-size:var(--text-xs)}.btn-block{width:100%}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm)}.card-title{margin:0 0 var(--space-4);font-size:var(--text-base);font-weight:700;letter-spacing:-.02em}.section-block{margin-bottom:var(--space-5)}.section-block>h2:not(.card-title){font-size:var(--text-base);font-weight:700;margin:0 0 var(--space-3)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.section-head h2,.section-head .card-title{margin:0}.field{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.field:last-child{margin-bottom:0}.field label{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.field input,.field textarea,.field select,.input{font:inherit;font-size:var(--text-sm);padding:.7rem .85rem;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;color:var(--color-text);transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus,.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.field textarea{min-height:5.5rem;resize:vertical;line-height:1.5}.form-grid-2{display:grid;gap:0 var(--space-4)}@media(min-width:640px){.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-2 .field-span-2{grid-column:1 / -1}}.filters-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);margin-bottom:var(--space-5);box-shadow:var(--shadow-sm)}.filters-chips{margin-bottom:var(--space-3)}.filters-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.filters-row .input-search{flex:1;min-width:12rem}.date-filter{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;color:var(--color-muted)}.date-filter input{font:inherit;font-size:var(--text-sm);padding:.55rem .65rem;border:1px solid var(--color-border);border-radius:var(--radius)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);background:var(--color-danger-soft);color:var(--color-danger);margin-bottom:var(--space-4);font-size:var(--text-sm);border:1px solid #fecaca}.alert-info{background:var(--color-primary-soft);color:var(--color-primary-hover);border-color:#bbdefb}.empty-state{text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-muted);font-size:var(--text-sm)}.loading-text{color:var(--color-muted);font-size:var(--text-sm)}.status-badge{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:700;padding:.22rem .65rem;border-radius:var(--radius-full);background:var(--color-primary-soft);color:var(--color-primary-hover);letter-spacing:.01em;flex-shrink:0}.status-new{background:#e0f2fe;color:#0369a1}.status-in_progress{background:#fff7ed;color:#c2410c}.status-done{background:var(--color-success-soft);color:var(--color-success)}.status-archived{background:#f1f5f9;color:#475569}.job-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.job-list a{display:block;text-decoration:none;color:inherit}.job-list-item{padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .1s}.job-list-item:hover{border-color:#93c5fd;box-shadow:var(--shadow)}.job-list-item strong{font-size:var(--text-base);font-weight:600}.job-list-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-1)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.chip{padding:.4rem .9rem;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-card);font-size:var(--text-sm);font-weight:500;cursor:pointer;color:var(--color-muted);transition:all .15s}.chip:hover{border-color:var(--color-border-strong);color:var(--color-text)}.chip-active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.stat-chips{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}@media(min-width:560px){.stat-chips{grid-template-columns:repeat(4,1fr)}}.stat-chip{display:block;text-decoration:none;color:inherit;cursor:default;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);text-align:center;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .1s}a.stat-chip{cursor:pointer}a.stat-chip:hover{border-color:#93c5fd;box-shadow:var(--shadow);transform:translateY(-2px)}.stat-chip-n{display:block;font-size:1.85rem;font-weight:800;color:var(--color-primary);letter-spacing:-.04em;line-height:1.1}.stat-chip-l{font-size:var(--text-xs);font-weight:600;color:var(--color-muted);margin-top:var(--space-1)}.quick-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5);padding:var(--space-4) var(--space-5)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(21,101,192,.12),transparent),var(--color-surface)}.auth-card{width:100%;max-width:420px;padding:var(--space-8) var(--space-6)}.auth-logo{display:block;margin:0 auto var(--space-4);height:64px;width:auto}.auth-tagline{text-align:center;color:var(--color-muted);margin:0 0 var(--space-5);font-size:var(--text-sm)}.auth-footer{text-align:center;font-size:var(--text-sm);color:var(--color-muted);margin-top:var(--space-5)}.auth-footer-sm{font-size:var(--text-xs);margin-top:var(--space-3)}.auth-links-row{text-align:right;margin:0 0 var(--space-4);font-size:var(--text-sm)}.settings-nav{padding:0;overflow:hidden}.settings-nav>.card-title{padding:var(--space-5) var(--space-6) 0}.settings-link{display:block;padding:var(--space-4) var(--space-6);text-decoration:none;color:inherit;border-top:1px solid var(--color-border);transition:background .12s}.settings-link:first-of-type{border-top:none}.settings-link:hover{background:var(--color-surface)}.settings-link span:first-child{display:block;font-weight:600;font-size:var(--text-sm)}.settings-link span:last-child{display:block;margin-top:var(--space-1)}.checklist{list-style:none;padding:0;margin:0}.checklist label{display:flex;gap:var(--space-3);align-items:flex-start;cursor:pointer;padding:var(--space-2) 0;font-size:var(--text-sm)}.checklist input[type=checkbox]{width:1.1rem;height:1.1rem;margin-top:.15rem;accent-color:var(--color-primary);flex-shrink:0}.checklist .done{text-decoration:line-through;color:var(--color-muted)}.checklist-meta{display:block;margin-left:1.75rem;margin-top:var(--space-1)}.checklist-edit{list-style:none;padding:0}.checklist-edit li{display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.checklist-edit input{flex:1}.notes-list{padding-left:1.25rem;margin:0 0 var(--space-4)}.notes-list li{margin-bottom:var(--space-4)}.link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;margin-left:var(--space-2);text-decoration:underline;padding:0}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--space-3)}.photo-thumb{border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);aspect-ratio:4/3;background:var(--color-surface)}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-wrap{position:relative}.photo-del{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:none;background:#0f172aa6;color:#fff;cursor:pointer;font-size:1.1rem;line-height:1}.photo-caption{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);background:#fff;color:var(--color-muted)}.photo-placeholder{padding:var(--space-4);font-size:var(--text-xs);color:var(--color-muted)}.signature-canvas{width:100%;height:180px;border:2px dashed var(--color-border);border-radius:var(--radius);background:#fff;touch-action:none;cursor:crosshair}.signature-preview{max-width:100%;max-height:120px;display:block;margin:var(--space-3) 0;border:1px solid var(--color-border);border-radius:var(--radius);background:#fff}.pdf-frame{width:100%;min-height:75vh;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.summary-list{margin:0;padding-left:1.25rem;font-size:var(--text-sm)}.summary-list li{margin-bottom:var(--space-2)}.team-list,.audit-list{list-style:none;padding:0;margin:0}.team-list li,.audit-item{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.team-list li:last-child,.audit-item:last-child{border-bottom:none}.audit-list{display:flex;flex-direction:column}.audit-label{font-weight:600;margin:var(--space-1) 0}.logo-preview{max-height:96px;display:block;margin:var(--space-4) auto;border-radius:var(--radius)}.file-label-btn{display:inline-block;cursor:pointer}.page-footer-link{margin-top:var(--space-6);font-size:var(--text-sm)}.page-footer-link a{font-weight:600;text-decoration:none}
