:root{--brand:oklch(.7222 .171 53.8);--brand-strong:oklch(.63 .171 53.8);--ink:oklch(.2442 .0064 .6);--ink-2:oklch(.4642 .009 264.5);--ink-3:oklch(.5681 .009 264.5);--surface:oklch(1 0 0);--surface-2:oklch(.9776 .002 264.5);--hairline:oklch(.8667 .003 264.5);--stage:oklch(.19 .008 264.5);--ok:oklch(.52 .14 150);--ok-bg:oklch(.95 .03 150);--err:oklch(.5 .19 28);--err-bg:oklch(.95 .03 28);--warn:oklch(.5 .11 85);--warn-bg:oklch(.96 .05 95);--brand-bg:oklch(.95 .04 65);--radius:8px;--speed:.16s;--z-sticky:10;--z-modal:20}*{box-sizing:border-box}body{background:var(--surface-2);color:var(--ink);font-family:Archivo,system-ui,-apple-system,sans-serif;font-size:.9375rem;line-height:1.5;margin:0}a{color:inherit}h1{font-size:1.375rem;font-weight:700;letter-spacing:-.01em;margin:0}h2{font-size:1rem;font-weight:650;margin:0 0 .75rem}.layout{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{background:var(--surface);border-right:1px solid var(--hairline);display:flex;flex-direction:column;gap:.2rem;height:100vh;padding:1.25rem .9rem;position:sticky;top:0}.sidebar__logo{display:block;height:auto;margin:.25rem .6rem 1.75rem;width:118px}.sidebar nav{display:flex;flex-direction:column;gap:.2rem}.sidebar nav a{align-items:center;border-radius:var(--radius);color:var(--ink-2);display:flex;font-weight:500;gap:.6rem;padding:.5rem .6rem;text-decoration:none;transition:background var(--speed) ease-out,color var(--speed) ease-out}.sidebar nav a:before{background:var(--hairline);content:"";flex:none;height:7px;transform:rotate(45deg);transition:background var(--speed) ease-out;width:7px}.sidebar nav a.router-link-exact-active,.sidebar nav a:hover{background:var(--surface-2);color:var(--ink)}.sidebar nav a.router-link-exact-active{font-weight:650}.sidebar nav a.router-link-exact-active:before{background:var(--brand)}.sidebar__foot{border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:.6rem;margin-top:auto;padding:.75rem .6rem 0}.sidebar__user{color:var(--ink-2);font-size:.82rem;font-weight:550}.main{max-width:1080px;min-width:0;padding:1.75rem 2.25rem 4rem;width:100%}.topbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:10px;padding:1.25rem 1.4rem}.card,.cards{margin-bottom:1rem}.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.cards .card{margin-bottom:0}.stat__k{color:var(--ink-2);font-size:.8rem;font-weight:550;margin:0 0 .4rem}.stat__v{font-size:2rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.01em;line-height:1;margin:0}.btn{align-items:center;background:var(--brand);border:1px solid transparent;border-radius:var(--radius);color:var(--ink);cursor:pointer;display:inline-flex;font:inherit;font-size:.875rem;font-weight:650;gap:.4rem;justify-content:center;padding:.55rem 1.05rem;text-decoration:none;transition:background var(--speed) ease-out,border-color var(--speed) ease-out,transform var(--speed) ease-out}.btn:hover{background:var(--brand-strong)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{cursor:not-allowed;opacity:.5;transform:none}.btn--quiet{background:var(--surface);border-color:var(--hairline);color:var(--ink)}.btn--quiet:hover{background:var(--surface-2);border-color:var(--ink-3)}.btn--danger{background:transparent;border-color:var(--err);color:var(--err)}.btn--danger:hover{background:var(--err-bg)}.btn--sm{font-size:.8rem;padding:.3rem .65rem}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field>label{color:var(--ink-2);font-size:.8rem;font-weight:600}input[type=email],input[type=number],input[type=password],input[type=text],input[type=url],select,textarea{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius);color:var(--ink);font:inherit;font-size:.9rem;padding:.5rem .7rem;transition:border-color var(--speed) ease-out;width:100%}input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}input::-moz-placeholder,textarea::-moz-placeholder{color:var(--ink-2)}input::placeholder,textarea::placeholder{color:var(--ink-2)}textarea{min-height:90px;resize:vertical}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--brand-strong);outline-offset:1px}.grid-2{display:grid;gap:0 1rem;grid-template-columns:1fr 1fr}.table-card{background:var(--surface);border:1px solid var(--hairline);border-radius:10px;margin-bottom:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid var(--hairline);padding:.65rem .9rem;text-align:left;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr{transition:background var(--speed) ease-out}tbody tr:hover{background:var(--surface-2)}th{color:var(--ink-2);font-size:.72rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}td{font-variant-numeric:tabular-nums}.badge{background:var(--surface-2);border:1px solid var(--hairline);border-radius:99px;color:var(--ink-2);display:inline-block;font-size:.74rem;font-weight:650;padding:.14rem .55rem;white-space:nowrap}.badge--ok{background:var(--ok-bg);color:var(--ok)}.badge--err,.badge--ok{border-color:transparent}.badge--err{background:var(--err-bg);color:var(--err)}.badge--warn{background:var(--warn-bg);border-color:transparent;color:var(--warn)}.badge--brand{background:var(--brand-bg);border-color:transparent;color:#834100;color:oklch(.45 .13 55)}.msg{border-radius:var(--radius);font-size:.875rem;font-weight:550;margin-bottom:1rem;padding:.6rem .9rem}.msg--ok{background:var(--ok-bg);color:var(--ok)}.msg--err{background:var(--err-bg);color:var(--err)}.fotos-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.foto{background:var(--surface);border:1px solid var(--hairline);border-radius:10px;overflow:hidden}.foto img{display:block;-o-object-fit:cover;object-fit:cover}.foto img,.foto__placeholder{aspect-ratio:4/3;background:var(--surface-2);width:100%}.foto__placeholder{align-items:center;color:var(--ink-2);display:flex;font-size:.8rem;justify-content:center}.foto__placeholder--wait{animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.foto__meta{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem;justify-content:space-between;padding:.5rem .6rem}.login-wrap{background:var(--stage);display:grid;min-height:100vh;padding:1.5rem;place-items:center}.login-card{background:var(--surface);border-radius:14px;padding:2.25rem 2rem 2rem;width:min(380px,100%)}.login-card .btn{padding-block:.7rem;width:100%}.login__logo{display:block;height:auto;margin-bottom:1.5rem;width:128px}.login__hint{color:var(--ink-2);font-size:.875rem;margin:0 0 1.25rem}.chart{align-items:flex-end;display:flex;gap:3px;height:120px;padding-top:.5rem}.chart__bar{background:var(--brand);border-radius:2px 2px 0 0;flex:1;min-width:3px;transition:height .3s cubic-bezier(.22,1,.36,1)}.chart__bar--empty{background:var(--hairline);height:2px!important}.row-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.muted{color:var(--ink-2);font-size:.84rem}.section-head{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.subform{border:0;border-top:1px solid var(--hairline);margin:1.1rem 0 0;padding:1rem 0 0}.subform legend{color:var(--ink-2);font-size:.8rem;font-weight:650;padding-right:.6rem}.empty{color:var(--ink-2);padding:2.5rem 1rem;text-align:center}.empty:before{background:var(--hairline);content:"";display:block;height:12px;margin:0 auto .9rem;transform:rotate(45deg);width:12px}@media(max-width:800px){.layout{grid-template-columns:1fr}.sidebar{align-items:center;border-bottom:1px solid var(--hairline);border-right:0;flex-direction:row;flex-wrap:wrap;height:auto;position:static}.sidebar__logo{margin:0 1rem 0 0;width:90px}.sidebar nav{flex-direction:row;flex-wrap:wrap}.sidebar__foot{align-items:center;border-top:0;flex-direction:row;margin-left:auto;margin-top:0;padding:0}.main{padding:1rem}.grid-2{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
