@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/space-grotesk-vietnamese-400-normal.69c532c6.woff2)format("woff2"),url(../media/space-grotesk-vietnamese-400-normal.864908bb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/space-grotesk-latin-ext-400-normal.e0f1d18c.woff2)format("woff2"),url(../media/space-grotesk-latin-ext-400-normal.1e4247a1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(../media/space-grotesk-latin-400-normal.25aee7cd.woff2)format("woff2"),url(../media/space-grotesk-latin-400-normal.be236caa.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-cyrillic-ext-400-normal.6f9993c7.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-ext-400-normal.69fafd92.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-cyrillic-400-normal.6948140b.woff2)format("woff2"),url(../media/jetbrains-mono-cyrillic-400-normal.60cea313.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-greek-400-normal.9f68a1db.woff2)format("woff2"),url(../media/jetbrains-mono-greek-400-normal.c26df111.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-vietnamese-400-normal.b1a6308d.woff2)format("woff2"),url(../media/jetbrains-mono-vietnamese-400-normal.b3c2ab27.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-latin-ext-400-normal.59050454.woff2)format("woff2"),url(../media/jetbrains-mono-latin-ext-400-normal.6ced78ab.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(../media/jetbrains-mono-latin-400-normal.7d81c911.woff2)format("woff2"),url(../media/jetbrains-mono-latin-400-normal.6c85c018.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f2;--panel:#fff;--text:#111827;--text-light:#6b7280;--text-muted:#9ca3af;--muted:#6b7280;--primary:#1f2937;--primary-hover:#111827;--accent:#f97316;--accent-hover:#ea580c;--success:#10b981;--success-light:#d1fae5;--success-dark:#065f46;--warning:#f59e0b;--warning-light:#fef3c7;--warning-dark:#92400e;--error:#ef4444;--error-light:#fee2e2;--error-dark:#991b1b;--info:#3b82f6;--info-light:#dbeafe;--info-dark:#1e40af;--border:#e5e7eb;--border-light:#f3f4f6;--border-dark:#d1d5db;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--radius-sm:4px;--radius:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--space-xs:4px;--space-sm:8px;--space:12px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--font-sans:"Space Grotesk","Segoe UI",sans-serif;--font-mono:"JetBrains Mono","SFMono-Regular",monospace;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.3s cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{color:var(--text);font-family:var(--font-sans),"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#fff7ed 0%,#f6f5f2 45%,#f1f5f9 100%)}code,pre{font-family:var(--font-mono),"SFMono-Regular",monospace}a{color:inherit;text-decoration:none}.app-body{min-height:100vh}.dev-auth-banner{color:#fff;text-align:center;letter-spacing:.08em;background:#b91c1c;width:100%;padding:10px 16px;font-size:12px;font-weight:600}.shell{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);padding:32px 24px}.sidebar h1{margin-bottom:24px;font-size:18px}.nav{flex-direction:column;gap:12px;display:flex}.nav a{color:var(--muted);border:1px solid #0000;border-radius:12px;padding:10px 12px;font-size:14px}.nav a:hover{color:var(--text);border-color:var(--border);background:#fafafa}.main{padding:32px 40px}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px;box-shadow:0 1px 4px #0f172a0a}.badge{color:#9a3412;background:#ffedd5;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;display:inline-flex}.table{border-collapse:collapse;width:100%;margin-top:16px;font-size:14px}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 10px}.table th{color:var(--muted);font-weight:500}.work-order-form,.form-grid,.modal-form{gap:12px;margin-top:16px;display:grid}.form-field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.work-order-form input,.work-order-form select,.work-order-form textarea,.form-grid input,.form-grid select,.form-grid textarea,.modal-form input,.modal-form select,.modal-form textarea{border:1px solid var(--border);width:100%;color:inherit;background:#fff;border-radius:10px;padding:10px 12px;font-size:14px}.work-order-form button[type=submit],.form-grid button[type=submit],.modal-form button[type=submit]{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:8px;padding:12px;font-weight:600}.work-order-form button[disabled],.form-grid button[disabled],.modal-form button[disabled]{opacity:.6;cursor:not-allowed}.form-feedback{margin-top:4px;font-size:13px}.form-feedback.error{color:#b91c1c}.form-feedback.success{color:#047857}.page-alert{border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:14px}.page-alert.info{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.page-alert.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.link-button{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.link-button[disabled]{opacity:.5;cursor:not-allowed}.link-button.danger{color:#b91c1c}.muted{color:var(--muted);font-size:14px}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:16px;display:grid}.detail-grid dt{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:12px}.detail-grid dd{font-size:16px;font-weight:600}.package-block{border:1px solid var(--border);background:#fff;border-radius:14px;margin-top:16px;padding:16px}.package-block-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.package-meta{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.task-list{flex-direction:column;gap:12px;margin:12px 0;padding:0;list-style:none;display:flex}.task-item{border:1px solid var(--border);background:#fdfdfb;border-radius:12px;flex-direction:column;gap:8px;padding:12px;display:flex}.task-title-row{align-items:center;gap:8px;display:flex}.task-chip{color:#b91c1c;text-transform:uppercase;letter-spacing:.08em;background:#fee2e2;border-radius:999px;padding:2px 8px;font-size:11px}.task-meta-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.task-actions{flex-wrap:wrap;gap:8px;display:flex}.task-status{text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:600}.task-status.status-todo{color:#6b7280}.task-status.status-in_progress{color:#1d4ed8}.task-status.status-done{color:#047857}.task-status.status-blocked{color:#b91c1c}.task-status.status-skipped{color:#92400e}.task-inline-form{gap:8px;margin-top:12px;display:grid}.checkbox-field{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:inline-flex}.task-edit-form{gap:8px;display:grid}.task-edit-actions{justify-content:flex-end;gap:12px;display:flex}.modal-backdrop{z-index:1000;background:#0f172a80;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:16px;width:100%;max-width:480px;padding:24px;box-shadow:0 10px 40px #0f172a33}.modal h3{margin-bottom:4px}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:20px;max-width:420px;margin:8vh auto;padding:32px;box-shadow:0 12px 30px #0f172a14}.login-card h2{margin-bottom:12px}.login-card p{color:var(--muted);margin-bottom:24px}.login-card label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.login-card input{border:1px solid var(--border);border-radius:10px;width:100%;margin-bottom:16px;padding:10px 12px}.login-card button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:12px;font-weight:600}.dev-session-button{border:1px dashed var(--border);color:var(--primary);background:#0f172a0a;margin-top:12px}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border)}}.tech-container{max-width:600px;margin:0 auto;padding:16px}.tech-header{border-bottom:1px solid var(--border);align-items:center;gap:16px;margin-bottom:20px;padding-bottom:12px;display:flex}.tech-header h1{margin:0;font-size:20px}.tech-back{color:var(--primary);font-size:14px;font-weight:600}.tech-alert{border-radius:12px;margin-bottom:16px;padding:12px 16px;font-size:14px}.tech-alert.info{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe}.tech-alert.error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.tech-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;margin-bottom:16px;padding:16px;box-shadow:0 2px 8px #0f172a0a}.tech-card h2{margin:0 0 8px;font-size:18px}.tech-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 12px;font-size:14px}.tech-card-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.tech-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:600}.tech-badge.critical{color:#b91c1c;background:#fee2e2}.tech-description{color:var(--muted);margin:8px 0 12px;font-size:14px;line-height:1.5}.tech-meta{flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.tech-status{text-transform:uppercase;letter-spacing:.05em;border-radius:8px;padding:4px 10px;font-weight:600}.tech-status.todo{color:#6b7280;background:#f3f4f6}.tech-status.in_progress{color:#1d4ed8;background:#dbeafe}.tech-status.done{color:#047857;background:#d1fae5}.tech-status.blocked{color:#b91c1c;background:#fee2e2}.tech-wo{color:var(--muted)}.timer-card{text-align:center;padding:24px 16px}.timer-display{margin-bottom:20px}.timer-time{font-size:48px;font-weight:700;font-family:var(--font-mono),monospace;line-height:1;display:block}.timer-label{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-top:8px;font-size:14px;display:block}.timer-controls{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.tech-btn{cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:100px;padding:14px 24px;font-size:15px;font-weight:600;transition:all .15s;display:inline-flex}.tech-btn:disabled{opacity:.5;cursor:not-allowed}.tech-btn.large{min-width:140px;padding:18px 32px;font-size:16px}.tech-btn.primary{background:var(--primary);color:#fff}.tech-btn.primary:hover:not(:disabled){background:#374151}.tech-btn.success{color:#fff;background:#059669}.tech-btn.success:hover:not(:disabled){background:#047857}.tech-btn.warning{color:#fff;background:#f59e0b}.tech-btn.warning:hover:not(:disabled){background:#d97706}.tech-btn.danger{color:#fff;background:#dc2626}.tech-btn.danger:hover:not(:disabled){background:#b91c1c}.status-grid{flex-wrap:wrap;gap:12px;display:flex}.tech-complete{color:#059669;font-size:16px;font-weight:600}.tech-textarea{border:1px solid var(--border);resize:vertical;border-radius:12px;width:100%;min-height:80px;margin-bottom:12px;padding:12px;font-family:inherit;font-size:15px}.tech-textarea:focus{border-color:var(--primary);outline:none}.note-success{color:#059669;margin-left:12px;font-size:14px}@media (max-width:600px){.tech-btn{min-height:48px;padding:16px 20px}.tech-btn.large{width:100%;padding:20px}.timer-controls{flex-direction:column}.timer-controls .tech-btn{width:100%}.status-grid{flex-direction:column}.status-grid .tech-btn{width:100%}}.tech-dashboard-card{margin-bottom:16px}.tech-list{margin:0;padding:0;list-style:none}.tech-list-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 0;display:flex}.tech-list-item:last-child{border-bottom:none}.tech-list-item-content{flex:1;min-width:0}.tech-list-item-title{align-items:center;gap:8px;margin-bottom:4px;font-size:15px;font-weight:600;display:flex}.tech-list-item-meta{color:var(--muted);font-size:13px}.tech-list-item-action{flex-shrink:0;margin-left:12px}.timer-indicator{color:#1d4ed8;background:#dbeafe;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.timer-indicator.running:before{content:"";background:#1d4ed8;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.evidence-list{flex-direction:column;gap:12px;display:flex}.evidence-item{background:var(--card-muted);border-left:3px solid var(--primary);border-radius:8px;padding:12px}.evidence-item.note-item{border-left-color:#3b82f6}.evidence-content{white-space:pre-wrap;margin-bottom:8px;font-size:14px;line-height:1.5}.evidence-meta{color:var(--muted);font-size:12px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.photo-item{background:var(--card-muted);border-radius:8px;overflow:hidden}.photo-item img{object-fit:cover;width:100%;height:120px;display:block}.photo-item .evidence-meta{text-align:center;padding:8px}.info-grid{flex-direction:column;gap:12px;display:flex}.info-row{flex-direction:column;gap:2px;display:flex}.info-label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px}.info-value{font-size:15px;font-weight:500}.progress-bar-container{background:var(--card-muted);border-radius:6px;height:12px;margin-bottom:8px;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:6px;height:100%;transition:width .3s}.progress-stats{justify-content:space-between;font-size:14px;font-weight:500;display:flex}.progress-note{color:var(--muted);margin-top:4px;font-size:13px}.wo-number{color:var(--muted);margin-bottom:4px;font-size:13px}.wo-meta{color:var(--muted);margin-top:12px;font-size:13px}.package-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.package-progress{color:var(--muted);font-size:13px}.timer-indicator.paused{color:#92400e;background:#fef3c7}.tech-wo-link{color:var(--primary);font-size:13px;text-decoration:none}.tech-wo-link:hover{text-decoration:underline}.tech-complete{color:#16a34a;flex-direction:column;align-items:center;gap:4px;padding:16px;font-weight:600;display:flex}.tech-btn.large{padding:16px 24px;font-size:16px}.attachments-panel{flex-direction:column;gap:16px;display:flex}.attachment-upload-form{flex-direction:column;gap:12px;display:flex}.attachment-field{flex-direction:column;gap:4px;display:flex}.attachment-field-label{color:var(--muted);font-size:13px}.attachment-input{border:1px solid var(--border);background:var(--background);border-radius:8px;padding:10px 12px;font-size:14px}.attachment-input:focus{border-color:var(--primary);outline:none}.attachment-file-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.attachment-file-btn{background:var(--card-muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:10px 16px;font-size:14px}.attachment-file-btn:hover{background:var(--border)}.attachment-file-name{color:var(--muted);word-break:break-all;flex:1;min-width:0;font-size:14px}.attachments-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.attachment-card{background:var(--card-muted);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:12px;display:flex}.attachment-icon{text-align:center;flex-shrink:0;width:36px;font-size:24px}.attachment-info{flex:1;min-width:0;overflow:hidden}.attachment-filename{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:14px;font-weight:600;overflow:hidden}.attachment-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.attachment-label{background:var(--primary);color:#fff;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500}.attachment-actions{flex-shrink:0;gap:8px;display:flex}.attachment-action-btn{background:var(--background);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:background .15s;display:flex}.attachment-action-btn:hover{background:var(--border)}.attachment-action-btn.delete:hover{background:#fee2e2;border-color:#fecaca}.page-container{max-width:1200px;margin:0 auto;padding:24px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header h1{margin:0;font-size:28px;font-weight:700}.page-subtitle{color:var(--muted);margin:4px 0 0;font-size:14px}.back-link{color:var(--primary);margin-bottom:8px;font-size:14px;text-decoration:none;display:inline-block}.header-actions{gap:8px;display:flex}.filter-bar{margin-bottom:16px}.filter-bar select{border:1px solid var(--border);background:var(--background);border-radius:6px;padding:8px 12px;font-size:14px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.pack-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;padding:20px;text-decoration:none;transition:box-shadow .2s,border-color .2s;display:block}.pack-card:hover{border-color:var(--primary);box-shadow:0 4px 12px #0000001a}.pack-card-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.pack-card-header h3{margin:0;font-size:18px;font-weight:600}.pack-description{color:var(--muted);margin:0 0 12px;font-size:14px;line-height:1.4}.pack-meta{color:var(--muted);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.pack-equipment{background:var(--card-muted);border-radius:4px;padding:2px 8px}.status-badge{text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.status-active{color:#166534;background:#dcfce7}.status-draft{color:#92400e;background:#fef3c7}.status-archived{color:#4b5563;background:#e5e7eb}.btn{cursor:pointer;border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--card-muted);color:var(--foreground);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border)}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.btn-icon:hover{background:var(--card-muted)}.btn-icon.danger:hover{background:#fee2e2}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;padding:24px}.card h2{margin:0 0 16px;font-size:18px;font-weight:600}.card-header-row{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.card-header-row h2{margin:0}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.form-field{flex-direction:column;gap:6px;display:flex}.form-field.full-width{grid-column:1/-1}.form-field label{color:var(--muted);font-size:13px;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--border);background:var(--background);border-radius:8px;padding:10px 12px;font-size:14px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--primary);outline:none}.form-row{flex-wrap:wrap;gap:24px;margin-top:8px;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.checkbox-label input{width:18px;height:18px}.form-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.tasks-by-type{flex-direction:column;gap:20px;display:flex}.task-group-header{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);align-items:center;gap:8px;margin:0 0 8px;padding-bottom:8px;font-size:14px;font-weight:600;display:flex}.task-count{font-size:13px;font-weight:400}.task-list{margin:0;padding:0;list-style:none}.task-item{background:var(--card-muted);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.task-info{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.task-number{color:var(--muted);min-width:24px;font-weight:600}.task-title{font-weight:500}.task-time{color:var(--muted);font-size:12px}.task-actions{gap:4px;display:flex}.badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.badge.critical{color:#dc2626;background:#fee2e2}.badge.evidence{color:#1d4ed8;background:#dbeafe}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:480px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 25px 50px -12px #00000040}.modal h2{margin:0 0 20px;font-size:20px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.empty-state{text-align:center;padding:48px 24px}.empty-state p{color:var(--muted);margin-bottom:16px}.alert{border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:14px}.alert-error{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.loading{text-align:center;color:var(--muted);padding:48px}.modal .form-field label,.modal .form-field span{margin-bottom:6px;font-size:13px;font-weight:500;display:block;color:var(--foreground,#1f2937)!important}.modal .form-field input,.modal .form-field textarea,.modal .form-field select{color:var(--foreground,#1f2937);background:var(--background,#fff)}.modal .form-field input::placeholder,.modal .form-field textarea::placeholder{color:#9ca3af}.modal h2,.modal .form-row,.modal .checkbox-label{color:var(--foreground,#1f2937)}.modal-wide{max-width:600px}.measurement-list{margin:0;padding:0;list-style:none}.measurement-item{background:var(--card-muted,#f9fafb);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.measurement-info{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.measurement-info strong{font-weight:600}.measurement-unit{color:var(--muted);font-size:13px}.measurement-range{color:var(--muted);background:var(--background);border-radius:4px;padding:2px 8px;font-size:12px}.badge.numeric{color:#1d4ed8;background:#dbeafe}.badge.pass_fail{color:#92400e;background:#fef3c7}.badge.text{color:#4b5563;background:#e5e7eb}.badge.required{color:#dc2626;background:#fee2e2}.add-measurement-form{background:var(--card-muted,#f9fafb);border-radius:8px;margin-top:20px;padding:16px}.add-measurement-form h4{margin:0 0 12px;font-size:14px;font-weight:600}.measurements-section{margin-top:20px}.measurements-section h3{margin:0 0 12px;font-size:16px;font-weight:600}.measurement-capture{background:var(--card,#fff);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:12px}.measurement-capture-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.measurement-capture-name{font-size:14px;font-weight:600}.measurement-capture-unit{color:var(--muted);font-size:13px}.measurement-capture-range{color:var(--muted);margin-bottom:8px;font-size:12px}.measurement-capture input[type=number],.measurement-capture input[type=text]{border:1px solid var(--border);border-radius:6px;width:100%;padding:10px 12px;font-size:16px}.measurement-capture-toggle{gap:8px;display:flex}.measurement-capture-toggle button{border:2px solid var(--border);background:var(--background);cursor:pointer;border-radius:8px;flex:1;padding:12px;font-size:14px;font-weight:500;transition:all .15s}.measurement-capture-toggle button.selected{border-color:var(--primary);background:var(--primary);color:#fff}.measurement-capture-toggle button.pass.selected{background:#16a34a;border-color:#16a34a}.measurement-capture-toggle button.fail.selected{background:#dc2626;border-color:#dc2626}.measurement-status{align-items:center;gap:6px;margin-top:8px;font-size:13px;display:flex}.measurement-status.in-spec{color:#16a34a}.measurement-status.out-of-spec{color:#dc2626}.measurement-captured-by{color:var(--muted);margin-top:4px;font-size:12px}.table-container{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:12px}.data-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.data-table td strong{font-weight:600}.data-table tr:hover{background:var(--card-muted,#f9fafb)}.data-table .inactive-row{opacity:.5}.badge.part{color:#1d4ed8;background:#dbeafe}.badge.consumable{color:#92400e;background:#fef3c7}.badge.fluid{color:#065f46;background:#d1fae5}.badge.other{color:#4b5563;background:#e5e7eb}.material-qty{background:var(--background);border-radius:4px;padding:2px 8px;font-size:13px}.materials-list{flex-direction:column;gap:8px;display:flex}.material-item{background:var(--card-muted,#f9fafb);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.material-info{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.material-info strong{font-weight:600}.material-part{color:var(--muted);font-size:13px}.material-qty{background:var(--primary);color:#fff;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.material-cost{color:#16a34a;font-weight:600}.tech-btn.small{padding:6px 12px;font-size:13px}.tech-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.tech-card-header h3{margin:0}.wo-meta-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-top:16px;display:grid}.wo-meta-grid .label{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;display:block}.wo-meta-grid .value{font-weight:600}.package-section{border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.package-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:12px;display:flex}.package-header h3{margin:0 0 4px}.package-meta{color:var(--muted);font-size:13px}.task-list-admin{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.task-card{border:1px solid var(--border);border-radius:8px;transition:border-color .15s,box-shadow .15s;overflow:hidden}.task-card:hover{border-color:var(--primary)}.task-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px #4f46e51a}.task-card-main{cursor:pointer;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 16px;display:flex}.task-card-info strong{font-weight:600}.task-desc{color:var(--muted);margin:4px 0 0;font-size:13px}.task-card-meta{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.task-status{border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.task-status.status-todo{color:#4b5563;background:#e5e7eb}.task-status.status-in_progress{color:#1d4ed8;background:#dbeafe}.task-status.status-done{color:#065f46;background:#d1fae5}.task-status.status-blocked{color:#dc2626;background:#fee2e2}.task-status.status-skipped{color:#6b7280;background:#f3f4f6}.task-card-details{background:var(--card-muted,#f9fafb);border-top:1px solid var(--border);padding:12px 16px}.task-detail-section h4{margin:0 0 8px;font-size:13px;font-weight:600}.task-materials-list{margin:0;padding:0;font-size:13px;list-style:none}.task-materials-list li{padding:4px 0}.task-card-actions{gap:8px;margin-top:12px;display:flex}.add-task-btn{width:100%}.add-task-form{background:var(--card-muted,#f9fafb);border:1px solid var(--border);border-radius:8px;padding:16px}.add-task-form h4{margin:0 0 12px;font-size:14px}.materials-summary{flex-direction:column;gap:8px;display:flex}.material-summary-item{background:var(--card-muted,#f9fafb);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.material-summary-details{align-items:center;gap:12px;font-size:13px;display:flex}.materials-total{text-align:right;border-top:1px solid var(--border);margin-top:8px;padding:12px}.btn-outline{border:1px dashed var(--border);color:var(--muted);background:0 0}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-sm{padding:4px 12px;font-size:13px}.signature-pad-container{padding:16px}.signature-pad-container h3{margin:0 0 16px}.signature-canvas-wrapper{border:2px solid var(--border);background:#fff;border-radius:8px;margin:16px 0;position:relative}.signature-canvas-wrapper canvas{touch-action:none;cursor:crosshair;width:100%;max-width:400px;height:auto;display:block}.signature-hint{color:var(--muted);pointer-events:none;font-size:12px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.signature-actions{justify-content:flex-end;gap:8px;display:flex}.signatures-section{margin-top:16px}.signature-item{background:var(--card-muted,#f9fafb);border-radius:8px;gap:12px;margin-bottom:8px;padding:12px;display:flex}.signature-image{border:1px solid var(--border);object-fit:contain;background:#fff;border-radius:4px;width:120px;height:60px}.signature-info{flex:1}.signature-info strong{display:block}.signature-type{text-transform:uppercase;border-radius:4px;margin-bottom:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.signature-type.customer{color:#1d4ed8;background:#dbeafe}.signature-type.tech{color:#065f46;background:#d1fae5}.signature-type.witness{color:#92400e;background:#fef3c7}.signature-meta{color:var(--muted);font-size:12px}.add-signature-buttons{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.add-signature-buttons .btn{flex:1;min-width:120px}.order-type-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.order-type-badge.work-order{color:#1d4ed8;background:#dbeafe}.order-type-badge.sales-order{color:#065f46;background:#d1fae5}.order-type-badge.project{color:#92400e;background:#fef3c7}.status-badge{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-badge.large{padding:4px 12px;font-size:13px}.status-badge.gray{color:#374151;background:#e5e7eb}.status-badge.blue{color:#1d4ed8;background:#dbeafe}.status-badge.green{color:#065f46;background:#d1fae5}.status-badge.red{color:#b91c1c;background:#fee2e2}.status-badge.orange{color:#92400e;background:#fef3c7}.status-badge.purple{color:#6d28d9;background:#ede9fe}.item-type-badge{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.item-type-badge.labor{color:#1d4ed8;background:#dbeafe}.item-type-badge.material{color:#065f46;background:#d1fae5}.item-type-badge.service{color:#92400e;background:#fef3c7}.item-type-badge.other{color:#374151;background:#e5e7eb}.btn-success{color:#fff;background:#059669}.btn-success:hover{background:#047857}.btn-danger{color:#fff;background:#dc2626}.btn-danger:hover{background:#b91c1c}.page-header-row{margin-bottom:16px}.back-link{color:var(--primary);text-decoration:none}.back-link:hover{text-decoration:underline}.page-container{max-width:1000px}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;animation:.2s ease-out modalSlideIn;display:flex;box-shadow:0 20px 50px #0000004d}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h2{margin:0;font-size:20px;font-weight:600}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:28px;line-height:1;transition:all .2s;display:flex}.modal-close:hover{background:var(--border);color:var(--text)}.modal-body{flex:1;padding:24px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.modal-footer button{min-width:100px}.analytics-page{background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%);min-height:100vh}.analytics-header{z-index:10;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0}.analytics-header-inner{justify-content:space-between;align-items:center;max-width:1280px;height:56px;margin:0 auto;padding:0 24px;display:flex}.analytics-header h1{color:#0f172a;margin:0;font-size:18px;font-weight:600}.analytics-controls{align-items:center;gap:8px;display:flex}.analytics-range-selector{background:#f1f5f9;border-radius:8px;padding:2px;display:flex}.analytics-range-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s}.analytics-range-btn.active{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0000001a}.analytics-export-btn{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;transition:all .2s}.analytics-export-btn:hover{color:#0f172a;background:#f1f5f9}.analytics-container{max-width:1280px;margin:0 auto;padding:24px}.analytics-kpi-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px;display:grid}.analytics-kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px;transition:border-color .2s}.analytics-kpi-card:hover{border-color:#93c5fd}.analytics-kpi-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.analytics-kpi-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:10px;font-weight:500}.analytics-kpi-change{font-size:10px;font-weight:500}.analytics-kpi-change.positive{color:#10b981}.analytics-kpi-change.negative{color:#ef4444}.analytics-kpi-value{color:#0f172a;margin:4px 0;font-size:24px;font-weight:700}.analytics-kpi-meta{color:#64748b;margin-top:2px;font-size:10px}.analytics-list-grid{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px;display:grid}.analytics-list-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.analytics-list-title{text-transform:uppercase;letter-spacing:.05em;color:#0f172a;margin:0 0 8px;font-size:12px;font-weight:600}.analytics-list{flex-direction:column;gap:6px;display:flex}.analytics-list-item{justify-content:space-between;align-items:center;font-size:12px;display:flex}.analytics-list-name{color:#0f172a;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:500;overflow:hidden}.analytics-list-value{color:#64748b;margin-left:8px}.analytics-list-percent{color:#94a3b8;margin-left:8px;font-size:10px}.analytics-list-empty{color:#94a3b8;font-size:12px}.analytics-stats-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.analytics-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:12px}.analytics-stat-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-size:10px;font-weight:500}.analytics-stat-value{color:#0f172a;margin:4px 0;font-size:20px;font-weight:700}.analytics-stat-meta{color:#64748b;margin-top:2px;font-size:10px}.analytics-loading{background:#f8fafc;justify-content:center;align-items:center;height:100vh;display:flex}.analytics-loading-content{text-align:center}.analytics-spinner{border:2px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:48px;height:48px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.analytics-loading-text{color:#64748b;margin-top:12px;font-size:14px}@media (max-width:900px){.analytics-kpi-grid{grid-template-columns:repeat(2,1fr)}.analytics-list-grid,.analytics-stats-grid{grid-template-columns:1fr}}.work-order-details{min-height:100vh;padding:var(--space-lg);background:linear-gradient(135deg,#f8fafc 0%,#f1f5f9 100%)}.work-order-header{max-width:1400px;margin:0 auto var(--space-xl);padding-bottom:var(--space-lg);border-bottom:2px solid var(--border)}.work-order-header h1{color:var(--text);margin-bottom:var(--space);font-size:28px;font-weight:700}.work-order-meta{gap:var(--space-lg);color:var(--text-light);flex-wrap:wrap;font-size:14px;display:flex}.work-order-meta strong{color:var(--text);font-weight:600}.work-order-status-badge{border-radius:var(--radius-full);padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.work-order-status-badge.completed{background:var(--success-light);color:var(--success-dark)}.work-order-status-badge.in-progress{background:var(--info-light);color:var(--info-dark)}.work-order-status-badge.open{background:var(--warning-light);color:var(--warning-dark)}.work-package-tabs{max-width:1400px;margin:0 auto var(--space-lg);gap:var(--space-sm);border-bottom:1px solid var(--border);display:flex}.work-package-tab{padding:var(--space)var(--space-lg);cursor:pointer;color:var(--text-light);transition:all var(--transition);background:0 0;border:none;border-bottom:3px solid #0000;font-size:14px;font-weight:500}.work-package-tab:hover{color:var(--text)}.work-package-tab.active{border-bottom-color:var(--info);color:var(--info);font-weight:600}.work-package-tab-count{margin-left:var(--space-sm);color:var(--text-muted);font-size:12px}.task-list{gap:var(--space-md);flex-direction:column;max-width:1400px;margin:0 auto;display:flex}.task-card{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);box-shadow:var(--shadow-sm);transition:all var(--transition);background:#fff}.task-card:hover{border-color:var(--border-dark);box-shadow:var(--shadow)}.task-card.completed{background:var(--success-light);border-color:var(--success)}.task-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.task-title-group{align-items:center;gap:var(--space);flex:1;display:flex}.task-checkbox{cursor:pointer;width:20px;height:20px;accent-color:var(--success)}.task-title{color:var(--text);margin:0;font-size:16px;font-weight:600}.task-description{color:var(--text-light);margin-top:2px;font-size:14px}.task-badges{align-items:center;gap:var(--space-md);display:flex}.task-badge{color:var(--text-light);align-items:center;gap:4px;font-size:14px;display:flex}.task-expand-btn{cursor:pointer;color:var(--text-light);transition:all var(--transition-fast);background:0 0;border:none;padding:4px;font-size:20px}.task-expand-btn:hover{color:var(--text)}.task-details{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.task-section{margin-bottom:var(--space-md)}.task-section-header{margin-bottom:var(--space);justify-content:space-between;align-items:center;display:flex}.task-section-title{color:var(--primary);align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.task-section-action{background:var(--info);color:#fff;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none;padding:6px 12px;font-size:13px;font-weight:500}.task-section-action:hover{background:var(--info-dark)}.material-list{gap:var(--space-sm);flex-direction:column;display:flex}.material-item{padding:var(--space);background:var(--bg);border-radius:var(--radius);justify-content:space-between;align-items:center;display:flex}.material-info{flex:1}.material-name{color:var(--text);font-size:14px;font-weight:600}.material-part-number,.material-quantity{color:var(--text-light);margin-top:2px;font-size:12px}.material-notes{color:var(--text-muted);margin-top:4px;font-size:12px;font-style:italic}.material-actions{align-items:center;gap:var(--space);display:flex}.material-cost{color:var(--text);font-size:15px;font-weight:600}.material-remove-btn{background:var(--error);color:#fff;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none;padding:4px 8px;font-size:12px;font-weight:500}.material-remove-btn:hover{background:var(--error-dark)}.material-empty{padding:var(--space);background:var(--bg);border-radius:var(--radius);color:var(--text-light);text-align:center;font-size:13px}.material-dialog-overlay{z-index:1000;animation:fadeIn var(--transition);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.material-dialog{border-radius:var(--radius-lg);padding:var(--space-xl);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-slow);background:#fff;overflow:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.material-dialog h2{margin:0 0 var(--space-lg)0;color:var(--text);font-size:20px;font-weight:700}.material-search-group{margin-bottom:var(--space-lg)}.material-search-label{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:500;display:block}.material-search-input{width:100%;padding:var(--space)var(--space);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);font-size:14px}.material-search-input:focus{border-color:var(--info);outline:none;box-shadow:0 0 0 3px #3b82f61a}.material-search-results{margin-top:var(--space);border:1px solid var(--border);border-radius:var(--radius);max-height:200px;overflow:auto}.material-search-item{padding:var(--space);border-bottom:1px solid var(--border-light);cursor:pointer;transition:all var(--transition-fast)}.material-search-item:last-child{border-bottom:none}.material-search-item:hover{background:var(--bg)}.material-search-item.selected{background:var(--info-light)}.material-search-item-name{color:var(--text);font-size:14px;font-weight:600}.material-search-item-meta{color:var(--text-light);margin-top:2px;font-size:12px}.material-form{gap:var(--space-md);display:grid}.material-form-row{gap:var(--space);grid-template-columns:repeat(3,1fr);display:grid}.material-form-field{flex-direction:column;gap:6px;display:flex}.material-form-label{color:var(--text);font-size:14px;font-weight:500}.material-form-label.required:after{content:" *";color:var(--error)}.material-form-input,.material-form-textarea{width:100%;padding:var(--space)var(--space);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);font-family:inherit;font-size:14px}.material-form-input:focus,.material-form-textarea:focus{border-color:var(--info);outline:none;box-shadow:0 0 0 3px #3b82f61a}.material-form-textarea{resize:vertical;min-height:80px}.material-total-preview{padding:var(--space);background:var(--info-light);border-radius:var(--radius);margin-bottom:var(--space-lg);color:var(--info-dark);font-size:14px;font-weight:600}.material-form-actions{gap:var(--space);margin-top:var(--space);justify-content:flex-end;display:flex}.material-cancel-btn{padding:var(--space)var(--space-lg);background:var(--border-light);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none;font-size:14px;font-weight:500}.material-cancel-btn:hover{background:var(--border)}.material-submit-btn{padding:var(--space)var(--space-lg);background:var(--info);color:#fff;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);border:none;font-size:14px;font-weight:600}.material-submit-btn:hover{background:var(--info-dark)}@media (max-width:768px){.work-order-details{padding:var(--space)}.work-order-meta{gap:var(--space-sm);flex-direction:column}.work-package-tabs{overflow-x:auto}.task-badges{align-items:flex-start;gap:var(--space-sm);flex-direction:column}.material-form-row{grid-template-columns:1fr}.material-dialog{width:95%;padding:var(--space-lg)}button,a.btn,select{min-height:44px}.btn{padding:12px 20px;font-size:16px}.modal{max-width:95vw;max-height:90vh;overflow-y:auto}input[type=text],input[type=email],input[type=number],input[type=tel],input[type=password],select,textarea{font-size:16px}.card-grid,.kb-grid{grid-template-columns:1fr!important}.table-container{-webkit-overflow-scrolling:touch;overflow-x:auto}.filter-bar{flex-direction:column}.filter-bar input,.filter-bar select{width:100%}}@media (max-width:768px) and (orientation:landscape){.modal{max-height:95vh}}@media (display-mode:standalone){.page-container{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}}.tf-list{flex-direction:column;gap:10px;display:flex}.tf-item{background:var(--card-muted,#f9fafb);border-left:4px solid #e5e7eb;border-radius:8px;padding:12px}.tf-item-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.tf-priority{text-transform:uppercase;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.tf-priority.low{color:#4b5563;background:#e5e7eb}.tf-priority.medium{color:#92400e;background:#fef3c7}.tf-priority.high{color:#c2410c;background:#fed7aa}.tf-priority.critical{color:#dc2626;background:#fee2e2}.tf-item:has(.tf-priority.critical){border-left-color:#ef4444}.tf-item:has(.tf-priority.high){border-left-color:#f97316}.tf-item:has(.tf-priority.medium){border-left-color:#f59e0b}.tf-category{color:#374151;text-transform:capitalize;font-size:12px;font-weight:600}.tf-details{color:#111827;margin:0 0 6px;font-size:14px;line-height:1.4}.tf-meta{color:#6b7280;font-size:12px}.ci-card{border-left:4px solid #3b82f6}.ci-active{padding:8px 0}.ci-status{color:#111827;align-items:center;gap:8px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.ci-dot{background:#d1d5db;border-radius:50%;width:10px;height:10px}.ci-dot.active{background:#10b981;animation:2s ease-in-out infinite ci-pulse;box-shadow:0 0 0 3px #10b98133}@keyframes ci-pulse{0%,to{box-shadow:0 0 0 3px #10b98133}50%{box-shadow:0 0 0 6px #10b9811a}}.ci-coords{color:#6b7280;margin-top:4px;font-family:monospace;font-size:12px}.cm-card{border-top:3px solid #10b981}.cm-complete-banner{color:#065f46;background:#d1fae5;border-radius:8px;align-items:center;gap:16px;padding:12px;display:flex}.cm-complete-banner strong{margin-bottom:2px;font-size:16px;display:block}.cm-checklist{flex-direction:column;gap:8px;margin-top:8px;display:flex}.cm-check-item{border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.cm-check-item.pass{color:#065f46;background:#d1fae5}.cm-check-item.fail{color:#991b1b;background:#fee2e2}.cm-check-item.warn{color:#92400e;background:#fef3c7}.cm-check-item.info{color:#1e40af;background:#dbeafe}.cm-check-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;font-weight:700;display:flex}.cm-check-item.pass .cm-check-icon{color:#fff;background:#10b981}.cm-check-item.fail .cm-check-icon{color:#fff;background:#ef4444}.cm-check-item.warn .cm-check-icon{color:#fff;background:#f59e0b}.cm-check-item.info .cm-check-icon{color:#fff;background:#3b82f6}@media (max-width:768px){.tf-item-header{flex-wrap:wrap}.ci-card{border-left-width:4px}.cm-checklist{gap:6px}.cm-check-item{padding:8px 10px;font-size:13px}}.cib-banner{z-index:100;padding:8px 16px;transition:background-color .3s;position:sticky;top:0}.cib-banner.cib-normal{background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.cib-banner.cib-warning{background:linear-gradient(135deg,#f59e0b 0%,#d97706 100%)}.cib-banner.cib-danger{background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%)}.cib-content{align-items:center;gap:10px;max-width:1200px;margin:0 auto;display:flex}.cib-dot{background:#fff;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s ease-in-out infinite cib-pulse}@keyframes cib-pulse{0%,to{opacity:1}50%{opacity:.4}}.cib-info{flex:1;min-width:0}.cib-link{color:#fff;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;text-decoration:none;display:flex}.cib-link:hover{text-decoration:underline}.cib-link strong{font-weight:600}.cib-separator{opacity:.7}.cib-wo{opacity:.9;font-size:12px}.cib-timer{color:#fff;white-space:nowrap;border-radius:var(--radius-sm);background:#fff3;padding:2px 8px;font-family:SF Mono,Fira Code,monospace;font-size:14px;font-weight:700}.cib-checkout-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff26;border:1.5px solid #ffffffb3;padding:4px 12px;font-size:12px;font-weight:600;transition:background .15s}.cib-checkout-btn:hover{background:#ffffff4d}.cib-checkout-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width:768px){.cib-content{flex-wrap:wrap;gap:6px}.cib-link{font-size:12px}.cib-timer{font-size:13px}}.pc-container{margin-bottom:16px}.pc-controls{flex-direction:column;gap:8px;display:flex}.pc-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pc-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:140px;color:var(--text);flex:1;padding:8px 10px;font-size:13px}.pc-checkbox-label{color:var(--text-light);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.pc-checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.pc-caption-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:var(--panel);padding:8px 10px;font-size:13px}.pc-caption-input::placeholder{color:var(--text-muted)}.pc-buttons{gap:8px;display:flex}.pc-buttons .tech-btn{flex:1}.pc-error{background:var(--error-light);color:var(--error-dark);border-radius:var(--radius);margin-top:8px;padding:8px 12px;font-size:13px}@media (max-width:480px){.pc-buttons{flex-direction:column}}.pg-container{margin-top:12px}.pg-filters{border-bottom:1px solid var(--border-light);flex-wrap:wrap;gap:6px;margin-bottom:12px;padding-bottom:12px;display:flex}.pg-filter-btn{border:1px solid var(--border);border-radius:var(--radius-full);background:var(--panel);color:var(--text-light);cursor:pointer;padding:4px 10px;font-size:12px;transition:all .15s}.pg-filter-btn:hover{border-color:var(--primary);color:var(--primary)}.pg-filter-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.pg-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.pg-card{border:1px solid var(--border-light);border-radius:var(--radius);cursor:pointer;background:var(--panel);transition:box-shadow .15s,transform .1s;overflow:hidden}.pg-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.pg-thumb{aspect-ratio:1;object-fit:cover;width:100%;display:block}.pg-thumb-placeholder{aspect-ratio:1;background:var(--border-light);width:100%;color:var(--text-muted);justify-content:center;align-items:center;font-size:12px;display:flex}.pg-card-info{flex-wrap:wrap;align-items:center;gap:4px;padding:6px 8px;display:flex}.pg-type-badge{border-radius:var(--radius-sm);background:var(--info-light);color:var(--info-dark);text-transform:uppercase;letter-spacing:.3px;padding:2px 6px;font-size:10px;font-weight:600;display:inline-block}.pg-caption{color:var(--text-light);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;overflow:hidden}.pg-visible-badge{border-radius:var(--radius-sm);background:var(--success-light);color:var(--success-dark);text-transform:uppercase;padding:1px 5px;font-size:9px;font-weight:600;display:inline-block}.pg-overlay{z-index:1000;background:#000000e6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.pg-viewer{flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;display:flex;position:relative}.pg-close{z-index:10;color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:24px;transition:background .15s;display:flex;position:absolute;top:-12px;right:-12px}.pg-close:hover{background:#fff6}.pg-full-image{object-fit:contain;border-radius:var(--radius);max-width:100%;max-height:70vh}.pg-no-preview{color:#fff9;border-radius:var(--radius);background:#ffffff1a;justify-content:center;align-items:center;width:300px;height:200px;display:flex}.pg-viewer-info{border-radius:var(--radius);color:#fff;background:#ffffff1a;width:100%;max-width:500px;margin-top:12px;padding:12px 16px}.pg-viewer-row{align-items:center;gap:8px;margin-bottom:6px;display:flex}.pg-viewer-caption{color:#ffffffe6;margin:6px 0;font-size:14px}.pg-viewer-meta{color:#fff9;justify-content:space-between;font-size:12px;display:flex}.pg-viewer-gps{color:#ffffff80;margin-top:4px;font-family:monospace;font-size:11px}.pg-nav{align-items:center;gap:16px;margin-top:12px;display:flex}.pg-nav-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:24px;transition:background .15s;display:flex}.pg-nav-btn:hover:not(:disabled){background:#ffffff40}.pg-nav-btn:disabled{opacity:.3;cursor:not-allowed}.pg-nav-count{color:#ffffffb3;font-size:13px}@media (max-width:768px){.pg-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.pg-viewer{max-width:95vw}.pg-full-image{max-height:60vh}}.offline-indicator{z-index:9999;justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);background:var(--warning);color:var(--warning-dark);font-size:.85rem;font-weight:600;font-family:var(--font-sans);text-align:center;animation:slideDown var(--transition)ease-out;display:flex;position:fixed;top:0;left:0;right:0}.offline-indicator svg{flex-shrink:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.offline-page{min-height:100vh;padding:var(--space-lg);background:var(--bg);justify-content:center;align-items:center;display:flex}.offline-card{max-width:420px;padding:var(--space-2xl)var(--space-xl);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;align-items:center;display:flex}.offline-icon{width:96px;height:96px;margin-bottom:var(--space-lg);background:var(--warning-light);border-radius:var(--radius-full);color:var(--warning-dark);justify-content:center;align-items:center;display:flex}.offline-title{margin-bottom:var(--space);color:var(--text);font-size:1.5rem;font-weight:700}.offline-description{margin-bottom:var(--space-lg);color:var(--text-light);font-size:.95rem;line-height:1.6}.offline-reconnected{margin-bottom:var(--space-md);padding:var(--space-sm)var(--space-md);background:var(--success-light);border-radius:var(--radius);color:var(--success-dark);font-size:.9rem;font-weight:500}.offline-retry-btn{padding:var(--space)var(--space-xl);background:var(--accent);color:#fff;border-radius:var(--radius);font-size:.95rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:background var(--transition-fast);border:none}.offline-retry-btn:hover{background:var(--accent-hover)}.offline-hint{margin-top:var(--space-lg);color:var(--text-muted);font-size:.8rem;line-height:1.5}.install-prompt{z-index:9999;padding:var(--space-md);animation:.3s ease-out slideUp;position:fixed;bottom:0;left:0;right:0}.install-prompt-content{align-items:center;gap:var(--space-md);max-width:600px;padding:var(--space-md)var(--space-lg);background:var(--primary);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin:0 auto;display:flex}.install-prompt-icon{border-radius:var(--radius);flex-shrink:0}.install-prompt-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.install-prompt-text strong{font-size:15px;font-weight:600}.install-prompt-text span{opacity:.85;font-size:13px}.install-prompt-actions{gap:var(--space-sm);flex-shrink:0;display:flex}.install-prompt-btn{border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:opacity var(--transition-fast);border:none;padding:8px 16px}.install-prompt-btn:hover{opacity:.9}.install-prompt-btn-primary{background:var(--accent);color:#fff}.install-prompt-btn-dismiss{color:#fff;background:#ffffff26}@media (max-width:480px){.install-prompt-content{padding:var(--space-md);flex-wrap:wrap}.install-prompt-actions{justify-content:flex-end;width:100%}}.sw-update-banner{z-index:10000;justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space)var(--space-md);background:var(--info);color:#fff;font-size:14px;font-family:var(--font-sans);animation:.3s ease-out slideDown;display:flex;position:fixed;top:0;left:0;right:0}.sw-update-btn{color:var(--info);border-radius:var(--radius);font-size:13px;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:opacity var(--transition-fast);background:#fff;border:none;padding:6px 14px}.sw-update-btn:hover{opacity:.9}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-page{padding:0;animation:.15s fadeIn}.skeleton-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.skeleton-title{border-radius:6px;width:180px;height:28px}.skeleton-subtitle{border-radius:4px;width:260px;height:16px;margin-top:.5rem}.skeleton-btn{border-radius:8px;width:140px;height:36px}.skeleton-bar{background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;border-radius:6px;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-stats-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.skeleton-stat-card{background:var(--panel);border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:1.25rem}.skeleton-stat-value{border-radius:6px;width:60px;height:32px;margin-bottom:.5rem}.skeleton-stat-label{border-radius:4px;width:100px;height:14px}.skeleton-filter-bar{gap:.75rem;margin-bottom:1.5rem;display:flex}.skeleton-search{border-radius:8px;flex:1;max-width:360px;height:40px}.skeleton-filter-btn{border-radius:8px;width:80px;height:40px}.skeleton-table{background:var(--panel);border:1px solid var(--border,#e5e7eb);border-radius:12px;overflow:hidden}.skeleton-table-header{border-bottom:1px solid var(--border,#e5e7eb);background:#f9fafb;gap:1rem;padding:.875rem 1.25rem;display:grid}.skeleton-table-row{border-bottom:1px solid var(--border,#e5e7eb);gap:1rem;padding:.875rem 1.25rem;display:grid}.skeleton-table-row:last-child{border-bottom:none}.skeleton-cell{border-radius:4px;height:16px}.skeleton-cell-short{border-radius:4px;width:60%;height:16px}.skeleton-cards-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;display:grid}.skeleton-card{background:var(--panel);border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:1.25rem}.skeleton-card-title{border-radius:4px;width:70%;height:18px;margin-bottom:.75rem}.skeleton-card-line{border-radius:4px;width:90%;height:14px;margin-bottom:.5rem}.skeleton-card-line-short{border-radius:4px;width:50%;height:14px}.skeleton-kpi-grid{grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem;display:grid}.skeleton-kpi-card{background:var(--panel);border:1px solid var(--border,#e5e7eb);border-radius:12px;align-items:center;gap:1rem;padding:1.25rem;display:flex}.skeleton-kpi-icon{border-radius:10px;width:40px;height:40px}.skeleton-kpi-value{border-radius:6px;width:70px;height:28px;margin-bottom:.375rem}.skeleton-kpi-label{border-radius:4px;width:100px;height:14px}.skeleton-charts-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.skeleton-chart{background:var(--panel);border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:1.25rem}.skeleton-chart-area{border-radius:8px;height:200px;margin-top:.75rem}@media (max-width:768px){.skeleton-stats-grid,.skeleton-kpi-grid{grid-template-columns:repeat(2,1fr)}.skeleton-charts-grid,.skeleton-cards-grid{grid-template-columns:1fr}}
/*# sourceMappingURL=e1726ad7e52571c6.css.map*/