:root{--bg:#0b1220;--surface:#111c2e;--panel:#16243a;--border:#29425f;--text:#e8eef7;--muted:#9baec8;--primary:#2f80ed;--danger:#ff8792;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:var(--bg);color:var(--text)}a{color:#9dc8ff}.loading{padding:3rem}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 2rem;background:#09101c;border-bottom:1px solid var(--border)}.brand{color:#fff;font-size:18px;font-weight:700;text-decoration:none}.brand span,.project-name,.muted{color:var(--muted);font-weight:400}.topbar-actions{display:flex;align-items:center;gap:.8rem}.content-shell{display:flex;flex:1}.sidebar{position:sticky;top:60px;flex:0 0 330px;display:flex;flex-direction:column;gap:4px;height:calc(100vh - 60px);overflow-y:auto;padding:1rem .75rem;background:var(--surface);border-right:1px solid var(--border)}.sidebar a{padding:.6rem .7rem;border-radius:5px;color:var(--muted);text-decoration:none}.sidebar a.active,.sidebar a:hover{background:#203b5c;color:#fff}.coming{font-size:10px;color:#7388a0}.menu-caption{margin:1rem .7rem .2rem;font-size:11px;font-weight:700;color:#7188a5;text-transform:uppercase}.main-content{min-width:0;flex:1;padding:1.75rem 2rem}h1{margin:0;font-size:26px}h2{margin:.1rem 0 .5rem}h3{margin:1.5rem 0 .4rem}.page-heading{display:flex;justify-content:space-between;gap:1rem;align-items:start;margin-bottom:1.25rem}.panel{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:7px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:1rem}.cards article{padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:7px}.button-link,button{display:inline-block;padding:.5rem .75rem;border:1px solid #4d79a8;border-radius:5px;color:#fff;background:#245d9e;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.secondary{color:#d7e5f6;background:#203452;border-color:#476a91}button:disabled{opacity:.55;cursor:not-allowed}.form-field{display:flex;flex-direction:column;gap:.35rem;margin:.8rem 0}.form-field label{color:var(--muted);font-size:12px;font-weight:600}input,select{width:100%;padding:.5rem;color:var(--text);background:#0d1726;border:1px solid #38506f;border-radius:4px}.error{color:var(--danger)}.success{color:#88ddab}.login-page{display:flex;justify-content:center;padding:4rem 1rem}.login-card{width:min(420px,100%);padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:7px}.inventory-layout{display:grid;grid-template-columns:minmax(440px,1.2fr) minmax(320px,.8fr);gap:1rem}.toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.asset-table{border:1px solid var(--border);border-radius:5px;overflow:auto;max-height:calc(100vh - 235px)}.asset-head,.asset-row{display:grid;grid-template-columns:110px minmax(160px,1fr) minmax(160px,1fr) 110px;gap:.75rem;align-items:center;width:100%;padding:.6rem .75rem;text-align:left}.asset-head{position:sticky;top:0;background:#0d1726;color:#b7c7da;font-weight:700}.asset-row{border:0;border-top:1px solid var(--border);border-radius:0;background:transparent;color:var(--text)}.asset-row:hover,.asset-row.selected{background:#1e3858}.inspector{min-height:35rem;overflow:auto}.property{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.4rem}.property label{grid-column:1/-1}.property input{min-width:0}@media(max-width:900px){.content-shell{display:block}.sidebar{position:static;width:auto;height:auto;overflow:visible;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--border)}.main-content{padding:1rem}.inventory-layout{grid-template-columns:1fr}.project-name{display:none}}
.language-select{width:auto;min-width:118px;padding:.38rem .5rem}.language-picker{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-bottom:1rem}.language-picker label{color:var(--muted);font-size:12px;font-weight:600}.language-picker select{width:auto;min-width:130px}
.translation-key{display:block;margin-top:.2rem;color:#6f91b7;font-family:Consolas,"Courier New",monospace;font-size:10px;font-weight:400}
.drawer-backdrop{position:fixed;inset:0;z-index:40;background:#0009}.translation-modal{position:fixed;z-index:41;top:8vh;left:50%;width:min(520px,calc(100vw - 2rem));max-height:84vh;overflow:auto;transform:translateX(-50%);padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 18px 48px #0009}.translation-modal header,.translation-modal footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.translation-modal footer{margin-top:1rem}.translation-modal .translation-key{margin:.8rem 0;padding:.6rem;background:#0d1726;border:1px solid var(--border);border-radius:4px}.translation-modal .translation-key code{display:block;margin-top:.3rem;color:#b8d8ff}
.context-filters{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));align-items:start;gap:.9rem;margin-bottom:1rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:7px}.context-filter-header{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:1rem}.context-filter-header h2{margin:0}.filter-group{min-width:0;margin:0;padding:.45rem .75rem .75rem;border:1px solid var(--border);border-radius:6px}.filter-group legend{padding:0 .35rem;color:#b7c7da;font-size:12px;font-weight:700}.hierarchy-picker{margin:.25rem 0 .6rem}.tree-filter{height:20rem;overflow-y:auto;overflow-x:hidden;padding:.35rem;background:#0d1726;border:1px solid #38506f;border-radius:5px;scrollbar-gutter:stable}.tree-filter ul{margin:0;padding-left:1.15rem;list-style:none}.tree-filter>ul{padding-left:0}.tree-row{display:grid;grid-template-columns:1.75rem minmax(0,1fr);align-items:center;min-height:2rem}.tree-toggle,.tree-toggle-placeholder{display:grid;width:1.5rem;height:1.5rem;padding:0;place-items:center}.tree-toggle{border:1px solid #476a91;border-radius:3px;background:#203452;color:#d7e5f6;font-size:16px;font-weight:700;line-height:1}.tree-toggle:hover{background:#2a486d}.tree-node{display:block;width:100%;min-width:0;min-height:1.85rem;padding:.3rem .45rem;overflow:hidden;border:0;border-radius:4px;background:transparent;color:var(--text);font:inherit;font-weight:400;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.tree-node:hover,.tree-node.selected{background:#1e3858;color:#fff}.tree-node.selected{box-shadow:inset 3px 0 0 var(--primary)}.tree-empty{margin:.5rem}@media(max-width:1050px){.context-filters{grid-template-columns:1fr}.context-filter-header{grid-column:1}.tree-filter{height:18rem}}
.sidebar .context-filters{display:block;width:100%;margin:1rem 0 0;padding:.65rem;background:transparent;border-color:var(--border)}.sidebar .context-filter-header{margin-bottom:.65rem}.sidebar .context-filter-header h2{font-size:14px}.sidebar .context-filter-header .secondary{padding:.3rem .45rem;font-size:11px}.sidebar .filter-group{margin-bottom:.7rem}.sidebar .tree-filter{height:13rem}
.sidebar{flex-basis:380px}.workspace-scope{width:100%;margin:.35rem 0 .55rem;padding:.55rem;border:1px solid var(--border);border-radius:6px;background:#0d1726}.workspace-scope-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.35rem}.workspace-scope-toggle{display:grid;width:100%;grid-template-columns:.65rem minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:.35rem .4rem;border:0;background:transparent;color:var(--text);font-size:12px;text-align:left}.workspace-scope-toggle:hover{background:#1e3858}.scope-status{width:.5rem;height:.5rem;border-radius:50%;background:#63758b;box-shadow:0 0 0 2px #26394f}.scope-status.active{background:#5dcf91;box-shadow:0 0 0 2px #214d3a,0 0 6px #5dcf9188}.scope-chevron{color:var(--muted);font-size:15px}.scope-clear{width:1.65rem;height:1.65rem;padding:0;border-color:transparent;background:transparent;color:var(--muted);font-size:16px}.scope-clear:hover{color:#fff;background:#203452}.scope-state{display:block;margin:0 .4rem .3rem 1.1rem;color:var(--muted);font-size:10px}.sidebar .context-filters{margin:.35rem 0 0;padding:0;border:0}.sidebar .filter-group{display:flex;height:15rem;min-height:8rem;max-height:28rem;flex-direction:column;margin:0 0 .6rem;padding:.35rem .45rem .45rem;overflow:hidden;resize:vertical}.sidebar .filter-group legend{font-size:11px}.sidebar .tree-filter{height:auto;min-height:0;flex:1}.sidebar .tree-node{min-height:1.55rem;padding:.18rem .35rem;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:11px;line-height:1.25}.sidebar .tree-row{min-height:1.65rem;grid-template-columns:1.45rem minmax(0,1fr)}.sidebar .tree-toggle,.sidebar .tree-toggle-placeholder{width:1.2rem;height:1.2rem;font-size:14px}.sidebar .tree-filter ul{padding-left:.85rem}.sidebar .hierarchy-picker{margin:.1rem 0 .4rem}.sidebar .hierarchy-picker label,.sidebar .hierarchy-picker select{font-size:11px}.sidebar .hierarchy-picker select{padding:.35rem}@media(max-width:900px){.sidebar{flex-basis:auto}.workspace-scope{flex-basis:100%}}
.sidebar .filter-group{margin:0;resize:none}.scope-splitter{display:flex;height:12px;align-items:center;justify-content:center;margin:1px 0 4px;border-radius:3px;cursor:row-resize;touch-action:none}.scope-splitter span{display:block;width:44px;height:3px;border-radius:2px;background:#476a91;box-shadow:0 -3px 0 #203452,0 3px 0 #203452}.scope-splitter:hover,.scope-splitter:focus,.scope-splitter.dragging{outline:none;background:#1e3858}.scope-splitter:hover span,.scope-splitter:focus span,.scope-splitter.dragging span{background:#9dc8ff}.scope-splitter.dragging{cursor:ns-resize}
.filter-dimension-toolbar{display:flex;min-height:1.75rem;align-items:center;justify-content:space-between;gap:.5rem;margin:0 0 .3rem;color:var(--muted);font-size:10px}.filter-dimension-toolbar button{padding:.2rem .45rem;border-color:transparent;background:transparent;color:#9dc8ff;font-size:10px}.filter-dimension-toolbar button:hover:not(:disabled){background:#203452}.filter-dimension-toolbar button:disabled{color:#63758b}
.asset-type-choice{display:flex;align-items:center;gap:.4rem;cursor:pointer}.asset-type-choice input{width:.85rem;height:.85rem;min-width:.85rem;margin:0;accent-color:var(--primary)}.asset-type-choice span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.asset-row{cursor:pointer}.asset-code-cell{display:flex;min-width:0;align-items:center;gap:.5rem}.asset-code-cell input{width:.9rem;height:.9rem;min-width:.9rem;margin:0;accent-color:var(--primary)}
.inventory-layout,.inventory-layout *{min-width:0}.inspector{overflow-x:hidden;overflow-y:auto;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:13px}.inspector h2{font-size:16px}.inspector h3{font-size:14px}.inspector .assignment-grid{grid-template-columns:minmax(0,32rem);gap:.25rem}.inspector .form-field:not(.property){max-width:32rem}.inspector .property{grid-template-columns:minmax(0,24rem) max-content;max-width:31rem}.inspector .property input,.inspector .property select{width:100%;max-width:24rem;min-width:0}.inspector .property .translation-key{max-width:100%;overflow-wrap:anywhere}.asset-head,.asset-row{font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:12px}.asset-head{color:#c6d4e5}.asset-row{color:#d7e5f6;font-weight:400}.asset-row>span:nth-child(3),.asset-row>span:nth-child(4){color:var(--muted);font-size:11px}.toolbar,.toolbar input{font-size:12px}
.inspector .property{width:100%;max-width:31rem;grid-template-columns:minmax(0,1fr) 10.5rem}.inspector .property input,.inspector .property select{width:100%;max-width:none}.inspector .property>button{width:100%;min-width:0}
@media(max-width:560px){.inspector .property{grid-template-columns:minmax(0,1fr) 8rem}}
.inspector .assignment-grid{width:100%;max-width:none;grid-template-columns:minmax(0,1fr)}.inspector .form-field:not(.property){width:100%;max-width:none}.inspector .property{width:100%;max-width:none;grid-template-columns:minmax(0,1fr) 7rem}.inspector .property>button{padding:.4rem .55rem}@media(max-width:560px){.inspector .property{grid-template-columns:minmax(0,1fr) 6.5rem}}
.sidebar{flex-basis:420px}.inventory-layout{grid-template-columns:minmax(460px,1.65fr) minmax(280px,.65fr)}.asset-head,.asset-row{grid-template-columns:100px minmax(150px,1fr) minmax(135px,.8fr) 90px}.asset-head>span,.asset-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.7rem;color:var(--muted);font-size:11px}.asset-pagination label,.asset-pagination>div{display:flex;align-items:center;gap:.45rem}.asset-pagination select{width:auto;min-width:4rem;padding:.3rem}.asset-pagination button{width:2rem;height:1.8rem;padding:0;font-size:17px;line-height:1}@media(max-width:1250px){.inventory-layout{grid-template-columns:minmax(0,1fr)}.inspector{min-height:auto}}@media(max-width:900px){.sidebar{flex-basis:auto}}
.inventory-list .toolbar input{min-width:0;flex:1 1 auto;width:auto}.inventory-list .toolbar .muted{flex:0 0 auto;white-space:nowrap}
.editor-fieldset{min-width:0;margin:0;padding:0;border:0}.editor-fieldset:disabled input,.editor-fieldset:disabled select,.inspector input:disabled,.inspector select:disabled{opacity:.75;cursor:not-allowed}.inspector-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.inspector-title h2{margin:0}.readonly-badge{padding:.2rem .5rem;border:1px solid #607793;border-radius:999px;color:#b8c9dc;background:#1b2b41;font-size:10px;font-weight:700;white-space:nowrap}
:root{font-size:13px}h1{font-size:25px}h2{font-size:16px}
.asset-location-editor{margin-top:1rem}.asset-location-editor select{max-width:760px}
.assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:1rem}@media(max-width:900px){.assignment-grid{grid-template-columns:1fr}}

/* Reservas de espacios */
.reservation-layout{display:grid;grid-template-columns:minmax(330px,390px) minmax(0,1fr);gap:1rem;align-items:start}.reservation-layout>.panel{margin:0}.reservation-layout h2,.reservation-agenda h2{margin-top:0}.reservation-search{display:grid;gap:.8rem}.reservation-search>label,.reservation-checkout>label,.reservation-dates label,.equipment-rule label{display:grid;gap:.35rem;color:var(--text);font-size:11px;font-weight:700}.reservation-search h3{margin:.5rem 0 0;padding-top:.75rem;border-top:1px solid var(--border);font-size:13px}.reservation-search h3:first-of-type{margin-top:0;border-top:0}.reservation-search input,.reservation-search select{max-width:100%;min-width:0}.reservation-search small{font-weight:400}.reservation-dates{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.reservation-rule{display:grid;grid-template-columns:minmax(0,1fr) 4rem minmax(0,1fr) auto;align-items:end;gap:.45rem}.reservation-rule>label{grid-column:1/-1}.reservation-rule>small{padding-bottom:.45rem}.equipment-rule{grid-template-columns:minmax(0,1fr) 7rem 2rem}.equipment-rule>label{grid-column:auto}.equipment-rule button{height:2.35rem;padding:0}.reservation-section-title{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.reservation-section-title h2{margin:0}.reservation-results{grid-column:2;grid-row:1;min-height:18rem;max-height:520px;overflow:auto}.reservation-checkout{grid-column:2;grid-row:2;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.8rem}.reservation-checkout h2,.reservation-checkout>p,.reservation-checkout>.selected-space,.reservation-checkout>.success,.reservation-checkout>button{grid-column:1/-1}.space-result{display:grid;width:100%;grid-template-columns:minmax(150px,.7fr) minmax(200px,1.3fr);gap:.75rem;margin-top:.55rem;padding:.75rem;text-align:left;background:var(--surface);border-color:var(--border)}.space-result:hover,.space-result.selected{background:var(--xfm-primary-soft, var(--surface));border-color:var(--primary)}.space-result>span:first-child,.selected-space{display:grid;gap:.2rem}.space-result small,.reservation-agenda small,.selected-space span{color:var(--muted);font-size:10px}.space-tags{display:flex;align-content:flex-start;flex-wrap:wrap;gap:.3rem}.space-tags i{padding:.18rem .4rem;border-radius:999px;background:var(--xfm-primary-soft, var(--surface));color:var(--text);font-size:9px;font-style:normal;font-weight:400}.reservation-empty{display:grid;gap:.3rem;padding:2rem 1rem;text-align:center;color:var(--muted)}.selected-space{padding:.65rem;border-left:3px solid var(--primary);background:var(--surface)}.reservation-agenda{margin-top:1rem}.reservation-agenda article{display:grid;grid-template-columns:145px minmax(180px,1fr) auto auto;align-items:center;gap:.75rem;padding:.65rem 0;border-top:1px solid var(--border)}.reservation-agenda article>span{display:grid;gap:.2rem}.reservation-agenda time{color:var(--primary);font-size:11px}.alert-badge{padding:.2rem .45rem;border-radius:999px;background:#6c4d16;color:#ffe2a3;font-size:9px}.reservation-agenda button{padding:.3rem .5rem;font-size:10px}@media(max-width:1050px){.reservation-layout{grid-template-columns:320px minmax(0,1fr)}}@media(max-width:800px){.reservation-layout{grid-template-columns:1fr}.reservation-results,.reservation-checkout{grid-column:auto;grid-row:auto}.reservation-checkout{grid-template-columns:1fr}.reservation-dates{grid-template-columns:1fr}.reservation-agenda article{grid-template-columns:1fr auto}.reservation-agenda time{grid-column:1/-1}}

/* Compact reservation dashboard */
.reservation-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,300px);gap:1rem;align-items:start}.reservation-calendar{min-height:420px}.reservation-calendar h2,.reservation-viewer h2{margin:0 0 .2rem;font-size:15px}.calendar-grid{display:grid;grid-template-columns:130px repeat(7,minmax(90px,1fr));margin-top:1rem;border:1px solid var(--border);border-radius:4px;overflow:auto}.calendar-grid>header,.calendar-grid>div{min-height:54px;padding:.45rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-grid>header{display:grid;gap:.15rem;background:var(--surface);color:var(--text);font-size:10px}.calendar-grid>header span{font-size:15px}.calendar-space-label{color:var(--muted);font-size:10px;font-weight:700}.calendar-day{min-width:90px;background:var(--surface)}.calendar-event{display:grid;width:100%;gap:.18rem;margin-bottom:.3rem;padding:.38rem;text-align:left;color:var(--text);border-color:var(--primary);background:var(--xfm-primary-soft, var(--surface));font-size:10px}.calendar-event span{color:inherit;font-size:9px}.reservation-viewer{display:grid;gap:.65rem;align-content:start;min-height:180px}.reservation-viewer>span{color:var(--muted);font-size:10px}.reservation-modal-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:1rem;background:rgb(23 38 58 / 48%)}.reservation-modal{width:min(1480px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);overflow:auto;padding:1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:7px;box-shadow:0 22px 70px #000a}.reservation-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.reservation-modal>header h2{margin:0;font-size:17px}.reservation-modal>header p{margin:.25rem 0 0;font-size:11px}.reservation-modal .reservation-agenda{display:none}.reservation-modal .reservation-layout{font-size:11px}.reservation-modal .reservation-search h2,.reservation-modal .reservation-results h2,.reservation-modal .reservation-checkout h2{font-size:14px}@media(max-width:1000px){.reservation-workspace{grid-template-columns:1fr}.reservation-viewer{min-height:auto}.calendar-grid{grid-template-columns:105px repeat(7,minmax(76px,1fr))}}@media(max-width:700px){.reservation-modal-backdrop{padding:0}.reservation-modal{width:100vw;max-height:100vh;border-radius:0}.calendar-grid{grid-template-columns:90px repeat(7,minmax(68px,1fr))}}
.calendar-navigation{display:flex;align-items:center;gap:.4rem}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:1rem;border:1px solid var(--border)}.month-grid>header{padding:.45rem;background:var(--surface);text-align:center;font-size:10px}.month-day{min-height:105px;padding:.4rem;border-top:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface)}.month-day.outside{background:var(--bg)}.month-day>strong{font-size:10px;color:var(--muted)}.month-day .calendar-event{margin-top:.3rem}.reservation-edit-modal{width:min(520px,calc(100vw - 2rem));display:grid;gap:.7rem}.reservation-edit-modal label{display:grid;gap:.3rem;font-size:11px;color:var(--muted)}
.reservation-layout{grid-template-columns:minmax(300px,360px) minmax(420px,1fr) minmax(270px,330px)}
.reservation-results{grid-column:2;grid-row:1;min-height:0;max-height:calc(100vh - 11rem)}
.reservation-checkout{grid-column:3;grid-row:1;grid-template-columns:1fr;align-content:start;position:sticky;top:.75rem}
.reservation-agenda{grid-column:2/4;grid-row:2;margin-top:0;max-height:260px;overflow:auto}
@media(max-width:1250px){.reservation-layout{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}.reservation-checkout{grid-column:2;grid-row:2;position:static}.reservation-agenda{grid-column:2;grid-row:3}}
@media(max-width:800px){.reservation-layout{grid-template-columns:1fr}.reservation-results,.reservation-checkout,.reservation-agenda{grid-column:auto;grid-row:auto}.reservation-agenda{max-height:none}}

.reservation-workspace{grid-template-columns:minmax(0,1fr)}.reservation-viewer{display:none}
body:has(.reservation-workspace) .page-heading{display:none}.reservation-edit-modal{position:relative;padding-bottom:7.5rem}.reservation-edit-modal header a{position:absolute;left:1rem;right:1rem;bottom:4.2rem;display:block;padding:.55rem;text-align:center;text-decoration:none;color:var(--primary);background:var(--xfm-primary-soft, var(--surface));border:1px solid var(--primary);border-radius:4px;font-weight:700}.reservation-edit-modal>button:last-child{position:absolute;left:1rem;right:1rem;bottom:1rem;width:calc(100% - 2rem)}

/* Keep event text readable in normal, hover and keyboard-focus states. */
.month-day .calendar-event:hover:not(:disabled),
.month-day .calendar-event:focus-visible {
    color:var(--text);
    background:var(--xfm-primary-soft, var(--surface));
    border-color:var(--primary);
    outline:2px solid var(--primary);
    outline-offset:1px;
}
.month-day .calendar-event small { color:inherit; }
.reservation-modal .space-result { color:var(--text); }
.reservation-modal .space-result:hover:not(:disabled) {
    color:var(--text);
    background:var(--xfm-primary-soft, var(--surface));
    border-color:var(--primary);
}
.calendar-navigation { flex-wrap:wrap; }
.reservation-calendar .reservation-section-title { flex-wrap:wrap; }

/* Visor operativo */
.viewer-page{display:grid;grid-template-columns:260px minmax(0,1fr);gap:.75rem;height:calc(100vh - 5.5rem);min-height:520px}.viewer-page>.panel{margin:0;padding:0;min-width:0;overflow:hidden}.viewer-assets{display:flex;flex-direction:column}.viewer-assets-header,.viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.65rem;padding:.65rem .75rem;border-bottom:1px solid var(--border)}.viewer-assets-header h1{font-size:15px;margin:0}.viewer-assets-header>div:first-child{min-width:0}.viewer-assets-header button{padding:.35rem .65rem}.viewer-search{padding:.55rem .65rem;border-bottom:1px solid var(--border)}.viewer-search input{width:100%;font-size:11px;padding:.42rem .55rem}.viewer-asset-list{min-height:0;overflow:auto;padding:.35rem}.viewer-asset-card{padding:.45rem .5rem;border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:10.5px}.viewer-asset-card:hover{background:#17283e;border-color:#2c4969}.viewer-asset-card.selected{background:#1e3856;border-color:#4f8bc6}.viewer-asset-card header{display:flex;align-items:center;gap:.4rem;min-width:0}.viewer-asset-card input{width:.85rem;height:.85rem;min-width:.85rem;margin:0}.viewer-asset-card strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dce9f8;font-size:11px}.viewer-asset-card>div{display:flex;justify-content:space-between;gap:.5rem;margin:.2rem 0 0 1.25rem;color:var(--muted)}.viewer-asset-card>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-no-geometry{margin-left:auto;color:#e1aa61}.viewer-stage{position:relative;display:flex;flex-direction:column;background:#e7ebee}.viewer-toolbar{flex:0 0 auto;background:var(--panel);color:var(--text);padding:.5rem .7rem}.viewer-toolbar>div{display:flex;align-items:center;gap:.75rem}.viewer-tools{margin-left:auto}.viewer-tools button{width:auto;min-width:2rem;padding:.35rem .55rem}.xfm-viewer{position:relative;flex:1;min-height:0;user-select:none;background-color:#e7ebee;background-image:linear-gradient(#d7dde1 1px,transparent 1px),linear-gradient(90deg,#d7dde1 1px,transparent 1px);background-size:24px 24px}.drawing-canvas-2d,.drawing-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.drawing-canvas-2d{z-index:0;pointer-events:none}.drawing-canvas{z-index:1;touch-action:none;cursor:grab;filter:drop-shadow(0 6px 8px rgb(43 55 64/.12))}.drawing-canvas:active{cursor:grabbing}.geometry{vector-effect:non-scaling-stroke}.geometry--space,.geometry--asset{cursor:pointer;transition:filter .15s}.geometry--asset:hover{filter:drop-shadow(0 0 2px #167a70)}.geometry--asset[data-selected=true],.geometry--space[data-selected=true]{stroke:#e34f35!important;stroke-width:.6!important;filter:drop-shadow(0 0 2px #e34f35)}.geometry--space[data-selected=true]{fill:rgb(227 79 53/.2)!important}.geometry--asset[data-selected=true]{fill:rgb(255 170 32/.82)!important}.semantic-label{stroke:none;font-family:Inter,"Segoe UI",sans-serif;pointer-events:none;user-select:none}.viewer-stage>.viewer-hint{position:absolute;z-index:3;bottom:12px;left:50%;transform:translateX(-50%);padding:.35rem .55rem;border-radius:3px;color:#52616c;background:rgb(248 250 251/.9);box-shadow:0 2px 8px rgb(40 50 60/.1);font-size:9px;white-space:nowrap}.viewer-modal-backdrop{position:fixed;inset:0;z-index:1100;background:rgb(3 10 20/.72)}.viewer-edit-modal{position:fixed;z-index:1101;inset:5vh max(1rem,calc((100vw - 820px)/2));display:flex;flex-direction:column;max-width:820px;margin:auto;background:var(--panel);border:1px solid #456485;border-radius:7px;box-shadow:0 22px 70px #000a;overflow:hidden}.viewer-edit-modal>header,.viewer-edit-modal>footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;border-bottom:1px solid var(--border)}.viewer-edit-modal>header h2{margin:0}.viewer-edit-modal>footer{justify-content:flex-end;border-top:1px solid var(--border);border-bottom:0}.viewer-edit-body{padding:.9rem 1rem;overflow:auto}.viewer-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem}.viewer-edit-modal .property{grid-template-columns:minmax(0,1fr) 7rem;max-width:none}.modal-close{width:2rem;height:2rem;padding:0;font-size:18px}@media(max-width:900px){.viewer-page{grid-template-columns:210px minmax(0,1fr)}.viewer-edit-grid{grid-template-columns:1fr}}@media(max-width:700px){.viewer-page{grid-template-columns:1fr;height:auto}.viewer-assets{max-height:250px}.viewer-stage{height:60vh}}

.geometry--asset[data-selected=true],.geometry--space[data-selected=true]{fill:#ffae00!important;fill-opacity:.86!important;stroke:#8f3500!important;stroke-opacity:1!important;stroke-width:.7!important;opacity:1!important;filter:drop-shadow(0 0 2.5px #ffae00)}
.viewer-label-mode{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:10px;white-space:nowrap}.viewer-label-mode select{width:auto;min-width:7.5rem;padding:.3rem .45rem;font-size:10px}
.viewer-background-picker{display:flex;align-items:center;gap:.35rem;color:var(--muted);font-size:10px;white-space:nowrap}.viewer-background-picker select{width:clamp(8.5rem,12vw,12rem);padding:.3rem .4rem;font-size:10px;text-overflow:ellipsis}.viewer-tools{flex-wrap:nowrap;justify-content:flex-end;overflow-x:auto;overflow-y:hidden;padding-bottom:1px}.viewer-tool-icon{display:inline-grid;place-items:center;flex:0 0 1.9rem!important;width:1.9rem!important;min-width:1.9rem!important;height:1.8rem;padding:.25rem!important}.viewer-tool-icon svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.viewer-tool-symbol{font-size:16px;line-height:1}.viewer-loaded-count{display:grid;place-items:center;flex:0 0 1.25rem;width:1.25rem;height:1.25rem;border-radius:999px;background:#28496c;color:#dcecff;font-size:9px;font-weight:700}
.viewer-geometry-error{display:grid;place-items:center;width:1.35rem;height:1.35rem;border-radius:50%;background:#9f2f2f;color:#fff;font-weight:800;cursor:help}
.viewer-opacity{display:flex;align-items:center;gap:.3rem;color:var(--muted);font-size:10px;white-space:nowrap}.viewer-opacity input{width:4.5rem;min-width:4rem;padding:0;accent-color:var(--primary)}.viewer-opacity span{width:2rem;text-align:right;color:var(--text)}
.viewer-tool-icon.active{background:#2d6fac;border-color:#5c9cda}.viewer-thematic-panel{position:absolute;z-index:4;top:3.35rem;right:.7rem;width:min(25rem,calc(100% - 1.4rem));max-height:calc(100% - 5.5rem);display:flex;flex-direction:column;background:rgb(15 31 51/.96);border:1px solid #456485;border-radius:5px;box-shadow:0 10px 28px #0008;overflow:hidden}.viewer-thematic-panel header{display:flex;align-items:center;justify-content:space-between;padding:.55rem .7rem;border-bottom:1px solid var(--border);font-size:11px}.viewer-thematic-panel header span{color:var(--muted);font-size:10px}.viewer-theme-head,.viewer-theme-row{display:grid;grid-template-columns:minmax(0,1fr) 2.5rem 5.6rem;align-items:center;gap:.45rem}.viewer-theme-head{padding:.35rem .7rem;color:var(--muted);font-size:9px;text-transform:uppercase}.viewer-theme-head span:nth-child(2),.viewer-theme-head span:nth-child(3){text-align:right}.viewer-theme-rows{overflow:auto}.viewer-theme-row{padding:.4rem .7rem;border-top:1px solid rgb(87 117 148/.25);font-size:10px}.viewer-theme-row i{width:.75rem;height:.75rem;border:1px solid rgb(255 255 255/.55);border-radius:2px}.viewer-theme-row span{margin-left:1rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-theme-row b,.viewer-theme-row em{text-align:right;font-style:normal;font-weight:400;color:#d8e4f2}.viewer-theme-row b{color:var(--muted)}
.viewer-theme-head{grid-template-columns:minmax(0,1fr) 2.5rem 5.6rem}.viewer-theme-row{grid-template-columns:1rem minmax(0,1fr) 2.5rem 5.6rem}.viewer-theme-row span{margin-left:0}
.viewer-theme-close{width:1.55rem;height:1.55rem;min-width:1.55rem;padding:0;font-size:15px;line-height:1}
