.artistern-session-modal,.artistern-agreement-modal{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;background:rgba(20,18,15,.55);padding:20px;overflow:auto}.artistern-session-card,.artistern-agreement-card{background:#fffdf8;color:#25221e;padding:28px;max-width:640px;width:100%;max-height:90vh;overflow:auto;border:1px solid #d9d3c7}.artistern-session-card{max-width:430px}.artistern-session-card label{display:block;margin:16px 0}.artistern-session-card input{display:block;width:100%;padding:12px;border:1px solid #bcb4a5;background:white;color:#25221e}.artistern-session-card button,.artistern-agreement-card button,.artistern-agreement-banner button{padding:10px 16px;cursor:pointer;background:#25221e;color:white;border:1px solid #25221e}.artistern-session-card button:disabled,.artistern-agreement-card button:disabled{opacity:.5;cursor:wait}.artistern-session-card [role=alert],.artistern-agreement-card [role=alert]{color:#9b2525}.artistern-agreement-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:16px 24px;padding:16px 20px;border:1px solid #d9c591;background:#fff8e6;font-size:14px}.artistern-agreement-banner p{margin:6px 0 0}.artistern-agreement-card header,.artistern-agreement-card footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.artistern-agreement-text{max-height:32vh;overflow:auto;line-height:1.8;border:1px solid #d9d3c7;padding:18px}.artistern-agreement-card canvas{display:block;width:100%;height:auto;border:1px solid #bcb4a5;margin:12px 0;touch-action:none}.artistern-session-warning{position:fixed;bottom:15px;left:15px;right:15px;z-index:9999;padding:12px 18px;background:#fff8e6;color:#604b17;border:1px solid #d9c591;font-size:13px}.onboarding-footer-status{min-height:18px}.onboarding-footer-status.is-success{color:#315b40}.onboarding-footer-status.is-error{color:#9b2525}@media(max-width:600px){.artistern-agreement-banner{margin:12px;align-items:flex-start;flex-direction:column}.artistern-session-card,.artistern-agreement-card{padding:20px}}

/* Viewport-bound agreement chrome: the actions remain outside both scroll areas. */
.agreement-modal,.artistern-agreement-modal{top:var(--artistern-viewport-top,0px);bottom:auto;height:var(--artistern-viewport-height,100dvh);max-height:var(--artistern-viewport-height,100dvh);box-sizing:border-box;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow:hidden;display:flex;align-items:center;justify-content:center}
.agreement-card,.artistern-agreement-card{box-sizing:border-box;display:flex;flex-direction:column;min-height:0;height:100%;max-height:100%;overflow:hidden;padding:0;box-shadow:none;animation:none}
.agreement-card header,.artistern-agreement-card header{flex:none;padding:12px 16px;border-bottom:1px solid var(--line,#ded8cc);min-height:52px}
.agreement-card header h3,.artistern-agreement-card header h2{margin:0;font-size:22px}
.agreement-card header button,.artistern-agreement-card header button{min-width:44px;min-height:44px;padding:0}
.agreement-scroll,.artistern-agreement-text{flex:1 1 0;min-height:48px;max-height:none;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px;margin:0;border:0;border-bottom:1px solid var(--line,#ded8cc)}
.agreement-sign,.artistern-agreement-sign{flex:0 1 auto;min-height:0;overflow:auto;padding:12px 16px;background:var(--canvas,#faf9f6)}
.agreement-sign p,.artistern-agreement-sign p{margin:0 0 8px;font-size:13px}
.agreement-sign canvas,.artistern-agreement-sign canvas{box-sizing:border-box;width:100%;height:clamp(72px,19dvh,170px);min-height:72px;margin:0;background:white;touch-action:none}
.artistern-agreement-sign label{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:13px}
.agreement-actions,.artistern-agreement-card footer{flex:none;display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:10px 16px;margin:0;background:#fffdf8;border-top:1px solid var(--line,#ded8cc)}
.agreement-actions .btn,.artistern-agreement-card footer button{min-height:44px;min-width:92px}
@media(max-width:600px){.agreement-actions,.artistern-agreement-card footer{display:grid;grid-template-columns:1fr 1fr}.agreement-actions .btn,.artistern-agreement-card footer button{width:100%;justify-content:center}.agreement-card,.artistern-agreement-card{width:100%;max-width:100%}}
