:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:#edf3ed;background:#101617}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.shell{display:grid;grid-template-columns:235px 1fr;min-height:100vh}.sidebar{background:#151e1f;border-right:1px solid #293735;padding:24px 15px}.brand{font-size:19px;font-weight:850;letter-spacing:.4px;color:#a8ff00;margin:6px 9px 30px}.brand small{display:block;font-size:10px;letter-spacing:2px;color:#9eafa9;margin-top:5px}.nav{width:100%;background:transparent;border:0;color:#c1cec7;text-align:left;padding:13px;border-radius:10px;margin:2px 0}.nav:hover,.nav.active{background:#263b2e;color:#fff}.main{padding:28px;max-width:1250px;width:100%;margin:0 auto}.top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:23px}h1{margin:0;font-size:27px}h2{font-size:18px;margin:0 0 17px}h3{margin:0 0 8px;font-size:15px}.muted{color:#a6b6ae;font-size:13px}.panel{background:#1a2425;border:1px solid #31413c;border-radius:15px;padding:20px;margin-bottom:16px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{background:#24302e;border-radius:12px;padding:16px}.stat strong{display:block;font-size:25px;margin-top:10px}.btn{border:0;background:#a8ff00;color:#182015;border-radius:9px;padding:10px 15px;font-weight:750}.btn.secondary{background:#33433d;color:#f1f6f0}.btn.danger{background:#633444;color:#fff}.btn.tiny{padding:6px 9px;font-size:12px}.actions{display:flex;gap:8px;flex-wrap:wrap}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#d0ded4}.field.full{grid-column:1/-1}input,select,textarea{width:100%;padding:10px;background:#121d1d;border:1px solid #43584d;border-radius:8px;color:#f6fff3;min-width:0}input[type=checkbox]{width:auto}textarea{min-height:72px;resize:vertical}.check{display:flex;align-items:center;gap:9px;font-size:13px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:12px 9px;border-bottom:1px solid #35443c;text-align:left;vertical-align:top}th{color:#b6c6ba;font-weight:650}.pill{display:inline-block;padding:4px 9px;background:#324a3a;border-radius:99px;font-size:11px}.pill.low{background:#69442d;color:#ffd7a5}.right{text-align:right}.hint{padding:12px;background:#263a2d;border-radius:9px;color:#cfe4cd;font-size:13px}.split{display:flex;justify-content:space-between;gap:10px;align-items:center}.big{font-size:30px;font-weight:800;color:#a8ff00}.empty{padding:25px;color:#9caec5;text-align:center}.hide{display:none!important}.foot{font-size:12px;color:#a1b2a8;margin:25px 0}.toast{position:fixed;bottom:22px;right:20px;background:#245740;color:#fff;border-radius:9px;padding:12px 17px;box-shadow:0 8px 25px #0007;z-index:100}.warn{background:#5a3c2d}.logo-preview{max-height:80px;max-width:230px;object-fit:contain}.bar{height:7px;background:#38493e;border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;background:#a8ff00}.stack{display:grid;gap:12px}@media(max-width:850px){.shell{display:block}.sidebar{padding:10px;position:sticky;top:0;z-index:4}.brand{font-size:15px;margin:4px 7px 8px}.brand small{display:none}.navbox{display:flex;overflow:auto}.nav{white-space:nowrap;font-size:12px;padding:9px}.main{padding:16px}.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.top{align-items:start}h1{font-size:22px}}@media(max-width:500px){.fields{grid-template-columns:1fr}.stat strong{font-size:21px}.panel{padding:14px}}

.brand{margin:0 8px 23px;display:flex;flex-direction:column;align-items:center;gap:4px}.brand img{display:block;width:100%;max-width:174px;max-height:145px;object-fit:contain}.brand small{color:#a8ff00;font-size:11px;font-weight:850;letter-spacing:3px}.nav.active{box-shadow:inset 3px 0 0 #a8ff00}.btn:hover{filter:brightness(1.08)}input:focus,select:focus,textarea:focus{outline:2px solid #a8ff00;outline-offset:1px}.stat strong{color:#b8ff4e}@media(max-width:850px){.brand{flex-direction:row;margin:0 6px 8px}.brand img{max-width:82px;max-height:55px}.brand small{display:block;font-size:10px}}

/* Tiempo de impresión: un solo campo con dos entradas compactas */
.print-duration{min-width:0}.duration-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px}.duration-pair label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#a6b6ae;min-width:0}.duration-pair input{width:100%}

