.app-page{max-width:48rem;margin:0 auto;padding:var(--s-5) var(--gutter) var(--s-8)}.app-page .page-header{padding:0 0 var(--s-4)}.stack{display:flex;flex-direction:column;gap:var(--s-5);min-width:0}.panel{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r-card);padding:var(--s-5) var(--s-4);min-width:0}.panel>:last-child{margin-bottom:0}.panel h2{font-size:1.35rem}.panel-warn{border-left:4px solid var(--warn)}.panel-key{border-left:4px solid var(--stub)}@media (min-width:48rem){.panel{padding:var(--s-5) var(--s-6)}}.signin-grid{display:grid;grid-gap:var(--s-5);gap:var(--s-5);grid-template-columns:minmax(0,1fr)}@media (min-width:48rem){.signin-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.signin-grid>.notice{grid-column:1/-1}}.row-between{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4)}.meta,.row-between h2{margin:0}.meta{color:var(--muted);font-size:.9375rem}.status-line{min-height:1.6em;margin:0;color:var(--graphite)}.copy-field{margin:0 0 var(--s-3);min-width:0}.copy-row{display:flex;gap:var(--s-2);align-items:stretch;min-width:0}.copy-row .field-input{flex:1 1;min-width:0}.copy-row .button{flex:none}.link-row,.person{border-top:1px solid var(--line-soft);padding-top:var(--s-4);margin-top:var(--s-4);min-width:0}.inline-form{margin:0 0 var(--s-4)}.client-list,.key-list,.notice-list,.pack-list,.plain-list,.session-list{list-style:none;margin:0;padding:0}.key-list li,.notice-list li,.plain-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);border-top:1px solid var(--line-soft);padding:var(--s-3) 0}.recovery-code{font-size:1.35rem;letter-spacing:.08em;padding:var(--s-3) var(--s-4);background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-control);overflow-wrap:anywhere}.confirm{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.app-wide{max-width:56rem}.dash-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-2) var(--s-5)}.dash-head h1{margin-bottom:var(--s-1)}.dash-who{display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--s-2)}.client-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--s-2) var(--s-4);gap:var(--s-2) var(--s-4);align-items:center;padding:var(--s-4);margin:0 0 var(--s-3);background:var(--card);border-left:1px solid var(--line-soft);border:1px solid var(--line-soft);border-left-width:4px;border-radius:var(--r-card)}.client-row:has(.badge.bad){border-left-color:var(--bad)}.client-row:has(.badge.warn){border-left-color:var(--warn)}.client-main{min-width:0}.client-main>p{margin:0}.client-name{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2);font-weight:650;font-size:1.0625rem}.client-name a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);overflow-wrap:anywhere}.client-count{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--s-2)}.count-big{font-family:var(--display);font-weight:600;font-size:1.75rem;line-height:1.1;letter-spacing:-.01em;font-feature-settings:"lnum";font-variant-numeric:lining-nums}.count-rest{color:var(--graphite)}.client-act{display:flex;justify-content:flex-end}.badge-row{display:inline-flex;flex-wrap:wrap;gap:var(--s-1)}.button.tap{min-height:56px;min-width:8.5rem;border:2px solid var(--accent);color:var(--accent);font-size:1.125rem}.button.tap-primary{min-height:56px;min-width:10rem;font-size:1.25rem}.row-ask,.row-problem{grid-column:1/-1;margin:0}.row-ask{padding:var(--s-3) var(--s-4);border:1px solid var(--warn);border-left-width:4px;border-radius:var(--r-control);background:var(--warn-soft)}.row-ask p{margin:0 0 var(--s-2)}@media (max-width:30rem){.client-row{grid-template-columns:minmax(0,1fr)}.client-act,.client-act .button{width:100%}}details.fold-inline>summary,details.fold>summary{display:flex;align-items:center;gap:var(--s-3);min-height:44px;cursor:pointer;list-style:none}details.fold-inline>summary::-webkit-details-marker,details.fold>summary::-webkit-details-marker{display:none}details.fold-inline>summary:before,details.fold>summary:before{content:"+";flex:none;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--line);border-radius:50%;font-weight:700;line-height:1;color:var(--graphite)}details.fold-inline[open]>summary:before,details.fold[open]>summary:before{content:"\2212";border-color:var(--stub);background:var(--mark);color:var(--mark-ink)}details.fold>summary h2,details.fold>summary h3{margin:0}details.fold[open]>summary{margin-bottom:var(--s-3)}details.fold-inline{margin:var(--s-3) 0}details.fold-inline>summary{font-weight:600;color:var(--accent)}.settings-form{margin-top:var(--s-2)}.kind-choice{margin-bottom:var(--s-3)}.radio-stack{display:flex;flex-direction:column}.radio-stack label{display:flex;align-items:center;gap:var(--s-2);min-height:44px}.radio-stack input{width:1.25rem;height:1.25rem;margin:0;accent-color:var(--accent)}.note-input{font-family:var(--sans)}.client-head h1{overflow-wrap:anywhere;margin-bottom:var(--s-1)}.client-head .meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-2)}.balance{margin-bottom:var(--s-4)}.balance-big{margin:0}.balance-big .count-big{font-size:clamp(2.75rem,2rem + 3vw,3.75rem)}.balance-line{margin:0 0 var(--s-1);font-size:1.125rem;color:var(--ink)}.balance .punch-row,.balance-card .punch-row,.pack-card .punch-row,.sample-card .punch-row{margin:var(--s-3) 0}.punch-wide .hole{width:16px;height:16px}.link-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--s-2);gap:var(--s-2);margin-bottom:var(--s-3)}.qr{display:block;width:168px;height:168px;margin-top:var(--s-2);border:1px solid var(--line-soft);border-radius:var(--r-box)}.pack-card{border-top:1px solid var(--line-soft);padding:var(--s-4) 0}.pack-card:first-child{border-top:0;padding-top:0}.pack-card h3{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:0;overflow-wrap:anywhere}.pack-card.is-active h3 .badge:first-of-type{border-color:var(--accent);color:var(--accent)}.pack-count{margin:var(--s-1) 0 0;font-size:1.125rem;font-weight:600}.pack-edit{margin-top:var(--s-3);padding:var(--s-3) var(--s-4);border:1px dashed var(--line);border-radius:var(--r-control)}.session-list li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2);border-top:1px solid var(--line-soft);padding:var(--s-2) 0;min-height:52px}.session-main{min-width:0;flex:1 1}.session-date{font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-right:var(--s-2)}.session-note{margin:var(--s-1) 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.session-list.public li{display:block}.balance-card{border-top:4px solid var(--stub)}.used-dates{margin-top:var(--s-2)}.used-dates h3{font-size:1.1rem}.undo-toast{position:fixed;z-index:45;left:var(--s-4);right:var(--s-4);bottom:var(--s-4);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);max-width:30rem;margin:0 auto;padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border:1px solid var(--line);border-left:4px solid var(--stub);border-radius:var(--r-control);background:var(--card);color:var(--ink)}.undo-toast[hidden]{display:none}.undo-toast p{margin:0}.home-hero{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--s-6);gap:var(--s-6);align-items:center;margin-bottom:var(--s-7)}.home-copy h1{font-size:clamp(2rem,1.4rem + 2.6vw,3.1rem);line-height:1.08}.sample-card{margin:0;max-width:24rem}.sample-inner{padding:var(--s-5);background:var(--card);border:1px solid var(--line-soft);border-top:4px solid var(--stub);border-radius:var(--r-card)}.sample-inner>p{margin:0 0 var(--s-1)}.sample-label{font-family:var(--display);font-weight:600;font-size:1.25rem}.sample-dates{color:var(--muted);font-size:.9375rem}.sample-card figcaption{margin-top:var(--s-2);color:var(--muted);font-size:.875rem}.price-line{font-weight:600}.band{max-width:44rem}@media (min-width:56rem){.home-hero{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}}.check-field{display:flex;align-items:center;gap:var(--s-3)}.check-field input{flex:none}.digest-list{list-style:none;margin:0;padding:0}.digest-list li{border-top:1px solid var(--line-soft);padding:var(--s-3) 0}.digest-list p{margin:0 0 var(--s-1)}.digest-text{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--graphite);font-size:.9375rem}.app-page{min-height:calc(100vh - var(--header-h))}.app-page :where(h1,h2,h3,p,li,span,label,summary){overflow-wrap:anywhere}