/* Portal de operaciones */
.is-portal{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:14px;padding:18px 14px;padding-top:max(18px,env(safe-area-inset-top));background:var(--forest);color:#f5e4d0;overflow-y:auto}
.sidebar .brand{display:flex;gap:10px;align-items:center;color:#fff;text-decoration:none;font:1.25rem Georgia,serif;padding:0 6px}
#menu{display:grid;gap:2px}
#menu a{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:8px;color:#f5e4d0;text-decoration:none;font-size:.9rem;font-weight:bold}
#menu a:hover{background:#ffffff14}#menu a[aria-current]{background:#ffffff22;color:#fff}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;flex:none}.ico{width:16px;text-align:center;font-style:normal;opacity:.85}
.user-card{display:flex;gap:10px;align-items:center;margin-top:auto;padding:10px;border-radius:10px;background:#ffffff10}.user-card b{display:block;font-size:.88rem}.user-card small{color:var(--gold)}
.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--gold);color:var(--forest);font-weight:bold}
.side-links{display:flex;justify-content:space-between;padding:0 6px}.side-links a{color:#f5e4d0aa;font-size:.8rem}
.main{min-width:0}.mobile-bar{display:none}
.view{width:min(1200px,calc(100% - 40px));margin:24px auto 60px;display:grid;gap:16px;outline:0}
.summary{display:grid;grid-template-columns:1fr auto;gap:14px 24px;align-items:start}
.hello h1{margin:0;font-size:2.2rem}.hello p{margin:4px 0 0;color:#6b6258}
.stats{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}
.stat{min-width:120px;padding:12px 14px;border-radius:10px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--c);text-decoration:none;color:var(--ink)}.stat b{display:block;font:1.6rem Georgia,serif;color:var(--forest)}.stat span{font-size:.78rem;color:#6b6258}
.mine{grid-column:1/-1;padding:14px 18px;background:var(--paper);border:1px solid var(--line);border-radius:10px}.mine h3{margin:0 0 6px;font:1.05rem Georgia,serif;color:var(--clay)}
.mine ul{margin:0;padding:0;list-style:none;display:grid;gap:6px}.mine li{display:flex;gap:10px;align-items:center}.mine li i{width:9px;height:9px;border-radius:50%}.mine small{color:#6b6258}
.link{padding:0;border:0;background:none;color:var(--forest);font:inherit;font-weight:bold;text-decoration:underline;cursor:pointer}
.btn.sm{padding:8px 12px;font-size:.78rem}
.icon-btn{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:1.2rem;cursor:pointer}
.cal{padding:18px}
.cal-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.cal-nav{display:flex;gap:8px;align-items:center}.cal-nav h2{margin:0 0 0 8px;font-size:1.6rem;text-transform:capitalize}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{padding:8px 14px;border:0;background:#fff;font:bold .8rem Arial,sans-serif;color:var(--forest);cursor:pointer}.seg button[aria-selected=true]{background:var(--forest);color:#fff}
.new-menu{position:relative}.new-menu summary{list-style:none}.new-menu summary::-webkit-details-marker{display:none}
.new-menu>div{position:absolute;right:0;z-index:4;display:grid;min-width:190px;margin-top:6px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #0002}
.new-menu button{display:flex;gap:9px;align-items:center;padding:9px 10px;border:0;border-radius:6px;background:none;font:inherit;text-align:left;cursor:pointer}.new-menu button:hover{background:var(--sand)}.new-menu i{width:10px;height:10px;border-radius:50%}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:14px 0}
.legend-item{display:flex;gap:7px;align-items:center;margin:0;font-weight:normal;font-size:.82rem;cursor:pointer}.legend-item input{width:auto}.legend-item i{width:12px;height:12px;border-radius:3px}
.chip{display:block;width:100%;margin:2px 0;padding:3px 7px;border:0;border-left:4px solid var(--c);border-radius:5px;background:color-mix(in srgb,var(--c) 16%,#fff);color:#1d2a24;font:.74rem/1.3 Arial,sans-serif;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.chip:hover{background:color-mix(in srgb,var(--c) 28%,#fff)}.chip.done{opacity:.55;text-decoration:line-through}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.month .dow{padding:6px;font:bold .72rem Arial,sans-serif;text-transform:uppercase;color:#6b6258;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--sand)}
.day{min-height:112px;padding:4px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-width:0}.day.out{background:#faf6ef}.day.out .num{color:#b3a898}
.num{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border:0;border-radius:50%;background:none;font:bold .8rem Arial,sans-serif;color:var(--ink);cursor:pointer}.today .num,.today .wh b,.md.today{background:var(--forest);color:#fff}
.more{border:0;background:none;color:var(--clay);font:bold .72rem Arial,sans-serif;cursor:pointer}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.wday{min-height:280px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:8px;min-width:0}
.wh{display:flex;gap:6px;align-items:center;width:100%;margin-bottom:6px;padding:0;border:0;background:none;cursor:pointer}.wh span{font:bold .72rem Arial,sans-serif;color:#6b6258;text-transform:uppercase}.wh b{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:50%;font-size:.9rem}
.empty{color:#a3998c;text-align:center;font-size:.85rem}.empty.big{padding:40px 10px}
.agenda{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.agenda li{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:12px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--c);border-radius:8px}
.agenda .time{font:bold .9rem Arial,sans-serif;color:var(--forest)}.agenda .mod{display:block;font:bold .68rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--c)}.agenda .chip{font-size:.95rem;white-space:normal;background:none;border:0;padding:2px 0;font-weight:bold}.agenda small{color:#6b6258}
.year{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.mini{padding:10px;background:#fff;border:1px solid var(--line);border-radius:10px}
.mini-title{display:block;margin-bottom:6px;padding:0;border:0;background:none;font:1rem Georgia,serif;text-transform:capitalize;color:var(--forest);cursor:pointer}
.mini-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}.mini-grid .dow{font:bold .62rem Arial,sans-serif;color:#a3998c}
.md{position:relative;height:30px;padding:0;border:0;border-radius:6px;background:none;font:.72rem Arial,sans-serif;color:var(--ink);cursor:pointer}.md.has{font-weight:bold;background:#f6efe4}.md:hover{outline:1px solid var(--gold)}
.dots{position:absolute;left:0;right:0;bottom:2px;display:flex;justify-content:center;gap:2px}.dots i{width:5px;height:5px;border-radius:50%}
.subtabs{display:flex;gap:6px}.subtabs a{padding:8px 14px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--forest);text-decoration:none;font-weight:bold;font-size:.85rem}.subtabs a[aria-current]{background:var(--forest);color:#fff}
#sub{display:grid;gap:16px}
.list-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center}.list-head h2{display:flex;gap:10px;align-items:center;margin:0;font-size:1.8rem}
.list-actions{display:flex;gap:10px}.list-actions input{width:220px}
.table-wrap{padding:0;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}th{position:sticky;top:0;padding:10px 12px;background:var(--sand);text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#6b6258}
td{padding:10px 12px;border-top:1px solid var(--line)}tbody tr[data-id]{cursor:pointer}tbody tr:hover{background:#fbf6ee}tr.muted{opacity:.6}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;background:#e9e1d5;font:bold .7rem Arial,sans-serif;white-space:nowrap}
.pill.confirmada,.pill.ok,.pill.terminada,.pill.hospedado{background:#dcefe3;color:#1d5b3a}.pill.solicitada,.pill.pendiente{background:#f8e7c9;color:#7a4b10}.pill.en_curso{background:#dde7f6;color:#264f8a}.pill.cancelada,.pill.alta{background:#f6dcd8;color:#8e2c22}
.alert.warn{background:#fbf0d9;color:#6e4a0f;border:1px solid #ecd6a6}
.form-dialog{width:min(720px,calc(100% - 24px));padding:0;border:0;border-radius:14px;background:var(--paper)}.form-dialog::backdrop{background:#071b16b3}
.dlg header{position:relative;padding:18px 22px;border-bottom:4px solid var(--c);background:#fff;border-radius:14px 14px 0 0}.dlg header h2{margin:2px 0 0;font-size:1.6rem}.dlg .mod{font:bold .7rem Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--c)}
.dlg .close{position:absolute;top:14px;right:16px;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:1.3rem;cursor:pointer}
.dlg .fields{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;padding:12px 22px;max-height:62vh;overflow-y:auto}.dlg .full{grid-column:1/-1}
.dlg .alert,.dlg .result{margin:0 22px 12px}.dlg footer{display:flex;flex-wrap:wrap;gap:10px;padding:14px 22px;border-top:1px solid var(--line)}.dlg footer .danger{margin-left:auto}
.new-guest{display:grid;grid-template-columns:1fr 1fr;gap:0 14px;padding:4px 12px;border:1px dashed var(--gold);border-radius:8px}
.email-row,.pass-row{display:flex;gap:6px;align-items:center}.domain{font-weight:normal;color:#6b6258;white-space:nowrap}
.pass{margin:0 22px 12px}.creds{display:grid;gap:6px;padding:12px;border-radius:8px;background:#fff;border:1px solid var(--line)}.creds div{display:grid;grid-template-columns:110px 1fr}.creds dt{font-weight:bold;color:var(--clay)}.creds dd{margin:0;word-break:break-all}
.roles dl{display:grid;gap:10px;margin:0}.roles dt{font-weight:bold;color:var(--forest)}.roles dd{margin:2px 0 0;color:#5d554c}.card h3{margin:0 0 10px;font:1.2rem Georgia,serif;color:var(--clay)}
.inline-form{display:flex;flex-wrap:wrap;gap:10px}.inline-form input{flex:1;min-width:220px}
.toast{position:fixed;left:50%;bottom:22px;z-index:50;transform:translate(-50%,140%);max-width:min(560px,calc(100% - 24px));padding:12px 18px;border-radius:10px;background:var(--forest);color:#fff;font-weight:bold;box-shadow:0 12px 30px #0004;opacity:0;pointer-events:none;transition:transform .25s,opacity .25s}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:var(--danger)}
@media(max-width:980px){.year{grid-template-columns:repeat(3,minmax(0,1fr))}.week{grid-template-columns:repeat(2,minmax(0,1fr))}.wday{min-height:auto}}
@media(max-width:820px){
  .is-portal{grid-template-columns:1fr}
  .sidebar{position:fixed;inset:0 auto 0 0;z-index:30;width:270px;transform:translateX(-105%);transition:transform .2s}
  .menu-open .sidebar{transform:none;box-shadow:0 0 0 100vmax #0006}
  .mobile-bar{position:sticky;top:0;z-index:20;display:flex;gap:14px;align-items:center;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));background:var(--forest);color:#fff;font:1.1rem Georgia,serif}
  .menu-btn{padding:8px 12px;border:1px solid #fff6;border-radius:8px;background:none;color:#fff;font:bold .8rem Arial,sans-serif}
  .view{width:calc(100% - 24px);margin-top:14px}
  .summary{grid-template-columns:1fr}.stats{justify-content:flex-start}.stat{flex:1;min-width:130px}
  .day{min-height:74px}.day .chip{font-size:0;height:8px;padding:0;margin:2px 0;border-left-width:0;background:var(--c)}
  .year{grid-template-columns:repeat(2,minmax(0,1fr))}
  .agenda li{grid-template-columns:1fr;gap:4px}
  .dlg .fields,.new-guest{grid-template-columns:1fr}
  .list-actions{width:100%}.list-actions input{flex:1;width:auto}
  table thead{display:none}table,tbody,tr,td{display:block}tr{padding:8px 0;border-top:1px solid var(--line)}td{display:flex;gap:10px;justify-content:space-between;padding:4px 14px;border:0}td::before{content:attr(data-label);font-weight:bold;color:#6b6258;font-size:.75rem}
}
@media(max-width:480px){.week{grid-template-columns:1fr}.year{grid-template-columns:1fr}.cal-nav h2{font-size:1.25rem}.seg button{padding:8px 10px}}
