@charset "UTF-8";.toast-center-center{top:50%;left:50%;transform:translate(-50%,-50%)}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}.toast-title{font-weight:700}.toast-message{word-wrap:break-word}.toast-message a,.toast-message label{color:#fff}.toast-message a:hover{color:#ccc;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#fff;text-shadow:0 1px 0 #ffffff}.toast-close-button:hover,.toast-close-button:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4}button.toast-close-button{padding:0;cursor:pointer;background:transparent;border:0}.toast-container{pointer-events:none;position:fixed;z-index:999999}.toast-container *{box-sizing:border-box}.toast-container .ngx-toastr{position:relative;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;background-size:24px;box-shadow:0 0 12px #999;color:#fff}.toast-container .ngx-toastr:hover{box-shadow:0 0 12px #000;opacity:1;cursor:pointer}.toast-info{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOS4wNDMgOCA4IDExOS4wODMgOCAyNTZjMCAxMzYuOTk3IDExMS4wNDMgMjQ4IDI0OCAyNDhzMjQ4LTExMS4wMDMgMjQ4LTI0OEM1MDQgMTE5LjA4MyAzOTIuOTU3IDggMjU2IDh6bTAgMTEwYzIzLjE5NiAwIDQyIDE4LjgwNCA0MiA0MnMtMTguODA0IDQyLTQyIDQyLTQyLTE4LjgwNC00Mi00MiAxOC44MDQtNDIgNDItNDJ6bTU2IDI1NGMwIDYuNjI3LTUuMzczIDEyLTEyIDEyaC04OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtMjRjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxMnYtNjRoLTEyYy02LjYyNyAwLTEyLTUuMzczLTEyLTEydi0yNGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDY0YzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MTAwaDEyYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2MjR6Jy8+PC9zdmc+)}.toast-error{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTI1NiA4QzExOSA4IDggMTE5IDggMjU2czExMSAyNDggMjQ4IDI0OCAyNDgtMTExIDI0OC0yNDhTMzkzIDggMjU2IDh6bTEyMS42IDMxMy4xYzQuNyA0LjcgNC43IDEyLjMgMCAxN0wzMzggMzc3LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwyNTYgMzEybC02NS4xIDY1LjZjLTQuNyA0LjctMTIuMyA0LjctMTcgMEwxMzQuNCAzMzhjLTQuNy00LjctNC43LTEyLjMgMC0xN2w2NS42LTY1LTY1LjYtNjUuMWMtNC43LTQuNy00LjctMTIuMyAwLTE3bDM5LjYtMzkuNmM0LjctNC43IDEyLjMtNC43IDE3IDBsNjUgNjUuNyA2NS4xLTY1LjZjNC43LTQuNyAxMi4zLTQuNyAxNyAwbDM5LjYgMzkuNmM0LjcgNC43IDQuNyAxMi4zIDAgMTdMMzEyIDI1Nmw2NS42IDY1LjF6Jy8+PC9zdmc+)}.toast-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1MTIgNTEyJyB3aWR0aD0nNTEyJyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTE3My44OTggNDM5LjQwNGwtMTY2LjQtMTY2LjRjLTkuOTk3LTkuOTk3LTkuOTk3LTI2LjIwNiAwLTM2LjIwNGwzNi4yMDMtMzYuMjA0YzkuOTk3LTkuOTk4IDI2LjIwNy05Ljk5OCAzNi4yMDQgMEwxOTIgMzEyLjY5IDQzMi4wOTUgNzIuNTk2YzkuOTk3LTkuOTk3IDI2LjIwNy05Ljk5NyAzNi4yMDQgMGwzNi4yMDMgMzYuMjA0YzkuOTk3IDkuOTk3IDkuOTk3IDI2LjIwNiAwIDM2LjIwNGwtMjk0LjQgMjk0LjQwMWMtOS45OTggOS45OTctMjYuMjA3IDkuOTk3LTM2LjIwNC0uMDAxeicvPjwvc3ZnPg==)}.toast-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NzYgNTEyJyB3aWR0aD0nNTc2JyBoZWlnaHQ9JzUxMic+PHBhdGggZmlsbD0ncmdiKDI1NSwyNTUsMjU1KScgZD0nTTU2OS41MTcgNDQwLjAxM0M1ODcuOTc1IDQ3Mi4wMDcgNTY0LjgwNiA1MTIgNTI3Ljk0IDUxMkg0OC4wNTRjLTM2LjkzNyAwLTU5Ljk5OS00MC4wNTUtNDEuNTc3LTcxLjk4N0wyNDYuNDIzIDIzLjk4NWMxOC40NjctMzIuMDA5IDY0LjcyLTMxLjk1MSA4My4xNTQgMGwyMzkuOTQgNDE2LjAyOHpNMjg4IDM1NGMtMjUuNDA1IDAtNDYgMjAuNTk1LTQ2IDQ2czIwLjU5NSA0NiA0NiA0NiA0Ni0yMC41OTUgNDYtNDYtMjAuNTk1LTQ2LTQ2LTQ2em0tNDMuNjczLTE2NS4zNDZsNy40MTggMTM2Yy4zNDcgNi4zNjQgNS42MDkgMTEuMzQ2IDExLjk4MiAxMS4zNDZoNDguNTQ2YzYuMzczIDAgMTEuNjM1LTQuOTgyIDExLjk4Mi0xMS4zNDZsNy40MTgtMTM2Yy4zNzUtNi44NzQtNS4wOTgtMTIuNjU0LTExLjk4Mi0xMi42NTRoLTYzLjM4M2MtNi44ODQgMC0xMi4zNTYgNS43OC0xMS45ODEgMTIuNjU0eicvPjwvc3ZnPg==)}.toast-container.toast-top-center .ngx-toastr,.toast-container.toast-bottom-center .ngx-toastr{width:300px;margin-left:auto;margin-right:auto}.toast-container.toast-top-full-width .ngx-toastr,.toast-container.toast-bottom-full-width .ngx-toastr{width:96%;margin-left:auto;margin-right:auto}.ngx-toastr{background-color:#030303;pointer-events:auto}.toast-success{background-color:#51a351}.toast-error{background-color:#bd362f}.toast-info{background-color:#2f96b4}.toast-warning{background-color:#f89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4}@media all and (max-width: 240px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:11em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 241px) and (max-width: 480px){.toast-container .ngx-toastr.div{padding:8px 8px 8px 50px;width:18em}.toast-container .toast-close-button{right:-.2em;top:-.2em}}@media all and (min-width: 481px) and (max-width: 768px){.toast-container .ngx-toastr.div{padding:15px 15px 15px 50px;width:25em}}html,body{height:100%;max-width:100%;overflow-x:hidden!important}:root{--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Inter, "Noto Sans", "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji";--font-size-1: .875rem;--font-size-2: 1rem;--font-size-3: 1.125rem;--font-size-4: 1.25rem;--font-size-5: 1.5rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--space-1: .5rem;--space-2: .75rem;--space-3: 1rem;--space-4: 1.25rem;--space-5: 1.5rem;--space-6: 2rem;--bg: #f8fbff;--surface: #ffffff;--elevated: #ffffff;--text: #0f172a;--muted: #5b708d;--border: #dbeafe;--primary: #22d3ee;--primary-2: #60a5fa;--primary-contrast: #ffffff;--primary-weak: #eaf7ff;--accent: #22c55e;--accent-contrast: #03160a;--warning: #f59e0b;--warning-contrast: #1a1202;--danger: #ef4444;--danger-contrast: #2a0606;--shadow-sm: 0 1px 2px rgba(30, 58, 138, .06);--shadow-md: 0 6px 16px rgba(30, 58, 138, .1);--shadow-lg: 0 12px 28px rgba(30, 58, 138, .14);--bottom-nav-h: 60px;--auth-bg: var(--bg);--auth-surface: var(--surface);--auth-text: var(--text);--auth-muted: var(--muted);--auth-border: var(--border);--auth-ring: #5ea6ff;--auth-shadow: 0 18px 40px rgba(30, 64, 175, .12);--auth-radius-xl: 18px;--auth-radius-lg: 14px}:root[data-theme=dark]{--bg: #0f172a;--surface: #111827;--elevated: #111827;--text: #e6edf7;--muted: #a9b4c6;--border: #1f2a3b;--primary: #22d3ee;--primary-2: #60a5fa;--primary-contrast: #0b1220;--primary-weak: #0e2136;--accent: #34d399;--accent-contrast: #041410;--warning: #fbbf24;--warning-contrast: #1a1405;--danger: #f87171;--danger-contrast: #2a0b0b;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 6px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 12px 28px rgba(0, 0, 0, .45);--auth-bg: #0f172a;--auth-surface: #111827;--auth-text: #e6edf7;--auth-muted: #a9b4c6;--auth-border: #1f2a3b;--auth-ring: #7cc3ff;--auth-shadow: 0 22px 48px rgba(0, 0, 0, .35)}@media (prefers-contrast: more){:root{--border: color-mix(in srgb, var(--text) 14%, transparent)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--font-size-2);color:var(--text);background:var(--bg);accent-color:var(--primary)}img,svg,video{max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.container{width:min(100%,1200px);margin-inline:auto;padding-inline:var(--space-3);max-width:100%}.page{width:100%;max-width:100%;overflow-x:hidden;padding-left:max(var(--space-3),env(safe-area-inset-left));padding-right:max(var(--space-3),env(safe-area-inset-right));padding-bottom:max(var(--bottom-nav-h) + env(safe-area-inset-bottom) + var(--space-3),var(--space-3))}.center{display:grid;place-items:center}.row{display:flex;align-items:center;gap:var(--space-2)}.row.center{justify-content:center}.grid{display:grid;gap:var(--space-3)}.gap-6{gap:.375rem}.gap-8{gap:.5rem}.spacer{flex:1}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.muted{color:var(--muted)}.no-x-overflow{overflow-x:hidden!important}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-4)}.card:hover{box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.card-title{font-size:var(--font-size-4);font-weight:700}.card-subtitle{font-size:var(--font-size-1);color:var(--muted)}.card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3)}.toolbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.75rem;-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);background:color-mix(in srgb,var(--surface) 90%,transparent);border-bottom:1px solid var(--border);padding:.625rem 1rem;overflow:visible;will-change:transform;-webkit-transform:translateZ(0)}.toolbar.soft{gap:.75rem;padding:.5rem 0 1rem;z-index:5;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 90%,transparent),transparent)}.h-title{margin:0;font-size:1.25rem;font-weight:800}.toolbar-2rows{position:sticky;top:env(safe-area-inset-top,0);z-index:50;background:var(--surface);border-bottom:1px solid var(--border);padding:8px 12px;display:flex;flex-direction:column;gap:6px;overflow:visible;will-change:transform;-webkit-transform:translateZ(0)}.toolbar-2rows .nav-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;min-height:44px;min-width:0}.toolbar-2rows .chips-scroll{min-width:0;display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.toolbar-2rows .chips-scroll::-webkit-scrollbar{display:none}.toolbar-2rows .btn.icon{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--surface);display:grid;place-items:center;flex:none}.toolbar-2rows .actions{display:inline-flex;gap:6px;align-items:center;flex:none}.toolbar-2rows .date-row{padding:6px 0;text-align:center}.toolbar-2rows .h-date{margin:0;font-size:18px;font-weight:700;color:var(--text)}.page>.toolbar-2rows{contain:paint}.icon{width:1rem;height:1rem;display:inline-block;vertical-align:middle;flex:0 0 auto}.btn .icon{margin-right:.35rem}.btn.icon-only .icon{margin-right:0}.btn{--btn-bg: var(--surface);--btn-fg: var(--text);--btn-bd: var(--border);display:inline-flex;align-items:center;justify-content:center;gap:.5rem;height:44px;padding:0 16px;border-radius:var(--radius-md);border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);transition:box-shadow .2s,transform .02s,background .2s,color .2s,border-color .2s,filter .15s}.btn:hover{box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.6;pointer-events:none}.btn.primary{border:0;color:var(--primary-contrast);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 85%,white),color-mix(in srgb,var(--primary-2) 85%,white));box-shadow:0 6px 14px color-mix(in srgb,var(--primary-2) 22%,transparent),inset 0 -6px 10px #fff3}.btn.primary:hover{filter:brightness(1.06)}.btn.primary-soft{border:0;color:var(--primary-contrast);background:linear-gradient(180deg,color-mix(in srgb,var(--primary) 85%,white),color-mix(in srgb,var(--primary-2) 85%,white));box-shadow:0 6px 14px color-mix(in srgb,var(--primary-2) 22%,transparent),inset 0 -6px 10px #fff3}.btn.success{--btn-bg: color-mix(in srgb, var(--accent) 85%, white);--btn-fg: #fff;--btn-bd: transparent;background:var(--btn-bg);color:var(--btn-fg);box-shadow:0 2px 6px #22c55e40}.btn.success:hover{filter:brightness(1.07)}.btn.warn{--btn-bg: color-mix(in srgb, var(--warning) 85%, white);--btn-fg: var(--warning-contrast);--btn-bd: transparent;background:var(--btn-bg);color:var(--btn-fg)}.btn.danger{--btn-bg: color-mix(in srgb, var(--danger) 85%, white);--btn-fg: #fff;--btn-bd: transparent;background:var(--btn-bg);color:var(--btn-fg);box-shadow:0 2px 6px #ef444440}.btn.danger:hover{filter:brightness(1.07)}.btn.ghost{background:transparent;border-color:var(--border)}.btn.outline{padding:.35rem .55rem;background:transparent;border-color:currentColor}.btn.btn-sm{padding:.35rem .55rem;line-height:1.2}.field{display:grid;gap:.35rem;margin-bottom:.5rem}.label{font-size:.875rem;color:var(--muted)}.input,.select,.textarea{width:100%;height:44px;padding:0 12px;background:#f3f7ff;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;transition:border-color .2s,box-shadow .2s,background .2s,color .2s}.textarea{height:auto;min-height:120px;padding:10px 12px;resize:vertical}.input:hover,.select:hover,.textarea:hover{border-color:color-mix(in srgb,var(--primary),var(--border))}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent);background:#fff}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 8l4 4 4-4' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.checkbox{width:18px;height:18px;accent-color:var(--primary)}.switch{--w: 42px;--h: 24px;position:relative;width:var(--w);height:var(--h);border-radius:var(--h);background:var(--border);transition:background .2s}.switch input{display:none}.switch .dot{position:absolute;top:2px;left:2px;width:calc(var(--h) - 4px);height:calc(var(--h) - 4px);border-radius:999px;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s,background .2s}.switch input:checked~.dot{transform:translate(calc(var(--w) - var(--h)));background:var(--primary-contrast)}.switch .track{position:absolute;inset:0;border-radius:var(--h);background:var(--border)}.switch input:checked~.track{background:var(--primary)}.badge,.chip{position:relative;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;font-size:.85rem;line-height:1.1;border-radius:999px;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);white-space:nowrap}.badge .dot,.chip .dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:0 0 auto}.badge.sm,.sm.chip{padding:.15rem .45rem;font-size:.8rem}.badge.lg,.lg.chip{padding:.35rem .7rem;font-size:.9rem}.badge.success,.success.chip{color:#16a34a;border-color:#16a34a38;background:#16a34a14}.badge.warning,.warning.chip{color:#b45309;border-color:#b4530938;background:#b4530914}.badge.danger,.danger.chip{color:#dc2626;border-color:#dc262638;background:#dc262614}.badge.programada,.programada.chip,.badge.pendiente,.pendiente.chip{color:#0369a1;border-color:#0369a138;background:#0369a114}.badge.confirmada,.confirmada.chip{color:#166534;border-color:#16653438;background:#1665341a}.badge.cancelada,.cancelada.chip{color:#b91c1c;border-color:#b91c1c38;background:#b91c1c1a}.badge.completada,.completada.chip{color:#0f766e;border-color:#0f766e38;background:#0f766e1a}.badge.danger.blink,.danger.blink.chip,.badge.programada.blink,.programada.blink.chip{animation:badge-blink 1.2s linear infinite}@keyframes badge-blink{0%,55%{opacity:1}65%,to{opacity:.45}}.badge.danger.pulse:after,.danger.pulse.chip:after{content:"";position:absolute;inset:-2px;border-radius:999px;box-shadow:0 0 #dc262659;animation:badge-pulse 1.8s ease-out infinite;pointer-events:none}@keyframes badge-pulse{0%{box-shadow:0 0 #dc262659}70%{box-shadow:0 0 0 10px #dc262600}to{box-shadow:0 0 #dc262600}}@media (prefers-reduced-motion: reduce){.badge.danger.blink,.danger.blink.chip,.badge.danger.pulse:after,.danger.pulse.chip:after{animation:none}}.chip{padding:.25rem .625rem}.chip .x{margin-left:.25rem;cursor:pointer;opacity:.7}.chip .x:hover{opacity:1}.avatar-small{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-weight:700;font-size:.85rem;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--text)}.avatar{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;font-weight:700;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 80%,transparent)}.table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.table th,.table td{padding:.75rem 1rem;text-align:left}.table thead th{background:color-mix(in srgb,var(--primary-weak) 40%,var(--surface));color:var(--text);font-weight:600}.table tbody tr{border-top:1px solid var(--border)}.table tbody tr:hover{background:color-mix(in srgb,var(--primary-weak) 15%,var(--surface))}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.card__header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding-bottom:14px}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:60}.modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:min(92vw,520px);padding:var(--space-4)}.picker-panel{padding:var(--space-2);border:1px solid var(--border);border-radius:12px;background:var(--surface)}.picker-item{width:100%;border:1px solid var(--border);border-radius:12px;background:var(--surface);padding:.65rem .75rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;text-align:left;cursor:pointer}.picker-item.is-active{outline:2px solid #2563eb;outline-offset:0}.picker-item:active{transform:translateY(.5px)}.item-left{display:flex;align-items:center;gap:.75rem}.name{font-weight:600}.auth-page{min-height:100dvh;display:grid;place-items:center;padding-block:calc(2rem + env(safe-area-inset-top)) calc(2rem + env(safe-area-inset-bottom));padding-inline:2rem;background:radial-gradient(900px 480px at 10% -10%,rgba(96,165,250,.2),transparent 60%),radial-gradient(780px 420px at 110% 6%,rgba(34,211,238,.18),transparent 60%),radial-gradient(520px 260px at -5% 90%,rgba(167,139,250,.16),transparent 60%),var(--auth-bg)}@supports not (height: 100svh){html,body{height:-webkit-fill-available}.auth-page{min-height:-webkit-fill-available}}.auth-card{width:min(94vw,440px);background:var(--auth-surface);color:var(--auth-text);border:1px solid var(--auth-border);border-radius:var(--auth-radius-xl);box-shadow:var(--auth-shadow);padding:2rem}.auth-brand{text-align:center;margin-bottom:1.25rem}.auth-brand .auth-logo{font-size:2.2rem;line-height:1;margin-bottom:.5rem}.auth-brand .auth-title{margin:0;font-size:1.6rem;font-weight:800;letter-spacing:.2px;color:#0b1730}.auth-brand .auth-subtitle{margin:.25rem 0 0;color:#6b7f9b;font-size:.95rem}.auth-form{display:grid;gap:1rem}.auth-form .field{display:grid;gap:.5rem}.auth-form .label{font-size:.9rem;color:var(--auth-muted);font-weight:600}.input-affix{position:relative}.auth-input{width:100%;padding:.9rem 1rem;border:1px solid var(--auth-border);border-radius:var(--auth-radius-lg);background:#f3f7ff;outline:none;transition:box-shadow .15s ease,border-color .15s ease,background .2s ease;font-size:.98rem}.auth-input:focus{border-color:var(--auth-ring);box-shadow:0 0 0 4px color-mix(in srgb,var(--auth-ring) 22%,transparent);background:#fff}.auth-input[aria-invalid=true]{border-color:#ef4444;box-shadow:0 0 0 4px #ef44441f}.ghost-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--auth-muted);font-weight:600;font-size:.85rem;padding:.25rem .5rem;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.ghost-btn:hover{background:#94a3b81f;color:var(--auth-text)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1rem;border-radius:var(--auth-radius-lg);border:0;color:#fff;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-2) 100%);font-weight:700;letter-spacing:.2px;transition:transform .06s ease,filter .15s ease,box-shadow .15s ease;box-shadow:0 10px 22px color-mix(in srgb,var(--primary-2) 28%,transparent),inset 0 -8px 12px #ffffff2e}.btn-primary.btn-lg{font-size:1rem}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{filter:grayscale(.2) brightness(.95);opacity:.8;cursor:not-allowed}.w-100{width:100%}.mt-3{margin-top:1rem}.alert-danger{border:1px solid #fecaca;background:#fff1f2;color:#9f1239;padding:.75rem 1rem;border-radius:var(--auth-radius-lg);font-size:.95rem}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.55);border-top-color:#fff;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.field-error{color:#e11d48;font-size:.85rem;margin-top:.25rem}.app-shell{min-height:100dvh;display:grid;grid-template-columns:260px 1fr;gap:0}.sidebar{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border-right:1px solid var(--border);background:color-mix(in srgb,var(--surface) 96%,transparent)}.brand{display:flex;align-items:center;gap:.6rem;font-weight:800}.brand .logo{font-size:1.4rem}.brand .brand-text{font-size:1.1rem;letter-spacing:.2px}.side-nav{display:grid;gap:.25rem}.side-link{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-radius:var(--radius-md);color:var(--muted)}.side-link:hover{background:color-mix(in srgb,var(--primary-weak) 35%,var(--surface));color:var(--text)}.side-link.on{background:var(--primary-weak);color:var(--primary);font-weight:700}.content{padding:clamp(16px,2vw,28px)}.stats{display:grid;gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:var(--space-4)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.stat-num{font-size:1.6rem;font-weight:800;line-height:1}.stat-label{color:var(--muted);margin-top:.35rem}.cards{display:grid;gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr))}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .2s ease,border-color .2s ease}.feature-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}.card-icon{font-size:1.6rem;margin-bottom:.4rem}.feature-card .btn{margin-top:.75rem}.bottom-tabs{position:fixed;inset-inline:0;bottom:0;height:58px;display:flex;justify-content:space-around;align-items:center;background:var(--surface);border-top:1px solid var(--border)}.bottom-tabs a{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.8rem;color:var(--muted);padding:.25rem .35rem;border-radius:10px}.bottom-tabs a.on{color:var(--primary);background:color-mix(in srgb,var(--primary-weak) 35%,var(--surface))}.only-mobile{display:none}.hide-mobile{display:block}@media (max-width: 1024px){.app-shell{grid-template-columns:1fr}.hide-mobile{display:none}.only-mobile{display:inline-flex}.stats{grid-template-columns:1fr 1fr 1fr}.cards{grid-template-columns:1fr}.content{padding-bottom:calc(58px + var(--space-4))}}@media (max-width: 640px){.stats{grid-template-columns:1fr 1fr}}.btn app-icon,.btn .icon,.btn .svg-icon{display:inline-flex;line-height:0;vertical-align:middle}.btn.icon-only{padding:.35rem;width:36px;height:36px}.btn.icon-only app-icon,.btn.icon-only .icon,.btn.icon-only .svg-icon{margin:0}input[type=tel],.tel{font-variant-numeric:tabular-nums;letter-spacing:.02em}.slots .btn{min-width:66px;height:40px;padding:0 var(--space-2);border-radius:var(--radius-lg);font-weight:600}.slots .btn.ghost{--btn-bg: color-mix(in srgb, var(--surface) 96%, transparent);--btn-bd: var(--border);--btn-fg: var(--text);background:var(--btn-bg);border-color:var(--btn-bd);color:var(--btn-fg);transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.slots .btn.ghost:hover:not(:disabled){box-shadow:var(--shadow-sm)}.slots .btn:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:2px}.slots .btn.ghost.primary{border:0;color:var(--primary-contrast);background:linear-gradient(180deg,var(--primary) 0%,var(--primary-2) 100%);box-shadow:0 10px 22px color-mix(in srgb,var(--primary-2) 28%,transparent),inset 0 -6px 10px #ffffff2e}.slots .btn.ghost:disabled{opacity:.55;cursor:not-allowed;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--muted);border-color:var(--border)}@media (prefers-color-scheme: dark){.slots .btn.ghost:hover:not(:disabled){box-shadow:var(--shadow-sm)}}.stat.kpi{position:relative;border-width:1px;border-style:solid;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.stat.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.stat.kpi .stat-num{font-weight:800}.kpi-primary{--kpi-bg: #e9f2ff;--kpi-bd: #b9d3ff;--kpi-fg: #0a66c2;--kpi-bar: #60a5fa;background:var(--kpi-bg);border-color:var(--kpi-bd)}.kpi-primary .stat-num{color:var(--kpi-fg)}.kpi-primary:before{background:var(--kpi-bar)}.kpi-warning{--kpi-bg: #fff2dc;--kpi-bd: #ffd797;--kpi-fg: #b45309;--kpi-bar: #f59e0b;background:var(--kpi-bg);border-color:var(--kpi-bd)}.kpi-warning .stat-num{color:var(--kpi-fg)}.kpi-warning:before{background:var(--kpi-bar)}.kpi-danger{--kpi-bg: #ffe8e8;--kpi-bd: #ffc0c0;--kpi-fg: #b91c1c;--kpi-bar: #ef4444;background:var(--kpi-bg);border-color:var(--kpi-bd)}.kpi-danger .stat-num{color:var(--kpi-fg)}.kpi-danger:before{background:var(--kpi-bar)}.kpi-success{--kpi-bg: #e8fff4;--kpi-bd: #bff3de;--kpi-fg: #0f766e;--kpi-bar: #22c55e;background:var(--kpi-bg);border-color:var(--kpi-bd)}.kpi-success .stat-num{color:var(--kpi-fg)}.kpi-success:before{background:var(--kpi-bar)}.stat.kpi:hover{box-shadow:var(--shadow-md)}.header-actions{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);align-items:center;width:100%}.search-lg{height:48px;border-radius:999px;padding-left:44px;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='11' cy='11' r='6.5' stroke='%2364748B' stroke-width='2'/%3E%3Cpath d='M20 20l-3.6-3.6' stroke='%2364748B' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center;background-size:20px}.btn-pill{display:inline-flex;align-items:center;gap:10px}.btn-circle{display:inline-grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:999px;background:#ffffffeb;box-shadow:inset 0 1px #fff9,0 1px 2px #00000014}.btn-circle app-icon,.btn-circle .icon,.btn-circle .svg-icon,.btn-circle svg{display:block;margin:0!important;line-height:0;width:20px;height:20px}.btn app-icon{vertical-align:middle;line-height:0}@supports (transform: translateY(.5px)){.btn-circle svg{transform:translateY(.5px)}}.tline{position:relative;margin:0;padding-left:0;list-style:none}.t-item{display:grid;grid-template-columns:120px 22px 1fr;align-items:start;gap:var(--space-3);padding-block:var(--space-2)}.t-time{font-weight:700;color:var(--text)}.t-axis{position:relative;width:22px}.t-axis:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:2px;background:var(--border)}.t-axis .dot{position:absolute;left:5px;top:10px;width:12px;height:12px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-sm);border:2px solid var(--primary-2)}.t-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-3);box-shadow:var(--shadow-sm)}.tline-skeleton{display:grid;gap:var(--space-2)}.t-sk{height:86px;border-radius:var(--radius-lg);background:linear-gradient(90deg,#f3f7ff,#e8f0ff,#f3f7ff);animation:t-skel 1.1s ease-in-out infinite}@keyframes t-skel{0%{opacity:.95}50%{opacity:.6}to{opacity:.95}}@supports (padding: max(0px)){.page.pwa{padding-top:max(var(--space-3),env(safe-area-inset-top));padding-left:max(var(--space-3),env(safe-area-inset-left));padding-right:max(var(--space-3),env(safe-area-inset-right))}}
