:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--font-medium: 500;--font-semibold: 600;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--color-bg: #f5f5f7;--color-surface: #ffffff;--color-border: #e5e5e7;--color-border-strong: #d2d2d7;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-text-muted: #86868b;--color-primary: #0071e3;--color-primary-hover: #0077ed;--color-primary-muted: rgba(0, 113, 227, .08);--color-success-bg: rgba(48, 209, 88, .1);--color-success-text: #1d7a2e;--color-success-border: rgba(48, 209, 88, .25);--color-warning-bg: rgba(255, 149, 0, .1);--color-warning-text: #b45300;--color-warning-border: rgba(255, 149, 0, .25);--color-danger: #d70015;--color-danger-bg: rgba(215, 0, 21, .08);--color-danger-border: rgba(215, 0, 21, .2);--sidebar-width: 220px;--topbar-height: 56px;--content-max-width: 1200px;--radius-sm: 6px;--radius: 10px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow: 0 2px 8px rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(0, 113, 227, .25)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}.app-layout{display:flex;min-height:100vh}.app-layout__main{flex:1;display:flex;flex-direction:column;min-width:0}.app-layout__content{flex:1;padding:var(--space-6) var(--space-6);max-width:var(--content-max-width);width:100%;margin:0 auto}.route-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);color:var(--color-text-muted);font-size:var(--text-sm)}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column}.sidebar__brand{padding:var(--space-5) var(--space-4);font-weight:var(--font-semibold);font-size:var(--text-base);color:var(--color-text);letter-spacing:-.01em;border-bottom:1px solid var(--color-border)}.sidebar__nav{padding:var(--space-3) 0}.sidebar__link{display:block;padding:var(--space-2) var(--space-4);margin:0 var(--space-2);color:var(--color-text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-sm);transition:background .15s ease,color .15s ease}.sidebar__link:hover{background:var(--color-bg);color:var(--color-text)}.sidebar__link--active{background:var(--color-primary-muted);color:var(--color-primary)}.topbar{height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:flex-end;padding:0 var(--space-6)}.topbar__user{display:flex;align-items:center;gap:var(--space-3)}.topbar__name{color:var(--color-text-secondary);font-size:var(--text-sm)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4)}.page-header__title{margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);letter-spacing:-.02em;color:var(--color-text);line-height:var(--leading-tight)}.page-header__actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.page-title{margin:0 0 var(--space-6);font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--color-text)}.ui-btn,.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--font-medium);font-family:inherit;line-height:var(--leading-snug);border-radius:var(--radius);border:none;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.ui-btn:disabled,.btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn--primary,.btn--primary{background:var(--color-primary);color:#fff}.ui-btn--primary:hover:not(:disabled),.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.ui-btn--secondary,.btn--secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.ui-btn--secondary:hover:not(:disabled),.btn--secondary:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-border-strong)}.ui-btn--ghost,.btn--ghost{background:transparent;color:var(--color-text-secondary)}.ui-btn--ghost:hover:not(:disabled),.btn--ghost:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.ui-btn--sm,.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.ui-btn--block,.btn--block{width:100%}.ui-card,.card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:var(--space-6);box-shadow:var(--shadow-sm)}.ui-table-wrap,.table-wrap{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm)}.ui-table,.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.ui-table th,.ui-table td,.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle}.ui-table th,.table th{background:var(--color-bg);font-weight:var(--font-semibold);font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;line-height:var(--leading-snug)}.ui-table tbody tr:last-child td,.table tbody tr:last-child td{border-bottom:none}.ui-table tbody tr:hover,.table tbody tr:hover{background:#00000005}.table-actions{display:flex;flex-wrap:wrap;gap:var(--space-1)}.table-actions .ui-btn{white-space:nowrap}.ui-input-wrap,.field{margin-bottom:var(--space-4)}.ui-input-label,.field__label{display:block;margin-bottom:var(--space-1);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--color-text)}.ui-input,.field__input{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-base);font-family:inherit;line-height:var(--leading-normal);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);transition:border-color .15s ease,box-shadow .15s ease}.ui-input::placeholder,.field__input::placeholder{color:var(--color-text-muted)}.ui-input:hover:not(:disabled):not(:focus),.field__input:hover:not(:disabled):not(:focus){border-color:var(--color-border-strong)}.ui-input:focus,.field__input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.ui-input-wrap.has-error .ui-input,.field.has-error .field__input{border-color:var(--color-danger)}.ui-input-wrap.has-error .ui-input:focus,.field.has-error .field__input:focus{box-shadow:0 0 0 3px #d7001533}.ui-input-error{margin:var(--space-1) 0 0;font-size:var(--text-xs);color:var(--color-danger)}.checkbox-label{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-sm);color:var(--color-text)}.checkbox-label input{width:1.125rem;height:1.125rem;accent-color:var(--color-primary)}.ui-spinner{width:28px;height:28px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.state-center{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-8) var(--space-6);color:var(--color-text-muted);gap:var(--space-2)}.state-message{margin:0 0 var(--space-1);font-weight:var(--font-medium);font-size:var(--text-base);color:var(--color-text)}.state-desc{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.empty-state,.loading-state,.error-state{text-align:center;padding:var(--space-10) var(--space-6);color:var(--color-text-secondary)}.empty-state__title,.error-state__message{margin:0 0 var(--space-2);font-weight:var(--font-medium);font-size:var(--text-base);color:var(--color-text)}.empty-state__desc{margin:0;font-size:var(--text-sm);color:var(--color-text-muted);max-width:28rem}.loading-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.loading-state span{font-size:var(--text-sm);color:var(--color-text-muted)}.loading-state__spinner,.loading-state .ui-spinner{flex-shrink:0}.error-state .ui-btn,.error-state .btn{margin-top:var(--space-4)}.message{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid transparent}.message--success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.message--error{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.message__dismiss{background:none;border:none;font-size:1.25rem;line-height:1;cursor:pointer;opacity:.7;padding:0 var(--space-1);color:inherit;transition:opacity .15s ease}.message__dismiss:hover{opacity:1}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-6)}.login-page .ui-card{width:100%;max-width:400px;padding:var(--space-8)}.login-card__title{margin:0 0 var(--space-1);font-size:var(--text-2xl);font-weight:var(--font-semibold);text-align:center;letter-spacing:-.02em;color:var(--color-text)}.login-card__subtitle{margin:0 0 var(--space-6);color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center}.login-form__error{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid var(--color-danger-border)}.store-form-card{margin-bottom:var(--space-6)}.store-form-title{margin:0 0 var(--space-4);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.store-form{max-width:420px}.store-form__row{margin-bottom:var(--space-4)}.store-form__error{margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius);font-size:var(--text-sm);border:1px solid var(--color-danger-border)}.store-form__actions{display:flex;gap:var(--space-3);flex-wrap:wrap}.dashboard__welcome{margin-bottom:var(--space-6)}.dashboard__welcome h2{margin:0 0 var(--space-2);font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--color-text)}.dashboard__welcome p{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.dashboard__stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{text-align:center;padding:var(--space-5)}.stat-card__value{display:block;font-size:var(--text-2xl);font-weight:700;color:var(--color-primary);letter-spacing:-.02em;line-height:var(--leading-tight)}.stat-card__label{font-size:var(--text-sm);color:var(--color-text-muted)}.dashboard__status h3{margin:0 0 var(--space-2);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--color-text)}.dashboard__status p{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm)}.page-content{min-height:200px}
