:root{--navy:#173b53;--deep:#102d42;--blue:#76bed1;--lime:#abc745;--paper:#f4f8f8;--line:#d8e5e7;--ink:#173b53;--muted:#607986;--danger:#b83746;--white:#fff;font-family:Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,p{margin-top:0}h1{letter-spacing:-.03em}h2{font-size:1.12rem}p{line-height:1.5}small{font-size:.67rem}#workspace[hidden],.view[hidden],#login[hidden],.notice[hidden]{display:none!important}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1fr) minmax(350px,.88fr)}.login-card{align-self:center;justify-self:center;width:min(440px,calc(100% - 50px));padding:44px 8px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:70px;height:70px;border-radius:18px;background:var(--navy);font-size:3.4rem;font-weight:850;color:#fff;letter-spacing:-.16em;padding-right:10px;box-shadow:0 18px 40px #173b5326}.brand-mark span{font-size:1rem;align-self:flex-start;padding-top:12px;color:var(--lime);letter-spacing:0}.brand-mark.small{width:45px;height:45px;font-size:2.2rem;border-radius:11px;box-shadow:none}.brand-mark.small span{font-size:.65rem;padding-top:7px}.eyebrow{color:#6d8b23;font-weight:800;font-size:.75rem;letter-spacing:.18em;margin:24px 0 12px}.login-card h1{font-size:clamp(2rem,3vw,3rem);line-height:1.13;margin-bottom:16px}.muted{color:var(--muted)}form label{display:block;font-weight:650;font-size:.84rem;margin:16px 0 4px}input,select{display:block;width:100%;margin-top:7px;padding:12px 13px;border:1px solid #c7d9dd;border-radius:8px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus{border-color:#428ca0;box-shadow:0 0 0 3px #76bed143}.primary{background:var(--navy);border:1px solid var(--navy);color:#fff;border-radius:8px;padding:12px 18px;font-weight:750}.primary:hover{background:#225575}.login-card .primary{margin-top:26px;width:100%}.ghost{background:#fff;border:1px solid #b9d1d6;color:var(--navy);border-radius:8px;padding:9px 15px;font-weight:700}.ghost:hover{background:#eaf3f4}.error{color:var(--danger);min-height:1.4em;margin-top:14px}.login-art{position:relative;overflow:hidden;background:linear-gradient(145deg,var(--deep),var(--navy));display:flex;align-items:end;padding:70px;color:#fff}.login-art p{font-size:1.55rem;font-weight:700;z-index:2}.sun{position:absolute;right:10%;top:12%;width:100px;height:100px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 30px #abc74519,0 0 0 75px #abc7450d}.panels{position:absolute;left:13%;top:32%;width:75%;height:30%;background:repeating-linear-gradient(90deg,transparent 0 14%,#76bed1 14% 15%,transparent 15% 19%),repeating-linear-gradient(0deg,#67adbf 0 29%,#173b53 29% 34%);transform:skew(-13deg) rotate(-9deg);box-shadow:25px 28px 0 #0e2639}.login-art::after{content:"";position:absolute;left:-20%;right:-20%;bottom:-20%;height:50%;background:#0e293e;transform:rotate(-11deg)}
.site-header{height:78px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:5px solid var(--lime)}.wordmark{display:flex;align-items:center;gap:12px}.wordmark strong{display:block;letter-spacing:.16em}.wordmark small{display:block;color:#b5d9e1;letter-spacing:.12em;margin-top:4px}.header-actions{display:flex;align-items:center;gap:10px}.header-actions span{font-size:.86rem;margin-right:12px}.header-actions .ghost{background:transparent;color:#fff;border-color:#76bed184}.header-actions .ghost:hover{background:#ffffff22}.layout{display:grid;grid-template-columns:222px 1fr;min-height:calc(100vh - 78px)}.sidebar{background:#eaf2f2;padding:30px 14px;border-right:1px solid var(--line)}.nav{display:block;width:100%;text-align:left;border:0;background:transparent;color:#486778;padding:11px 15px;border-radius:9px;font-weight:700;margin:3px 0}.nav:hover{background:#ddebed}.nav.active{background:var(--navy);color:#fff;box-shadow:0 7px 15px #173b5322}.sidebar-note{margin:40px 12px;color:var(--muted);font-size:.78rem}.content{padding:34px clamp(20px,4vw,64px);max-width:1600px;width:100%}.page-heading{margin-bottom:28px}.page-heading .eyebrow{margin:0 0 10px}.page-heading h1{font-size:2.15rem;margin:0 0 8px}.page-heading .muted{margin:0}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:0 8px 22px #173b5308}.stat::before{content:"";display:block;width:34px;height:5px;background:var(--lime);border-radius:4px;margin-bottom:22px}.stat span{color:var(--muted);font-size:.88rem}.stat strong{display:block;font-size:2.5rem;margin-top:9px}.info-card{background:var(--navy);color:#fff;border-radius:15px;padding:27px 31px;margin-top:24px;max-width:850px}.info-card p{color:#c5e1e6;max-width:620px;margin-bottom:0}.info-accent{background:var(--lime);width:60px;height:6px;border-radius:4px;margin-bottom:18px}.split{display:grid;grid-template-columns:minmax(295px,360px) minmax(0,1fr);gap:22px;align-items:start}.form-card,.table-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:25px;box-shadow:0 8px 24px #173b5308}.form-card h2,.table-card h2{margin-bottom:19px}.form-card label{margin:12px 0}.form-card input,.form-card select{padding:10px 11px}.form-actions{display:flex;gap:9px;margin-top:22px}.form-actions button{flex:1}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;color:#63808e;text-transform:uppercase;font-size:.67rem;letter-spacing:.08em;border-bottom:1px solid var(--line);padding:12px 10px;white-space:nowrap}td{border-bottom:1px solid #edf2f3;padding:13px 10px;vertical-align:top}tr:last-child td{border-bottom:0}td button{border:0;background:#e7f2f4;color:var(--navy);padding:6px 9px;border-radius:6px;font-size:.77rem;font-weight:750}td button:hover{background:#d0e7eb}.notice{padding:12px 16px;border-radius:8px;background:#e9f4d0;border-left:5px solid var(--lime);margin-bottom:20px}.notice.error{background:#fff0f1;border-left-color:var(--danger);color:var(--danger)}.empty{color:#8398a1;font-style:italic}.nowrap{white-space:nowrap}
@media(max-width:900px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.layout{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-note{display:none}.nav{white-space:nowrap;width:auto;margin-right:5px}.split{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.content{padding:25px}.site-header{padding:0 15px}}@media(max-width:560px){.header-actions span{display:none}.header-actions .ghost{padding:7px 9px}.stat-grid{gap:10px}.stat{padding:15px}.stat strong{font-size:1.9rem}.page-heading h1{font-size:1.8rem}.form-card,.table-card{padding:17px}}
.detail-dialog{width:min(760px,calc(100% - 30px));max-height:85vh;border:1px solid var(--line);border-radius:15px;padding:26px;background:#fff;color:var(--ink);box-shadow:0 28px 80px #102d4260}.detail-dialog::backdrop{background:#102d42a0}.detail-head{display:flex;align-items:start;justify-content:space-between;gap:15px}.detail-head .eyebrow{margin:0 0 8px}.detail-head h2{font-size:1.45rem}.detail-total{text-align:right;font-weight:800;margin:20px 0 0}
.sub-section{margin-top:26px}td button+button{margin-left:6px}
[hidden]{display:none!important}
#user-form-message{font-size:.88rem;line-height:1.5}
/* Cotizador web: controles táctiles y filas de producto apiladas en móvil. */
textarea{display:block;width:100%;font:inherit;margin-top:7px;padding:12px;border:1px solid #c7d9dd;border-radius:8px;resize:vertical;color:var(--ink)}
.quote-start{max-width:850px;margin-bottom:20px}.quote-start p{font-size:.88rem;margin:10px 0}.quote-start select{font-size:16px}
.quote-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.quote-section-head h2{margin:0}.quote-products{margin-bottom:20px}.quote-products>p{font-size:.88rem;margin:15px 0}
.quote-line{display:grid;grid-template-columns:minmax(180px,1fr) 90px 145px auto;gap:10px;align-items:end;padding:16px 0;border-top:1px solid var(--line)}.quote-line label{margin:0}.quote-line input,.quote-line select{font-size:16px;min-height:44px}.quote-line .q-catalog{grid-column:1/-1;margin:0;font-size:.78rem}.q-remove{min-height:44px}
.quote-options{margin-bottom:20px}.quote-options summary{cursor:pointer;font-weight:700}.quote-options p{font-size:.85rem;margin:12px 0}.quote-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.quote-actions button{min-height:46px}
.quote-stats strong{font-size:1.55rem}.quote-stats .stat{padding:18px}.quote-disclaimer{font-size:.8rem;margin:18px 0 0}#quote-result{margin-top:28px}#quote-save-state{font-weight:650;line-height:1.5}.content{min-width:0}
@media(max-width:650px){.quote-line{grid-template-columns:1fr 1fr}.quote-line label:first-child{grid-column:1/-1}.quote-line .q-remove{justify-self:start}.quote-line .q-catalog{grid-column:1/-1}.quote-section-head{align-items:start;flex-direction:column}.quote-actions button{flex:1 1 180px}.quote-stats strong{font-size:1.2rem}.content{padding:20px 14px}.form-card,.table-card{padding:17px}.sidebar .nav{flex:0 0 auto}.quote-options input{font-size:16px}}
