:root{color:#edf6ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at top,#5eead42e,#0000 18%),linear-gradient(135deg,#020817 0%,#0f172a 38%,#111827 100%);font-family:Inter,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{flex-direction:column;min-width:320px;min-height:100vh;margin:0;display:flex}button,input{font:inherit}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3,p{margin-top:0}.app-shell{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0f172ab8;border:1px solid #94a3b838;border-radius:24px;flex-direction:column;width:min(100%,100vw - 24px);min-height:100vh;margin:12px auto;display:flex;overflow:hidden;box-shadow:0 24px 80px #0f172a80}.brand-panel{color:#edf6ff;background:radial-gradient(circle at 0 0,#2dd4bf47,#0000 26%),linear-gradient(160deg,#0f172af5,#0d1121eb);flex-direction:column;justify-content:space-between;padding:38px 34px 30px;display:flex;position:relative}.brand-mark{background:linear-gradient(135deg,#5eead4,#4f46e5);border-radius:18px;place-items:center;width:58px;height:58px;font-size:1.8rem;font-weight:800;display:grid;box-shadow:0 15px 35px #4f46e573}.brand-copy{margin-top:34px}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#8bd7d1;margin:0 0 8px;font-size:.7rem;font-weight:700}.eyebrow.muted{color:#7dd3fc}.brand-copy h1{letter-spacing:-.06em;color:#f8fbff;margin:0;font-size:clamp(2.1rem,3vw,3.3rem);line-height:1.04}.feature-list{flex-direction:column;gap:16px;margin-top:30px;display:flex}.feature-item{color:#ecf5ffe6;background:#94a3b814;border:1px solid #94a3b81f;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;display:flex}.dot{background:linear-gradient(135deg,#2dd4bf,#60a5fa);border-radius:50%;width:10px;height:10px;box-shadow:0 0 16px #2dd4bfe6}.mini-panel{background:#0f766e2e;border:1px solid #5eead442;border-radius:18px;justify-content:space-between;align-items:center;margin-top:24px;padding:18px;display:flex}.mini-label{color:#c5e1f1cc;text-transform:uppercase;letter-spacing:.14em;margin:0 0 4px;font-size:.72rem}.mini-panel strong{font-size:1.15rem}.trend{color:#67e8f9;background:#22d3ee1a;border-radius:999px;padding:7px 10px;font-weight:700}.content-panel{background:#0f172a6b;flex-direction:column;flex:1;gap:18px;width:100%;min-height:100vh;padding:30px 28px 22px;display:flex}.login-card,.quote-card,.stat-card{background:#0f172ab3;border:1px solid #94a3b824;border-radius:24px;box-shadow:inset 0 1px #ffffff0a}.login-card{max-width:420px;margin:auto;padding:28px}.login-header{margin-bottom:22px}.badge,.chip{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;justify-content:center;align-items:center;padding:7px 10px;font-size:.7rem;font-weight:700;display:inline-flex}.badge{color:#99f6e4;background:#2dd4bf1f;border:1px solid #2dd4bf47}.login-header h2,.topbar h2,.card-head h3{color:#f3f9ff;letter-spacing:-.04em;margin:12px 0 0}.field{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.field span{color:#bfdbfecc;font-size:.82rem}.field input{color:#f8fbff;background:#0f172ac2;border:1px solid #94a3b833;border-radius:14px;outline:none;height:50px;padding:0 14px;font-size:.96rem;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:#5eead4b3;box-shadow:0 0 0 4px #2dd4bf1f}.error-box{color:#fecaca;background:#ef44441f;border:1px solid #ef444442;border-radius:12px;margin:0 0 14px;padding:10px 12px;font-size:.82rem}.success-box{color:#bbf7d0;background:#22c55e1f;border:1px solid #22c55e47;border-radius:12px;margin:0 0 14px;padding:12px 14px;font-size:.84rem;font-weight:700;box-shadow:0 10px 28px #22c55e1f}.login-meta{justify-content:space-between;align-items:center;gap:12px;margin:8px 0 18px;display:flex}.remember-me{color:#bfdbfecc;align-items:center;gap:8px;font-size:.82rem;display:flex}.remember-me input{accent-color:#5eead4}.primary-button,.ghost-button,.tab,.text-button{cursor:pointer;border:none;transition:transform .2s,opacity .2s}.primary-button:hover,.ghost-button:hover,.tab:hover,.text-button:hover{transform:translateY(-1px)}.primary-button.save-success{background:linear-gradient(135deg,#22c55e,#16a34a);animation:.6s saveButtonPop;box-shadow:0 14px 26px #22c55e47}.primary-button.save-success:after{content:"✓";color:#f0fdf4;place-items:center;font-size:1.3rem;font-weight:900;animation:.7s forwards saveCheckReveal;display:grid;position:absolute;inset:0}@keyframes saveButtonPop{0%{transform:scale(1)}30%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes saveCheckReveal{0%{opacity:0;transform:scale(.5)}35%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.primary-button{color:#fff;isolation:isolate;background:linear-gradient(135deg,#5eead4,#4f46e5);border-radius:14px;width:100%;height:52px;font-size:.98rem;font-weight:700;position:relative;overflow:hidden;box-shadow:0 16px 28px #4f46e561}.primary-button.small{width:auto;height:42px;padding:0 18px}.ghost-button{color:#e0f2fe;background:#94a3b814;border:1px solid #94a3b82e;border-radius:12px;height:42px;padding:0 16px}.text-button{color:#7dd3fc;background:0 0;padding:0;font-weight:600}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:4px 4px 0;display:flex}.topbar-actions{align-items:center;gap:10px;display:flex}.user-pill{background:#94a3b814;border:1px solid #94a3b829;border-radius:999px;align-items:center;gap:10px;padding:8px 12px;display:flex}.user-dot{background:#34d399;border-radius:50%;width:10px;height:10px;box-shadow:0 0 16px #34d399b3}.user-pill strong,.user-pill small{display:block}.user-pill small{color:#bfdbfecc;letter-spacing:.08em;text-transform:uppercase;font-size:.7rem}.module-tabs{flex-wrap:wrap;gap:10px;padding:6px 4px 0;display:flex}.tab{color:#dbeafe;background:#94a3b814;border:1px solid #0000;border-radius:999px;padding:10px 14px}.tab.active{color:#d7fff7;background:#5eead41f;border-color:#5eead440}.stats-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:14px;display:grid}.stat-card{flex-direction:column;gap:8px;padding:18px 18px 16px;display:flex}.stat-card span{color:#bfdbfeb8;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.stat-card strong{color:#f8fbff;letter-spacing:-.06em;font-size:clamp(1.45rem,2vw,2rem)}.stat-card em{color:#4ade80;font-style:normal;font-weight:600}.content-grid{grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr);gap:18px;margin-top:6px;display:grid}.quote-card{padding:18px 18px 10px}.wide{min-height:300px}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-head h3{margin:0;font-size:1.08rem}table{border-collapse:separate;border-spacing:0;background:#0f172a6b;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid #94a3b81f;padding:12px}th{letter-spacing:.12em;text-transform:uppercase;color:#bfdbfec7;background:#0f766e1f;font-size:.7rem;font-weight:700}td{color:#edf6ff;background:#0f172a2e}tbody tr{transition:background .2s,transform .2s}tbody tr:hover{background:#5eead40a}th:first-child,td:first-child{border-left:none}th:last-child,td:last-child{border-right:none}.status{border-radius:999px;justify-content:center;align-items:center;min-width:88px;padding:7px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.status.aprobada{color:#86efac;background:#22c55e1a}.status.en-revision,.status.en_revision{color:#fcd34d;background:#fbbf241a}.status.borrador{color:#cbd5e1;background:#94a3b81f}.status.rechazada,.status.cancelada{color:#fca5a5;background:#ef44441a}.status.listo,.status.aprobada,.status.pendiente{color:#93c5fd;background:#3b82f61f}.quote-module-container{flex-direction:column;gap:18px;display:flex}.status-cell{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.status.approved{color:#a7f3d0;background:#22c55e24;border:1px solid #22c55e47}.status.blocked{color:#fca5a5;background:#ef44441f}.module-head{margin-bottom:0}.maintenance-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:18px;display:grid}.maintenance-aside{background:#0f172ab3;border:1px solid #94a3b824;border-radius:18px;flex-direction:column;gap:10px;padding:14px;display:flex;position:sticky;top:18px}.maintenance-tab{text-align:left;color:#dfeefe;background:#0f172a80;border:1px solid #94a3b81f;border-radius:12px;width:100%;padding:12px 14px;font-weight:600}.maintenance-tab.active{color:#99f6e4;background:linear-gradient(135deg,#5eead424,#4f46e529);border-color:#5eead44d}.maintenance-content{flex-direction:column;gap:18px;display:flex}.maintenance-section-panel{background:#0f172ab8;border:1px solid #94a3b824;border-radius:22px;flex-direction:column;gap:16px;padding:18px;display:flex}.mini-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.field.wide{grid-column:1/-1}.checkbox-field{background:#0f172ac2;border:1px solid #94a3b833;border-radius:14px;justify-content:flex-start;align-items:center;gap:12px;min-height:52px;padding:0 12px;display:flex;flex-direction:row!important}.checkbox-field input{accent-color:#5eead4;width:18px;height:18px}.inline-record-list{flex-direction:column;gap:8px;display:flex}.inline-record-row{color:#eaf4ff;background:#0f172a80;border:1px solid #94a3b81f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.inline-record-row small{color:#bfdbfeb8}.client-select-field{min-width:0}.client-select-row{align-items:center;gap:10px;display:flex}.client-select-row select{flex:1}.client-inline-form{margin-top:12px}.quote-form{background:#0f172aad;border:1px solid #94a3b824;border-radius:22px;flex-direction:column;gap:16px;padding:18px;display:flex}.quote-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.quote-form textarea,.quote-form select,.status-select,.phase-item-row input{color:#f8fbff;width:100%;min-height:48px;font:inherit;background:#0f172ab3;border:1px solid #94a3b833;border-radius:12px;padding:0 12px}.quote-form textarea{resize:vertical;min-height:96px;padding:12px}.phase-builder{flex-direction:column;gap:14px;display:flex}.phase-builder-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.phase-builder h4{color:#f3f9ff;letter-spacing:-.04em;margin:0}.small-inline{border-radius:10px;height:36px;padding:0 12px;font-size:.8rem}.phase-card{background:#0f172a85;border:1px solid #94a3b824;border-radius:16px;flex-direction:column;gap:12px;padding:14px;display:flex}.phase-card.selected{border-color:#5eead447;box-shadow:inset 0 0 0 1px #5eead414}.phase-card.unselected{opacity:.75}.phase-card-header{color:#dbeafe;justify-content:space-between;align-items:center;gap:12px;display:flex}.phase-card-header span{color:#bfdbfeb8;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem}.phase-toggle{align-items:center;gap:10px;display:flex}.phase-toggle input{accent-color:#5eead4}.excel-table-wrap{border:1px solid #94a3b824;border-radius:12px;overflow-x:auto}.excel-table{border-collapse:collapse;width:100%;min-width:760px}.excel-table th,.excel-table td{vertical-align:middle;border-bottom:1px solid #94a3b81f;border-right:1px solid #94a3b814;padding:10px 12px}.category-row td{color:#99f6e4;letter-spacing:.12em;text-transform:uppercase;background:#5eead414;padding-top:10px;padding-bottom:10px;font-size:.72rem;font-weight:700}.excel-table th{color:#bfdbfec7;text-transform:uppercase;letter-spacing:.08em;background:#0f766e1f;font-size:.7rem}.excel-table td{color:#edf6ff}.excel-table input{color:#f8fbff;background:#0f172ab8;border:1px solid #94a3b82e;border-radius:8px;width:100%;min-height:36px;padding:0 10px}.quote-form-actions{justify-content:flex-start;display:flex}.quote-table-wrap{background:#0f172a9e;border:1px solid #94a3b824;border-radius:18px;overflow-x:auto;box-shadow:inset 0 1px #ffffff0a}.quote-table-wrap table{min-width:720px}.table-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.text-button.danger{color:#fca5a5}.status-select{min-width:150px}.modal-backdrop{z-index:30;background:#020617b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.rubrics-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.rubrics-header select{color:#f8fbff;background:#0f172ab8;border:1px solid #94a3b833;border-radius:12px;min-width:220px;height:42px;padding:0 12px}.rubric-shell{flex-direction:column;gap:20px;display:flex}.rubric-card{background:#0f172ab3;border:1px solid #94a3b824;border-radius:18px;overflow:hidden}.rubric-title{color:#99f6e4;letter-spacing:.12em;text-transform:uppercase;background:#5eead414;border-bottom:1px solid #94a3b81f;padding:14px 18px;font-size:.75rem;font-weight:700}.rubric-table-wrap{background:#0f172a8f;border:1px solid #94a3b81f;border-radius:16px;overflow-x:auto}.rubric-table{border-collapse:collapse;width:100%;min-width:900px}.rubric-table th,.rubric-table td{color:#edf6ff;vertical-align:middle;border-bottom:1px solid #94a3b81a;border-right:1px solid #94a3b814;padding:10px 12px}.rubric-table th{color:#bfdbfecc;letter-spacing:.08em;text-transform:uppercase;background:#0f766e1f;font-size:.7rem}.rubric-table td{background:#0f172a5c}.quote-modal-shell{background:#0f172af5;border:1px solid #94a3b82e;border-radius:28px;width:min(1100px,100%);max-height:88vh;overflow:auto;box-shadow:0 32px 80px #0f172a85}.quote-modal-header{background:linear-gradient(#0f172ae0,#0f172a9e);border-bottom:1px solid #94a3b81f;justify-content:space-between;align-items:center;gap:16px;padding:24px 24px 18px;display:flex}.quote-modal-title-wrap{flex-direction:column;gap:10px;display:flex}.quote-modal-title-wrap h3{letter-spacing:-.04em;color:#f3f9ff;margin:0;font-size:clamp(1.4rem,2vw,2rem)}.quote-modal-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.quote-modal-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;padding:20px 24px 0;display:grid}.modal-panel{background:#0f172aa8;border:1px solid #94a3b81f;border-radius:18px;padding:18px}.panel-title{color:#f3f9ff;letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px;font-size:.82rem;font-weight:700}.modal-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.detail-phase-stack{flex-direction:column;gap:16px;display:flex}.detail-phase-card{background:#0f172a85;border:1px solid #94a3b81f;border-radius:16px;overflow:hidden}.detail-phase-header{color:#dffaf6;background:#5eead40f;border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.detail-phase-header span{color:#bfdbfeb8;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem}.detail-phase-table-wrap{overflow-x:auto}.detail-phase-table{border-collapse:collapse;width:100%;min-width:500px}.detail-phase-table th,.detail-phase-table td{color:#edf6ff;text-align:left;border-bottom:1px solid #94a3b81a;padding:10px 12px}.detail-phase-table th{color:#bfdbfecc;letter-spacing:.08em;text-transform:uppercase;background:#0f766e14;font-size:.7rem}.detail-phase-footer{color:#bfdbfebf;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.empty-detail{text-align:center;color:#bfdbfeb8;padding:32px 16px}.quote-modal-footer{border-top:1px solid #94a3b81f;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px 24px;display:flex}@media (width<=900px){.quote-modal-body,.modal-form-grid{grid-template-columns:1fr}}@media (width<=720px){.quote-form-grid,.phase-items-grid{grid-template-columns:1fr}}.aside-card{flex-direction:column;gap:16px;display:flex}.chip.neutral{color:#bfdbfecc;background:#94a3b814}.summary-stack{flex-direction:column;gap:14px;padding:6px 0 12px;display:flex}.summary-stack div{color:#bfdbfecc;border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;gap:12px;padding:10px 2px;display:flex}.summary-stack strong{color:#f8fbff}.sparkline{align-items:end;gap:8px;height:120px;padding:14px 6px 0;display:flex}.bar{background:linear-gradient(#67e8f9,#4f46e5);border-radius:999px 999px 0 0;flex:1;display:block;box-shadow:0 12px 28px #4f46e540}.b1{height:22%}.b2{height:38%}.b3{height:46%}.b4{height:58%}.b5{height:72%}.b6{height:88%}.b7{height:100%}@media (width<=980px){.app-shell{grid-template-columns:1fr;width:min(100vw - 18px,900px);margin:10px auto}.brand-panel{padding:26px 20px 22px}.content-panel{padding:20px 16px 18px}.stats-grid,.content-grid{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}}@media (width<=620px){.stats-grid,.content-grid{grid-template-columns:1fr}.topbar,.login-meta,.card-head{flex-direction:column;align-items:flex-start}table{display:block;overflow-x:auto}}
