:root{--bg: #f4f8fa;--surface: #ffffff;--border: #e0e2e7;--text: #1c1e21;--muted: #6b7280;--primary: #00b4d8;--primary-dark: #0092b0;--accent: #f5821f;--accent-dark: #d46a0f;--danger: #b3261e;--danger-bg: #fdecea;font-family:Segoe UI,Roboto,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--text);background-color:var(--bg);background-image:radial-gradient(circle at 1px 1px,rgba(0,146,176,.08) 1px,transparent 0);background-size:22px 22px;background-attachment:fixed}.app-content,.login-page{animation:fade-in-up .35s ease both}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}button{cursor:pointer;border:none;border-radius:6px;background:var(--primary);color:#fff;padding:8px 16px;font-size:.95rem;transition:background-color .15s ease,transform .1s ease,box-shadow .15s ease}button:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 2px 8px #0092b059}button:active:not(:disabled){transform:translateY(1px)}button:disabled{background:#a9b3bf;cursor:not-allowed}input,select{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:.95rem;width:100%}input.dirty{border-color:var(--primary);background:#eef4fb}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--muted);margin-bottom:14px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{background:var(--surface);padding:36px;border-radius:12px;box-shadow:0 12px 32px #0092b029;border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--primary),var(--accent)) 1;width:320px;max-width:100%;text-align:center}.login-card .login-logo{height:64px;width:auto;margin-bottom:8px}.login-card h1{margin:0 0 4px;font-size:1.4rem;color:var(--primary-dark)}.login-card label{text-align:left}.subtitle{color:var(--muted);margin:0 0 24px;font-size:.9rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:24px;background:var(--surface);border-bottom:1px solid var(--border);padding:10px 24px;position:relative}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent))}.brand{font-weight:700;color:var(--primary-dark);display:flex;align-items:center;gap:8px}.brand img{height:32px;width:auto}.app-header nav{display:flex;gap:16px;flex:1}.app-header nav a{color:var(--muted);text-decoration:none;font-size:.9rem;padding:6px 0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.app-header nav a:hover{color:var(--accent-dark)}.app-header nav a.active{color:var(--primary-dark);border-bottom-color:var(--accent)}.user-box{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--muted)}.user-box-mobile{display:none}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;background:transparent;border:1px solid var(--border);border-radius:6px;width:38px;height:34px;padding:0;flex-shrink:0}.nav-toggle span{display:block;height:2px;width:18px;margin:0 auto;background:var(--text);border-radius:2px}.nav-toggle:hover:not(:disabled){background:var(--bg);box-shadow:none}.app-content{padding:24px;max-width:1100px;width:100%;margin:0 auto;overflow-x:hidden}@media (max-width: 720px){.app-header{flex-wrap:wrap;gap:12px;padding:10px 16px}.nav-toggle{display:flex}.user-box-desktop{display:none}.app-header nav{display:none;flex-direction:column;align-items:stretch;gap:2px;width:100%;order:3;flex-basis:100%}.app-header nav.open{display:flex}.app-header nav a{padding:10px 6px;border-bottom:1px solid var(--border);border-left:3px solid transparent}.app-header nav a.active{border-bottom-color:var(--border);border-left-color:var(--accent);background:var(--bg)}.user-box-mobile{display:flex;justify-content:space-between;margin-top:8px;padding-top:10px;border-top:1px solid var(--border)}.app-content{padding:16px}}.page-loading{padding:40px;text-align:center;color:var(--muted)}.quote-page{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}.quote-form,.quote-result,.price-list-page,.quotes-list-page{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;min-width:0}.field-row{display:flex;gap:12px}.field-row label{flex:1}.breakdown-table,.totals-table,.price-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-bottom:16px}.breakdown-table th,.breakdown-table td,.price-table th,.price-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.price-table thead th{color:var(--primary-dark);border-bottom:2px solid var(--primary)}.price-table tbody tr{transition:background-color .12s ease}.price-table tbody tr:hover{background:var(--bg)}.totals-table td{padding:6px 8px}.totals-table td:last-child{text-align:right;font-variant-numeric:tabular-nums}.total-row td{font-weight:700;font-size:1.05rem;border-top:2px solid var(--text)}.muted{color:var(--muted);font-size:.8rem}.error-banner{background:var(--danger-bg);color:var(--danger);padding:10px 14px;border-radius:6px;font-size:.88rem;margin:8px 0}.error-inline{color:var(--danger);font-size:.8rem;margin-left:8px}.save-message{margin-top:10px;font-size:.88rem;color:var(--primary-dark)}.hint{color:var(--muted);font-size:.88rem;margin-top:-8px}.filter-row{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}.chip{background:var(--bg);color:var(--text);border:1px solid var(--border);padding:6px 12px;border-radius:999px;font-size:.82rem}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}@media (max-width: 800px){.quote-page{grid-template-columns:1fr}}@media (max-width: 720px){.breakdown-table,.totals-table,.price-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.field-row{flex-direction:column;gap:0}.dashboard-toolbar{flex-direction:column;align-items:stretch}.dashboard-toolbar select,.dashboard-toolbar button{width:100%}.order-actions{flex-direction:column}.order-actions button{width:100%}}.kpi-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.kpi{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--primary);border-radius:10px;padding:12px 18px;display:flex;flex-direction:column;min-width:110px;transition:transform .15s ease,box-shadow .15s ease}.kpi:hover{transform:translateY(-2px);box-shadow:0 6px 16px #0092b02e}.kpi:nth-child(7n+1){border-top-color:var(--primary)}.kpi:nth-child(7n+2){border-top-color:var(--accent)}.kpi:nth-child(7n+3){border-top-color:#7c5cff}.kpi:nth-child(7n+4){border-top-color:#00b48a}.kpi:nth-child(7n+5){border-top-color:#e0559a}.kpi:nth-child(7n+6){border-top-color:#4b8ff5}.kpi:nth-child(7n){border-top-color:var(--accent-dark)}.kpi-value{font-size:1.4rem;font-weight:700;color:var(--primary-dark)}.kpi-label{font-size:.78rem;color:var(--muted)}.dashboard-toolbar{display:flex;gap:10px;margin-bottom:16px}.dashboard-toolbar input{flex:1}.dashboard-toolbar select{width:auto}.dashboard-layout{display:grid;grid-template-columns:1fr 340px;gap:20px;align-items:start}.selected-row{background:#eef4fb}.order-detail{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:0}.order-detail textarea{width:100%;padding:8px;border:1px solid var(--border);border-radius:6px;font-family:inherit;margin:10px 0}.order-actions{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}button.secondary{background:var(--bg);color:var(--text);border:1px solid var(--border)}button.secondary:hover:not(:disabled){background:var(--border)}.history-list{list-style:none;padding:0;margin:8px 0 0;font-size:.85rem}.history-list li{padding:6px 0;border-bottom:1px solid var(--border)}.element-page{max-width:1320px}.order-banner{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:14px}.quote-status-panel{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:14px}.quote-status-locked{background:var(--danger-bg);border-color:var(--danger)}.quote-status-panel .chip{font-weight:700}.quote-status-borrador{background:var(--bg);color:var(--muted);border-color:var(--border)}.quote-status-enviada{background:#fdf1e6;color:var(--accent-dark);border-color:var(--accent)}.quote-status-aprobada{background:#e4f8ee;color:#187a4a;border-color:#187a4a}.quote-status-rechazada{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.checkbox-label{flex-direction:row!important;align-items:center;gap:6px!important}.checkbox-label input{width:auto}.price-preview{margin:8px 0 14px}.price-preview-total{font-size:1rem}.element-form{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.element-form-grid{display:grid;grid-template-columns:minmax(320px,440px) minmax(420px,1fr);gap:28px;align-items:start}.form-section-title{margin:18px 0 6px;font-size:.78rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--accent-dark)}.form-section-title:first-child{margin-top:0}.elements-list-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px}.live-diagram{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:16px;position:sticky;top:12px}.live-diagram h3{margin:0 0 8px;font-size:.95rem;color:var(--primary-dark)}.live-diagram .assembly-card{max-width:100%;animation:fade-in-up .25s ease both}.add-item-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:14px;margin:12px 0 20px}@media (max-width: 900px){.element-form-grid{grid-template-columns:1fr}.live-diagram{position:static}}.production-page{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:start}.production-result{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:20px;min-width:0}.checklist{list-style:none;padding:0;margin:0 0 14px;max-height:300px;overflow-y:auto}.checklist li{padding:4px 0;font-size:.85rem}@media (max-width: 900px){.dashboard-layout,.production-page{grid-template-columns:1fr}}.report-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141a208c;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:100}.report-menu-card{position:relative;background:var(--surface);border-radius:16px;padding:28px 32px 24px;max-width:620px;width:100%;box-shadow:0 20px 50px #0a141e59;animation:fade-in-up .2s ease both}.report-menu-card h2{margin:0;font-size:1.3rem;color:var(--text)}.report-menu-subtitle{margin:4px 0 0;font-size:.8rem;color:var(--primary-dark);font-weight:600;letter-spacing:.3px}.report-menu-rule{height:2px;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;margin:14px 0 16px}.report-menu-close{position:absolute;top:20px;right:24px}.report-menu-kpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.report-menu-kpis span{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--primary-dark)}.report-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-menu-item{text-align:left;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;padding:12px 14px;color:var(--text);transition:transform .12s ease,box-shadow .12s ease}.report-menu-item:hover{transform:translateY(-1px);box-shadow:0 6px 16px #141e281f;background:var(--surface)}.report-menu-item-title{font-weight:700;font-size:.9rem;margin-bottom:3px}.report-menu-item-desc{font-size:.78rem;color:var(--muted);line-height:1.35}.report-menu-note{margin-top:18px;background:#fdf1e6;border-left:4px solid var(--accent);border-radius:6px;padding:10px 14px;font-size:.8rem;color:#7a4a12}@media (max-width: 700px){.report-menu-grid{grid-template-columns:1fr}}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media (max-width: 900px){.stats-grid{grid-template-columns:1fr}}.insight-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:20px}.insight-card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:8px;padding:10px 12px;font-size:.85rem}.insight-priority{font-size:.72rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;margin-bottom:4px}.insight-finding{font-weight:600;margin-bottom:2px}.insight-recommendation{margin-top:6px;font-style:italic}
