@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Manrope:wght@500;600;700;800&display=swap');
:root{--dark:#133a35;--darker:#0d2927;--accent:#147e65;--accent2:#1aa886;--light:#eff5f2;--canvas:#f5f8f6;--border:#e4eae7;--text:#192c2b;--muted:#7e8c89;--shadow:0 5px 25px rgba(23,56,49,.035);font-family:'DM Sans',system-ui,sans-serif;color:var(--text);background:var(--canvas)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:none}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{font-family:'Manrope','DM Sans',sans-serif;letter-spacing:-.035em}h1{font-size:27px;line-height:1.3;margin-bottom:6px}h2{font-size:24px}h3{font-size:16px;margin-bottom:14px}small{font-size:12px}hr{border:0;border-top:1px solid var(--border);margin:20px 0}.shell{display:flex;min-height:100vh}.sidebar{width:250px;flex-shrink:0;background:var(--darker);color:#d7e9e1;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:26px 13px 16px;z-index:55}.brandmark{display:flex;align-items:center;gap:12px;padding:4px 13px 34px}.brand-icon{width:42px;height:42px;background:linear-gradient(140deg,#3bcba5,#1b957d);border-radius:13px;display:grid;place-items:center;font-family:Manrope,sans-serif;font-size:28px;font-weight:800;color:#fff;box-shadow:0 8px 16px #0f242a3c}.brandmark strong{display:block;color:#fff;line-height:1.15;font-size:19px;letter-spacing:-.04em}.brandmark strong span{color:#58d2b6}.brandmark small{display:block;font-size:10px;color:#8dacaa;margin-top:5px}.nav-label{padding:0 16px;color:#6e9389;font-size:10px;font-weight:800;letter-spacing:.13em;margin-bottom:14px}.sidebar nav{display:flex;flex-direction:column;gap:3px;overflow-y:auto}.nav-link{border-radius:9px;padding:12px 14px;color:#a7c0ba;font-weight:600;display:flex;align-items:center;gap:13px;transition:.18s}.nav-link:hover{background:#1b4942;color:#fff}.nav-link.active{background:#227963;color:#fff;box-shadow:inset 3px 0 0 #5de0b9}.nav-ico{width:20px;height:20px;display:inline-flex}.nav-ico svg{width:100%;height:100%}.side-bottom{margin-top:auto;display:flex;align-items:center;border-top:1px solid #265047;padding:18px 7px 0;gap:10px;min-width:0}.avatar,.top-avatar{background:#a9ecdd;color:#125545;display:grid;place-items:center;width:36px;height:36px;border-radius:11px;font-size:17px;font-weight:800;flex-shrink:0}.side-user{display:flex;flex-direction:column;min-width:0}.side-user b{font-size:12px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user small{color:#86ac9f}.logout{margin-left:auto;color:#a5bcb5;font-size:22px}.workspace{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:72px;flex-shrink:0;padding:0 38px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.breadcrumbs{font-weight:600;color:#65746f}.breadcrumbs span{margin:0 9px;color:#aebfba}.top-right{display:flex;align-items:center;gap:9px;color:#61766f}.top-avatar{width:34px;height:34px;margin-left:17px}.online-dot{width:7px;height:7px;background:#19a978;border-radius:50%;box-shadow:0 0 0 4px #dff9eb}.menu-toggle{display:none;background:none;border:0;font-size:23px;color:var(--dark)}.content{width:100%;max-width:1680px;margin:0 auto;padding:32px 38px 48px;flex:1}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:25px}.page-heading p{margin:0;color:var(--muted);font-size:13px}.footer{display:flex;justify-content:space-between;border-top:1px solid var(--border);padding:15px 38px;background:#fff;color:#92a09b;font-size:11px}.hero{background:linear-gradient(110deg,#13423a 0%,#166850 67%,#1e9777 100%);border-radius:17px;display:flex;justify-content:space-between;position:relative;overflow:hidden;color:#fff;padding:32px 38px;min-height:196px;margin-bottom:22px}.hero::before{content:"";position:absolute;right:0;top:0;width:32%;height:100%;background:radial-gradient(circle at center,#6cdeb34a,transparent 70%)}.hero h2{margin:12px 0 8px;font-size:29px}.hero p{max-width:540px;color:#c1e9df;margin-bottom:21px}.eyebrow{font-weight:800;font-size:10px;letter-spacing:.14em;color:#7deacb}.hero-actions{display:flex;gap:9px}.hero-decoration{display:flex;align-items:center;justify-content:center;min-width:180px}.hero-ring{border:15px solid #ffffff38;border-right-color:#89e7cd;border-top-color:#89e7cd;display:flex;justify-content:center;align-items:center;flex-direction:column;width:148px;height:148px;border-radius:50%;font-size:41px;font-weight:800;z-index:1;transform:rotate(-20deg)}.hero-ring small{font-size:10px;font-weight:600;transform:rotate(20deg)}.hero-ring{font-variant-numeric:tabular-nums}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat{background:#fff;border:1px solid var(--border);border-radius:13px;padding:20px 21px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:5px;min-height:127px}.stat>span{font-size:12px;color:#73827e;font-weight:700}.stat b{font-size:26px;font-weight:800;font-family:Manrope,sans-serif;letter-spacing:-.045em}.stat small{color:#8b9892}.stat-head{display:flex;justify-content:space-between;color:#748781;font-weight:700;font-size:12px;align-items:center}.stat-icon{display:grid;place-items:center;width:33px;height:33px;border-radius:9px;font-size:20px}.stat-icon.teal{background:#e2f5ef;color:#1b9477}.stat-icon.green{background:#e3f9e8;color:#32a15f}.stat-icon.orange{background:#fff1df;color:#df9532}.stat-icon.purple{background:#efebfc;color:#8777ca}.profit{color:#178c6c!important}.substats .stat{min-height:106px}.substats .stat b{font-size:22px}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(295px,1fr);gap:18px;margin-top:19px}.two-col.wide-left{grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr)}.panel{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;padding:23px;margin-bottom:0;min-width:0}.panel+.panel{margin-top:0}.panel h3{margin-bottom:16px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;gap:10px}.panel-title h3{margin:0 0 3px}.panel-title p{margin:0;font-size:12px;color:var(--muted)}.text-link,.mini-link{font-weight:800;font-size:12px;color:#208c71;white-space:nowrap}.table-wrap{overflow-x:auto}.table-wrap.panel{padding:8px 0}.panel.table-wrap table{width:100%}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:#8a9993;font-weight:800;background:#fbfcfc;white-space:nowrap}td,th{padding:13px 13px;border-bottom:1px solid #edf1ee;vertical-align:middle}td{color:#52625e;font-size:12px}td b{color:#233c35;font-weight:800;display:block}td small{color:#94a39b;display:block;margin-top:3px;font-weight:400}tbody tr:hover{background:#fafdfb}tbody tr:last-child td{border-bottom:0}.empty{text-align:center;padding:30px!important;color:#94a5a0}.brand-bars{display:flex;flex-direction:column;gap:19px}.brand-line>div:first-child{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px}.brand-line b{font-weight:800}.brand-line span{color:#879a93}.track{height:8px;background:#edf5f0;border-radius:99px;overflow:hidden}.track span{display:block;height:100%;background:linear-gradient(90deg,#248f72,#46cfa3);border-radius:99px}.shortcut{display:flex;align-items:center;border:1px solid #d7e9e2;background:#f2faf6;border-radius:10px;padding:14px;color:#287f66;font-size:12px;font-weight:700;margin-top:25px;gap:12px}.shortcut b{margin-left:auto}.badge{border-radius:100px;display:inline-flex;align-items:center;padding:5px 9px;font-size:10px;font-weight:800;white-space:nowrap}.badge-slate{background:#edf1f3;color:#6f8190}.badge-blue{background:#e5f0ff;color:#3375c5}.badge-amber{background:#fff3de;color:#b97c1b}.badge-green{background:#dff8e9;color:#1d8f59}.badge-red{background:#ffebec;color:#c64b58}.btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:7px;border:1px solid transparent;padding:10px 16px;border-radius:9px;font-size:12px;font-weight:800;min-height:39px;transition:.15s;white-space:nowrap}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}.btn-primary:hover{background:#126d58;color:#fff}.btn-secondary{background:#fff;border-color:#dce8e1;color:#46645b}.btn-secondary:hover{background:#f3f9f5}.btn-white{background:#fff;color:#185d4a}.btn-ghost-light{background:#ffffff14;color:#fff;border-color:#ffffff58}.btn-danger{background:#fff0f0;color:#bc4a4a;border-color:#f1cccc}.btn-full{width:100%}.btn-icon{border:0;background:#edf4f0;color:#6d847c;border-radius:7px;width:25px;height:25px;font-weight:800}.btn-icon.danger:hover{background:#ffeeee;color:#c34142}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;margin-bottom:17px}.filters{display:flex;align-items:center;flex-wrap:wrap;gap:9px;flex:1}.filters input,.filters select{width:auto;min-width:165px;max-width:270px;background:white}.filters input[name=q]{min-width:250px}.buttons{display:flex;gap:8px}.under-table{font-size:11px;color:#9ca9a4;margin-top:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#526760;font-size:12px}.field.full{grid-column:1/-1}.form-stack{display:flex;flex-direction:column;gap:14px}.form-stack label{display:flex;flex-direction:column;gap:7px;font-weight:700;color:#526760;font-size:12px}.form-stack .two-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px}input,select,textarea{border:1px solid #dae5df;border-radius:8px;padding:10px 12px;color:#294a40;background:#fff;outline:none;min-width:0;max-width:100%;width:100%;font-size:13px}textarea{resize:vertical}input:focus,select:focus,textarea:focus{border-color:#39ac8a;box-shadow:0 0 0 3px #d8f6e7}input:read-only{background:#fafbfa}input[type=file]{padding:9px;background:#f9fbfa;font-size:11px}label small{color:#8c9d95;font-weight:400}.hint,.muted{color:#81938a;font-size:12px;line-height:1.7}.hint{margin:12px 0 0}.alert{border-radius:10px;padding:13px 17px;margin-bottom:17px;font-size:13px;font-weight:600}.alert-success{color:#146245;background:#def8e9}.alert-error{color:#a52e3b;background:#fff0f0;border:1px solid #f6cece}.alert-warning{color:#95681e;background:#fff5e3;border:1px solid #f6db9d}.map-small{height:342px;border-radius:11px;overflow:hidden;background:#e9eee8;margin-bottom:10px}.map-large{width:100%;height:min(67vh,680px);min-height:430px;border-radius:12px;overflow:hidden;background:#e9eee8}.map-unavailable{display:grid;place-items:center;padding:25px;text-align:center;color:#7a8b83;height:100%}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:17px}.map-panel{padding:13px}.map-legend{display:flex;justify-content:center;gap:15px;padding:14px 0 3px;flex-wrap:wrap;font-size:11px;color:#81938b}.map-legend span{display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%;background:#999}.dot.pending{background:#78859a}.dot.running{background:#277ee7}.dot.review{background:#eaa33d}.dot.completed{background:#19936e}.dot.rejected{background:#d8495d}.location-side{padding:18px 0;display:flex;flex-direction:column;min-height:500px}.location-side .panel-title{padding:0 17px}.location-list{overflow:auto;max-height:min(62vh,630px)}.loc-row{width:100%;display:flex;align-items:center;text-align:left;gap:10px;padding:12px 16px;border:0;border-bottom:1px solid var(--border);background:#fff}.loc-row:hover{background:#f5fbf7}.loc-row>span:nth-child(2){flex:1;min-width:0}.loc-row b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-row small{display:block;font-size:10px;color:#91a19a}.loc-mark{display:grid;place-items:center;border-radius:8px;background:#e3f0ea;color:#458b78;width:35px;height:35px;flex-shrink:0;font-size:17px}.location-footer{padding:15px 18px;font-size:11px;color:#97a69f;border-top:1px solid var(--border);margin-top:auto}.custom-pin{background:transparent;border:0}.custom-pin span{position:relative;width:27px;height:27px;display:block;background:var(--pin-color);border:3px solid #fff;transform:rotate(-45deg);border-radius:50% 50% 50% 0;box-shadow:0 2px 9px #0003}.custom-pin i{display:block;width:9px;height:9px;border-radius:100%;background:#fff;position:absolute;top:6px;left:6px}.map-popup{display:flex;flex-direction:column;gap:4px;min-width:170px;font-family:DM Sans,sans-serif}.map-popup b{font-size:13px;color:#21483d}.map-popup small{color:#80918b}.map-popup a{font-weight:800;margin-top:6px}.record-link{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:9px}.record-link b{display:block;color:#2c463e}.record-link small{display:block;color:#93a39c}.stack{display:flex;flex-direction:column}.project-quick,.finance-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.project-quick>div,.finance-strip>div{display:flex;flex-direction:column;gap:5px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:15px 17px;min-width:0}.project-quick small,.finance-strip small{color:#8c9b95;font-size:11px}.project-quick b,.finance-strip b{color:#25443a;font-family:Manrope,sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);overflow:auto;margin-bottom:18px}.tabs a{color:#84918b;font-size:12px;font-weight:800;padding:12px 17px;border-bottom:3px solid transparent;white-space:nowrap}.tabs a.active{color:#147e65;border-color:#1eaa84}.detail-list{margin-bottom:20px}.detail-list>div{display:grid;grid-template-columns:160px 1fr;gap:16px;border-bottom:1px solid #eef2ee;padding:11px 0;font-size:12px}.detail-list>div span{color:#899a91}.detail-list>div b{font-weight:700;color:#284c3e}.work-status{border:1px dashed #d7e5dd;padding:17px;border-radius:12px;margin-bottom:18px}.work-status p{margin:12px 0 0;font-size:12px;color:#72867b}.inline-form{display:inline-flex;margin:4px 7px 4px 0}.space-top{margin-top:18px}.area-total{font-size:19px;font-weight:800;color:#168269}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.photo-card{background:#f7faf8;border:1px solid #e5ece6;border-radius:10px;overflow:hidden}.photo-card img{width:100%;height:175px;display:block;object-fit:cover}.photo-card div{padding:10px}.photo-card span{display:block;font-size:11px;font-weight:900;letter-spacing:.06em;color:#238466}.photo-card small{display:block;color:#91a39a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.timeline{margin-top:13px}.timeline-event{position:relative;display:flex;gap:16px;padding:2px 5px 26px 3px}.timeline-event:not(:last-child)::before{content:"";width:2px;background:#d4e6de;position:absolute;left:10px;top:15px;height:100%}.timeline-dot{width:16px;height:16px;border-radius:50%;background:#36a784;border:4px solid #def5e8;position:relative;z-index:1;flex-shrink:0}.timeline-event b{display:block;color:#365347}.timeline-event small{display:block;color:#9eaea6;margin-top:4px}.brand-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:18px}.brand-card{min-height:210px}.brand-card h3{margin:13px 0 6px}.brand-card p{color:#8c9d94;font-size:12px;min-height:34px}.brand-visual{height:81px;display:flex;align-items:center;justify-content:center;background:#f3f7f4;border-radius:9px}.brand-visual img{max-width:80%;max-height:70px;object-fit:contain}.brand-placeholder{width:54px;height:54px;display:grid;place-items:center;background:#197b64;color:white;font-weight:800;border-radius:10px;font-size:23px}.brand-card-metrics{display:flex;gap:15px;color:#72897d;font-size:12px;margin-bottom:9px}.logo-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.logo-thumbs>div{width:75px;background:#f7faf8;border:1px solid #e7ece8;border-radius:8px;padding:4px;text-align:center}.logo-thumbs img{width:100%;height:50px;object-fit:contain}.logo-thumbs small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#738e80}.gantt-scroll{overflow:auto}.gantt{min-width:1040px}.gantt-row{display:flex;border-bottom:1px solid #e8eee9;height:48px;align-items:stretch}.gantt-head{height:32px;background:#f8faf8}.gantt-name{width:245px;min-width:245px;padding:8px 13px;border-right:1px solid #e8eee9;font-size:11px;color:#36574a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-name b{display:block;font-size:11px;overflow:hidden;text-overflow:ellipsis}.gantt-name small{display:block;color:#9ba99f}.gantt-dates{display:grid;grid-template-columns:repeat(var(--days),1fr);flex:1;position:relative;min-width:800px}.gantt-dates>span{border-right:1px solid #edf0ed;text-align:center;padding-top:8px;color:#98a89e;font-size:10px}.gantt-dates .gantt-day{height:100%;padding:0}.gantt-bar{position:absolute;top:11px;height:24px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;white-space:nowrap;color:#fff;overflow:hidden;text-overflow:ellipsis;border-radius:5px;background:#75889a;padding:0 5px}.bar-blue{background:#2e83ce}.bar-green{background:#1e9c75}.bar-amber{background:#e4a03a}.bar-red{background:#d75c65}.bar-slate{background:#8a96a5}.date-range{font-weight:800;text-transform:capitalize}.spacer{flex:1}.plain{background:none;border:0;padding:0}.auth-bg{background:radial-gradient(ellipse at 5% 5%,#296c54 0%,transparent 45%),radial-gradient(ellipse at 100% 100%,#0d584c 0%,transparent 45%),#102d29;display:grid;place-items:center;min-height:100vh;padding:28px 16px}.login-card,.setup-card{background:white;padding:39px;border-radius:18px;width:min(100%,450px);box-shadow:0 24px 75px #041d1566}.setup-card{max-width:580px;width:100%}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:34px}.login-brand .brand-icon{height:47px;width:47px}.login-brand h2{font-size:22px;margin:0;color:#19463b}.login-brand p{margin:1px 0 0;color:#90a19a;font-size:12px}.login-card h1,.setup-card h1{font-size:24px}.login-card>p,.setup-card>p{color:#84968d;font-size:13px;margin-bottom:25px}.auth-bottom{text-align:center;margin:30px 0 0!important;font-size:11px!important}.setup-card .form-stack{gap:14px}
@media(max-width:1260px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.map-layout{grid-template-columns:minmax(0,1fr) 280px}.content{padding:26px}.topbar{padding:0 26px}.brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.project-quick,.finance-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-101%);transition:transform .25s ease;box-shadow:13px 0 30px #0002}.sidebar.show{transform:translateX(0)}.menu-toggle{display:block}.topbar{justify-content:flex-start;gap:20px}.top-right{margin-left:auto}.two-col,.two-col.wide-left{grid-template-columns:1fr}.map-layout{grid-template-columns:1fr}.location-side{min-height:0}.location-list{max-height:340px}}
@media(max-width:640px){.topbar{height:63px;padding:0 18px}.breadcrumbs{font-size:12px}.top-right small,.online-dot{display:none}.content{padding:19px 13px 35px}.page-heading{margin-bottom:18px}.page-heading h1{font-size:23px}.page-heading p{font-size:12px}.hero{padding:22px;min-height:0}.hero h2{font-size:24px}.hero-decoration{display:none}.hero-actions{flex-wrap:wrap}.stats-grid{gap:10px}.stat{padding:15px;min-height:106px}.stat b{font-size:23px}.stat-head{gap:5px;font-size:11px}.stat-icon{width:27px;height:27px}.substats .stat b{font-size:17px}.panel{padding:16px}.toolbar{align-items:stretch}.toolbar .filters{width:100%}.filters input,.filters select,.filters input[name=q]{min-width:0;max-width:none;flex:1 1 135px}.toolbar>.btn{flex:1}.form-grid,.form-stack .two-fields,.two-fields{grid-template-columns:1fr}.field.full{grid-column:1}.brand-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-card img{height:125px}.project-quick,.finance-strip{gap:8px}.project-quick>div,.finance-strip>div{padding:11px}.project-quick b,.finance-strip b{font-size:12px}.map-large{min-height:390px;height:50vh}.footer{padding:15px;display:block}.footer span{display:block}.detail-list>div{grid-template-columns:112px 1fr}.login-card,.setup-card{padding:26px}.tabs a{padding:12px}.hero-ring{display:none}}
/* V1.1 · Control por tienda de pintura, thinner y herramientas */
.alert-info{color:#225b55;background:#eaf6f3;border:1px solid #cee7e0;border-radius:11px;padding:14px 18px;margin:16px 0;line-height:1.65}
.stock-zero{color:#a6632d!important}.stock-positive{color:#188766!important}
@media(max-width:640px){.stats-grid .stat b{word-break:break-word}.tabs{overflow-x:auto;scrollbar-width:thin}.tabs a{white-space:nowrap}}
