:root{--tm-modal-overlay-bg:rgba(22,26,20,.45);--tm-modal-overlay-blur:4px;--tm-modal-panel-radius:var(--stg-r-xl);--tm-modal-panel-shadow:0 20px 40px rgba(0,0,0,.18),0 0 0 1px var(--stg-border)}.modal-overlay,.tm-modal-overlay{align-items:center;backdrop-filter:blur(var(--tm-modal-overlay-blur));background:var(--tm-modal-overlay-bg);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:var(--tm-modal-overlay-z,1200)}.modal-overlay.modal-overlay--pos-center,.tm-modal-overlay.tm-modal-overlay--pos-center{align-items:center}.modal-overlay.modal-overlay--pos-bottom,.tm-modal-overlay.tm-modal-overlay--pos-bottom{align-items:flex-end;padding-bottom:var(--tm-modal-panel-bottom-gap,2.25rem)}.modal-overlay.modal-overlay--subtle{backdrop-filter:none;background:transparent}.modal-overlay.hidden,.tm-modal-overlay.hidden{display:none!important}.modal-panel,.tm-modal-panel{max-width:var(--tm-modal-panel-max-width,420px);width:100%}.modal-panel,.modal-panel.save-modal-panel,.modal-panel.save-win-modal,.tm-modal-panel{background:var(--stg-paper);border:none;border-radius:var(--stg-r-xl);box-shadow:var(--tm-modal-panel-shadow);color:var(--stg-ink)}.modal-panel.save-modal-panel,.modal-panel.save-win-modal{display:flex;flex-direction:column;max-height:min(88vh,840px)}.save-win-modal .save-win-close-btn:focus-visible,.save-win-modal .save-win-input-primary:focus-visible,.save-win-modal .save-win-input-readable:focus-visible{outline:2px solid var(--stg-ink);outline-offset:2px}.modal-close{background:transparent;border:none;border-radius:var(--stg-r-pill);color:var(--stg-ink-3);cursor:pointer;display:grid;flex-shrink:0;height:36px;place-items:center;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease);width:36px}.modal-close:hover{background:var(--stg-paper-deep);color:var(--stg-ink)}.modal-close .stg-icon,.modal-close svg{height:20px;width:20px}.modal-header,.tm-modal-header{align-items:center;display:flex;justify-content:space-between;padding:var(--sp-5) var(--sp-6) var(--sp-4)}.modal-title{align-items:center;color:var(--stg-ink);display:flex;font-family:var(--font-display);font-size:24px;font-weight:400;gap:var(--sp-3);letter-spacing:-.01em;margin:0}.input-group{display:flex;flex-direction:column;gap:8px;margin-bottom:var(--sp-4)}.input-label{color:var(--stg-ink-4);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.text-input{background:var(--stg-paper-deep);border:2px solid transparent;border-radius:var(--stg-r-lg);color:var(--stg-ink);font-family:var(--font-ui);font-size:15px;outline:none;padding:12px 16px;transition:border-color var(--dur-2) var(--ease);width:100%}.text-input::placeholder{color:var(--stg-ink-4)}.text-input:focus{border-color:var(--stg-ink)}.input-header{align-items:baseline;display:flex;justify-content:space-between}.input-header .input-label{display:block;margin-bottom:8px}.input-header a{color:var(--stg-ink-3);font-size:12px;font-weight:500;text-decoration:none}.input-header a:hover{color:var(--stg-ink);text-decoration:underline}.input-helper{color:var(--stg-ink-3);font-size:12px;line-height:1.4;margin-top:8px}.primary-btn{align-items:center;background:var(--stg-accent);border:none;border-radius:var(--stg-r-pill);color:var(--stg-accent-ink);cursor:pointer;display:inline-flex;font-family:var(--font-display);font-size:18px;font-weight:400;gap:8px;justify-content:center;padding:12px 24px;transition:filter var(--dur-2) var(--ease),transform var(--dur-1) var(--ease)}.primary-btn:hover{filter:brightness(1.05)}.primary-btn:active{transform:scale(.98)}.primary-btn svg{height:18px;width:18px}.ghost-btn{background:transparent;border:none;border-radius:var(--stg-r-pill);color:var(--stg-ink-2);cursor:pointer;font-family:var(--font-ui);font-size:14px;font-weight:500;padding:8px 16px;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease)}.ghost-btn:hover{background:var(--stg-paper-deep);color:var(--stg-ink)}.error-banner{align-items:center;background:var(--stg-pop-peach);border-radius:var(--stg-r-lg);color:var(--stg-ink);display:flex;font-size:14px;gap:8px;margin:0 var(--sp-6) var(--sp-4);padding:12px 16px}.error-banner.hidden{display:none!important}.confirm-modal-panel{background:var(--stg-paper);border-radius:var(--stg-r-xl);max-width:400px;padding:var(--sp-6)}.confirm-modal-panel .modal-title{color:var(--stg-ink);font-family:var(--font-display);font-size:22px;font-weight:400;margin-bottom:var(--sp-3)}.confirm-modal-message{color:var(--stg-ink-2);font-size:15px;line-height:1.5;margin-bottom:var(--sp-6)}.confirm-icon{color:var(--stg-accent-ink);margin-bottom:var(--sp-4)}.confirm-modal-panel .modal-actions{display:flex;gap:12px;justify-content:flex-end;padding:0}.confirm-modal-panel .modal-btn.secondary{background:transparent;border:none;border-radius:var(--stg-r-pill);color:var(--stg-ink-2);cursor:pointer;font-family:var(--font-ui);font-size:15px;font-weight:500;padding:10px 16px;transition:background var(--dur-1) var(--ease)}.confirm-modal-panel .modal-btn.secondary:hover{background:var(--stg-paper-deep)}.confirm-modal-panel .modal-btn.primary{background:var(--stg-accent);border:none;border-radius:var(--stg-r-pill);color:var(--stg-accent-ink);cursor:pointer;font-family:var(--font-display);font-size:17px;font-weight:400;padding:10px 20px;transition:filter var(--dur-2) var(--ease)}.confirm-modal-panel .modal-btn.primary:hover{filter:brightness(1.05)}