/* Supremo: a stronger expression of the original editorial identity. */
:root{--studio-dark:#171815;--studio-muted:#bbbeb2;--studio-radius:14px}
[hidden]{display:none!important}
body>nav{max-width:1360px;gap:1.5rem}
body>nav ul{margin-left:auto;gap:1.3rem}
.private-access{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;white-space:nowrap;min-height:44px;opacity:.7;transition:opacity .18s ease,color .18s ease}
.private-access svg{width:14px;height:14px;flex:none}
.private-access:hover,.private-access:focus-visible{opacity:1}
nav .cta{border-radius:6px;font-weight:600;min-height:46px}
.btn{border-radius:6px;min-height:48px}
.btn.primary:not(:disabled):hover{background:var(--lime);color:var(--ink)}
.home-studio{background:var(--studio-dark);color:var(--paper)}
.home-studio>nav{border-color:#383b32}
.home-studio>nav .brand-name,.home-studio>nav a:not(.cta){color:var(--paper)}
.home-studio>nav .logo-mark{border:1px solid #47493e}
.home-studio .hero{padding-top:1.8rem}
.home-studio .hero-topline{color:var(--studio-muted);margin-bottom:2.8rem;font-size:.72rem}
.home-studio .hero-layout{grid-template-columns:1.25fr 1fr;gap:6rem;align-items:center}
.home-studio .hero h1{font-size:clamp(4.2rem,8vw,6rem);line-height:.96;letter-spacing:-.02em}
.home-studio .hero h1 .hl{background:none;color:var(--lime);padding:0}
.home-studio .hero-meta{margin-top:2rem}
.home-studio .hero-meta p{color:var(--studio-muted);font-size:.9rem;max-width:43ch;line-height:1.8}
.home-studio .hero .rating{color:var(--studio-muted);margin-top:.25rem;text-decoration:none}
.home-studio .hero a.rating:hover,.home-studio .hero a.rating:focus-visible{color:var(--paper);text-decoration:underline}
.home-studio .rating .stars{color:var(--lime)}
.home-studio .hero .btn.primary{background:var(--lime);color:var(--ink)}
.home-studio .hero .btn.primary:hover{background:var(--paper)}
.home-studio .hero .btn.ghost{color:var(--paper);border-color:#666b59}
.home-studio .visit-panel{padding:0;background:none;border-left:1px solid #44483a;padding-left:3rem}
.brand-plate{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border:1px solid #3f4237;border-radius:50% 50% 12px 12px;background:#000;min-height:270px;margin-bottom:1.5rem;overflow:hidden}
.brand-plate-photo{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 37%}
.brand-plate::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 38%,rgba(0,0,0,.82) 100%);pointer-events:none}
.brand-plate span{position:relative;z-index:2;font-size:.75rem;letter-spacing:.15em;color:var(--paper);margin-bottom:1.4rem;text-align:center;padding:0 1.2rem}
.home-studio .visit-title{font-size:1.6rem}
.home-studio .visit-panel>p:not(.visit-title){font-size:.8rem;margin:.6rem 0 1rem}
.home-studio .visit-hours{padding-top:1.2rem;font-size:.72rem}
.home-studio .visit-panel .btn{background:transparent;border:1px solid #777d63;color:var(--paper)}
.home-studio .visit-panel .btn:hover{background:var(--lime);color:var(--ink)}
.craft-strip{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:3.5rem 0 0;padding:1.1rem 0;border-top:1px solid #414537;border-bottom:1px solid #414537;font-family:'Big Shoulders Display',sans-serif;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:700;letter-spacing:.03em}
.craft-strip i{font-style:normal;color:var(--lime)}
.home-studio .hero .teasers{margin-top:1.2rem;gap:1.6rem}
.home-studio .hero .teaser{border:0;background:none;color:var(--paper);padding:1rem 0}
.home-studio .hero .teaser p,.home-studio .hero .teaser .go{color:var(--studio-muted)}
.home-studio .hero .teaser:hover h2{color:var(--lime)}
.home-studio .final{background:var(--lime);color:var(--ink);border:0;border-radius:var(--studio-radius);padding:3rem 2rem;margin:2.5rem 0 4rem;text-align:left;display:grid;grid-template-columns:1fr 1fr;column-gap:3rem;align-items:center}
.home-studio .final h2{grid-row:span 2;font-size:clamp(2.7rem,5vw,4rem)}
.home-studio .final .sub{color:#3e441f;line-height:1.7;margin:0}
.home-studio .final .actions-final{justify-content:flex-start;margin-top:1rem;gap:.5rem}
.home-studio .final .btn.primary:hover{background:#363b27;color:white}
.home-studio footer{background:#10110e;border-color:#35392e;color:var(--paper)}
.home-studio footer .fine,.home-studio footer nav a{color:var(--studio-muted)}
body:not(.home-studio):not(.private-page) .page-head{position:relative}
body:not(.home-studio):not(.private-page) .page-head>h1{letter-spacing:-.02em}
.svc-detail .card{background:var(--studio-dark);color:var(--paper);padding:2rem;border-radius:var(--studio-radius)}
.svc-detail .card p{color:#c6c8bd}.svc-detail .card .tag{color:var(--lime)}
.service-link{text-decoration:none;display:inline-flex;gap:1rem;align-items:center;justify-self:start;border-bottom:1px solid;padding-bottom:.3rem}
.traits-full{border:0;background:none;gap:1.5rem}.traits-full .card{border-top:1px solid var(--line-strong);padding:1.8rem 0;background:none}
.quote{background:var(--studio-dark);color:var(--paper);border:0;border-radius:var(--studio-radius);padding:2rem}.quote cite{color:#c6c8bd}
.hours-table{background:var(--paper-2);border-radius:var(--studio-radius);padding:1.2rem 1.5rem}.rows .row:last-child{border:0}.rows .row.today{border-radius:6px;background:var(--lime)}
.booker{border-radius:var(--studio-radius);border-top:4px solid var(--lime);padding:2.2rem}.field select,.field input[type=date],.field input[type=text],.slot{border-radius:6px}.slot.selected{box-shadow:0 3px 9px #13121012}
.map-frame{border-radius:var(--studio-radius)}
.private-page{background:#eeeee6}.private-page>nav{background:var(--paper)}
.back-site{font-size:.8rem}.admin-main{max-width:1280px;margin:0 auto;padding:3rem 2.4rem 5rem}
.private-entry{display:grid;grid-template-columns:1.1fr 1fr;max-width:1020px;margin:1.5rem auto;background:var(--paper);border-radius:18px;overflow:hidden;box-shadow:0 15px 45px #20251b0c}
.private-intro{padding:3rem;background:var(--studio-dark);color:var(--paper);display:flex;flex-direction:column;align-items:flex-start}
.private-intro h1{font-size:clamp(3rem,5vw,4.5rem);line-height:1.05}.private-intro h1 span{color:var(--lime)}
.private-intro p{color:#bec2b2;font-size:.9rem;line-height:1.7;margin-top:1.5rem}.private-intro img{width:95px;height:auto;margin-top:2rem}
.login-form{padding:3.5rem;display:flex;flex-direction:column;justify-content:center;gap:.8rem}.lock-icon{width:36px;height:36px;margin-bottom:1rem;color:var(--lime-deep)}
.login-form h2{font-size:2.6rem;text-transform:none}.login-form>p:not(.form-message){font-size:.9rem;line-height:1.7;color:var(--ink-dim);margin:0 0 1rem}
.login-form label,.editor-panel label,.search-label{display:block;font-size:.78rem;font-weight:600;margin-bottom:.5rem}
.login-form input,.editor-panel input,.editor-panel select,#search{border:1px solid var(--line-strong);border-radius:6px;background:var(--paper);padding:.85rem 1rem;min-height:48px;font:inherit;font-size:.9rem;color:var(--ink);width:100%;min-width:0}
.login-form .btn{margin-top:.5rem}.access-note{font-size:.74rem;color:var(--ink-dim);line-height:1.6}.form-message{font-size:.83rem;line-height:1.6;color:#8c2b26;margin:0}.form-message:empty{display:none}
.agenda-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem}.agenda-head h1{font-size:clamp(3.5rem,7vw,5rem)}.agenda-head h1 span{color:var(--lime-deep)}.agenda-head p{color:var(--ink-dim);font-size:.9rem;margin:.9rem 0 0}
.agenda-toolbar{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line-strong);padding-bottom:1rem;margin-bottom:1.8rem;gap:1rem}
.filter-tabs{display:flex;gap:.3rem}.filter-tabs button{font:inherit;font-size:.84rem;cursor:pointer;background:none;border:0;padding:.75rem 1rem;border-radius:6px;min-height:44px}.filter-tabs button.active{background:var(--studio-dark);color:var(--paper)}
.agenda-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:2.5rem;align-items:start}.agenda-layout>div{min-width:0}
.editor-panel{background:var(--paper);padding:1.8rem;border-radius:var(--studio-radius);position:sticky;top:1.5rem;border-top:4px solid var(--lime)}.editor-panel h2{font-size:2.1rem;text-transform:none}.editor-panel>p{font-size:.82rem;color:var(--ink-dim);line-height:1.6;margin:.75rem 0 1.5rem}
.editor-panel input,.editor-panel select{margin-bottom:1rem}.editor-panel .btn{width:100%;margin-top:.7rem}.date-time{display:grid;grid-template-columns:1.2fr 1fr;gap:.8rem}.date-time>div{min-width:0}
.agenda-day{font:600 .85rem Archivo,sans-serif;text-transform:capitalize;line-height:1.5;margin:2rem 0 .7rem;letter-spacing:0}
.appointment{display:flex;align-items:center;gap:1.1rem;background:var(--paper);padding:1.3rem 1.1rem;border-bottom:1px solid var(--line)}
.appointment time{font-family:'IBM Plex Mono',monospace;font-size:1rem;font-weight:500;align-self:flex-start;padding-top:.2rem}.appointment-info{flex:1;min-width:0;overflow-wrap:anywhere}.appointment h3{font:600 .94rem Archivo,sans-serif;text-transform:none;line-height:1.4}.appointment p{font-size:.81rem;color:var(--ink-dim);margin:.35rem 0}.appointment small{font-size:.67rem;color:var(--ink-dim)}
.appointment-actions{display:flex;flex-direction:column;align-items:stretch;gap:.4rem}.appointment-actions button{cursor:pointer;min-height:36px;font:500 .75rem Archivo,sans-serif;border-radius:5px;padding:.5rem .75rem}.edit-button{background:var(--paper-2);border:1px solid var(--line)}.cancel-button{background:none;border:0;color:#8c2b26}.appointment.is-cancelled{background:transparent}.is-cancelled time{text-decoration:line-through}
.agenda-empty{padding:3rem 1rem;border-bottom:1px solid var(--line);margin-top:1rem}.agenda-empty h2{font-size:2.5rem;text-transform:none}.agenda-empty p{font-size:.9rem;color:var(--ink-dim);max-width:42ch;line-height:1.7}
#panelMessage:not(:empty){color:var(--lime-deep);padding:0 0 1.5rem}
/* Wider than the content breakpoints below: at 1051-1180px the nav itself
   still fit on one row, but its ul (flex-wrap:wrap) didn't have room for
   the longest link ("Cancelar mi reserva") and dropped it alone onto its
   own line. Wrapping the whole nav to two centered rows earlier avoids
   that orphan link. */
@media(max-width:1180px){body>nav{flex-wrap:wrap}body>nav ul{order:3;width:100%;justify-content:center}.private-access{margin-left:auto}}
@media(max-width:1050px){.home-studio .hero-layout{gap:2rem}.home-studio .visit-panel{padding-left:2rem}.agenda-layout{gap:1.3rem;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr)}}
@media(max-width:700px){.home-studio .hero-layout{grid-template-columns:1fr}.home-studio .hero h1{font-size:clamp(4.5rem,16vw,6rem)}.home-studio .visit-panel{border:0;padding:0}.brand-plate{min-height:0;aspect-ratio:4/5;border-radius:var(--studio-radius)}
  .brand-plate-photo{object-position:50% 30%}.home-studio .final{grid-template-columns:1fr;padding:2rem 1.5rem;gap:1.3rem}.home-studio .final h2{grid-row:auto}.craft-strip{font-size:1.5rem;gap:.5rem}.home-studio .hero-topline{margin-bottom:2rem}.private-entry{grid-template-columns:1fr;margin:0}.private-intro{padding:2rem}.private-intro h1{font-size:3rem}.private-intro img{display:none}.private-intro p{margin-bottom:0}.login-form{padding:2rem}.admin-main{padding:2rem 1.2rem}.agenda-layout{grid-template-columns:1fr}.editor-panel{position:static}.agenda-head{align-items:flex-start}.agenda-head .btn{font-size:.75rem;padding:.6rem}.agenda-toolbar{flex-wrap:wrap}.filter-tabs button{padding:.65rem .8rem}.agenda-toolbar>.btn{width:100%}.appointment{gap:.7rem;padding:1rem .7rem}.appointment-actions button{min-height:44px}.appointment time{font-size:.86rem}}
@media(max-width:450px){body>nav{gap:.5rem}.brand-name{font-size:.86rem}.brand-name small{font-size:.7rem}.logo-mark{height:36px}.private-access{font-size:.72rem;gap:4px}.private-access svg{width:13px}nav .cta{font-size:.74rem;padding:.6rem .8rem}body>nav ul{justify-content:space-between;font-size:.72rem;gap:.5rem}.home-studio .hero .teasers{gap:1rem}.date-time{grid-template-columns:1fr 1fr}}

/* Shared dark/lime world: every public page and the private agenda. */
.site-studio{--paper:#f7f7f1;--ink:#131210;--ink-dim:#bcc1b1;--line:#414638;--line-strong:#69715b;--lime-deep:#d4e600;--panel:#24271f;background:var(--studio-dark);color:var(--paper);color-scheme:dark}
.site-studio>nav,.private-page.site-studio>nav{background:var(--studio-dark);border-color:var(--line)}
.site-studio>nav a:not(.cta),.site-studio .brand-name{color:var(--paper)}
.site-studio>nav ul a[aria-current=page]{color:var(--lime)}
.site-studio .hl{background:none;color:var(--lime);padding:0}
.site-studio .page-head{padding-bottom:2rem}
.site-studio .page-head h1{max-width:18ch;line-height:1.04}
.site-studio .page-head .lede{max-width:58ch}
.site-studio .btn.primary{background:var(--lime);color:var(--ink)}
.site-studio .btn.primary:hover{background:var(--paper);color:var(--ink)}
.site-studio .btn.ghost{color:var(--paper);border-color:var(--line-strong)}
.site-studio .btn.ghost:hover{border-color:var(--lime);color:var(--lime)}
.site-studio .final{background:var(--lime);color:var(--ink);border:0;border-radius:14px;padding:3rem 2rem;margin:2.5rem 0 4rem}
.site-studio .final .hl{color:inherit}.site-studio .final .sub{color:#41472b}.site-studio .final .btn.primary{background:var(--ink);color:var(--paper)}.site-studio .final .btn.ghost{border-color:#69713f;color:var(--ink)}
.site-studio footer{background:#10110e;border-color:var(--line);color:var(--paper);padding-block:2.5rem}
.site-studio footer nav a,.site-studio footer .fine{color:var(--ink-dim)}
.footer-brand{display:flex;align-items:center;gap:1rem;text-decoration:none;width:fit-content}
.footer-brand img{display:block;flex:none;width:100px;height:80px;object-fit:contain;background:#000;border-radius:6px}
.footer-brand>span{font-size:1.3rem;font-weight:700;letter-spacing:.06em;color:var(--paper);line-height:1.2}
.footer-brand small{display:block;font-size:.72rem;font-weight:500;letter-spacing:.13em;margin-top:.5rem}
.site-studio footer .brand-col{max-width:100%;min-width:0}.site-studio footer .fine{font-size:.67rem;line-height:1.8}
.site-studio .svc-detail .card{background:var(--panel);border:1px solid var(--line);border-radius:14px}
.site-studio .service-link{color:var(--lime)}
.site-studio .hours-table{background:var(--panel);border:1px solid var(--line)}
.site-studio .rows .row .t{color:var(--paper)}.site-studio .rows .row.today,.site-studio .rows .row.today .t{color:var(--ink)}.site-studio .rows .row.today small{color:#444c28}
.site-studio .status-chip{border-radius:6px}.site-studio .status-chip.open{background:#343b16;color:var(--lime)}
.site-studio .contact-card address,.site-studio .contact-card .phone{color:var(--paper)}.site-studio .contact-card .phone{color:var(--lime)}
.site-studio .map-frame{background:var(--panel)}
.site-studio .traits-full .card{background:transparent}.site-studio .traits-full .ex{color:var(--paper)}.site-studio .quote{background:var(--panel);border:1px solid var(--line)}
.site-studio .booker{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--lime)}
.site-studio .field input,.site-studio .field input[type=tel],.site-studio .field select,.site-studio .slot{background:#191c16;color:var(--paper);border-color:var(--line-strong)}
.site-studio .field label{color:var(--paper)}.site-studio .slot.selected{background:var(--lime);color:var(--ink)}.site-studio .slot:not(:disabled):hover{border-color:var(--lime)}
.site-studio .summary{background:#353b26;color:var(--paper)}.site-studio .success-panel{background:#293019;color:var(--paper);border-radius:14px}
.site-studio .error-msg,.site-studio .form-message{color:#ffb4a6}
.site-studio .private-entry,.site-studio .login-form{background:var(--panel)}.site-studio .private-entry{box-shadow:none;border:1px solid var(--line)}
.site-studio .editor-panel,.site-studio .appointment{background:var(--panel)}
.site-studio .login-form input,.site-studio .editor-panel input,.site-studio .editor-panel select,.site-studio #search{background:#191c16;color:var(--paper);border-color:var(--line-strong)}
.site-studio input::placeholder{color:#a4ad95;opacity:1}
.site-studio .filter-tabs button{color:var(--ink-dim)}.site-studio .filter-tabs button.active{background:var(--lime);color:var(--ink)}
.site-studio .edit-button{background:#343a29;color:var(--paper);border-color:var(--line-strong)}.site-studio .cancel-button{color:#ffb4a6}
.site-studio .appointment.is-cancelled{background:transparent}.site-studio #panelMessage:not(:empty){color:var(--lime)}
.calendar-status{display:flex;gap:1rem;justify-content:space-between;align-items:center;padding:1.2rem 1.4rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:1.5rem}
.calendar-status h2{font:600 .95rem Archivo,sans-serif;text-transform:none;line-height:1.4}.calendar-status p{font-size:.8rem;color:var(--ink-dim);margin:.35rem 0 0;line-height:1.6}.calendar-status .btn{white-space:nowrap;font-size:.8rem}
.calendar-tag{display:block;color:var(--lime);font-size:.7rem;margin-top:.35rem}
@media(max-width:650px){.calendar-status{align-items:flex-start;flex-direction:column}.site-studio .final{padding:2rem 1.3rem}.footer-brand img{width:85px;height:68px}.footer-brand>span{font-size:1.1rem}}

/* Mobile nav: hamburger toggle instead of wrapping/cramming the full link row */
.nav-toggle{display:none;flex:none;width:44px;height:44px;align-items:center;justify-content:center;background:none;border:1px solid var(--line-strong);border-radius:6px;color:inherit;cursor:pointer;padding:0}
.nav-toggle svg{width:20px;height:20px}
.nav-toggle:hover{border-color:var(--lime)}
.lang-switch{font-family:'IBM Plex Mono',monospace;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;background:var(--studio-dark);color:inherit;border:1px solid var(--line-strong);border-radius:6px;padding:.5rem .6rem;min-height:44px;cursor:pointer;appearance:auto}
.lang-switch:hover{border-color:var(--lime)}
.lang-switch:focus-visible{outline:2px solid var(--lime-deep);outline-offset:2px}
@media(max-width:700px){
  body>nav{flex-wrap:nowrap!important;position:relative}
  .lang-switch{order:1;margin-left:auto;font-size:.72rem;padding:.4rem .45rem;min-height:44px}
  .nav-toggle{display:inline-flex;order:2}
  body>nav ul{order:4;position:absolute;top:100%;left:0;right:0;width:100%;flex-direction:column;gap:0;max-height:0;overflow:hidden;justify-content:flex-start!important;font-size:.92rem;background:var(--studio-dark);border-bottom:1px solid var(--line);transition:max-height .25s ease;z-index:80;box-shadow:0 12px 24px rgba(0,0,0,.28)}
  body>nav.nav-open ul{max-height:320px}
  body>nav ul li{width:100%}
  body>nav ul a{display:flex;min-height:50px;align-items:center;padding:0 1.4rem;border-bottom:1px solid var(--line);width:100%}
  body>nav ul a[aria-current=page]{border-bottom-color:var(--lime)}
  .private-access{display:none}
  nav .cta{order:3}
}
@media(max-width:450px){
  body>nav ul{font-size:.88rem}
}

/* Admin zone: tabbed sections (Citas / Administración / Configuración) */
.section-tabs{display:flex;gap:.4rem;border-bottom:1px solid var(--line-strong);margin-bottom:1.6rem;flex-wrap:wrap}
.section-tabs button{font:600 .88rem Archivo,sans-serif;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent;padding:.9rem 1.1rem;min-height:44px}
.section-tabs button.active{border-bottom-color:var(--lime-deep);color:var(--lime-deep)}
.section-panel[hidden]{display:none}
.day-nav{display:flex;align-items:center;gap:.6rem;margin:1rem 0}
.day-nav input[type=date]{border:1px solid var(--line-strong);border-radius:6px;background:var(--paper);padding:.6rem .8rem;min-height:44px;font:inherit;color:var(--ink)}
.day-nav .btn{min-height:44px;padding:.5rem .9rem}
.day-nav input[type=date]{background:#191c16;color:var(--paper);border-color:var(--line-strong)}
.day-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.7rem;margin:1rem 0 1.4rem}
.day-summary .stat{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;text-align:center}
.day-summary .stat b{display:block;font:800 1.5rem 'Big Shoulders Display',sans-serif;color:var(--paper)}
.day-summary .stat span{font-size:.72rem;color:var(--ink-dim);text-transform:uppercase;letter-spacing:.04em}
.checkbox-line{display:flex;align-items:center;gap:.5rem;font-size:.84rem;font-weight:500;margin:.2rem 0 1rem;cursor:pointer;color:var(--paper)}
.checkbox-line input{width:18px;height:18px;flex:none;accent-color:var(--lime-deep)}
.appointment-actions{flex-wrap:wrap;flex-direction:row}
.appointment-actions button{min-height:38px}
.complete-button{background:var(--lime-deep);color:var(--ink);border:0}
.delete-button{background:none;border:1px solid #ff9a8a;color:#ffb4a6}
.appointment.is-done{opacity:.75}.appointment.is-done time{color:var(--lime-deep)}
.status-tag{font-size:.65rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:4px;background:var(--line);color:var(--ink-dim);display:inline-block;margin-top:.3rem}
.status-tag.done{background:var(--lime-deep);color:var(--ink)}
/* Dashboard cards */
.dash-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.2rem;margin-bottom:2rem}
.dash-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--studio-radius);padding:1.4rem 1.5rem;border-top:3px solid var(--lime-deep);color:var(--paper)}
.dash-card h3{font:600 .82rem Archivo,sans-serif;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-dim);margin:0 0 .8rem}
.dash-card .row{display:flex;justify-content:space-between;font-size:.86rem;padding:.3rem 0}
.dash-card .row b{font-family:'IBM Plex Mono',monospace}
.dash-card .profit{color:var(--lime-deep)}
/* Finance toolbar + movements table */
.finance-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}
.finance-filters{display:flex;gap:.6rem;flex-wrap:wrap}
.finance-filters select,.finance-filters input{border:1px solid var(--line-strong);border-radius:6px;background:#191c16;padding:.6rem .8rem;min-height:44px;font:inherit;font-size:.86rem;color:var(--paper)}
.finance-actions{display:flex;gap:.6rem}
.table-wrap{overflow-x:auto;border-radius:var(--studio-radius);background:var(--panel);border:1px solid var(--line)}
.movements-table{width:100%;border-collapse:collapse;font-size:.83rem;min-width:820px;color:var(--paper)}
.movements-table th{text-align:left;font:600 .7rem Archivo,sans-serif;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim);padding:.9rem 1rem;border-bottom:1px solid var(--line-strong)}
.movements-table td{padding:.8rem 1rem;border-bottom:1px solid var(--line)}
.movements-table tr.income td:first-child{color:#8ee06a}
.movements-table tr.expense td:first-child{color:#ffb4a6}
.movements-table .row-actions{display:flex;gap:.4rem}
.movements-table .row-actions button{cursor:pointer;background:none;color:var(--paper);border:1px solid var(--line-strong);border-radius:5px;padding:.35rem .6rem;font-size:.72rem;min-height:32px}
/* Configuración */
.config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem}
.config-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--studio-radius);padding:1.6rem;border-top:3px solid var(--lime-deep);color:var(--paper)}
.config-card h2{font-size:1.4rem;text-transform:none;margin:0 0 .6rem;color:var(--paper)}
.config-card p{font-size:.83rem;color:var(--ink-dim);line-height:1.6;margin:0 0 1rem}
.config-form{display:flex;flex-direction:column;gap:.6rem}
.config-form label{font-size:.78rem;font-weight:600}
.config-form input,.config-form select,.config-form textarea{border:1px solid var(--line-strong);border-radius:6px;background:#191c16;padding:.7rem .9rem;font:inherit;font-size:.88rem;color:var(--paper);width:100%}
.config-form textarea{resize:vertical;font-family:'IBM Plex Mono',monospace;font-size:.82rem}
.config-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}
.price-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin-bottom:.6rem}
.price-row label{flex:1;font-weight:500;font-size:.83rem}
.price-row input{width:110px;flex:none}
.config-card-wide{grid-column:1/-1}
.services-table{display:flex;flex-direction:column;gap:.6rem;margin-bottom:.8rem}
.service-row{display:grid;grid-template-columns:1fr 110px 110px auto;gap:.6rem;align-items:center}
.service-row input{margin:0}
.service-row button{cursor:pointer;background:none;border:1px solid #8c2b26;color:#ffb4a6;border-radius:6px;padding:.6rem;min-height:44px}
.service-row-head{display:grid;grid-template-columns:1fr 110px 110px auto;gap:.6rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-dim)}
@media(max-width:600px){.service-row,.service-row-head{grid-template-columns:1fr}}
.pay-choice{display:flex;gap:1rem;margin:.6rem 0 1rem}
.pay-choice label{display:flex;align-items:center;gap:.4rem;font-weight:500;font-size:.9rem;cursor:pointer}
.pay-choice input{width:18px;height:18px;accent-color:var(--lime-deep)}
.complete-amount{font:800 1.6rem 'Big Shoulders Display',sans-serif;color:var(--lime-deep);margin:.2rem 0 .8rem}
@media(max-width:700px){
  .movements-table{min-width:680px}
  .day-nav{flex-wrap:wrap}
}
.modal-overlay{position:fixed;inset:0;background:rgba(10,11,8,.6);display:flex;align-items:center;justify-content:center;padding:1.2rem;z-index:200}
.modal-overlay[hidden]{display:none}
.modal-box{background:var(--panel);color:var(--paper);border-radius:var(--studio-radius);padding:1.8rem;max-width:460px;width:100%;max-height:90vh;overflow-y:auto;border-top:4px solid var(--lime-deep)}
.modal-box h2{font-size:1.7rem;text-transform:none;margin:0 0 .6rem;color:var(--paper)}
.modal-box p{font-size:.86rem;color:var(--ink-dim);line-height:1.6;margin:0 0 1rem}
.modal-box label{display:block;font-size:.78rem;font-weight:600;margin-bottom:.4rem}
.modal-box input,.modal-box select,.modal-box textarea{border:1px solid var(--line-strong);border-radius:6px;background:#191c16;padding:.75rem .9rem;min-height:46px;font:inherit;font-size:.88rem;color:var(--paper);width:100%;margin-bottom:1rem}
.modal-actions{display:flex;gap:.6rem;justify-content:flex-end;margin-top:.4rem}
.modal-actions .btn.danger{background:none;border:1px solid #8c2b26;color:#8c2b26}

/* Micro-interactions: purposeful, not decorative */
.btn,.teaser,.nav-toggle,nav .cta{ transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.btn.primary:hover{ transform:translateY(-1px); }
.hero .teaser:hover{ transform:translateX(2px); }
@media(prefers-reduced-motion:reduce){ .btn.primary:hover,.hero .teaser:hover{ transform:none; } }
