:root{--ink:#17231d;--muted:#6e7a72;--muted2:#98a39c;--line:#e2e8e3;--green:#bff15a;--green-dark:#507a20;--paper:#f4f6f2;--white:#fff;--red:#b64b45;--orange:#e39b3b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #76a53c3d;outline-offset:2px}.is-hidden{display:none!important}.modal-open{overflow:hidden}.noscript{padding:12px;background:#ffe8d7;color:#723b16;text-align:center;font-size:13px}.eyebrow{margin:0;color:#819087;font-size:9px;font-weight:850;letter-spacing:.15em;text-transform:uppercase}

/* Acceso */
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(390px,1.05fr) minmax(420px,.95fr);background:#fff}.login-aside{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;min-height:100vh;padding:42px 54px;background:var(--green)}.login-grid{position:absolute;z-index:-1;inset:0;opacity:.2;background-image:linear-gradient(#17231d26 1px,transparent 1px),linear-gradient(90deg,#17231d26 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(90deg,transparent,#000)}.login-brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.login-brand>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--ink);color:var(--green);font-size:12px;font-weight:900;box-shadow:0 8px 20px #17231d29}.login-brand strong{font-size:15px}.login-message{margin:auto 0}.live-pill,.admin-badge{display:inline-flex;align-items:center;gap:7px;width:max-content;padding:7px 10px;border:1px solid #17231d2b;border-radius:99px;font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.live-pill i{width:6px;height:6px;border-radius:50%;background:#245f2a;box-shadow:0 0 0 4px #245f2a1f;animation:pulse 2s infinite}.login-message h1{margin:22px 0 18px;font-size:clamp(45px,5vw,70px);line-height:.91;letter-spacing:-.075em}.login-message p{max-width:470px;margin:0;color:#43513e;font-size:12px;line-height:1.75}.school-label{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.login-orbit{position:absolute;right:-35px;bottom:52px;width:210px;height:210px;display:grid;place-items:center;border:1px solid #17231d2b;border-radius:50%;animation:orbit-float 5s ease-in-out infinite}.login-orbit:before{content:"";position:absolute;inset:19px;border:1px solid #17231d21;border-radius:50%}.login-orbit>span{z-index:1;width:120px;height:120px;display:grid;place-content:center;border-radius:50%;background:var(--ink);color:#fff;text-align:center}.login-orbit strong,.login-orbit small{display:block}.login-orbit strong{color:var(--green);font-size:25px}.login-orbit small{margin-top:6px;color:#c8d2cb;font-size:8px;line-height:1.4;text-transform:uppercase}.login-form-wrap{display:grid;place-items:center;padding:40px}.login-form{width:min(390px,100%)}.login-form h2{margin:9px 0 12px;font-size:39px;line-height:1.02;letter-spacing:-.055em}.login-form>p:not(.eyebrow){margin:0 0 26px;color:var(--muted);font-size:11px;line-height:1.65}.login-form label{display:grid;gap:7px;margin-top:14px;color:#57645c;font-size:9px;font-weight:750}.login-form input{width:100%;height:45px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfa;color:var(--ink);font-size:11px}.password-wrap{position:relative}.password-wrap input{padding-right:60px}.password-wrap button{position:absolute;top:50%;right:8px;transform:translateY(-50%);padding:6px;border:0;background:transparent;color:var(--muted);font-size:8px;font-weight:800}.form-error{min-height:16px;margin-top:9px;color:var(--red);font-size:9px}.primary-button,.secondary-button,.dark-button,.card-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:39px;padding:0 15px;border-radius:10px;font-size:10px;font-weight:780;transition:.22s ease}.primary-button,.dark-button,.card-action{border:1px solid var(--ink);background:var(--ink);color:#fff}.secondary-button{border:1px solid var(--line);background:#fff}.primary-button:hover:not(:disabled),.dark-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 9px 22px #17231d2b}.login-submit{width:100%;height:45px;margin-top:7px;justify-content:space-between;padding:0 17px}.demo-access{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:17px;padding:10px 12px;border-radius:9px;background:#f0f4ed}.demo-access span{color:var(--muted);font-size:8px}.demo-access button{padding:0;border:0;background:transparent;color:#456824;font-size:8px;font-weight:750}.install-link{display:block;margin-top:22px;color:var(--muted);font-size:8px;text-align:center;text-underline-offset:3px}

/* Estructura */
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;width:244px;display:flex;flex-direction:column;padding:29px 21px 20px;border-right:1px solid var(--line);background:#fbfcfaf7;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:11px;padding:0;border:0;background:none;text-align:left}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--ink);color:var(--green);font-size:12px;font-weight:900;box-shadow:0 7px 18px #17231d24}.brand strong,.brand small,.profile strong,.profile small,.session-role small,.session-role strong{display:block}.brand strong{font-size:14px}.brand small{margin-top:3px;color:var(--muted);font-size:9px}.session-role{display:grid;grid-template-columns:29px 1fr auto;align-items:center;gap:8px;margin:31px 0 18px;padding:8px;border:1px solid var(--line);border-radius:9px;background:#f2f4f1}.session-role>span{display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:#dceacb;color:#456720;font-size:7px;font-weight:900}.session-role p{margin:0}.session-role small{color:var(--muted);font-size:6px;text-transform:uppercase}.session-role strong{margin-top:2px;font-size:8px}.session-role i{width:6px;height:6px;border-radius:50%;background:#6fa03b;box-shadow:0 0 0 3px #6fa03b18}.main-nav{display:grid;gap:6px}.main-nav button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:0;border-radius:10px;background:transparent;color:#667168;font-size:12px;font-weight:650;text-align:left;transition:.22s ease}.main-nav button:hover{background:#f0f3ef;color:var(--ink);transform:translateX(3px)}.main-nav button.active{background:#eaf0e7;color:var(--ink)}.nav-icon{width:17px;color:#8d9a91;font-size:18px;text-align:center}.main-nav button.active .nav-icon{color:var(--green-dark)}.main-nav b{display:grid;place-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;border-radius:99px;background:var(--ink);color:var(--green);font-size:7px}.sidebar-spacer{flex:1}.support-card{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:9px;width:100%;padding:12px;border:0;border-radius:13px;background:#edf2e9;text-align:left;transition:.2s ease}.support-card:hover{transform:translateY(-2px);background:#e6eee0}.support-card>span{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:#dce8d3;color:#527a25;font-size:11px;font-weight:850}.support-card p,.profile p{margin:0}.support-card small,.support-card strong{display:block}.support-card small{margin-bottom:3px;color:var(--muted);font-size:7px}.support-card strong{font-size:8px}.support-card i{font-style:normal}.profile{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;margin-top:12px;padding:11px 5px 2px}.avatar,.small-avatar{display:grid;place-items:center;border-radius:50%;background:#dcebc7;color:#3d5d1d;font-weight:850}.avatar{width:34px;height:34px;font-size:8px}.profile strong{font-size:9px}.profile small{margin-top:3px;color:var(--muted);font-size:7px}.profile button{display:grid;place-items:center;width:27px;height:27px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:13px}.profile button:hover{background:#f0f2ef;color:var(--red)}.main-content{min-height:100vh;margin-left:244px;padding:30px clamp(28px,4.5vw,68px) 65px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1220px;margin:0 auto 27px}.page-title h1{margin:7px 0 0;font-size:25px;line-height:1;letter-spacing:-.045em}.top-actions{display:flex;align-items:center;gap:9px}.icon-button{position:relative;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:#718078;font-size:11px;transition:.2s ease}.icon-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px #17231d14}.notification i{position:absolute;top:5px;right:4px;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#e8714f}.mobile-menu{display:none}.view-stage{max-width:1220px;margin:auto}.view-animate{animation:view-in .4s cubic-bezier(.2,.7,.2,1) both}.loading-panel{max-width:1220px;min-height:430px;display:grid;place-content:center;justify-items:center;margin:auto;color:var(--muted)}.loading-panel>span{width:35px;height:35px;border:3px solid #dce4de;border-top-color:var(--green-dark);border-radius:50%;animation:spin .8s linear infinite}.loading-panel>p{font-size:9px}.load-error{text-align:center}.load-error strong{font-size:15px}.load-error p{color:var(--muted);font-size:10px}.load-error a{color:var(--green-dark);font-size:9px;font-weight:800}

/* Inicio */
.availability-card{position:relative;isolation:isolate;overflow:hidden;min-height:320px;display:grid;grid-template-columns:1.16fr .84fr;border-radius:22px;background:var(--green);box-shadow:0 17px 45px #506f221f}.availability-card:after{content:"";position:absolute;z-index:-1;top:-105px;right:-85px;width:280px;height:280px;border:1px solid #17231d21;border-radius:50%}.hero-grid{position:absolute;z-index:-1;inset:0;opacity:.18;background-image:linear-gradient(#17231d21 1px,transparent 1px),linear-gradient(90deg,#17231d21 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(90deg,transparent 40%,#000)}.availability-copy{padding:43px 48px}.availability-copy h2{margin:20px 0 13px;font-size:clamp(32px,3.2vw,42px);line-height:1.03;letter-spacing:-.055em}.availability-copy>p{max-width:500px;margin:0;color:#45543f;font-size:11px;line-height:1.7}.hero-actions{display:flex;align-items:center;gap:21px;margin-top:25px}.dark-button{justify-content:space-between;min-width:142px;border:0}.text-button,.text-link{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;color:var(--ink);font-size:9px;font-weight:780}.text-button{padding:9px 0;border-bottom:1px solid #17231d73}.text-link{color:#6f7c74}.availability-stats{position:relative;display:grid;grid-template-columns:repeat(3,1fr);align-content:end;gap:18px;padding:34px 41px 43px 0}.orbital{position:absolute;top:29px;right:60px;width:165px;height:165px;display:grid;place-items:center;border:1px solid #17231d29;border-radius:50%;animation:orbit-float 5s ease-in-out infinite}.orbital:before{content:"";position:absolute;inset:13px;border:1px solid #17231d21;border-radius:50%}.orbital:after{content:"";position:absolute;top:8px;left:41px;width:7px;height:7px;border-radius:50%;background:var(--ink)}.orbital>span{z-index:1;width:106px;height:106px;display:grid;place-content:center;border-radius:50%;background:var(--ink);color:#fff;text-align:center;box-shadow:0 15px 35px #17231d33}.orbital strong,.orbital small{display:block}.orbital strong{color:var(--green);font-size:35px}.orbital small{margin-top:7px;color:#d3ded6;font-size:8px;line-height:1.35;text-transform:uppercase}.mini-stat{padding-top:10px;border-top:1px solid #17231d33}.mini-stat strong,.mini-stat span{display:block}.mini-stat strong{font-size:16px}.mini-stat span{margin-top:4px;color:#53604e;font-size:7px;text-transform:uppercase}.content-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:18px;margin-top:18px}.panel{padding:25px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 22px #17231d08}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:17px}.panel-head h3{margin:6px 0 0;font-size:16px;letter-spacing:-.035em}.date-chip{padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#657269;font-size:8px;font-weight:800}.device-list{display:grid;gap:5px}.device-row{display:grid;grid-template-columns:59px minmax(0,1fr) auto 29px;align-items:center;gap:12px;padding:9px 10px;border-radius:13px;transition:.22s ease}.device-row:hover{background:#f5f7f3;transform:translateX(3px)}.device-visual{position:relative;width:54px;height:42px;display:grid;place-items:center;border:1px solid #d6ddd7;border-radius:7px;background:#e9ede9}.mini-laptop{width:29px;height:20px;border:2px solid #919e96;border-radius:3px}.mini-laptop:after{content:"";display:block;width:33px;height:3px;margin:18px 0 0 -4px;border-radius:1px;background:#9aa69e}.device-visual b{position:absolute;right:-4px;bottom:-4px;padding:2px 5px;border-radius:4px;background:var(--ink);color:#fff;font-size:6px}.device-copy strong,.device-copy small,.status-tag{display:block}.device-copy strong{font-size:10px}.device-copy small{overflow:hidden;margin:4px 0 6px;color:var(--muted);font-size:7px;text-overflow:ellipsis;white-space:nowrap}.status-tag{width:max-content;padding:4px 7px;border-radius:99px;font-size:7px;font-weight:820;text-transform:uppercase}.status-tag.available,.status-tag.approved{background:#eaf6da;color:#477316}.status-tag.maintenance,.status-tag.rejected,.status-tag.cancelled{background:#f3e4e2;color:#9c4b45}.status-tag.pending,.status-tag.reserved{background:#fff0d8;color:#925d17}.battery{color:var(--muted);font-size:8px}.round-action{display:grid;place-items:center;width:29px;height:29px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:9px;transition:.2s ease}.round-action:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:#fff}.agenda{position:relative;display:grid}.agenda:before{content:"";position:absolute;top:17px;bottom:17px;left:52px;border-left:1px dashed #d8e0da}.agenda-row{position:relative;display:grid;grid-template-columns:38px 11px 1fr;align-items:center;gap:9px;min-height:50px}.agenda-row time{color:var(--muted);font-size:8px;font-weight:750}.timeline-dot{z-index:1;width:7px;height:7px;border:2px solid #fff;border-radius:50%;background:#86a570;box-shadow:0 0 0 1px #86a570}.agenda-row strong,.agenda-row small{display:block}.agenda-row strong{font-size:9px}.agenda-row small{margin-top:4px;color:var(--muted);font-size:7px}.free-slot{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;margin-top:8px;padding:11px 13px;border-radius:10px;background:#eff6e5}.free-slot>span{font-size:14px}.free-slot p,.compact-empty p{margin:0}.free-slot strong,.free-slot small,.compact-empty strong,.compact-empty small{display:block}.free-slot strong{font-size:8px}.free-slot small{margin-top:3px;color:var(--muted);font-size:7px}.free-slot button{padding:6px 9px;border:0;border-radius:6px;background:var(--ink);color:#fff;font-size:7px;font-weight:800}

/* Equipos */
.section-toolbar{display:flex;gap:10px;margin-bottom:16px}.search-box{flex:1;display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:9px;height:45px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--muted)}.search-box input{min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:10px}.search-box kbd{padding:3px 6px;border:1px solid var(--line);border-radius:5px;background:#f5f7f4;font-size:7px}.section-summary{display:flex;align-items:center;justify-content:space-between;margin:9px 1px 17px}.section-summary p{margin:0;color:var(--muted);font-size:9px}.section-summary p strong{color:var(--ink)}.legend{display:flex;gap:16px}.legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:8px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%}.dot.available,.dot.approved{background:#79a746}.dot.maintenance,.dot.rejected{background:#c76a60}.dot.pending,.dot.reserved{background:#e5a040}.equipment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.equipment-card{overflow:hidden;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff;animation:card-in .45s ease both;transition:.25s ease}.equipment-card:hover{transform:translateY(-5px);box-shadow:0 15px 30px #17231d14}.equipment-card-top{display:flex;align-items:center;justify-content:space-between}.equipment-card-top>button{padding:3px;border:0;background:none;color:var(--muted)}.large-laptop{position:relative;height:113px;display:grid;place-items:center;margin:8px 0}.large-laptop .screen{position:relative;width:116px;height:77px;display:grid;place-items:center;border:4px solid #b5beb8;border-radius:7px 7px 3px 3px;background:linear-gradient(145deg,#edf1ed,#dfe5e0)}.large-laptop .screen i{width:50px;height:30px;border:2px solid #9ca8a0;border-radius:4px}.large-laptop .screen b{position:absolute;top:6px;right:6px;padding:3px 5px;border-radius:3px;background:var(--ink);color:var(--green);font-size:6px}.large-laptop .base{position:absolute;width:134px;height:7px;margin-top:81px;border-radius:2px 2px 8px 8px;background:#a8b2ab}.asset-label{margin:0 0 6px;color:#77857c;font-size:7px;font-weight:850;letter-spacing:.11em}.equipment-card h3{margin:0;font-size:13px}.specs{min-height:25px;margin:6px 0 12px;color:var(--muted);font-size:8px;line-height:1.5}.equipment-meta{display:flex;justify-content:space-between;gap:7px;padding:9px 0;border-top:1px solid var(--line);color:var(--muted);font-size:7px}.card-action{width:100%;min-height:36px;margin-top:5px;border:0}.card-action.warning{background:#f1eee8;color:#76562e}.card-action:hover:not(:disabled){transform:translateY(-2px)}.empty-state{display:grid;place-items:center;min-height:270px;padding:30px;border:1px dashed #cfd8d1;border-radius:16px;color:var(--muted);text-align:center}.empty-state>span{font-size:25px}.empty-state h3{margin:12px 0 6px;color:var(--ink);font-size:14px}.empty-state p{margin:0;font-size:9px}

/* Calendario */
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.calendar-panel{padding:28px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.calendar-head h2{margin:6px 0 0;font-size:21px;letter-spacing:-.04em;text-transform:capitalize}.calendar-head>div:last-child{display:flex;gap:5px}.calendar-head button{display:grid;place-items:center;height:31px;min-width:31px;padding:0 7px;border:1px solid var(--line);border-radius:7px;background:#fff}.calendar-head .today-button{font-size:8px;font-weight:780}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays span{padding:0 8px 9px;color:var(--muted);font-size:8px;font-weight:750;text-transform:uppercase}.calendar-grid{overflow:hidden;border-top:1px solid var(--line);border-left:1px solid var(--line);border-radius:10px}.calendar-day,.empty-day{position:relative;min-height:88px;padding:9px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:left;transition:.18s ease}.empty-day{background:#f7f8f6}.calendar-day:hover{z-index:1;background:#f5f8f2}.calendar-day.selected{z-index:1;box-shadow:inset 0 0 0 2px var(--ink);background:#f2f7ec}.calendar-day>span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:9px;font-weight:700}.calendar-day.today>span{background:var(--ink);color:var(--green)}.calendar-day>small{position:absolute;left:9px;bottom:8px;color:var(--muted);font-size:6px}.booking-dots{display:flex;gap:3px;margin:8px 0 0 3px}.booking-dots i{width:5px;height:5px;border-radius:50%}.booking-dots .approved{background:#77a545}.booking-dots .pending{background:#e5a040}.calendar-legend{display:flex;gap:17px;margin-top:15px}.calendar-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:7px}.calendar-legend i{width:7px;height:7px;border-radius:50%}.calendar-legend i.approved{background:#77a545}.calendar-legend i.pending{background:#e5a040}.calendar-legend i.today{background:var(--ink)}.day-detail{min-height:590px;display:flex;flex-direction:column;padding:26px 22px;border-radius:18px;background:var(--ink);color:#fff;box-shadow:0 14px 35px #17231d1f}.day-detail .eyebrow{color:#90a096}.day-detail-head h3{margin:7px 0 5px;font-size:18px;letter-spacing:-.03em;text-transform:capitalize}.day-detail-head>span{color:#aebbb3;font-size:8px}.day-bookings{display:grid;gap:4px;margin:25px 0}.day-bookings article{display:grid;grid-template-columns:34px 2px 1fr;gap:12px;min-height:86px}.day-bookings time{color:var(--green);font-size:9px;font-weight:800}.day-bookings time small{display:block;margin-top:5px;color:#8fa098;font-size:7px}.booking-line{width:2px;height:100%;border-radius:99px;background:#627068}.booking-line.approved{background:var(--green)}.booking-line.pending{background:#e7a349}.day-bookings h4{margin:8px 0 4px;font-size:10px}.day-bookings p{margin:0 0 5px;color:#b9c4bd;font-size:8px}.day-bookings article div>small{color:#7f8e85;font-size:7px}.day-detail .status-tag{padding:3px 6px;font-size:6px}.day-detail .primary-button.full{width:100%;margin-top:auto;border-color:var(--green);background:var(--green);color:var(--ink)}.empty-day-detail{padding:40px 10px;text-align:center;color:#8f9e95}.empty-day-detail>span{font-size:22px}.empty-day-detail h4{margin:10px 0 5px;color:#fff;font-size:11px}.empty-day-detail p{margin:0;font-size:8px}

/* Reservas */
.tabs-row{display:flex;gap:6px;margin-bottom:16px}.tabs-row button{padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);font-size:9px;font-weight:750}.tabs-row button.active{background:var(--ink);color:#fff;border-color:var(--ink)}.tabs-row b{margin-left:5px;color:var(--green)}.reservation-banner{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding:15px 18px;border-radius:13px;background:#eaf3df}.reservation-banner>div{display:flex;align-items:center;gap:11px}.reservation-banner p,.reservation-time p,.request-user p{margin:0}.reservation-banner strong,.reservation-banner small{display:block}.reservation-banner strong{font-size:10px}.reservation-banner small{margin-top:3px;color:var(--muted);font-size:8px}.reservation-banner button{padding:0;border:0;background:transparent;font-size:8px;font-weight:800}.reservations-list{display:grid;gap:9px}.reservation-row{display:grid;grid-template-columns:58px minmax(180px,1.4fr) minmax(140px,.8fr) auto auto;align-items:center;gap:19px;padding:17px 19px;border:1px solid var(--line);border-radius:14px;background:#fff;animation:card-in .35s ease both;transition:.2s ease}.reservation-row:hover{transform:translateY(-2px);box-shadow:0 8px 20px #17231d0a}.reservation-date{width:52px;height:52px;display:grid;place-content:center;border-radius:11px;background:#eef3eb;text-align:center}.reservation-date strong{font-size:20px}.reservation-date span{margin-top:4px;color:var(--muted);font-size:7px;font-weight:850}.reservation-main h3{margin:7px 0 6px;font-size:11px}.reservation-main p{margin:0;color:var(--muted);font-size:8px}.reservation-time{display:flex;align-items:center;gap:8px;color:var(--muted)}.reservation-time strong,.reservation-time small{display:block}.reservation-time strong{color:var(--ink);font-size:9px}.reservation-time small{margin-top:4px;font-size:7px}.request-user{display:flex;align-items:center;gap:7px}.small-avatar{width:30px;height:30px;font-size:7px}.request-user strong,.request-user small{display:block}.request-user strong{font-size:8px}.request-user small{margin-top:3px;color:var(--muted);font-size:7px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.row-actions button{height:31px;border-radius:8px;font-size:8px;font-weight:780}.row-actions .approve{padding:0 9px;border:0;background:var(--ink);color:#fff}.row-actions .reject{width:31px;padding:0;border:1px solid #ead6d3;background:#fff7f6;color:var(--red)}.outline-danger{padding:0 11px;border:1px solid #ead6d3;background:#fff;color:var(--red)}

/* Admin */
.admin-intro{position:relative;isolation:isolate;overflow:hidden;min-height:217px;display:flex;align-items:center;justify-content:space-between;padding:31px 38px;border-radius:20px;background:var(--ink);color:#fff}.admin-grid-bg{position:absolute;z-index:-1;inset:0;opacity:.11;background-image:linear-gradient(#ffffff33 1px,transparent 1px),linear-gradient(90deg,#ffffff33 1px,transparent 1px);background-size:38px 38px;mask-image:linear-gradient(90deg,transparent,#000)}.admin-badge{border:0;background:#bff15a1f;color:var(--green)}.admin-intro h2{margin:16px 0 8px;font-size:34px;line-height:1.05;letter-spacing:-.05em}.admin-intro p{max-width:470px;margin:0;color:#aab7af;font-size:9px;line-height:1.6}.admin-orbit{width:145px;height:145px;display:grid;place-items:center;margin-right:30px;border:1px solid #405047;border-radius:50%;animation:orbit-float 5s ease-in-out infinite}.admin-orbit:before{content:"";position:absolute;width:117px;height:117px;border:1px solid #34443b;border-radius:50%}.admin-orbit>span{z-index:1;width:91px;height:91px;display:grid;place-content:center;border-radius:50%;background:var(--green);color:var(--ink);text-align:center}.admin-orbit strong,.admin-orbit small{display:block}.admin-orbit strong{font-size:30px}.admin-orbit small{font-size:7px;text-transform:uppercase}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.metric-card{position:relative;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.metric-icon{position:absolute;top:15px;right:15px;display:grid;place-items:center;width:33px;height:33px;border-radius:9px;background:#edf3e8;color:#66873d}.metric-card p{margin:0;color:var(--muted);font-size:7px;font-weight:800;text-transform:uppercase}.metric-card>strong{display:block;margin:11px 0 3px;font-size:25px}.metric-card>small{color:var(--muted);font-size:7px}.metric-card>b{display:block;width:max-content;margin-top:13px;padding:4px 6px;border-radius:99px;background:#f0f5ec;color:#668346;font-size:6px}.admin-panels{display:grid;grid-template-columns:1.4fr .6fr;gap:14px}.approval-row{display:grid;grid-template-columns:31px minmax(0,1fr) auto 29px 29px;align-items:center;gap:9px;padding:10px 0;border-top:1px solid var(--line)}.approval-row strong,.approval-row small{display:block}.approval-row strong{font-size:8px}.approval-row small{margin-top:3px;color:var(--muted);font-size:7px}.approval-row p{overflow:hidden;margin:4px 0 0;color:#455149;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.approval-row time{padding:5px 6px;border-radius:5px;background:#f2f4f1;font-size:7px;font-weight:800}.approve-icon,.reject-icon{width:29px;height:29px;padding:0;border-radius:7px}.approve-icon{border:0;background:var(--ink);color:var(--green)}.reject-icon{border:1px solid #ead6d3;background:#fff7f6;color:var(--red)}.usage-panel{display:grid;grid-template-columns:1fr 1fr;align-items:end}.usage-panel .panel-head{grid-column:1/-1}.usage-ring{position:relative;width:116px;height:116px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--green-dark) var(--usage),#edf0ed 0)}.usage-ring:before{content:"";position:absolute;width:85px;height:85px;border-radius:50%;background:#fff}.usage-ring span{z-index:1;text-align:center}.usage-ring strong,.usage-ring small{display:block}.usage-ring strong{font-size:20px}.usage-ring small{font-size:7px;color:var(--muted)}.usage-bars{height:110px;display:flex;align-items:end;justify-content:space-between;gap:5px}.usage-bars>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;text-align:center}.usage-bars span{width:100%;min-height:10px;border-radius:5px 5px 2px 2px;background:#dce8d2}.usage-bars small{margin-top:6px;color:var(--muted);font-size:6px}.quick-inventory{margin-top:14px}.table-head,.table-row{display:grid;grid-template-columns:.65fr 1.2fr .65fr .8fr .65fr;align-items:center;gap:12px}.table-head{padding:8px 10px;border-radius:7px;background:#f4f6f3;color:var(--muted);font-size:7px;font-weight:800;text-transform:uppercase}.table-row{padding:10px;border-bottom:1px solid var(--line);font-size:8px}.table-row>span{display:flex;align-items:center;gap:5px}.table-row>span:first-child{display:block}.table-row b,.table-row small{display:block}.table-row small{margin-top:3px;color:var(--muted);font-size:6px}.table-row button{width:max-content;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;font-size:7px}.compact-empty{display:flex;align-items:center;justify-content:center;gap:10px;min-height:130px;color:#668346}.compact-empty>span{font-size:22px}.compact-empty strong{font-size:9px}.compact-empty small{margin-top:4px;color:var(--muted);font-size:7px}

/* Modal */
.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#121c178c;backdrop-filter:blur(7px);animation:fade-in .2s ease}.reservation-modal{position:relative;width:min(530px,100%);max-height:calc(100vh - 30px);overflow:auto;padding:31px;border-radius:20px;background:#fff;box-shadow:0 25px 80px #0a140e47;animation:modal-in .35s ease}.modal-close{position:absolute;top:17px;right:17px;width:31px;height:31px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:18px}.modal-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:15px;border-radius:12px;background:var(--green);font-size:19px}.reservation-modal h2{margin:7px 0 8px;font-size:25px;letter-spacing:-.045em}.modal-intro{margin:0 0 21px;color:var(--muted);font-size:9px;line-height:1.6}.reservation-modal form{display:grid;gap:14px}.reservation-modal label{position:relative;display:grid;gap:6px;color:#56635b;font-size:8px;font-weight:780}.reservation-modal select,.reservation-modal input,.reservation-modal textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fbfcfa;color:var(--ink);font-size:10px}.reservation-modal select,.reservation-modal input{height:40px;padding:0 10px}.reservation-modal textarea{min-height:77px;padding:10px;resize:vertical}.reservation-modal label>small{position:absolute;right:8px;bottom:7px;color:var(--muted2);font-size:6px}.form-row{display:grid;grid-template-columns:1.2fr .9fr .9fr;gap:9px}.modal-note{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;background:#eff5e9;color:#67735f}.modal-note>span{color:#648739}.modal-note p{margin:0;font-size:8px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;z-index:80;right:22px;bottom:22px;display:flex;align-items:center;gap:9px;max-width:390px;padding:12px 13px;border-radius:11px;background:var(--ink);color:#fff;box-shadow:0 15px 40px #17231d40;font-size:9px;animation:toast-in .35s ease}.toast>span{color:var(--green);font-size:15px}.toast p{margin:0}.toast button{margin-left:8px;padding:3px;border:0;background:none;color:#9eaaa2}

@keyframes view-in{from{opacity:0;transform:translateY(8px)}}@keyframes card-in{from{opacity:0;transform:translateY(12px)}}@keyframes fade-in{from{opacity:0}}@keyframes modal-in{from{opacity:0;transform:translateY(18px) scale(.98)}}@keyframes toast-in{from{opacity:0;transform:translateY(14px)}}@keyframes pulse{50%{box-shadow:0 0 0 8px #245f2a00}}@keyframes orbit-float{50%{transform:translateY(-7px) rotate(2deg)}}@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:1120px){.equipment-grid{grid-template-columns:repeat(3,1fr)}.availability-card{grid-template-columns:1fr .75fr}.orbital{right:35px}.reservation-row{grid-template-columns:50px minmax(170px,1.3fr) minmax(130px,.7fr) auto}.request-user{display:none}}
@media(max-width:900px){.sidebar{width:76px;padding:24px 13px 15px}.brand{justify-content:center}.brand>span:last-child,.session-role p,.session-role i,.main-nav button>span:not(.nav-icon),.main-nav b,.support-card p,.support-card i,.profile p,.profile button{display:none}.session-role{display:grid;grid-template-columns:1fr;padding:5px}.main-nav button{justify-content:center}.support-card{display:grid;grid-template-columns:1fr}.profile{grid-template-columns:1fr}.avatar{margin:auto}.main-content{margin-left:76px;padding:27px 24px 55px}.availability-card{grid-template-columns:1fr}.availability-stats{min-height:230px;padding:20px 35px 33px}.orbital{top:6px;right:50%;transform:translateX(50%)}.content-grid{grid-template-columns:1fr}.equipment-grid{grid-template-columns:repeat(2,1fr)}.calendar-layout{grid-template-columns:1fr}.day-detail{min-height:390px}.metric-grid{grid-template-columns:repeat(2,1fr)}.admin-panels{grid-template-columns:1fr}.login-screen{grid-template-columns:1fr}.login-aside{display:none}}
@media(max-width:620px){.sidebar{left:-245px;width:235px;padding:24px 20px;transition:transform .3s ease;box-shadow:20px 0 60px #17231d29}.sidebar.open{transform:translateX(245px)}.sidebar .brand{justify-content:flex-start}.sidebar .brand>span:last-child,.sidebar .session-role p,.sidebar .session-role i,.sidebar .main-nav button>span:not(.nav-icon),.sidebar .main-nav b,.sidebar .support-card p,.sidebar .support-card i,.sidebar .profile p,.sidebar .profile button{display:block}.sidebar .session-role{grid-template-columns:29px 1fr auto}.sidebar .main-nav button{justify-content:flex-start}.sidebar .support-card{grid-template-columns:31px 1fr auto}.sidebar .profile{grid-template-columns:34px 1fr auto}.main-content{margin-left:0;padding:20px 14px 50px}.topbar{gap:9px}.mobile-menu{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:10px;background:#fff}.page-title{min-width:0;flex:1}.page-title .eyebrow{display:none}.page-title h1{overflow:hidden;margin:0;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.top-actions .notification{display:none}.top-actions .primary-button{width:38px;min-width:38px;padding:0;font-size:0}.availability-copy{padding:31px 23px}.availability-copy h2{font-size:30px}.availability-stats{display:none}.content-grid{gap:12px}.panel{padding:19px 14px}.device-row{grid-template-columns:55px minmax(0,1fr) 29px}.device-row .battery{display:none}.section-toolbar .secondary-button,.search-box kbd{display:none}.equipment-grid{grid-template-columns:1fr}.calendar-panel{padding:16px 10px}.calendar-head{padding:0 5px}.weekdays span{text-align:center}.calendar-day,.empty-day{min-height:58px;padding:5px}.calendar-day>small{display:none}.day-detail{min-height:360px}.reservation-row{grid-template-columns:46px minmax(0,1fr) auto!important;gap:11px;padding:14px}.reservation-time,.request-user{display:none}.reservation-date{width:44px;height:44px}.row-actions .approve{width:31px;padding:0;font-size:0}.admin-intro{min-height:235px;padding:28px 23px}.admin-intro h2{font-size:29px}.admin-orbit{display:none}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-icon{display:none}.approval-row{grid-template-columns:29px minmax(0,1fr) 28px 28px}.approval-row time{display:none}.table-head,.table-row{grid-template-columns:.6fr 1.2fr .8fr}.table-head span:nth-child(3),.table-head span:nth-child(5),.table-row span:nth-child(3),.table-row button{display:none}.form-row{grid-template-columns:1fr 1fr}.form-row label:first-child{grid-column:1/-1}.reservation-modal{padding:27px 20px}.modal-actions{display:grid;grid-template-columns:1fr 1fr}.toast{right:12px;bottom:12px;left:12px;max-width:none}.login-form-wrap{padding:24px}.login-form h2{font-size:34px}.demo-access{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Credenciales visibles para el acceso rápido de demostración. */
.demo-access{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:12px 13px;border:1px solid #dce7d4;border-radius:10px;background:#f0f5ec}
.demo-copy>span{display:block;margin-bottom:7px;color:#557234;font-size:8px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.demo-copy p{display:grid;grid-template-columns:62px 1fr;gap:7px;margin:4px 0;font-size:8px}
.demo-copy b{color:var(--muted);font-weight:650}
.demo-copy code{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:8px}
.demo-access button{padding:8px 10px;border:0;border-radius:7px;background:var(--ink);color:#fff;font-size:8px;font-weight:800}
@media(max-width:620px){.demo-access{grid-template-columns:1fr}.demo-access button{width:100%}}
