/* Touch-first additions: phone cards, tablet workspace, and reachable navigation. */
html{-webkit-text-size-adjust:100%;scroll-padding-top:100px}
button,a,input,select,textarea,summary{touch-action:manipulation}
button,input,select,textarea,summary{min-height:44px}
input,select,textarea,.field input,.field select,.field textarea,.line-input input,.line-input select{font-size:16px}
input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #b86b42;outline-offset:2px}
.btn,.btn.small,.chip,.nav button,.sidebar-foot button{min-height:44px}
.close{width:44px;height:44px;flex-shrink:0}
.link{min-height:44px;line-height:1.45;overflow-wrap:anywhere}
.list-item>div,.grid>*,.card-head>*,.details>*{min-width:0}
.list-item small{display:block;margin-top:4px}
.list-item>div:last-child:has(.btn){display:flex;flex-wrap:wrap;gap:8px}
.modal-footer{flex-wrap:wrap}.modal-header h2{overflow-wrap:anywhere}
.modal{max-height:92dvh;overscroll-behavior:contain}
.dialog-open{overflow:hidden}
.touch-header{display:none}
.skip-link{position:absolute;left:12px;top:-100px;background:white;padding:12px;z-index:100}
.skip-link:focus{top:12px}
@media(max-width:1023px){
 .layout{display:block}.sidebar{display:none}
 .touch-header{display:grid;grid-template-columns:1fr auto;gap:4px 12px;position:sticky;top:0;z-index:20;background:var(--navy);color:white;padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));box-shadow:0 2px 12px #0002}
 .touch-brand{font-size:16px;font-weight:700;letter-spacing:1.5px;align-self:center}.touch-brand span{font-weight:400;font-size:12px;letter-spacing:0;margin-left:8px;color:#c7d7db}
 .touch-current{grid-column:1/-1;font-size:12px;color:#c7d7db}
 .touch-menu summary{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid #80989f;border-radius:8px;cursor:pointer;list-style:none}
 .touch-menu summary::-webkit-details-marker{display:none}
 .touch-menu-panel{position:absolute;top:100%;left:0;right:0;padding:16px max(16px,env(safe-area-inset-right)) 20px max(16px,env(safe-area-inset-left));background:var(--navy);max-height:70vh;max-height:70dvh;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 24px #0003;border-top:1px solid #ffffff30}
 .touch-menu-panel p{font-size:13px}.touch-menu-panel nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:16px}
 .touch-menu-panel nav button{border:1px solid #ffffff30;border-radius:8px;background:#ffffff0a;color:white;text-align:left;padding:12px;min-height:48px;font-size:14px}
 .touch-menu-panel nav button[aria-current=page]{background:white;color:var(--navy);font-weight:700}
 .topbar{height:auto;min-height:44px;padding:10px 20px;gap:10px}.topbar-label{display:none}.demo-label{font-size:11px}
 .content{padding:24px max(20px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}
 .page-head{flex-wrap:wrap;align-items:flex-start}.page-head>.actions{width:100%}
 .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g2{grid-template-columns:minmax(0,1fr)}
 .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
 .modal-overlay{padding:16px}.modal{width:100%;max-height:94dvh}.modal-body{padding:22px}
 .modal-footer{padding-bottom:max(16px,env(safe-area-inset-bottom))}
 .login-story{padding:36px}.login-story h1{font-size:36px}.login-panel{padding:28px}
 .card-head{flex-wrap:wrap}
}
@media(max-width:599px){
 .touch-brand span{display:none}.touch-menu-panel nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 .content{padding:20px max(12px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 h1{font-size:26px}.page-head{gap:14px;margin-bottom:20px}.page-head p{font-size:14px}
 .page-head .actions .btn{flex:1 1 auto}.notice{font-size:13px}
 .details,.g3,.g4{grid-template-columns:minmax(0,1fr)}.details{gap:14px}
 .card-head,.list-item,.pad{padding:16px}.list-item{flex-wrap:wrap;gap:10px;align-items:flex-start}
 .list-item>div:has(.btn){width:100%}.list-item .btn{flex:1 1 auto}
 .pill{white-space:normal;font-size:12px}.list-item strong{font-size:14px}
 .table-wrap{overflow:visible}.table-wrap table,.table-wrap tbody{display:block;width:100%}
 .table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .table-wrap tr{display:block;padding:10px 14px;border-top:1px solid var(--line)}
 .table-wrap td{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr);gap:12px;padding:8px 0;border:0;text-align:left;white-space:normal;overflow-wrap:anywhere;font-size:14px}
 .table-wrap td::before{content:attr(data-label);font-size:12px;font-weight:600;color:var(--muted);align-self:center}
 .table-wrap td[colspan]{display:block}.table-wrap td[colspan]::before{display:none}
 .table-wrap td>small{grid-column:2}.table-wrap td .link{width:100%}
 .pagination{padding:12px;flex-wrap:wrap;gap:12px}.pagination .actions{margin-left:auto}
 .modal-overlay{padding:0;align-items:stretch}.modal,.modal.narrow{width:100%;max-width:none;max-height:100vh;max-height:100dvh;border-radius:0}
 .modal-header{padding:calc(12px + env(safe-area-inset-top)) 14px 12px;gap:12px}.modal-header h2{font-size:20px}
 .modal-body{padding:18px 14px calc(22px + env(safe-area-inset-bottom))}.modal-footer{padding:12px 14px max(12px,env(safe-area-inset-bottom));justify-content:stretch}
 .modal-footer .btn{flex:1 1 45%}.line-input{grid-template-columns:minmax(0,1fr) 65px 44px}
 .product strong{height:auto;min-height:38px;overflow:visible;font-size:14px}.product{padding:12px}
 .login-story{padding:20px max(20px,env(safe-area-inset-left));min-height:0}.login-story h1{font-size:26px;margin:22px 0 12px}.login-story>small{font-size:12px}.login-panel{padding:24px 20px calc(24px + env(safe-area-inset-bottom))}
 #toast{bottom:calc(16px + env(safe-area-inset-bottom));font-size:14px;width:max-content;max-width:calc(100vw - 24px)}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.touch-header{display:none!important}.table-wrap table{display:table}.table-wrap tbody{display:table-row-group}.table-wrap tr{display:table-row}.table-wrap td{display:table-cell}.table-wrap td::before{display:none}.table-wrap thead{position:static;width:auto;height:auto;clip-path:none;display:table-header-group}}

.approval-fold>summary{padding:16px;font-size:16px;font-weight:600;cursor:pointer;min-height:56px;line-height:1.5}
.approval-fold[open]>summary{border-bottom:1px solid var(--line)}
@media(min-width:800px) and (max-width:1023px){.grid.approval-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-grid .list-item{flex-wrap:wrap}}

/* Charlotte's visual identity is a flame. Preview never requests audio access. */
.voice-modal{background:#fcfaf6;max-width:760px}.voice-modal .modal-header{background:#fcfaf6;border-bottom:0}.voice-modal .modal-body{padding-top:0}
.charlotte-voice{text-align:center;display:flex;flex-direction:column;align-items:center;min-height:min(650px,70dvh);padding:4px 12px 20px}
.voice-eyebrow{letter-spacing:2.5px;font-size:11px;color:var(--muted);margin:10px 0 0}
.flame-stage{position:relative;display:grid;place-items:center;width:100%;height:clamp(180px,32dvh,300px);flex:1 0 auto;margin:16px 0 8px}
.flame-halo{position:absolute;width:210px;height:210px;border-radius:50%;background:radial-gradient(ellipse,#f6c69a55,transparent 70%);filter:blur(15px)}
.charlotte-flame{height:clamp(160px,28dvh,250px);width:auto;overflow:visible;filter:drop-shadow(0 14px 22px #c36a2520)}
.flame-shell,.flame-core{transform-origin:50% 95%;animation:flame-rest 4.5s ease-in-out infinite}
.flame-core{animation-delay:-1s}.charlotte-voice h2{font-size:24px;margin:12px 0}.voice-caption{font-size:15px;max-width:320px;color:var(--muted);margin-bottom:20px}
.voice-privacy{font-size:12px;color:#52636a;margin-bottom:20px}.voice-privacy span{color:#83918c;font-size:10px;margin-right:6px}
.voice-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.voice-controls button{min-height:48px}
.voice-preview-options{margin-top:24px;max-width:100%;font-size:12px;color:var(--muted)}.voice-preview-options summary{cursor:pointer;padding:12px}.voice-preview-options .actions{justify-content:center;margin:8px 0}.voice-preview-options [aria-pressed=true]{border-color:var(--copper);background:#f7e8da}
[data-voice-state=listening] .flame-shell{animation:flame-listen 2s ease-in-out infinite}[data-voice-state=thinking] .charlotte-flame{animation:flame-think 2.8s ease-in-out infinite}[data-voice-state=speaking] .flame-shell{animation:flame-speak .85s ease-in-out infinite alternate}[data-voice-state=speaking] .flame-core{animation:flame-speak .6s ease-in-out infinite alternate-reverse}
@keyframes flame-rest{50%{transform:scale(.985,1.025) rotate(1deg)}}
@keyframes flame-listen{50%{transform:scale(1.035,1.055)}}
@keyframes flame-think{50%{opacity:.7;transform:translateY(-4px)}}
@keyframes flame-speak{to{transform:scale(.95,1.09) rotate(-2deg)}}
@media(max-width:599px){.voice-modal .modal-body{padding:0 14px 20px}.charlotte-voice{min-height:calc(100dvh - 100px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.voice-controls{width:100%}.voice-controls .btn{flex:1}.voice-preview-options{margin-top:12px}}
@media(max-height:500px){.charlotte-voice{min-height:0}.flame-stage{height:140px}.charlotte-flame{height:130px}.voice-eyebrow{margin:0}}
@media(prefers-reduced-motion:reduce){.charlotte-flame,.flame-shell,.flame-core{animation:none!important}}
/* Keep save controls within reach while a long intake form scrolls. */
#action-form > .actions { position: sticky; bottom: 0; z-index: 2; background: #f6f4ef; padding: 12px 0 max(12px, env(safe-area-inset-bottom)); border-top: 1px solid #deded8; margin-top: 18px; flex-wrap: wrap; }
#action-form details > summary { cursor: pointer; padding: 12px 0; font-weight: 600; }
@media (max-width: 600px) { #action-form > .actions .btn { flex: 1 1 45%; min-height: 44px; } }
