@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap");.dropdown-toggle.no-caret:after{display:none!important}:root{--bs-font-sans-serif:"Noto Sans JP",system-ui,-apple-system,Segoe UI,Roboto,"Helvetica Neue",Arial,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-color:#1f2937;--bs-body-bg:transparent;--bs-primary:#6d28d9;--bs-primary-rgb:109,40,217;--bs-secondary:#64748b;--bs-success:#10b981;--bs-danger:#ef4444;--bs-warning:#f59e0b;--bs-info:#0ea5e9;--bs-border-radius:12px;--bs-border-radius-sm:8px;--bs-border-radius-lg:16px;--bs-border-radius-xl:20px;--surface:#ffffff;--surface-2:rgba(255,255,255,0.8);--text-strong:#0f172a;--text-muted:#64748b;--shadow-soft:0 12px 30px rgba(2,6,23,0.08);--shadow-hover:0 18px 40px rgba(2,6,23,0.12);--accent-gradient:linear-gradient(90deg,#6366f1,#a855f7,#06b6d4)}body,html{height:100%}body{font-family:var(--bs-font-sans-serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;color:var(--bs-body-color);background:#f8fafc;isolation:isolate}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(60vmax 40vmax at 5% 10%,rgba(99,102,241,.12),rgba(0,0,0,0) 60%),radial-gradient(55vmax 35vmax at 95% 30%,rgba(168,85,247,.12),rgba(0,0,0,0) 60%);background-repeat:no-repeat}.app-shell{min-height:100vh;min-height:100dvh;backdrop-filter:saturate(140%)}a:hover{text-decoration:none}.navbar{background-color:rgba(255,255,255,.85)!important;backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid rgba(15,23,42,.08);box-shadow:0 2px 12px rgba(15,23,42,.04);padding-top:.75rem;padding-bottom:.75rem}.navbar .navbar-brand{font-weight:800;letter-spacing:.2px;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.25rem;transition:transform .2s ease}.navbar .navbar-brand:hover{transform:translateY(-1px)}.user-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer}.user-icon-wrapper:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:var(--accent-gradient);opacity:0;transition:opacity .3s ease;z-index:-1}.user-icon-toggle:focus .user-icon-wrapper:before,.user-icon-toggle:hover .user-icon-wrapper:before{opacity:.15}.user-icon-toggle:hover .user-icon-wrapper{transform:translateY(-2px);box-shadow:0 4px 12px rgba(109,40,217,.2)}.user-icon-image{position:relative;width:40px;height:40px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 8px rgba(15,23,42,.15);transition:all .3s ease}.user-icon-toggle:hover .user-icon-image{border-color:rgba(109,40,217,.3);box-shadow:0 4px 16px rgba(109,40,217,.25)}.user-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#6d28d9;transition:all .3s ease}.user-icon-toggle:hover .user-icon-placeholder{color:#7c3aed;filter:drop-shadow(0 2px 4px rgba(109,40,217,.2))}.user-dropdown-menu{border:1px solid rgba(15,23,42,.08);border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.15);padding:.5rem;margin-top:.5rem;min-width:200px;animation:dropdownFadeIn .2s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-dropdown-header{padding:.75rem 1rem;font-weight:600;color:var(--text-strong);display:flex;align-items:center;font-size:.9rem}.user-dropdown-item{display:flex;align-items:center;padding:.6rem 1rem;border-radius:8px;transition:all .2s ease;font-weight:500;color:var(--bs-body-color)}.user-dropdown-item:hover{background:linear-gradient(90deg,rgba(109,40,217,.08),rgba(168,85,247,.08));color:#6d28d9;transform:translateX(2px)}.user-dropdown-item svg{transition:transform .2s ease}.user-dropdown-item:hover svg{transform:translateX(2px)}.card{border:1px solid rgba(15,23,42,.06);box-shadow:0 1px 2px rgba(2,6,23,.02);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;border-radius:16px;background-color:var(--surface)}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);border-color:rgba(99,102,241,.25)}.card-title{font-weight:700}.card-text.small{color:var(--text-muted)!important}.btn{border-radius:9999px;padding:.625rem 1rem;font-weight:600;letter-spacing:.2px;border:1px solid rgba(15,23,42,.08);transition:transform .12s ease,box-shadow .2s ease,filter .2s ease,background-color .2s ease,color .2s ease;will-change:transform}.btn:focus-visible{outline:none;box-shadow:0 0 0 .2rem rgba(109,40,217,.25)}.btn:active{transform:translateY(1px);box-shadow:0 6px 18px rgba(2,6,23,.1)}.btn-lg{padding:.8rem 1.25rem;font-size:1rem}.btn-sm{padding:.45rem .8rem;font-size:.9rem}.btn-primary{background:linear-gradient(180deg,#7c3aed,#6d28d9);border:none;box-shadow:0 8px 22px rgba(109,40,217,.25);transition:transform .15s ease,box-shadow .2s ease,filter .2s ease}.btn-primary:hover{filter:brightness(.98);transform:translateY(-1px);box-shadow:0 12px 28px rgba(109,40,217,.32)}.btn-outline-primary{color:#6d28d9;border-color:rgba(109,40,217,.45)}.btn-outline-primary:hover{background-color:rgba(109,40,217,.08);border-color:#6d28d9}.btn-outline-secondary{color:#475569;border-color:rgba(100,116,139,.45)}.btn-outline-secondary:hover{background-color:rgba(100,116,139,.12);border-color:rgba(100,116,139,.8);color:#334155}.form-control,.form-select{border:1.5px solid rgba(100,116,139,.2);border-radius:10px;padding:.5rem .9rem;background-color:rgba(255,255,255,.8);backdrop-filter:blur(8px);transition:all .25s cubic-bezier(.4,0,.2,1);font-size:.95rem;box-shadow:0 1px 2px rgba(15,23,42,.04),0 0 0 0 rgba(109,40,217,0)}.form-control:hover,.form-select:hover{border-color:rgba(109,40,217,.35);background-color:rgba(255,255,255,.95);box-shadow:0 2px 4px rgba(15,23,42,.06),0 0 0 0 rgba(109,40,217,0)}.form-control:focus,.form-select:focus{border-color:#6d28d9;background-color:#ffffff;box-shadow:0 3px 8px rgba(15,23,42,.08),0 0 0 3px rgba(109,40,217,.12);transform:translateY(-1px)}.form-control::placeholder{color:rgba(100,116,139,.5);font-weight:400}.form-control.is-invalid{border-color:rgba(239,68,68,.5);box-shadow:0 2px 4px rgba(239,68,68,.08)}.form-control.is-invalid:focus{border-color:#ef4444;box-shadow:0 3px 8px rgba(239,68,68,.12),0 0 0 3px rgba(239,68,68,.12)}.breadcrumb{--bs-breadcrumb-divider-color:var(--text-muted)}.breadcrumb .breadcrumb-item+.breadcrumb-item:before{color:var(--text-muted)}.breadcrumb .breadcrumb-item.active{color:var(--bs-body-color);font-weight:500}.breadcrumb .breadcrumb-item a{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;transition:background-color .2s ease,color .2s ease}.breadcrumb .breadcrumb-item a:hover{background-color:rgba(15,23,42,.06);text-decoration:none}.breadcrumb-compact{font-size:.8125rem}.breadcrumb-compact .breadcrumb-item+.breadcrumb-item:before{color:rgba(15,23,42,.35)}.breadcrumb-compact .breadcrumb-item a{padding:2px 8px}.breadcrumb-compact .breadcrumb-item a:hover{background-color:rgba(15,23,42,.04)}.modal-content{border-radius:16px;border:1px solid rgba(15,23,42,.06);box-shadow:var(--shadow-soft)}hr{border-color:rgba(15,23,42,.08)}.list-group-flush .list-group-item{background-color:var(--surface);border:1px solid rgba(100,116,139,.12);border-radius:12px;margin-bottom:12px;padding:1.25rem;box-shadow:0 2px 4px rgba(15,23,42,.04)}.list-group-flush .list-group-item:first-child{border-top-left-radius:12px;border-top-right-radius:12px}.list-group-flush .list-group-item:last-child{border-bottom-left-radius:12px;border-bottom-right-radius:12px;margin-bottom:0}.soft-card{background:var(--surface-2);border:1px solid rgba(15,23,42,.06);border-radius:16px;box-shadow:var(--shadow-soft)}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.muted{color:var(--text-muted)!important}.learn-header .learn-title{letter-spacing:.02em;line-height:1.25;background:linear-gradient(90deg,#0d6efd,#6f42c1 50%,#20c997);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.learn-progress{display:grid;gap:6px}.learn-progress__track{position:relative;height:10px;border-radius:9999px;background:rgba(108,117,125,.2);overflow:hidden}.learn-progress__thumb{position:absolute;inset:0 auto 0 0;height:100%;border-radius:9999px;background:linear-gradient(90deg,#0d6efd,#6f42c1);box-shadow:inset 0 0 0 1px rgba(13,110,253,.15),0 4px 10px rgba(13,110,253,.25);transition:width .3s ease}.learn-progress__label{text-align:right}.learn-card{border:0;border-radius:16px;background:radial-gradient(120% 120% at 0 0,rgba(13,110,253,.05),transparent 40%),radial-gradient(120% 120% at 100% 0,rgba(111,66,193,.05),transparent 40%),var(--surface);box-shadow:0 6px 18px rgba(0,0,0,.08);backdrop-filter:saturate(120%) blur(4px)}.learn-actions .btn{min-width:96px;font-weight:600;transition:transform .06s ease,box-shadow .2s ease}.learn-actions .btn:hover{transform:translateY(-1px)}.learn-actions .btn:active{transform:translateY(0)}.empty-state .btn{box-shadow:0 6px 14px rgba(13,110,253,.2)}.delete-modal .modal-content{border-radius:18px;box-shadow:0 18px 50px rgba(2,6,23,.18);overflow:hidden}.delete-modal .modal-header{background:linear-gradient(180deg,rgba(239,68,68,.1),rgba(239,68,68,.06));border-bottom:1px solid rgba(239,68,68,.18)}.delete-modal .modal-title{font-weight:800;letter-spacing:.2px}.delete-modal__icon{color:var(--bs-danger);font-size:1.25rem}.delete-modal .modal-body{color:var(--text-muted);line-height:1.7}.delete-modal .modal-footer{background:linear-gradient(180deg,rgba(2,6,23,.02),rgba(2,6,23,.03))}.delete-modal .btn-outline-secondary{border-color:rgba(100,116,139,.45)}.delete-modal .btn-outline-secondary:hover{background-color:rgba(100,116,139,.1);border-color:rgba(100,116,139,.8)}.login-hero{min-height:100vh;min-height:100dvh;display:grid;align-items:center}.login-card{border-radius:20px;background:rgba(255,255,255,.75);backdrop-filter:saturate(160%) blur(12px);border:1px solid rgba(15,23,42,.08);box-shadow:0 16px 40px rgba(2,6,23,.12)}.login-card:hover{box-shadow:0 18px 50px rgba(2,6,23,.16)}.btn-google{background-color:#ffffff;border:1px solid rgba(15,23,42,.12);box-shadow:0 10px 24px rgba(2,6,23,.08)}.btn-google:hover{background-color:#ffffff;filter:brightness(.98);transform:translateY(-1px);box-shadow:0 14px 32px rgba(2,6,23,.14)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.skeleton-box{background:linear-gradient(90deg,#f0f0f0,#e8e8e8 20%,#f0f0f0 40%,#f0f0f0);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}