@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #0f172a;--bg-surface: #1e293b;--bg-elevated: #243147;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--accent: #6366f1;--accent-hover: #4f46e5;--accent-soft: rgba(99, 102, 241, .15);--success: #10b981;--success-soft: rgba(16, 185, 129, .12);--warning: #f59e0b;--warning-soft: rgba(245, 158, 11, .12);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .12);--border: #334155;--border-light: #1e293b;--radius: 12px;--radius-sm: 8px;--radius-lg: 16px;--shadow: 0 4px 24px rgba(0, 0, 0, .4);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--transition: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3,h4{font-weight:600;line-height:1.3}h1{font-size:clamp(1.5rem,4vw,2.25rem)}h2{font-size:clamp(1.25rem,3vw,1.75rem)}h3{font-size:1.125rem}p{color:var(--text-secondary);font-weight:400}a{color:var(--accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);border:none;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:all var(--transition);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);transform:translateY(-1px);box-shadow:0 4px 12px #6366f166}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface);border-color:var(--accent)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text-primary)}.btn-sm{padding:6px 14px;font-size:.8125rem}.btn-lg{padding:14px 28px;font-size:1rem}.btn-full{width:100%;justify-content:center}.btn-icon{padding:8px;border-radius:var(--radius-sm)}.form-group{display:flex;flex-direction:column;gap:6px}label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}input[type=text],input[type=email],input[type=password],textarea,select{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:inherit;font-size:.9375rem;padding:10px 14px;width:100%;transition:border-color var(--transition),box-shadow var(--transition);outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}input::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:100px}select option{background:var(--bg-surface)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.card-sm{padding:16px}.card-lg{padding:32px}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.875rem;font-weight:400;border:1px solid}.alert-error{background:var(--danger-soft);border-color:var(--danger);color:#fca5a5}.alert-success{background:var(--success-soft);border-color:var(--success);color:#6ee7b7}.alert-warning{background:var(--warning-soft);border-color:var(--warning);color:#fcd34d}.alert-info{background:var(--accent-soft);border-color:var(--accent);color:#a5b4fc}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:500}.badge-accent{background:var(--accent-soft);color:var(--accent)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:24px 16px;position:fixed;top:0;left:0;bottom:0;z-index:100;overflow-y:auto}.main-content{flex:1;margin-left:240px;padding:32px;max-width:100%;overflow-x:hidden}.page-header{margin-bottom:32px}.page-header h1{margin-bottom:4px}.page-header p{color:var(--text-secondary);font-size:.9375rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.divider{height:1px;background:var(--border);margin:24px 0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}.output-box{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;font-size:.9375rem;color:var(--text-primary);white-space:pre-wrap;line-height:1.7;min-height:120px}.copy-area{position:relative}.copy-btn{position:absolute;top:8px;right:8px}.chip-group{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:4px 12px;border-radius:999px;font-size:.8125rem;font-weight:500;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip:hover{border-color:var(--accent);color:var(--text-primary)}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all var(--transition);text-decoration:none}.nav-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;display:flex;align-items:center;gap:16px}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-value{font-size:1.75rem;font-weight:700;line-height:1}.stat-label{font-size:.8125rem;color:var(--text-muted);margin-top:2px}.mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--bg-surface);border-top:1px solid var(--border);padding:8px 0 env(safe-area-inset-bottom);z-index:100}.mobile-nav .nav-row{display:flex;justify-content:space-around}.mobile-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-muted);font-size:.6875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all var(--transition)}.mobile-nav-item.active{color:var(--accent)}.mobile-nav-item:hover{color:var(--text-primary)}.hamburger-btn{display:none;position:fixed;top:16px;left:16px;z-index:200;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;cursor:pointer;color:var(--text-primary)}@media(max-width:768px){.sidebar{display:none}.main-content{margin-left:0;padding:16px 16px 80px}.mobile-nav{display:block}.grid-2,.grid-3{grid-template-columns:1fr}.page-header{margin-bottom:20px}.card{padding:16px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.calendar-item-dot{width:6px;height:6px;border-radius:50%}.calendar-day-cell:hover{background:var(--bg-elevated)!important;transform:translateY(-2px);box-shadow:var(--shadow-sm)}
