:root{--bg: #FAFAFA;--card: #FFFFFF;--accent: #2563EB;--accent-hover: #1D4ED8;--danger: #DC2626;--danger-hover: #B91C1C;--success: #16A34A;--warning: #D97706;--text: #1F2937;--text-muted: #6B7280;--border: #E5E7EB;--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit;font-size:inherit}input,textarea,select{font-family:inherit;font-size:inherit}a{color:var(--accent);text-decoration:none}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--card);border-bottom:1px solid var(--border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}.app-header__logo{font-size:18px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px}.app-header__right{display:flex;align-items:center;gap:16px}.app-header__user{font-size:14px;color:var(--text-muted)}.app-header__nav-link{font-size:14px;color:var(--text-muted);background:none;border:none;padding:6px 12px;border-radius:var(--radius);transition:background .15s}.app-header__nav-link:hover{background:var(--bg);color:var(--text)}.app-header__nav-link--active{color:var(--accent);font-weight:500}.app-content{flex:1;padding:24px;max-width:1200px;width:100%;margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border:none;border-radius:var(--radius);font-size:14px;font-weight:500;transition:all .15s;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn--secondary:hover:not(:disabled){background:var(--bg)}.btn--danger{background:var(--danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--ghost{background:transparent;color:var(--text-muted);padding:8px 12px}.btn--ghost:hover:not(:disabled){background:var(--bg);color:var(--text)}.btn--large{padding:14px 28px;font-size:16px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:500;margin-bottom:6px;color:var(--text)}.form-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:var(--card);color:var(--text);transition:border-color .15s}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}.form-input::placeholder{color:var(--text-muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.toast-container{position:fixed;top:72px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius);font-size:14px;color:#fff;box-shadow:0 4px 12px #00000026;animation:toast-in .3s ease;max-width:400px}.toast--success{background:var(--success)}.toast--error{background:var(--danger)}.toast--info{background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fade-in .15s ease}.modal{background:var(--card);border-radius:12px;padding:24px;max-width:420px;width:90%;box-shadow:0 20px 60px #0003}.modal__title{font-size:18px;font-weight:600;margin-bottom:12px}.modal__body{font-size:14px;color:var(--text-muted);margin-bottom:24px;line-height:1.6}.modal__actions{display:flex;gap:12px;justify-content:flex-end}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state__icon{font-size:48px;margin-bottom:16px}.empty-state__text{font-size:16px;max-width:400px;margin:0 auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-title{font-size:24px;font-weight:600}@media(max-width:768px){.app-content{padding:16px}.app-header{padding:0 16px}.page-title{font-size:20px}}
