:root{--bg-app:#f3f4f6;--bg-card:#fff;--bg-card-soft:#f8fafc;--bg-sidebar:linear-gradient(180deg, #0f172a 0%, #111827 100%);--bg-sidebar-active:#ffffff14;--text-main:#111827;--text-soft:#6b7280;--text-inverse:#fff;--border-color:#e5e7eb;--border-soft:#d1d5db;--primary:#111827;--primary-hover:#1f2937;--secondary:#fff;--secondary-hover:#f9fafb;--danger:#dc2626;--danger-hover:#b91c1c;--accent:#2563eb;--accent-hover:#1d4ed8;--success:#16a34a;--shadow-card:0 12px 32px #0f172a14;--shadow-soft:0 6px 18px #0f172a0f;--shadow-hover:0 16px 36px #0f172a1f;--radius-xl:20px;--radius-lg:16px;--radius-md:12px;--radius-sm:9px;--space-1:8px;--space-2:12px;--space-3:16px;--space-4:20px;--space-5:24px;--space-6:32px}*{box-sizing:border-box}html,body,#root{background:var(--bg-app);min-height:100%;color:var(--text-main);margin:0;padding:0;font-family:Arial,sans-serif}body{background:radial-gradient(circle at top left, #2563eb0d, transparent 30%), radial-gradient(circle at top right, #1118270d, transparent 25%), var(--bg-app)}button,input,select,textarea{font:inherit}.app-shell{background:0 0;width:100%;min-height:100vh;display:flex}.app-main{padding:var(--space-6);flex:1;width:100%;max-width:100%}.page-stack{gap:var(--space-4);flex-direction:column;width:100%;max-width:100%;display:flex}.grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.grid-1{gap:var(--space-4);grid-template-columns:1fr;width:100%;max-width:100%;display:grid}.grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;width:100%;display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);width:100%;display:grid}.card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-card);background:#fffffff0;border:1px solid #ffffff8c;transition:transform .18s,box-shadow .18s}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.card-soft{background:var(--bg-card-soft);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3)}.section-title{margin:0 0 var(--space-3) 0;color:var(--text-main);letter-spacing:-.02em;font-size:20px;font-weight:800}.section-subtitle{color:var(--text-soft);margin:0;font-size:14px}.form-stack{gap:var(--space-2);flex-direction:column;display:flex}.input,.select,.textarea{border-radius:var(--radius-md);border:1px solid var(--border-soft);width:100%;color:var(--text-main);background:#fff;padding:12px 14px;transition:border-color .18s,box-shadow .18s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 4px #2563eb1f}.textarea{resize:vertical;min-height:110px}.btn{border-radius:var(--radius-md);cursor:pointer;border:none;padding:12px 14px;font-weight:600;transition:all .18s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--primary);color:var(--text-inverse)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--secondary);color:var(--text-main);border:1px solid var(--border-soft)}.btn-secondary:hover{background:var(--secondary-hover)}.btn-danger{background:var(--danger);color:var(--text-inverse)}.btn-danger:hover{background:var(--danger-hover)}.btn-accent{background:var(--accent);color:var(--text-inverse)}.btn-accent:hover{background:var(--accent-hover)}.btn-small{border-radius:var(--radius-sm);padding:8px 10px;font-size:13px}.stat-card{border-radius:var(--radius-xl);box-shadow:var(--shadow-card);background:#fffffff5;border:1px solid #ffffff8c;padding:22px;transition:transform .18s,box-shadow .18s}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-label{color:var(--text-soft);margin:0;font-size:14px}.stat-value{color:var(--text-main);letter-spacing:-.03em;margin:10px 0 0;font-size:34px;font-weight:800}.list-stack{gap:var(--space-2);flex-direction:column;display:flex}.timeline-group{gap:var(--space-3);flex-direction:column;max-height:500px;display:flex;overflow-y:auto}.timeline-day{gap:var(--space-3);display:flex}.timeline-date{min-width:90px;padding:var(--space-2) var(--space-2);background:var(--bg-primary);border-radius:var(--radius-md);color:var(--text-secondary);text-align:center;align-self:flex-start;font-size:13px;font-weight:600}.timeline-items{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.timeline-item{gap:var(--space-2);padding:var(--space-2);background:var(--bg-card-soft);border-radius:var(--radius-md);grid-template-columns:70px 100px 1fr 100px 1fr;align-items:center;font-size:13px;display:grid}.timeline-time{color:var(--text-secondary);font-family:monospace}.timeline-action{border-radius:var(--radius-sm);text-transform:uppercase;padding:2px 8px;font-size:11px;font-weight:600}.timeline-action.create{color:#065f46;background:#d1fae5}.timeline-action.update{color:#1e40af;background:#dbeafe}.timeline-action.delete{color:#991b1b;background:#fee2e2}.timeline-action.login{color:#3730a3;background:#e0e7ff}.timeline-action.logout{color:#374151;background:#f3f4f6}.timeline-user{color:var(--text-main);font-weight:600}.timeline-entity{color:var(--text-secondary);font-family:monospace;font-size:12px}.timeline-details{color:var(--text-secondary);font-size:12px}.item-card{border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3);background:var(--bg-card-soft);transition:transform .18s,box-shadow .18s}.item-card:hover{box-shadow:var(--shadow-soft);transform:translateY(-1px)}.actions-row{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.info-text{color:var(--text-soft)}.success-text{color:var(--success)}.error-text{color:#dc143c}.badge{letter-spacing:.01em;border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700;display:inline-block}.badge-neutral{color:#374151;background:#e5e7eb}.badge-success{color:#166534;background:#dcfce7}.badge-danger{color:#991b1b;background:#fee2e2}.sidebar{background:var(--bg-sidebar);width:270px;min-height:100vh;color:var(--text-inverse);border-right:1px solid #ffffff14;flex-direction:column;justify-content:space-between;padding:30px 20px;display:flex}.sidebar-logo{letter-spacing:1px;margin:0;font-size:30px;font-weight:900}.sidebar-subtitle{color:#9ca3af;margin-top:8px;font-size:14px}.sidebar-menu{flex-direction:column;gap:10px;margin-top:32px;display:flex}.sidebar-button{text-align:left;width:100%;color:var(--text-inverse);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;padding:13px 14px;font-size:15px;transition:all .18s}.sidebar-button:hover{background:#ffffff0f;border-color:#ffffff0f}.sidebar-button-active{background:var(--bg-sidebar-active);border:1px solid #ffffff1f;box-shadow:inset 0 0 0 1px #ffffff05}.topbar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);background:#fffffff0;border:1px solid #ffffff8c;padding:20px 24px;display:flex}.topbar-title{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:900}.topbar-subtitle{color:var(--text-soft);margin:6px 0 0;font-size:14px}.topbar-user{text-align:right}.topbar-user strong{font-size:15px}@media (width<=1280px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr 1fr}}@media (width<=980px){.app-shell{flex-direction:column}.sidebar{width:100%;min-height:auto}.app-main{padding:20px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:flex-start}.topbar-user{text-align:left}}@media (width<=640px){.card,.stat-card,.topbar{padding:18px}.sidebar{padding:20px 16px}.sidebar-logo{font-size:26px}.topbar-title{font-size:24px}}.subscription-banner{border-radius:var(--radius-xl);box-shadow:var(--shadow-card);border:1px solid #0000;padding:18px 20px}.subscription-banner h3{margin:0 0 8px;font-size:18px;font-weight:800}.subscription-banner p{margin:6px 0 0}.subscription-banner-trial{color:#1e3a8a;background:#eff6ff;border-color:#bfdbfe}.subscription-banner-active{color:#166534;background:#ecfdf5;border-color:#bbf7d0}.subscription-banner-expired{color:#991b1b;background:#fef2f2;border-color:#fecaca}.subscription-banner-inactive{color:#374151;background:#f3f4f6;border-color:#d1d5db}
