:root{--mf-bg: #ffffff;--mf-bg-subtle: #f6f7f9;--mf-text: #1d2127;--mf-text-muted: #5c6470;--mf-border: #e3e6ea;--mf-accent: #0e7a6d;--mf-accent-hover: #0b6559;--mf-accent-soft: #e7f4f2;--mf-danger: #c42b2b;--mf-danger-hover: #a52222;--mf-danger-soft: #fdecec;--mf-warning: #9a5b00;--mf-warning-soft: #fff4e0;--mf-focus: #2563eb;--mf-radius-sm: 6px;--mf-radius-md: 10px;--mf-radius-lg: 14px;--mf-tap: 44px;--mf-font: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", system-ui, sans-serif}.mf-visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.mf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--mf-tap);min-width:var(--mf-tap);padding:0 18px;border-radius:var(--mf-radius-md);border:1px solid transparent;font:inherit;font-size:15px;font-weight:600;line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}.mf-btn:focus-visible{outline:3px solid var(--mf-focus);outline-offset:2px}.mf-btn[disabled],.mf-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.mf-btn--primary{background:var(--mf-accent);color:#fff}.mf-btn--primary:not([disabled]):hover{background:var(--mf-accent-hover)}.mf-btn--secondary{background:#fff;color:var(--mf-text);border-color:var(--mf-border)}.mf-btn--secondary:not([disabled]):hover{background:var(--mf-bg-subtle)}.mf-btn--ghost{background:transparent;color:var(--mf-accent)}.mf-btn--ghost:not([disabled]):hover{background:var(--mf-accent-soft)}.mf-btn--danger{background:var(--mf-danger);color:#fff}.mf-btn--danger:not([disabled]):hover{background:var(--mf-danger-hover)}.mf-btn--danger-outline{background:#fff;color:var(--mf-danger);border-color:#efb8b8}.mf-btn--danger-outline:not([disabled]):hover{background:var(--mf-danger-soft)}.mf-btn--lg{min-height:52px;font-size:16px;padding:0 22px}.mf-btn--sm{font-size:14px;padding:0 12px}.mf-btn--block{width:100%}.mf-spinner{display:inline-block;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:mf-spin .8s linear infinite;vertical-align:middle;flex:none}@keyframes mf-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.mf-spinner{animation-duration:2.4s}}.mf-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:48px 16px;color:var(--mf-text-muted)}.mf-state__title{margin:0;font-size:17px;font-weight:700;color:var(--mf-text)}.mf-state__desc{margin:0;font-size:14px;line-height:1.7;max-width:420px}.mf-state__icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--mf-bg-subtle);color:var(--mf-text-muted);font-size:22px;margin-bottom:4px}.mf-state--error .mf-state__icon{background:var(--mf-danger-soft);color:var(--mf-danger)}.mf-state__action{margin-top:8px}.mf-state--loading{flex-direction:row;justify-content:center;color:var(--mf-text-muted)}.mf-dialog{border:none;border-radius:var(--mf-radius-lg);padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);color:var(--mf-text);box-shadow:0 20px 60px #0f172a40;font-family:var(--mf-font)}.mf-dialog::backdrop{background:#0f172a73}.mf-dialog__inner{padding:24px;display:flex;flex-direction:column;gap:16px}.mf-dialog--danger{border-top:6px solid var(--mf-danger)}.mf-dialog__title{margin:0;font-size:19px;font-weight:700;line-height:1.4}.mf-dialog--danger .mf-dialog__title{color:var(--mf-danger)}.mf-dialog__body{font-size:15px;line-height:1.7}.mf-dialog__confirm-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}.mf-dialog__input{width:100%;min-height:var(--mf-tap);box-sizing:border-box;padding:0 12px;border:1px solid var(--mf-border);border-radius:var(--mf-radius-md);font:inherit;font-size:16px}.mf-dialog__input:focus-visible{outline:3px solid var(--mf-focus);outline-offset:1px}.mf-dialog__actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap-reverse}@media (max-width: 480px){.mf-dialog__actions .mf-btn{flex:1 1 100%}}