.order-tabs{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.payment-paid{background:#155e37!important;color:#d5ffe3!important;border:1px solid #31b96d!important}.payment-unpaid{background:#6d1b25!important;color:#ffe1e5!important;border:1px solid #e35b67!important}#order-list select{min-width:165px}.field textarea[rows='2']{min-height:65px}

/* Presupuestos agrupados y precio procedente de calculadora */
.quote-layout{display:grid;gap:17px}.quote-section{border:1px solid #344a40;border-radius:12px;padding:17px;display:grid;gap:13px}.quote-section h3{color:#b8ff4e;margin:0}.quote-section>.field{width:100%}.quote-locked{display:grid;gap:7px}.quote-locked input:disabled,#calc-form input:disabled{background:#34413e;color:#bac8bd;border-color:#52635b;opacity:1;cursor:not-allowed}.quote-summary{display:flex;align-items:center;justify-content:space-between;background:#25382e;border-radius:10px;padding:17px;gap:15px}.quote-summary strong{color:#b8ff4e;font-size:25px}@media(max-width:500px){.quote-section{padding:12px}.quote-summary strong{font-size:21px}}

/* Inicio: niveles visuales de inventario */
.material-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:13px;margin-top:15px}.material-card{background:#22312c;border:1px solid #3b5145;border-radius:13px;padding:15px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0}.material-card-low{border-color:#866341}.material-illustration{height:142px;width:120px;max-width:100%}.material-card-info{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:0}.material-card-info strong{overflow-wrap:anywhere;font-size:13px}.material-remaining{font-size:13px;font-weight:700;color:#eaf4eb}.stat-clickable{cursor:pointer;border:1px solid transparent}.stat-clickable:hover,.stat-clickable:focus-visible{border-color:#a8ff00;outline:none}.stat-clickable small{display:block;margin-top:8px;font-size:11px}@media(max-width:500px){.material-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.material-card{padding:12px 6px}}

/* v1.0: inventario e ingresos */
.inventory-form{display:grid;gap:14px}.inventory-section{padding:16px;border:1px solid #344a40;border-radius:12px;display:grid;gap:13px}.inventory-section h3{color:#b8ff4e;display:flex;align-items:center;gap:9px}.section-number{display:inline-flex;width:24px;height:24px;border-radius:50%;background:#a8ff00;color:#16221b;align-items:center;justify-content:center;font-size:12px}.material-type-pick{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px;align-items:center}.material-type-note{line-height:1.5}.inventory-section .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.income-controls{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:18px}.income-controls>.field{min-width:200px}.goal-form{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.goal-form .field{min-width:160px}.income-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.progress-line{height:14px;background:#33443c;border-radius:20px;overflow:hidden;margin:14px 0 8px}.progress-line span{display:block;background:#a8ff00;height:100%;border-radius:20px}.jar-layout{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;gap:24px}.money-jar{width:100%;max-width:230px}.jar-info .big{font-size:28px}.jar-info p{line-height:1.5}@media(max-width:650px){.material-type-pick,.inventory-section .fields,.income-stats,.jar-layout{grid-template-columns:1fr}.jar-layout>div:first-child{text-align:center}.money-jar{max-width:200px}.inventory-section{padding:12px}}

/* v1.1: compact monthly jar on dashboard */
.jar-layout{grid-template-columns:125px minmax(0,1fr);gap:12px;max-width:520px}.money-jar{max-width:125px}.jar-info .big{font-size:22px}@media(max-width:650px){.jar-layout{grid-template-columns:105px minmax(0,1fr)}.money-jar{max-width:105px}.jar-layout>div:first-child{text-align:left}}

/* v1.2: compact square dashboard cards, delivery calendar and result layout */
.home-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch;margin-top:16px}.home-duo>.panel{margin:0;min-width:0;min-height:380px}.home-duo .jar-layout{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:none;gap:4px}.home-duo .money-jar{width:185px;max-width:100%;height:180px}.home-duo .jar-info{text-align:center}.home-duo .jar-info .big{font-size:25px}.home-duo .jar-info p{margin:8px 0}.delivery-calendar{display:flex;flex-direction:column;gap:12px}.calendar-month{text-align:center;text-transform:capitalize;font-weight:750;color:#b8ff4e}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-grid b{text-align:center;color:#9daea6;font-size:11px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;position:relative;border-radius:7px;background:#23302d;font-size:12px}.calendar-day i{position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:currentColor}.calendar-day.calendar-due{background:#59472a;color:#ffcd80}.calendar-day.calendar-ready{background:#284b38;color:#a8ff00}.calendar-day.calendar-today{outline:1px solid #b8ff4e}.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#acb9af}.calendar-legend span:first-child{color:#ffcd80}.calendar-legend span:last-child{color:#a8ff00}.delivery-upcoming{display:grid;gap:6px}.delivery-entry{display:flex;justify-content:space-between;gap:8px;font-size:11px;padding:7px;background:#24322d;border-radius:6px}.result-costs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.result-cost{background:#24302e;border-radius:12px;padding:17px;display:flex;flex-direction:column;gap:7px;min-width:0}.result-cost .muted{font-size:12px}.result-icon{color:#a8ff00;font-size:19px}.result-cost strong{font-size:22px;white-space:nowrap}.result-hero{background:linear-gradient(115deg,#253b2d,#1b2d28);border:1px solid #628a4a;border-radius:14px;padding:22px;margin-top:14px}.result-hero-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:750}.result-tag{border-radius:99px;background:#37583b;color:#c4ff93;padding:5px 11px;font-size:11px}.result-price{font-size:38px;color:#a8ff00;font-weight:850;margin:12px 0 18px}.result-breakdown{border-top:1px solid #45634b;padding-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.result-breakdown div{display:flex;flex-direction:column;gap:5px}.result-breakdown small{color:#a6b6ae}.result-breakdown strong{font-size:17px}#overhead-save:disabled{background:#36433e;color:#a5b4ab;opacity:.8}@media(max-width:1000px){.result-costs{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.home-duo{grid-template-columns:1fr}.home-duo>.panel{min-height:0}.result-breakdown{grid-template-columns:1fr 1fr}.result-price{font-size:32px}}

/* v1.3: calendario navegable y hucha de mayor tamaño sin ensanchar la tarjeta */
.calendar-nav{display:flex;align-items:center;justify-content:space-between;gap:10px}
.calendar-nav .calendar-month{flex:1}
.calendar-arrow{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:9px;border:1px solid #4c6754;background:#26382e;color:#b8ff4e;font-size:28px;line-height:1;cursor:pointer}
.calendar-arrow:hover,.calendar-arrow:focus-visible{background:#365441;outline:2px solid #a8ff00;outline-offset:1px}
.home-duo .money-jar{width:min(100%,275px);max-width:275px;height:auto;display:block;margin:0 auto}
.home-duo .jar-layout{gap:2px}
.home-duo .jar-layout>div:first-child{width:100%;display:flex;justify-content:center}
.home-duo>.panel{min-width:0}
@media(max-width:700px){.home-duo .money-jar{width:min(100%,245px)}}

/* Versión final: actualización de calendario y verificación segura de copias */
.calendar-refresh{font-size:25px;font-weight:600}.calendar-refresh.calendar-refreshed{animation:calendar-spin .5s ease}@keyframes calendar-spin{to{transform:rotate(360deg)}}
.backup-check-result{margin-top:14px}.backup-verified{border:1px solid #638b4c;background:#21382a;border-radius:12px;padding:16px}.backup-verified>strong{color:#b8ff4e}.backup-verified p{margin:10px 0}.backup-counts{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.backup-counts span{background:#334d38;border-radius:8px;padding:8px 11px;font-size:13px}.backup-invalid{border:1px solid #b96565;background:#482c2c;border-radius:10px;padding:14px;color:#ffd4d4}

.material-group-title{margin:20px 0 12px;font-size:1.08rem;color:#b9f27b}.material-group-title small{color:#93a49a;font-weight:400;font-size:.85rem}.material-group-title:first-of-type{margin-top:10px}


/* v1.4.3: navigation follows page, independent scroll when required */
@media(min-width:851px){
 .sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;align-self:start}
 .shell{grid-template-columns:235px minmax(0,1fr)}
}
/* Fixed-height horizontal material galleries; each category scrolls separately */
.material-group-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:18px}
.material-group-head h3{margin:0}
.material-scroll-buttons{display:flex;gap:7px}
.material-carousel{display:flex;gap:13px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;padding:2px 2px 12px;margin-top:10px;scrollbar-width:thin}
.material-carousel .material-card{flex:0 0 clamp(155px,22%,195px);scroll-snap-align:start}
@media(max-width:500px){.material-carousel .material-card{flex-basis:155px}}

.inventory-history-entry.history-extra{display:none}.history-expanded .inventory-history-entry.history-extra{display:flex}.history-toggle{margin-top:12px}.order-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:14px}.order-pagination .actions{flex-wrap:wrap}.quote-line-heading{font-weight:700;margin:12px 0 8px;color:#a8ff00}.quote-primary-line{padding:8px 0 12px}.quote-adjustments{padding:10px 0;border-top:1px solid #334155}

#pp-cloud-modal{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.85);display:grid;place-items:center;padding:16px} .pp-cloud-box{width:min(500px,100%);max-height:95vh;overflow:auto;background:#172320;color:#fff;border:1px solid #5c854d;border-radius:16px;padding:25px;box-shadow:0 12px 50px #000a}.pp-cloud-box form{display:grid;gap:12px}.pp-cloud-box label{display:grid;gap:5px;font-size:13px}.pp-cloud-box input{width:100%;padding:10px;background:#0d1714;border:1px solid #57745c;border-radius:8px;color:#fff}.pp-cloud-error{color:#ff9999}.pp-migrate{position:fixed;z-index:99998;bottom:15px;right:15px;width:min(420px,calc(100vw - 30px));background:#16261d;color:#fff;border:2px solid #8bcd58;border-radius:12px;padding:20px;box-shadow:0 10px 50px #0009}.pp-migrate button{margin:5px}

/* v1.5.4: pantalla de acceso privada */
.pp-login-screen{position:fixed;inset:0;z-index:99999;background:radial-gradient(circle at 50% 12%,#475b50 0%,#35483f 52%,#293a33 100%);display:flex;justify-content:center;align-items:center;padding:22px;overflow:auto}
.pp-login-card{width:min(100%,520px);display:flex;align-items:center;flex-direction:column;gap:12px;color:#f1f7f3}
.pp-login-logo{width:185px;height:140px;object-fit:contain}
.pp-login-tag{color:#b5d3bf;font-size:12px;font-weight:700;letter-spacing:2px;text-align:center;margin-bottom:15px}
.pp-login-inner{width:100%;background:#1a2d26;border:1px solid #3e5b48;border-radius:18px;padding:36px 40px;box-shadow:0 22px 65px #0004}
.pp-login-inner h1{font-size:25px;margin:0 0 6px;color:#f1f7f3}.pp-login-inner p{font-size:13px;color:#b6c7bd;margin:0 0 25px}
.pp-login-inner form{display:grid;gap:16px}.pp-login-inner label{display:flex;flex-direction:column;gap:8px;color:#c8dacf;font-size:13px;font-weight:600}
.pp-login-inner input{width:100%;padding:13px 14px;background:#11221b;border:1px solid #557061;border-radius:9px;color:#fff;font-size:15px;box-sizing:border-box}
.pp-login-inner input:focus{outline:2px solid #a8ff00;outline-offset:1px}.pp-login-submit{margin-top:6px;width:100%;min-height:47px;background:#b8ff4e!important;color:#162419!important;font-weight:800}
.pp-login-error{color:#ffb9b9;font-size:13px;line-height:1.5;margin-top:14px}.pp-login-error:empty{display:none}
.pp-login-footer{font-size:12px;color:#9db3a6;text-align:center;margin-top:6px}.pp-login-config-link{border:0;background:none;color:#b8ff4e;text-decoration:underline;cursor:pointer;margin-top:12px}
.pp-login-config{display:grid;gap:13px;border-top:1px solid #46604f;padding-top:16px}
@media(max-width:480px){.pp-login-inner{padding:24px}.pp-login-logo{width:150px;height:105px}}

/* v1.5.6: el selector ID del modal anulaba el fondo de la pantalla de acceso. */
#pp-cloud-modal.pp-login-screen{background:radial-gradient(ellipse at 50% 15%,#4b6155 0%,#354b40 53%,#283b33 100%);}
#pp-cloud-modal.pp-login-screen .pp-login-card{width:min(100%,520px);}
#pp-cloud-modal.pp-login-screen .pp-login-inner{width:100%;}
