@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--glass-bg:#ffffffb3;--glass-border:#0f172a14;--glass-shadow:0 8px 32px 0 #0f172a0d;--input-bg:#0f172a05;--input-focus-bg:#0f172a0a;--input-border:#0f172a0f;--border-color:#0f172a0f;--overlay-bg:#0f172a66;--accent-cyan:#0ea5e9;--accent-blue:#2563eb;--accent-purple:#7c3aed;--accent-indigo:#4f46e5;--accent-pink:#db2777;--status-draft:#2563eb1a;--status-draft-text:#1d4ed8;--status-invoice:#7c3aed1a;--status-invoice-text:#6d28d9;--status-partial:#d977061a;--status-partial-text:#b45309;--status-paid:#0596691a;--status-paid-text:#047857;--cat-panels-bg:#0891b21a;--cat-panels-text:#0e7490;--cat-inverter-bg:#4f46e51a;--cat-inverter-text:#4338ca;--cat-structure-bg:#d977061a;--cat-structure-text:#b45309;--cat-installation-bg:#0596691a;--cat-installation-text:#047857;--cat-logistics-bg:#4b55631a;--cat-logistics-text:#4b5563;--cat-cabling-bg:#2563eb1a;--cat-cabling-text:#1d4ed8;--cat-accessories-bg:#db27771a;--cat-accessories-text:#be185d;--cat-netmetering-bg:#9333ea1a;--cat-netmetering-text:#7e22ce;--cat-earthing-bg:#0d94881a;--cat-earthing-text:#0f766e;--cat-battery-bg:#dc26261a;--cat-battery-text:#b91c1c;--cat-other-bg:#64748b1a;--cat-other-text:#475569;--font-family:"Outfit", "Inter", -apple-system, sans-serif;--border-radius-sm:8px;--border-radius-md:16px;--border-radius-lg:24px;--bg-gradient:radial-gradient(circle at 10% 10%, #4f46e50d 0%, transparent 40%), radial-gradient(circle at 90% 90%, #0ea5e90a 0%, transparent 40%)}[data-theme=dark]{--bg-primary:#0b0d19;--bg-secondary:#14172a;--text-primary:#f3f4f6;--text-secondary:#cbd5e1;--text-muted:#64748b;--glass-bg:#14172aa6;--glass-border:#ffffff14;--glass-shadow:0 8px 32px 0 #0000005e;--input-bg:#ffffff08;--input-focus-bg:#ffffff0f;--input-border:#ffffff0d;--border-color:#ffffff0d;--overlay-bg:#0b0d19bf;--accent-cyan:#00f2fe;--accent-blue:#4facfe;--accent-purple:#7f00ff;--accent-indigo:#4f46e5;--accent-pink:#ec4899;--status-draft:#3b82f626;--status-draft-text:#60a5fa;--status-invoice:#8b5cf626;--status-invoice-text:#a78bfa;--status-partial:#f59e0b26;--status-partial-text:#fbbf24;--status-paid:#10b98126;--status-paid-text:#34d399;--cat-panels-bg:#06b6d426;--cat-panels-text:#22d3ee;--cat-inverter-bg:#6366f126;--cat-inverter-text:#818cf8;--cat-structure-bg:#f59e0b26;--cat-structure-text:#fbbf24;--cat-installation-bg:#10b98126;--cat-installation-text:#34d399;--cat-logistics-bg:#6b728026;--cat-logistics-text:#9ca3af;--cat-cabling-bg:#3b82f626;--cat-cabling-text:#60a5fa;--cat-accessories-bg:#ec489926;--cat-accessories-text:#f472b6;--cat-netmetering-bg:#a855f726;--cat-netmetering-text:#c084fc;--cat-earthing-bg:#14b8a626;--cat-earthing-text:#2dd4bf;--cat-battery-bg:#ef444426;--cat-battery-text:#f87171;--cat-other-bg:#94a3b826;--cat-other-text:#cbd5e1;--bg-gradient:radial-gradient(circle at 10% 10%, #4f46e526 0%, transparent 40%), radial-gradient(circle at 90% 90%, #00f2fe1a 0%, transparent 40%)}@media (prefers-color-scheme:dark){[data-theme=system]{--bg-primary:#0b0d19;--bg-secondary:#14172a;--text-primary:#f3f4f6;--text-secondary:#cbd5e1;--text-muted:#64748b;--glass-bg:#14172aa6;--glass-border:#ffffff14;--glass-shadow:0 8px 32px 0 #0000005e;--input-bg:#ffffff08;--input-focus-bg:#ffffff0f;--input-border:#ffffff0d;--border-color:#ffffff0d;--overlay-bg:#0b0d19bf;--accent-cyan:#00f2fe;--accent-blue:#4facfe;--accent-purple:#7f00ff;--accent-indigo:#4f46e5;--accent-pink:#ec4899;--status-draft:#3b82f626;--status-draft-text:#60a5fa;--status-invoice:#8b5cf626;--status-invoice-text:#a78bfa;--status-partial:#f59e0b26;--status-partial-text:#fbbf24;--status-paid:#10b98126;--status-paid-text:#34d399;--cat-panels-bg:#06b6d426;--cat-panels-text:#22d3ee;--cat-inverter-bg:#6366f126;--cat-inverter-text:#818cf8;--cat-structure-bg:#f59e0b26;--cat-structure-text:#fbbf24;--cat-installation-bg:#10b98126;--cat-installation-text:#34d399;--cat-logistics-bg:#6b728026;--cat-logistics-text:#9ca3af;--cat-cabling-bg:#3b82f626;--cat-cabling-text:#60a5fa;--cat-accessories-bg:#ec489926;--cat-accessories-text:#f472b6;--cat-netmetering-bg:#a855f726;--cat-netmetering-text:#c084fc;--cat-earthing-bg:#14b8a626;--cat-earthing-text:#2dd4bf;--cat-battery-bg:#ef444426;--cat-battery-text:#f87171;--cat-other-bg:#94a3b826;--cat-other-text:#cbd5e1;--bg-gradient:radial-gradient(circle at 10% 10%, #4f46e526 0%, transparent 40%), radial-gradient(circle at 90% 90%, #00f2fe1a 0%, transparent 40%)}}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);background-image:var(--bg-gradient);color:var(--text-primary);font-family:var(--font-family);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.5;transition:background-color .3s,color .3s;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--border-radius-sm);background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:#fff3}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--border-radius-md);box-shadow:var(--glass-shadow);transition:background .3s,border-color .3s,box-shadow .3s}.app-container{flex-direction:column;gap:16px;max-width:1000px;min-height:100vh;margin:0 auto;padding:16px 16px 100px;display:flex}.app-header{justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.logo-section h1{letter-spacing:-.5px;background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:20px;font-weight:700}.logo-section span{color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;margin-top:-2px;font-size:11px;display:block}.status-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:9999px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;font-weight:600;display:inline-flex}.status-draft,.status-quotation{background:var(--status-draft);color:var(--status-draft-text)}.status-invoice{background:var(--status-invoice);color:var(--status-invoice-text)}.status-partial{background:var(--status-partial);color:var(--status-partial-text)}.status-paid{background:var(--status-paid);color:var(--status-paid-text)}.status-voided{color:#f87171;background:#ef444426}.canvas-sheet{flex-direction:column;gap:16px;padding:16px;display:flex}.client-info-section{border-bottom:1px solid var(--border-color);grid-template-columns:1fr 1fr;gap:12px;padding-bottom:16px;display:grid}.info-block label{text-transform:uppercase;color:var(--text-secondary);letter-spacing:1px;margin-bottom:4px;font-size:10px;display:block}.info-block input,.info-block textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--border-radius-sm);color:var(--text-primary);font-family:var(--font-family);width:100%;padding:8px;font-size:13px;transition:all .2s}.info-block input:focus,.info-block textarea:focus{border-color:var(--accent-cyan);background:var(--input-focus-bg);outline:none}.items-table-container{overflow-x:auto}.items-table{border-collapse:collapse;width:100%;font-size:13px}.items-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);padding:8px 12px;font-size:11px;font-weight:500}.items-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:10px 12px}.category-pill{border-radius:9999px;padding:4px 8px;font-size:10px;font-weight:500;display:inline-block}.cat-panels{background:var(--cat-panels-bg);color:var(--cat-panels-text)}.cat-inverter{background:var(--cat-inverter-bg);color:var(--cat-inverter-text)}.cat-structure{background:var(--cat-structure-bg);color:var(--cat-structure-text)}.cat-installation{background:var(--cat-installation-bg);color:var(--cat-installation-text)}.cat-logistics{background:var(--cat-logistics-bg);color:var(--cat-logistics-text)}.cat-cabling{background:var(--cat-cabling-bg);color:var(--cat-cabling-text)}.cat-accessories{background:var(--cat-accessories-bg);color:var(--cat-accessories-text)}.cat-netmetering{background:var(--cat-netmetering-bg);color:var(--cat-netmetering-text)}.cat-earthing{background:var(--cat-earthing-bg);color:var(--cat-earthing-text)}.cat-battery{background:var(--cat-battery-bg);color:var(--cat-battery-text)}.cat-other{background:var(--cat-other-bg);color:var(--cat-other-text)}.table-input{border:none;border-bottom:1px dashed var(--border-color);color:var(--text-primary);font-family:var(--font-family);background:0 0;width:100%;padding:2px 4px;font-size:13px}.table-input:focus{border-bottom-color:var(--accent-cyan);outline:none}.table-input.num-input{text-align:right}.summary-widget{background:var(--input-bg);border-radius:var(--border-radius-sm);flex-direction:column;gap:8px;margin-top:12px;padding:12px;display:flex}.summary-row{justify-content:space-between;font-size:13px;display:flex}.summary-row.total-row{border-top:1px solid var(--border-color);margin-top:4px;padding-top:8px;font-size:16px;font-weight:600}.summary-row label{color:var(--text-secondary)}.tech-guard-panel{border-radius:var(--border-radius-md);background:#8b5cf614;border:1px solid #8b5cf626;flex-direction:column;gap:8px;margin-top:8px;padding:12px;display:flex}.tech-guard-metrics{justify-content:space-between;font-size:12px;display:flex}.tech-warning-banner{border-radius:var(--border-radius-sm);color:var(--status-partial-text);background:#f59e0b26;border:1px solid #f59e0b40;margin-top:4px;padding:8px;font-size:11px}.voice-fab-container{z-index:1000;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.voice-fab{background:linear-gradient(135deg, var(--accent-cyan) 0%, var(--accent-blue) 100%);color:#0b0d19;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;position:relative;box-shadow:0 8px 32px #00f2fe59}.voice-fab:active{transform:scale(.9)}.voice-fab.listening{background:linear-gradient(135deg, var(--accent-pink) 0%, var(--accent-purple) 100%);animation:1.5s infinite pulse;box-shadow:0 8px 32px #ec489959}.voice-fab-tooltip{color:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#14172ae6;border:1px solid #ffffff1a;border-radius:9999px;padding:6px 12px;font-size:10px;font-weight:500;box-shadow:0 4px 16px #0003}@keyframes pulse{0%{box-shadow:0 0 #ec489966}70%{box-shadow:0 0 0 15px #ec489900}to{box-shadow:0 0 #ec489900}}.listening-shimmer{position:relative;overflow:hidden}.listening-shimmer:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:100%;height:100%;animation:1.5s infinite shimmer;position:absolute;top:0;left:-100%}@keyframes shimmer{0%{left:-100%}to{left:100%}}.modal-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;justify-content:center;align-items:center;width:100%;height:100%;padding:16px;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--border-radius-md);width:100%;max-width:450px;box-shadow:var(--glass-shadow);flex-direction:column;gap:16px;padding:20px;display:flex}.modal-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.modal-header h3{color:var(--accent-cyan);font-size:16px;font-weight:600}.modal-list{flex-direction:column;gap:8px;max-height:250px;padding-right:4px;display:flex;overflow-y:auto}.modal-item-btn{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-primary);border-radius:var(--border-radius-sm);text-align:left;font-family:var(--font-family);cursor:pointer;padding:10px;font-size:13px;transition:all .2s}.modal-item-btn:hover{background:#00f2fe14;border-color:#00f2fe33}.close-btn{color:#fff6;cursor:pointer;background:0 0;border:none}.close-btn:hover{color:#fff}.btn-group{gap:8px;display:flex}.action-btn{background:var(--input-bg);border:1px solid var(--input-border);color:var(--text-primary);border-radius:var(--border-radius-sm);font-family:var(--font-family);cursor:pointer;align-items:center;gap:6px;padding:8px 16px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.action-btn:hover{background:#ffffff14;border-color:#ffffff26}.action-btn.btn-primary{background:linear-gradient(135deg, var(--accent-blue) 0%, var(--accent-purple) 100%);border:none;box-shadow:0 4px 16px #8b5cf640}.action-btn.btn-primary:hover{opacity:.95;box-shadow:0 4px 20px #8b5cf659}.spotlight-alert{color:var(--accent-cyan);border-radius:var(--border-radius-sm);background:#00f2fe14;border:1px solid #00f2fe26;align-items:center;gap:8px;padding:10px;font-size:12px;animation:.3s ease-out slideIn;display:flex}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.ledger-timeline-widget{border-top:1px solid var(--border-color);flex-direction:column;gap:12px;margin-top:8px;padding:12px;display:flex}.ledger-timeline-header{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;font-size:11px}.ledger-timeline{border-left:1px dashed var(--border-color);flex-direction:column;gap:10px;padding-left:16px;display:flex;position:relative}.ledger-node{font-size:12px;position:relative}.ledger-node:before{content:"";background:var(--accent-cyan);width:7px;height:7px;box-shadow:0 0 8px var(--accent-cyan);border-radius:50%;position:absolute;top:4px;left:-20px}.ledger-node-amount{color:var(--text-primary);margin-right:6px;font-weight:600}.ledger-node-note{color:var(--text-secondary)}.ledger-node-date{color:var(--text-muted);margin-left:6px;font-size:10px}.wheel-adjust-overlay{align-items:center;gap:8px;display:flex}.wheel-adjust-btn{color:#fff;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:flex}.wheel-adjust-btn:hover{background:#ffffff1a}@media (width<=600px){.client-info-section{grid-template-columns:1fr}.items-table th:nth-child(2),.items-table td:nth-child(2){display:none}}
