:root{color:#111827;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f7ff;font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{color:#111827;background:linear-gradient(135deg,#eef4ff 0%,#f8fbff 45%,#eef7ff 100%);min-height:100vh}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{background:linear-gradient(135deg,#eff4fff2,#f9fbfff2);min-height:100vh;display:flex}.app-sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffd1;border-right:1px solid #94a3b82e;flex-shrink:0;width:270px;transition:transform .25s}.app-main{flex-direction:column;flex:1;display:flex}.content-area{flex:1;padding:20px 24px 28px;overflow:auto}.page-shell{animation:.35s both fadeUp}.page-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;border:1px solid #e2e8f0e6;border-radius:24px;box-shadow:0 20px 50px #0f172a14}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-title{color:#0f172a;margin:0;font-size:1.05rem;font-weight:700}.section-subtitle{color:#64748b;margin-top:4px;font-size:.92rem}.primary-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);border:none;border-radius:999px;padding:10px 16px;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 24px #2563eb38}.primary-btn:hover{transform:translateY(-1px);box-shadow:0 14px 28px #2563eb47}.ghost-btn{color:#334155;cursor:pointer;background:#ffffffbf;border:1px solid #94a3b859;border-radius:999px;padding:9px 14px;transition:background .2s,transform .2s}.ghost-btn:hover{background:#f8fafcf2;transform:translateY(-1px)}.chip{color:#1d4ed8;background:#2563eb14;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.tag{border-radius:999px;align-items:center;padding:4px 9px;font-size:.74rem;font-weight:600;display:inline-flex}.tag-blue{color:#1d4ed8;background:#2563eb1f}.tag-green{color:#15803d;background:#16a34a1f}.tag-orange{color:#c2410c;background:#f9731624}.tag-gray{color:#475569;background:#94a3b829}.text-ellipsis{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.auth-shell{background:radial-gradient(circle at 0 0,#2563eb2e,#0000 30%),linear-gradient(135deg,#eef4ff,#f8fbff);place-items:center;min-height:100vh;padding:24px;display:grid}.loading-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:28px 34px;display:flex;box-shadow:0 18px 48px #0f172a14}.spinner{border:3px solid #2563eb29;border-top-color:#2563eb;border-radius:50%;width:42px;height:42px;animation:.8s linear infinite spin}.loading-shell{flex-direction:column;gap:12px;padding:16px 0;display:flex}.loading-bar{background:linear-gradient(90deg,#e2e8f0e6,#f8fafcf2);border-radius:999px;height:12px;animation:1.2s ease-in-out infinite pulse}.mobile-menu-btn{color:#1d4ed8;cursor:pointer;background:#2563eb1a;border:none;border-radius:999px;width:42px;height:42px;font-size:1.15rem;display:none}.mobile-overlay{z-index:1000;background:#0f172a73;position:fixed;inset:0}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}@media (width<=900px){.app-shell{flex-direction:column}.app-sidebar{z-index:1100;border-bottom:none;border-right:1px solid #94a3b82e;width:min(84vw,300px);position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:0 20px 60px #0f172a29}.app-sidebar.mobile-open{transform:translate(0)}.mobile-menu-btn{justify-content:center;align-items:center;display:inline-flex}.content-area{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.page-card{border-radius:18px}.primary-btn,.ghost-btn{justify-content:center;width:100%}}@media (width<=700px){.content-area{padding:12px}.section-title{font-size:.98rem}}
