:root{--radius: 16px;--radius-sm: 10px;--bg: #0f1115;--card: #171a21;--card-elevated: #1e222b;--ink: #f3f5f7;--muted: #8b93a1;--line: #2a303b;--accent: #3b82f6;--accent-dim: rgba(59, 130, 246, .15);--ok: #22c55e;--ok-dim: rgba(34, 197, 94, .15);--warn: #f59e0b;--warn-dim: rgba(245, 158, 11, .15);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .15);font-family:Outfit,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45;color-scheme:dark}[data-theme=light]{--bg: #f4f6f9;--card: #ffffff;--card-elevated: #f8fafc;--ink: #0f172a;--muted: #64748b;--line: #e2e8f0;--accent: #2563eb;--accent-dim: rgba(37, 99, 235, .12);--ok: #16a34a;--ok-dim: rgba(22, 163, 74, .12);--warn: #d97706;--warn-dim: rgba(217, 119, 6, .12);--danger: #dc2626;--danger-dim: rgba(220, 38, 38, .12);color-scheme:light}[data-theme=dark]{--bg: #0f1115;--card: #171a21;--card-elevated: #1e222b;--ink: #f3f5f7;--muted: #8b93a1;--line: #2a303b;--accent: #3b82f6;--accent-dim: rgba(59, 130, 246, .15);--ok: #22c55e;--ok-dim: rgba(34, 197, 94, .15);--warn: #f59e0b;--warn-dim: rgba(245, 158, 11, .15);--danger: #ef4444;--danger-dim: rgba(239, 68, 68, .15);color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;min-height:100dvh;background:var(--bg);color:var(--ink);transition:background-color .2s ease,color .2s ease;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:440px;margin:0 auto;padding:.75rem 1.25rem calc(2rem + env(safe-area-inset-bottom))}.shell--wide{max-width:960px}.app-header{display:flex;align-items:center;justify-content:flex-start;gap:.65rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:10}.app-header--compact{padding:.55rem 1rem;min-height:3rem}.app-header--compact .app-header__name{font-size:.95rem}.app-header__actions{display:flex;align-items:center;gap:.35rem;margin-left:auto;flex-shrink:0}.theme-toggle{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer;padding:0;font-size:1.1rem;line-height:1;flex-shrink:0}.theme-toggle:hover:not(:disabled){background:var(--card-elevated);border-color:var(--muted)}.theme-toggle--nav{width:36px;height:36px;font-size:1rem}.app-header__user{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.app-header__meta{display:grid;gap:.1rem}.app-header__name{font-weight:600;font-size:1rem;line-height:1.2}.app-header__role{font-size:.85rem;color:var(--muted)}.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-dim);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:.85rem;flex-shrink:0}.menu-toggle{position:relative;width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;display:grid;place-items:center;font-size:1.25rem;line-height:1;padding:0;flex-shrink:0}.menu-toggle:hover{background:var(--card-elevated);border-color:var(--muted)}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;border:none;padding:0;margin:0;background:#0f172a73;cursor:pointer}.drawer{position:fixed;top:0;left:0;bottom:0;width:min(20rem,88vw);z-index:40;display:flex;flex-direction:column;gap:.15rem;padding:4.5rem 1rem calc(1.25rem + env(safe-area-inset-bottom));background:var(--card);border-right:1px solid var(--line);box-shadow:8px 0 24px #0f172a1f;overflow-y:auto}.drawer a{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.85rem 1rem;border-radius:var(--radius-sm);color:var(--ink);font-weight:500;font-size:1rem;text-decoration:none}.drawer a:hover,.drawer a.active{background:var(--accent-dim);color:var(--accent);text-decoration:none}.drawer__section{margin:.75rem 1rem .25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.drawer__theme{margin-top:auto;display:block;width:100%;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card-elevated);color:var(--ink);font:inherit;font-weight:500;text-align:left;cursor:pointer}.drawer__logout{margin-top:.35rem;padding:.85rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:transparent;color:var(--muted);font:inherit;font-weight:500;font-size:1rem;text-align:left;cursor:pointer}.drawer__logout:hover{color:var(--ink);border-color:var(--muted)}.top-nav{display:none;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--line);background:var(--card)}.top-nav a{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.92rem;font-weight:500}.top-nav a.active,.top-nav a:hover{color:var(--ink);text-decoration:none}.top-nav__brand{font-weight:700;color:var(--ink)!important;margin-right:.5rem}.top-nav__spacer{flex:1}.top-nav__logout{background:none;border:none;color:var(--muted);cursor:pointer;font:inherit;font-size:.92rem;padding:0}.top-nav__logout:hover{color:var(--ink)}h1{font-size:1.5rem;font-weight:700;margin:0 0 .35rem}h2{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:1.5rem 0 .75rem}p.lead{color:var(--muted);margin-top:0;font-size:.92rem}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin-top:1rem}.stack{display:grid;gap:.85rem}.row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:end}.punch-card{text-align:center;padding:1.5rem 1.25rem}.punch-card__clock{font-size:2.75rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1;margin-bottom:.35rem}.punch-card__date{color:var(--muted);font-size:.9rem;margin-bottom:1rem}.badge-live{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;border-radius:999px;background:var(--ok-dim);color:var(--ok);font-size:.82rem;font-weight:500;margin-bottom:1.25rem}.badge-live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}.badge-live--out{background:var(--line);color:var(--muted)}.badge-live--out:before{background:var(--muted)}.punch-card__action{width:100%;min-height:3.5rem;padding:1.1rem 1.25rem;font-size:1.15rem;font-weight:600;touch-action:manipulation;-webkit-tap-highlight-color:transparent;margin-top:.25rem}.punch-card--success{animation:punch-flash .45s ease}@keyframes punch-flash{0%{box-shadow:0 0 #22c55e59}50%{box-shadow:0 0 0 6px #22c55e2e}to{box-shadow:0 0 0 0 transparent}}.punch-feedback{margin-top:.85rem}.note-fold{margin-top:1rem}.note-fold__toggle,.note-fold__hide{background:none;border:none;color:var(--accent);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;padding:.35rem;touch-action:manipulation}.note-fold__hide{margin-top:.35rem;color:var(--muted)}.install-hint{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;margin-bottom:.85rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card-elevated)}.install-hint p{margin:.2rem 0 0;font-size:.85rem;color:var(--muted)}.install-hint .secondary{flex-shrink:0;padding:.45rem .75rem;font-size:.85rem}.punch-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin:0 auto 1rem;max-width:22rem}.punch-metrics__label{display:block;font-size:.75rem;color:var(--muted);margin-bottom:.2rem}.punch-metrics__value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.punch-card__day-total{margin:0 0 1rem;color:var(--muted);font-size:.92rem}.geo-chip{display:inline-flex;align-items:center;justify-content:center;padding:.3rem .7rem;border-radius:999px;font-size:.78rem;font-weight:500;margin-bottom:.85rem;border:1px solid var(--line);color:var(--muted)}.geo-chip--ok{color:var(--ok);background:var(--ok-dim);border-color:transparent}.geo-chip--warn{color:var(--warn);background:var(--warn-dim);border-color:transparent}.geo-chip--wait{color:var(--muted)}.punch-note{display:grid;gap:.35rem;text-align:left;margin:0 auto;max-width:22rem;width:100%;font-size:.85rem;color:var(--muted)}.progress{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin:.55rem 0 .35rem}.progress__bar{height:100%;border-radius:999px;background:var(--accent);transition:width .25s ease}.yesterday-panel{margin-top:1rem;padding:.85rem 1.1rem}.yesterday-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:none;color:var(--ink);font:inherit;font-weight:600;padding:0;cursor:pointer}.yesterday-detail{margin:.55rem 0 0;font-size:.9rem}.timeline__note{font-size:.85rem;color:var(--muted);margin-top:.15rem}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem}.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem}.stat-card__label{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--muted);margin-bottom:.35rem}.stat-card__value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-card__sub{font-size:.78rem;color:var(--muted);margin-top:.15rem}.timeline{display:grid;gap:0;margin-top:.5rem}.timeline__item{display:grid;grid-template-columns:24px 1fr;gap:.75rem;position:relative;padding-bottom:1.25rem}.timeline__item:last-child{padding-bottom:0}.timeline__item:not(:last-child):before{content:"";position:absolute;left:11px;top:20px;bottom:0;width:2px;background:var(--line)}.timeline__dot{width:12px;height:12px;border-radius:50%;margin-top:4px;position:relative;z-index:1}.timeline__dot--in{background:var(--ok);box-shadow:0 0 0 4px var(--ok-dim)}.timeline__dot--out{background:var(--danger);box-shadow:0 0 0 4px var(--danger-dim)}.timeline__dot--pending{background:var(--line);box-shadow:none}.timeline__title{font-weight:600;font-size:.95rem}.timeline__time{color:var(--muted);font-size:.85rem;margin-top:.1rem}.timeline__item--pending .timeline__title,.timeline__item--pending .timeline__time{color:var(--muted);opacity:.6}label{display:grid;gap:.35rem;font-size:.88rem;color:var(--muted)}input,select,textarea,button{font:inherit}input,select,textarea{padding:.65rem .85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card-elevated);color:var(--ink);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}button{border:none;border-radius:var(--radius-sm);padding:.75rem 1.25rem;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:#2563eb}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button.secondary:hover:not(:disabled){background:var(--card-elevated);border-color:var(--muted)}button.danger{background:var(--danger)}button.danger:hover:not(:disabled){background:#dc2626}button.linkish{background:transparent;color:var(--accent);padding:0;border-radius:0;font-weight:500}button.linkish:hover:not(:disabled){background:transparent;text-decoration:underline}.status{font-size:1.4rem;font-weight:700}.status.Dentro{color:var(--ok)}.status.Fuera{color:var(--warn)}table,.data-table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{text-align:left;padding:.65rem .5rem;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500;font-size:.82rem}.error{color:var(--danger);font-size:.9rem}.ok{color:var(--ok);font-size:.9rem}.muted{color:var(--muted)}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:var(--line);font-size:.75rem;font-weight:500;text-transform:capitalize}.badge.pending{background:var(--warn-dim);color:var(--warn)}.badge.approved{background:var(--ok-dim);color:var(--ok)}.badge.rejected,.badge.cancelled{background:var(--danger-dim);color:var(--danger)}.vacation-list{display:grid;gap:.75rem}.vacation-card{display:grid;gap:.55rem;padding:1rem 1.1rem}.vacation-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.vacation-card__who{margin:0;font-weight:600}.vacation-card__dates{margin:0;font-weight:600;font-size:1.05rem}.vacation-card__meta{margin:.15rem 0 0;font-size:.85rem}.vacation-card__reason,.vacation-card__note,.vacation-card__balance{margin:0;font-size:.9rem}.vacation-card__cancel{width:100%;min-height:2.75rem;touch-action:manipulation}.vacation-card__actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.25rem}.vacation-card__actions>*{min-height:2.75rem;touch-action:manipulation}.page-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;flex-wrap:wrap}.page-toolbar h1{margin-bottom:.15rem}.page-toolbar .lead{margin-bottom:0}.page-toolbar__cta{min-height:2.75rem;touch-action:manipulation;flex-shrink:0}.user-search input{width:100%}.user-card__chips{display:flex;flex-wrap:wrap;gap:.35rem}.user-card__actions{display:grid;gap:.55rem;margin-top:.25rem}.user-card__actions>*{min-height:2.75rem;touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.vacation-submit{min-height:3rem;touch-action:manipulation}.vacation-preview{margin:0;padding:.65rem .85rem;border-radius:var(--radius-sm);background:var(--accent-dim);color:var(--ink);font-size:.92rem}.vacation-preview--warn{background:var(--danger-dim);color:var(--danger)}.vacation-conflicts{padding:.65rem .8rem;border-radius:var(--radius-sm);background:var(--warn-dim);color:var(--ink);font-size:.88rem}.vacation-conflicts__title{margin:0 0 .35rem;font-weight:600}.vacation-conflicts ul{margin:0;padding-left:1.1rem;display:grid;gap:.2rem}.filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}.filter-chip{border:1px solid var(--line);background:var(--card);color:var(--muted);border-radius:999px;padding:.4rem .8rem;font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;touch-action:manipulation}.filter-chip--active{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.vacation-chip{display:inline-flex;align-items:center;justify-content:center;margin:0 auto .85rem;padding:.4rem .85rem;border-radius:999px;font-size:.82rem;font-weight:500;text-decoration:none;max-width:100%}.vacation-chip:hover{text-decoration:none}.vacation-chip--approved{background:var(--ok-dim);color:var(--ok)}.vacation-chip--pending{background:var(--warn-dim);color:var(--warn)}.vacation-chip--schedule{background:var(--accent-dim);color:var(--accent)}.section-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-bottom:.85rem}.section-tab{min-height:2.6rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--muted);font:inherit;font-weight:600;cursor:pointer;touch-action:manipulation}.section-tab--active{background:var(--accent-dim);border-color:transparent;color:var(--accent)}.warn-inline{color:var(--warn)}.geo-block{text-align:left;margin:0 auto 1rem;max-width:22rem;padding:.9rem 1rem;border-radius:var(--radius-sm);background:var(--danger-dim);color:var(--ink)}.geo-block p{margin:.35rem 0 .75rem;font-size:.88rem;color:var(--muted)}.geo-block__retry{width:100%;min-height:2.85rem;touch-action:manipulation}.cal-panel{padding:1rem}.cal-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.75rem}.cal-nav__label{margin:0;font-weight:600;text-transform:capitalize}.cal-nav__btn{width:2.75rem;height:2.75rem;padding:0;border-radius:var(--radius-sm);font-size:1.4rem;line-height:1;touch-action:manipulation}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:.2rem;margin-bottom:.35rem;text-align:center;font-size:.72rem;font-weight:600;color:var(--muted)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.cal-day{position:relative;aspect-ratio:1;min-height:2.6rem;padding:0;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:grid;place-items:center}.cal-day__num{font-size:.92rem;font-weight:600;font-variant-numeric:tabular-nums}.cal-day__dot{position:absolute;bottom:.28rem;width:4px;height:4px;border-radius:50%;background:var(--danger);opacity:.75}.cal-day--muted{opacity:.28}.cal-day--weekend{color:var(--muted)}.cal-day--holiday{background:transparent}.cal-day--holiday .cal-day__num{color:var(--danger);font-weight:600}.cal-day--vac-approved{background:var(--ok-dim)}.cal-day--vac-pending{background:var(--warn-dim)}.cal-day--range{background:var(--accent-dim)}.cal-day--selected{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.cal-day--today .cal-day__num{text-decoration:underline;text-underline-offset:2px}.cal-day--focus .cal-day__num{text-decoration:underline;text-decoration-color:var(--danger);text-underline-offset:3px}.cal-hint{margin:.85rem 0 0;font-size:.88rem}.cal-holiday-focus{margin:.7rem 0 0;padding:0;background:none;font-size:.84rem;line-height:1.4;color:var(--ink)}.cal-month-holidays{margin:1rem 0 0;padding:.75rem 0 0;border-top:1px solid var(--line)}.cal-month-holidays__label{margin:0 0 .45rem;font-size:.75rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}.cal-month-holidays ul{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}.cal-month-holidays__item{width:100%;text-align:left;padding:.35rem 0;border:none;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:.84rem;line-height:1.35;cursor:pointer;touch-action:manipulation}.cal-month-holidays__item:hover,.cal-month-holidays__item--active{color:var(--ink)}.cal-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.85rem;font-size:.78rem;color:var(--muted)}.cal-legend .lg{display:inline-block;width:.7rem;height:.7rem;border-radius:3px;margin-right:.25rem;vertical-align:-1px}.lg--holiday{background:var(--danger-dim);box-shadow:inset 0 0 0 1px var(--danger)}.lg--approved{background:var(--ok-dim)}.lg--pending{background:var(--warn-dim)}.login-reset{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line)}.login-reset p{margin:0 0 .75rem;font-size:.9rem;color:var(--muted)}.login-reset__btn{width:100%;min-height:2.85rem;touch-action:manipulation}.remember-row{display:flex;align-items:flex-start;gap:.65rem;font-size:.92rem}.remember-row input{width:auto;margin-top:.2rem;accent-color:var(--accent)}.remember-row span{display:grid;gap:.15rem}.remember-row small{color:var(--muted);font-size:.8rem;font-weight:400}.header-logout{min-height:2.5rem;padding:.35rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);color:var(--muted);font:inherit;font-size:.88rem;font-weight:500;cursor:pointer;touch-action:manipulation}.header-logout:hover{color:var(--ink);border-color:var(--muted)}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;line-height:1;flex-shrink:0}.nav-badge--float{position:absolute;top:-.2rem;right:-.2rem;min-width:1.1rem;height:1.1rem;font-size:.62rem}.header-pending{position:relative;display:inline-grid;place-items:center;min-width:2.5rem;min-height:2.5rem;padding:.35rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);color:var(--muted);text-decoration:none;font-size:1rem;touch-action:manipulation}.header-pending__icon{width:1.2rem;height:1.2rem;display:block}.header-pending:hover,.header-pending--active{color:var(--accent);border-color:transparent;background:var(--accent-dim);text-decoration:none}.header-pending .nav-badge{position:absolute;top:-.25rem;right:-.25rem}.pending-more{width:100%;min-height:2.75rem;margin-top:.85rem;touch-action:manipulation}.pending-more-end{margin:.85rem 0 0;text-align:center;font-size:.88rem}.pending-stats__breakdown{font-size:.88rem;line-height:1.4;margin-top:.35rem}.pending-card__kind{margin:0 0 .2rem;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.pending-card__when{font-size:.78rem;white-space:nowrap}.pending-card__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.pending-card__cta,.pending-card__link{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.45rem .9rem;border-radius:var(--radius-sm);font-weight:600;text-decoration:none;touch-action:manipulation}.pending-card__cta{background:var(--accent);color:#fff}.pending-card__cta:hover{text-decoration:none;filter:brightness(1.05)}.pending-card__link{border:1px solid var(--line);background:var(--card);color:var(--ink);font-weight:500}.pending-card__link:hover{text-decoration:none;border-color:var(--muted)}.reset-requests h2{margin-top:0}.report-details{margin-top:1.25rem}.report-details summary{cursor:pointer;font-weight:600;color:var(--muted);margin-bottom:.75rem}.report-details[open] summary{color:var(--ink);margin-bottom:1rem}.credentials-box{margin-top:1rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card-elevated);display:grid;gap:.5rem}.credentials-box code{font-size:1rem;font-weight:600;color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f172a8c;border:none}.modal{position:fixed;z-index:60;top:50%;left:50%;transform:translate(-50%,-50%);width:min(26rem,calc(100vw - 2rem));padding:1.35rem 1.35rem 1.25rem;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);box-shadow:0 18px 48px #0f172a47;display:grid;gap:.75rem}.modal h2{margin:0;font-size:1.25rem;font-weight:700;text-transform:none;letter-spacing:0;color:var(--ink)}.modal__eyebrow{margin:0;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}.modal__text{margin:0;color:var(--ink);line-height:1.45}.modal__list{margin:0;padding-left:1.15rem;color:var(--muted);display:grid;gap:.35rem;font-size:.92rem}.modal__actions{display:flex;justify-content:flex-end;gap:.65rem;margin-top:.35rem;flex-wrap:wrap}.modal__actions--stack{flex-direction:column-reverse;align-items:stretch}.modal__actions--stack>*{width:100%;min-height:2.75rem;touch-action:manipulation}@media(max-width:767px){.modal--thumb{bottom:max(1rem,env(safe-area-inset-bottom));top:auto;transform:translate(-50%);width:calc(100% - 2rem);max-width:28rem}}.credentials-card{display:grid;gap:.75rem;padding:.9rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card-elevated)}.credentials-card__row{display:grid;gap:.2rem}.credentials-card__label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.credentials-card code{font-size:1.05rem;font-weight:600;color:var(--ink);word-break:break-all}.credentials-card__secret{color:var(--accent)!important;font-size:1.2rem!important;letter-spacing:.04em}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1.5rem;position:relative}.login-theme-toggle{position:absolute;top:1rem;right:1rem}.login-card{width:100%;max-width:400px}.login-card h1{font-size:1.75rem;margin-bottom:.5rem}.login-brand{font-size:.85rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}.loading-screen{min-height:100vh;display:grid;place-items:center;color:var(--muted)}@media(min-width:768px){.top-nav{display:flex;padding:.75rem 1.5rem}.app-header,.menu-backdrop,.drawer{display:none}.shell{width:100%;max-width:520px;margin:0 auto;padding:1.5rem 1.5rem 2.5rem;box-sizing:border-box}.shell--wide{max-width:640px}.modal__actions--stack{flex-direction:row;justify-content:flex-end;align-items:center}.modal__actions--stack>*{width:auto;min-height:2.4rem}.page-toolbar{align-items:center}.users-browse__filters,.users-browse__results .panel:first-child{margin-top:1rem}}@media(max-width:767px){.data-table thead{display:none}.data-table tbody tr{display:block;background:var(--card-elevated);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.75rem 1rem;margin-bottom:.65rem}.data-table tbody tr:last-child{margin-bottom:0}.data-table td{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.35rem 0;border:none}.data-table td:before{content:attr(data-label);color:var(--muted);font-size:.78rem;flex-shrink:0}.data-table td:last-child{padding-top:.5rem;justify-content:flex-end}.data-table td:last-child:before{display:none}}
