:root{--jp-radius:14px;--jp-shadow:0 1px 2px rgba(16,24,40,.06),0 4px 12px rgba(16,24,40,.06);--jp-shadow-lg:0 8px 30px rgba(16,24,40,.12);--jp-brand:#2563eb;--jp-brand-2:#7c3aed;--jp-sidebar-w:252px}*{box-sizing:border-box}body,html{height:100%}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bs-body-bg);-webkit-font-smoothing:antialiased}[data-bs-theme=light] body{background:#f6f8fb}[data-bs-theme=dark] body{background:#0b1020}[data-bs-theme=dark]{--bs-body-bg:#0b1020;--bs-body-color:#e6e8ef}.jp-gradient-text{background:linear-gradient(90deg,var(--jp-brand),var(--jp-brand-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.jp-brand-bg{background:linear-gradient(135deg,var(--jp-brand),var(--jp-brand-2))}.jp-card{border:1px solid var(--bs-border-color);border-radius:var(--jp-radius);background:var(--bs-body-bg);box-shadow:var(--jp-shadow);transition:transform .15s ease,box-shadow .15s ease}[data-bs-theme=light] .jp-card{background:#fff}[data-bs-theme=dark] .jp-card{background:#131a2e;border-color:#233}.jp-card.jp-hover:hover{transform:translateY(-2px);box-shadow:var(--jp-shadow-lg)}.jp-shell{display:flex;min-height:100vh}.jp-sidebar{width:var(--jp-sidebar-w);flex-shrink:0;border-right:1px solid var(--bs-border-color);background:var(--bs-body-bg);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;transition:margin-left .2s ease}[data-bs-theme=light] .jp-sidebar{background:#fff}[data-bs-theme=dark] .jp-sidebar{background:#0f1626}.jp-main{flex:1 1;min-width:0;display:flex;flex-direction:column}.jp-topbar{height:60px;border-bottom:1px solid var(--bs-border-color);display:flex;align-items:center;gap:12px;padding:0 18px;position:-webkit-sticky;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,var(--bs-body-bg) 80%,transparent)}.jp-content{padding:22px;flex:1 1}.jp-navlink{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--bs-secondary-color);text-decoration:none;font-weight:500;margin:2px 8px;transition:background .12s ease,color .12s ease}.jp-navlink:hover{background:var(--bs-tertiary-bg);color:var(--bs-body-color)}.jp-navlink.active{background:rgba(37,99,235,.12);color:var(--jp-brand)}@media (max-width:991px){.jp-sidebar{position:fixed;z-index:1050;left:0;top:0;box-shadow:var(--jp-shadow-lg)}.jp-sidebar.collapsed{margin-left:calc(-1 * var(--jp-sidebar-w) - 4px)}.jp-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1040}}.jp-skel{background:linear-gradient(90deg,var(--bs-tertiary-bg) 25%,var(--bs-secondary-bg) 37%,var(--bs-tertiary-bg) 63%);background-size:400% 100%;animation:jp-shimmer 1.3s ease infinite;border-radius:8px}@keyframes jp-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.jp-ring{display:inline-grid;place-items:center;border-radius:50%;font-weight:700}.jp-toast-wrap{position:fixed;bottom:20px;right:20px;z-index:1080;display:flex;flex-direction:column;gap:10px}.jp-toast{min-width:280px;padding:12px 14px;border-radius:12px;color:#fff;box-shadow:var(--jp-shadow-lg);animation:jp-slide-in .25s ease}@keyframes jp-slide-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.jp-toast.success{background:#16a34a}.jp-toast.error{background:#dc2626}.jp-toast.info{background:#2563eb}.jp-kanban{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);grid-gap:14px;gap:14px;overflow-x:auto;padding-bottom:8px}.jp-kanban-col{background:var(--bs-tertiary-bg);border-radius:var(--jp-radius);padding:10px}.jp-auth-bg{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 10% -10%,rgba(124,58,237,.18),transparent),radial-gradient(1000px 500px at 110% 10%,rgba(37,99,235,.18),transparent)}.jp-dropzone{border:2px dashed var(--bs-border-color);border-radius:var(--jp-radius);padding:36px;text-align:center;transition:border-color .15s,background .15s;cursor:pointer}.jp-dropzone.drag{border-color:var(--jp-brand);background:rgba(37,99,235,.06)}.jp-fade-in{animation:jp-fade .3s ease}@keyframes jp-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.jp-clamp-2{-webkit-line-clamp:2}.jp-clamp-2,.jp-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.jp-clamp-3{-webkit-line-clamp:3}