.base-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:inherit;font-weight:500;border:none;border-radius:.75rem;cursor:pointer;transition:all .15s ease;position:relative;white-space:nowrap;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.base-btn:active:not(:disabled){transform:scale(.97)}.base-btn:disabled{opacity:.5;cursor:not-allowed}.base-btn--sm{padding:.5rem 1rem;font-size:.8125rem;min-height:2rem}.base-btn--md{padding:.625rem 1.25rem;font-size:.875rem;min-height:2.5rem}.base-btn--lg{padding:.75rem 1.5rem;font-size:1rem;min-height:3rem}.base-btn--primary{background:var(--color-primary, #1a1a2e);color:#fff}.base-btn--primary:hover:not(:disabled){background:var(--color-primary-hover, #2d2d44)}.base-btn--secondary{background:var(--color-surface-elevated, #f5f5f0);color:var(--color-text, #1a1a2e);border:1px solid var(--color-border, #e5e5dd)}.base-btn--secondary:hover:not(:disabled){background:var(--color-surface-hover, #eeeee8)}.base-btn--danger{background:#dc3545;color:#fff}.base-btn--danger:hover:not(:disabled){background:#c82333}.base-btn--success{background:#198754;color:#fff}.base-btn--success:hover:not(:disabled){background:#157347}.base-btn--ghost{background:transparent;color:var(--color-text-secondary, #6b6b6b)}.base-btn--ghost:hover:not(:disabled){background:var(--color-surface-elevated, #f5f5f0)}.base-btn--block{width:100%}.base-btn--icon{padding:.5rem;min-width:unset}.base-btn--icon.base-btn--sm{width:2rem;height:2rem}.base-btn--icon.base-btn--md{width:2.5rem;height:2.5rem}.base-btn--icon.base-btn--lg{width:3rem;height:3rem}.base-btn__spinner{position:absolute;width:1.125rem;height:1.125rem;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .6s linear infinite}.base-btn__content--hidden{visibility:hidden}@keyframes btn-spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:#00000073;padding:1rem}@media (min-width: 640px){.modal-overlay{align-items:center}}.modal-container{background:var(--color-surface, #fff);border-radius:1.25rem 1.25rem 0 0;width:100%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -4px 32px #0000001f}@media (min-width: 640px){.modal-container{border-radius:1.25rem;box-shadow:0 8px 32px #0000001f}}.modal-container--sm{max-width:24rem}.modal-container--md{max-width:32rem}.modal-container--lg{max-width:48rem}.modal-container--full{max-width:100%;max-height:100vh;border-radius:0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 0;gap:1rem}.modal-title{font-size:1.125rem;font-weight:600;color:var(--color-text, #1a1a2e);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:transparent;border-radius:.5rem;color:var(--color-text-secondary, #6b6b6b);cursor:pointer;transition:background .15s;flex-shrink:0}.modal-close:hover{background:var(--color-surface-elevated, #f5f5f0)}.modal-body{padding:1.25rem 1.5rem;overflow-y:auto;flex:1}.modal-footer{padding:1rem 1.5rem 1.25rem;display:flex;gap:.75rem;justify-content:flex-end;border-top:1px solid var(--color-border, #e5e5dd)}.modal-enter-active,.modal-leave-active{transition:opacity .2s ease}.modal-enter-active .modal-container,.modal-leave-active .modal-container{transition:transform .2s ease}.modal-enter-from,.modal-leave-to{opacity:0}.modal-enter-from .modal-container,.modal-leave-to .modal-container{transform:translateY(2rem)}.input-group{display:flex;flex-direction:column;gap:.375rem}.input-label{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary, #6b6b6b)}.input-required{color:#dc3545;margin-left:.125rem}.input-wrapper{display:flex;align-items:center;background:var(--color-surface, #fff);border:1.5px solid var(--color-border, #e5e5dd);border-radius:.75rem;overflow:hidden;transition:border-color .15s}.input-wrapper:focus-within{border-color:var(--color-primary, #1a1a2e)}.input-group--error .input-wrapper{border-color:#dc3545}.input-group--disabled .input-wrapper{opacity:.6;background:var(--color-surface-elevated, #f5f5f0)}.input-field{flex:1;border:none;outline:none;padding:.75rem 1rem;font-size:.9375rem;font-family:inherit;color:var(--color-text, #1a1a2e);background:transparent;width:100%}.input-field::placeholder{color:var(--color-text-tertiary, #999)}.input-field--textarea{resize:vertical;min-height:4rem;line-height:1.5}.input-meta{display:flex;justify-content:space-between;min-height:1.125rem}.input-error{font-size:.75rem;color:#dc3545}.input-count{font-size:.75rem;color:var(--color-text-tertiary, #999);margin-left:auto}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem}.spinner-wrapper--overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#ffffffd9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.spinner--sm .spinner__svg{width:1.25rem;height:1.25rem}.spinner--md .spinner__svg{width:2rem;height:2rem}.spinner--lg .spinner__svg{width:3rem;height:3rem}.spinner__svg{animation:spin .8s linear infinite}.spinner__track{stroke:var(--color-border, #e5e5dd)}.spinner__fill{stroke:var(--color-primary, #1a1a2e);stroke-dasharray:80;stroke-dashoffset:60}.spinner-label{font-size:.875rem;color:var(--color-text-secondary, #6b6b6b)}@keyframes spin{to{transform:rotate(360deg)}}.toast-stack{position:fixed;top:1rem;right:1rem;left:1rem;z-index:2000;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}@media (min-width: 640px){.toast-stack{left:auto;width:22rem}}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:.875rem;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e5e5dd);box-shadow:0 4px 16px #0000001a;cursor:pointer;pointer-events:auto}.toast--success{border-left:3px solid #198754}.toast--error{border-left:3px solid #dc3545}.toast--warning{border-left:3px solid #e69500}.toast--info{border-left:3px solid #0d6efd}.toast__icon{flex-shrink:0;margin-top:.0625rem}.toast--success .toast__icon{color:#198754}.toast--error .toast__icon{color:#dc3545}.toast--warning .toast__icon{color:#e69500}.toast--info .toast__icon{color:#0d6efd}.toast__content{flex:1;min-width:0}.toast__title{font-size:.8125rem;font-weight:600;color:var(--color-text, #1a1a2e);margin:0 0 .125rem}.toast__message{font-size:.8125rem;color:var(--color-text-secondary, #6b6b6b);margin:0;line-height:1.4}.toast-enter-active{transition:all .25s ease-out}.toast-leave-active{transition:all .2s ease-in}.toast-enter-from{opacity:0;transform:translate(1rem)}.toast-leave-to{opacity:0;transform:translate(2rem)}.toast-move{transition:transform .25s ease}.badge{display:inline-flex;align-items:center;font-weight:600;border-radius:2rem;white-space:nowrap;letter-spacing:.01em}.badge--sm{padding:.125rem .5rem;font-size:.6875rem}.badge--md{padding:.25rem .75rem;font-size:.75rem}.badge--lg{padding:.375rem 1rem;font-size:.8125rem}.badge--warning{background:#fff3cd;color:#856404}.badge--info{background:#cce5ff;color:#004085}.badge--success{background:#d4edda;color:#155724}.badge--error{background:#f8d7da;color:#721c24}.badge--neutral{background:var(--color-surface-elevated, #f5f5f0);color:var(--color-text-secondary, #6b6b6b)}:root{--color-primary: #1a1a2e;--color-primary-hover: #2d2d44;--color-primary-light: #e8e8f0;--color-bg: #fafaf7;--color-surface: #ffffff;--color-surface-elevated: #f5f5f0;--color-surface-hover: #eeeee8;--color-text: #1a1a2e;--color-text-secondary: #6b6b6b;--color-text-tertiary: #999999;--color-border: #e5e5dd;--color-border-hover: #ccc;--color-border-light: #f0f0ea;--color-success: #198754;--color-warning: #e69500;--color-danger: #dc3545;--color-info: #0d6efd;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-xl: 1.25rem;--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:16px;line-height:1.5;color:var(--color-text);background:var(--color-bg);min-height:100dvh;overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.page-enter-active,.page-leave-active{transition:opacity .15s ease}.page-enter-from,.page-leave-to{opacity:0}
