:root{--navy:#12283e;--deep:#0b2236;--blue:#1f5688;--line:#dae3ea;--muted:#667787;--bg:#f3f6f9;--txt:#172c3e;--soft:#ecf2f6;--white:#fff}*{box-sizing:border-box}body{margin:0;font-family:Lato,'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}.shell{display:flex;min-height:100vh}.sidebar{width:210px;background:linear-gradient(#132c45,#0c2135);color:#e3ebf1;flex-shrink:0;padding:18px 12px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:8px 8px 23px;border-bottom:1px solid #334b5e;text-align:center}.brand img{width:100%;background:#fff;border-radius:5px;padding:4px;max-height:92px;object-fit:contain}.brand small{display:block;color:#a4bdcf;margin-top:9px;letter-spacing:.11em;font-size:10px}.nav-title{color:#8ca8bf;font-size:10px;font-weight:700;letter-spacing:.14em;margin:28px 9px 10px}.nav{border:0;text-align:left;background:transparent;color:#d3e1ed;padding:13px 12px;border-radius:6px;cursor:pointer;font-size:14px;margin-bottom:5px;display:flex;gap:12px}.nav:hover,.nav.active{background:#234b70;color:white}.aside-foot{margin-top:auto;padding:14px 7px;border-top:1px solid #365067;color:#b1c6d7;font-size:10px}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#d4a13a;margin-right:4px}.content{min-width:0;flex:1}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:10px 30px}.topbar div:first-child{display:flex;flex-direction:column;gap:3px}.topbar small{color:#6a7c89;font-size:10px;letter-spacing:.1em}.topbar strong{font-size:16px}.pill{border-radius:50px;border:1px solid #d1dce4;background:#f7f9fa;padding:8px 14px;color:#67798a;font-size:11px}.page-body{padding:24px 27px 40px;max-width:1800px;margin:auto}.panel{display:none}.panel.active{display:block}.page-head{display:flex;gap:14px;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap}.page-head h1{margin:0 0 6px;font-weight:700;font-size:25px}.page-head p{margin:0;color:var(--muted)}.actions,.card-head>div{display:flex;gap:7px;flex-wrap:wrap}.btn{border-radius:6px;padding:9px 12px;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.btn.primary{background:var(--blue);color:white;border:1px solid var(--blue)}.btn.light{background:white;color:var(--blue);border:1px solid #cad8e4}.btn.outline{background:#eef4f9;color:#174b79;border:1px solid #b5cddd}.btn:hover{filter:brightness(.97)}.notice{background:#fff8e7;border:1px solid #eedfb4;border-radius:6px;padding:12px 14px;color:#755924;margin-bottom:14px;font-size:12px}.layout{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(315px,.9fr);gap:15px}.form-column,.right-column{display:flex;flex-direction:column;gap:14px;min-width:0}.card{border:1px solid var(--line);border-radius:8px;background:white;padding:17px 18px;box-shadow:0 2px 10px #0a23300b}.card h2{font-size:12px;letter-spacing:.04em;color:#174b75;margin:0 0 17px;font-weight:800}.card h2 span{margin-left:7px}.form-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}.form-grid.two{grid-template-columns:1fr 1.1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.four{grid-template-columns:repeat(4,1fr)}label{font-size:11px;font-weight:700;color:#254762;display:block}label em{color:#be4d4d;font-style:normal}input,select,textarea{font-family:inherit;font-size:12px;color:#263d50;background:white;border:1px solid #cbd9e4;border-radius:5px;padding:9px 10px;outline:none;width:100%;margin-top:6px;min-width:0}input:focus,select:focus,textarea:focus{border-color:#4d8ebf;box-shadow:0 0 0 2px #4d8ebf23}input[readonly]{background:#f1f4f6;color:#7f8d9b}textarea{resize:vertical;min-height:136px}.search-row{display:flex;gap:6px;align-items:end}.search-row input{flex:1;width:30px}.search-row button{align-self:end;padding:9px 10px}.ruc-status{border-radius:5px;padding:9px 12px;font-size:11px;margin-top:1px}.ruc-status.muted{background:#f0f4f7;color:#687d8e}.ruc-status.error{background:#fff0ef;color:#a2433b}.ruc-status.ok{background:#eef6f0;color:#246842}.checkline{display:flex;align-items:center;gap:9px;margin-top:7px;font-weight:400}.checkline input{width:auto;margin:0}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:8px;flex-wrap:wrap}.card-head h2{margin:0}.table-card{padding:16px 12px}.table-scroll{overflow:auto}.edit-table{width:100%;border-collapse:collapse;min-width:855px;table-layout:fixed}.edit-table th{background:#163c5c;color:white;font-size:9px;font-weight:700;text-align:left;padding:12px 5px;white-space:nowrap;border-right:1px solid #4a6175}.edit-table td{padding:2px;border-bottom:1px solid #e1e9ed}.edit-table tbody tr:nth-child(even){background:#f6f8fa}.edit-table input{width:100%;border:1px solid transparent;background:transparent;margin:0;border-radius:2px;padding:7px 4px;font-size:10px}.edit-table input:focus{background:#fff;border-color:#7caed1}.edit-table .num{text-align:right;font-variant-numeric:tabular-nums}.edit-table .account{display:grid;grid-template-columns:21px 1fr;gap:0;align-items:center;color:#264761;font-size:10px;font-variant-numeric:tabular-nums}.edit-table .account b{font-weight:400;text-align:left}.edit-table .account span{text-align:right}.edit-table .del{color:#b64036;background:none;border:0;font-size:18px;cursor:pointer}.tiny{color:#7a8b96;font-size:10px;margin:9px 5px 2px}.bottom-grid{display:grid;grid-template-columns:1fr .95fr;gap:14px}#summary .r{display:grid;grid-template-columns:1fr 25px 100px;gap:5px;padding:6px 2px;border-bottom:1px solid #e7edf1;font-size:11px}#summary .r .money{text-align:right;font-variant-numeric:tabular-nums}#summary .r.total{background:#e5eff7;font-weight:800;padding:9px 7px}#summary .words{font-size:11px;color:#264b6a;margin:9px 4px}.preview-wrap{height:490px;overflow:hidden;border:1px solid #dfe8ed;background:#d8e1e8}.preview-wrap iframe{border:0;width:210mm;height:297mm;background:white;transform:scale(.47);transform-origin:top left}.preview-card small{color:#7a8b96;font-size:10px;display:block;margin-top:9px}.draft-list{display:flex;flex-direction:column;gap:7px}.draft-row{padding:10px;border:1px solid #e0e8ee;background:#fafcfd;border-radius:5px;text-align:left;cursor:pointer;display:flex;justify-content:space-between;gap:6px}.draft-row strong{font-size:11px}.draft-row small{font-size:10px;color:#617586}.right-column .card p{font-size:11px;line-height:1.7}.right-column .card small{font-size:10px;color:#7d8a95}.list-table{width:100%;border-collapse:collapse}.list-table th{background:#1c425e;color:white;text-align:left;font-size:10px;padding:12px}.list-table td{font-size:12px;border-bottom:1px solid #e3e9ed;padding:13px}#toast{position:fixed;bottom:18px;right:18px;display:none;max-width:440px;background:#1f4259;color:white;padding:14px 18px;border-radius:7px;box-shadow:0 10px 30px #0003;font-size:12px;z-index:5}@media(max-width:1180px){.layout{grid-template-columns:minmax(0,1fr)}.right-column{display:grid;grid-template-columns:1fr 1fr}.preview-card{grid-row:span 2}.preview-wrap{height:440px}.form-grid.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.sidebar{width:59px;padding:8px 4px}.sidebar .brand img{max-width:100%}.sidebar .brand small,.sidebar .nav-title,.sidebar .nav span,.sidebar .aside-foot{display:none}.nav{font-size:19px;padding:12px;justify-content:center}.topbar{padding:12px;height:60px}.topbar .pill{display:none}.page-body{padding:15px 10px}.form-grid.two,.form-grid.three,.form-grid.four,.bottom-grid,.right-column{grid-template-columns:minmax(0,1fr)}.preview-wrap{height:360px}.preview-wrap iframe{transform:scale(.34)}.card{padding:14px}.page-head h1{font-size:20px}.actions{width:100%}.btn{font-size:11px}}

.backup-link{display:inline-block;color:#174b79;font-size:11px;font-weight:700;text-decoration:none;border-bottom:1px solid #8ca8bf;margin-bottom:5px}.backup-link:hover{color:#0c2440}

/* GAMMA V0.8: catálogo y selector de repuestos/servicios */
[hidden]{display:none !important}
.picker{border:1px solid #b7cddb;background:#f7fafc;border-radius:6px;margin:9px 0;padding:12px;}
.picker-top{display:flex;gap:12px;align-items:flex-end}.picker-top label{flex:1}
.picker-results{max-height:245px;overflow-y:auto;margin-top:8px;display:flex;flex-direction:column;gap:4px}
.picker-item{background:#fff;border:1px solid #dbe5eb;border-radius:5px;padding:9px;display:grid;grid-template-columns:125px 1fr auto;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;color:#1d3c57}
.picker-item:hover{border-color:#4d8ebf;background:#f0f6fa}.picker-item strong{font-size:11px}.picker-item span{font-size:11px}.picker-item small{color:#728594;font-size:10px}.picker-item .price{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}
.catalog-table{min-width:810px}.catalog-table th{white-space:nowrap}.catalog-table td{font-size:11px;padding:10px 8px}.catalog-table .cat-price{font-weight:700;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.catalog-table .small-btn{border:1px solid #acc4d4;color:#154c78;background:#fff;padding:6px 9px;border-radius:4px;cursor:pointer}.catalog-table .small-btn:hover{background:#e8f1f7}.catalog-tag{font-size:10px;background:#f0f4f7;border:1px solid #d7e0e6;border-radius:4px;padding:3px 5px}.demo-tag{color:#846523;font-size:9px}
#productEditor{border-color:#a9c8de}
@media(max-width:700px){.picker-item{grid-template-columns:1fr auto;gap:5px}.picker-item>span{grid-column:1/3;grid-row:2}.picker-item>.price{grid-column:2;grid-row:1}.picker-top{align-items:stretch}.picker-top .btn{align-self:flex-end}.catalog-table{min-width:760px}}

/* GAMMA V0.9: directorio y edición de clientes, legible en teléfonos */
.btn.danger{color:#a33838;background:#fff;border:1px solid #e4c7c7}
.client-editor{border-color:#b0cddd}
.client-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,350px),1fr));gap:12px;margin-top:12px}
.client-entry{border:1px solid #dae4ea;border-radius:8px;padding:14px;background:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:12px;min-width:0}
.client-main strong{display:block;color:#173b59;font-size:13px;line-height:1.4;overflow-wrap:anywhere}
.client-doc{display:inline-block;color:#395a70;font-size:11px;background:#eef3f7;border-radius:4px;padding:3px 6px;margin:7px 0}
.client-address{font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.client-meta{display:flex;flex-direction:column;gap:4px;color:#688091;font-size:11px;margin-top:8px;overflow-wrap:anywhere}
.client-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.client-buttons .btn{padding:9px 4px;text-align:center;white-space:normal}
.client-empty{padding:20px 8px;text-align:center;color:#667c8b;font-size:12px}
.client-search{max-width:620px}.client-search input{font-size:13px}
.quote-client-search{margin-bottom:12px;position:relative}
.quote-client-results{background:#fff;border:1px solid #c6d9e6;border-radius:6px;box-shadow:0 7px 18px #0a2d4516;margin-top:5px;max-height:250px;overflow-y:auto}
.quote-client-result{display:flex;flex-direction:column;gap:3px;padding:9px 11px;background:#fff;border:0;border-bottom:1px solid #e5edf2;width:100%;text-align:left;cursor:pointer;color:#234a64}
.quote-client-result:hover{background:#f1f7fb}.quote-client-result strong{font-size:12px}.quote-client-result small{color:#667d8b;font-size:11px;overflow-wrap:anywhere}
@media(max-width:700px){.client-list{grid-template-columns:1fr}.client-entry{padding:13px}.client-buttons .btn{font-size:12px}.client-search{width:100%}}

/* V1.0: campo RUC y botón en formulario móvil de clientes. */
.field>label{margin-bottom:6px}.field .search-row input{margin-top:0;min-width:0;flex:1}.field .search-row button{white-space:nowrap;min-height:37px}
@media(max-width:700px){.field .search-row{flex-wrap:wrap}.field .search-row input{min-width:150px}.field .search-row button{flex:0 0 auto}}
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:16px}.login-card{width:100%;max-width:380px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:28px 26px;box-shadow:0 8px 28px rgba(18,40,62,.12)}.login-logo{display:block;max-width:220px;max-height:90px;margin:0 auto 10px;object-fit:contain}.login-card h1{font-size:18px;text-align:center;color:var(--navy);margin:0 0 18px;letter-spacing:.08em}.login-card label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:12px}.login-card input{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid var(--line);border-radius:6px;font-size:15px}.login-btn{width:100%;padding:12px;border:0;border-radius:6px;background:var(--blue);color:#fff;font-weight:700;font-size:15px;cursor:pointer}.login-btn:hover{background:var(--navy)}.login-msg{color:#b3261e;min-height:18px;text-align:center;font-size:13px;margin:12px 0 0}.login-note{font-size:12px;color:var(--muted);margin:0 0 12px}
body.role-vendedor #newProduct,body.role-vendedor [data-edit-product],body.role-vendedor [data-client-action="delete"]{display:none!important}
[hidden]{display:none!important}.pill{display:flex;gap:10px;align-items:center}

/* V1.1: módulo de almacén */
.list-table .r,.list-table th.r{text-align:right;font-variant-numeric:tabular-nums}.list-table td{vertical-align:middle}
.wh-badge{font-weight:700;white-space:nowrap}.wh-badge.ok{background:#e8f4ec;border-color:#bcdcc6;color:#1d6b3a}.wh-badge.warn{background:#fff4de;border-color:#efd59b;color:#8a5a00}.wh-badge.bad{background:#fbeaea;border-color:#e4c0c0;color:#a33838}
.wh-warn{color:#a33838;font-weight:700}.wh-sum,.wh-total{margin:10px 0;font-size:12px;color:#395a70}.wh-total b,.wh-sum b{color:#12283e}
.wh-block{display:block;margin:10px 0}.wh-picker{position:relative;margin-top:5px}.wh-picker input{width:100%}.wh-picker .quote-client-results{position:absolute;left:0;right:0;z-index:5}
.wh-in{width:96px;text-align:right;padding:6px 7px}.wh-annul{margin-top:12px;align-items:end}
.list-table .small-btn{padding:5px 9px;font-size:11px}
.panel .table-scroll{max-width:100%}
.nav-title[hidden]{display:none}
body.role-almacen #newQuote,body.role-almacen #saveQuote,body.role-almacen #newClient,body.role-almacen [data-client-action="delete"],body.role-almacen #newProduct,body.role-almacen [data-edit-product]{display:none!important}
@media(max-width:700px){.wh-in{width:78px}.list-table td,.list-table th{padding:9px 7px}}
