:root{--forest:#17191b;--dark:#25282b;--muted:#777e84;--cream:#eceff1;--paper:#fbfcfd;--line:#d7dce0;--gold:#9ea6ac;--pale:#e8ebee}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--dark);font-family:'DM Sans',system-ui,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--forest);color:#fff;display:flex;flex-direction:column;padding:34px 18px 22px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;margin:0 12px 52px;font-size:10px;letter-spacing:.18em;line-height:1.5}.brand strong{display:block;font:700 27px/1 'Outfit',sans-serif;letter-spacing:.07em}.brand small{display:block;letter-spacing:0;font-size:11px;color:#bbc2c7;margin-top:7px}.brand-icon{width:40px;height:40px;border:1px solid #aeb6bc;border-radius:12px;display:grid;place-items:center;font-size:30px;color:#e6e9eb}.sidebar nav{display:grid;gap:8px}.nav{width:100%;border:0;background:transparent;color:#d1d6da;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 15px;border-radius:12px;font-weight:600}.nav span{font-size:22px;width:25px;text-align:center;font-weight:400}.nav:hover,.nav.active{background:#353a3e;color:white}.sidebar-bottom{margin-top:auto;border-top:1px solid #4a5055;padding:23px 12px 3px;display:flex;gap:11px;font-size:12px}.sidebar-bottom small{display:block;color:#b9c0c5;line-height:1.5;margin-top:4px}.sync-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#c8cfd4;margin-top:5px}.topbar{height:82px;border-bottom:1px solid var(--line);background:#fbfcfd;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,62px)}.crumb{font-size:12px;color:#858d93;letter-spacing:.08em;font-weight:700}.crumb span{padding:0 11px;color:#bec5ca}.crumb b{color:var(--dark)}.top-actions{display:flex;align-items:center;gap:16px}.network{font-size:12px;color:#787f85}.network:before{content:'';display:inline-block;width:7px;height:7px;background:#a9b2b8;border-radius:50%;margin-right:8px}.button{border:1px solid #ccd2d6;background:white;color:var(--forest);border-radius:10px;padding:10px 16px;font-weight:700;white-space:nowrap}.button:hover{background:var(--pale)}.button.primary{background:var(--forest);color:#fff;border-color:var(--forest)}.button.primary:hover{background:#34393d}.button.danger{color:#595f64;border-color:#ccd1d5}.page{max-width:1460px;margin:auto;padding:42px clamp(24px,4vw,62px) 90px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:#757d83}h1,h2,h3{font-family:Outfit,system-ui,sans-serif;line-height:1.13;margin:0}h1{font-size:clamp(32px,3vw,44px);letter-spacing:-.035em}h2{font-size:26px;letter-spacing:-.025em}h3{font-size:18px}.lead{color:#6f777d;line-height:1.55;margin:12px 0 0;max-width:690px}.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:26px;align-items:center;margin-bottom:28px}.hero .eyebrow{display:block;margin-bottom:13px}.hero-illustration{min-height:210px;border-radius:22px;background:#e3e7e9;position:relative;overflow:hidden}.hero-illustration:before{content:'';position:absolute;inset:25px 45px 0 auto;width:45%;border:3px solid #bcc5ca;border-bottom:0;border-radius:130px 130px 0 0;opacity:.5}.stack{position:absolute;bottom:0;left:15%;display:flex;align-items:end;gap:8px}.stack i{display:block;background:#535b60;border:4px solid #373d42;border-radius:12px 12px 0 0;width:70px;height:80px;box-shadow:inset 0 18px 0 #737d83}.stack i:nth-child(2){height:125px;background:#aab1b6;border-color:#8b949a;box-shadow:inset 0 18px 0 #bec6cb}.stack i:nth-child(3){height:99px}.stack i:nth-child(4){height:156px;background:#f2f4f5;border-color:#aeb7bc;box-shadow:inset 0 18px 0 #dce2e5}.hero-illustration b{position:absolute;right:27px;bottom:25px;background:#fbfcfd;border-radius:10px;padding:10px 12px;color:var(--forest);font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:28px 0}.stat,.panel,.card{background:var(--paper);border:1px solid var(--line);border-radius:17px}.stat{padding:22px 24px}.stat small{display:block;color:#767e84;font-weight:700;font-size:12px}.stat strong{font:700 34px Outfit;display:block;margin:11px 0 4px}.stat span{font-size:12px;color:#8a9298}.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.panel{padding:25px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.text-button{border:0;background:none;color:var(--forest);font-weight:800;padding:7px}.quick-search{display:flex;align-items:center;gap:10px;border:1px solid #d9dfe3;border-radius:12px;padding:0 16px;background:#fff;width:100%;height:54px}.quick-search span{color:#808990;font-size:23px}.quick-search input{border:0;outline:0;width:100%;min-width:0;background:none;color:var(--dark)}.hint{font-size:12px;color:#818a90;line-height:1.5}.recent-list{display:grid}.recent{padding:13px 0;border-bottom:1px solid #e3e7e9;display:flex;justify-content:space-between;gap:12px;align-items:center}.recent:last-child{border:0}.recent strong{display:block;font-size:14px}.recent small{display:block;color:#8c949a;margin-top:4px}.badge{display:inline-flex;border-radius:100px;background:#e8ecef;color:#4d565c;padding:6px 10px;font-weight:800;font-size:11px;white-space:nowrap}.badge.warn{background:#e9edf0;color:#606a71}.page-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:26px}.toolbar{display:flex;flex-wrap:wrap;gap:11px;margin:0 0 20px}.toolbar .quick-search{flex:1;min-width:220px}.toolbar select{border:1px solid #d9dfe3;background:white;color:var(--dark);border-radius:11px;padding:0 14px;min-width:150px}.table-wrap{background:var(--paper);border:1px solid var(--line);border-radius:17px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:670px}th{text-align:left;background:#f1f3f4;color:#7c858b;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:15px 19px}td{padding:15px 19px;border-top:1px solid #e5e9eb;font-size:13px}td strong{font-size:14px}td small{display:block;color:#8a9298;margin-top:4px}.row-action{background:none;border:0;color:var(--forest);font-weight:800}.empty{text-align:center;color:#818a90;padding:44px}.box-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.card{padding:22px;text-align:left;width:100%;transition:transform .15s,border-color .15s}.card:hover{transform:translateY(-2px);border-color:#9ca6ac}.card .top{display:flex;justify-content:space-between;align-items:center}.box-code{background:#e9edf0;color:var(--forest);font:800 13px Outfit;padding:8px 10px;border-radius:8px}.card h3{margin:20px 0 8px}.card p{margin:0;color:#767e84;font-size:13px;min-height:38px;line-height:1.5}.card footer{border-top:1px solid var(--line);margin-top:19px;padding-top:14px;color:#737b81;font-size:12px;font-weight:800}.notice{border-left:4px solid var(--gold);background:#f3f5f6;border-radius:10px;padding:16px 19px;color:#596168;font-size:13px;line-height:1.55;margin-bottom:24px}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.map-frame{background:#fbfcfd;border:1px solid var(--line);border-radius:18px;padding:22px;overflow:auto}.plan{position:relative;aspect-ratio:1.65;min-width:620px;border:4px solid var(--dark);border-bottom:0;background:#f8fafb;margin:20px 8px 38px}.plan:after{content:'';position:absolute;left:0;right:0;bottom:0;border-bottom:4px solid var(--dark)}.room-line{position:absolute;left:73%;top:20%;bottom:0;border-left:4px solid var(--dark)}.entrance{position:absolute;bottom:-8px;left:65%;width:12%;height:13px;background:#f8fafb;z-index:2}.entrance-label{position:absolute;bottom:-32px;left:64%;font-size:10px;font-weight:800;letter-spacing:.14em}.furniture{position:absolute;border:2px dashed #929ba1;background:#f2f4f5;border-radius:8px;display:grid;place-items:center;text-align:center;color:#687178;font-size:10px;padding:4px}.furniture.solid{border:2px solid #697177;background:#e6eaec;color:#586168}.zone{position:absolute;border:0;background:#e1e6e9;color:#353d42;border-radius:9px;padding:8px;text-align:center;font-size:11px;font-weight:800;box-shadow:0 2px 0 #bcc4c9;z-index:1}.zone:hover,.zone.selected{background:#353d42;color:white}.zone em{display:block;font-size:10px;font-style:normal;opacity:.7}.zone.z1{left:75%;top:35%;width:10%;height:42%}.zone.z2{right:2%;top:31%;width:10%;height:45%}.zone.z3{right:3%;top:5%;width:20%;height:12%}.zone.z4{left:50%;top:5%;width:17%;height:12%}.zone.z5{left:64%;top:23%;width:8%;height:22%}.map-side .panel{height:100%}.map-side p{line-height:1.6;color:#767e84;font-size:13px}.location-list{display:grid;gap:8px;margin-top:17px}.location-list button{border:1px solid #dee3e6;background:#f4f6f7;border-radius:9px;text-align:left;padding:10px 12px;color:var(--forest);font-weight:700}.location-list button:hover{border-color:#9ea8ae}.controls{display:flex;gap:10px;flex-wrap:wrap}.data-block{max-width:750px}.data-row{display:flex;gap:17px;align-items:flex-start;border-bottom:1px solid var(--line);padding:20px 0}.data-row .glyph{width:40px;height:40px;background:#e9edef;color:var(--forest);border-radius:11px;display:grid;place-items:center;font-size:23px;flex:none}.data-row h3{margin-bottom:7px}.data-row p{font-size:13px;color:#7e878d;line-height:1.5;margin:0 0 13px}.data-row .buttons{display:flex;gap:8px;flex-wrap:wrap}dialog{border:0;border-radius:18px;box-shadow:0 28px 90px #11182044;width:min(540px,calc(100vw - 24px));padding:0;background:var(--paper)}dialog::backdrop{background:#14181ca8}dialog form{padding:27px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:24px}.dialog-head h2{margin-top:7px}.icon-button{border:0;background:#e9edf0;color:#5b646a;font-size:25px;border-radius:10px;width:34px;height:34px}dialog label{display:block;font-weight:800;color:#515a60;font-size:12px;margin-bottom:16px}dialog input,dialog select,dialog textarea{display:block;width:100%;border:1px solid #dbe1e4;border-radius:9px;background:white;padding:11px 12px;margin-top:7px;color:var(--dark);outline-color:#8e9aa2}dialog textarea{resize:vertical}.fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.dialog-actions{display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:18px;margin-top:10px}.spacer{flex:1}#toast{position:fixed;bottom:20px;right:20px;background:var(--dark);color:#fff;padding:12px 18px;border-radius:10px;box-shadow:0 8px 24px #0003;opacity:0;transform:translateY(10px);transition:.2s;pointer-events:none;z-index:10}#toast.show{opacity:1;transform:translateY(0)}@media(max-width:950px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;padding:14px 18px;display:block}.brand{margin:0 0 13px}.sidebar nav{display:flex;overflow:auto;gap:4px}.nav{white-space:nowrap;width:auto;padding:10px}.nav span{display:none}.sidebar-bottom{display:none}.topbar{height:auto;min-height:66px}.hero{grid-template-columns:1fr}.hero-illustration{display:none}.map-layout,.grid-2{grid-template-columns:1fr}}@media(max-width:580px){.topbar{padding:12px 18px}.crumb{display:none}.top-actions{width:100%;justify-content:space-between}.page{padding:28px 18px 80px}.page-head{align-items:start;flex-direction:column}.stats{grid-template-columns:repeat(2,1fr)}.stat:last-child{grid-column:span 2}.fields{grid-template-columns:1fr}.toolbar select{height:44px;flex:1}.button{padding:9px 12px}.network{font-size:11px}}
.section-tabs{display:flex;gap:9px;overflow-x:auto;padding:0 0 18px;margin-bottom:8px}.section-tabs button{border:1px solid #cbd2d6;background:#fbfcfd;border-radius:999px;padding:10px 16px;color:#535b60;font-weight:700;white-space:nowrap}.section-tabs button.selected{background:#25292c;color:white;border-color:#25292c}.section-tabs small{margin-left:7px;opacity:.65}.loan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:17px}.loan-card{background:#fbfcfd;border:1px solid #d7dce0;border-radius:16px;overflow:hidden}.loan-photo{height:170px;background:#dfe4e7 center/cover;display:grid;place-items:center;color:#5b646a;font-weight:800}.loan-body{padding:19px}.loan-body h3{margin:13px 0 7px}.loan-body p{font-size:12px;color:#778087;margin:0 0 12px}.loan-body .loan-notes{color:#4e575d;line-height:1.5}.loan-body .controls{justify-content:space-between}.delete-link{color:#8b5d5d}.section-management{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}.section-management form{display:flex;gap:9px}.section-management input{border:1px solid #d3dade;border-radius:9px;padding:10px 12px;min-width:180px}.photos-dialog{width:min(850px,calc(100vw - 20px));max-height:92vh;overflow:auto}.photo-head{padding:22px 25px;display:flex;justify-content:space-between;align-items:start}.photo-head h2{margin:7px 0}.photo-head p{margin:0;color:#697278}.photo-gallery{padding:0 25px 25px;display:grid;gap:14px}.photo-gallery img{width:100%;height:auto;border-radius:8px;border:1px solid #d8dee1}@media(max-width:620px){.section-management{align-items:stretch;flex-direction:column}.section-management form{flex-direction:column}.section-management input{min-width:0}}
/* Cargo de material */
.sidebar{overflow-y:auto}.brand{margin-bottom:24px}.sidebar nav{gap:3px}.nav{padding:10px 12px;font-size:13px}.sidebar-bottom{padding-top:15px}.record-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:16px}.record h3{margin:0}.record-detail{white-space:pre-wrap;overflow-wrap:anywhere}.record .controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.spaced{margin-top:30px}.sketch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sketch-grid svg{width:100%;background:#fff;color:#25282b;touch-action:none;cursor:crosshair}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.check-grid label{display:flex;align-items:center;gap:8px}.check-grid input{width:auto}#cargoDialog{max-width:780px;width:calc(100% - 28px);max-height:90vh;overflow:auto}#sheetDialog{width:min(950px,95vw);max-width:950px;max-height:92vh;overflow:auto}.sheet-actions{display:flex;gap:12px;position:sticky;top:0;background:white;padding:10px 0}.print-sheet{padding:24px;background:white;color:#17191b}.print-sheet table{width:100%;border-collapse:collapse}.print-sheet th,.print-sheet td{border:1px solid #aaa;padding:8px;min-height:30px}.print-sheet td{height:33px}.print-sheet p{white-space:pre-wrap}.tent-checks{margin-top:20px}.toolbar{flex-wrap:wrap}#methodForm textarea{width:100%}@media(max-width:700px){.sketch-grid{grid-template-columns:1fr}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar{height:auto}.nav{font-size:12px}.print-sheet{padding:4px}.record-grid{grid-template-columns:1fr}}@media print{@page{size:A4;margin:12mm}body{background:white}.shell,body>dialog:not(#sheetDialog),#toast{display:none!important}#sheetDialog{position:static;display:block!important;width:100%;max-width:none;max-height:none;height:auto;margin:0;padding:0;border:0;overflow:visible}.sheet-actions{display:none!important}.print-sheet{padding:0;font-size:10pt}.print-sheet h1{font-size:20pt}.print-sheet table{font-size:9pt}.sketch-grid{grid-template-columns:repeat(3,1fr);break-inside:avoid}tr{break-inside:avoid}thead{display:table-header-group}}
/* Adaptación Altair: lectura clara, navegación móvil y estados visibles. */
:root{--forest:#173e37;--dark:#253a34;--cream:#f3f4ef;--paper:#fffefb;--line:#dbe1d8;--gold:#bc8b41;--pale:#e7eee7}
.brand strong{font-family:system-ui,sans-serif}.brand-icon{color:#f1d29b;border-color:#65877a}.brand small{color:#b9cdc3}.nav.active,.nav:hover{background:#2e574b}.nav.active{box-shadow:inset 3px 0 #d6ac66}.eyebrow{color:#63766a;letter-spacing:.12em}h1{letter-spacing:-.045em;font-weight:760}.notice{background:#e9eee5;border-color:#a6bc8c;color:#425649}.badge{background:#e5eee5;color:#315343}.badge.warn,.notice.warning{background:#fff0d5;color:#765117}.panel,.table-wrap,.card{box-shadow:0 3px 12px #173e3705}.button.primary:hover{background:#2e574b}.button:disabled,.row-action:disabled{opacity:.45;cursor:default}.connection-panel{margin-bottom:24px}.conflict{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.conflict pre{max-height:240px;overflow:auto;white-space:pre-wrap;font-size:12px;background:#f3f4ef;padding:12px}.connection-panel p{line-height:1.6}#loginGate{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#173e37;padding:24px}#loginGate .panel{max-width:500px;padding:40px}#loginGate h1{font-size:40px}#loginGate .button{width:100%;padding:15px}#toast{z-index:50}.stats .stat strong{color:var(--forest)}.page-head h1{max-width:900px}.sketch-grid svg:focus-visible{outline:3px solid #bc8b41}#methodForm textarea{min-height:110px;border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit}.quick-search{background:var(--paper)}.sidebar-bottom{border-color:#587163}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b98637;outline-offset:3px}dialog{max-height:92vh;overflow:auto}.print-sheet table{min-width:0}.sheet-actions{padding:12px 24px}
@media(max-width:950px){.sidebar{overflow:visible}.sidebar nav{padding-bottom:5px}.brand{margin-bottom:12px}.brand strong{font-size:24px}.page{padding-top:30px}.topbar{padding-inline:18px}.network{max-width:52vw;line-height:1.4}.stats{gap:12px}.stat{padding:18px}.sidebar nav::-webkit-scrollbar{height:4px}.sidebar nav::-webkit-scrollbar-thumb{background:#6f8e7e;border-radius:4px}}
@media(max-width:580px){h1{font-size:32px!important}.section-head{align-items:flex-start;gap:12px;flex-wrap:wrap}.section-head .button{white-space:normal;text-align:left}.data-row{gap:12px}.data-block{padding:20px}.page{padding-inline:14px}.toolbar .quick-search{min-width:100%;height:48px}.panel{padding:20px}.button{min-height:40px}#loginGate .panel{padding:28px}#loginGate h1{font-size:32px}.connection-panel .controls{flex-direction:column}.connection-panel .controls button{width:100%}}
@media print{#loginGate{display:none!important}.print-sheet table{min-width:0}.print-sheet h1{font-size:20pt!important}.print-sheet th{color:#17191b;background:#eee}.print-sheet td{overflow-wrap:anywhere}.sheet-actions{display:none!important}}
.remember{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;margin:20px 0}.remember input{width:18px;height:18px;flex:none;margin:0}.print-sheet .sketch-grid svg{background:white}

.shell[hidden]{display:none}

.text-editor-dialog{width:min(760px,94vw);max-height:90vh;overflow:auto;border:0;border-radius:18px;padding:28px}.text-editor-fields{display:grid;gap:20px;margin:24px 0}.text-editor-fields label{display:grid;gap:8px;font-size:14px}.text-editor-fields textarea{width:100%;font:inherit;padding:10px;border:1px solid #ccd6d1;border-radius:8px}
