:root{--sh-primary:#4f46e5;--sh-primary-dark:#3730a3;--sh-secondary:#0ea5e9;--sh-accent:#10b981;--sh-danger:#ef4444;--sh-warning:#f59e0b;--sh-bg:#f8fafc;--sh-sidebar-width:260px;--sh-card-bg:#fff;--sh-text:#0f172a;--sh-muted:#334155;--sh-border:#e2e8f0;--sh-topbar-bg:linear-gradient(120deg,hsla(0,0%,100%,.95),rgba(248,250,252,.96))}:root[data-theme=dark]{--sh-bg:#0b1220;--sh-card-bg:#111827;--sh-text:#f8fafc;--sh-muted:#cbd5e1;--sh-border:#1f2937;--sh-topbar-bg:linear-gradient(120deg,rgba(17,24,39,.94),rgba(15,23,42,.94))}*,:after,:before{box-sizing:border-box}.btn-primary{background-color:var(--sh-primary)!important;border-color:var(--sh-primary)!important}.btn-primary:hover{background-color:var(--sh-primary-dark)!important;border-color:var(--sh-primary-dark)!important}.text-primary{color:var(--sh-primary)!important}.bg-primary{background-color:var(--sh-primary)!important}.border-primary{border-color:var(--sh-primary)!important}body,html{min-height:100%}body{background-color:var(--sh-bg);color:var(--sh-text);text-size-adjust:100%;overflow-x:hidden}.text-muted,.text-secondary{color:var(--sh-muted)!important;font-weight:500}.app-sidebar{width:var(--sh-sidebar-width);height:100vh;background:var(--sh-card-bg);border-right:1px solid var(--sh-border);position:fixed;top:0;left:0;z-index:100;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;scrollbar-width:thin;scrollbar-color:var(--sh-border) transparent}.app-sidebar::-webkit-scrollbar{width:4px}.app-sidebar::-webkit-scrollbar-track{background:transparent}.app-sidebar::-webkit-scrollbar-thumb{background:var(--sh-border);border-radius:99px}.app-sidebar::-webkit-scrollbar-thumb:hover{background:var(--sh-muted)}.desktop-nav{display:flex;flex-direction:column}.mobile-bottom-nav{display:none}@media (min-width:769px){.app-sidebar{display:flex!important}.mobile-bottom-nav{display:none!important}}@media (max-width:768px){.app-sidebar{display:none!important}.mobile-bottom-nav{display:block!important}.app-main{margin-left:0!important}}.app-sidebar .brand-text,.app-sidebar .user-meta .fw-semibold{color:var(--sh-text)}.app-sidebar .text-muted{color:var(--sh-muted)!important}.app-main{margin-left:var(--sh-sidebar-width);min-height:100vh;padding:0;overflow-x:hidden}.page-transition{animation:pageSlideInRight .26s cubic-bezier(.22,1,.36,1)}@keyframes pageSlideInRight{0%{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}@keyframes progressShimmer{0%{width:0;opacity:.7}50%{width:100%;opacity:1}to{width:0;opacity:.7}}.fv-content-section{animation:fadeInUp .4s ease-out forwards}@media (prefers-reduced-motion:reduce){.page-transition{animation:none}}.topbar-modern{background:var(--sh-topbar-bg);border-bottom:1px solid var(--sh-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:calc(12px + env(safe-area-inset-top, 0px)) 16px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:101;min-width:0}.topbar-left{min-width:180px;flex-shrink:0}.topbar-caption{font-size:11px;color:var(--sh-muted);letter-spacing:.02em}.topbar-title{color:var(--sh-text)}.topbar-center{flex:1 1 auto;min-width:0;max-width:520px;display:flex;flex-direction:column;gap:8px}.topbar-search-layer{position:relative}.topbar-search-wrap{background:var(--sh-card-bg);border:1px solid var(--sh-border);border-radius:12px;display:flex;align-items:center;padding:0 10px;height:38px;min-width:0;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.topbar-search-icon{color:#94a3b8;font-size:14px}.topbar-search-wrap:focus-within{border-color:rgba(79,70,229,.55);box-shadow:0 8px 24px rgba(79,70,229,.1)}.topbar-search-input{border:0;outline:none;width:100%;padding:8px;font-size:12px;background:transparent;color:var(--sh-text);flex:1 1;min-width:0}.topbar-search-input::placeholder{color:#94a3b8;opacity:1}.topbar-suggestion-list{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--sh-card-bg);border:1px solid var(--sh-border);border-radius:12px;box-shadow:0 10px 24px rgba(15,23,42,.1);max-height:min(50vh,280px);overflow-y:auto;overflow-x:hidden;z-index:200}.topbar-suggestion-item{width:100%;border:0;background:var(--sh-card-bg);text-align:left;padding:10px 12px;border-bottom:1px solid #f1f5f9;cursor:pointer}.topbar-suggestion-item:last-child{border-bottom:0}.topbar-suggestion-item:hover{background:#f8faff}.topbar-suggestion-title{font-size:12.5px;color:var(--sh-text);font-weight:600}.topbar-suggestion-desc{font-size:11px;color:var(--sh-muted)}.topbar-filters{display:flex;gap:8px;flex-wrap:wrap}.topbar-filter-select{border:1px solid #dbeafe;background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:5px 10px;font-size:12px;min-width:150px}.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;min-width:0}.topbar-date{font-size:11px;color:#64748b;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:4px 10px}.topbar-action-btn{border:1px solid #dbeafe!important;background:#eff6ff!important;color:#1d4ed8!important}.topbar-icon-btn{border:1px solid var(--sh-border)!important;background:var(--sh-card-bg)!important;color:var(--sh-text)!important}.topbar-avatar{width:34px;height:34px;border-radius:50%;border:1px solid var(--sh-border);display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--sh-text);background:var(--sh-card-bg);font-size:18px}@media (max-width:1024px){:root{--sh-sidebar-width:88px}.app-sidebar{transform:none}.app-main{margin-left:var(--sh-sidebar-width)}.app-sidebar .brand-text,.app-sidebar .logout-label,.app-sidebar .nav-label,.app-sidebar .user-meta{display:none!important}.app-sidebar .sidebar-nav .nav-link{justify-content:center;padding:11px 10px}.app-sidebar .sidebar-nav .nav-link i{margin:0;width:auto;font-size:18px}.topbar-modern{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title actions" "search search";align-items:center;grid-column-gap:10px;column-gap:10px;grid-row-gap:10px;row-gap:10px;padding:10px 12px}.topbar-left{grid-area:title;width:auto;min-width:0;max-width:100%}.topbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-center{grid-area:search;width:100%;max-width:none;min-width:0}.topbar-right{grid-area:actions;width:auto;justify-content:flex-end;flex-wrap:nowrap;gap:6px}.topbar-filter-select{min-width:130px;font-size:11px;padding:4px 8px}.topbar-filters{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;padding-bottom:2px}.topbar-date{display:none!important}}@media (max-width:768px){.app-main{margin-left:0!important;min-height:100dvh;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.app-main>main{padding:12px!important}.topbar-modern{margin:6px 10px 4px;border-radius:18px;border:1px solid var(--sh-border);background:color-mix(in srgb,var(--sh-card-bg) 94%,transparent);box-shadow:0 10px 30px rgba(15,23,42,.06)}.topbar-left{padding-right:4px}.topbar-caption{display:none}.topbar-title{font-size:15px;font-weight:600}.topbar-search-wrap{height:36px;border-radius:999px}.topbar-right{gap:6px}.topbar-right .btn{border-radius:999px;padding-inline:10px;min-width:0;display:inline-flex;align-items:center;justify-content:center}.topbar-right .btn .bi{font-size:16px}.topbar-right .topbar-btn-text-full{display:none}.topbar-avatar{border-width:0;background:color-mix(in srgb,var(--sh-card-bg) 90%,#e5e7eb 10%)}.app-main{padding:6px 8px calc(6px + env(safe-area-inset-bottom))!important;overflow:visible!important}.desktop-nav{display:none!important}}.mobile-bottom-nav{position:fixed;left:0;right:0;top:auto;bottom:0;width:100%;z-index:1040;padding:6px 8px calc(6px + env(safe-area-inset-bottom));overflow:visible;background:transparent}.mobile-bottom-nav:before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--sh-card-bg) 97%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--sh-border);box-shadow:0 -8px 24px rgba(15,23,42,.08);z-index:-1}.mobile-bottom-nav .mobile-nav-row{width:100%;display:flex;align-items:center;justify-content:space-around;padding:4px 6px 2px;gap:2px}.mobile-bottom-nav .nav-link{display:flex!important;flex-direction:column!important;align-items:center;justify-content:center;gap:2px!important;padding:4px 8px;min-width:52px;flex:1 1;border-radius:12px;transition:background .15s}.mobile-bottom-nav .nav-link:hover{background:var(--sh-hover)}.mobile-bottom-nav .nav-link i{font-size:20px;line-height:1}.mobile-bottom-nav .nav-label{display:block!important;font-size:9px;font-weight:600;max-width:100%;text-align:center;line-height:1.1}.mobile-fab-btn{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--sh-primary),#8b5cf6);color:#fff;border:none;font-size:20px;box-shadow:0 4px 16px rgba(79,70,229,.35);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .2s,transform .2s}.mobile-fab-btn.open{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 16px rgba(239,68,68,.35);transform:rotate(45deg)}.radial-menu,.radial-menu-item,.radial-menu-label,.radial-overlay{display:none}@media (display-mode:standalone){.mobile-bottom-nav{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.app-main{padding-bottom:calc(90px + env(safe-area-inset-bottom))!important}}@supports (-webkit-touch-callout:none){@media (display-mode:standalone){.mobile-bottom-nav{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}}@media (max-width:400px){.topbar-right .btn .bi.me-1{margin-right:0!important}}.card{border:1px solid var(--sh-border)!important;border-radius:12px!important;background-color:var(--sh-card-bg)!important;color:var(--sh-text)!important;box-shadow:0 1px 3px rgba(0,0,0,.05)!important}.card:hover{box-shadow:0 4px 12px rgba(0,0,0,.08)!important}.card .card-body,.card .card-footer,.card .card-header{background-color:transparent!important;color:inherit;border-color:var(--sh-border)!important}.form-control,.form-select,.modal-content{background-color:var(--sh-card-bg)!important;color:var(--sh-text)!important;border-color:var(--sh-border)!important}.form-control::placeholder{color:var(--sh-muted)!important}.sidebar-nav .nav-link{color:var(--sh-muted);border-radius:8px;padding:10px 14px;margin:2px 0;font-size:14px;transition:all .15s}:root[data-theme=dark] .sidebar-nav .nav-link.active,:root[data-theme=dark] .sidebar-nav .nav-link:hover{background-color:#1e293b;color:#c7d2fe}:root[data-theme=dark] .app-sidebar .brand-text{color:#f8fafc}:root[data-theme=dark] .app-sidebar .user-meta .fw-semibold{color:#e2e8f0}:root[data-theme=dark] .app-sidebar .text-muted{color:#94a3b8!important}:root[data-theme=dark] .app-sidebar .border-top{border-color:#334155!important}:root[data-theme=dark] .topbar-date{background:#1e293b;color:#cbd5e1;border-color:#334155}:root[data-theme=dark] .topbar-action-btn{background:#1e293b!important;border-color:#334155!important;color:#c7d2fe!important}:root[data-theme=dark] .topbar-suggestion-item:hover{background:#1f2937}:root[data-theme=dark] .topbar-search-wrap:focus-within{box-shadow:0 8px 24px rgba(99,102,241,.2)}@media (max-width:768px){:root[data-theme=dark] .topbar-modern{box-shadow:0 10px 30px rgba(2,6,23,.45)}:root[data-theme=dark] .app-sidebar:before{box-shadow:0 -10px 30px rgba(2,6,23,.48);background:color-mix(in srgb,#111827 94%,transparent)}:root[data-theme=dark] .app-sidebar{box-shadow:none!important;background:transparent!important}:root[data-theme=dark] .app-sidebar .sidebar-nav .nav-link{color:#cbd5e1}:root[data-theme=dark] .app-sidebar .sidebar-nav .nav-link.active,:root[data-theme=dark] .app-sidebar .sidebar-nav .nav-link:hover{background:#312e81;color:#e0e7ff}}.sidebar-nav .nav-link.active,.sidebar-nav .nav-link:hover{background-color:#ede9fe;color:var(--sh-primary)}.sidebar-nav .nav-link i{width:20px;font-size:16px}.badge-HIGH{background-color:#fee2e2;color:#dc2626}.badge-MEDIUM{background-color:#fef3c7;color:#d97706}.badge-LOW{background-color:#d1fae5;color:#059669}.badge-TODO{background-color:#f1f5f9;color:#64748b}.badge-IN_PROGRESS{background-color:#dbeafe;color:#2563eb}.badge-DONE{background-color:#d1fae5;color:#059669}.timer-circle{width:200px;height:200px;border-radius:50%;border:6px solid var(--sh-primary);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto;background:#ede9fe}.streak-badge{background:linear-gradient(135deg,#f59e0b,#ef4444);color:#fff;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}.chat-bg{background:linear-gradient(-45deg,#eef2ff,#f8fafc,#e0e7ff,#f1f5f9);background-size:400% 400%;animation:gradientMove 15s ease infinite}@keyframes gradientMove{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.chat-bubble-user{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:18px 18px 6px 18px;box-shadow:0 6px 18px rgba(99,102,241,.25)}.chat-bubble-ai{background:hsla(0,0%,100%,.75);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:18px 18px 18px 6px;box-shadow:0 6px 16px rgba(0,0,0,.06)}.ai-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:50%;margin-right:8px}.chat-input-modern{border-radius:14px 0 0 14px;border:1px solid #e5e7eb;padding:10px;resize:none;transition:all .25s ease;background:hsla(0,0%,100%,.8)}.chat-input-modern:focus{border-color:#6366f1;box-shadow:0 0 0 4px rgba(99,102,241,.15);transform:scale(1.01);outline:none}.chat-btn-modern{border-radius:0 14px 14px 0;width:56px;border:none;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);position:relative;overflow:hidden;transition:all .25s ease}.chat-btn-modern:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent,hsla(0,0%,100%,.5),transparent);transform:translateX(-100%)}.chat-btn-modern:hover:before{transform:translateX(100%);transition:.6s}.chat-btn-modern:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(99,102,241,.45)}.chat-btn-modern:active{transform:scale(.96)}.chat-btn-modern:disabled{background:#d1d5db;cursor:not-allowed}.typing span{display:inline-block;width:6px;height:6px;margin:0 2px;background:#999;border-radius:50%;animation:bounce 1s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}:root[data-theme=dark] .bg-white{background-color:var(--sh-card-bg)!important}:root[data-theme=dark] .bg-light{background-color:#1e293b!important}:root[data-theme=dark] .text-dark{color:var(--sh-text)!important}:root[data-theme=dark] .btn-light{background-color:#1e293b!important;border-color:#334155!important;color:var(--sh-text)!important}:root[data-theme=dark] .btn-light:focus,:root[data-theme=dark] .btn-light:hover{background-color:#273549!important;border-color:#3f536b!important}:root[data-theme=dark] .dropdown-item:focus,:root[data-theme=dark] .dropdown-item:hover{background-color:#1f2937!important;color:var(--sh-text)!important}:root[data-theme=dark] .list-group-item{background-color:var(--sh-card-bg);color:var(--sh-text);border-color:var(--sh-border)}:root[data-theme=dark] .list-group-item-action:hover{background-color:#1e293b!important}:root[data-theme=dark] .alert-primary{background-color:rgba(79,70,229,.15)!important;color:#c7d2fe!important;border-color:rgba(79,70,229,.35)!important}:root[data-theme=dark] .alert-info{background-color:rgba(14,165,233,.15)!important;color:#7dd3fc!important;border-color:rgba(14,165,233,.35)!important}:root[data-theme=dark] .alert-success{background-color:rgba(16,185,129,.15)!important;color:#6ee7b7!important;border-color:rgba(16,185,129,.35)!important}:root[data-theme=dark] .alert-danger{background-color:rgba(239,68,68,.15)!important;color:#fca5a5!important;border-color:rgba(239,68,68,.35)!important}:root[data-theme=dark] .alert-warning{background-color:rgba(245,158,11,.15)!important;color:#fcd34d!important;border-color:rgba(245,158,11,.35)!important}:root[data-theme=dark] .badge-HIGH{background-color:rgba(239,68,68,.18);color:#fca5a5}:root[data-theme=dark] .badge-MEDIUM{background-color:rgba(245,158,11,.18);color:#fcd34d}:root[data-theme=dark] .badge-LOW{background-color:rgba(16,185,129,.18);color:#6ee7b7}:root[data-theme=dark] .badge-TODO{background-color:rgba(100,116,139,.18);color:#94a3b8}:root[data-theme=dark] .badge-IN_PROGRESS{background-color:rgba(59,130,246,.18);color:#93c5fd}:root[data-theme=dark] .badge-DONE{background-color:rgba(16,185,129,.18);color:#6ee7b7}:root[data-theme=dark] .nav-link:not(.active){color:var(--sh-muted)!important}:root[data-theme=dark] .timer-circle{background:rgba(79,70,229,.12)}:root[data-theme=dark] .chat-bg{background:linear-gradient(-45deg,#1e293b,#0b1220,#1a1f35,#111827)!important}:root[data-theme=dark] .chat-bubble-ai{background:rgba(30,41,59,.92);color:var(--sh-text)}:root[data-theme=dark] .chat-input-modern{background:rgba(17,24,39,.9);color:var(--sh-text);border-color:var(--sh-border)}:root[data-theme=dark] .chat-input-modern:focus{border-color:#6366f1}:root[data-theme=dark] .topbar-filter-select{background:#1e293b;color:#93c5fd;border-color:#334155}:root[data-theme=dark] .topbar-suggestion-item{border-bottom-color:var(--sh-border)}:root[data-theme=dark] .border{border-color:var(--sh-border)!important}:root[data-theme=dark] .border-bottom{border-bottom-color:var(--sh-border)!important}:root[data-theme=dark] .border-top{border-top-color:var(--sh-border)!important}@keyframes fadeInUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulseGlow{0%,to{box-shadow:0 0 0 0 rgba(79,70,229,.3)}50%{box-shadow:0 0 0 8px rgba(79,70,229,0)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-up{animation:fadeInUp .4s cubic-bezier(.22,1,.36,1) both}.animate-fade-down{animation:fadeInDown .35s cubic-bezier(.22,1,.36,1) both}.animate-scale-in{animation:scaleIn .35s cubic-bezier(.22,1,.36,1) both}.animate-pop-in{animation:popIn .45s cubic-bezier(.68,-.55,.265,1.5) both}.animate-slide-right{animation:slideInRight .35s cubic-bezier(.22,1,.36,1) both}.animate-slide-left{animation:slideInLeft .35s cubic-bezier(.22,1,.36,1) both}.animation-fade-in{animation:fadeInUp .35s cubic-bezier(.22,1,.36,1)}.stagger-1{animation-delay:60ms}.stagger-2{animation-delay:.12s}.stagger-3{animation-delay:.18s}.stagger-4{animation-delay:.24s}.stagger-5{animation-delay:.3s}.stagger-6{animation-delay:.36s}.hover-lift{transition:transform .22s ease,box-shadow .22s ease!important}.hover-lift:hover{transform:translateY(-4px)!important;box-shadow:0 12px 32px rgba(0,0,0,.1)!important}.skeleton{border-radius:8px;background:linear-gradient(90deg,var(--sh-border) 25%,color-mix(in srgb,var(--sh-border) 40%,transparent) 50%,var(--sh-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.modal .modal-dialog{animation:scaleIn .28s cubic-bezier(.22,1,.36,1)}.modal-content{background-color:var(--sh-card-bg)!important;color:var(--sh-text)!important}.modal-content,.modal-footer,.modal-header{border-color:var(--sh-border)!important}.nav-pills .nav-link{transition:background-color .2s ease,color .2s ease,transform .15s ease!important}.nav-pills .nav-link.active{transform:none}.nav-pills .nav-link:not(.active):hover{transform:translateY(-1px)}.mobile-bottom-nav .nav-link.active{background:rgba(99,102,241,.1);color:var(--sh-primary);border-radius:12px}.mobile-bottom-nav .nav-link.active .nav-label,.mobile-bottom-nav .nav-link.active i{color:var(--sh-primary)}.mobile-bottom-nav .nav-link:not(.active) .nav-label,.mobile-bottom-nav .nav-link:not(.active) i{color:var(--sh-muted)}.card{transition:transform .22s ease,box-shadow .22s ease!important}.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.09)!important}.form-control:focus,.form-select:focus{border-color:var(--sh-primary)!important;box-shadow:0 0 0 3px rgba(79,70,229,.12)!important}.btn{transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease!important}.btn:not(:disabled):active{transform:scale(.96)!important}:root[data-theme=dark] .kelas-card{border-color:var(--sh-border)}:root[data-theme=dark] .kelas-stat{background:#1e293b}:root[data-theme=dark] .kelas-role-badge.member{background:#1e293b;color:#94a3b8;border-color:var(--sh-border)}:root[data-theme=dark] .cd-header{background:var(--sh-card-bg);border-color:var(--sh-border)}:root[data-theme=dark] .cd-schedule-info{background:linear-gradient(135deg,rgba(79,70,229,.12),rgba(109,40,217,.08));border-color:rgba(79,70,229,.3)}:root[data-theme=dark] .cd-schedule-info-title{color:#c7d2fe}:root[data-theme=dark] .cd-schedule-info-sub{color:#a5b4fc}:root[data-theme=dark] .cd-schedule-empty-admin{background:rgba(245,158,11,.08);border-color:rgba(245,158,11,.3);color:#fcd34d}:root[data-theme=dark] .cd-info-banner{background:rgba(59,130,246,.1);border-color:rgba(59,130,246,.25);color:#93c5fd}:root[data-theme=dark] .cd-success-banner{background:rgba(16,185,129,.1);border-color:rgba(16,185,129,.25);color:#6ee7b7}:root[data-theme=dark] .cd-mode-all-btn{background:#1e293b;border-color:rgba(79,70,229,.4)}:root[data-theme=dark] .cd-edit-sched-btn{background:#1e293b}:root[data-theme=dark] .cd-tabs{background:var(--sh-card-bg);border-color:var(--sh-border)}:root[data-theme=dark] .cd-tab:hover{background:#1e293b}:root[data-theme=dark] .cd-member-role.member{background:#1e293b;color:#94a3b8}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}:root{--sh-radius-sm:8px;--sh-radius-md:12px;--sh-radius-lg:16px;--sh-radius-xl:20px;--sh-radius-full:9999px;--sh-shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--sh-shadow-md:0 4px 12px rgba(15,23,42,.08),0 2px 4px rgba(15,23,42,.04);--sh-shadow-lg:0 10px 30px rgba(15,23,42,.1),0 4px 8px rgba(15,23,42,.06);--sh-shadow-xl:0 20px 50px rgba(15,23,42,.12),0 8px 16px rgba(15,23,42,.06);--sh-shadow-primary:0 8px 24px rgba(79,70,229,.25);--sh-shadow-primary-lg:0 16px 40px rgba(79,70,229,.3);--sh-gradient-primary:linear-gradient(135deg,#4f46e5,#7c3aed);--sh-gradient-secondary:linear-gradient(135deg,#0ea5e9,#6366f1);--sh-gradient-success:linear-gradient(135deg,#10b981,#059669);--sh-gradient-danger:linear-gradient(135deg,#ef4444,#dc2626);--sh-gradient-warning:linear-gradient(135deg,#f59e0b,#d97706);--sh-gradient-aurora:linear-gradient(135deg,#4f46e5,#7c3aed 50%,#0ea5e9);--sh-glass-bg:hsla(0,0%,100%,.72);--sh-glass-border:hsla(0,0%,100%,.5);--sh-glass-shadow:0 8px 32px rgba(15,23,42,.08);--sh-transition-fast:0.15s cubic-bezier(0.22,1,0.36,1);--sh-transition-base:0.25s cubic-bezier(0.22,1,0.36,1);--sh-transition-slow:0.4s cubic-bezier(0.22,1,0.36,1);--sh-transition-bounce:0.45s cubic-bezier(0.68,-0.55,0.265,1.5);--sh-hover:rgba(99,102,241,.06)}:root[data-theme=dark]{--sh-shadow-sm:0 1px 3px rgba(0,0,0,.25),0 1px 2px rgba(0,0,0,.15);--sh-shadow-md:0 4px 12px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.2);--sh-shadow-lg:0 10px 30px rgba(0,0,0,.35),0 4px 8px rgba(0,0,0,.2);--sh-shadow-xl:0 20px 50px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.25);--sh-glass-bg:rgba(17,24,39,.75);--sh-glass-border:hsla(0,0%,100%,.08);--sh-hover:rgba(99,102,241,.12)}.gradient-text{background:var(--sh-gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.gradient-text-aurora{background:var(--sh-gradient-aurora);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-card{background:var(--sh-glass-bg)!important;backdrop-filter:blur(16px) saturate(180%)!important;-webkit-backdrop-filter:blur(16px) saturate(180%)!important;border:1px solid var(--sh-glass-border)!important;box-shadow:var(--sh-glass-shadow)!important}.stat-card-premium{position:relative;overflow:hidden;border-radius:var(--sh-radius-lg)!important;transition:transform var(--sh-transition-base),box-shadow var(--sh-transition-base)!important}.stat-card-premium:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(0,0%,100%,.15),transparent 60%);pointer-events:none;z-index:1}.stat-card-premium:hover{transform:translateY(-4px) scale(1.01)!important;box-shadow:var(--sh-shadow-lg)!important}.skeleton{border-radius:var(--sh-radius-sm);background:linear-gradient(90deg,var(--sh-border) 0,color-mix(in srgb,var(--sh-border) 30%,var(--sh-bg)) 40%,color-mix(in srgb,var(--sh-border) 30%,var(--sh-bg)) 60%,var(--sh-border) 100%);background-size:300% 100%;animation:shimmer 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton-text{height:14px;width:100%}.skeleton-text.w-75{width:75%!important}.skeleton-text.w-50{width:50%!important}.skeleton-title{height:20px;width:60%}.skeleton-avatar{width:40px;height:40px;border-radius:50%!important}.skeleton-badge{height:24px;width:64px;border-radius:999px!important}.skeleton-btn{height:38px;border-radius:var(--sh-radius-md)!important}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;gap:12px}.empty-state-icon{font-size:48px;opacity:.35;animation:floatBob 3s ease-in-out infinite}.empty-state-title{font-size:16px;font-weight:700;color:var(--sh-text);margin:0}.empty-state-desc{font-size:13px;color:var(--sh-muted);margin:0;max-width:280px;line-height:1.6}@keyframes floatBob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-fade-down,.animate-fade-up,.animate-pop-in,.animate-scale-in,.animate-slide-left,.animate-slide-right{will-change:opacity,transform}.modal .modal-dialog{will-change:transform,opacity}.skeleton{will-change:background-position}.hover-lift{will-change:transform,box-shadow}.stagger-7{animation-delay:.42s}.stagger-8{animation-delay:.48s}.stagger-9{animation-delay:.54s}.stagger-10{animation-delay:.6s}.spinner-premium{width:20px;height:20px;border:2.5px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spinRound .7s linear infinite;display:inline-block;flex-shrink:0}.spinner-primary{border-color:rgba(79,70,229,.2);border-top-color:var(--sh-primary)}@keyframes spinRound{to{transform:rotate(1turn)}}.priority-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.priority-dot.HIGH{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.2)}.priority-dot.MEDIUM{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.2)}.priority-dot.LOW{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.2)}.notif-dot{position:absolute;top:4px;right:4px;width:8px;height:8px;background:var(--sh-danger);border-radius:50%;border:2px solid var(--sh-card-bg);animation:pulseDot 2s ease-in-out infinite}@keyframes pulseDot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.8}}.progress-premium{height:8px;background:var(--sh-border)}.progress-premium,.progress-premium .progress-bar{border-radius:var(--sh-radius-full);overflow:hidden}.progress-premium .progress-bar{background:var(--sh-gradient-primary);transition:width .8s cubic-bezier(.22,1,.36,1);position:relative}.progress-premium .progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.35),transparent);animation:progressShine 2s ease-in-out infinite}@keyframes progressShine{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.toast-enter{animation:toastSlideIn .3s var(--sh-transition-base) both}.toast-exit{animation:toastSlideOut .2s ease-in both}.hover-glow{transition:box-shadow var(--sh-transition-base)!important}.hover-glow:hover{box-shadow:0 0 0 3px rgba(79,70,229,.15),var(--sh-shadow-md)!important}.card-premium{border:1px solid var(--sh-border)!important;border-radius:var(--sh-radius-lg)!important;background:var(--sh-card-bg)!important;box-shadow:var(--sh-shadow-sm)!important;transition:transform var(--sh-transition-base),box-shadow var(--sh-transition-base)!important}.card-premium:hover{transform:translateY(-3px);box-shadow:var(--sh-shadow-lg)!important}.row-highlight{transition:background var(--sh-transition-fast);border-radius:var(--sh-radius-md)}.row-highlight:hover{background:var(--sh-hover)}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--sh-radius-full);font-size:11.5px;font-weight:600;letter-spacing:.01em;transition:transform var(--sh-transition-fast),box-shadow var(--sh-transition-fast)}.chip:hover{transform:translateY(-1px);box-shadow:var(--sh-shadow-sm)}.divider-label{display:flex;align-items:center;gap:10px;color:var(--sh-muted);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.divider-label:after,.divider-label:before{content:"";flex:1 1;height:1px;background:var(--sh-border)}.section-header{justify-content:space-between;margin-bottom:16px}.section-header,.section-title{display:flex;align-items:center}.section-title{font-size:15px;font-weight:700;color:var(--sh-text);gap:8px}.section-title-bar{width:4px;height:18px;background:var(--sh-gradient-primary);border-radius:var(--sh-radius-full);flex-shrink:0}.sidebar-nav .nav-link{transition:background var(--sh-transition-fast),color var(--sh-transition-fast),transform var(--sh-transition-fast)!important;border-radius:var(--sh-radius-md)}.sidebar-nav .nav-link:hover{transform:translateX(2px)}.sidebar-nav .nav-link.active{background:linear-gradient(135deg,rgba(79,70,229,.12),rgba(124,58,237,.08))!important;color:var(--sh-primary)!important;font-weight:600}.mobile-bottom-nav .nav-link{transition:background var(--sh-transition-fast),transform var(--sh-transition-fast)!important}.mobile-bottom-nav .nav-link:active{transform:scale(.92)!important}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.skeleton{animation:none;background:var(--sh-border)}}*{scrollbar-width:thin;scrollbar-color:var(--sh-border) transparent}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--sh-border);border-radius:var(--sh-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--sh-muted)}:focus-visible{outline:2px solid var(--sh-primary);outline-offset:2px;border-radius:var(--sh-radius-sm)}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}.list-item-interactive{padding:10px 12px;border-radius:var(--sh-radius-md);transition:background var(--sh-transition-fast);cursor:pointer}.list-item-interactive:hover{background:var(--sh-hover)}.list-item-interactive:active{background:rgba(79,70,229,.1)}.page-header{padding:20px 0 16px;border-bottom:1px solid var(--sh-border);margin-bottom:20px;animation:fadeInDown .35s var(--sh-transition-base) both}.page-title{font-size:22px;font-weight:800;color:var(--sh-text);letter-spacing:-.02em;line-height:1.2}.page-subtitle{font-size:13px;color:var(--sh-muted);margin-top:2px}.btn-gradient-primary{background:var(--sh-gradient-primary)!important;border:none!important;color:#fff!important;box-shadow:var(--sh-shadow-primary)!important;transition:transform var(--sh-transition-base),box-shadow var(--sh-transition-base)!important}.btn-gradient-primary:hover:not(:disabled){transform:translateY(-2px)!important;box-shadow:var(--sh-shadow-primary-lg)!important}.btn-gradient-primary:active:not(:disabled){transform:scale(.97)!important}.btn-gradient-primary:disabled{opacity:.5;cursor:not-allowed}.input-modern{border-radius:var(--sh-radius-md)!important;border:1.5px solid var(--sh-border)!important;background:var(--sh-card-bg)!important;color:var(--sh-text)!important;transition:border-color var(--sh-transition-fast),box-shadow var(--sh-transition-fast),transform var(--sh-transition-fast)!important;font-size:14px}.input-modern:focus{border-color:var(--sh-primary)!important;box-shadow:0 0 0 3px rgba(79,70,229,.12)!important;transform:scale(1.005);outline:none!important}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--sh-radius-full);font-size:11.5px;font-weight:600}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.status-badge.live{background:rgba(16,185,129,.12);color:#059669}.status-badge.live:before{animation:pulseDot 1.5s ease-in-out infinite}.status-badge.offline{background:rgba(100,116,139,.12);color:#64748b}.status-badge.warning{background:rgba(245,158,11,.12);color:#d97706}@keyframes overdueShake{0%,to{transform:translateX(0)}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}.overdue-shake{animation:overdueShake .5s ease-in-out}@keyframes successBounce{0%{transform:scale(0) rotate(-10deg);opacity:0}60%{transform:scale(1.2) rotate(3deg);opacity:1}80%{transform:scale(.9) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}.animate-success{animation:successBounce .6s var(--sh-transition-bounce) both}.counter-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}:root[data-theme=dark] .glass-card{background:rgba(17,24,39,.72)!important;border-color:hsla(0,0%,100%,.07)!important}:root[data-theme=dark] .card-premium{box-shadow:0 1px 3px rgba(0,0,0,.3),0 1px 2px rgba(0,0,0,.2)!important}:root[data-theme=dark] .card-premium:hover{box-shadow:0 10px 30px rgba(0,0,0,.4)!important}:root[data-theme=dark] .btn-gradient-primary{box-shadow:0 8px 24px rgba(79,70,229,.35)!important}:root[data-theme=dark] .progress-premium{background:hsla(0,0%,100%,.08)}:root[data-theme=dark] .divider-label:after,:root[data-theme=dark] .divider-label:before{background:var(--sh-border)}@media (max-width:768px){.page-title{font-size:18px}.section-title{font-size:13.5px}.empty-state{padding:32px 16px}.empty-state-icon{font-size:40px}}@media print{.app-sidebar,.mobile-bottom-nav,.topbar-modern{display:none!important}.app-main{margin-left:0!important}}