/* CSE.23 HUB - Extracted stylesheet. Original CSS is preserved in source order. */

        * { margin: 0; padding: 0; box-sizing: border-box; }
        :root {
            /* CSE.23 primary default theme */
            --bg-primary: #08080D;
            --bg-secondary: #0D0D14;
            --bg-tertiary: #12121B;
            --bg-card: #12121B;
            --bg-hover: #171720;
            --text-primary: #F5F5F7;
            --text-secondary: #A1A1AA;
            --text-muted: #71717A;
            --border: #272733;
            --border-light: #333341;
            --shadow: 0 2px 8px rgba(0,0,0,0.18);
            --shadow-lg: 0 20px 50px rgba(0,0,0,0.35);
            --accent-1: #8B5CF6;
            --accent-2: #22D3EE;
            --like-color: #EF4444;
            --nav-bg: rgba(13,13,20,0.95);
            --gradient-accent: linear-gradient(135deg, #8B5CF6, #6D4AE8);
            --gradient-card: linear-gradient(135deg, #12121B, #0F0F17);
            --gradient-hero: linear-gradient(135deg, #151322, #11111A);
            --gradient-section: linear-gradient(135deg, #12121B, #0D0D14);
            --hero-text: #F5F5F7;
            --hero-accent: #8B5CF6;
            --vote-up: #22C55E;
            --vote-down: #EF4444;
            --banner-bg: linear-gradient(135deg, var(--bg-tertiary), var(--bg-secondary));
            --banner-border: var(--border);
            --banner-text: var(--text-primary);
            --banner-gold: #F59E0B;
            --toast-bg: rgba(13,13,20,0.95);
            --toast-text: #F5F5F7;
            --blog-border: #272733;
            --blog-shadow: 0 2px 8px rgba(0,0,0,0.18);
            --blog-content-color: #F5F5F7;
            --blog-link-color: #22D3EE;        }
        body {
            font-family: 'Inter', sans-serif;
            background: var(--bg-primary);
            color: var(--text-primary);
            min-height: 100vh;
            display: flex;
            justify-content: center;
            align-items: center;
            padding: 0;
            font-size: 16px;
        }
        body.neon {
            --bg-primary: #0a0015;
            --bg-secondary: #12001f;
            --bg-tertiary: #1a0028;
            --bg-card: #12001f;
            --bg-hover: #25003a;
            --text-primary: #f0e6ff;
            --text-secondary: #c8b0e0;
            --text-muted: #8a6aaa;
            --border: #3a1a5a;
            --shadow: 0 2px 16px rgba(100,0,200,0.3);
            --shadow-lg: 0 8px 40px rgba(100,0,200,0.4);
            --accent-1: #7b2ffc;
            --accent-2: #ff44b0;
            --like-color: #ff2255;
            --nav-bg: rgba(18,0,31,0.95);
            --gradient-accent: linear-gradient(135deg, #7b2ffc, #ff44b0, #00d4ff);
            --gradient-card: linear-gradient(135deg, #12001f, #1a0028);
            --gradient-hero: linear-gradient(135deg, #2a0050, #4a0080, #6a00a0, #2a0050);
            --gradient-section: linear-gradient(135deg, #1a0028, #2a0040, #1a0028);
            --hero-text: #f0e6ff;
            --hero-accent: #ff44b0;
            --vote-up: #4caf50;
            --vote-down: #f44336;
            --banner-bg: linear-gradient(135deg, var(--bg-tertiary), var(--bg-secondary));
            --banner-border: var(--border);
            --banner-text: var(--text-primary);
            --banner-gold: #e8b931;
            --toast-bg: rgba(18,0,31,0.95);
            --toast-text: #f0e6ff;
            --blog-border: #3a1a5a;
            --blog-shadow: 0 0 30px rgba(123,47,252,0.1);
            --blog-content-color: #f0e6ff;
            --blog-link-color: #7b2ffc;
        }
        body.dark {
     /* CSE.23 Premium Dark Design System */
            --bg-primary: #08080D;
            --bg-secondary: #0D0D14;
            --bg-tertiary: #12121B;
            --bg-card: #12121B;
            --bg-hover: #171720;

            --text-primary: #F5F5F7;
            --text-secondary: #A1A1AA;
            --text-muted: #71717A;

            --border: #272733;
            --border-light: #333341;

            --shadow: 0 2px 8px rgba(0,0,0,0.18);
            --shadow-lg: 0 20px 50px rgba(0,0,0,0.35);

            --accent-1: #8B5CF6;
            --accent-2: #22D3EE;
            --like-color: #EF4444;

            --nav-bg: rgba(13,13,20,0.95);

            --gradient-accent: linear-gradient(135deg, #8B5CF6, #6D4AE8);
            --gradient-card: linear-gradient(135deg, #12121B, #0F0F17);
            --gradient-hero: linear-gradient(135deg, #151322, #11111A);
            --gradient-section: linear-gradient(135deg, #12121B, #0D0D14);

            --hero-text: #F5F5F7;
            --hero-accent: #8B5CF6;

            --vote-up: #22C55E;
            --vote-down: #EF4444;

            --banner-bg: linear-gradient(135deg, var(--bg-tertiary), var(--bg-secondary));
            --banner-border: var(--border);
            --banner-text: var(--text-primary);
            --banner-gold: #F59E0B;

            --toast-bg: rgba(17,17,24,0.96);
            --toast-text: #F5F5F7;

            --blog-border: #272733;
            --blog-shadow: 0 2px 8px rgba(0,0,0,0.18);
            --blog-content-color: #F5F5F7;
            --blog-link-color: #22D3EE;
        }

        /* CSE.23 Ostad-inspired Light Theme */
        body.light {
            --bg-primary: #FFFFFF;
            --bg-secondary: #F8F9FB;
            --bg-tertiary: #F2F4F7;
            --bg-card: #FFFFFF;
            --bg-hover: #FFF8D9;
            --text-primary: #171A1F;
            --text-secondary: #4B5563;
            --text-muted: #6B7280;
            --border: #E5E7EB;
            --border-light: #D9DDE4;
            --shadow: 0 2px 10px rgba(17,24,39,.07);
            --shadow-lg: 0 18px 50px rgba(17,24,39,.10);
            --accent-1: #D9A900;
            --accent-2: #E6B800;
            --like-color: #E5484D;
            --nav-bg: rgba(255,255,255,.96);
            --gradient-accent: linear-gradient(135deg, #F7C948, #E8B923);
            --gradient-card: linear-gradient(180deg, #FFFFFF, #F8F9FB);
            --gradient-hero: linear-gradient(135deg, #FFF8D8 0%, #FFFDF5 55%, #FFFFFF 100%);
            --gradient-section: linear-gradient(180deg, #FFFFFF, #F7F8FA);
            --hero-text: #171A1F;
            --hero-accent: #B58100;
            --vote-up: #16834B;
            --vote-down: #D92D20;
            --banner-bg: linear-gradient(135deg, #FFFFFF, #FFF8D8);
            --banner-border: #E9D37A;
            --banner-text: #171A1F;
            --banner-gold: #A56F00;
            --toast-bg: rgba(23,26,31,.96);
            --toast-text: #FFFFFF;
            --blog-border: #E7E2CC;
            --blog-shadow: 0 6px 24px rgba(17,24,39,.07);
            --blog-content-color: #20242A;
            --blog-link-color: #A87300;
        }

        body.light {
            background: #F4F5F7;
            color: var(--text-primary);
        }

        body.light .hero::after {
            background:
                radial-gradient(ellipse at 80% 20%, rgba(255,255,255,.72), transparent 60%),
                radial-gradient(ellipse at 20% 80%, rgba(217,169,0,.08), transparent 50%);
        }

        body.light .hero-btn {
            background: rgba(255,255,255,.78);
            border-color: rgba(181,129,0,.18);
            color: #5F4700;
            box-shadow: 0 5px 18px rgba(181,129,0,.08);
        }

        body.light .hero-btn:hover {
            background: #FFFFFF;
            color: #8A6200;
        }

        body.light .nav-btn-icon:hover {
            background: #FFF8D9;
        }

        body.light .quick-card:hover,
        body.light .project-grid .project-card:hover,
        body.light .forum-question:hover {
            box-shadow: 0 8px 26px rgba(17,24,39,.08);
        }

        body.light .tab-headers button.active,
        body.light .tab-headers button:hover {
            color: #9A6B00;
            background: #FFF9E6;
        }

        body.light .project-filters .filter-btn.active {
            color: #1F2937;
        }

        body.light input,
        body.light textarea,
        body.light select,
        body.light .form-card input,
        body.light .form-card textarea,
        body.light .form-card select {
            color: var(--text-primary);
            background: #FFFFFF;
            border-color: var(--border);
        }

        body.light input::placeholder,
        body.light textarea::placeholder {
            color: #8A919B;
        }

        body.light input:focus,
        body.light textarea:focus,
        body.light select:focus,
        body.light .form-card input:focus,
        body.light .form-card textarea:focus,
        body.light .form-card select:focus {
            border-color: #D9A900;
            box-shadow: 0 0 0 3px rgba(217,169,0,.14);
        }

        body.light .feature-topbar {
            background: rgba(255,255,255,.94);
            border-bottom-color: var(--border);
        }

        body.light .feature-shell {
            background:
                radial-gradient(circle at 85% 5%, rgba(247,201,72,.14), transparent 28%),
                radial-gradient(circle at 10% 90%, rgba(247,201,72,.08), transparent 25%),
                var(--bg-primary);
        }

        body.light .schedule-table th {
            background: #F2F4F7;
            color: #20242A;
        }

        body.light .schedule-table tr.bus-now td {
            background: rgba(22,131,75,.07);
        }

        body.light .schedule-table tr.bus-next td {
            background: rgba(217,169,0,.07);
        }

        body.light .live-dot {
            background: #16834B;
            box-shadow: 0 0 10px rgba(22,131,75,.28);
        }

        body.light .blog-post:hover {
            box-shadow: 0 8px 28px rgba(17,24,39,.09);
        }

        body.light .delete-btn:hover {
            background: rgba(229,72,77,.08);
        }

        body.light .mention-token,
        body.light .hashtag-link {
            color: #9A6B00 !important;
        }

        body.light ::-webkit-scrollbar-track {
            background: #EEF0F3;
        }

        body.light ::-webkit-scrollbar-thumb {
            background: linear-gradient(135deg, #E6B800, #F7C948);
        }

        body.light .nav-btn-icon,
        body.light .routine-edit-btn,
        body.light .routine-row-btn,
        body.light .routine-reset-btn,
        body.light .comment-toggle-btn,
        body.light .share-btn,
        body.light .delete-btn {
            color: #4B5563;
        }

        body.light .nav-btn-icon:hover,
        body.light .routine-edit-btn:hover,
        body.light .comment-toggle-btn:hover,
        body.light .comment-toggle-btn.is-open,
        body.light .share-btn:hover {
            color: #9A6B00;
            border-color: #E1B52E;
        }

        .app-wrapper { width: 100%; max-width: 1400px; margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; }
        .app { width: 100%; max-width: 1200px; margin: 0 auto; background: var(--bg-secondary); min-height: 100vh; position: relative; display: flex; flex-direction: column; padding-top: 70px; padding-bottom: 76px; box-sizing: border-box; }
        @media (min-width: 768px) { .app { border: 1px solid var(--border); box-shadow: var(--shadow-lg); } }
        @media (min-width: 1024px) { .app { max-height: 98vh; overflow-y: auto; } .page { padding: 0 32px; } .top-nav { padding: 16px 32px; } }
        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: var(--bg-tertiary); border-radius: 10px; }
        ::-webkit-scrollbar-thumb { background: linear-gradient(135deg, var(--accent-1), var(--accent-2)); border-radius: 10px; }
        .top-nav {
            display: flex; justify-content: space-between; align-items: center; padding: 14px 18px;
            background: var(--nav-bg); border-bottom: 1px solid var(--border);
            position: fixed; top: 0; left: 50%; transform: translateX(-50%); width: min(1200px, 100%); box-sizing: border-box; z-index: 100; flex-shrink: 0;
        }
        .logo { display: flex; align-items: center; gap: 12px; }
        .logo-icon { width: 126px; height: 42px; flex: 0 1 126px; aspect-ratio: 3 / 1; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-weight: 800; color: #fff; overflow: hidden; background:#090A0E; border:1px solid rgba(255,255,255,.10); box-shadow:0 6px 18px rgba(0,0,0,.22); }
        .logo-icon img { width: 100%; height: 100%; object-fit: contain; display: block; }
        .logo-icon.logo-fallback { background: var(--gradient-accent); border: 1px solid var(--border); box-shadow: 0 6px 18px rgba(0,0,0,.18); }
        .logo-icon.logo-fallback::after { content: 'CSE.23'; font: 800 1rem/1 'Inter', sans-serif; letter-spacing: .08em; color: #fff; }
        .logo-icon.logo-fallback img { display: none; }
        .logo-text { font-weight: 700; font-size: 1.3rem; background: var(--gradient-accent); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
        .nav-right { display: flex; gap: 10px; }
        .nav-btn-icon { width: 42px; height: 42px; border-radius: 50%; background: var(--bg-tertiary); border: 1px solid var(--border); color: var(--text-secondary); display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 1rem; }
        .nav-btn-icon:hover { border-color: var(--accent-1); color: var(--accent-1); }
        .page { display: none; padding: 0 18px; flex: 1; overflow-y: auto; }
        .page.active { display: block; }
        @keyframes fadeIn { from { opacity: 0.4; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
        .page.active { animation: fadeIn 0.35s ease; }
        .hero {
            --hero-surface: var(--gradient-hero);
            background: var(--hero-surface); border-radius: 20px; padding: 32px 28px; margin: 12px 0 20px 0;
            position: relative; overflow: hidden; min-height: 170px; display: flex; align-items: center;
            background-size: 200% 200%; animation: gradientShift 8s ease-in-out infinite;
        }
        @keyframes gradientShift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
        .hero::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(255,255,255,0.06), transparent 60%), radial-gradient(ellipse at 20% 80%, rgba(0,0,0,0.1), transparent 50%); pointer-events: none; }
        .hero-content { position: relative; z-index: 2; color: var(--hero-text); width: 100%; }
        .hero-content h1 { font-size: 1.4rem; font-weight: 600; opacity: 0.7; margin-bottom: 4px; }
        .hero-content .slogan-main { font-size: 1.8rem; font-weight: 800; font-family: 'Hind Siliguri', sans-serif; line-height: 1.2; }
        .hero-content .slogan-main .gold { color: var(--hero-accent); }
        .hero-content .slogan-sub { font-size: 0.9rem; opacity: 0.75; font-weight: 400; margin: 4px 0 14px 0; }
        .hero-content p { font-size: 0.95rem; opacity: 0.85; margin: 0 0 12px 0; font-family: 'Hind Siliguri', sans-serif; }
        .hero-btn { display: inline-block; padding: 10px 28px; background: rgba(255,255,255,0.15); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.15); border-radius: 30px; color: var(--hero-text); font-weight: 600; font-size: 0.9rem; cursor: pointer; }
        .hero-content .slogan-main + .slogan-sub {
            display:block;
            margin-top:6px;
            margin-bottom:14px;
        }
        .hero-content .slogan-sub + p { margin-top:0; }
        .hero-media {
            width: min(100%, 680px);
            margin: 18px auto 0;
            border: 1px solid rgba(255,255,255,0.12);
            border-radius: 16px;
            overflow: hidden;
            background: rgba(0,0,0,0.12);
            box-shadow: 0 12px 32px rgba(0,0,0,0.18);
        }
        .hero-media img {
            display: block;
            width: 100%;
            max-height: 300px;
            aspect-ratio: 16 / 8;
            object-fit: cover;
            object-position: center;
        }
        @media (max-width: 600px) {
            .hero { padding: 26px 18px; }
            .hero-media { margin-top: 16px; border-radius: 14px; }
            .hero-media img { max-height: 210px; aspect-ratio: 16 / 9; }
        }
        @media (max-width: 360px) {
            .hero { padding: 22px 14px; }
            .hero-media img { max-height: 180px; }
        }
        .hero-btn:hover { background: rgba(255,255,255,0.25); transform: scale(1.02); }
        .quick-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin: 16px 0 20px 0; }
        @media (max-width: 480px) { .quick-grid { grid-template-columns: 1fr 1fr; gap: 10px; } }
        @media (min-width: 768px) { .quick-grid { grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr; } }
        .quick-card { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 16px; padding: 18px 14px; text-align: center; cursor: pointer; transition: 0.3s; color: var(--text-primary); }
        .quick-card:hover { border-color: var(--accent-1); transform: translateY(-4px); box-shadow: 0 0 30px rgba(77,184,212,0.12); }
        .quick-card .icon { font-size: 2.2rem; display: block; margin-bottom: 6px; }
        .quick-card .title { font-weight: 600; font-size: 1rem; font-family: 'Hind Siliguri', sans-serif; }
        .quick-card .desc { font-size: 0.75rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .games-home-entry { text-decoration: none; }
        /* Keep the five home study tools balanced and readable on every screen. */
        .home-tools-grid { align-items: stretch; }
        .home-tools-grid .home-tool-card { min-width: 0; min-height: 116px; display: flex; flex-direction: column; justify-content: center; }
        .home-tools-grid .home-tool-card .title,
        .home-tools-grid .home-tool-card .desc { overflow-wrap: anywhere; }
        @media (max-width: 480px) {
            .home-tools-grid .home-tool-card { min-height: 104px; padding: 14px 10px; }
            .home-tools-grid .home-tool-card .icon { font-size: 1.9rem; }
            .home-tools-grid .home-tool-card .title { font-size: .9rem; }
            .home-tools-grid .home-tool-card .desc { font-size: .68rem; line-height: 1.35; }
        }
        .stats-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin: 16px 0 20px 0; }
        @media (max-width: 480px) { .stats-grid { grid-template-columns: 1fr 1fr 1fr; } }
        .stat-item { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 14px; padding: 16px 10px; text-align: center; }
        .stat-item i { color: var(--accent-2); font-size: 1.3rem; }
        .stat-item .number { font-weight: 700; font-size: 1.8rem; color: var(--accent-1); display: block; font-family: 'Inter', sans-serif; margin: 4px 0 2px 0; min-height: 2.4rem; }
        .stat-item .label { font-size: 0.75rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .notice { background: var(--gradient-card); border-left: 4px solid var(--accent-2); border-radius: 14px; padding: 12px 18px; margin: 14px 0 18px 0; display: flex; align-items: center; gap: 12px; border: 1px solid var(--border); border-left-width: 4px; }
        .notice i { color: var(--accent-2); font-size: 1.3rem; }
        .notice .text { font-size: 0.95rem; flex: 1; font-family: 'Hind Siliguri', sans-serif; color: var(--text-primary); }
        .notice .text strong { color: var(--accent-1); }
        .notice .time { font-size: 0.75rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .contributors { background: var(--gradient-section); border: 1px solid var(--border); border-radius: 16px; padding: 16px 20px; margin: 14px 0 20px 0; }
        .contributors .title { font-weight: 700; font-size: 1rem; color: var(--accent-1); margin-bottom: 12px; font-family: 'Hind Siliguri', sans-serif; }
        .contributors .title i { color: var(--accent-2); margin-right: 8px; }
        .contrib-list { display: flex; gap: 14px; flex-wrap: wrap; }
        .contrib-item { display: flex; align-items: center; gap: 8px; background: var(--bg-secondary); padding: 4px 14px 4px 4px; border-radius: 30px; border: 1px solid var(--border); font-size: 0.85rem; }
        .contrib-item .avatar { width: 30px; height: 30px; border-radius: 50%; background: var(--gradient-accent); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 0.75rem; }
        .contrib-item .name { font-family: 'Hind Siliguri', sans-serif; color: var(--text-primary); }
        .contrib-item .badge { color: var(--accent-2); font-size: 0.65rem; }
        .routine-section { background: var(--gradient-section); border: 1px solid var(--border); border-radius: 18px; padding: 14px 16px; margin: 12px 0 16px 0; }
        .routine-header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px 10px; margin-bottom: 8px; }
        .routine-header h4 { min-width: 0; font-size: 1rem; line-height: 1.2; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .routine-header h4 i { color: var(--accent-2); margin-right: 6px; }
        .routine-tools { display: contents; }
        .datetime { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; padding: 2px 0 0; font-size: 0.68rem; line-height: 1.25; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; }
        .datetime > span { display: inline-flex; align-items: center; min-width: 0; }
        .datetime > span + span { margin-left: 0 !important; padding-left: 8px; border-left: 1px solid var(--border); }
        .datetime i { color: var(--accent-2); margin-right: 4px; font-size: 0.72rem; }
        .routine-scroll { overflow-x: hidden; }
.routine-edit-btn { border:1px solid var(--border); background:var(--bg-tertiary); color:var(--text-primary); border-radius:9px; padding:6px 9px; font:600 .69rem/1 'Hind Siliguri',sans-serif; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:5px; white-space:nowrap; min-height:32px; }
.routine-edit-btn:hover { border-color:var(--accent-1); color:var(--accent-1); transform:translateY(-1px); }
.routine-editor { display:none; margin:0 0 14px; padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--bg-secondary); }
.routine-editor.open { display:block; animation:fadeIn .25s ease; }
.routine-editor-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; margin-bottom:12px; }
.routine-editor-head strong { color:var(--accent-1); font-size:.98rem; }
.routine-editor-head small { display:block; color:var(--text-muted); margin-top:3px; font-size:.7rem; }
.routine-editor-day { border:1px solid var(--border); border-radius:12px; padding:11px; margin-bottom:10px; background:var(--bg-tertiary); }
.routine-editor-day-head { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:9px; }
.routine-editor-day-head strong { color:var(--text-primary); font-size:.82rem; }
.routine-editor-list { display:grid; gap:8px; }
.routine-editor-row { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(115px,.9fr) auto; gap:7px; align-items:center; }
.routine-editor input { width:100%; box-sizing:border-box; min-width:0; border:1px solid var(--border); background:var(--bg-secondary); color:var(--text-primary); border-radius:9px; padding:8px 9px; font:500 .76rem 'Hind Siliguri',sans-serif; outline:none; }
.routine-editor input:focus { border-color:var(--accent-1); box-shadow:0 0 0 2px rgba(77,184,212,.10); }
.routine-row-btn { width:34px; height:34px; border:1px solid var(--border); border-radius:9px; background:var(--bg-secondary); color:var(--text-muted); cursor:pointer; }
.routine-row-btn:hover { color:#ff6b7a; border-color:#ff6b7a; }
.routine-add-btn, .routine-save-btn, .routine-reset-btn { border:1px solid var(--border); border-radius:9px; padding:7px 10px; font:600 .7rem 'Hind Siliguri',sans-serif; cursor:pointer; }
.routine-add-btn { background:transparent; color:var(--accent-2); }
.routine-save-btn { background:var(--gradient-accent); color:#fff; border-color:transparent; }
.routine-reset-btn { background:var(--bg-secondary); color:var(--text-muted); }
.routine-editor-actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin-top:10px; }
.routine-day.is-current { box-shadow:0 0 0 1px var(--accent-1), 0 8px 22px rgba(77,184,212,.08); }
@media (max-width:600px) {
  .routine-section { padding: 13px 12px; }
  .routine-editor-row { grid-template-columns:1fr 1fr 34px; }
  .routine-editor-row input:first-child { grid-column:1 / -1; }
  .routine-edit-btn { min-height:31px; padding:6px 8px; }
  .datetime { font-size:.65rem; gap:6px; }
}

        .routine-day { background: var(--bg-secondary); border-radius: 12px; padding: 12px 16px; margin-bottom: 8px; border: 1px solid var(--border); cursor: pointer; }
        .routine-day:hover { border-color: var(--accent-1); transform: translateX(4px); }
        .routine-day .day-title { display: flex; justify-content: space-between; align-items: center; font-weight: 700; color: var(--accent-1); font-size: 0.95rem; font-family: 'Hind Siliguri', sans-serif; }
        .routine-day .day-title .today { font-size: 0.6rem; background: var(--accent-1); color: #fff; padding: 2px 12px; border-radius: 12px; font-weight: 600; }
        .routine-day .day-title i { color: var(--text-muted); transition: 0.3s; }
        .routine-day .periods { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
        .routine-day .periods .period { background: var(--bg-tertiary); padding: 4px 12px; border-radius: 20px; font-size: 0.75rem; border: 1px solid var(--border); white-space: nowrap; }
        .routine-day .periods .period .time { color: var(--text-muted); font-size: 0.6rem; margin-left: 4px; }
        .routine-day .periods .period.break { background: rgba(92,184,154,0.15); border-color: var(--accent-2); color: var(--accent-2); }
        .section-title { font-size: 1.1rem; color: var(--accent-1); margin: 16px 0 12px 0; font-family: 'Hind Siliguri', sans-serif; }
        .section-title i { color: var(--accent-2); margin-right: 8px; }
        .project-slider { overflow: hidden; border-radius: 16px; border: 1px solid var(--border); margin: 10px 0 16px 0; position: relative; }
        .project-track { display: flex; transition: transform 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
        .project-card { flex: 0 0 100%; padding: 18px; background: var(--gradient-card); text-decoration: none; color: var(--text-primary); }
        .project-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: 12px; border: 1px solid var(--border); }
        .project-card h4 { font-size: 1.05rem; margin: 10px 0 4px 0; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .project-card .author { font-size: 0.8rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .project-card .author i { color: var(--accent-2); }
        .project-card p { font-size: 0.85rem; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; }
        .project-dots { display: flex; justify-content: center; gap: 8px; padding: 10px 0 14px 0; }
        .project-dots .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); cursor: pointer; border: none; transition: 0.3s; }
        .project-dots .dot.active { background: var(--accent-1); width: 28px; border-radius: 4px; }
        .project-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0; }
        @media (min-width: 768px) { .project-grid { grid-template-columns: 1fr 1fr 1fr; } }
        @media (min-width: 1024px) { .project-grid { grid-template-columns: 1fr 1fr 1fr 1fr; } }
        .project-grid .project-card { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 14px; padding: 14px; transition: 0.3s; position: relative; }
        .project-grid .project-card:hover { transform: translateY(-4px); border-color: var(--accent-1); }
        .project-grid .project-card img { aspect-ratio: 16/9; object-fit: cover; border-radius: 10px; width: 100%; border: 1px solid var(--border); }
        .project-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
        .project-filters .filter-btn { padding: 8px 20px; border-radius: 30px; border: 1px solid var(--border); background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 0.8rem; font-family: 'Hind Siliguri', sans-serif; }
        .project-filters .filter-btn:hover { border-color: var(--accent-1); color: var(--accent-1); }
        .project-filters .filter-btn.active { background: var(--accent-1); color: #fff; border-color: var(--accent-1); }
        .palestine-banner { background: var(--banner-bg); border-radius: 16px; padding: 10px 20px; margin: 10px 0 16px 0; display: flex; align-items: center; justify-content: center; gap: 16px; flex-wrap: wrap; border: 1px solid var(--banner-border); }
        .flag { position: relative; width: 60px; height: 36px; border-radius: 4px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); }
        .flag .stripe { width: 100%; height: 33.33%; display: block; }
        .flag .black { background: #000; }
        .flag .white { background: #fff; }
        .flag .green { background: #009736; }
        .flag .triangle { position: absolute; top: 0; left: 0; width: 0; height: 0; border-style: solid; border-width: 18px 0 18px 30px; border-color: transparent transparent transparent #ce1126; }
        .banner-text { font-weight: 700; font-size: 1rem; color: var(--banner-text); font-family: 'Inter', sans-serif; }
        .banner-text .gold { color: var(--banner-gold); }
        .tabs { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; margin: 14px 0; }
        .tab-headers { display: flex; border-bottom: 1px solid var(--border); overflow-x: auto; }
        .tab-headers button { flex: 1; min-width: 80px; padding: 12px; background: transparent; border: none; color: var(--text-secondary); font-weight: 600; font-size: 0.85rem; cursor: pointer; font-family: 'Hind Siliguri', sans-serif; white-space: nowrap; }
        .tab-headers button:hover { color: var(--accent-1); background: var(--bg-hover); }
        .tab-headers button.active { color: var(--accent-1); background: var(--bg-hover); }
        .tab-headers button.active::after { content: ''; display: block; height: 2px; background: var(--gradient-accent); margin-top: 8px; }
        .tab-content { padding: 16px; display: none; }
        .tab-content.active { display: block; }
        .forum-question { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 14px; padding: 16px; margin-bottom: 12px; }
        .forum-question:hover { border-color: var(--accent-1); }
        .forum-question .q-header { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
        .forum-question .q-header .q-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--gradient-accent); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 0.75rem; }
        .forum-question .q-header .q-name { font-weight: 600; font-size: 0.95rem; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .forum-question .q-header .q-time { font-size: 0.7rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; margin-left: auto; }
        .forum-question .q-title { font-weight: 600; font-size: 1rem; color: var(--text-primary); font-family: 'Hind Siliguri', sans-serif; margin: 4px 0 6px 0; }
        .forum-question .q-body { font-size: 0.9rem; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; line-height: 1.5; margin-bottom: 8px; }
        .forum-question .q-image { margin: 8px 0 12px 0; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); background: var(--bg-tertiary); }
        .forum-question .q-image img { width: 100%; display: block; max-height: 400px; object-fit: contain; background: var(--bg-tertiary); }
        .forum-question .q-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
        .forum-question .q-tags span { padding: 2px 12px; border-radius: 12px; font-size: 0.6rem; background: var(--bg-tertiary); border: 1px solid var(--border); color: var(--text-muted); font-family: 'Inter', sans-serif; }
        .forum-question .q-actions { display: flex; gap: 12px; flex-wrap: wrap; padding-top: 10px; border-top: 1px solid var(--border); align-items: center; }
        .vote-container { display: flex; align-items: center; gap: 4px; margin-right: 8px; }
        .vote-btn { background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 2px 6px; border-radius: 4px; font-size: 0.9rem; }
        .vote-btn:hover { color: var(--accent-1); }
        .vote-btn.upvote:hover { color: var(--vote-up); }
        .vote-btn.downvote:hover { color: var(--vote-down); }
        .vote-btn.active-up { color: var(--vote-up); }
        .vote-btn.active-down { color: var(--vote-down); }
        .vote-count { font-size: 0.8rem; font-weight: 600; color: var(--text-secondary); min-width: 20px; text-align: center; font-family: 'Inter', sans-serif; }
        .reaction-container { display: flex; gap: 4px; flex-wrap: wrap; }
        .reaction-btn { background: none; border: 1px solid var(--border); border-radius: 20px; padding: 2px 10px; cursor: pointer; font-size: 0.8rem; color: var(--text-muted); display: flex; align-items: center; gap: 3px; font-family: 'Hind Siliguri', sans-serif; }
        .reaction-btn:hover { border-color: var(--accent-1); background: var(--bg-hover); }
        .reaction-btn.active { border-color: var(--accent-2); background: rgba(255,68,176,0.1); }
        .reaction-btn .reaction-emoji { font-size: 1rem; }
        .reaction-btn .reaction-count { font-size: 0.65rem; font-weight: 600; }
        .share-btn { background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 4px 10px; border-radius: 20px; font-size: 0.8rem; display: flex; align-items: center; gap: 4px; font-family: 'Hind Siliguri', sans-serif; }
        .share-btn:hover { background: var(--bg-hover); color: var(--accent-1); }
        .delete-btn { background: none; border: none; color: var(--text-muted); cursor: pointer; padding: 4px 8px; border-radius: 20px; font-size: 0.7rem; font-family: 'Hind Siliguri', sans-serif; display: flex; align-items: center; gap: 4px; }
        .delete-btn:hover { color: #ff2255; background: rgba(255,34,85,0.1); }
        .resource-delete-btn { color: var(--text-muted); flex: 0 0 auto; }
        .resource-delete-btn:hover { color: #ff5c7a; border-radius: 10px; }
        .blog-post { background: var(--gradient-card); border: 1px solid var(--blog-border); border-radius: 16px; padding: 20px; margin: 16px 0; box-shadow: var(--blog-shadow); }
        .blog-post:hover { border-color: var(--accent-1); box-shadow: 0 4px 30px rgba(77,184,212,0.1); }
        .blog-post .header { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; flex-wrap: wrap; }
        .blog-post .header .avatar { width: 48px; height: 48px; border-radius: 50%; background: var(--gradient-accent); display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 0.9rem; }
        .blog-post .header .name { font-weight: 600; font-size: 1.05rem; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .blog-post .header .time { font-size: 0.8rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .blog-post .header .delete-wrap { margin-left: auto; }
        .blog-post .content { overflow-wrap:anywhere; word-break:break-word; font-size:1rem; font-family: 'Hind Siliguri', sans-serif; margin: 10px 0 12px 0; line-height: 1.6; color: var(--blog-content-color); }
        .blog-post .media { margin: 12px 0 14px 0; max-width:100%; border-radius: 12px; overflow: hidden; background: var(--bg-secondary); border: 1px solid var(--border); }
        .blog-post .media img { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; }
        .blog-post .media video { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; background: #0a0e1a; }
        .blog-post .actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 14px; border-top: 1px solid var(--border); margin-top: 12px; align-items: center; }
        .blog-post .actions button { background: none; border: none; color: var(--text-secondary); cursor: pointer; font-size: 0.9rem; display: flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 30px; font-family: 'Hind Siliguri', sans-serif; }
        .blog-post .actions button:hover { background: var(--bg-hover); }
        .blog-post .actions button.liked { color: var(--like-color); }
        .blog-comments { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
        .blog-comments { display:none; }
        .blog-comments.is-open { display:block; animation:formReveal .25s ease both; }
        .comment-toggle-btn { background:none; border:1px solid var(--border); color:var(--text-muted); cursor:pointer; padding:6px 12px; border-radius:20px; font-size:.82rem; display:flex; align-items:center; gap:6px; font-family:'Hind Siliguri',sans-serif; }
        .comment-toggle-btn:hover, .comment-toggle-btn.is-open { border-color:var(--accent-1); color:var(--accent-1); background:var(--bg-hover); }
        .blog-post .actions { display:flex; align-items:center; gap:8px; flex-wrap:nowrap; }
        .blog-post .actions .left-actions { display:flex; align-items:center; gap:6px; flex:1 1 auto; min-width:0; flex-wrap:nowrap; }
        .blog-post .actions .share-container { flex:0 0 auto; margin-left:auto; }
        .blog-post .actions .like-btn, .blog-post .actions .comment-toggle-btn, .blog-post .actions .share-btn { white-space:nowrap; min-height:34px; }
        @media (max-width:520px) {
            .blog-post .actions { gap:4px; }
            .blog-post .actions .like-btn, .blog-post .actions .comment-toggle-btn, .blog-post .actions .share-btn { padding:5px 7px; font-size:.72rem; }
            .blog-post .actions .comment-toggle-btn { gap:4px; }
        }

        .blog-comments .comment { padding: 8px 12px; margin-bottom: 6px; background: var(--bg-tertiary); border-radius: 10px; border: 1px solid var(--border); }
        .blog-comments .comment .comment-header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; flex-wrap: wrap; }
        .blog-comments .comment .comment-header .c-name { font-weight: 600; font-size: 0.8rem; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .blog-comments .comment .comment-header .c-time { font-size: 0.65rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .blog-comments .comment .comment-text { font-size: 0.85rem; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; }
        .blog-comments .comment-form { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
        .blog-comments .comment-form input { flex: 1; min-width: 150px; padding: 8px 14px; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 10px; color: var(--text-primary); font-size: 0.85rem; font-family: 'Hind Siliguri', sans-serif; outline: none; }
        .blog-comments .comment-form input:focus { border-color: var(--accent-1); }
        .blog-comments .comment-form button { padding: 8px 20px; background: var(--gradient-accent); border: none; border-radius: 10px; color: #fff; font-weight: 600; font-size: 0.8rem; cursor: pointer; font-family: 'Hind Siliguri', sans-serif; }
        .form-card { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 16px; padding: 18px; margin: 14px 0; }
        .form-card h4 { color: var(--accent-1); font-size: 1.05rem; margin-bottom: 10px; font-family: 'Hind Siliguri', sans-serif; }
        .form-card h4 i { color: var(--accent-2); margin-right: 6px; }
        .form-card input, .form-card textarea, .form-card select { width: 100%; padding: 12px 16px; margin: 6px 0 12px 0; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); font-size: 0.95rem; outline: none; font-family: 'Hind Siliguri', sans-serif; }
        .form-card input:focus, .form-card textarea:focus, .form-card select:focus { border-color: var(--accent-1); box-shadow: 0 0 20px rgba(77,184,212,0.1); }
        .form-card textarea { min-height: 70px; resize: vertical; }
        .form-card .row { display: flex; gap: 10px; }
        .form-card .row > * { flex: 1; }
        .form-card button { width: 100%; padding: 14px; background: var(--gradient-accent); border: none; border-radius: 12px; color: #fff; font-weight: 700; font-size: 1rem; cursor: pointer; font-family: 'Hind Siliguri', sans-serif; }
        .form-card button:hover { transform: scale(1.02); box-shadow: 0 4px 20px rgba(77,184,212,0.3); }
        .captcha-wrapper { background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; padding: 14px 16px; margin: 6px 0 12px 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
        .captcha-wrapper .captcha-text { font-family: 'Courier New', monospace; font-size: 1.4rem; font-weight: 700; letter-spacing: 6px; padding: 6px 16px; background: var(--bg-tertiary); border-radius: 8px; border: 1px dashed var(--border); color: var(--accent-1); user-select: none; min-width: 100px; text-align: center; }
        .captcha-wrapper input { flex: 1; min-width: 120px; padding: 8px 14px; background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 8px; color: var(--text-primary); font-size: 0.95rem; outline: none; font-family: 'Inter', sans-serif; }
        .captcha-wrapper input:focus { border-color: var(--accent-1); }
        .captcha-wrapper .captcha-refresh { background: none; border: none; color: var(--text-muted); cursor: pointer; font-size: 1.1rem; padding: 6px 8px; border-radius: 50%; }
        .captcha-wrapper .captcha-refresh:hover { color: var(--accent-1); transform: rotate(90deg); }
        .captcha-error { color: var(--like-color); font-size: 0.8rem; font-family: 'Hind Siliguri', sans-serif; display: none; margin-top: -6px; margin-bottom: 6px; }
        .sharing-slogan { text-align: center; padding: 12px 12px; margin: 10px 0 16px 0; background: var(--gradient-section); border-radius: 14px; border-left: 4px solid var(--accent-2); border-right: 4px solid var(--accent-1); }
        .sharing-slogan .slogan-bn { font-family: 'Hind Siliguri', sans-serif; font-size: 1.05rem; font-weight: 700; color: var(--accent-1); }
        .sharing-slogan .slogan-en { font-size: 0.8rem; color: var(--text-muted); font-family: 'Inter', sans-serif; }
        .year-group { margin-bottom: 8px; }
        .year-title { font-weight: 700; color: var(--accent-1); padding: 8px 4px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); font-family: 'Hind Siliguri', sans-serif; font-size: 1rem; }
        .year-title:hover { color: var(--accent-2); }
        .year-title i.rotated { transform: rotate(180deg); }
        .semester-dropdown { display: none; padding-left: 10px; }
        .semester-dropdown.open { display: block; }
        .syllabus-semester-toggle { font-weight:600; color:var(--accent-2); padding:8px 10px; margin:6px 0; cursor:pointer; display:flex; justify-content:space-between; align-items:center; background:var(--bg-tertiary); border:1px solid var(--border); border-radius:10px; font-family:'Hind Siliguri',sans-serif; }
        .syllabus-semester-toggle i { transition:transform .25s ease; }
        .syllabus-semester-toggle i.rotated { transform:rotate(180deg); }
        .syllabus-semester-card.single-semester { display:none; }
        .syllabus-semester-card.single-semester.open { display:block; }
        .semester-item { margin: 6px 0; }
        .semester-label { font-weight: 600; color: var(--accent-2); padding: 6px 4px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--border); font-family: 'Hind Siliguri', sans-serif; font-size: 0.9rem; }
        .semester-label i.rotated { transform: rotate(180deg); }
        .topics { display: none; padding-left: 14px; }
        .topics.open { display: block; }
        .topics ul { list-style: none; padding: 0; }
        .topics ul li { padding: 4px 0; border-bottom: 1px solid var(--border); font-size: 0.85rem; display: flex; gap: 8px; align-items: center; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; flex-wrap: wrap; }
        .topics ul li i { color: var(--accent-2); width: 18px; }
        .topics .download { color: var(--accent-2); font-size: 0.85rem; cursor: pointer; text-align: right; padding: 6px 0; }
        .topics .download:hover { color: var(--accent-1); }
        .syllabus-table-wrap { overflow-x: auto; margin: 10px 0; border-radius: 10px; border: 1px solid var(--border); max-height: 300px; overflow-y: auto; }
        .syllabus-table-wrap::-webkit-scrollbar { width: 6px; height: 6px; }
        .syllabus-table-wrap::-webkit-scrollbar-track { background: var(--bg-tertiary); border-radius: 10px; }
        .syllabus-table-wrap::-webkit-scrollbar-thumb { background: var(--accent-1); border-radius: 10px; }
        .syllabus-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; font-family: 'Hind Siliguri', sans-serif; min-width: 600px; }
        .syllabus-table th { background: var(--gradient-accent); color: #fff; padding: 10px 12px; text-align: left; font-weight: 600; font-size: 0.75rem; text-transform: uppercase; position: sticky; top: 0; z-index: 2; }
        .syllabus-table td { padding: 8px 12px; border-bottom: 1px solid var(--border); color: var(--text-secondary); }
        .syllabus-table tr:hover td { background: var(--bg-hover); color: var(--text-primary); }
        .syllabus-table .code { color: var(--accent-1); font-weight: 600; font-family: 'Inter', sans-serif; }
        .syllabus-table .credit { color: var(--accent-2); font-weight: 600; text-align: center; }
        .syllabus-table .lab { text-align: center; }
        .syllabus-table .lab .yes { color: #4caf50; }
        .syllabus-table .lab .no { color: var(--text-muted); }
        .search-filter-wrapper { margin-bottom: 16px; }
        .search-filter-wrapper input { width: 100%; padding: 12px 18px; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); font-size: 0.95rem; outline: none; font-family: 'Hind Siliguri', sans-serif; }
        .search-filter-wrapper input:focus { border-color: var(--accent-1); }
        .search-filter-wrapper .search-icon-wrap { position: relative; }
        .search-filter-wrapper .search-icon-wrap i { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: var(--text-muted); }
        .category-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
        .category-btn { padding: 6px 16px; border-radius: 20px; border: 1px solid var(--border); background: transparent; color: var(--text-secondary); cursor: pointer; font-size: 0.75rem; font-family: 'Hind Siliguri', sans-serif; }
        .category-btn:hover { border-color: var(--accent-1); color: var(--accent-1); }
        .category-btn.active { background: var(--accent-1); color: #fff; border-color: var(--accent-1); }
        .note-item { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 4px 0; border-bottom: 1px solid var(--border); width: 100%; }
        .note-item, .notes-resource-card, .resource-main, .resource-name, .resource-meta { min-width: 0; max-width: 100%; }
        .resource-name, .resource-meta, .year-title, .semester-label { overflow-wrap: anywhere; word-break: break-word; }
        .resource-meta { display:flex; flex-wrap:wrap; gap:6px; }
        .search-filter-wrapper { min-width:0; overflow:hidden; }
        .search-filter-wrapper input { max-width:100%; }
        .date-badge { font-size: 0.6rem; color: var(--text-muted); font-family: 'Inter', sans-serif; }
        .star-badge { background: transparent; border: none; color: var(--text-muted); cursor: default; font-size: 0.8rem; display: inline-flex; align-items: center; gap: 3px; }
        .star-badge .star-count { font-size: 0.65rem; font-weight: 600; color: var(--text-muted); }
        .pdf-preview-btn { background: none; border: 1px solid var(--border); padding: 2px 12px; border-radius: 20px; color: var(--text-secondary); cursor: pointer; font-size: 0.65rem; font-family: 'Hind Siliguri', sans-serif; margin-left: 6px; }
        .pdf-preview-btn:hover { border-color: var(--accent-1); color: var(--accent-1); }
        .pdf-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.8); backdrop-filter: blur(10px); z-index: 60; display: none; align-items: center; justify-content: center; padding: 20px; }
        .pdf-modal-overlay.open { display: flex; }
        .pdf-modal-content { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 20px; padding: 20px; max-width: 900px; width: 100%; max-height: 90vh; position: relative; }
        .pdf-modal-close { position: absolute; top: 12px; right: 16px; background: none; border: none; color: var(--text-secondary); font-size: 1.5rem; cursor: pointer; }
        .pdf-modal-close:hover { color: var(--accent-1); transform: rotate(90deg); }
        .pdf-modal-content iframe { width: 100%; height: 70vh; border: none; border-radius: 12px; background: #fff; }
        .bottom-nav { position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: min(1200px, 100%); margin: 0 auto; background: var(--nav-bg); backdrop-filter: blur(20px); border-top: 1px solid var(--border); display: flex; justify-content: space-around; padding: 8px 0; z-index: 40; flex-shrink: 0; }
        .bottom-nav-inner { width: 100%; display: flex; justify-content: space-around; padding: 6px 0; }
        .bottom-nav button { background: none; border: none; color: var(--text-muted); cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 0.7rem; padding: 4px 16px; font-family: 'Hind Siliguri', sans-serif; position: relative; }
        .bottom-nav button i { font-size: 1.4rem; }
        .bottom-nav button.active { color: var(--accent-1); }
        .bottom-nav button.active::after { content: ''; position: absolute; top: -1px; left: 30%; right: 30%; height: 2px; background: var(--gradient-accent); border-radius: 4px; }
        .bottom-nav button:hover { color: var(--accent-1); }
        .bottom-nav .menu-btn { color: var(--accent-2); }

        .menu-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); backdrop-filter: blur(8px); z-index: 45; display: none; }
        .menu-overlay.open { display: block; }
        .menu-panel { position: fixed; top: 0; left: 0; width: 340px; max-width: 92vw; height: 100dvh; background: var(--bg-secondary); border-right: 1px solid var(--border); z-index: 50; transform: translate3d(-110%,0,0); transition: transform 0.4s cubic-bezier(.22,.61,.36,1); padding: 24px 20px; overflow-y: auto; overflow-x: hidden; display: flex; flex-direction: column; box-shadow: 4px 0 60px rgba(0,0,0,0.3); box-sizing: border-box; visibility: hidden; pointer-events: none; }
        .menu-panel.open { transform: translate3d(0,0,0); visibility: visible; pointer-events: auto; }
        .menu-panel .menu-header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; border-bottom: 1px solid var(--border); margin-bottom: 18px; }
        .menu-panel .menu-header h3 { font-size: 1.3rem; background: var(--gradient-accent); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-family: 'Hind Siliguri', sans-serif; }
        .menu-panel .menu-header h3 i { -webkit-text-fill-color: initial; color: var(--accent-2); }
        .menu-panel .menu-close { width: 38px; height: 38px; border-radius: 50%; background: var(--bg-tertiary); border: 1px solid var(--border); color: var(--text-secondary); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
        .menu-panel .menu-close:hover { border-color: var(--accent-1); color: var(--accent-1); transform: rotate(90deg); }
        .menu-items { flex: 1; display: flex; flex-direction: column; gap: 4px; }
        .menu-item { padding: 14px 16px; border-radius: 14px; cursor: pointer; display: flex; align-items: center; gap: 16px; color: var(--text-primary); border: 1px solid transparent; }
        .menu-item:hover { background: var(--bg-hover); border-color: var(--border); transform: translateX(4px); }
        .menu-item i { width: 38px; height: 38px; border-radius: 10px; background: var(--bg-tertiary); display: flex; align-items: center; justify-content: center; color: var(--accent-2); font-size: 1.05rem; }
        .menu-item .label { flex: 1; font-family: 'Hind Siliguri', sans-serif; font-size: 1rem; }
        .menu-item .label small { display: block; font-size: 0.75rem; color: var(--text-muted); }
        .menu-item .arrow { color: var(--text-muted); font-size: 0.85rem; opacity: 0; }
        .menu-item:hover .arrow { opacity: 1; color: var(--accent-1); }
        .menu-divider { height: 1px; background: var(--border); margin: 8px 0; }
        .menu-footer { padding-top: 14px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; }
        .modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(8px); z-index: 55; display: none; align-items: center; justify-content: center; padding: 20px; }
        .modal-overlay.open { display: flex; }
        .modal { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 24px; padding: 32px 28px; max-width: 540px; width: 100%; max-height: 90vh; overflow-y: auto; }
        .modal h3 { text-align: center; font-size: 1.5rem; background: var(--gradient-accent); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-bottom: 14px; font-family: 'Hind Siliguri', sans-serif; }
        .modal .desc { text-align: center; color: var(--text-secondary); font-size: 1.05rem; margin-bottom: 18px; font-family: 'Hind Siliguri', sans-serif; }
        .modal input { width: 100%; padding: 14px 18px; background: var(--bg-secondary); border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); font-size: 1.1rem; text-align: center; letter-spacing: 8px; outline: none; margin-bottom: 18px; font-family: 'Inter', sans-serif; }
        .modal input:focus { border-color: var(--accent-1); }
        .modal .btns { display: flex; gap: 12px; }
        .modal .btns button { flex: 1; padding: 14px; border: none; border-radius: 12px; font-weight: 700; font-size: 1.05rem; cursor: pointer; font-family: 'Hind Siliguri', sans-serif; }
        .modal .btns .confirm { background: var(--gradient-accent); color: #fff; }
        .modal .btns .cancel { background: var(--bg-secondary); color: var(--text-secondary); border: 1px solid var(--border); }
        .modal .btns .cancel:hover { border-color: var(--accent-1); color: var(--accent-1); }
        .modal .error { color: var(--like-color); text-align: center; font-size: 0.9rem; margin-top: 12px; display: none; font-family: 'Hind Siliguri', sans-serif; }
        .modal .modal-content { margin-top:18px; min-width:0; max-width:100%; overflow-x:hidden; }
        .toast { position: fixed; bottom: 80px; left: 50%; transform: translateX(-50%); background: var(--toast-bg); backdrop-filter: blur(20px); border: 1px solid var(--border); border-radius: 14px; padding: 12px 24px; color: var(--toast-text); font-size: 1rem; display: none; align-items: center; gap: 10px; z-index: 999; font-family: 'Hind Siliguri', sans-serif; max-width: 90%; }
        .toast.show { display: flex; }
        .toast i { color: var(--accent-2); font-size: 1.2rem; }
        .fund-counter-animate {
            display: inline-block;
            min-width: 3ch;
            font-variant-numeric: tabular-nums;
            will-change: contents;
            transform-origin: center;
        }
        .fund-counter-complete {
            animation: fundCounterSettle .28s ease-out;
        }
        .batch-fund-metric.overall .fund-counter-animate {
            font-variant-numeric: tabular-nums;
            text-align: right;
            white-space: nowrap;
        }
        @keyframes fundCounterSettle {
            0% { transform: scale(.96); opacity: .72; }
            100% { transform: scale(1); opacity: 1; }
        }
        .fund-section-tools .utility-btn {
            min-height: 40px;
            padding: 9px 16px;
            border-radius: 12px;
            font-weight: 700;
            letter-spacing: .01em;
        }
        .fund-section-tools .utility-btn:hover {
            transform: translateY(-1px);
            box-shadow: var(--shadow);
        }
        .fund-publish-btn { min-height: 46px; letter-spacing: .01em; transition: transform .2s ease, opacity .2s ease, box-shadow .2s ease; }
        .fund-publish-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: var(--shadow-lg); }
        .fund-publish-btn:disabled { opacity: .72; cursor: wait !important; }
        .fund-gallery { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-top: 14px; }
        @media (max-width: 480px) { .fund-gallery { grid-template-columns: 1fr 1fr; } }
        .fund-gallery .fund-item { background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; transition: 0.3s; position: relative; }
        .fund-gallery .fund-item:hover { transform: scale(1.02); border-color: var(--accent-1); }
        .fund-gallery .fund-item img { width: 100%; aspect-ratio: 9/16; object-fit: cover; display: block; }
        .fund-gallery .fund-item .fund-meta { padding: 6px 10px; font-size: 0.6rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; display: flex; justify-content: space-between; background: var(--bg-secondary); border-top: 1px solid var(--border); }
        .announcement-item { background: var(--gradient-card); border: 1px solid var(--border); border-radius: 16px; padding: 18px 20px; margin-bottom: 14px; }
        .announcement-item:hover { border-color: var(--accent-1); }
        .announcement-item .announcement-header { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
        .announcement-item .announcement-title { font-weight: 700; font-size: 1.1rem; color: var(--accent-1); font-family: 'Hind Siliguri', sans-serif; }
        .announcement-item .announcement-meta { font-size: 0.7rem; color: var(--text-muted); font-family: 'Hind Siliguri', sans-serif; display: flex; gap: 12px; flex-wrap: wrap; }
        .announcement-item .announcement-meta i { margin-right: 4px; color: var(--accent-2); }
        .announcement-item .announcement-body { overflow-wrap:anywhere; word-break:break-word; font-size:0.95rem; color: var(--text-secondary); font-family: 'Hind Siliguri', sans-serif; line-height: 1.6; margin: 10px 0 12px 0; }
        .announcement-item .announcement-image { margin-top: 10px; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
        .announcement-item .announcement-image img { width:100%; max-width:100%; aspect-ratio:16/9; max-height:400px; object-fit: contain; display: block; background: var(--bg-secondary); }
        .offline { display: none; background: #ff2255; color: #fff; text-align: center; padding: 6px 12px; font-size: 0.85rem; font-weight: 600; position: sticky; top: 0; z-index: 29; font-family: 'Hind Siliguri', sans-serif; }
        .offline.show { display: block; }
        .search-slide { position: fixed; top: -100%; left: 0; right: 0; max-width: 100%; margin: 0 auto; background: var(--nav-bg); backdrop-filter: blur(20px); border-bottom: 1px solid var(--border); z-index: 35; padding: 18px 22px; transition: top 0.4s ease; box-shadow: var(--shadow-lg); }
        .search-slide.open { top: 0; }
        .search-slide input { width: 100%; padding: 14px 18px; background: var(--bg-tertiary); border: 1px solid var(--border); border-radius: 12px; color: var(--text-primary); font-size: 1rem; outline: none; }
        .search-slide input:focus { border-color: var(--accent-1); }
        .search-results { margin-top: 14px; max-height: 200px; overflow-y: auto; }
        .search-result-item { padding: 12px 16px; border-radius: 12px; cursor: pointer; display: flex; align-items: center; gap: 14px; color: var(--text-primary); font-size: 0.95rem; }
        .search-result-item:hover { background: var(--bg-hover); color: var(--accent-1); }
        .search-result-item i { color: var(--accent-2); width: 22px; flex: 0 0 22px; }
        .search-result-item span { min-width: 0; flex: 1; }
        .search-result-item small { color: var(--text-muted); font-size: 0.68rem; margin-left: auto; text-align: right; }
        @media (max-width: 600px) {
            .search-result-item { padding: 11px 12px; gap: 10px; }
            .search-result-item small { display: none; }
        }
        .forum-post-btn-wrap { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; flex-wrap: wrap; gap: 10px; background: var(--gradient-accent); padding: 10px 18px; border-radius: 12px; }
        .forum-post-btn-wrap .btn-text { display: flex; align-items: center; gap: 12px; }
        .forum-post-btn-wrap .btn-text i { color: #fff; font-size: 1.2rem; }
        .forum-post-btn-wrap .btn-text span { color: #fff; font-weight: 600; font-family: 'Hind Siliguri', sans-serif; font-size: 0.95rem; }
        .forum-post-btn-wrap .new-post-btn { padding: 8px 20px; background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.3); border-radius: 10px; color: #fff; font-weight: 600; font-size: 0.85rem; cursor: pointer; font-family: 'Hind Siliguri', sans-serif; display: flex; align-items: center; gap: 6px; }
        .forum-post-btn-wrap .new-post-btn:hover { background: rgba(255,255,255,0.35); transform: scale(1.05); }
        @media (max-width: 480px) { .forum-post-btn-wrap { flex-direction: column; text-align: center; padding: 12px 16px; } .forum-post-btn-wrap .new-post-btn { width: 100%; justify-content: center; } }
        .forum-filter button.active { background: var(--accent-1); color: #fff !important; border-color: var(--accent-1) !important; }
        .ripple { position: relative; overflow: hidden; }
        .ripple-effect { position: absolute; border-radius: 50%; background: rgba(255,255,255,0.3); transform: scale(0); animation: rippleAnim 0.6s linear; pointer-events: none; }
        @keyframes rippleAnim { to { transform: scale(4); opacity: 0; } }
        #forumImagePreview img, #announcementImagePreview img, #fundImagePreview img { max-width: 100%; max-height: 200px; border-radius: 8px; border: 1px solid var(--border); margin-top: 6px; display: block; }
        .marquee-wrap { background: var(--gradient-section); padding: 10px 16px; border-radius: 14px; margin: 10px 0 14px 0; border: 1px solid var(--border); overflow: hidden; }
        .marquee-wrap marquee { display: block; }
        .counter-animate { transition: all 0.3s ease; }
        .syllabus-table-wrap { max-height: 300px; overflow-y: auto; }
        .syllabus-table-wrap::-webkit-scrollbar { width: 6px; }
        .syllabus-table-wrap::-webkit-scrollbar-track { background: var(--bg-tertiary); border-radius: 10px; }
        .syllabus-table-wrap::-webkit-scrollbar-thumb { background: var(--accent-1); border-radius: 10px; }


        


/* ===== Fund report clarity + course note routing ===== */
.batch-fund-image-wrap{
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--bg-secondary);
    border-radius:14px;
}
.batch-fund-image-wrap img{
    box-sizing:border-box;
    object-fit:contain !important;
    object-position:center center;
    image-rendering:auto;
    background:var(--bg-secondary);
}
.batch-fund-report{
    min-width:0;
    overflow:hidden;
}
.batch-fund-report-head,
.batch-fund-metrics,
.batch-fund-image-wrap{
    min-width:0;
}
.batch-fund-report-heading h3,
.batch-fund-meta,
.batch-fund-metric strong,
.batch-fund-metric span{
    overflow-wrap:anywhere;
    word-break:break-word;
}

/* ===== 15-request polish layer ===== */
        html { scroll-behavior: smooth; }
        body, button, input, textarea, select, a, .quick-card, .routine-day, .menu-item, .note-item, .forum-question, .blog-post, .announcement-item { transition: all .28s ease; }
        .counter-animate { font-variant-numeric: tabular-nums; will-change: contents; opacity: 0; transform: translateY(8px) scale(.96); }
        .counter-animate.counter-ready { opacity: 1; transform: translateY(0) scale(1); } .counter-animate { display:inline-block; min-width:1ch; }
        .routine-jump { cursor:pointer; }
        .routine-jump:hover { border-color:var(--accent-1); transform:translateY(-3px); }
        .syllabus-semester-card { background:var(--gradient-card); border:1px solid var(--border); border-radius:16px; padding:14px; margin:10px 0 14px; box-shadow:var(--shadow); }
        .syllabus-semester-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; flex-wrap:wrap; }
        .syllabus-semester-head strong { color:var(--accent-1); font-family:'Hind Siliguri',sans-serif; font-size:1rem; }
        .syllabus-semester-head span { color:var(--text-muted); font-size:.72rem; }
        .syllabus-table-wrap { max-height:340px; overflow:auto; scrollbar-gutter:stable; }
        .syllabus-table { min-width:720px; }
        .syllabus-table tbody tr:nth-child(even) td { background:rgba(255,255,255,.018); }
        .syllabus-table td, .syllabus-table th { white-space:nowrap; }
        /* Question subjects mirror the Notes hierarchy: Year -> Semester -> Subject -> PDFs. */
        .question-topics { padding-left: 10px; }
        .question-subject-item { margin: 7px 0; min-width: 0; }
        .question-subject-label { display:flex; align-items:center; gap:10px; min-width:0; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--bg-tertiary); color:var(--text-secondary); cursor:pointer; }
        .question-subject-label:hover, .question-subject-label.open { border-color:var(--accent-1); color:var(--text-primary); background:var(--bg-hover); }
        .question-subject-copy { min-width:0; flex:1; display:flex; flex-direction:column; gap:1px; }
        .question-subject-copy strong { color:var(--accent-1); font:700 .78rem/1.25 'Inter',sans-serif; overflow-wrap:anywhere; }
        .question-subject-copy small { color:var(--text-secondary); font:500 .72rem/1.35 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; word-break:break-word; }
        .question-subject-count { flex:0 0 auto; color:var(--text-muted); font:600 .62rem/1 'Inter',sans-serif; white-space:nowrap; }
        .question-subject-label > i { flex:0 0 auto; color:var(--accent-2); font-size:.7rem; transition:transform .2s ease; }
        .question-subject-resources { display:none; padding:2px 0 4px 8px; min-width:0; }
        .question-subject-resources.open { display:block; }
        .question-subject-resources .notes-resource-card { box-shadow:none; margin:6px 0; }
        @media (max-width:600px) {
            .question-topics { padding-left:6px; }
            .question-subject-label { padding:9px 10px; gap:7px; }
            .question-subject-copy strong { font-size:.72rem; }
            .question-subject-copy small { font-size:.66rem; }
            .question-subject-count { font-size:.58rem; }
        }
        .notes-resource-card { display:flex; cursor:pointer; min-width:0; align-items:center; gap:12px; width:100%; padding:12px 14px; margin:7px 0; background:var(--gradient-card); border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow); }
        .notes-resource-card:hover { transform:translateY(-2px); border-color:var(--accent-1); box-shadow:var(--shadow-lg); }
        .notes-resource-card.resource-highlight { border-color:var(--accent-1); box-shadow:0 0 0 2px var(--accent-1), var(--shadow-lg); }
        .notes-resource-card .resource-icon { width:42px; height:42px; flex:0 0 42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:var(--bg-tertiary); color:var(--accent-2); font-size:1.05rem; }
        .notes-resource-card .resource-main { min-width:0; flex:1; }
        .notes-resource-card .resource-name { display:block; color:var(--accent-1); font-weight:600; font-family:'Hind Siliguri',sans-serif; font-size:.92rem; overflow-wrap:anywhere; }
.notes-resource-card .resource-course-title{display:block;margin-top:2px;color:var(--text-secondary);font:500 .7rem/1.35 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;word-break:break-word;}
.notes-resource-card .resource-description{display:block;margin-top:5px;color:var(--text-secondary);font:500 .78rem/1.5 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;word-break:break-word;max-width:72ch;}
.notes-resource-card[data-resource-type="question"] .resource-name{font-size:1rem;font-weight:750;line-height:1.35;}
.notes-resource-card[data-resource-type="question"] .resource-description{color:var(--text-primary);font-size:.8rem;line-height:1.55;margin-bottom:6px;}
.notes-resource-card[data-resource-type="question"] .resource-course-title{font-size:.68rem;opacity:.9;}
.notes-resource-card[data-resource-type="question"] .resource-meta{margin-top:5px;font-size:.62rem;}
@media (max-width:700px){.notes-resource-card[data-resource-type="question"] .resource-name{font-size:.94rem;}.notes-resource-card[data-resource-type="question"] .resource-description{font-size:.76rem;line-height:1.5;}}
        .notes-resource-card .resource-meta { display:flex; gap:8px; flex-wrap:wrap; margin-top:3px; color:var(--text-muted); font-size:.65rem; }
        .notes-resource-card .resource-open { border:1px solid var(--border); background:var(--bg-secondary); color:var(--text-secondary); border-radius:20px; padding:6px 12px; cursor:pointer; white-space:nowrap; }
        .notes-resource-card .resource-open:hover { border-color:var(--accent-1); color:var(--accent-1); }
        .notes-resource-card .delete-btn { position:relative; z-index:10; pointer-events:auto!important; cursor:pointer!important; }
        .notes-resource-card .resource-actions { display:flex; flex-wrap:wrap; gap:6px; margin-left:auto; max-width:100%; }
        .notes-resource-card .resource-open, .notes-resource-card .resource-download { border:1px solid var(--border); background:var(--bg-secondary); color:var(--text-secondary); border-radius:20px; padding:6px 11px; cursor:pointer; white-space:nowrap; font:inherit; font-size:.72rem; }
        .notes-resource-card .resource-open:hover, .notes-resource-card .resource-download:hover { border-color:var(--accent-1); color:var(--accent-1); }
        @media (max-width:700px) { .notes-resource-card { align-items:flex-start; flex-wrap:wrap; } .notes-resource-card .resource-actions { width:100%; margin-left:0; } .notes-resource-card .resource-actions button { flex:1 1 120px; } }

        .resource-pdf-btn { margin-top:8px; border:1px solid var(--border); background:var(--bg-secondary); color:var(--text-secondary); border-radius:20px; padding:6px 12px; cursor:pointer; }
        .resource-pdf-btn:hover { border-color:var(--accent-1); color:var(--accent-1); }
        .marquee-wrap { position:relative; }
        .marquee-track { display:flex; width:max-content; animation:marqueeInfinite 22s linear infinite; will-change:transform; }
        .marquee-content { display:flex; align-items:center; white-space:nowrap; padding-right:80px; }
        @keyframes marqueeInfinite { from { transform:translateX(0); } to { transform:translateX(-50%); } }
        .image-lightbox { position:fixed; inset:0; z-index:3400; display:flex; align-items:center; justify-content:center; padding:clamp(12px,3vw,24px); background:rgba(0,0,0,.9); backdrop-filter:blur(10px); opacity:0; visibility:hidden; pointer-events:none; transition:opacity .24s ease, visibility 0s linear .24s; overflow:hidden; overscroll-behavior:contain; }
        .image-lightbox.open { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .24s ease, visibility 0s linear 0s; }
        .image-lightbox img { display:block; width:auto; height:auto; max-width:94vw; max-height:90vh; object-fit:contain; border-radius:12px; box-shadow:0 10px 50px rgba(0,0,0,.55); transform-origin:center; transform:translate3d(0,0,0) scale(.94); opacity:0; cursor:grab; user-select:none; -webkit-user-drag:none; will-change:transform,opacity; backface-visibility:hidden; transition:transform .24s cubic-bezier(.22,1,.36,1), opacity .18s ease; }
        .image-lightbox.open img.is-loaded { transform:translate3d(0,0,0) scale(1); opacity:1; }
        .image-lightbox img.dragging { cursor:grabbing; transition:none; }
        .image-lightbox.loading::after { content:'Loading image…'; position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:rgba(255,255,255,.72); font-size:.78rem; pointer-events:none; }
        .image-lightbox .lightbox-close { position:absolute; top:18px; right:20px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.35); color:#fff; cursor:pointer; font-size:1.2rem; z-index:2; }
        .image-lightbox .lightbox-close:hover { transform:rotate(90deg) scale(1.05); border-color:var(--accent-1); }
        .image-lightbox .lightbox-hint { position:absolute; bottom:16px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.65); font-size:.72rem; pointer-events:none; }
        .video-lightbox { position:fixed; inset:0; z-index:2001; display:none; align-items:center; justify-content:center; padding:24px; background:rgba(0,0,0,.92); backdrop-filter:blur(12px); opacity:0; transition:opacity .25s ease; }
        .video-lightbox.open { display:flex; opacity:1; }
        .video-lightbox video { width:min(1100px,94vw); max-height:88vh; border-radius:14px; background:#000; box-shadow:0 12px 60px rgba(0,0,0,.65); outline:none; }
        .video-lightbox .lightbox-close { position:absolute; top:18px; right:20px; width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:rgba(0,0,0,.4); color:#fff; cursor:pointer; font-size:1.2rem; z-index:2; }
        .clickable-media { cursor:pointer; }
        .clickable-media:hover { border-color:var(--accent-1); }
        @media (max-width:700px) { .video-lightbox { padding:12px; } .video-lightbox video { width:96vw; max-height:82vh; } }

        .menu-panel { width:min(420px, 88vw); max-width:92vw; }
        .menu-item { min-height:62px; padding:16px 18px; }
        @media (min-width:1024px) {
            .menu-panel { width:420px; max-width:92vw; padding:30px 24px; }
            .menu-item { min-height:70px; padding:18px 20px; }
            .menu-item .label { font-size:1.08rem; }
            .menu-item .label small { font-size:.8rem; }
            .menu-item i { width:44px; height:44px; }
            .modal { max-width:760px; }
        }
        @media (max-width:700px) {
            .notes-resource-card .resource-open { margin-left:auto; }
            .syllabus-table-wrap { max-height:320px; }
            .image-lightbox { padding:12px; }
        }
        @media (prefers-reduced-motion: reduce) {
            *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; }
        }
    

        /* Professional syllabus table scrolling */
        .syllabus-table-wrap {
            width:100%; max-width:100%; overflow-x:auto; overflow-y:auto;
            max-height:360px; border:1px solid var(--border); border-radius:12px;
            scrollbar-width:thin; overscroll-behavior:contain;
        }
        .syllabus-table { width:100%; min-width:720px; border-collapse:separate; border-spacing:0; }
        .syllabus-table thead th { position:sticky; top:0; z-index:2; background:var(--bg-secondary); box-shadow:0 1px 0 var(--border); }
        .syllabus-table td, .syllabus-table th { padding:11px 12px; }
        @media (max-width:767px) { .syllabus-table-wrap { max-height:330px; } .syllabus-table { min-width:680px; } }


        /* ===== Question sharing target-subject UX ===== */
        .question-course-helper {
            margin:-5px 0 10px;
            padding:8px 10px;
            border-left:3px solid var(--accent-2);
            border-radius:0 8px 8px 0;
            background:var(--bg-tertiary);
            color:var(--text-muted);
            font:500 .68rem/1.45 'Hind Siliguri',sans-serif;
            overflow-wrap:anywhere;
        }
        #questionShareForm [name="q_course_code"]:disabled {
            opacity:.65;
            cursor:not-allowed;
        }
        .question-subject-item { min-width:0; margin:7px 0; }
        .question-subject-label {
            display:flex; align-items:center; gap:9px; min-width:0;
            padding:9px 10px; border:1px solid var(--border); border-radius:11px;
            background:var(--bg-tertiary); color:var(--text-primary); cursor:pointer;
        }
        .question-subject-label:hover, .question-subject-label.open { border-color:var(--accent-1); background:var(--bg-hover); }
        .question-subject-copy { min-width:0; flex:1; display:block; overflow:hidden; }
        .question-subject-copy strong { display:block; color:var(--accent-1); font:700 .76rem/1.2 'Inter',sans-serif; overflow-wrap:anywhere; }
        .question-subject-copy small { display:block; margin-top:2px; color:var(--text-secondary); font:500 .68rem/1.35 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
        .question-subject-count { flex:0 0 auto; color:var(--accent-2); font:700 .62rem/1 'Inter',sans-serif; white-space:nowrap; }
        .question-subject-label > i { flex:0 0 auto; color:var(--text-muted); transition:transform .25s ease; }
        .question-subject-resources { display:none; padding:3px 0 2px 10px; min-width:0; }
        .question-subject-resources.open { display:block; animation:fadeIn .22s ease; }
        @media (max-width:700px) {
            .question-subject-label { align-items:flex-start; }
            .question-subject-count { font-size:.58rem; }
            .question-subject-resources { padding-left:4px; }
        }

        /* ===== FINAL RESPONSIVE SAFETY ===== */
        html, body { max-width:100%; overflow-x:hidden; }
        #app { width:100%; max-width:1200px; overflow-x:clip; }
        .page, .page.active { max-width:100%; min-width:0; overflow-x:clip; }
        .stats-grid, .quick-actions, .contributors, .routine-section, .notice, .section-title,
        .tabs, .tab-content, .year-group, .semester-dropdown, .syllabus-semester-card { max-width:100%; box-sizing:border-box; }
        .menu-panel { overscroll-behavior:contain; }
        @media (max-width:767px) {
            .menu-panel { width:min(360px,92vw); padding:20px 16px; }
            .menu-item { min-height:58px; padding:14px; }
        }

        /* ===== Saved Notes + Direct PDF Search ===== */
        .saved-notes-section {
            margin: 0 0 18px;
            padding: 15px;
            border: 1px solid var(--border);
            border-radius: 16px;
            background: var(--gradient-section);
            box-shadow: var(--shadow);
            min-width: 0;
        }
        .saved-notes-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 10px;
            min-width: 0;
        }
        .saved-notes-header h4 {
            color: var(--accent-1);
            font: 700 1rem/1.25 'Hind Siliguri', sans-serif;
            margin: 0;
        }
        .saved-notes-header h4 i { color: var(--accent-2); margin-right: 7px; }
        .saved-notes-header p {
            color: var(--text-muted);
            font: 400 .7rem/1.45 'Hind Siliguri', sans-serif;
            margin-top: 3px;
            overflow-wrap: anywhere;
        }
        .saved-notes-count {
            flex: 0 0 auto;
            padding: 5px 9px;
            border-radius: 999px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            color: var(--accent-2);
            font: 700 .65rem/1 'Inter', sans-serif;
            white-space: nowrap;
        }
        .saved-notes-empty, .materials-direct-empty {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 4px;
            min-height: 100px;
            padding: 18px;
            text-align: center;
            border: 1px dashed var(--border);
            border-radius: 12px;
            background: rgba(255,255,255,.012);
            color: var(--text-muted);
            font-family: 'Hind Siliguri', sans-serif;
        }
        .saved-notes-empty i, .materials-direct-empty i { color: var(--accent-1); font-size: 1.45rem; margin-bottom: 2px; }
        .saved-notes-empty strong, .materials-direct-empty strong { color: var(--text-secondary); font-size: .82rem; }
        .saved-notes-empty span, .materials-direct-empty span { font-size: .68rem; }
        .saved-notes-empty b { color: var(--accent-2); }
        .saved-notes-section .notes-resource-card { margin: 7px 0; }
        .note-resource-actions {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 6px;
            flex: 0 0 auto;
            max-width: 100%;
            flex-wrap: wrap;
        }
        .note-save-btn {
            min-height: 32px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 5px;
            padding: 6px 10px;
            border: 1px solid var(--border);
            border-radius: 20px;
            background: var(--bg-secondary);
            color: var(--text-muted);
            cursor: pointer;
            font: 700 .7rem/1 'Hind Siliguri', sans-serif;
            white-space: nowrap;
            transition: .2s ease;
        }
        .note-save-btn:hover { border-color: var(--accent-1); color: var(--accent-1); transform: translateY(-1px); }
        .note-save-btn.is-saved { color: var(--accent-1); border-color: var(--accent-1); background: rgba(166,155,255,.09); }
        .note-save-btn.is-saved i { color: #F59E0B; }
        .resource-unavailable { color: var(--text-muted); font: 600 .68rem/1.2 'Hind Siliguri', sans-serif; }
        .materials-direct-search {
            width: 100%;
            margin: 0 0 14px;
            padding: 14px;
            border: 1px solid var(--accent-1);
            border-radius: 16px;
            background: var(--gradient-card);
            box-shadow: var(--shadow-lg);
            min-width: 0;
            overflow: hidden;
        }
        .materials-direct-search[hidden] { display: none !important; }
        .materials-direct-search-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            margin-bottom: 8px;
        }
        .materials-direct-search-head > div { min-width: 0; }
        .materials-direct-search-head span { display: block; color: var(--accent-1); font: 700 .95rem/1.25 'Hind Siliguri', sans-serif; }
        .materials-direct-search-head span i { color: var(--accent-2); margin-right: 6px; }
        .materials-direct-search-head small { display: block; color: var(--text-muted); font: 400 .66rem/1.4 'Hind Siliguri', sans-serif; margin-top: 3px; }
        .materials-direct-search-head strong {
            flex: 0 0 auto;
            min-width: 30px;
            height: 30px;
            padding: 0 8px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border-radius: 999px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border);
            color: var(--accent-2);
            font: 800 .7rem/1 'Inter', sans-serif;
        }
        .materials-direct-results { display: grid; gap: 7px; min-width: 0; }
        .materials-direct-search .notes-resource-card { margin: 0; }
        @media (max-width:700px) {
            .saved-notes-header { align-items: flex-start; }
            .note-resource-actions { width: 100%; justify-content: flex-start; }
            .note-resource-actions .resource-open, .note-resource-actions .note-save-btn { flex: 1 1 105px; }
            .materials-direct-search { padding: 12px; }
            .materials-direct-search-head { align-items: flex-start; }
        }

        /* ===== NOTES / QUESTIONS SAFE SEARCH + RESOURCE LAYOUT ===== */
        .search-filter-wrapper { width:100%; max-width:100%; min-width:0; overflow:visible; }
        .search-filter-wrapper .search-icon-wrap { width:100%; min-width:0; position:relative; }
        .search-filter-wrapper input { display:block; width:100%; max-width:100%; min-width:0; padding-right:48px; }
        .materials-search-visible { visibility:visible; opacity:1; }
        .notes-resource-card .resource-main { min-width:0; flex:1 1 180px; overflow:hidden; }
        .notes-resource-card .resource-meta span { max-width:100%; overflow-wrap:anywhere; word-break:break-word; }
        .notes-resource-card .resource-actions { flex:0 1 auto; min-width:0; }
        .notes-resource-card .resource-open { max-width:100%; }
        .form-card .row { min-width:0; }
        .form-card .row > * { min-width:0; }
        @media (max-width:700px) {
            .form-card .row { flex-direction:column; gap:0; }
            .notes-resource-card { width:100%; max-width:100%; }
            .notes-resource-card .resource-actions { width:100%; margin-left:0; }
            .notes-resource-card .resource-actions button { width:100%; }
        }

        /* ===== 25-change professional enhancement layer ===== */
        .admin-share-box, .form-card, .announcement-item, .fund-item, .blog-post, .forum-question { min-width:0; overflow:hidden; }
        .admin-share-box { transition:opacity .25s ease, transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
        .admin-share-box:hover { border-color:var(--accent-1); box-shadow:var(--shadow); }
        .admin-share-box .cr-share-btn { width:auto!important; max-width:100%; padding:7px 12px!important; background:var(--bg-tertiary)!important; color:var(--text-muted)!important; border:1px solid var(--border)!important; border-radius:10px!important; font-size:.68rem!important; transition:all .25s ease; }
        .admin-share-box .cr-share-btn:hover { color:var(--accent-1)!important; border-color:var(--accent-1)!important; transform:translateY(-1px); }
        .blog-post .media { height:auto; aspect-ratio:auto; }
        .blog-post .media img, .blog-post .media video { width:100%; height:auto; max-height:75vh; aspect-ratio:auto!important; object-fit:contain!important; display:block; }
        .blog-comments .comment, .forum-answer { overflow:hidden; overflow-wrap:anywhere; word-break:break-word; }
        .discussion-reply-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; margin-top:10px; padding:10px; background:var(--bg-tertiary); border:1px solid var(--border); border-radius:12px; }
        .discussion-reply-form input { width:100%; min-width:0; padding:9px 12px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:10px; color:var(--text-primary); outline:none; font:inherit; }
        .discussion-reply-form input:focus { border-color:var(--accent-1); box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-1) 12%, transparent); }
        .discussion-reply-form .reply-text { grid-column:1/-1; }
        .discussion-reply-form button { grid-column:1/-1; padding:9px 14px; border:0; border-radius:10px; background:var(--gradient-accent); color:#fff; font-weight:700; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease; }
        .discussion-reply-form button:hover { transform:translateY(-1px); box-shadow:var(--shadow); }
        .reply-author-line { display:flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; }
        .reply-author-line .reply-name { color:var(--accent-1); font-weight:700; overflow-wrap:anywhere; }
        .reply-author-line .reply-id, .reply-author-line .reply-time { color:var(--text-muted); font-size:.62rem; }
        .materials-cr-form { margin-top:12px; padding:12px; border:1px dashed var(--border); border-radius:12px; background:var(--bg-secondary); animation:fadeIn .28s ease; }
        .materials-cr-form .form-card { margin:0; padding:0; border:0; box-shadow:none; background:transparent; }
        .admin-utility-strip { display:flex; justify-content:flex-end; align-items:center; gap:8px; margin:0 0 8px; min-width:0; }
        .admin-utility-strip .utility-btn { border:1px dashed var(--border); background:transparent; color:var(--text-muted); border-radius:9px; padding:5px 9px; font-size:.62rem; cursor:pointer; opacity:.5; transition:all .25s ease; }
        .admin-utility-strip .utility-btn:hover { opacity:1; color:var(--accent-1); border-color:var(--accent-1); transform:translateY(-1px); }
        .full-screen-section { position:fixed!important; inset:0!important; width:100vw!important; height:100dvh!important; max-width:none!important; max-height:none!important; margin:0!important; border-radius:0!important; z-index:3000!important; overflow-y:auto!important; overflow-x:hidden!important; padding:calc(70px + env(safe-area-inset-top)) 16px calc(80px + env(safe-area-inset-bottom))!important; background:var(--bg-secondary)!important; animation:sectionExpand .28s ease; }
        @keyframes sectionExpand { from { opacity:.75; transform:scale(.985); } to { opacity:1; transform:scale(1); } }
        .full-screen-section .section-close-btn { position:fixed; top:calc(12px + env(safe-area-inset-top)); right:14px; z-index:3002; width:42px; height:42px; border-radius:50%; border:1px solid var(--border); background:var(--bg-tertiary); color:var(--text-secondary); cursor:pointer; box-shadow:var(--shadow); }
        .full-screen-section .section-close-btn:hover { color:var(--accent-1); border-color:var(--accent-1); transform:rotate(90deg); }
        .search-slide { z-index:3100; }
        .pdf-modal-overlay { z-index:3200; }
        .modal-overlay { z-index:3300; }
        .search-slide .search-results { overflow-x:hidden; }
        .search-result-item { animation:searchResultIn .22s ease both; }
        @keyframes searchResultIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
        .id-picker { display:grid!important; grid-template-columns:minmax(92px, .8fr) minmax(0, 1fr); gap:8px; align-items:center; padding:0 10px!important; }
        .id-picker select, .id-picker input { min-width:0!important; width:100%!important; border:0!important; background:transparent!important; margin:0!important; padding:12px 4px!important; color:var(--text-primary)!important; outline:none!important; font:inherit!important; }
        .id-picker select { color:var(--text-secondary)!important; cursor:pointer; }
        .fund-gallery .fund-item img { width:100%; height:auto; aspect-ratio:2/3; max-height:75vh; object-fit:cover; background:var(--bg-secondary); }
        .fund-gallery .fund-title { display:block; padding:8px 10px 2px; color:var(--accent-1); font-weight:700; font-family:'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
        .fund-gallery .fund-meta { flex-wrap:wrap; gap:6px; }
        .announcement-item { animation:resourceIn .3s ease both; }
        .fund-item { animation:resourceIn .3s ease both; }
        @keyframes resourceIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
        @media (max-width:600px) { .discussion-reply-form { grid-template-columns:1fr; } .discussion-reply-form .reply-text, .discussion-reply-form button { grid-column:auto; } .id-picker { grid-template-columns:92px minmax(0,1fr); } }


        /* ===== Home identity section ===== */
        /* Compact closing block: one project image, one location card, and the two linked logos. */
        .home-identity-section{--id-accent:var(--accent-1);--id-accent-2:var(--accent-2);--id-surface:var(--bg-card);--id-border:var(--border);--id-text:var(--text-primary);--id-muted:var(--text-secondary);position:relative;overflow:hidden;margin:24px 0 18px;padding:0 0 16px;border:1px solid var(--id-border);border-radius:22px;background:var(--id-surface);box-shadow:var(--shadow);isolation:isolate}        .identity-banner-link{position:relative;display:block;width:100%;aspect-ratio:6/7;overflow:hidden;background:var(--bg-secondary);text-decoration:none;outline:none}        .identity-banner-link img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.2,.7,.2,1),filter .35s ease}        .identity-banner-link::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.16));pointer-events:none}        .identity-banner-link:hover img,.identity-banner-link:focus-visible img{transform:scale(1.025);filter:saturate(1.04) contrast(1.02)}        .identity-banner-link:focus-visible{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--id-accent) 55%,transparent)}        .identity-bottom{display:grid;grid-template-columns:minmax(88px,150px) minmax(88px,150px) minmax(0,1fr);gap:14px;align-items:stretch;margin:14px 14px 0;min-width:0}        .identity-square-link{display:block;width:100%;aspect-ratio:1/1;min-width:0;overflow:hidden;border:1px solid var(--id-border);border-radius:14px;background:var(--bg-tertiary);box-shadow:var(--shadow);outline:none}        .identity-square-link img{display:block;width:100%;height:100%;object-fit:contain;padding:10px;background:var(--bg-tertiary);transition:transform .35s ease,filter .3s ease}        .identity-square-link:hover img,.identity-square-link:focus-visible img{transform:scale(1.035);filter:saturate(1.04)}        .identity-square-link:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--id-accent) 34%,transparent),var(--shadow)}        .identity-location{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-width:0;padding:14px 16px;border:1px solid var(--id-border);border-radius:14px;background:var(--bg-tertiary);color:var(--id-text);box-shadow:var(--shadow);text-decoration:none}        .identity-location-title{margin:0 0 6px;color:var(--id-text);font-family:'Inter',sans-serif;font-size:clamp(.76rem,1.7vw,.94rem);font-weight:700;line-height:1.45;overflow-wrap:anywhere}        .identity-location-university{margin:0;color:var(--id-muted);font-family:'Inter',sans-serif;font-size:clamp(.68rem,1.5vw,.82rem);font-weight:500;line-height:1.5;overflow-wrap:anywhere}        .identity-location-link{display:inline-flex;align-items:center;gap:7px;max-width:100%;margin-top:9px;color:var(--id-accent);font-family:'Inter',sans-serif;font-size:clamp(.72rem,1.6vw,.9rem);font-weight:700;line-height:1.35;overflow-wrap:anywhere;text-decoration:none}        .identity-location-link i{flex:0 0 auto;font-size:1rem}        .identity-location-link:hover,.identity-location-link:focus-visible{text-decoration:underline;text-underline-offset:3px}        body.light .home-identity-section{--id-accent:var(--accent-1);--id-accent-2:var(--accent-2)}        body.dark .home-identity-section{--id-accent:var(--accent-1);--id-accent-2:var(--accent-2)}        body.neon .home-identity-section{--id-accent:var(--accent-1);--id-accent-2:var(--accent-2)}        @media(max-width:760px){          .home-identity-section{margin-top:18px;border-radius:18px;padding-bottom:13px}          .identity-bottom{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 12px 0}          .identity-location{grid-column:1/-1;min-height:0;padding:13px 14px}        }        @media(max-width:430px){          .home-identity-section{margin-top:16px;border-radius:16px;padding-bottom:11px}          .identity-bottom{gap:8px;margin:10px 10px 0}          .identity-square-link{border-radius:11px}          .identity-square-link img{padding:8px}          .identity-location{border-radius:11px;padding:11px 12px}          .identity-location-title{font-size:.72rem}          .identity-location-university{font-size:.65rem}          .identity-location-link{font-size:.69rem;margin-top:7px}        }        @media(max-width:340px){          .identity-bottom{gap:7px;margin-left:8px;margin-right:8px}          .identity-location-title{font-size:.69rem}          .identity-location-university{font-size:.62rem}          .identity-location-link{font-size:.66rem}        }        @media(prefers-reduced-motion:reduce){.identity-banner-link img,.identity-square-link img{transition:none}}

        /* ===== Requested UI polish: forms, sections, search, menu ===== */
        .form-card { overflow:hidden; isolation:isolate; }
        .form-card h4 { display:flex; align-items:center; gap:7px; padding-bottom:9px; border-bottom:1px solid var(--border); }
        .form-card form { display:grid; gap:2px; }
        .form-card form > input,
        .form-card form > textarea,
        .form-card form > select,
        .form-card form > .id-picker,
        .form-card form > .row,
        .form-card form > .captcha-wrapper { min-width:0; }
        .form-card input,
        .form-card textarea,
        .form-card select {
            transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease, background .22s ease;
        }
        .form-card input:hover,
        .form-card textarea:hover,
        .form-card select:hover {
            border-color:color-mix(in srgb, var(--accent-1) 48%, var(--border));
        }
        .form-card input:focus,
        .form-card textarea:focus,
        .form-card select:focus { transform:translateY(-1px); }
        .form-card input[type="file"] { cursor:pointer; }
        .form-card input[type="file"]::file-selector-button {
            margin-right:10px; padding:7px 11px; border:1px solid var(--border);
            border-radius:8px; background:var(--bg-tertiary); color:var(--text-secondary);
            cursor:pointer; transition:.22s ease;
        }
        .form-card input[type="file"]:hover::file-selector-button {
            border-color:var(--accent-1); color:var(--accent-1);
        }
        #blogShareFormContainer,
        #questionShareFormContainer,
        #noteShareFormContainer,
        #announcementFormContainer,
        #fundPostFormContainer { animation:formReveal .28s ease both; }
        @keyframes formReveal {
            from { opacity:0; transform:translateY(-7px); }
            to { opacity:1; transform:translateY(0); }
        }
        .form-close-btn {
            display:flex; align-items:center; justify-content:center; gap:6px;
            width:auto!important; margin:0 0 10px auto; padding:6px 10px!important;
            background:var(--bg-tertiary)!important; color:var(--text-muted)!important;
            border:1px solid var(--border)!important; border-radius:9px!important;
            font:600 .68rem 'Hind Siliguri',sans-serif!important; cursor:pointer;
            transition:all .22s ease;
        }
        .form-close-btn:hover { color:var(--accent-1)!important; border-color:var(--accent-1)!important; transform:translateY(-1px); }
        #blogShareForm textarea[name="post_content"] { min-height:100px; resize:vertical; }
        .admin-utility-strip {
            position:sticky; top:0; z-index:4; padding:4px 0 8px;
            background:linear-gradient(var(--bg-secondary) 72%, transparent);
        }
        .admin-utility-strip .utility-btn,
        .cr-share-btn {
            white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis;
        }
        .section-fullscreen-modal {
            position:fixed!important; inset:0!important; width:100vw!important; height:100dvh!important;
            max-width:none!important; max-height:none!important; margin:0!important; border-radius:0!important;
            padding:calc(82px + env(safe-area-inset-top)) 16px calc(84px + env(safe-area-inset-bottom))!important;
            overflow-y:auto!important; overflow-x:hidden!important; background:var(--bg-secondary)!important;
            z-index:3301!important; animation:sectionExpand .28s ease both;
        }
        .section-fullscreen-modal #modalContent {
            width:100%; max-width:1180px; margin:0 auto; min-width:0; overflow-x:hidden;
        }
        .section-fullscreen-modal #modalContent > * { min-width:0; max-width:100%; }
        .section-fullscreen-modal #modalTitle,
        .section-fullscreen-modal #modalDesc {
            max-width:1180px; margin-left:auto; margin-right:auto; text-align:left;
        }
        .section-fullscreen-modal #modalTitle { padding-right:50px; }
        .section-fullscreen-modal .section-close-btn {
            position:fixed!important; top:calc(14px + env(safe-area-inset-top))!important;
            right:14px!important; z-index:3304!important;
        }
        .section-fullscreen-modal .fund-gallery { width:100%; min-width:0; }
        .section-fullscreen-modal .announcement-item,
        .section-fullscreen-modal .fund-item { min-width:0; overflow:hidden; }
        .menu-panel { width:40vw; max-width:40vw; border-right:1px solid var(--border); z-index:120; }
        @media (max-width: 767px) { .menu-panel { width:70vw; max-width:70vw; } }
        .menu-overlay { z-index:110; }
        .menu-panel .menu-items, .menu-panel .menu-item { min-width:0; }
        .menu-panel .menu-item .label {
            min-width:0; overflow-wrap:anywhere; word-break:break-word;
        }
        .search-slide { padding-top:calc(18px + env(safe-area-inset-top)); }
        .search-slide.open { animation:searchPanelIn .28s ease both; }
        @keyframes searchPanelIn {
            from { opacity:0; transform:translateY(-10px); }
            to { opacity:1; transform:translateY(0); }
        }
        .search-slide input {
            transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease;
        }
        .search-slide input:focus {
            box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-1) 13%, transparent);
            transform:translateY(1px);
        }

        .fund-tab-copy-head {
            display:flex; align-items:center; justify-content:space-between; gap:10px;
            flex-wrap:wrap; margin:0 0 12px; padding:10px 12px;
            border:1px solid var(--border); border-radius:12px;
            background:linear-gradient(135deg, rgba(77,184,212,.08), rgba(255,193,7,.05));
            color:var(--text-secondary); font-family:'Hind Siliguri',sans-serif;
        }
        .fund-tab-copy-head span { color:var(--text-primary); font-weight:800; font-size:.92rem; }
        .fund-tab-copy-head i { color:var(--accent-2); margin-right:6px; }
        .fund-tab-copy-head small { color:var(--text-muted); font-size:.72rem; }
        #blogPage .section-access-gate { max-width:760px; margin:0 auto 14px; }
        #blogPage #blogFundContent { min-width:0; overflow-x:hidden; }
        #blogPage #blogFundContent .fund-gallery { width:100%; min-width:0; }
        @media (max-width:600px) {
            .fund-tab-copy-head { align-items:flex-start; }
            .fund-tab-copy-head small { width:100%; }
        }
        .cr-share-btn { padding:8px 14px; border:1px solid var(--border); border-radius:10px; background:var(--gradient-accent); color:#fff; font:700 .8rem 'Hind Siliguri',sans-serif; }
        .cr-share-btn:hover { transform:translateY(-1px); box-shadow:var(--shadow); }
        .fund-section-tools .section-close-btn, .announcement-section-tools .section-close-btn { margin-left:auto; }

        /* Inline Batch Fund: exact original report layout, safely scoped for the Bulletin tab. */
        #blogPage #tab-batchfund .batch-fund-inline-content {
            min-width:0;
            width:100%;
            overflow-x:hidden;
            animation:formReveal .28s ease both;
        }
        #blogPage #tab-batchfund .batch-fund-inline-content > * {
            min-width:0;
            max-width:100%;
        }
        #blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools {
            position:relative;
            top:auto;
        }
        #blogPage #tab-batchfund .batch-fund-inline-content .section-close-btn {
            display:flex;
        }
        #blogPage #tab-batchfund .batch-fund-access-gate {
            transition:opacity .22s ease, transform .22s ease, max-height .3s ease, margin .3s ease, padding .3s ease;
        }
        #blogPage #tab-batchfund .batch-fund-access-gate.is-unlocking {
            opacity:0;
            transform:translateY(-6px);
        }
        #blogPage #tab-batchfund .batch-fund-inline-content .fund-gallery {
            width:100%;
            min-width:0;
        }
        @media (max-width:600px) {
            #blogPage #tab-batchfund .batch-fund-inline-content {
                overflow-x:hidden;
            }
            #blogPage #tab-batchfund .batch-fund-inline-content .batch-fund-form-grid {
                grid-template-columns:1fr 1fr;
            }
        }
        @media (max-width:420px) {
            #blogPage #tab-batchfund .batch-fund-inline-content .batch-fund-form-grid {
                grid-template-columns:1fr;
            }
        }

        .announcement-section-tools, .fund-section-tools, .blog-section-tools {
            display:flex; justify-content:space-between; align-items:center;
            gap:8px; flex-wrap:wrap; margin-bottom:12px;
        }
        .low-importance-share {
            opacity:.42; transform:scale(.96);
            transition:opacity .22s ease, transform .22s ease, border-color .22s ease, color .22s ease;
        }
        .low-importance-share:hover,
        .low-importance-share:focus-visible {
            opacity:.92; transform:scale(1);
            border-color:var(--accent-1)!important; color:var(--accent-1)!important;
        }
        .question-share-card, .blog-share-card { position:relative; overflow:hidden; }
        .question-share-card::before, .blog-share-card::before {
            content:""; position:absolute; inset:0 auto 0 0; width:3px;
            background:var(--gradient-accent); opacity:.8; pointer-events:none;
        }
        .materials-search-visible { animation:searchFieldIn .24s ease both; }
        @keyframes searchFieldIn {
            from { opacity:0; transform:translateY(-4px); }
            to { opacity:1; transform:translateY(0); }
        }
        @media (max-width:600px) {
            .section-fullscreen-modal { padding-left:12px!important; padding-right:12px!important; }
            .section-fullscreen-modal #modalTitle { font-size:1.25rem; }
            .form-card .row { flex-direction:column; gap:0; }
        }


        /* Added UI polish: preserve existing themes while making new sharing controls consistent. */
        .blog-share-card {
            background:var(--gradient-card);
            border:1px solid var(--border);
            border-radius:16px;
            padding:12px;
            box-shadow:var(--shadow);
        }
        .blog-share-card #blogShareFormContainer {
            margin-top:8px;
            padding:14px;
            background:var(--bg-secondary);
            border:1px solid var(--border);
            border-radius:14px;
        }
        .blog-share-card #blogShareForm,
        #questionShareForumFormContainer #questionShareForumForm {
            display:grid;
            gap:4px;
        }
        .blog-share-card #blogShareForm input,
        .blog-share-card #blogShareForm textarea,
        .blog-share-card #blogShareForm select,
        #questionShareForumFormContainer #questionShareForumForm input,
        #questionShareForumFormContainer #questionShareForumForm textarea,
        #questionShareForumFormContainer #questionShareForumForm select {
            width:100%;
            min-width:0;
            padding:12px 16px;
            margin:4px 0 8px;
            background:var(--bg-tertiary);
            border:1px solid var(--border);
            border-radius:12px;
            color:var(--text-primary);
            outline:none;
            font-family:'Hind Siliguri',sans-serif;
            transition:border-color .22s ease, box-shadow .22s ease, transform .22s ease, background .22s ease;
        }
        .blog-share-card #blogShareForm input:hover,
        .blog-share-card #blogShareForm textarea:hover,
        .blog-share-card #blogShareForm select:hover,
        #questionShareForumFormContainer #questionShareForumForm input:hover,
        #questionShareForumFormContainer #questionShareForumForm textarea:hover,
        #questionShareForumFormContainer #questionShareForumForm select:hover {
            border-color:color-mix(in srgb, var(--accent-1) 48%, var(--border));
        }
        .blog-share-card #blogShareForm input:focus,
        .blog-share-card #blogShareForm textarea:focus,
        .blog-share-card #blogShareForm select:focus,
        #questionShareForumFormContainer #questionShareForumForm input:focus,
        #questionShareForumFormContainer #questionShareForumForm textarea:focus,
        #questionShareForumFormContainer #questionShareForumForm select:focus {
            border-color:var(--accent-1);
            box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-1) 12%, transparent);
            transform:translateY(-1px);
        }
        .blog-share-card #blogShareForm textarea { min-height:100px; resize:vertical; }
        .blog-share-card #blogShareForm .id-picker,
        #questionShareForumFormContainer #questionShareForumForm .id-picker {
            margin:4px 0 8px;
        }
        .blog-share-card #blogShareForm .captcha-wrapper,
        #questionShareForumFormContainer #questionShareForumForm .captcha-wrapper {
            margin:4px 0 8px;
        }
        .blog-share-card #blogShareForm > button,
        #questionShareForumFormContainer #questionShareForumForm > button[type="submit"] {
            margin-top:4px;
        }
        .fund-gallery .fund-item .fund-title {
            padding:9px 10px 4px;
            color:var(--accent-1);
            font-weight:700;
            font-family:'Hind Siliguri',sans-serif;
            line-height:1.35;
            overflow-wrap:anywhere;
            word-break:break-word;
            background:var(--bg-tertiary);
            border-top:1px solid var(--border);
        }
        .fund-gallery .fund-item {
            animation:resourceIn .3s ease both;
        }
        @media (max-width:700px) {
            .menu-panel { width:40vw; max-width:40vw; padding-left:14px; padding-right:14px; }
            .menu-item { padding-left:10px; padding-right:10px; gap:9px; }
            .menu-item i { width:32px; height:32px; flex:0 0 32px; }
        }


        /* ===== Professional categorized menu ===== */
        .menu-items {
            display:flex; flex-direction:column; gap:16px; min-width:0;
            padding:2px 0 18px;
        }
        .menu-category {
            min-width:0; padding:0 0 2px;
        }
        .menu-category + .menu-category {
            border-top:1px solid var(--border);
            padding-top:15px;
        }
        .menu-category-heading {
            display:flex; align-items:center; justify-content:space-between; gap:10px;
            padding:0 5px 8px; min-width:0;
        }
        .menu-category-title {
            display:flex; align-items:center; gap:8px; min-width:0;
            color:var(--text-muted); font:800 .68rem/1.2 'Inter',sans-serif;
            letter-spacing:.08em; text-transform:uppercase;
        }
        .menu-category-title i {
            color:var(--accent-2); font-size:.72rem;
        }
        .menu-category-count {
            flex:0 0 auto; min-width:22px; height:20px; padding:0 7px;
            display:inline-flex; align-items:center; justify-content:center;
            border:1px solid var(--border); border-radius:999px;
            color:var(--text-muted); background:var(--bg-tertiary);
            font:700 .62rem/1 'Inter',sans-serif;
        }
        .menu-category-list {
            display:grid; gap:6px; min-width:0;
        }
        .menu-item {
            position:relative; min-width:0; width:100%;
            min-height:58px; padding:11px 12px;
            border:1px solid transparent; border-radius:14px;
            display:flex; align-items:center; gap:11px;
            background:transparent;
            transition:background .22s ease,border-color .22s ease,transform .22s ease,box-shadow .22s ease;
        }
        .menu-item:hover {
            background:var(--bg-hover); border-color:var(--border);
            transform:translateX(3px);
        }
        .menu-item-primary {
            background:linear-gradient(135deg, color-mix(in srgb, var(--accent-1) 8%, transparent), transparent);
            border-color:color-mix(in srgb, var(--accent-1) 12%, transparent);
        }
        .menu-item-primary:hover {
            border-color:color-mix(in srgb, var(--accent-1) 38%, var(--border));
            box-shadow:0 7px 22px color-mix(in srgb, var(--accent-1) 9%, transparent);
        }
        .menu-item-icon {
            flex:0 0 38px; width:38px; height:38px; border-radius:11px;
            display:flex; align-items:center; justify-content:center;
            background:var(--bg-tertiary); border:1px solid var(--border);
            color:var(--accent-2); font-size:.96rem;
        }
        .menu-item-primary .menu-item-icon {
            background:color-mix(in srgb, var(--accent-1) 11%, var(--bg-tertiary));
            border-color:color-mix(in srgb, var(--accent-1) 22%, var(--border));
            color:var(--accent-1);
        }
        .menu-item .label {
            min-width:0; flex:1 1 auto; overflow:hidden;
            color:var(--text-primary); font:700 .91rem/1.25 'Hind Siliguri',sans-serif;
        }
        .menu-item .label small {
            display:block; margin-top:3px; min-width:0;
            overflow-wrap:anywhere; word-break:break-word;
            color:var(--text-muted); font:500 .66rem/1.3 'Hind Siliguri',sans-serif;
        }
        .menu-priority {
            flex:0 0 auto; padding:4px 7px; border-radius:999px;
            color:var(--accent-1);
            background:color-mix(in srgb, var(--accent-1) 10%, transparent);
            border:1px solid color-mix(in srgb, var(--accent-1) 22%, transparent);
            font:800 .54rem/1 'Inter',sans-serif; letter-spacing:.04em;
            text-transform:uppercase;
        }
        .menu-item .arrow {
            flex:0 0 auto; color:var(--text-muted); font-size:.7rem; opacity:.65;
            transition:transform .2s ease,color .2s ease,opacity .2s ease;
        }
        .menu-item:hover .arrow { opacity:1; color:var(--accent-1); transform:translateX(2px); }
        .menu-divider { display:none; }
        @media (max-width:700px) {
            .menu-items { gap:14px; padding-bottom:14px; }
            .menu-category + .menu-category { padding-top:13px; }
            .menu-category-heading { padding-left:3px; padding-right:3px; }
            .menu-item { min-height:55px; padding:9px 10px; gap:9px; border-radius:13px; }
            .menu-item-icon { flex-basis:35px; width:35px; height:35px; border-radius:10px; font-size:.88rem; }
            .menu-item .label { font-size:.84rem; }
            .menu-item .label small { font-size:.61rem; }
            .menu-priority { padding:3px 6px; font-size:.49rem; }
        }
        @media (max-width:390px) {
            .menu-item { padding-left:8px; padding-right:8px; gap:8px; }
            .menu-item-icon { flex-basis:33px; width:33px; height:33px; }
            .menu-priority { display:none; }
        }

        /* ===== Final requested polish: menu, form closing, media preview, blog publish ===== */
        .menu-panel { width:40vw; max-width:none; }
        .menu-panel .menu-item .label { line-height:1.35; }
        .menu-panel .menu-item .label small { line-height:1.35; }
        .form-close-btn {
            width:100%; margin-top:8px; padding:10px 14px;
            background:var(--bg-tertiary); color:var(--text-muted);
            border:1px solid var(--border); border-radius:10px;
            font:600 .82rem 'Hind Siliguri',sans-serif; cursor:pointer;
            transition:all .25s ease;
        }
        .form-close-btn:hover {
            color:var(--accent-1); border-color:var(--accent-1);
            background:var(--bg-hover); transform:translateY(-1px);
        }
        .announcement-image, .fund-gallery .fund-item { cursor:zoom-in; }
        .announcement-image img, .fund-gallery .fund-item img {
            cursor:zoom-in; transition:transform .28s ease, filter .28s ease;
        }
        .announcement-image:hover img, .fund-gallery .fund-item:hover img {
            transform:scale(1.012); filter:brightness(1.04);
        }
        .section-fullscreen-modal .announcement-image {
            display:flex; align-items:center; justify-content:center;
            max-height:78vh; background:var(--bg-tertiary);
        }
        .section-fullscreen-modal .announcement-image img {
            width:100%; max-height:78vh; object-fit:contain;
        }
        .section-fullscreen-modal .fund-gallery .fund-item img {
            width:100%; max-height:78vh; object-fit:contain;
        }
        .blog-publish-btn {
            background:var(--gradient-accent)!important; color:#fff!important;
            border:1px solid color-mix(in srgb, var(--accent-1) 55%, transparent)!important;
            box-shadow:0 6px 22px color-mix(in srgb, var(--accent-1) 18%, transparent);
            position:relative; overflow:hidden;
        }
        .blog-publish-btn:hover {
            transform:translateY(-2px)!important;
            box-shadow:0 9px 28px color-mix(in srgb, var(--accent-2) 24%, transparent)!important;
            filter:brightness(1.06);
        }
        .blog-publish-btn:active { transform:translateY(0)!important; }
        @media (max-width:767px) {
            .menu-panel { width:82vw; }
            .menu-panel .menu-item { padding:14px 15px; gap:13px; }
            .menu-panel .menu-item i { flex:0 0 38px; }
            .menu-panel .menu-item .label { overflow-wrap:anywhere; word-break:normal; }
        }


        /* ===== Targeted final refinements ===== */
        .form-close-btn {
            position:relative; z-index:3;
            min-height:40px;
            display:flex; align-items:center; justify-content:center; gap:7px;
            width:100%!important; margin:10px 0 0!important;
            padding:10px 14px!important;
            background:var(--bg-tertiary)!important; color:var(--text-secondary)!important;
            border:1px solid var(--border)!important; border-radius:10px!important;
            font:700 .82rem 'Hind Siliguri',sans-serif!important; cursor:pointer;
        }
        .form-close-btn:hover { color:var(--accent-1)!important; border-color:var(--accent-1)!important; background:var(--bg-hover)!important; transform:translateY(-1px); }
        .section-fullscreen-modal .announcement-image,
        .section-fullscreen-modal .fund-gallery .fund-item {
            position:relative; background:var(--bg-tertiary);
            border:1px solid var(--border); border-radius:16px;
            box-shadow:var(--shadow); overflow:hidden;
        }
        .section-fullscreen-modal .announcement-image::after,
        .section-fullscreen-modal .fund-gallery .fund-item::after {
            content:'Click image to preview'; position:absolute; right:10px; bottom:10px;
            padding:5px 9px; border-radius:999px; background:rgba(0,0,0,.58);
            color:#fff; font:600 .62rem 'Hind Siliguri',sans-serif; pointer-events:none;
            opacity:.78;
        }
        .section-fullscreen-modal .announcement-image img,
        .section-fullscreen-modal .fund-gallery .fund-item img {
            width:100%; max-width:100%; height:auto; max-height:72vh;
            object-fit:contain!important; display:block; background:var(--bg-secondary);
        }
        .section-fullscreen-modal .fund-gallery {
            grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;
        }
        .section-fullscreen-modal .fund-gallery .fund-item .fund-title { font-size:.95rem; }
        @media (max-width:700px) {
            .section-fullscreen-modal .fund-gallery { grid-template-columns:1fr; }
            .section-fullscreen-modal .announcement-image img,
            .section-fullscreen-modal .fund-gallery .fund-item img { max-height:68vh; }
        }
        .blog-publish-btn {
            min-height:48px!important; width:100%!important; padding:12px 18px!important;
            border-radius:12px!important; font-size:.98rem!important; font-weight:800!important;
            letter-spacing:.1px;
        }


        /* ===== Requested comment + form polish ===== */
        .blog-comments { display:none; }
        .blog-comments.is-open { display:block; animation:formReveal .25s ease both; }
        .comment-toggle-btn { background:transparent; border:1px solid var(--border); color:var(--text-muted); cursor:pointer; padding:6px 12px; border-radius:20px; font-size:.82rem; display:flex; align-items:center; gap:6px; font-family:'Hind Siliguri',sans-serif; }
        .comment-toggle-btn:hover, .comment-toggle-btn.is-open { border-color:var(--accent-1); color:var(--accent-1); background:var(--bg-hover); }
        .latest-comment-preview { margin-top:10px; padding:9px 12px; border-left:3px solid var(--accent-2); background:var(--bg-tertiary); border-radius:10px; color:var(--text-secondary); font-size:.78rem; line-height:1.5; overflow-wrap:anywhere; animation:resourceIn .25s ease both; }
        .latest-comment-preview strong { color:var(--accent-1); }
        .latest-comment-preview { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }
        .latest-comment-preview .latest-comment-id, .latest-comment-preview .latest-comment-time { color:var(--text-muted); font-size:.64rem; }
        .latest-comment-preview > div { width:100%; color:var(--text-secondary); }

        .form-close-btn { width:100%!important; min-height:38px; margin-top:8px!important; padding:9px 14px!important; background:var(--bg-secondary)!important; border:1px solid var(--border)!important; border-radius:10px!important; color:var(--text-muted)!important; font:600 .78rem 'Hind Siliguri',sans-serif!important; cursor:pointer!important; opacity:.72; transition:all .22s ease!important; }
        .form-close-btn:hover { opacity:1; color:var(--accent-1)!important; border-color:var(--accent-1)!important; background:var(--bg-hover)!important; transform:translateY(-1px); }
        .blog-publish-btn { width:100%!important; min-height:46px; padding:12px 18px!important; margin-top:4px; border:1px solid color-mix(in srgb, var(--accent-1) 55%, var(--accent-2))!important; border-radius:13px!important; background:var(--gradient-accent)!important; color:#fff!important; font:700 1rem 'Hind Siliguri',sans-serif!important; letter-spacing:.1px; box-shadow:var(--shadow); transition:transform .22s ease, box-shadow .22s ease, filter .22s ease!important; }
        .blog-publish-btn:hover { transform:translateY(-2px); box-shadow:var(--shadow-lg); filter:saturate(1.08); }
        .blog-publish-btn:active { transform:translateY(0) scale(.99); }
        .announcement-image img, .fund-gallery .fund-item img { cursor:zoom-in; }

    
        /* ===== Final requested interaction refinements ===== */
        .cr-share-btn, .admin-utility-strip .utility-btn { cursor:pointer; }
        .section-fullscreen-modal .section-close-btn { display:flex!important; align-items:center; justify-content:center; }
        .fund-gallery .fund-item { cursor:zoom-in; }
        .fund-gallery .fund-item img { width:100%; aspect-ratio:2/3!important; object-fit:contain!important; max-height:78vh; background:var(--bg-secondary); cursor:zoom-in; }
        .fund-gallery .fund-title { text-align:left; line-height:1.4; }
        .announcement-item .announcement-image { cursor:zoom-in; }
        .announcement-item .announcement-image img { width:100%; aspect-ratio:16/9; max-height:68vh; object-fit:contain; background:var(--bg-secondary); cursor:zoom-in; }
        .image-lightbox { z-index:3400!important; }
        .image-lightbox img { max-width:94vw; max-height:90vh; }
        .discussion-replies { display:none; margin-top:10px; padding-top:10px; border-top:1px solid var(--border); animation:formReveal .25s ease both; }
        .discussion-replies.is-open { display:block; }
        .discussion-replies .discussion-comments-title { color:var(--text-muted); font-size:.78rem; margin-bottom:8px; font-family:'Hind Siliguri',sans-serif; }
        .discussion-comment { position:relative; padding-right:44px!important; }
        .discussion-comment .discussion-reply-votes { display:flex; align-items:center; gap:3px; margin-top:5px; }
        .discussion-comment .discussion-reply-votes .vote-btn { padding:2px 6px; }
        .discussion-reply-toggle { margin-left:auto; flex:0 0 auto; }
        .discussion-reply-toggle .reply-count { font-size:.64rem; opacity:.8; }
        .blog-post .actions .like-btn, .blog-post .actions .comment-toggle-btn, .blog-post .actions .share-btn { min-width:70px; min-height:34px; justify-content:center; padding:6px 10px; font-size:.78rem; }
        @media (max-width:520px) {
            .blog-post .actions { gap:4px; }
            .blog-post .actions .left-actions { gap:4px; }
            .blog-post .actions .like-btn, .blog-post .actions .comment-toggle-btn, .blog-post .actions .share-btn { min-width:62px; min-height:32px; padding:5px 7px; font-size:.7rem; }
        }

        /* Blog admin trigger uses the same compact utility control as Batch Fund. */
        .blog-section-tools {
            display:flex;
            justify-content:space-between;
            align-items:center;
            gap:8px;
            flex-wrap:wrap;
            margin-bottom:12px;
        }
        .blog-share-form-card {
            margin:0 0 16px;
        }
        .blog-share-form-card form {
            display:grid;
            gap:4px;
        }
        .admin-access-overlay {
            position:fixed;
            inset:0;
            z-index:3000;
            display:none;
            align-items:center;
            justify-content:center;
            padding:20px;
            background:rgba(4,7,15,.72);
            backdrop-filter:blur(12px);
        }
        .admin-access-overlay.open {
            display:flex;
        }
        .admin-access-modal {
            width:min(380px, 100%);
            padding:24px;
            background:var(--gradient-card);
            border:1px solid var(--border);
            border-radius:18px;
            box-shadow:var(--shadow-lg);
            animation:formReveal .2s ease both;
        }
        .admin-access-icon {
            width:44px;
            height:44px;
            margin:0 auto 12px;
            display:flex;
            align-items:center;
            justify-content:center;
            border-radius:12px;
            background:color-mix(in srgb, var(--accent-1) 12%, var(--bg-tertiary));
            border:1px solid color-mix(in srgb, var(--accent-1) 30%, var(--border));
            color:var(--accent-1);
            font-size:1.05rem;
        }
        .admin-access-modal h3 {
            margin:0;
            text-align:center;
            color:var(--text-primary);
            font:700 1.12rem/1.3 'Inter',sans-serif;
        }
        .admin-access-modal p {
            margin:6px 0 16px;
            text-align:center;
            color:var(--text-muted);
            font:.78rem/1.5 'Hind Siliguri',sans-serif;
        }
        .admin-access-modal input {
            width:100%;
            padding:11px 13px;
            background:var(--bg-secondary);
            border:1px solid var(--border);
            border-radius:10px;
            color:var(--text-primary);
            font:.86rem 'Inter',sans-serif;
            outline:none;
        }
        .admin-access-modal input:focus {
            border-color:var(--accent-1);
            box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-1) 12%, transparent);
        }
        .admin-access-error {
            display:none;
            margin-top:7px;
            color:var(--like-color);
            font:.72rem/1.4 'Hind Siliguri',sans-serif;
        }
        .admin-access-actions {
            display:flex;
            gap:8px;
            margin-top:14px;
        }
        .admin-access-actions button {
            flex:1;
            min-height:38px;
            border-radius:10px;
            cursor:pointer;
            font:600 .78rem 'Inter',sans-serif;
        }
        .admin-access-cancel {
            background:var(--bg-secondary);
            color:var(--text-secondary);
            border:1px solid var(--border);
        }
        .admin-access-cancel:hover {
            border-color:var(--accent-1);
            color:var(--accent-1);
        }
        .admin-access-confirm {
            background:var(--gradient-accent);
            color:#fff;
            border:1px solid transparent;
        }
        .admin-access-confirm:hover {
            transform:translateY(-1px);
            box-shadow:var(--shadow);
        }
        .sr-only {
            position:absolute;
            width:1px;
            height:1px;
            padding:0;
            margin:-1px;
            overflow:hidden;
            clip:rect(0,0,0,0);
            white-space:nowrap;
            border:0;
        }
        @media (max-width:520px) {
            .admin-access-modal {
                padding:20px;
            }
        }

        /* ===== User-requested 8-change polish layer ===== */

        /* 1 + 5: compact professional Fund / Notice desktop modal */
        .section-fullscreen-modal .section-close-btn {
            display:flex!important;
            align-items:center!important;
            justify-content:center!important;
            width:42px!important;
            height:42px!important;
            min-width:42px!important;
            padding:0!important;
            border:1px solid var(--border)!important;
            border-radius:50%!important;
            background:var(--bg-tertiary)!important;
            color:var(--text-secondary)!important;
            font-size:1rem!important;
            cursor:pointer!important;
            box-shadow:var(--shadow)!important;
            transition:all .25s ease!important;
        }
        .section-fullscreen-modal .section-close-btn:hover,
        .section-fullscreen-modal .section-close-btn:focus-visible {
            background:var(--accent-1)!important;
            border-color:var(--accent-1)!important;
            color:#fff!important;
            transform:rotate(90deg) scale(1.04)!important;
            outline:none!important;
        }
        @media (min-width:1024px) {
            .section-fullscreen-modal {
                width:min(1040px,88vw)!important;
                max-width:min(1040px,88vw)!important;
                height:min(82vh,820px)!important;
                max-height:82vh!important;
                margin:auto!important;
                border-radius:22px!important;
                padding:26px 28px!important;
                overflow-y:auto!important;
                overflow-x:hidden!important;
                box-shadow:var(--shadow-lg)!important;
            }
            .section-fullscreen-modal #modalContent {
                max-width:100%!important;
                margin:0 auto!important;
            }
            .section-fullscreen-modal .fund-gallery {
                grid-template-columns:repeat(5,minmax(0,1fr))!important;
                gap:14px!important;
            }
            .section-fullscreen-modal .announcement-item {
                max-width:900px;
                margin-left:auto;
                margin-right:auto;
            }
        }

        /* 3: Monthly Fund portrait images + mobile 3-column layout */
        .fund-gallery .fund-item img {
            width:100%!important;
            height:auto!important;
            aspect-ratio:2/3!important;
            object-fit:cover!important;
        }
        .fund-gallery .fund-title {
            display:block!important;
            padding:8px 10px 3px!important;
            color:var(--accent-1)!important;
            font-weight:700!important;
            font-family:'Hind Siliguri',sans-serif!important;
            line-height:1.35!important;
            overflow-wrap:anywhere!important;
        }
        .fund-gallery .fund-meta {
            display:flex!important;
            flex-wrap:wrap!important;
            gap:6px!important;
        }
        @media (max-width:480px) {
            .fund-gallery {
                grid-template-columns:repeat(3,minmax(0,1fr))!important;
                gap:8px!important;
            }
            .fund-gallery .fund-title {
                font-size:.64rem!important;
                padding:6px 5px 2px!important;
            }
            .fund-gallery .fund-meta {
                font-size:.5rem!important;
                padding:5px!important;
            }
        }

        /* 4: Blog Choose File + Publish Post */
        #blogShareForm input[type="file"] {
            width:100%!important;
            min-height:48px!important;
            padding:7px 10px!important;
            border:1px solid var(--border)!important;
            border-radius:12px!important;
            background:var(--bg-secondary)!important;
            color:var(--text-secondary)!important;
            font:500 .82rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
        }
        #blogShareForm input[type="file"]::file-selector-button {
            min-height:34px!important;
            padding:7px 14px!important;
            margin-right:10px!important;
            border:1px solid var(--accent-1)!important;
            border-radius:9px!important;
            background:var(--bg-tertiary)!important;
            color:var(--accent-1)!important;
            font:700 .78rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
            transition:all .22s ease!important;
        }
        #blogShareForm input[type="file"]:hover::file-selector-button {
            background:var(--bg-hover)!important;
            color:var(--accent-2)!important;
            border-color:var(--accent-2)!important;
        }
        #blogShareForm .blog-publish-btn {
            width:100%!important;
            min-height:48px!important;
            padding:11px 20px!important;
            margin-top:5px!important;
            border:1px solid var(--accent-1)!important;
            border-radius:12px!important;
            background:var(--gradient-accent)!important;
            color:#fff!important;
            font:700 .98rem 'Hind Siliguri',sans-serif!important;
            box-shadow:var(--shadow)!important;
        }

        /* 7: Professional Discussion comment identity hierarchy */
        .discussion-comment .comment-header {
            display:grid!important;
            grid-template-columns:auto minmax(0,1fr) auto auto!important;
            align-items:center!important;
            gap:6px 9px!important;
        }
        .discussion-comment .comment-header:has(.activity-meta-stack) {
            grid-template-columns:minmax(0,1fr) auto!important;
            align-items:start!important;
        }
        .discussion-comment .c-name {
            color:var(--accent-1)!important;
            font:700 .88rem 'Hind Siliguri',sans-serif!important;
            line-height:1.25!important;
        }
        .discussion-comment .comment-header > span:nth-child(2) {
            justify-self:start!important;
            padding:2px 7px!important;
            border:1px solid var(--border)!important;
            border-radius:7px!important;
            background:var(--bg-secondary)!important;
            color:var(--accent-2)!important;
            font:600 .61rem 'Inter',sans-serif!important;
            line-height:1.2!important;
            white-space:nowrap!important;
        }
        .discussion-comment .c-time {
            color:var(--text-muted)!important;
            font:500 .62rem 'Hind Siliguri',sans-serif!important;
            white-space:nowrap!important;
        }
        .discussion-comment .delete-btn {
            font-size:.58rem!important;
            padding:3px 6px!important;
        }
        .discussion-comments-title {
            color:var(--accent-2)!important;
            font:700 .78rem 'Hind Siliguri',sans-serif!important;
        }

        /* 8: Professional desktop menu width only */
        @media (min-width:1024px) {
            .menu-panel {
                width:380px!important;
                max-width:34vw!important;
            }
        }


        /* Requested: Monthly Fund presentation */
        .fund-gallery .fund-item img {
            aspect-ratio: 2 / 3 !important;
            width: 100% !important;
            height: auto !important;
            object-fit: cover !important;
        }
        @media (max-width:480px) {
            .fund-gallery {
                grid-template-columns: repeat(3,minmax(0,1fr)) !important;
            }
        }


        /* Requested: Fund / Notice close button */
        .section-fullscreen-modal .section-close-btn {
            display:flex !important;
            align-items:center !important;
            justify-content:center !important;
            width:42px !important;
            height:42px !important;
            min-width:42px !important;
            padding:0 !important;
            border-radius:50% !important;
            cursor:pointer !important;
            z-index:20 !important;
        }


        /* Requested: latest discussion reply preview */
        .discussion-latest-reply-preview {
            margin:8px 0 0;
            padding:9px 11px;
            border:1px solid var(--border);
            border-radius:10px;
            background:var(--bg-tertiary);
        }
        .discussion-latest-reply-label {
            margin-bottom:5px;
            color:var(--text-muted);
            font:600 .65rem 'Hind Siliguri',sans-serif;
        }
        .discussion-latest-reply-meta {
            display:flex;
            align-items:flex-start;
            flex-wrap:wrap;
            gap:6px 9px;
        }
        .discussion-latest-reply-meta .activity-meta-stack { gap:2px; }
        .discussion-latest-reply-meta .reply-preview-name {
            color:var(--accent-1);
            font:700 .78rem 'Hind Siliguri',sans-serif;
        }
        .discussion-latest-reply-meta .reply-preview-id {
            color:var(--accent-2);
            font:600 .59rem 'Inter',sans-serif;
        }
        .discussion-latest-reply-meta .reply-preview-time {
            color:var(--text-muted);
            font:500 .59rem 'Hind Siliguri',sans-serif;
        }


        /* ===== Blog sharing controls: professional visual polish ===== */
        #blogShareForm input[type="file"] {
            width:100%!important;
            min-height:48px!important;
            box-sizing:border-box!important;
            padding:7px 10px!important;
            border:1px solid var(--border)!important;
            border-radius:12px!important;
            background:var(--bg-tertiary)!important;
            color:var(--text-secondary)!important;
            font:500 .82rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
        }
        #blogShareForm input[type="file"]::file-selector-button {
            min-height:34px!important;
            padding:7px 15px!important;
            margin-right:10px!important;
            border:1px solid var(--accent-1)!important;
            border-radius:9px!important;
            background:var(--bg-secondary)!important;
            color:var(--accent-1)!important;
            font:700 .78rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
            transition:all .22s ease!important;
        }
        #blogShareForm input[type="file"]:hover::file-selector-button,
        #blogShareForm input[type="file"]:focus-visible::file-selector-button {
            background:var(--bg-hover)!important;
            border-color:var(--accent-2)!important;
            color:var(--accent-2)!important;
        }
        #blogShareForm .blog-publish-btn,
        #blogShareForm button[type="submit"] {
            width:100%!important;
            min-height:48px!important;
            box-sizing:border-box!important;
            padding:11px 20px!important;
            border:1px solid var(--accent-1)!important;
            border-radius:12px!important;
            background:var(--gradient-accent)!important;
            color:#fff!important;
            font:800 .96rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
            transition:transform .22s ease,box-shadow .22s ease,filter .22s ease!important;
        }
        #blogShareForm .blog-publish-btn:hover,
        #blogShareForm button[type="submit"]:hover {
            transform:translateY(-1px);
            box-shadow:var(--shadow);
            filter:brightness(1.03);
        }


        /* ===== Monthly Fund / Notice close control ===== */
        .section-fullscreen-modal .section-close-btn {
            display:flex!important;
            align-items:center!important;
            justify-content:center!important;
            width:42px!important;
            height:42px!important;
            min-width:42px!important;
            padding:0!important;
            border:1px solid var(--border)!important;
            border-radius:50%!important;
            background:var(--bg-tertiary)!important;
            color:var(--text-secondary)!important;
            font-size:1rem!important;
            line-height:1!important;
            cursor:pointer!important;
            pointer-events:auto!important;
            opacity:1!important;
            z-index:50!important;
            box-shadow:var(--shadow)!important;
            transition:all .22s ease!important;
        }
        .section-fullscreen-modal .section-close-btn:hover,
        .section-fullscreen-modal .section-close-btn:focus-visible {
            background:var(--accent-1)!important;
            border-color:var(--accent-1)!important;
            color:#fff!important;
            transform:rotate(90deg) scale(1.04)!important;
            outline:none!important;
        }


        /* ===== Requested: Notes / Questions date-time picker polish ===== */
        #noteShareForm input[name="note_date"],
        #questionShareForm input[name="q_date"] {
            width:100%;
            min-height:48px;
            box-sizing:border-box;
            cursor:pointer;
        }
        #noteShareForm input[name="note_date"]:focus,
        #questionShareForm input[name="q_date"]:focus {
            border-color:var(--accent-1);
            box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-1) 12%, transparent);
        }

        /* ===== Professional automatic date/time presentation ===== */
        .blog-post .time,
        .blog-comments .c-time,
        .forum-question .q-time,
        .discussion-comment .c-time {
            white-space:nowrap!important;
            font-variant-numeric:tabular-nums;
            letter-spacing:.05px;
        }


        /* ===== Notes & Questions: calendar date/time picker ===== */
        input[type="datetime-local"][id*="note" i],
        input[type="datetime-local"][id*="question" i],
        input[type="datetime-local"][name*="date" i] {
            min-height:46px!important;
            width:100%!important;
            box-sizing:border-box!important;
            padding:10px 12px!important;
            border:1px solid var(--border)!important;
            border-radius:10px!important;
            background:var(--bg-tertiary)!important;
            color:var(--text-secondary)!important;
            font:600 .82rem 'Hind Siliguri',sans-serif!important;
            cursor:pointer!important;
        }
        input[type="datetime-local"][id*="note" i]:focus,
        input[type="datetime-local"][id*="question" i]:focus,
        input[type="datetime-local"][name*="date" i]:focus {
            outline:none!important;
            border-color:var(--accent-1)!important;
        }
        .date-time-field-wrap {
            position:relative;
            width:100%;
        }
        .date-time-field-wrap::before {
            content:'Choose Date & Time';
            position:absolute;
            left:13px;
            top:50%;
            transform:translateY(-50%);
            color:var(--text-muted);
            font:600 .82rem 'Hind Siliguri',sans-serif;
            pointer-events:none;
            opacity:.9;
            z-index:1;
        }
        .date-time-field-wrap.has-value::before { display:none; }
        .date-time-field-wrap input[type="datetime-local"] { position:relative; z-index:2; }
        .date-time-field-wrap input[type="datetime-local"]:not(:focus) { background:transparent!important; }

        /* ===== Requested 4-change refinement layer ===== */
        body.neon { --mention-color:#b84dff; --hashtag-color:#d36bff; }
        body.dark { --mention-color:var(--accent-1); --hashtag-color:var(--accent-1); }
        .mention-token { color:var(--mention-color)!important; font-weight:700; }
        .hashtag-link { color:var(--hashtag-color)!important; font-weight:700; text-decoration:underline; text-decoration-color:color-mix(in srgb, var(--hashtag-color) 45%, transparent); text-underline-offset:2px; cursor:pointer; }
        .hashtag-link:hover, .hashtag-link:focus-visible { color:var(--accent-2)!important; text-decoration-thickness:2px; outline:none; }
        .expandable-wrap .expandable-text { line-height:inherit; }
        .expandable-wrap.is-expanded .expandable-text { max-height:none; }
        .comment-text.expandable-wrap { margin-top:0; }
        .comment-text.expandable-wrap .expandable-text { line-height:1.5; }
        .comment-text.expandable-wrap .expandable-toggle { font-size:.68rem; }
        .announcement-body.expandable-wrap, .project-description.expandable-wrap { margin-bottom:0; }

        /* ===== Professional 3-line expandable post/discussion text ===== */
        .expandable-wrap {
            position:relative;
            width:100%;
            min-width:0;
        }
        .expandable-text {
            overflow-wrap:anywhere;
            word-break:break-word;
        }
        .expandable-text.is-collapsed {
            display:-webkit-box;
            -webkit-box-orient:vertical;
            -webkit-line-clamp:3;
            overflow:hidden;
            max-height:calc(1.6em * 3);
        }
        .expandable-toggle {
            display:none;
            position:absolute;
            right:0;
            bottom:0;
            border:0;
            border-radius:7px;
            padding:1px 6px 1px 14px;
            background:linear-gradient(90deg, transparent, var(--bg-secondary) 28%);
            color:var(--accent-1);
            font:700 .72rem 'Hind Siliguri',sans-serif;
            cursor:pointer;
            line-height:1.5;
        }
        .expandable-wrap.has-overflow .expandable-toggle { display:block; }
        .expandable-wrap.is-expanded .expandable-toggle {
            position:static;
            margin-top:3px;
            padding:0 2px;
            background:none;
            text-align:left;
        }
        .expandable-toggle:hover {
            color:var(--accent-2);
            text-decoration:underline;
        }

        /* ===== Name / ID / date hierarchy: date always below the name ===== */
        .activity-meta-stack {
            min-width:0;
            display:flex;
            flex-direction:column;
            align-items:flex-start;
            gap:2px;
        }
        .activity-meta-stack .activity-id {
            font-size:.55rem;
            color:var(--text-muted);
            font-family:'Inter',sans-serif;
            line-height:1.25;
        }
        .activity-meta-stack .activity-date {
            display:block;
            color:var(--text-muted);
            font-size:.68rem;
            font-family:'Hind Siliguri',sans-serif;
            line-height:1.25;
            white-space:nowrap;
        }
        .blog-post .header > .activity-meta-stack { flex:1 1 auto; }
        .forum-question .q-header > .activity-meta-stack { flex:1 1 auto; }
        .comment-header .activity-meta-stack { min-width:0; }
        .comment-header .activity-meta-stack .activity-date { font-size:.62rem; }

        /* ===== Final requested identity hierarchy ===== */
        .activity-name-line {
            display:flex; align-items:center; flex-wrap:wrap; gap:5px 7px;
            min-width:0; width:100%;
        }
        .activity-name-line .activity-id {
            display:inline-flex!important; align-items:center;
            width:auto!important; margin:0!important;
            padding:1px 6px!important;
            border:1px solid var(--border)!important;
            border-radius:7px!important;
            background:var(--bg-secondary)!important;
            color:var(--accent-2)!important;
            font:600 .58rem 'Inter',sans-serif!important;
            line-height:1.25!important; white-space:nowrap;
        }
        .activity-meta-stack .activity-date,
        .latest-comment-time, .reply-preview-time {
            display:block!important; margin-top:1px;
            color:var(--text-muted)!important;
            font-size:.62rem!important;
            font-family:'Hind Siliguri',sans-serif!important;
            line-height:1.25!important; white-space:nowrap;
        }
        .activity-name-line .name, .activity-name-line .q-name,
        .activity-name-line .c-name { margin:0!important; }

        /* ===== Final requested Facebook-style 3-line expandable text ===== */
        .expandable-wrap { position:relative; min-width:0; }
        .expandable-text.is-collapsed {
            display:-webkit-box!important; -webkit-box-orient:vertical; -webkit-line-clamp:3;
            overflow:hidden!important; max-height:calc(1.6em * 3);
            padding-right:0;
        }
        .expandable-wrap.has-overflow .expandable-toggle { display:block!important; }
        .expandable-toggle {
            position:absolute; right:0; bottom:0; z-index:2;
            display:none;
            white-space:nowrap;
            padding:1px 2px 1px 20px;
            background:linear-gradient(90deg, transparent 0%, var(--bg-tertiary) 24%, var(--bg-tertiary) 100%);
            border:0; color:var(--accent-1); cursor:pointer;
            font:700 .72rem 'Hind Siliguri',sans-serif;
            line-height:1.6;
        }
        .expandable-wrap.is-expanded .expandable-toggle {
            position:static; display:block!important; margin-top:4px;
            padding:0; background:none; text-align:left;
        }
        .expandable-toggle:hover { color:var(--accent-2); text-decoration:underline; }


        /* ===== Simple Progress Tracker — requested changes only ===== */
        .progress-tracker-section { margin:18px 0 24px; }
        .progress-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
        .progress-subtitle { color:var(--text-muted); font:.78rem 'Hind Siliguri',sans-serif; margin:0; }
        .progress-live-badge { padding:6px 11px; border:1px solid var(--border); border-radius:20px; color:var(--accent-2); background:var(--bg-tertiary); font:.68rem 'Hind Siliguri',sans-serif; }
        .track-progress-btn { width:100%; border:1px solid transparent; border-radius:18px; padding:13px 16px; display:flex; align-items:center; gap:12px; text-align:left; color:#fff; background:var(--gradient-accent); cursor:pointer; box-shadow:0 8px 28px rgba(123,47,252,.2); position:relative; overflow:hidden; }
        .track-progress-btn::before { content:''; position:absolute; inset:-80% 45% -80% -20%; background:rgba(255,255,255,.12); transform:rotate(20deg); animation:progressShine 3.5s ease-in-out infinite; }
        @keyframes progressShine { 0%,55% { transform:translateX(-90%) rotate(20deg); } 80%,100% { transform:translateX(210%) rotate(20deg); } }
        .track-progress-btn > * { position:relative; z-index:1; }
        .track-progress-icon { width:42px; height:42px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.16); font-size:1.1rem; flex:0 0 42px; }
        .track-progress-btn strong { display:block; font:700 .98rem 'Hind Siliguri',sans-serif; }
        .track-progress-btn small { display:block; opacity:.78; font:.67rem 'Hind Siliguri',sans-serif; margin-top:1px; }
        .track-progress-arrow { margin-left:auto; font-size:.9rem; transition:transform .25s ease; }
        .track-progress-btn:hover .track-progress-arrow { transform:translateX(5px); }
        .progress-tracker-panel { display:none; margin-top:12px; animation:progressReveal .35s ease both; }
        .progress-tracker-panel.open { display:block; }
        @keyframes progressReveal { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

        .progress-simple-card { background:var(--gradient-card); border:1px solid var(--border); border-radius:16px; padding:16px; margin-top:12px; }
        .progress-simple-card h4 { color:var(--accent-1); font:700 1rem 'Hind Siliguri',sans-serif; margin:0 0 5px; }
        .progress-simple-card h4 i { color:var(--accent-2); margin-right:6px; }
        .pt-help { color:var(--text-muted); font:.76rem 'Hind Siliguri',sans-serif; line-height:1.5; margin:0 0 12px; }
        .progress-select-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
        .progress-select-grid label { color:var(--text-secondary); font:.72rem 'Hind Siliguri',sans-serif; }
        .progress-select-grid select { width:100%; margin-top:5px; padding:11px 12px; border-radius:11px; border:1px solid var(--border); background:var(--bg-secondary); color:var(--text-primary); outline:none; font:.86rem 'Hind Siliguri',sans-serif; }
        .progress-select-grid select:focus { border-color:var(--accent-1); }
        .progress-hidden-area { display:none !important; }

        .pt-subject-list { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:8px 0 12px; }
        .pt-subject-option { display:flex; align-items:center; gap:9px; padding:10px 12px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:10px; color:var(--text-secondary); cursor:pointer; font:.82rem 'Hind Siliguri',sans-serif; min-width:0; }
        .pt-subject-option:hover { border-color:var(--accent-1); color:var(--text-primary); transform:translateY(-1px); }
        .pt-subject-option input { accent-color:var(--accent-1); flex:0 0 auto; }
        .pt-subject-option span { overflow-wrap:anywhere; }
        .pt-action-btn { width:100%; padding:12px 16px; border:0; border-radius:12px; background:var(--gradient-accent); color:#fff; font-weight:700; cursor:pointer; font-family:'Hind Siliguri',sans-serif; }
        .pt-action-btn:disabled { opacity:.45; cursor:not-allowed; transform:none; }

        .pt-input-row { display:grid; grid-template-columns:minmax(0,1fr) 105px 105px; gap:8px; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); }
        .pt-input-row:last-child { border-bottom:0; }
        .pt-input-row .pt-subject-name { color:var(--text-primary); font:.84rem 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
        .pt-input-row input { width:100%; margin:0; padding:9px 10px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:9px; color:var(--text-primary); outline:none; font:.78rem 'Inter',sans-serif; }
        .pt-input-row input:focus { border-color:var(--accent-1); }

        .pt-result-header { display:flex; justify-content:space-between; align-items:center; gap:12px; }
        .pt-eyebrow { color:var(--text-muted); font:800 .6rem 'Inter',sans-serif; letter-spacing:1.3px; }
        .pt-result-header h3 { margin:2px 0 0; color:var(--accent-1); font:800 1.15rem 'Hind Siliguri',sans-serif; }
        .pt-score { color:var(--accent-1); font:900 2rem 'Inter',sans-serif; }
        .pt-overall-progress { margin:12px 0 14px; }
        .pt-overall-progress-head { display:flex; justify-content:space-between; gap:8px; color:var(--text-secondary); font:.7rem 'Hind Siliguri',sans-serif; margin-bottom:5px; }
        .pt-overall-track { height:12px; border-radius:20px; background:var(--bg-tertiary); border:1px solid var(--border); overflow:hidden; }
        .pt-overall-fill { height:100%; width:0; background:var(--gradient-accent); border-radius:inherit; transition:width .55s ease; }

        .pt-chart-wrap { height:260px; position:relative; margin-top:10px; padding:8px; background:var(--bg-secondary); border:1px solid var(--border); border-radius:12px; }
        #ptGraph { width:100%; height:100%; display:block; }
        .pt-insights { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:12px; }
        .pt-insight { padding:10px; border-radius:12px; background:var(--bg-secondary); border:1px solid var(--border); display:flex; gap:9px; align-items:center; min-width:0; }
        .pt-insight-icon { width:28px; height:28px; border-radius:9px; display:flex; align-items:center; justify-content:center; background:var(--bg-tertiary); color:var(--accent-2); flex:0 0 28px; }
        .pt-insight strong { display:block; color:var(--text-primary); font:.72rem 'Hind Siliguri',sans-serif; }
        .pt-insight p { margin:2px 0 0; color:var(--text-secondary); font:.68rem 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }

        .pt-bars { display:grid; gap:9px; margin-top:13px; }
        .pt-bar-row { display:grid; grid-template-columns:minmax(100px,1fr) minmax(100px,2fr) 42px; align-items:center; gap:8px; }
        .pt-bar-name { color:var(--text-secondary); font:.68rem 'Hind Siliguri',sans-serif; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .pt-bar-track { height:9px; border-radius:20px; background:var(--bg-tertiary); border:1px solid var(--border); overflow:hidden; }
        .pt-bar-fill { height:100%; width:0; background:var(--gradient-accent); border-radius:inherit; transition:width .55s ease; }
        .pt-bar-value { text-align:right; color:var(--accent-1); font:800 .64rem 'Inter',sans-serif; }

        .pt-message { margin-top:12px; padding:13px; display:flex; gap:10px; align-items:flex-start; background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary)); border:1px solid var(--border); border-radius:12px; }
        .pt-message > i { color:var(--accent-2); font-size:1rem; margin-top:2px; }
        .pt-message strong { display:block; color:var(--accent-1); font:.8rem 'Hind Siliguri',sans-serif; }
        .pt-message p { margin:2px 0; color:var(--text-secondary); font:.72rem 'Hind Siliguri',sans-serif; line-height:1.45; }
        .pt-message small { color:var(--text-muted); font:.62rem 'Hind Siliguri',sans-serif; }
        .pt-restart-btn { width:100%; margin-top:12px; padding:10px 14px; border-radius:11px; background:transparent; color:var(--text-muted); border:1px dashed var(--border); cursor:pointer; font:700 .76rem 'Hind Siliguri',sans-serif; }
        .pt-restart-btn:hover { color:var(--like-color); border-color:var(--like-color); }
        @media(max-width:620px){
            .progress-select-grid, .pt-subject-list, .pt-insights { grid-template-columns:1fr; }
            .pt-input-row { grid-template-columns:1fr 1fr; }
            .pt-input-row .pt-subject-name { grid-column:1 / -1; }
            .pt-chart-wrap { height:230px; }
            .pt-bar-row { grid-template-columns:minmax(90px,1fr) minmax(75px,1.5fr) 40px; gap:6px; }
        }



        .quick-card .title,
        .quick-card .desc {
            display:block!important;
            width:100%;
        }
        .quick-card .title { margin-bottom:3px; }
        .quick-card .desc { margin-top:0; }


        /* ===== Monthly Fund final UI fix ===== */
        .fund-gallery {
            display:grid !important;
            grid-template-columns:repeat(2,minmax(0,1fr)) !important;
            gap:16px !important;
            margin-top:16px !important;
            align-items:stretch !important;
        }
        .fund-gallery .fund-item {
            position:relative !important;
            min-width:0 !important;
            aspect-ratio:2 / 3 !important;
            height:auto !important;
            border:1px solid color-mix(in srgb, var(--accent-1) 42%, var(--border)) !important;
            border-radius:18px !important;
            overflow:hidden !important;
            background:var(--bg-secondary) !important;
            box-shadow:0 10px 28px color-mix(in srgb, var(--accent-1) 10%, transparent), inset 0 0 0 1px rgba(255,255,255,.03) !important;
            transition:transform .32s cubic-bezier(.2,.8,.2,1), border-color .32s ease, box-shadow .32s ease !important;
        }
        .fund-gallery .fund-item:hover {
            transform:translateY(-5px) !important;
            border-color:var(--accent-1) !important;
            box-shadow:0 16px 34px color-mix(in srgb, var(--accent-1) 18%, transparent), inset 0 0 28px rgba(255,255,255,.025) !important;
        }
        .fund-gallery .fund-image-wrap {
            position:absolute !important;
            inset:0 !important;
            width:100% !important;
            height:100% !important;
            overflow:hidden !important;
            background:var(--bg-tertiary) !important;
        }
        .fund-gallery .fund-image-wrap img {
            width:100% !important;
            height:100% !important;
            aspect-ratio:2 / 3 !important;
            object-fit:cover !important;
            display:block !important;
            margin:0 !important;
            border:0 !important;
            border-radius:0 !important;
            cursor:zoom-in !important;
            transition:transform .45s cubic-bezier(.2,.8,.2,1), filter .35s ease !important;
        }
        .fund-gallery .fund-item:hover .fund-image-wrap img {
            transform:scale(1.035) !important;
            filter:brightness(1.06) saturate(1.04) !important;
        }
        .fund-gallery .fund-image-wrap::after {
            content:'';
            position:absolute;
            inset:0;
            background:linear-gradient(to bottom, rgba(5,0,15,.18) 0%, transparent 30%, transparent 46%, rgba(5,0,15,.86) 100%);
            pointer-events:none;
        }
        .fund-gallery .fund-overlay {
            position:absolute !important;
            inset:0 !important;
            z-index:3 !important;
            display:flex !important;
            flex-direction:column !important;
            justify-content:flex-end !important;
            padding:14px !important;
            pointer-events:none !important;
            color:#fff !important;
        }
        .fund-gallery .fund-title {
            display:block !important;
            padding:0 0 7px !important;
            margin:0 !important;
            color:#fff !important;
            background:transparent !important;
            border:0 !important;
            font:800 clamp(.82rem, 2.2vw, 1.08rem)/1.25 'Hind Siliguri',sans-serif !important;
            text-shadow:0 2px 12px rgba(0,0,0,.75) !important;
            overflow-wrap:anywhere !important;
            word-break:break-word !important;
        }
        .fund-gallery .fund-meta {
            display:flex !important;
            align-items:center !important;
            justify-content:space-between !important;
            gap:8px !important;
            flex-wrap:wrap !important;
            padding:7px 0 0 !important;
            margin:0 !important;
            color:rgba(255,255,255,.9) !important;
            background:transparent !important;
            border:0 !important;
            font:600 clamp(.58rem, 1.65vw, .72rem)/1.25 'Hind Siliguri',sans-serif !important;
            text-shadow:0 1px 8px rgba(0,0,0,.8) !important;
        }
        .fund-gallery .fund-meta > span {
            min-width:0 !important;
            overflow-wrap:anywhere !important;
        }
        .fund-gallery .fund-meta .fund-date {
            margin-left:auto !important;
            white-space:nowrap !important;
        }
        .fund-gallery .fund-delete {
            position:absolute !important;
            top:10px !important;
            right:10px !important;
            z-index:5 !important;
            pointer-events:auto !important;
            width:34px !important;
            height:34px !important;
            border-radius:50% !important;
            border:1px solid rgba(255,255,255,.22) !important;
            background:rgba(8,2,20,.58) !important;
            backdrop-filter:blur(8px) !important;
            color:#fff !important;
            cursor:pointer !important;
            transition:transform .22s ease, background .22s ease, border-color .22s ease !important;
        }
        .fund-gallery .fund-delete:hover { transform:scale(1.08); background:rgba(220,55,90,.82) !important; border-color:rgba(255,255,255,.42) !important; }
        .fund-gallery .fund-preview-hint {
            position:absolute !important;
            top:10px !important;
            left:10px !important;
            z-index:4 !important;
            padding:5px 9px !important;
            border:1px solid rgba(255,255,255,.2) !important;
            border-radius:999px !important;
            background:rgba(8,2,20,.48) !important;
            backdrop-filter:blur(7px) !important;
            color:#fff !important;
            font:700 .58rem 'Hind Siliguri',sans-serif !important;
            pointer-events:none !important;
            opacity:.92 !important;
        }
        @media (min-width:768px) {
            .fund-gallery { grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:18px !important; }
        }
        @media (min-width:1100px) {
            .fund-gallery { grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:20px !important; }
        }
        @media (max-width:480px) {
            .fund-gallery { grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:10px !important; }
            .fund-gallery .fund-item { border-radius:14px !important; }
            .fund-gallery .fund-overlay { padding:10px !important; }
            .fund-gallery .fund-title { font-size:.72rem !important; padding-bottom:5px !important; }
            .fund-gallery .fund-meta { font-size:.52rem !important; gap:4px !important; }
            .fund-gallery .fund-delete { width:28px !important; height:28px !important; top:7px !important; right:7px !important; font-size:.68rem !important; }
            .fund-gallery .fund-preview-hint { display:none !important; }
        }
        @media (prefers-reduced-motion:reduce) {
            .fund-gallery .fund-item, .fund-gallery .fund-image-wrap img { transition:none !important; }
        }

    
/* Image attachments for discussion replies and blog comments */
.discussion-reply-form .comment-image-input, .blog-comments .comment-image-input {
  flex:0 0 auto; min-width:0; padding:8px 10px; background:var(--bg-secondary); border:1px solid var(--border);
  border-radius:10px; color:var(--text-secondary); font:inherit; cursor:pointer; transition:all .2s ease;
}
.discussion-reply-form .comment-image-input:hover, .blog-comments .comment-image-input:hover { border-color:var(--accent-1); box-shadow:var(--shadow); }
.comment-attached-image { display:block; width:min(100%,520px); max-height:420px; object-fit:contain; margin-top:8px; border-radius:12px; border:1px solid var(--border); background:var(--bg-secondary); cursor:pointer; animation:resourceIn .28s ease both; }
@media (max-width:600px){ .discussion-reply-form .comment-image-input, .blog-comments .comment-image-input { width:100%; } }


/* Final Pomodoro layout refinement */
.focus-session-main{overflow:hidden;}
.focus-clock-layout,.focus-clock-wrap{min-width:0;max-width:100%;}
.focus-clock{font-size:clamp(4rem,15vw,10rem);max-width:100%;}

/* Keep all topic rows visually consistent while allowing long names to scroll horizontally. */
.focus-topic-panel{box-sizing:border-box;scrollbar-width:thin;overscroll-behavior:contain;}
.focus-topic{box-sizing:border-box;height:46px;min-height:46px;padding:7px 11px;}
.focus-topic-name{
  min-width:0;font-size:.74rem;line-height:1.25;white-space:nowrap;
  overflow-x:auto;overflow-y:hidden;text-overflow:clip;scrollbar-width:thin;
  scrollbar-gutter:stable;overscroll-behavior-x:contain;
}
.focus-topic-name small{
  display:block;font-size:.6rem;white-space:nowrap;overflow-x:auto;
  overflow-y:hidden;text-overflow:clip;scrollbar-width:thin;
}
.challenge-field input.topic-input{
  box-sizing:border-box;height:38px;min-height:38px;padding:7px 10px;
  font-size:.76rem;line-height:1.2;
}
.topic-row{min-height:38px;}
.topic-group-head strong{font-size:.76rem;}
.subject-choice{box-sizing:border-box;min-height:44px;height:44px;padding:8px 10px;}
.subject-choice span{font-size:.7rem;line-height:1.25;white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-gutter:stable;}
.subject-choice small{white-space:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;}

/* Horizontal view: long subject/topic labels scroll inside their own boxes, not the page. */
.focus-clock-layout.horizontal .focus-topic-panel{min-width:0;max-width:560px;}
.focus-clock-layout.horizontal .focus-topic-name,
.focus-clock-layout.horizontal .subject-choice span{overscroll-behavior-x:contain;}

@media(max-width:760px){
  .focus-clock{font-size:clamp(4rem,15vw,10rem);}
  .focus-session-main{padding:10px;overflow:hidden;}
  .focus-topic-panel{width:min(780px,95vw);max-width:100%;max-height:35vh;overflow-y:auto;overflow-x:hidden;}
  .focus-topic{height:44px;min-height:44px;padding:7px 9px;gap:7px;}
  .focus-topic-name{font-size:.7rem;}
  .focus-topic-name small{font-size:.56rem;}
  .challenge-field input.topic-input{height:36px;min-height:36px;font-size:.72rem;}
  .subject-choice{height:42px;min-height:42px;padding:7px 9px;}
  .subject-choice span{font-size:.68rem;}
}
.note-course-helper{
    margin:-2px 0 8px;
    color:var(--text-muted);
    font:500 .68rem/1.45 'Hind Siliguri',sans-serif;
    overflow-wrap:anywhere;
}
#noteShareForm select[name="note_course_code"]{
    border-color:color-mix(in srgb,var(--accent-1) 28%,var(--border));
}
#noteShareForm select[name="note_course_code"]:disabled{
    opacity:.62;
    cursor:not-allowed;
}
.note-course-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    margin-top:5px;
    padding:3px 8px;
    border:1px solid color-mix(in srgb,var(--accent-1) 32%,var(--border));
    border-radius:999px;
    background:color-mix(in srgb,var(--accent-1) 8%,var(--bg-secondary));
    color:var(--accent-1);
    font:800 .62rem/1.2 'Inter',sans-serif;
    letter-spacing:.03em;
}
.note-course-section{
    margin:7px 0 10px;
    padding:8px 10px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--bg-tertiary);
}
.note-course-section > .semester-label{
    margin:0;
}
.note-course-section .topics{
    padding-left:0;
}


/* ===== Bulletin sections ===== */
.bulletin-tabs { overflow:hidden; }
.bulletin-tabs .tab-headers { scrollbar-width:thin; }
.bulletin-tabs .tab-headers button { min-width:0; }
.notice-section-intro {
    display:flex; align-items:center; gap:12px; margin:12px 0 14px; padding:13px 14px;
    border:1px solid var(--border); border-radius:14px; background:var(--bg-tertiary); min-width:0;
}
.notice-section-intro-icon, .section-access-icon {
    width:40px; height:40px; flex:0 0 40px; display:grid; place-items:center;
    border-radius:12px; background:var(--gradient-accent); color:#fff;
}
.notice-section-intro strong, .notice-section-intro span { display:block; font-family:'Hind Siliguri',sans-serif; }
.notice-section-intro strong { color:var(--text-primary); font-size:.95rem; }
.notice-section-intro span { color:var(--text-muted); font-size:.72rem; margin-top:2px; }
.section-access-gate {
    max-width:520px; margin:28px auto; padding:24px 18px; text-align:center;
    border:1px solid var(--border); border-radius:18px; background:var(--gradient-card); box-shadow:var(--shadow);
}
.section-access-gate h4 { margin:12px 0 5px; color:var(--text-primary); font-size:1rem; font-family:'Hind Siliguri',sans-serif; }
.section-access-gate p { margin:0 auto 15px; color:var(--text-muted); font:.75rem 'Hind Siliguri',sans-serif; max-width:380px; line-height:1.55; }
.section-access-gate form { display:flex; gap:8px; max-width:430px; margin:0 auto; }
.section-access-gate input { flex:1; min-width:0; padding:12px 14px; border:1px solid var(--border); border-radius:11px; background:var(--bg-secondary); color:var(--text-primary); outline:none; font-family:'Hind Siliguri',sans-serif; }
.section-access-gate input:focus { border-color:var(--accent-1); }
.section-access-gate button { flex:0 0 auto; padding:12px 15px; border:0; border-radius:11px; background:var(--gradient-accent); color:#fff; font-weight:700; cursor:pointer; font-family:'Hind Siliguri',sans-serif; }
.section-access-error { display:none; margin-top:10px; color:#ff7b8a; font:.72rem 'Hind Siliguri',sans-serif; }
.fund-month-line { display:flex; align-items:center; gap:8px; margin:5px 0 14px; color:var(--accent-2); font:600 1rem 'Hind Siliguri',sans-serif; }
.blog-section-content, .bulletin-tabs .tab-content { min-width:0; overflow:hidden; }
.bulletin-tabs .announcement-item, .bulletin-tabs .fund-item, .bulletin-tabs .blog-post { min-width:0; max-width:100%; }
@media (max-width:600px) {
    .bulletin-tabs .tab-headers button { font-size:.73rem; padding:11px 7px; }
    .section-access-gate { margin:20px 0; padding:20px 14px; }
    .section-access-gate form { flex-direction:column; }
    .section-access-gate button { width:100%; }
    .notice-section-intro { padding:11px; }
}


        /* ===== Serial badge cleanup ===== */
        .q-serial,
        .serial,
        .c-serial,
        .reply-preview-serial {
            display: none !important;
        }

        /* Smooth theme transition without changing layout or component behavior. */
        body,
        body .app,
        body .top-nav,
        body .quick-card,
        body .stat-item,
        body .notice,
        body .contributors,
        body .routine-section,
        body .routine-day,
        body .tabs,
        body .forum-question,
        body .blog-post,
        body .form-card,
        body .project-card,
        body .feature-shell,
        body .feature-topbar,
        body .feature-icon-btn,
        body input,
        body textarea,
        body select {
            transition:
                background-color .22s ease,
                border-color .22s ease,
                color .22s ease,
                box-shadow .22s ease;
        }

/* Keep saved-question controls and shared-project deletion compact and touch-friendly. */
.resource-save-btn.is-saved { color: var(--accent-2); border-color: rgba(255,68,176,.28); background: rgba(255,68,176,.08); }
.resource-save-btn:hover { color: var(--accent-2); border-color: var(--accent-1); background: var(--bg-hover); }
#savedQuestionsSection .notes-resource-card { margin-top: 7px; }
.project-card { position: relative; }
.project-delete-btn { position: absolute; top: 10px; right: 10px; z-index: 6; width: 32px; height: 32px; padding: 0; justify-content: center; border-radius: 10px; background: rgba(8,10,20,.78); border: 1px solid rgba(255,255,255,.13); backdrop-filter: blur(8px); }
.project-delete-btn:hover { color: #ff6bbf; background: rgba(255,68,176,.18); transform: scale(1.06); }
@media (max-width: 700px) {
    #savedQuestionsSection .saved-notes-header { align-items: flex-start; }
    #savedQuestionsSection .notes-resource-card { padding: 10px; }
}

/* ============================================================
   PROJECT SECTION — RESPONSIVE PROFESSIONAL REFRESH
   Visual-only improvements + category dropdown; functionality/data preserved.
   ============================================================ */
.project-filters{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 18px;
  padding:10px 12px;border:1px solid rgba(123,47,252,.22);border-radius:16px;
  background:linear-gradient(135deg,rgba(123,47,252,.10),rgba(255,68,176,.06));
  box-shadow:0 10px 30px rgba(0,0,0,.10);
}
.project-filter-label{font-family:'Inter',sans-serif;font-size:.78rem;font-weight:700;color:var(--text-secondary);letter-spacing:.02em;display:flex;align-items:center;gap:7px;white-space:nowrap}
.project-filter-label i{color:var(--accent-2)}
.project-category-select{min-width:220px;max-width:100%;padding:10px 40px 10px 13px;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font-family:'Inter','Hind Siliguri',sans-serif;font-size:.82rem;font-weight:650;cursor:pointer;outline:none;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.project-category-select:hover{border-color:var(--accent-1);transform:translateY(-1px)}
.project-category-select:focus{border-color:var(--accent-1);box-shadow:0 0 0 3px rgba(123,47,252,.14)}
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0 22px}
.project-grid .project-card{overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:100%;padding:14px;background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(123,47,252,.045));border:1px solid rgba(123,47,252,.20);border-radius:18px;box-shadow:0 10px 28px rgba(0,0,0,.14);backdrop-filter:blur(8px);transition:transform .35s cubic-bezier(.2,.75,.2,1),border-color .35s ease,box-shadow .35s ease}
.project-grid .project-card::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-1),var(--accent-2),transparent);opacity:.65;transition:opacity .3s ease}
.project-grid .project-card::after{content:"";position:absolute;width:120px;height:120px;right:-60px;top:-60px;border-radius:50%;background:radial-gradient(circle,rgba(123,47,252,.20),transparent 68%);pointer-events:none;transition:transform .45s ease}
.project-grid .project-card:hover{transform:translateY(-7px);border-color:rgba(123,47,252,.65);box-shadow:0 18px 40px rgba(0,0,0,.22),0 0 26px rgba(123,47,252,.10)}
.project-grid .project-card:hover::before{opacity:1}
.project-grid .project-card:hover::after{transform:scale(1.35)}
.project-grid .project-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:13px;border:1px solid rgba(255,255,255,.10);background:var(--bg-tertiary);transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .4s ease,box-shadow .4s ease}
.project-grid .project-card:hover img{transform:scale(1.025);filter:saturate(1.08) contrast(1.03);box-shadow:0 8px 22px rgba(0,0,0,.18)}
.project-grid .project-card h4{font-family:'Inter','Hind Siliguri',sans-serif;font-size:1rem;line-height:1.35;font-weight:750;margin:13px 0 5px;color:var(--accent-1);letter-spacing:-.01em}
.project-grid .project-card .author{font-family:'Inter','Hind Siliguri',sans-serif;font-size:.73rem;line-height:1.5;color:var(--text-muted);margin-bottom:5px}
.project-grid .project-card .author i{color:var(--accent-2);margin-right:3px}
.project-grid .project-card .project-description{font-family:'Inter','Hind Siliguri',sans-serif;font-size:.79rem;line-height:1.65;color:var(--text-secondary);flex:1}
.project-grid .project-card .expandable-toggle{font-size:.68rem;border-radius:9px;transition:.25s ease}
.project-grid .project-card span[style*="font-size:0.55rem"]{margin-top:10px!important;font-family:'Inter',sans-serif!important;font-size:.62rem!important;font-weight:700;letter-spacing:.03em;border:1px solid var(--border);background:rgba(123,47,252,.09)!important;color:var(--accent-1)!important}
.project-grid .delete-btn{z-index:4!important;width:30px;height:30px;border-radius:10px!important;background:rgba(8,10,20,.78)!important;border:1px solid rgba(255,255,255,.13)!important;backdrop-filter:blur(8px);transition:transform .25s ease,background .25s ease,color .25s ease}
.project-grid .delete-btn:hover{transform:scale(1.08);background:rgba(255,68,176,.18)!important;color:#ff6bbf!important}
@keyframes projectCardIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
.project-grid .project-card{animation:projectCardIn .45s ease both}
.project-grid .project-card:nth-child(2){animation-delay:.04s}.project-grid .project-card:nth-child(3){animation-delay:.08s}.project-grid .project-card:nth-child(4){animation-delay:.12s}.project-grid .project-card:nth-child(5){animation-delay:.16s}.project-grid .project-card:nth-child(6){animation-delay:.20s}
@media (min-width:768px){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1100px){.project-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}}
@media (max-width:767px){.project-grid{grid-template-columns:1fr;gap:14px;margin-top:14px}.project-grid .project-card{width:100%;padding:13px;border-radius:16px}.project-grid .project-card h4{font-size:.98rem}.project-grid .project-card .project-description{font-size:.78rem}.project-category-select{flex:1;min-width:0;width:100%}.project-filter-label{width:100%}.project-filters{padding:11px;gap:7px}}
@media (prefers-reduced-motion:reduce){.project-grid .project-card,.project-grid .project-card img,.project-grid .project-card::after,.project-grid .project-card::before{animation:none!important;transition:none!important}}

/* Project links are presented as a clear, compact URL field without horizontal overflow. */
.project-link-helper{margin:-4px 0 8px;color:var(--text-muted);font:500 .68rem/1.45 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;word-break:break-word;}
.project-link-helper strong{color:var(--text-secondary);font-weight:700;}
.project-link-status{display:inline-flex;align-items:center;gap:4px;margin:6px 0 0 6px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;color:var(--accent-2);background:var(--bg-tertiary);font:700 .58rem/1 'Inter',sans-serif;}
.project-link-status i{font-size:.55rem;}

/* Remove the visible horizontal scrollbar under Pomodoro subject labels. */
@media (min-width: 761px) {
  #fcSubjects .subject-choice span,
  #fcSubjects .subject-choice small {
    scrollbar-width: none !important;
  }

  #fcSubjects .subject-choice span::-webkit-scrollbar,
  #fcSubjects .subject-choice small::-webkit-scrollbar {
    height: 0 !important;
    display: none !important;
  }
}

/* Hide only the Pomodoro subject label scrollbar while keeping the text scrollable. */
@media (min-width: 761px) {
  #fcSubjects .subject-choice span,
  #fcSubjects .subject-choice small {
    scrollbar-width: none !important;
    scrollbar-color: transparent transparent !important;
  }

  #fcSubjects .subject-choice span::-webkit-scrollbar,
  #fcSubjects .subject-choice small::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
  }
}

/* Batch Fund — accessible, compact financial report presentation */
.batch-fund-brief-input{width:100%;box-sizing:border-box;min-height:76px;resize:vertical;margin:6px 0 8px;padding:10px 12px;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);color:var(--text-primary);font:500 .82rem/1.5 'Hind Siliguri',sans-serif;outline:none;overflow:auto;}
.batch-fund-brief-input:focus{border-color:var(--accent-1);box-shadow:0 0 0 2px rgba(77,184,212,.10);}
.batch-fund-brief{margin:0 18px 16px;color:var(--text-secondary);font:500 .78rem/1.55 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;word-break:break-word;}
.batch-fund-report-heading .expandable-toggle{background:linear-gradient(90deg,transparent 0%,var(--bg-secondary) 24%,var(--bg-secondary) 100%);}
.batch-fund-brief .expandable-toggle{background:linear-gradient(90deg,transparent 0%,var(--bg-tertiary) 24%,var(--bg-tertiary) 100%);}
.batch-fund-helper{margin:-2px 0 8px;color:var(--text-muted);font:500 .68rem/1.45 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;}
.batch-fund-helper strong{color:var(--text-secondary);}
.batch-fund-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:4px;}
.batch-fund-field{min-width:0;display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font:700 .7rem/1.25 'Hind Siliguri',sans-serif;}
.batch-fund-input{display:flex;align-items:center;min-width:0;height:44px;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);overflow:hidden;}
.batch-fund-input>span{padding:0 9px;color:var(--accent-2);font-weight:800;flex:0 0 auto;}
.batch-fund-input input{min-width:0;width:100%;height:100%;padding:0 9px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--text-primary)!important;font:700 .82rem 'Inter',sans-serif;}
.batch-fund-input input:focus{outline:0!important;box-shadow:none!important;}
.batch-fund-preview{justify-content:center;padding:8px 12px;border:1px solid color-mix(in srgb,var(--accent-1) 30%,var(--border));border-radius:12px;background:color-mix(in srgb,var(--accent-1) 7%,var(--bg-secondary));}
.batch-fund-preview strong{font-size:1rem;color:var(--accent-1);overflow-wrap:anywhere;}
.batch-fund-preview strong.is-negative{color:var(--vote-down);}
.batch-fund-upload{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:10px 12px;border:1px dashed color-mix(in srgb,var(--accent-1) 42%,var(--border));border-radius:12px;background:var(--bg-secondary);color:var(--text-secondary);font:700 .72rem 'Hind Siliguri',sans-serif;cursor:pointer;min-width:0;}
.batch-fund-upload span{min-width:0;overflow-wrap:anywhere;}
.batch-fund-upload input{max-width:58%;min-width:0;color:var(--text-muted);font:500 .68rem 'Inter',sans-serif;}

.batch-fund-report:hover{transform:translateY(-2px)!important;box-shadow:var(--shadow-lg)!important;border-color:color-mix(in srgb,var(--accent-1) 42%,var(--border))!important;}
.batch-fund-report-head{flex:0 0 auto;display:flex;align-items:flex-start;gap:12px;padding:18px 18px 12px;min-width:0;}
.batch-fund-report-heading{min-width:0;flex:1;}
.batch-fund-kicker{display:inline-flex;align-items:center;gap:6px;color:var(--accent-2);font:800 .62rem/1 'Inter',sans-serif;text-transform:uppercase;letter-spacing:.08em;}
.batch-fund-report-heading h3{margin:7px 0 6px;color:var(--text-primary);font:800 clamp(1rem,2.4vw,1.25rem)/1.25 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;}
.batch-fund-meta{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--text-muted);font:500 .68rem/1.4 'Hind Siliguri',sans-serif;overflow-wrap:anywhere;}
.batch-fund-meta span{display:inline-flex;align-items:center;gap:5px;min-width:0;}
.batch-fund-meta i{color:var(--accent-1);}
.batch-fund-report .fund-delete{position:static!important;flex:0 0 auto;width:34px!important;height:34px!important;margin:0!important;opacity:.75;}
.batch-fund-metrics{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:0 18px 16px;min-width:0;}
.batch-fund-metric{min-width:0;padding:12px 13px;border-radius:13px;background:var(--bg-secondary);border:1px solid var(--border);overflow:hidden;}
.batch-fund-metric span{display:block;color:var(--text-muted);font:700 .62rem/1.3 'Hind Siliguri',sans-serif;text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere;}
.batch-fund-metric strong{display:block;margin-top:5px;color:var(--text-primary);font:800 clamp(.86rem,2vw,1.08rem)/1.15 'Inter',sans-serif;overflow-wrap:anywhere;}
.batch-fund-metric.raised strong{color:var(--accent-1);}
.batch-fund-metric.expense strong{color:var(--accent-2);}
.batch-fund-metric.remaining strong{color:var(--vote-up);}
.batch-fund-metric.overall strong{color:var(--text-primary);}


.batch-fund-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:180px;padding:30px 18px;border:1px dashed var(--border);border-radius:16px;color:var(--text-muted);text-align:center;font-family:'Hind Siliguri',sans-serif;}
.batch-fund-empty i{font-size:2rem;color:var(--accent-1);margin-bottom:3px;}
.batch-fund-empty strong{color:var(--text-secondary);font-size:.9rem;}
.batch-fund-empty span{font-size:.7rem;overflow-wrap:anywhere;}
.fund-gallery{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;align-items:stretch!important;min-width:0!important;}
@media (max-width:760px){
  .batch-fund-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .batch-fund-upload{align-items:flex-start;flex-direction:column;}
  .batch-fund-upload input{max-width:100%;width:100%;}
  .batch-fund-report-head{padding:15px 14px 10px;}
  .batch-fund-metrics{padding:0 14px 13px;grid-template-columns:repeat(2,minmax(0,1fr));}
  .batch-fund-image-wrap{padding:0 14px 0;}
}
@media (max-width:420px){
  .batch-fund-form-grid{grid-template-columns:1fr;}
  .batch-fund-metrics{grid-template-columns:1fr 1fr;gap:7px;}
  .batch-fund-metric{padding:10px;}
  .batch-fund-report-heading h3{font-size:.95rem;}
  .batch-fund-meta{font-size:.61rem;gap:5px 9px;}
}
@media (prefers-reduced-motion:reduce){.batch-fund-report{transition:none!important;}.batch-fund-report:hover{transform:none!important;}}

/* Batch Fund follows the Notice card width and responsive behavior. */
#fundGallery.fund-gallery{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:900px !important;
    margin-left:auto !important;
    margin-right:auto !important;
    gap:14px !important;
    align-items:stretch !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

#fundGallery.fund-gallery > .batch-fund-report{
    width:100% !important;
    max-width:900px !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    aspect-ratio:auto !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

/* Match the compact 2x2 information arrangement used by the mobile card. */
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:9px !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric{
    min-width:0 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading h3,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-meta,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-kicker,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric span,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric strong{
    max-width:100% !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
    width:100% !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    padding:0 18px 18px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap img{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    max-height:400px !important;
    aspect-ratio:16/9 !important;
    object-fit:contain !important;
    object-position:center !important;
    box-sizing:border-box !important;
    border-radius:12px !important;
}

/* Same responsive spacing behavior as Notice. */
@media (max-width:760px){
    #fundGallery.fund-gallery{
        max-width:100% !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report{
        max-width:100% !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head{
        padding:15px 14px 10px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
        padding:0 14px 13px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
        padding:0 14px 14px !important;
    }
}

@media (max-width:420px){
    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head{
        padding:12px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:7px !important;
        padding:0 12px 9px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
        padding:0 12px 12px !important;
    }
}

/* Prevent any old fullscreen 5/2-column rule from changing this gallery. */
.section-fullscreen-modal #fundGallery.fund-gallery{
    grid-template-columns:minmax(0,1fr) !important;
    max-width:900px !important;
}

@media (max-width:700px){
    .section-fullscreen-modal #fundGallery.fund-gallery{
        grid-template-columns:minmax(0,1fr) !important;
        max-width:100% !important;
    }
}

/* Batch Fund sharing form: keep the existing data and behavior while making
   the publisher compact, readable and safe on narrow screens. */
.batch-fund-share-form{
    width:100%;
    min-width:0;
    margin:0;
    padding:16px;
    background:var(--bg-tertiary);
    border:1px solid var(--border);
    border-radius:16px;
    box-sizing:border-box;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    gap:0;
}
.batch-fund-share-form h4{
    display:flex;
    align-items:center;
    gap:8px;
    margin:0 0 12px;
    padding:0 0 10px;
    color:var(--text-primary);
    border-bottom:1px solid var(--border);
    font:800 1rem/1.35 'Hind Siliguri',sans-serif;
    overflow-wrap:anywhere;
}
.batch-fund-share-form h4 i{
    color:var(--accent-2)!important;
    flex:0 0 auto;
}
.batch-fund-share-form > input[type="text"],
.batch-fund-share-form > textarea,
.batch-fund-share-form > select{
    width:100%!important;
    min-width:0;
    max-width:100%;
    margin:0 0 10px!important;
    padding:11px 13px!important;
    box-sizing:border-box;
    background:var(--bg-secondary)!important;
    color:var(--text-primary)!important;
    border:1px solid var(--border)!important;
    border-radius:11px!important;
    outline:none;
    font:500 .86rem/1.35 'Hind Siliguri',sans-serif!important;
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.batch-fund-share-form > input[type="text"]::placeholder,
.batch-fund-share-form > textarea::placeholder{
    color:var(--text-muted);
    opacity:1;
}
.batch-fund-share-form > input[type="text"]:focus,
.batch-fund-share-form > textarea:focus{
    border-color:var(--accent-1)!important;
    box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-1) 12%,transparent)!important;
}
.batch-fund-share-form .id-picker{
    display:grid!important;
    grid-template-columns:minmax(100px,.72fr) minmax(0,1fr);
    gap:8px;
    width:100%;
    min-width:0;
    margin:0 0 10px!important;
}
.batch-fund-share-form .id-picker > *{
    min-width:0;
    width:100%!important;
    margin:0!important;
    box-sizing:border-box;
    height:44px;
}
.batch-fund-share-form .id-picker select{
    padding:0 10px!important;
    background:var(--bg-secondary)!important;
    color:var(--text-secondary)!important;
    border:1px solid var(--border)!important;
    border-radius:11px!important;
    outline:none;
    font:600 .82rem 'Inter',sans-serif!important;
}
.batch-fund-share-form .id-picker input{
    padding:0 12px!important;
    background:var(--bg-secondary)!important;
    color:var(--text-primary)!important;
    border:1px solid var(--border)!important;
    border-radius:11px!important;
    outline:none;
    font:700 .84rem 'Inter',sans-serif!important;
}
.batch-fund-share-form .batch-fund-brief-input{
    min-height:82px;
    resize:vertical;
    overflow:auto;
}
.batch-fund-share-form .batch-fund-form-grid{
    width:100%;
    min-width:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin:0 0 9px;
}
.batch-fund-share-form .batch-fund-field{
    min-width:0;
}
.batch-fund-share-form .batch-fund-input{
    width:100%;
    max-width:100%;
    height:44px;
}
.batch-fund-share-form .batch-fund-input input{
    font-size:.82rem!important;
}
.batch-fund-share-form .batch-fund-helper{
    margin:0 0 9px;
}
.batch-fund-share-form .batch-fund-upload{
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0 0 10px;
    box-sizing:border-box;
}
.batch-fund-share-form .batch-fund-upload input{
    max-width:100%;
    min-width:0;
}
.batch-fund-share-form .fund-publish-btn{
    width:100%!important;
    min-height:44px;
    margin:0!important;
    box-sizing:border-box;
}
.batch-fund-share-form .form-close-btn{
    order:20;
}
@media (min-width:761px){
    .batch-fund-share-form .batch-fund-form-grid{
        grid-template-columns:repeat(4,minmax(0,1fr));
    }
}
@media (max-width:520px){
    .batch-fund-share-form{
        padding:13px;
        border-radius:14px;
    }
    .batch-fund-share-form .id-picker{
        grid-template-columns:minmax(92px,.7fr) minmax(0,1fr);
        gap:7px;
    }
    .batch-fund-share-form .batch-fund-form-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap:8px;
    }
}
@media (max-width:380px){
    .batch-fund-share-form{
        padding:11px;
    }
    .batch-fund-share-form .id-picker{
        grid-template-columns:1fr 1fr;
    }
    .batch-fund-share-form .batch-fund-form-grid{
        grid-template-columns:1fr;
    }
}

.study-focus-tools{margin:10px 0 14px;padding:12px;background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;}
.study-focus-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;min-width:0;}
.study-focus-kicker{display:block;color:var(--accent-2);font:700 .62rem/1.1 'Inter',sans-serif;text-transform:uppercase;letter-spacing:.12em;margin-bottom:3px;}
.study-focus-heading h2{color:var(--text-primary);font:700 1rem/1.2 'Hind Siliguri',sans-serif;margin:0;}
.study-focus-hint{color:var(--text-muted);font:500 .65rem/1.3 'Hind Siliguri',sans-serif;text-align:right;white-space:nowrap;}
.study-focus-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0;}
.study-focus-action{min-width:0;display:flex;align-items:center;gap:9px;padding:10px 11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease;}
.study-focus-action:hover{transform:translateY(-2px);border-color:var(--accent-1);background:var(--bg-hover);box-shadow:var(--shadow);}
.study-focus-action:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px;}
.study-focus-icon{width:34px;height:34px;flex:0 0 34px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--gradient-accent);font-size:.9rem;}
.study-focus-icon.progress{background:linear-gradient(135deg,var(--accent-2),var(--accent-1));}
.study-focus-copy{min-width:0;flex:1;display:block;}
.study-focus-copy strong{display:block;color:var(--text-primary);font:700 .8rem/1.25 'Hind Siliguri',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.study-focus-copy small{display:block;color:var(--text-muted);font:500 .62rem/1.3 'Hind Siliguri',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.study-focus-arrow{color:var(--text-muted);font-size:.7rem;flex:0 0 auto;transition:transform .2s ease,color .2s ease;}
.study-focus-action:hover .study-focus-arrow{color:var(--accent-1);transform:translateX(2px);}
@media(max-width:560px){.study-focus-heading{align-items:flex-start;}.study-focus-hint{display:none;}.study-focus-actions{grid-template-columns:1fr;}.study-focus-action{padding:9px 10px;}.study-focus-copy strong{font-size:.78rem;}.study-focus-copy small{font-size:.61rem;}}
@media(prefers-reduced-motion:reduce){.study-focus-action,.study-focus-arrow{transition:none;}}

/* Stories, notices and batch-fund reports are read-only; project sharing remains available. */
#blogShareFormContainer,#blogShareToggleBtn,#announcementFormContainer,#announcementToggleBtn,#fundPostFormContainer,#fundToggleBtn,#blogAnnouncementFormContainer,#blogAnnouncementToggleBtn,#blogFundPostFormContainer,#blogFundToggleBtn{display:none!important;}
.blog-post .delete-wrap,.blog-post .share-container,.announcement-item .delete-btn,.batch-fund-report .fund-delete{display:none!important;}

/* Keep CG Calculator and Daily Goal headers visually consistent with Focus Arena. */
.cg-topbar,
.goal-topbar {
    background: rgba(10, 0, 21, .78);
    border-bottom-color: var(--border);
    backdrop-filter: blur(18px);
}

body.dark .cg-topbar,
body.dark .goal-topbar {
    background: rgba(10, 14, 26, .82);
}

body.light .cg-topbar,
body.light .goal-topbar {
    background: rgba(255, 255, 255, .94);
    border-bottom-color: var(--border);
    box-shadow: 0 4px 18px rgba(17, 24, 39, .06);
}

body.light .cg-brand h2,
body.light .goal-brand h2 {
    color: var(--text-primary);
}

body.light .cg-brand p,
body.light .goal-brand p {
    color: var(--text-muted);
}

body.light .cg-close,
body.light .goal-close {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--border);
}

body.light .cg-close:hover,
body.light .goal-close:hover {
    color: #8A6200;
    border-color: var(--accent-1);
    background: #FFF8D9;
}

@media (max-width: 650px) {
    .cg-topbar,
    .goal-topbar {
        padding: 10px 12px;
    }
}

/* Keep every feature header consistent with the existing light theme palette. */
body.light .feature-topbar,
body.light .focus-session-top,
body.light .cg-topbar,
body.light .goal-topbar {
    background: var(--nav-bg) !important;
    border-bottom-color: var(--border) !important;
    color: var(--text-primary);
    box-shadow: 0 4px 18px rgba(17,24,39,.06);
}

body.light .feature-brand h2,
body.light .focus-session-meta strong,
body.light .cg-brand h2,
body.light .goal-brand h2 {
    color: var(--text-primary) !important;
}

body.light .feature-brand p,
body.light .focus-session-meta span,
body.light .cg-brand p,
body.light .goal-brand p {
    color: var(--text-muted) !important;
}

body.light .focus-session-top .layout-btn,
body.light .feature-topbar .feature-icon-btn,
body.light .cg-topbar .cg-close,
body.light .goal-topbar .goal-close {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--border);
}

body.light .focus-session-top .layout-btn.active {
    color: var(--accent-1);
    border-color: var(--accent-1);
    background: var(--bg-tertiary);
}

body.light .feature-topbar .live-chip {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--border);
}

body.light .feature-topbar .feature-icon-btn:hover,
body.light .focus-session-top .layout-btn:hover,
body.light .cg-topbar .cg-close:hover,
body.light .goal-topbar .goal-close:hover {
    color: var(--accent-1);
    border-color: var(--accent-1);
}

/* ============================================================
   CSE.23 — Bus Schedule + Focus Arena feature layer
   Additive only: existing styles/data/functions remain untouched.
   ============================================================ */
.feature-page{position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;z-index:120!important;padding:0!important;margin:0!important;background:var(--bg-primary);overflow:hidden!important;}
.feature-page.active{display:flex!important;flex-direction:column!important;animation:featureIn .32s ease both;}
@keyframes featureIn{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
.feature-shell{width:100%;height:100%;display:flex;flex-direction:column;min-height:0;background:radial-gradient(circle at 85% 5%,rgba(123,47,252,.10),transparent 28%),radial-gradient(circle at 10% 90%,rgba(0,212,255,.07),transparent 25%),var(--bg-primary);}
.feature-topbar{height:70px;flex:0 0 70px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 18px;border-bottom:1px solid var(--border);background:rgba(10,0,21,.78);backdrop-filter:blur(18px);position:relative;z-index:2;}
body.dark .feature-topbar{background:rgba(10,14,26,.82)}
.feature-brand{display:flex;align-items:center;gap:12px;min-width:0}.feature-brand-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--gradient-accent);color:#fff;box-shadow:0 8px 30px rgba(77,184,212,.14);flex:0 0 42px}.feature-brand h2{font-size:1rem;color:var(--text-primary);font-weight:800;line-height:1.15}.feature-brand p{font-size:.66rem;color:var(--text-muted);margin-top:2px}.feature-top-actions{display:flex;align-items:center;gap:8px}.feature-icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer}.feature-icon-btn:hover{border-color:var(--accent-1);color:var(--accent-1);transform:translateY(-2px)}
.feature-content{flex:1;min-height:0;overflow:auto;padding:20px clamp(14px,3vw,40px) 32px}.feature-inner{width:min(1180px,100%);margin:0 auto}.feature-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:8px 0 20px;flex-wrap:wrap}.feature-kicker{font-size:.68rem;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent-2);font-weight:800}.feature-hero h1{font-size:clamp(1.7rem,4vw,2.8rem);margin:4px 0;color:var(--text-primary);font-weight:900}.feature-hero p{max-width:720px;color:var(--text-secondary);font-size:.9rem;line-height:1.6}.live-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--border);border-radius:30px;background:var(--bg-secondary);font-size:.68rem;color:var(--text-secondary)}.live-dot{width:7px;height:7px;border-radius:50%;background:#5cb89a;box-shadow:0 0 12px #5cb89a;animation:livePulse 1.3s infinite}.live-dot.busy{background:var(--accent-2);box-shadow:0 0 12px var(--accent-2)}@keyframes livePulse{50%{transform:scale(1.6);opacity:.55}}
.bus-live-card{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:12px;margin-bottom:16px}.bus-live-item{background:var(--gradient-card);border:1px solid var(--border);border-radius:16px;padding:16px;min-width:0}.bus-live-item .small{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px}.bus-live-item strong{display:block;margin-top:5px;color:var(--text-primary);font-size:1.15rem;overflow-wrap:anywhere}.bus-live-item .sub{margin-top:3px;color:var(--text-secondary);font-size:.7rem}.bus-live-item.highlight{border-color:var(--accent-1);box-shadow:0 0 28px rgba(77,184,212,.08)}
.schedule-card{background:var(--gradient-card);border:1px solid var(--border);border-radius:20px;overflow:hidden;margin:16px 0;box-shadow:var(--shadow)}.schedule-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}.schedule-card-head h3{font-size:1rem;color:var(--accent-1)}.schedule-card-head span{font-size:.65rem;color:var(--text-muted)}.schedule-scroll{overflow:auto;max-height:55vh}.schedule-table{width:100%;border-collapse:collapse;min-width:760px;font-size:.78rem}.schedule-table th{position:sticky;top:0;z-index:1;background:var(--bg-tertiary);color:var(--text-primary);padding:11px 12px;text-align:left;border-bottom:1px solid var(--border);font-size:.68rem;text-transform:uppercase;letter-spacing:.4px}.schedule-table td{padding:11px 12px;color:var(--text-secondary);border-bottom:1px solid var(--border);vertical-align:middle}.schedule-table tr:last-child td{border-bottom:0}.schedule-table tr.bus-now td{background:rgba(92,184,154,.08);color:var(--text-primary)}.schedule-table tr.bus-next td{background:rgba(77,184,212,.07)}.schedule-table .trip-no{font-weight:900;color:var(--accent-1);white-space:nowrap}.schedule-table .bus-count{font-weight:800;color:var(--accent-2)}.schedule-table .status-pill{display:inline-flex;padding:3px 8px;border-radius:20px;font-size:.58rem;border:1px solid var(--border);color:var(--text-muted)}.schedule-table tr.bus-now .status-pill{color:#5cb89a;border-color:#5cb89a}.schedule-table tr.bus-next .status-pill{color:var(--accent-1);border-color:var(--accent-1)}
.schedule-note{padding:12px 16px;color:var(--text-muted);font-size:.68rem;line-height:1.5;border-top:1px solid var(--border)}
.focus-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(260px,.8fr);gap:16px;align-items:stretch}.focus-info,.focus-steps{background:var(--gradient-card);border:1px solid var(--border);border-radius:20px;padding:20px}.focus-info h3,.focus-steps h3{color:var(--accent-1);font-size:1.05rem;margin-bottom:10px}.focus-info p,.focus-info li,.focus-steps p{font-family:'Hind Siliguri',sans-serif;color:var(--text-secondary);font-size:.83rem;line-height:1.65}.focus-info ul{padding-left:20px;margin-top:8px}.focus-steps{background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary))}.focus-step{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.focus-step:last-child{border-bottom:0}.focus-step b{width:24px;height:24px;border-radius:50%;background:var(--gradient-accent);color:#fff;display:grid;place-items:center;font-size:.68rem;flex:0 0 24px}.focus-cta-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.focus-btn{border:0;border-radius:13px;padding:12px 18px;background:var(--gradient-accent);color:#fff;font-weight:800;cursor:pointer;font-family:'Hind Siliguri',sans-serif;display:inline-flex;align-items:center;justify-content:center;gap:8px}.focus-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(77,184,212,.16)}.focus-btn.secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.focus-btn.secondary:hover{color:var(--accent-1);border-color:var(--accent-1)}
.challenge-panel{display:none}.challenge-panel.open{display:block;animation:featureIn .3s ease both}.challenge-card{background:var(--gradient-card);border:1px solid var(--border);border-radius:20px;padding:18px;margin-top:16px}.challenge-card h3{color:var(--accent-1);font-size:1rem;margin-bottom:4px}.challenge-help{font-size:.7rem;color:var(--text-muted);margin-bottom:14px}.challenge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.challenge-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.challenge-field label{display:block;font-size:.68rem;color:var(--text-secondary);margin-bottom:5px}.challenge-field select,.challenge-field input{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:11px;background:var(--bg-secondary);color:var(--text-primary);outline:none;font:600 .8rem Inter,sans-serif}.challenge-field select:focus,.challenge-field input:focus{border-color:var(--accent-1)}.subject-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.subject-choice{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-secondary);cursor:pointer;min-width:0}.subject-choice:hover{border-color:var(--accent-1);transform:translateY(-1px)}.subject-choice input{accent-color:var(--accent-1);margin-top:3px}.subject-choice span{font-size:.72rem;color:var(--text-secondary);line-height:1.35;overflow-wrap:anywhere}.subject-choice small{display:block;color:var(--text-muted);margin-top:2px}.topic-builder{display:grid;gap:12px;margin-top:12px}.topic-group{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--bg-secondary)}.topic-group-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.topic-group-head strong{color:var(--text-primary);font-size:.8rem}.topic-group-head span{color:var(--accent-2);font-size:.62rem}.topic-count-line{display:grid;grid-template-columns:auto 90px 1fr;gap:8px;align-items:center;margin:7px 0 4px}.topic-count-line label{font-size:.65rem;color:var(--text-secondary)}.topic-count-line span{font-size:.6rem;color:var(--text-muted)}.topic-count-input{width:100%;padding:8px;border:1px solid var(--border);border-radius:9px;background:var(--bg-tertiary);color:var(--text-primary);outline:none;font:700 .72rem Inter,sans-serif}.topic-row{display:flex;gap:8px;margin-top:7px}.topic-row input{flex:1}.topic-remove{width:38px;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);cursor:pointer}.topic-remove:hover{color:var(--like-color);border-color:var(--like-color)}
.duration-options{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.duration-btn{padding:8px 12px;border:1px solid var(--border);border-radius:22px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.68rem}.duration-btn.active,.duration-btn:hover{background:var(--accent-1);border-color:var(--accent-1);color:#fff}.layout-toggle{display:flex;gap:6px}.layout-btn{padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;font-size:.68rem}.layout-btn.active{border-color:var(--accent-1);color:var(--accent-1)}
@font-face{font-family:'DSEG7 Classic';src:url('https://cdn.jsdelivr.net/npm/dseg@0.46.0/fonts/DSEG7-Classic/DSEG7Classic-Regular.woff2') format('woff2');font-display:swap}.focus-session{display:none;position:fixed;inset:0;z-index:180;background:radial-gradient(circle at 50% 35%,rgba(123,47,252,.14),transparent 35%),var(--bg-primary);overflow:hidden}.focus-session.open{display:flex;flex-direction:column;animation:featureIn .35s ease both}.focus-session-top{height:62px;flex:0 0 62px;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--border);background:rgba(10,0,21,.72);backdrop-filter:blur(18px)}.focus-session-meta{min-width:0}.focus-session-meta strong{display:block;color:var(--text-primary);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55vw}.focus-session-meta span{color:var(--text-muted);font-size:.62rem}.focus-session-main{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}.focus-clock-layout{width:min(1100px,100%);display:flex;flex-direction:column;align-items:center;gap:18px}.focus-clock-layout.horizontal{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;gap:18px 28px}.focus-clock-layout.horizontal .focus-clock-wrap{flex:1 1 440px}.focus-clock-layout.horizontal .focus-session-progress{flex:0 1 440px}.focus-clock-layout.horizontal .focus-topic-panel{flex:1 1 440px;width:auto;max-width:560px}.focus-clock-layout.horizontal .focus-session-actions{flex:1 1 440px}.focus-clock-wrap{text-align:center}.focus-clock-label{font-size:.62rem;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent-2);font-weight:800}.focus-clock{font-family:'DSEG7 Classic','DS-Digital','Digital-7','Courier New',monospace;font-weight:400;font-size:clamp(4rem,15vw,10rem);line-height:.95;letter-spacing:.04em;color:var(--text-primary);font-variant-numeric:tabular-nums;text-shadow:0 0 34px rgba(77,184,212,.14);white-space:nowrap}.focus-clock .colon{opacity:.55;animation:colonBlink 1s steps(1) infinite}@keyframes colonBlink{50%{opacity:.15}}.focus-session-progress{width:min(720px,90vw);height:9px;border-radius:20px;background:var(--bg-tertiary);border:1px solid var(--border);overflow:hidden}.focus-session-fill{height:100%;width:0;background:var(--gradient-accent);border-radius:inherit;transition:width .5s ease}.focus-session-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.focus-topic-panel{width:min(780px,95vw);max-height:32vh;overflow:auto;display:grid;gap:7px}.focus-topic{display:grid;grid-template-columns:auto 1fr auto;gap:9px;align-items:center;padding:9px 11px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px}.focus-topic input{accent-color:var(--accent-1);width:16px;height:16px}.focus-topic-name{font-size:.72rem;color:var(--text-primary);min-width:0}.focus-topic-name small{display:block;color:var(--text-muted);margin-top:2px}.focus-topic-time{font-size:.62rem;color:var(--accent-2);white-space:nowrap}.focus-session-footer{height:46px;flex:0 0 46px;text-align:center;color:var(--text-muted);font-size:.58rem;padding:12px;border-top:1px solid var(--border)}
.focus-report{display:none}.focus-report.open{display:block;animation:featureIn .35s ease both}.report-hero{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border:1px solid var(--border);border-radius:20px;padding:18px}.report-score{font:900 clamp(2.8rem,8vw,5rem) Inter,sans-serif;color:var(--accent-1)}.report-category{font-size:.7rem;letter-spacing:1px;text-transform:uppercase;color:var(--accent-2);font-weight:800}.report-hero h2{color:var(--text-primary);font-size:1.3rem;margin:4px 0}.report-hero p{color:var(--text-secondary);font-family:'Hind Siliguri',sans-serif;font-size:.78rem;line-height:1.5;max-width:650px}.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.report-card{background:var(--gradient-card);border:1px solid var(--border);border-radius:16px;padding:14px}.report-card h4{font-size:.78rem;color:var(--accent-1);margin-bottom:7px}.report-card p{font-family:'Hind Siliguri',sans-serif;color:var(--text-secondary);font-size:.72rem;line-height:1.5}.report-bar{height:12px;border-radius:20px;background:var(--bg-tertiary);border:1px solid var(--border);overflow:hidden;margin:10px 0}.report-bar span{display:block;height:100%;width:0;background:var(--gradient-accent);transition:width 1s ease}.report-breakdown{display:grid;gap:7px;margin-top:10px}.report-row{display:grid;grid-template-columns:minmax(90px,1fr) 2fr 42px;gap:8px;align-items:center}.report-row b{font-size:.65rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report-row .track{height:8px;border-radius:20px;background:var(--bg-tertiary);overflow:hidden}.report-row .track span{display:block;height:100%;width:0;background:var(--accent-1);transition:width .7s ease}.report-row em{font-style:normal;font-size:.62rem;color:var(--accent-1);text-align:right}.badge-wrap{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.achievement-badge{padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--bg-tertiary);font-size:.66rem;color:var(--text-secondary)}.achievement-badge i{color:var(--accent-2);margin-right:5px}.history-card{margin-top:12px}.history-item{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.66rem;color:var(--text-secondary)}.history-item:last-child{border-bottom:0}.history-item strong{color:var(--accent-1)}
.celebration{position:fixed;inset:0;z-index:250;display:none;align-items:center;justify-content:center;background:rgba(5,0,14,.78);backdrop-filter:blur(7px);overflow:hidden}.celebration.open{display:flex}.celebration-card{position:relative;z-index:2;text-align:center;padding:28px;max-width:520px;width:calc(100% - 32px);border:1px solid var(--border);border-radius:24px;background:var(--gradient-card);box-shadow:0 20px 70px rgba(0,0,0,.35);animation:celebratePop .55s cubic-bezier(.2,.8,.2,1)}@keyframes celebratePop{from{opacity:0;transform:translateY(25px) scale(.75)}to{opacity:1;transform:none}}.celebration-card .emoji{font-size:3.2rem;animation:cheerBounce .7s ease-in-out infinite alternate}@keyframes cheerBounce{to{transform:translateY(-9px) rotate(4deg)}}.celebration-card h2{font-size:1.6rem;color:var(--text-primary);margin:7px 0}.celebration-card p{font-family:'Hind Siliguri',sans-serif;color:var(--text-secondary);font-size:.82rem}.confetti{position:absolute;top:-20px;width:8px;height:16px;opacity:.9;animation:confettiFall linear forwards}.confetti:nth-child(3n){width:5px;height:11px}.confetti:nth-child(4n){border-radius:50%}@keyframes confettiFall{to{transform:translate3d(var(--dx),110vh,0) rotate(720deg);opacity:.2}}
@media(max-width:760px){.bus-live-card{grid-template-columns:1fr}.focus-intro{grid-template-columns:1fr}.challenge-grid,.challenge-grid.three,.subject-picker{grid-template-columns:1fr}.focus-clock{font-size:clamp(3.8rem,19vw,7rem)}.focus-session-main{padding:10px}.focus-clock-layout.horizontal{flex-direction:row;flex-wrap:wrap;align-items:center}.focus-clock-layout.horizontal .focus-clock-wrap,.focus-clock-layout.horizontal .focus-session-progress,.focus-clock-layout.horizontal .focus-topic-panel,.focus-clock-layout.horizontal .focus-session-actions{flex-basis:100%;max-width:100%}.focus-clock-layout.horizontal .focus-clock-wrap{flex-basis:auto;max-width:none}.focus-topic-panel{max-height:35vh}.report-grid{grid-template-columns:1fr}.feature-topbar{height:62px;flex-basis:62px}.feature-content{padding:14px 12px 24px}.schedule-scroll{max-height:52vh}}
@media(min-width:761px){.focus-session-main.horizontal-mode .focus-topic-panel{max-height:42vh}.focus-session-main.horizontal-mode .focus-clock{font-size:clamp(4rem,9vw,7rem)}}

/* Focus Arena polish — report, celebration and motion only */
.focus-info,.focus-steps,.challenge-card,.report-card{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}.focus-info:hover,.focus-steps:hover,.challenge-card:hover,.report-card:hover{transform:translateY(-2px);box-shadow:0 18px 48px rgba(0,0,0,.14)}
.focus-intro{animation:focusRise .65s ease both}.focus-info{animation:focusRise .65s .06s ease both}.focus-steps{animation:focusRise .65s .14s ease both}@keyframes focusRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
.focus-btn{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.focus-btn:hover{filter:brightness(1.08)}.focus-btn:active{transform:scale(.97)}
.focus-session{background:radial-gradient(circle at 50% 42%,rgba(123,47,252,.2),transparent 28%),radial-gradient(circle at 15% 85%,rgba(0,212,255,.08),transparent 24%),var(--bg-primary)}.focus-session:before{content:'';position:absolute;inset:-20%;pointer-events:none;background:linear-gradient(115deg,transparent 40%,rgba(255,255,255,.035) 50%,transparent 60%);animation:focusSweep 7s linear infinite}@keyframes focusSweep{from{transform:translateX(-22%)}to{transform:translateX(22%)}}.focus-clock-wrap{animation:clockFloat 3.5s ease-in-out infinite}.focus-session.open .focus-clock{animation:clockGlow 2.2s ease-in-out infinite alternate}@keyframes clockFloat{50%{transform:translateY(-5px)}}@keyframes clockGlow{from{filter:drop-shadow(0 0 14px rgba(123,47,252,.12))}to{filter:drop-shadow(0 0 32px rgba(77,184,212,.28))}}.focus-clock{filter:drop-shadow(0 0 22px rgba(123,47,252,.16))}.focus-session-progress{box-shadow:0 0 18px rgba(77,184,212,.1)}.focus-topic{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.focus-topic:hover{transform:translateX(3px);border-color:var(--accent-1);box-shadow:0 8px 24px rgba(77,184,212,.08)}.focus-topic.done{animation:topicDone .45s ease both}@keyframes topicDone{from{transform:scale(.98);opacity:.7}to{transform:none;opacity:1}}
.report-success-banner{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:22px;border:1px solid var(--border);border-radius:24px;background:radial-gradient(circle at 90% 20%,rgba(123,47,252,.16),transparent 30%),linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));overflow:hidden;animation:reportHeroIn .65s cubic-bezier(.2,.8,.2,1) both}.report-success-banner:after{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 42%,rgba(255,255,255,.08) 50%,transparent 58%);transform:translateX(-45%);animation:reportShine 3.2s 1s ease both}.success-burst{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;font-size:2rem;background:var(--gradient-accent);box-shadow:0 0 35px rgba(123,47,252,.25);animation:badgePop .7s .15s cubic-bezier(.2,1.5,.3,1) both}.success-copy h2{font-size:clamp(1.2rem,3vw,1.8rem);color:var(--text-primary);margin:4px 0}.success-copy p{font-family:'Hind Siliguri',sans-serif;color:var(--text-secondary);font-size:.8rem;line-height:1.55;max-width:650px}.success-score{width:94px;height:94px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:conic-gradient(var(--accent-1) calc(var(--score,0)*1%),var(--bg-tertiary) 0);position:relative;animation:scoreIn .9s .2s ease both}.success-score:before{content:'';position:absolute;inset:7px;border-radius:50%;background:var(--bg-primary)}.success-score span,.success-score small{position:relative;z-index:1;color:var(--text-primary);font-weight:900}.success-score span{font-size:1.55rem}.success-score small{font-size:.7rem;margin-top:13px}@keyframes reportHeroIn{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes reportShine{to{transform:translateX(45%)}}@keyframes badgePop{from{opacity:0;transform:scale(.55) rotate(-12deg)}to{opacity:1;transform:none}}@keyframes scoreIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.metric-tile{padding:14px;border:1px solid var(--border);border-radius:16px;background:var(--gradient-card);animation:metricIn .5s ease both}.metric-tile:nth-child(2){animation-delay:.06s}.metric-tile:nth-child(3){animation-delay:.12s}.metric-tile:nth-child(4){animation-delay:.18s}.metric-tile span,.metric-tile small{display:block;color:var(--text-muted);font-size:.62rem}.metric-tile strong{display:block;color:var(--text-primary);font-size:1.35rem;margin:4px 0}.metric-tile strong small{display:inline;color:var(--text-primary);font-size:.7rem}@keyframes metricIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.report-visual-grid{display:grid;grid-template-columns:.8fr 1.2fr 1fr;gap:12px;margin-top:12px}.report-ring-card{text-align:center}.report-ring-card h4{text-align:left}.completion-ring{width:150px;height:150px;margin:12px auto 8px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent-1) calc(var(--score)*1%),var(--bg-tertiary) 0);position:relative;animation:ringSpin .9s ease both}.completion-ring:before{content:'';position:absolute;inset:12px;border-radius:50%;background:var(--bg-primary)}.completion-ring>div{position:relative;z-index:1}.completion-ring strong{display:block;font-size:1.65rem;color:var(--text-primary)}.completion-ring span{font-size:.58rem;color:var(--text-muted)}.ring-caption{font-size:.68rem;color:var(--text-secondary)}@keyframes ringSpin{from{transform:scale(.7) rotate(-45deg);opacity:.2}to{transform:none;opacity:1}}
.report-bar-row{margin:12px 0}.report-bar-label{display:flex;justify-content:space-between;gap:8px;font-size:.65rem;color:var(--text-secondary)}.report-bar-label span{color:var(--accent-1);font-weight:800}.report-bar-track{height:10px;margin-top:6px;border-radius:20px;overflow:hidden;background:var(--bg-tertiary);border:1px solid var(--border)}.report-bar-track i{display:block;height:100%;border-radius:inherit;background:var(--gradient-accent);transition:width 1s cubic-bezier(.2,.8,.2,1)}
.mini-chart{height:145px;display:flex;align-items:flex-end;justify-content:space-around;gap:8px;padding:12px 4px 0}.mini-col{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.mini-col span{display:block;width:min(30px,70%);min-height:8px;border-radius:9px 9px 3px 3px;background:var(--gradient-accent);transition:height .8s cubic-bezier(.2,.8,.2,1);box-shadow:0 8px 18px rgba(77,184,212,.12)}.mini-col small{font-size:.55rem;color:var(--text-muted)}.mini-chart-label{display:flex;justify-content:space-between;color:var(--text-muted);font-size:.58rem}.mini-chart-label strong{color:var(--accent-1)}
.report-insight-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.insight-card{display:flex;gap:12px;padding:15px;border-radius:16px;border:1px solid var(--border);background:var(--gradient-card)}.insight-card.strong{border-color:rgba(92,184,154,.38)}.insight-card.weak{border-color:rgba(123,47,252,.28)}.insight-icon{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:12px;background:var(--bg-tertiary);font-size:1.2rem}.insight-card small{display:block;font-size:.56rem;letter-spacing:1px;color:var(--accent-2);font-weight:900}.insight-card strong{display:block;color:var(--text-primary);font-size:.85rem;margin-top:3px}.insight-card p{color:var(--text-secondary);font-size:.65rem;margin-top:3px}
.report-achievement-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px}.badge-wrap{margin-top:0}.achievement-badge{animation:badgePop .45s ease both}.achievement-badge:nth-child(2){animation-delay:.08s}.achievement-badge:nth-child(3){animation-delay:.16s}.achievement-badge:nth-child(4){animation-delay:.24s}.achievement-badge:nth-child(5){animation-delay:.32s}
.report-history-card{margin-top:12px}.report-history-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.report-history-head span{font-size:.6rem;color:var(--accent-1);font-weight:800}.history-list{margin-top:6px}.history-item{align-items:center;padding:10px 0}.history-item span{display:flex;flex-direction:column;gap:2px}.history-item span b{font-size:.55rem;color:var(--accent-2);text-transform:uppercase;letter-spacing:.6px}.history-item span small{font-size:.56rem;color:var(--text-muted)}.history-item>strong{font-size:.9rem}.report-final-quote{margin:14px 4px 0;padding:14px 18px;border-left:3px solid var(--accent-1);background:var(--bg-tertiary);border-radius:0 14px 14px 0;display:flex;gap:8px;align-items:flex-start}.report-final-quote>span{font-size:1.5rem;line-height:.8;color:var(--accent-1);font-weight:900}.report-final-quote p{font-family:'Hind Siliguri',sans-serif;color:var(--text-secondary);font-size:.75rem;line-height:1.55}.report-actions{justify-content:center}.report-empty{text-align:center;padding:40px 20px;border:1px solid var(--border);border-radius:20px;background:var(--gradient-card)}.report-empty-icon{font-size:2rem;margin-bottom:8px}.report-empty h3{color:var(--text-primary);font-size:1rem}.report-empty p{color:var(--text-muted);font-size:.68rem;margin-top:5px}
.celebration-card{animation:celebrateCard .65s cubic-bezier(.2,1.2,.3,1) both;box-shadow:0 30px 100px rgba(0,0,0,.3)}.celebration-card .emoji{font-size:2.5rem;animation:celebrateBounce 1.1s ease-in-out infinite}.celebration-card h2{font-size:clamp(1.5rem,5vw,2.5rem)}@keyframes celebrateCard{from{opacity:0;transform:scale(.72) translateY(18px)}to{opacity:1;transform:none}}@keyframes celebrateBounce{50%{transform:translateY(-7px) scale(1.04)}}
@media(max-width:850px){.report-visual-grid{grid-template-columns:1fr 1fr}.report-ring-card{grid-column:1/-1}.report-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.report-success-banner{grid-template-columns:auto 1fr;gap:12px}.success-score{grid-column:1/-1;justify-self:center;width:84px;height:84px}.report-visual-grid,.report-insight-grid{grid-template-columns:1fr}.report-achievement-card{align-items:flex-start;flex-direction:column}.metric-tile{padding:11px}.metric-tile strong{font-size:1.15rem}.completion-ring{width:135px;height:135px}}

/* Horizontal Pomodoro name scrolling */
@media (min-width: 761px) {
  #focusClockLayout.horizontal .focus-topic,
  #focusClockLayout.horizontal .topic-group-head strong,
  #focusClockLayout.horizontal .topic-group-head strong {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
  }

  #focusClockLayout.horizontal .topic-group-head strong::-webkit-scrollbar {
    height: 3px;
  }

  #focusClockLayout.horizontal .topic-group-head strong::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--accent-1);
  }

  #focusClockLayout.horizontal .focus-topic-name {
    min-width: 0 !important;
  }

  #focusClockLayout.horizontal .topic-group-head strong {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
  }

  #focusClockLayout.horizontal .topic-group-head strong::-webkit-scrollbar {
    height: 3px;
  }

  #focusClockLayout.horizontal .topic-group-head strong::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--accent-1);
  }

  #focusClockLayout.horizontal .focus-topic-name {
    display: block !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
  }

  #focusClockLayout.horizontal .focus-topic-name::-webkit-scrollbar {
    height: 3px;
  }

  #focusClockLayout.horizontal .focus-topic-name::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: var(--accent-1);
  }

  #focusClockLayout.horizontal .focus-topic-name small {
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  /* Keep subject/topic labels inside their existing horizontal boxes. */
  #focusClockLayout.horizontal .focus-topic-panel {
    min-width: 0 !important;
  }

  #focusClockLayout.horizontal .focus-topic-time {
    flex: 0 0 auto;
  }
}

/* Pomodoro horizontal view: keep the full subject/topic list reachable. */
@media (max-width:760px) {
  #focusClockLayout.horizontal .focus-topic-panel {
    width: min(94%, 760px) !important;
    max-width: 760px !important;
    height: 100% !important;
    max-height: none !important;
    min-height: 0 !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
    touch-action: pan-y !important;
    scrollbar-gutter: stable !important;
  }

  #focusClockLayout.horizontal .focus-topic-panel::-webkit-scrollbar {
    width: 4px;
  }

  #focusClockLayout.horizontal .focus-topic-panel::-webkit-scrollbar-track {
    background: transparent;
  }

  #focusClockLayout.horizontal .focus-topic-panel::-webkit-scrollbar-thumb {
    background: var(--accent-1);
    border-radius: 999px;
  }

  /* Subject and topic text stay inside their own boxes without changing layout. */
  #focusClockLayout.horizontal .focus-topic,
  #focusClockLayout.horizontal .focus-topic-name {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  #focusClockLayout.horizontal .focus-topic-name {
    display: block !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x !important;
    scrollbar-gutter: stable !important;
  }

  #focusClockLayout.horizontal .focus-topic-name::-webkit-scrollbar {
    height: 3px;
  }

  #focusClockLayout.horizontal .focus-topic-name::-webkit-scrollbar-track {
    background: transparent;
  }

  #focusClockLayout.horizontal .focus-topic-name::-webkit-scrollbar-thumb {
    background: var(--accent-1);
    border-radius: 999px;
  }

  #focusClockLayout.horizontal .focus-topic-name small {
    display: block !important;
    width: max-content !important;
    max-width: none !important;
    white-space: nowrap !important;
    overflow: visible !important;
  }
}

/* Batch Fund images use their natural aspect ratio, matching Notice media behavior. */
#fundGallery.fund-gallery .batch-fund-image-wrap,
#blogFundGallery.fund-gallery .batch-fund-image-wrap{width:100%!important;height:auto!important;min-height:0!important;aspect-ratio:auto!important;overflow:hidden!important;box-sizing:border-box!important;}
#fundGallery.fund-gallery .batch-fund-image-wrap img,
#blogFundGallery.fund-gallery .batch-fund-image-wrap img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;max-height:68vh!important;aspect-ratio:auto!important;object-fit:contain!important;object-position:center!important;box-sizing:border-box!important;background:var(--bg-secondary)!important;}
#fundGallery.fund-gallery .batch-fund-report,
#blogFundGallery.fund-gallery .batch-fund-report{height:auto!important;min-height:0!important;aspect-ratio:auto!important;}
@media(max-width:760px){
  #fundGallery.fund-gallery .batch-fund-image-wrap,
  #blogFundGallery.fund-gallery .batch-fund-image-wrap{padding:0 14px 14px!important;}
  .batch-fund-brief{margin-left:14px;margin-right:14px;}
}

/* Inline Batch Fund: compact layout, clear controls, stable spacing and safe mobile behavior. */
#blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools{
    min-height:40px;
    margin:0 0 8px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    flex-wrap:wrap;
}
#blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools .utility-btn{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:7px 12px!important;
    border:1px solid var(--accent-1)!important;
    border-radius:10px;
    background:rgba(166,155,255,.10)!important;
    color:var(--accent-1)!important;
    opacity:1!important;
    font-size:.72rem!important;
    font-weight:700;
    line-height:1.1;
}
#blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools .utility-btn:hover,
#blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools .utility-btn:focus-visible{
    background:rgba(166,155,255,.18)!important;
    border-color:var(--accent-1)!important;
    color:var(--text-primary)!important;
    transform:translateY(-1px);
    outline:none;
}
#blogPage #tab-batchfund .batch-fund-inline-content .section-close-btn{
    position:static!important;
    inset:auto!important;
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    padding:0!important;
    margin-left:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid var(--border)!important;
    border-radius:10px!important;
    background:var(--bg-tertiary)!important;
    color:var(--text-secondary)!important;
    box-shadow:none!important;
}
#blogPage #tab-batchfund .batch-fund-inline-content .section-close-btn:hover,
#blogPage #tab-batchfund .batch-fund-inline-content .section-close-btn:focus-visible{
    border-color:var(--accent-1)!important;
    color:var(--accent-1)!important;
    background:var(--bg-hover)!important;
    transform:none!important;
    outline:none;
}
#blogPage #tab-batchfund .batch-fund-inline-content > div[style*="margin-bottom:14px"]{
    margin-bottom:10px!important;
}
#blogPage #tab-batchfund .batch-fund-inline-content .fund-gallery{
    margin-top:10px!important;
}
#blogPage #tab-batchfund .batch-fund-inline-content .batch-fund-report{
    content-visibility:auto;
    contain:layout paint;
}
@media (max-width:600px){
    #blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools{
        min-height:38px;
    }
    #blogPage #tab-batchfund .batch-fund-inline-content .fund-section-tools .utility-btn{
        min-height:34px;
        padding:7px 10px!important;
        font-size:.69rem!important;
    }
}

/* Home navigation hierarchy */
.home-feature-section { margin: 18px 0 12px; }
.home-feature-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; margin:0 2px 10px; }
.home-feature-heading > div { min-width:0; }
.home-feature-kicker { display:block; color:var(--accent-2); font:800 .58rem/1.2 Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; margin-bottom:3px; }
.home-feature-heading h2 { margin:0; color:var(--text-primary); font:800 1.05rem/1.25 'Hind Siliguri',sans-serif; }
.home-feature-hint { flex:0 0 auto; color:var(--text-muted); font:500 .62rem/1.3 'Hind Siliguri',sans-serif; text-align:right; }
.home-primary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:0; }
.home-primary-card { min-height:132px; display:flex; flex-direction:column; justify-content:center; }
.home-tools-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:0; }
.home-tool-card { min-height:104px; padding:14px 10px; border-radius:14px; }
.home-tool-card .icon { font-size:1.8rem; margin-bottom:5px; }
.home-tool-card .title { font-size:.9rem; }
.home-tool-card .desc { font-size:.68rem; line-height:1.3; }
.home-more-section { margin:14px 0 18px; }
.home-more-toggle { width:100%; min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 14px; border:1px solid var(--border); border-radius:14px; background:var(--gradient-card); color:var(--text-primary); cursor:pointer; text-align:left; box-shadow:var(--shadow); }
.home-more-toggle:hover, .home-more-toggle:focus-visible { border-color:var(--accent-1); transform:translateY(-1px); outline:none; }
.home-more-toggle > span { min-width:0; display:flex; align-items:center; gap:9px; font:800 .8rem/1.2 'Hind Siliguri',sans-serif; }
.home-more-toggle > span i { color:var(--accent-1); flex:0 0 auto; }
.home-more-toggle small { color:var(--text-muted); font:500 .62rem/1.2 'Hind Siliguri',sans-serif; white-space:nowrap; }
.home-more-chevron { color:var(--accent-2); transition:transform .28s ease; }
.home-more-toggle[aria-expanded="true"] .home-more-chevron { transform:rotate(180deg); }
.home-more-panel { overflow:hidden; animation:homeMoreOpen .28s ease; }
.home-more-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:10px 0 0; }
.home-more-card { min-height:94px; padding:12px 9px; border-radius:14px; }
.home-more-card .icon { font-size:1.65rem; margin-bottom:4px; }
.home-more-card .title { font-size:.84rem; }
.home-more-card .desc { font-size:.64rem; line-height:1.25; }
@keyframes homeMoreOpen { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:480px){
  .home-feature-heading { align-items:flex-start; }
  .home-feature-hint { max-width:110px; }
  .home-primary-card { min-height:124px; padding:15px 10px; }
  .home-primary-card .icon { font-size:2rem; }
  .home-primary-card .title { font-size:.9rem; }
  .home-primary-card .desc { font-size:.67rem; }
  .home-tools-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-more-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .home-more-toggle > span { gap:7px; font-size:.76rem; }
  .home-more-toggle small { display:block; max-width:95px; overflow:hidden; text-overflow:ellipsis; }
}
@media(max-width:360px){
  .home-primary-grid, .home-tools-grid { gap:8px; }
  .home-primary-card { min-height:116px; }
  .home-tool-card { min-height:98px; }
  .home-more-grid { gap:7px; }
  .home-more-card { min-height:88px; }
  .home-feature-hint { display:none; }
}

/* Choose Date & Time */
        /* Monthly Fund final presentation polish — visual only */
        .fund-gallery .fund-item {
            isolation:isolate !important;
            box-shadow:0 10px 28px rgba(0,0,0,.18) !important;
            transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease !important;
        }
        .fund-gallery .fund-item:hover {
            transform:translateY(-4px) !important;
            box-shadow:0 16px 36px rgba(0,0,0,.28) !important;
        }
        .fund-gallery .fund-image-wrap {
            position:relative !important;
            width:100% !important;
            aspect-ratio:2/3 !important;
            overflow:hidden !important;
        }
        .fund-gallery .fund-image-wrap img {
            width:100% !important; height:100% !important; object-fit:cover !important;
            transition:transform .5s ease, filter .35s ease !important;
        }
        .fund-gallery .fund-item:hover .fund-image-wrap img { transform:scale(1.035) !important; filter:brightness(1.05) !important; }
        .fund-gallery .fund-overlay {
            background:linear-gradient(to top, rgba(5,2,15,.94) 0%, rgba(5,2,15,.70) 34%, rgba(5,2,15,0) 72%) !important;
        }
        .fund-gallery .fund-title {
            font-size:clamp(.86rem,2.3vw,1.08rem) !important;
            letter-spacing:.1px !important;
            line-height:1.3 !important;
            margin-bottom:2px !important;
        }
        .fund-gallery .fund-meta {
            font-size:clamp(.62rem,1.7vw,.76rem) !important;
            line-height:1.4 !important;
            padding-top:5px !important;
        }
        .fund-gallery .fund-meta > span:first-child { font-weight:700 !important; }
        .fund-gallery .fund-date { opacity:.9 !important; }
        @media (max-width:480px) {
            .fund-gallery .fund-overlay { padding:9px !important; }
            .fund-gallery .fund-title { font-size:.74rem !important; line-height:1.28 !important; }
            .fund-gallery .fund-meta { font-size:.53rem !important; gap:3px !important; }
        }

/* Mobile focus-session orientation and overflow control */
@media (min-width:761px){
  #fcSettingsCard [data-layout],
  #focusSession [data-session-layout]{display:none!important;}
}

@media (max-width:760px){
  #focusSession{overflow:hidden!important;}
  #focusSession .focus-session-top{flex:0 0 62px;min-width:0;}
  #focusSession .focus-session-top .layout-toggle{display:flex;flex:0 0 auto;}
  #focusSession .focus-session-top .feature-top-actions{min-width:0;max-width:72%;}
  #focusSession .focus-session-meta{min-width:0;max-width:100%;}
  #focusSession .focus-session-meta strong{max-width:100%;}

  #focusSessionMain{
    position:relative!important;
    min-width:0!important;
    min-height:0!important;
    width:100%!important;
    height:calc(100dvh - 62px)!important;
    padding:0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  /* Portrait mode keeps the focus content in the normal mobile direction. */
  #focusClockLayout.vertical{
    position:relative!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:100%!important;
    box-sizing:border-box!important;
    padding:clamp(10px,3vw,18px)!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:clamp(9px,2.5vw,15px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  /* Landscape mode rotates only the focus content, never the app chrome. */
  #focusSessionMain.horizontal-mode{
    display:block!important;
    overflow:hidden!important;
  }

  #focusClockLayout.horizontal{
    position:absolute!important;
    left:50%!important;
    top:50%!important;
    width:calc(100dvh - 62px)!important;
    height:100vw!important;
    max-width:none!important;
    max-height:none!important;
    min-width:0!important;
    min-height:0!important;
    margin:0!important;
    padding:clamp(8px,2vw,16px)!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    align-items:center!important;
    justify-items:center!important;
    gap:clamp(7px,1.6vw,12px)!important;
    overflow:hidden!important;
    transform:translate(-50%,-50%) rotate(90deg)!important;
    transform-origin:center center!important;
  }

  /* The clock gets the largest safe space in landscape mode. */
  #focusClockLayout.horizontal .focus-clock-wrap{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    text-align:center!important;
  }

  #focusClockLayout.horizontal .focus-session-progress{
    grid-column:1!important;
    grid-row:1!important;
    align-self:end!important;
    width:min(78%,520px)!important;
    max-width:78%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    margin-bottom:0!important;
  }

  /* Selected subjects and topics remain below the clock and scroll independently. */
  #focusClockLayout.horizontal .focus-topic-panel{
    grid-column:1!important;
    grid-row:2!important;
    width:min(92%,680px)!important;
    max-width:92%!important;
    max-height:none!important;
    height:100%!important;
    min-height:0!important;
    min-width:0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    box-sizing:border-box!important;
    padding-right:2px!important;
  }

  #focusClockLayout.horizontal .focus-session-actions{
    grid-column:1!important;
    grid-row:3!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    box-sizing:border-box!important;
  }

  #focusClockLayout.vertical .focus-clock-wrap,
  #focusClockLayout.vertical .focus-session-progress,
  #focusClockLayout.vertical .focus-topic-panel,
  #focusClockLayout.vertical .focus-session-actions{
    width:100%!important;
    max-width:680px!important;
    min-width:0!important;
    flex:0 0 auto!important;
    box-sizing:border-box!important;
  }

  #focusClockLayout.vertical .focus-topic-panel{
    max-height:34vh!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
  }

  #focusClockLayout .focus-topic{
    min-width:0!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    box-sizing:border-box!important;
  }
  #focusClockLayout .focus-topic-name{
    min-width:0!important;
    overflow-wrap:anywhere!important;
  }
  #focusClockLayout .focus-topic-time{
    max-width:34vw!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  #focusClockLayout .focus-clock{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    line-height:.9!important;
    letter-spacing:.015em!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    font-family:'DSEG7 Classic','DS-Digital','Digital-7','Courier New',monospace!important;
    font-variant-numeric:tabular-nums!important;
    box-sizing:border-box!important;
  }

  /* Scale from available screen space instead of forcing a fixed font size. */
  #focusClockLayout.vertical .focus-clock{
    font-size:min(18vw,11vh,7rem)!important;
  }
  #focusClockLayout.horizontal .focus-clock{
    font-size:min(27vw,14vh,10rem)!important;
  }
}

@media (max-width:390px){
  #focusClockLayout.vertical .focus-clock{font-size:min(17vw,10vh,5.8rem)!important;}
  #focusClockLayout.horizontal .focus-clock{font-size:min(25vw,13vh,8rem)!important;}
}

/* Final Pomodoro clock sizing fix: horizontal view only. */
@media (max-width:760px){
  #focusClockLayout.horizontal{
    grid-template-rows:minmax(0,1fr) minmax(58px,21%) auto !important;
    gap:clamp(4px,1.2vw,8px) !important;
  }

  #focusClockLayout.horizontal .focus-clock-label{
    font-size:clamp(.44rem,1.25vw,.58rem) !important;
    letter-spacing:1.35px !important;
    margin-bottom:clamp(2px,.6vh,5px) !important;
  }

  #focusClockLayout.horizontal .focus-clock{
    font-family:'DSEG7 Classic','Courier New',monospace !important;
    font-size:min(25vh,15vw,10rem) !important;
    line-height:.88 !important;
    letter-spacing:.01em !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    width:max-content !important;
    max-width:96vw !important;
    min-width:0 !important;
    display:block !important;
    text-align:center !important;
    font-variant-numeric:tabular-nums !important;
  }

  #focusClockLayout.horizontal .focus-clock-wrap{
    overflow:visible !important;
  }

  #focusClockLayout.horizontal .focus-topic-panel{
    width:min(92%,680px) !important;
    max-width:92% !important;
  }
}

/* Focus mode mobile layout: only the focus content changes orientation. */
@media (max-width:760px){
  #focusSessionMain{
    position:relative !important;
    width:100% !important;
    height:calc(100dvh - 62px) !important;
    min-height:0 !important;
    padding:0 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
  }

  #focusClockLayout.vertical,
  #focusClockLayout.horizontal{
    box-sizing:border-box !important;
    min-width:0 !important;
    min-height:0 !important;
  }

  /* Portrait: stack the clock first, then a scrollable topic list. */
  #focusClockLayout.vertical{
    position:relative !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    padding:clamp(8px,2.5vw,16px) !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:minmax(0,1fr) auto minmax(88px,30%) auto !important;
    align-items:center !important;
    justify-items:center !important;
    gap:clamp(6px,1.8vw,12px) !important;
    overflow:hidden !important;
    transform:none !important;
  }

  #focusClockLayout.vertical .focus-clock-wrap{
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
  }

  #focusClockLayout.vertical .focus-session-progress{
    grid-column:1 !important;
    grid-row:2 !important;
    width:min(92%,700px) !important;
    max-width:700px !important;
    margin:0 !important;
  }

  #focusClockLayout.vertical .focus-topic-panel{
    grid-column:1 !important;
    grid-row:3 !important;
    width:min(94%,720px) !important;
    max-width:720px !important;
    height:100% !important;
    max-height:none !important;
    min-height:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    padding:2px !important;
  }

  #focusClockLayout.vertical .focus-session-actions{
    grid-column:1 !important;
    grid-row:4 !important;
    width:100% !important;
    min-width:0 !important;
    justify-content:center !important;
  }

  /* Landscape: rotate only the focus content, while the app header stays fixed. */
  #focusClockLayout.horizontal{
    position:absolute !important;
    left:50% !important;
    top:50% !important;
    width:calc(100dvh - 62px) !important;
    height:100vw !important;
    margin:0 !important;
    padding:clamp(8px,2vw,14px) !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:minmax(0,1fr) minmax(76px,27%) auto !important;
    align-items:center !important;
    justify-items:center !important;
    gap:clamp(5px,1.5vw,10px) !important;
    overflow:hidden !important;
    transform:translate(-50%,-50%) rotate(90deg) !important;
    transform-origin:center center !important;
  }

  #focusClockLayout.horizontal .focus-clock-wrap{
    grid-column:1 !important;
    grid-row:1 !important;
    width:100% !important;
    height:100% !important;
    min-width:0 !important;
    min-height:0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
  }

  #focusClockLayout.horizontal .focus-session-progress{
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:end !important;
    width:min(78%,620px) !important;
    max-width:620px !important;
    margin:0 0 2px !important;
  }

  #focusClockLayout.horizontal .focus-topic-panel{
    grid-column:1 !important;
    grid-row:2 !important;
    width:min(94%,760px) !important;
    max-width:760px !important;
    height:100% !important;
    max-height:none !important;
    min-height:0 !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    padding:2px !important;
  }

  #focusClockLayout.horizontal .focus-session-actions{
    grid-column:1 !important;
    grid-row:3 !important;
    width:100% !important;
    min-width:0 !important;
    justify-content:center !important;
  }

  /* The clock uses the largest safe size without forcing text outside the screen. */
  #focusClockLayout .focus-clock{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:clip !important;
    line-height:.86 !important;
    letter-spacing:.015em !important;
    font-family:'DSEG7 Classic','DS-Digital','Digital-7','Courier New',monospace !important;
    font-variant-numeric:tabular-nums !important;
    font-weight:400 !important;
    text-align:center !important;
  }

  #focusClockLayout.vertical .focus-clock{
    font-size:min(18vw,14vh,7rem) !important;
  }

  #focusClockLayout.horizontal .focus-clock{
    font-size:min(18vw,21vh,10rem) !important;
  }

  #focusClockLayout .focus-clock-label{
    flex:0 0 auto !important;
    margin-bottom:clamp(4px,1vh,10px) !important;
    font-size:clamp(.52rem,1.8vw,.72rem) !important;
  }

  #focusClockLayout .focus-topic{
    grid-template-columns:auto minmax(0,1fr) minmax(0,auto) !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
  }

  #focusClockLayout .focus-topic-name,
  #focusClockLayout .focus-topic-name small,
  #focusClockLayout .focus-topic-time{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  #focusClockLayout .focus-topic-name{
    overflow-wrap:anywhere !important;
  }

  #focusClockLayout .focus-topic-time{
    white-space:nowrap !important;
  }
}

@media (max-width:390px){
  #focusClockLayout.vertical .focus-clock{font-size:min(17vw,13vh,6.2rem) !important;}
  #focusClockLayout.horizontal .focus-clock{font-size:min(17vw,20vh,9rem) !important;}
}

@media (min-width:761px){
  #focusSession [data-session-layout]{display:none !important;}
}

/* Pomodoro responsive clock polish */
@media (min-width: 761px) {
  #focusClockLayout.horizontal .focus-clock {
    font-size: min(30vw, 15vh, 10rem) !important;
    width: max-content !important;
    max-width: 100% !important;
    overflow: visible !important;
    letter-spacing: 0 !important;
  }
  #focusClockLayout.horizontal .focus-clock-wrap {
    overflow: visible !important;
  }
}

#focusClockLayout .focus-clock-label {
  font-size: .52rem !important;
  line-height: 1.1 !important;
  margin-bottom: 2px !important;
}

#focusClockLayout .focus-topic {
  min-height: 0 !important;
  padding: 5px 8px !important;
  gap: 7px !important;
  border-radius: 9px !important;
}
#focusClockLayout .focus-topic input {
  width: 13px !important;
  height: 13px !important;
}
#focusClockLayout .focus-topic-name {
  font-size: .64rem !important;
  line-height: 1.15 !important;
}
#focusClockLayout .focus-topic-name small {
  font-size: .54rem !important;
  margin-top: 1px !important;
  line-height: 1.1 !important;
}
#focusClockLayout .focus-topic-time {
  font-size: .54rem !important;
}

@media (max-width: 760px) {
  #focusClockLayout.vertical .focus-clock {
    font-size: min(19vw, 12vh, 7rem) !important;
    width: max-content !important;
    max-width: 100% !important;
    overflow: visible !important;
    letter-spacing: 0 !important;
  }
  #focusClockLayout.vertical .focus-clock-wrap {
    overflow: visible !important;
  }
  #focusClockLayout.vertical .focus-topic {
    padding: 4px 7px !important;
    gap: 6px !important;
  }
  #focusClockLayout.vertical .focus-topic-name {
    font-size: .60rem !important;
  }
  #focusClockLayout.vertical .focus-topic-name small,
  #focusClockLayout.vertical .focus-topic-time {
    font-size: .50rem !important;
  }
}


/* Final Pomodoro compact sizing and safe clock fit */
#fcSubjects .subject-choice{
    min-height:0 !important;
    padding:6px 8px !important;
    gap:7px !important;
}
#fcSubjects .subject-choice span{
    font-size:.68rem !important;
    line-height:1.2 !important;
}
#fcSubjects .subject-choice small{
    font-size:.56rem !important;
    line-height:1.1 !important;
    margin-top:1px !important;
}
#fcTopicBuilder .topic-group{
    padding:9px !important;
}
#fcTopicBuilder .topic-group-head{
    margin-bottom:5px !important;
}
#fcTopicBuilder .topic-group-head strong{
    font-size:.72rem !important;
}
#fcTopicBuilder .topic-group-head span{
    font-size:.56rem !important;
}
#fcTopicBuilder .topic-count-line{
    grid-template-columns:auto 74px 1fr !important;
    gap:6px !important;
    margin:5px 0 3px !important;
}
#fcTopicBuilder .topic-count-line label{
    font-size:.58rem !important;
}
#fcTopicBuilder .topic-count-line span{
    font-size:.54rem !important;
}
#fcTopicBuilder .topic-count-input{
    padding:6px 7px !important;
    font-size:.66rem !important;
}
#fcTopicBuilder .topic-row{
    gap:6px !important;
    margin-top:5px !important;
}
#fcTopicBuilder .topic-input{
    min-height:0 !important;
    padding:7px 9px !important;
    font:600 .72rem Inter,sans-serif !important;
    line-height:1.2 !important;
    border:1px solid var(--border) !important;
    border-radius:9px !important;
    background:var(--bg-tertiary) !important;
    color:var(--text-primary) !important;
    outline:none !important;
}
#fcTopicBuilder .topic-remove{
    width:32px !important;
    min-width:32px !important;
    height:32px !important;
    border-radius:9px !important;
}

#focusClockLayout.vertical .focus-clock{
    width:max-content !important;
    max-width:100% !important;
    font-size:min(9vw,13vh,8rem) !important;
    line-height:.88 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    overflow:visible !important;
    text-overflow:clip !important;
    font-variant-numeric:tabular-nums !important;
}
#focusClockLayout.vertical .focus-clock-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow:visible !important;
}
#focusClockLayout.vertical .focus-topic{
    min-height:0 !important;
    padding:5px 8px !important;
    gap:7px !important;
    border-radius:9px !important;
}
#focusClockLayout.vertical .focus-topic-name{
    font-size:.64rem !important;
    line-height:1.15 !important;
}
#focusClockLayout.vertical .focus-topic-name small{
    font-size:.52rem !important;
    line-height:1.1 !important;
    margin-top:1px !important;
}
#focusClockLayout.vertical .focus-topic-time{
    font-size:.52rem !important;
}

@media (max-width:760px){
    #focusClockLayout.vertical{
        padding:8px !important;
        gap:6px !important;
    }
    #focusClockLayout.vertical .focus-clock{
        font-size:min(16vw,10vh,6.5rem) !important;
        line-height:.86 !important;
        letter-spacing:0 !important;
    }
    #focusClockLayout.vertical .focus-topic{
        padding:4px 7px !important;
        gap:6px !important;
    }
    #focusClockLayout.vertical .focus-topic-name{
        font-size:.60rem !important;
    }
    #focusClockLayout.vertical .focus-topic-name small,
    #focusClockLayout.vertical .focus-topic-time{
        font-size:.50rem !important;
    }
    #fcSubjects .subject-choice{
        padding:5px 7px !important;
    }
    #fcSubjects .subject-choice span{
        font-size:.66rem !important;
    }
    #fcSubjects .subject-choice small{
        font-size:.54rem !important;
    }
    #fcTopicBuilder .topic-group{
        padding:8px !important;
    }
    #fcTopicBuilder .topic-input{
        padding:6px 8px !important;
        font-size:.68rem !important;
    }
}

/* Desktop Pomodoro alignment and independent scrolling. */
@media (min-width: 761px) {
  #fcSubjects {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 100% !important;
    max-height: 240px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 2px 4px 4px 2px !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
    box-sizing: border-box !important;
  }

  #fcSubjects::-webkit-scrollbar,
  #fcTopicBuilder::-webkit-scrollbar,
  #focusTopicPanel::-webkit-scrollbar {
    width: 6px;
  }

  #fcSubjects::-webkit-scrollbar-track,
  #fcTopicBuilder::-webkit-scrollbar-track,
  #focusTopicPanel::-webkit-scrollbar-track {
    background: transparent;
  }

  #fcSubjects::-webkit-scrollbar-thumb,
  #fcTopicBuilder::-webkit-scrollbar-thumb,
  #focusTopicPanel::-webkit-scrollbar-thumb {
    background: var(--accent-1);
    border-radius: 999px;
  }

  #fcSubjects .subject-choice {
    width: 100% !important;
    min-width: 0 !important;
    height: 58px !important;
    min-height: 58px !important;
    align-items: center !important;
    padding: 8px 10px !important;
    overflow: hidden !important;
  }

  #fcSubjects .subject-choice span,
  #fcSubjects .subject-choice small {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
  }

  #fcTopicBuilder {
    width: 100% !important;
    max-height: 360px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 2px 4px 4px 2px !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
    box-sizing: border-box !important;
  }

  #fcTopicBuilder .topic-group {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #focusSessionMain {
    min-width: 0 !important;
    min-height: 0 !important;
    overflow: auto !important;
  }

  #focusClockLayout {
    width: min(1120px, 100%) !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #focusClockLayout.vertical {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: auto auto minmax(0, 1fr) auto !important;
    justify-items: center !important;
    align-items: center !important;
    gap: 16px !important;
    width: min(820px, 100%) !important;
    max-height: calc(100vh - 150px) !important;
    margin: 0 auto !important;
  }

  #focusClockLayout.vertical .focus-clock-wrap,
  #focusClockLayout.vertical .focus-session-progress,
  #focusClockLayout.vertical .focus-topic-panel,
  #focusClockLayout.vertical .focus-session-actions {
    grid-column: 1 !important;
    width: 100% !important;
    max-width: 720px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  #focusClockLayout.vertical .focus-clock-wrap {
    grid-row: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: visible !important;
  }

  #focusClockLayout.vertical .focus-session-progress {
    grid-row: 2 !important;
  }

  #focusClockLayout.vertical .focus-topic-panel {
    grid-row: 3 !important;
    height: min(38vh, 360px) !important;
    max-height: 360px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
  }

  #focusClockLayout.vertical .focus-session-actions {
    grid-row: 4 !important;
  }

  #focusClockLayout.horizontal {
    display: grid !important;
    grid-template-columns: minmax(420px, 1fr) minmax(360px, 520px) !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 18px 28px !important;
    width: min(1120px, 100%) !important;
    min-height: 0 !important;
    margin: 0 auto !important;
  }

  #focusClockLayout.horizontal .focus-clock-wrap {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: visible !important;
  }

  #focusClockLayout.horizontal .focus-clock {
    width: max-content !important;
    max-width: 100% !important;
    font-size: min(8.5vw, 9rem) !important;
    line-height: .9 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-align: center !important;
  }

  #focusClockLayout.horizontal .focus-session-progress {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: end !important;
    justify-self: center !important;
    width: min(90%, 620px) !important;
    max-width: 620px !important;
    margin-bottom: 4px !important;
  }

  #focusClockLayout.horizontal .focus-topic-panel {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 520px !important;
    height: min(58vh, 520px) !important;
    max-height: 520px !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    box-sizing: border-box !important;
  }

  #focusClockLayout.horizontal .focus-session-actions {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    justify-content: center !important;
  }

  #focusClockLayout .focus-topic {
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
  }

  #focusClockLayout .focus-topic-name {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
    scrollbar-width: thin !important;
    scrollbar-color: var(--accent-1) transparent !important;
  }

  #focusClockLayout .focus-topic-name small {
    display: block !important;
    max-width: max-content !important;
    white-space: nowrap !important;
  }

  #focusClockLayout .focus-topic-time {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
  }
}

/* Final Pomodoro clock label spacing fix */
#focusClockLayout .focus-clock-wrap {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
}

#focusClockLayout .focus-clock-label {
    display:block;
    margin:0 !important;
    padding:0 6px;
    line-height:1.2 !important;
    height:auto;
    position:relative;
    z-index:2;
}

#focusClockLayout .focus-clock {
    display:block;
    line-height:.9 !important;
}

@media (max-width:760px) {
    #focusClockLayout .focus-clock-wrap {
        gap:8px;
    }
}
/* Remove the visible horizontal scrollbar from Pomodoro subject labels. Keep horizontal scrolling functional. */
#fcSubjects .subject-choice span,
#fcSubjects .subject-choice small{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
#fcSubjects .subject-choice span::-webkit-scrollbar,
#fcSubjects .subject-choice small::-webkit-scrollbar{
  display:none !important;
  width:0 !important;
  height:0 !important;
}

    /* CSE.23 dark-theme polish: keep the existing neon theme unchanged. */
    body.dark .quick-card:hover { box-shadow: 0 8px 24px rgba(166,155,255,0.10); }
    body.dark .blog-post:hover { box-shadow: 0 4px 24px rgba(166,155,255,0.08); }
    body.dark .form-card input:focus,
    body.dark .form-card textarea:focus,
    body.dark .form-card select:focus { box-shadow: 0 0 18px rgba(166,155,255,0.10); }
    body.dark .form-card button:hover { box-shadow: 0 4px 18px rgba(166,155,255,0.18); }
    body.dark .feature-brand-icon { box-shadow: 0 8px 24px rgba(166,155,255,0.12); }
    body.dark .bus-live-item.highlight { box-shadow: 0 0 24px rgba(166,155,255,0.07); }
    body.dark .focus-btn:hover { box-shadow: 0 8px 24px rgba(166,155,255,0.14); }
    body.dark .focus-clock { text-shadow: 0 0 28px rgba(166,155,255,0.12); }
    body.dark .focus-session-progress { box-shadow: 0 0 16px rgba(166,155,255,0.08); }
    body.dark .focus-topic:hover { box-shadow: 0 8px 22px rgba(166,155,255,0.07); }
    body.dark .mini-col span { box-shadow: 0 8px 18px rgba(166,155,255,0.10); }
    body.dark .live-dot { background: var(--accent-2); box-shadow: 0 0 10px rgba(114,230,180,0.35); }
    body.dark .schedule-table tr.bus-now .status-pill { color: var(--vote-up); border-color: var(--vote-up); }
    body.dark .schedule-table tr.bus-now td { background: rgba(114,230,180,0.06); }
    body.dark .schedule-table tr.bus-next td { background: rgba(166,155,255,0.05); }
    body.dark .focus-session-top { background: rgba(13,13,20,0.82); }
    body.dark .focus-session { background: radial-gradient(circle at 50% 42%, rgba(166,155,255,0.12), transparent 30%), var(--bg-primary); }

        /* ===== Professional Global Search ===== */
        .search-slide { max-height:100dvh; overflow-y:auto; overflow-x:hidden; }
        .search-results { max-height:min(62vh, 520px); padding-bottom:4px; }
        .global-search-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 12px 6px; color:var(--accent-1); font:700 .78rem 'Hind Siliguri',sans-serif; }
        .global-search-heading span { display:flex; align-items:center; gap:7px; }
        .global-search-heading small { color:var(--text-muted); font:500 .66rem 'Inter',sans-serif; }
        .global-search-result { border:1px solid transparent; background:rgba(255,255,255,.015); margin:4px 0; min-width:0; }
        .global-search-result:hover, .global-search-result:focus-visible { border-color:var(--border); background:var(--bg-hover); outline:none; }
        .global-search-result .global-result-main { display:flex; flex-direction:column; gap:2px; min-width:0; flex:1; }
        .global-search-result .global-result-main strong { color:var(--text-primary); font:600 .88rem/1.35 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; word-break:break-word; }
        .global-search-result .global-result-main small { color:var(--text-muted); font:500 .64rem/1.35 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; word-break:break-word; }
        .global-search-result em { flex:0 0 auto; color:var(--text-muted); font:500 .58rem 'Inter',sans-serif; font-style:normal; max-width:25%; text-align:right; overflow-wrap:anywhere; }
        .global-search-hint, .global-search-empty { display:flex; align-items:center; gap:10px; padding:16px 12px; margin-top:8px; border:1px dashed var(--border); border-radius:12px; color:var(--text-muted); font:500 .76rem/1.5 'Hind Siliguri',sans-serif; }
        .global-search-hint i, .global-search-empty i { color:var(--accent-2); flex:0 0 auto; }
        .global-search-empty strong { color:var(--accent-1); overflow-wrap:anywhere; }
        .global-search-focus { animation:globalSearchFocus 2.2s ease both; }
        @keyframes globalSearchFocus { 0%,100% { box-shadow:var(--shadow); } 12% { border-color:var(--accent-1)!important; box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-1) 20%, transparent), var(--shadow-lg); transform:translateY(-2px); } 30% { border-color:var(--accent-2)!important; } }
        @media (max-width:600px) {
            .search-slide { padding-left:12px; padding-right:12px; }
            .search-results { max-height:68vh; }
            .global-search-result em { display:none; }
            .global-search-result .global-result-main strong { font-size:.82rem; }
        }

/* ===== CG Calculator ===== */
.cg-page, .goal-page { position:fixed!important; inset:0!important; width:100vw!important; height:100dvh!important; max-width:none!important; z-index:125!important; margin:0!important; padding:0!important; background:var(--bg-primary); overflow:hidden!important; }
.cg-page.active, .goal-page.active { display:flex!important; flex-direction:column!important; animation:featureIn .3s ease both; }
.cg-shell, .goal-shell { width:100%; min-width:0; height:100%; display:flex; flex-direction:column; overflow:hidden; }
.cg-topbar, .goal-topbar {
  flex:0 0 auto;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 18px;
  border-bottom:1px solid #2A2D36;
  background:linear-gradient(135deg,#15161C 0%,#242630 100%);
  color:#F7F8FA;
  box-shadow:0 6px 22px rgba(0,0,0,.12);
  backdrop-filter:blur(16px);
}
.cg-brand, .goal-brand { min-width:0; display:flex; align-items:center; gap:10px; }
.cg-brand-icon, .goal-brand-icon { width:42px; height:42px; flex:0 0 42px; display:grid; place-items:center; border-radius:13px; color:#fff; background:var(--gradient-accent); box-shadow:var(--shadow); }
.cg-brand h2, .goal-brand h2 { color:var(--text-primary); font:800 1rem/1.2 Inter,sans-serif; margin:0; }
.cg-brand p, .goal-brand p { color:var(--text-muted); font:500 .67rem/1.3 'Hind Siliguri',sans-serif; margin:2px 0 0; }
.cg-top-actions, .goal-top-actions { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.cg-close, .goal-close { width:38px; height:38px; border:1px solid var(--border); border-radius:12px; background:var(--bg-secondary); color:var(--text-secondary); cursor:pointer; display:grid; place-items:center; }
.cg-close:hover, .goal-close:hover { color:#fff; border-color:var(--accent-1); transform:translateY(-1px); }
.cg-content, .goal-content { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; padding:18px; }
.cg-inner, .goal-inner { width:min(1180px,100%); margin:0 auto; min-width:0; }
.cg-hero, .goal-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:4px 0 16px; }
.cg-kicker, .goal-kicker { color:var(--accent-2); font:700 .67rem/1 'Inter',sans-serif; text-transform:uppercase; letter-spacing:.12em; }
.cg-hero h1, .goal-hero h1 { margin:7px 0 5px; color:var(--text-primary); font:900 clamp(1.45rem,3vw,2.25rem)/1.1 Inter,sans-serif; }
.cg-hero p, .goal-hero p { max-width:720px; color:var(--text-secondary); font:500 .8rem/1.55 'Hind Siliguri',sans-serif; margin:0; }
.cg-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr); gap:14px; align-items:start; }
.cg-card, .goal-card { min-width:0; background:var(--gradient-card); border:1px solid var(--border); border-radius:17px; box-shadow:var(--shadow); padding:15px; }
.cg-card h3, .goal-card h3 { color:var(--text-primary); font:800 .92rem/1.3 'Hind Siliguri',sans-serif; margin:0 0 12px; }
.cg-card h3 i, .goal-card h3 i { color:var(--accent-2); margin-right:6px; }
.cg-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.cg-field label, .goal-field label { display:block; color:var(--text-secondary); font:700 .67rem/1.2 'Hind Siliguri',sans-serif; margin:0 0 5px; }
.cg-field select, .cg-field input, .goal-field input, .goal-field textarea { width:100%; min-width:0; box-sizing:border-box; border:1px solid var(--border); border-radius:11px; padding:10px 11px; background:var(--bg-tertiary); color:var(--text-primary); outline:none; font:600 .76rem Inter,sans-serif; }
.cg-field select:focus, .cg-field input:focus, .goal-field input:focus, .goal-field textarea:focus { border-color:var(--accent-1); box-shadow:0 0 0 3px rgba(123,47,252,.1); }
.cg-help { margin:10px 0 0; padding:9px 10px; border:1px dashed var(--border); border-radius:11px; color:var(--text-muted); font:500 .66rem/1.45 'Hind Siliguri',sans-serif; }
.cg-subjects { display:grid; gap:7px; max-height:360px; overflow:auto; padding-right:2px; }
.cg-subject { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:9px; align-items:center; min-width:0; padding:10px; border:1px solid var(--border); border-radius:12px; background:rgba(255,255,255,.018); cursor:pointer; }
.cg-subject:hover { border-color:var(--accent-1); transform:translateY(-1px); }
.cg-subject input { width:16px; height:16px; accent-color:var(--accent-1); }
.cg-subject span { min-width:0; }
.cg-subject strong { display:block; color:var(--text-primary); font:700 .74rem/1.35 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
.cg-subject small { display:block; color:var(--text-muted); font:500 .59rem/1.3 Inter,sans-serif; margin-top:2px; }
.cg-credit { color:var(--accent-2); font:800 .63rem Inter,sans-serif; white-space:nowrap; }
.cg-marks { display:grid; gap:10px; margin-top:12px; }
.cg-course { border:1px solid var(--border); border-radius:14px; padding:12px; background:var(--bg-secondary); min-width:0; }
.cg-course-head { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:9px; }
.cg-course-title { min-width:0; }
.cg-course-title strong { display:block; color:var(--text-primary); font:800 .78rem/1.3 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
.cg-course-title small { color:var(--text-muted); font:500 .58rem Inter,sans-serif; }
.cg-course-total { flex:0 0 auto; text-align:right; }
.cg-course-total strong { display:block; color:var(--accent-1); font:900 1rem Inter,sans-serif; }
.cg-course-total small { color:var(--text-muted); font:500 .55rem Inter,sans-serif; }
.cg-mark-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:7px; }
.cg-mark-field label { display:block; color:var(--text-muted); font:600 .54rem/1.2 'Hind Siliguri',sans-serif; margin-bottom:4px; }
.cg-mark-field input { width:100%; box-sizing:border-box; min-width:0; padding:8px 7px; border-radius:9px; border:1px solid var(--border); background:var(--bg-tertiary); color:var(--text-primary); font:700 .68rem Inter,sans-serif; outline:none; }
.cg-mark-field input:focus { border-color:var(--accent-1); }
.cg-best3 { margin-top:7px; color:var(--text-muted); font:500 .57rem/1.4 'Hind Siliguri',sans-serif; }
.cg-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.cg-btn, .goal-btn { border:0; border-radius:11px; padding:10px 13px; cursor:pointer; color:#fff; background:var(--gradient-accent); font:800 .7rem Inter,sans-serif; transition:transform .2s ease,filter .2s ease; }
.cg-btn:hover, .goal-btn:hover { transform:translateY(-1px); filter:brightness(1.06); }
.cg-btn.secondary, .goal-btn.secondary { color:var(--text-secondary); background:var(--bg-tertiary); border:1px solid var(--border); }
.cg-result { display:none; margin-top:14px; }
.cg-result.open { display:block; animation:goalPop .35s ease both; }
.cg-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.cg-stat { padding:11px; border:1px solid var(--border); border-radius:13px; background:var(--bg-secondary); text-align:center; min-width:0; }
.cg-stat span { display:block; color:var(--text-muted); font:600 .57rem Inter,sans-serif; }
.cg-stat strong { display:block; color:var(--accent-1); font:900 1.35rem Inter,sans-serif; margin-top:4px; overflow-wrap:anywhere; }
.cg-stat em { display:block; color:var(--accent-2); font:800 .68rem Inter,sans-serif; font-style:normal; margin-top:2px; }
.cg-bars { display:grid; gap:8px; margin-top:12px; }
.cg-bar-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:center; }
.cg-bar-label { min-width:0; color:var(--text-secondary); font:600 .62rem 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; }
.cg-bar { height:8px; border-radius:99px; overflow:hidden; background:var(--bg-tertiary); border:1px solid var(--border); }
.cg-bar i { display:block; height:100%; border-radius:inherit; background:var(--gradient-accent); }
.cg-grade-table { width:100%; border-collapse:collapse; margin-top:12px; font:500 .61rem Inter,sans-serif; }
.cg-grade-table th { color:#fff; background:var(--gradient-accent); padding:7px; text-align:left; }
.cg-grade-table td { color:var(--text-secondary); padding:7px; border-bottom:1px solid var(--border); }
.cg-grade-table td strong { color:var(--text-primary); }
.cg-motivation { margin-top:12px; padding:13px; border:1px solid var(--border); border-radius:14px; background:linear-gradient(135deg,rgba(123,47,252,.09),rgba(232,185,49,.05)); }
.cg-motivation strong { color:var(--accent-2); font:800 .78rem 'Hind Siliguri',sans-serif; }
.cg-motivation p { color:var(--text-secondary); font:600 .7rem/1.55 'Hind Siliguri',sans-serif; margin:4px 0 0; }
.cg-history { margin-top:14px; }
.cg-history-list { display:grid; gap:7px; }
.cg-history-item { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:10px 11px; border:1px solid var(--border); border-radius:11px; background:var(--bg-secondary); }
.cg-history-item span { min-width:0; color:var(--text-secondary); font:600 .61rem/1.45 'Hind Siliguri',sans-serif; overflow-wrap:anywhere; word-break:break-word; }
.cg-history-item strong { color:var(--accent-1); font:900 .76rem Inter,sans-serif; white-space:nowrap; }
.cg-history-delete { width:32px; height:32px; flex:0 0 32px; display:grid; place-items:center; border:1px solid var(--border); border-radius:9px; background:var(--bg-tertiary); color:var(--text-muted); cursor:pointer; transition:transform .2s ease,color .2s ease,border-color .2s ease,background .2s ease; }
.cg-history-delete:hover { color:#ff5d73; border-color:#ff5d73; background:rgba(255,93,115,.08); transform:translateY(-1px); }
.cg-history-delete:focus-visible { outline:2px solid var(--accent-2); outline-offset:2px; }
.cg-history-meta { display:block; color:var(--text-muted); margin-top:2px; font-size:.56rem; }
.cg-history-note { margin:-3px 0 9px; color:var(--text-muted); font:500 .58rem/1.45 'Hind Siliguri',sans-serif; }
@media(max-width:520px){ .cg-history-item { grid-template-columns:minmax(0,1fr) auto; gap:7px; } .cg-history-item strong { grid-column:2; grid-row:1; } .cg-history-delete { grid-column:2; grid-row:2; justify-self:end; } }
.cg-empty { padding:18px; text-align:center; color:var(--text-muted); font:500 .7rem 'Hind Siliguri',sans-serif; border:1px dashed var(--border); border-radius:12px; }

/* ===== Daily Goal ===== */
.goal-hero { align-items:center; }
.goal-progress-card { display:flex; align-items:center; gap:11px; padding:9px 12px; border:1px solid var(--border); border-radius:14px; background:var(--bg-secondary); }
.goal-ring { --goal-pct:0%; width:52px; height:52px; flex:0 0 52px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(var(--accent-1) var(--goal-pct), var(--bg-tertiary) 0); position:relative; }
.goal-ring::after { content:''; width:39px; height:39px; border-radius:50%; background:var(--bg-secondary); position:absolute; }
.goal-ring strong { position:relative; z-index:1; color:var(--text-primary); font:900 .66rem Inter,sans-serif; }
.goal-progress-copy span { display:block; color:var(--text-muted); font:500 .58rem 'Hind Siliguri',sans-serif; }
.goal-progress-copy strong { display:block; color:var(--accent-2); font:800 .72rem 'Hind Siliguri',sans-serif; margin-top:2px; }
.goal-add-card { margin-bottom:14px; }
.goal-form { display:none; }
.goal-form.open { display:block; animation:goalPop .3s ease both; }
.goal-form-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:9px; }
.goal-field textarea { min-height:110px; resize:vertical; line-height:1.5; }
.goal-upload { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:9px; padding:9px 10px; border:1px dashed var(--border); border-radius:11px; color:var(--text-muted); font:600 .63rem 'Hind Siliguri',sans-serif; }
.goal-upload input { padding:0; border:0; background:transparent; }
.goal-photo-preview { margin-top:8px; }
.goal-photo-preview img { display:block; max-width:180px; max-height:130px; border-radius:11px; border:1px solid var(--border); object-fit:cover; }
.goal-form-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.goal-list { display:grid; grid-template-columns:1fr; gap:11px; align-items:start; }
.goal-task { min-width:0; position:relative; overflow:hidden; padding:13px; border:1px solid var(--border); border-radius:15px; background:var(--gradient-card); box-shadow:var(--shadow); animation:goalPop .35s ease both; }
.goal-task::before { content:''; position:absolute; inset:0 auto 0 0; width:3px; background:var(--accent-1); opacity:.8; }
.goal-task.done::before { background:var(--accent-2); }
.goal-task.pinned { border-color:color-mix(in srgb,var(--accent-2) 55%,var(--border)); }
.goal-task-head { display:flex; align-items:flex-start; gap:9px; min-width:0; }
.goal-check { width:23px; height:23px; flex:0 0 23px; margin-top:1px; accent-color:var(--accent-1); cursor:pointer; }
.goal-task-main { min-width:0; flex:1; }
.goal-task-subject { color:var(--accent-1); font:800 .65rem Inter,sans-serif; text-transform:uppercase; letter-spacing:.04em; overflow-wrap:anywhere; }
.goal-task-title { color:var(--text-primary); font:800 .83rem/1.35 'Hind Siliguri',sans-serif; margin-top:3px; overflow-wrap:anywhere; }
.goal-task-meta { display:flex; flex-wrap:wrap; gap:5px; margin-top:5px; }
.goal-pill { padding:3px 7px; border-radius:999px; background:var(--bg-tertiary); border:1px solid var(--border); color:var(--text-muted); font:600 .53rem Inter,sans-serif; }
.goal-pill.pin { color:var(--accent-2); }
.goal-task-actions { display:flex; gap:5px; flex:0 0 auto; }
.goal-icon-btn { width:29px; height:29px; border:1px solid var(--border); border-radius:9px; background:var(--bg-tertiary); color:var(--text-muted); cursor:pointer; display:grid; place-items:center; }
.goal-icon-btn:hover { color:var(--accent-1); border-color:var(--accent-1); }
.goal-brief { color:var(--text-secondary); font:500 .68rem/1.55 'Hind Siliguri',sans-serif; margin:10px 0 0; overflow-wrap:anywhere; }
.goal-brief.collapsed { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.goal-see-more { border:0; background:none; color:var(--accent-2); padding:5px 0 0; cursor:pointer; font:700 .59rem Inter,sans-serif; }
.goal-photo { width:100%; max-width:100%; max-height:360px; object-fit:contain; margin-top:10px; border-radius:11px; border:1px solid var(--border); background:var(--bg-tertiary); display:block; }
.goal-task.done { opacity:.82; }
.goal-task.done .goal-task-title { text-decoration:line-through; text-decoration-thickness:1px; color:var(--text-muted); }
.goal-empty { grid-column:1/-1; padding:30px 15px; text-align:center; border:1px dashed var(--border); border-radius:15px; color:var(--text-muted); font:500 .73rem/1.5 'Hind Siliguri',sans-serif; }
.goal-empty i { display:block; color:var(--accent-2); font-size:1.7rem; margin-bottom:8px; }
.goal-celebration { position:fixed; top:70px; left:50%; transform:translate(-50%,-20px) scale(.96); z-index:300; pointer-events:none; opacity:0; width:min(92vw,480px); padding:12px 16px; border:1px solid var(--accent-2); border-radius:16px; background:rgba(18,0,31,.94); box-shadow:0 14px 40px rgba(0,0,0,.35); text-align:center; }
.goal-celebration.show { animation:goalCelebrate 2.6s ease both; }
.goal-celebration strong { display:block; color:var(--accent-2); font:900 1rem 'Hind Siliguri',sans-serif; }
.goal-celebration span { display:block; color:#fff; font:600 .68rem 'Hind Siliguri',sans-serif; margin-top:2px; }
.goal-confetti { position:absolute; inset:-15px; pointer-events:none; overflow:visible; }
.goal-confetti i { position:absolute; width:6px; height:11px; border-radius:2px; background:var(--accent-2); animation:confettiDrop 1.4s ease-out forwards; }
@keyframes goalPop { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }
@keyframes goalCelebrate { 0%{opacity:0;transform:translate(-50%,-20px) scale(.96)} 12%{opacity:1;transform:translate(-50%,0) scale(1.02)} 25%{transform:translate(-50%,0) scale(1)} 78%{opacity:1} 100%{opacity:0;transform:translate(-50%,-10px) scale(.98)} }
@keyframes confettiDrop { from{opacity:1;transform:translate(0,0) rotate(0)} to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(420deg)} }
@media (max-width:900px){ .cg-grid{grid-template-columns:1fr;} }
/* ===== CG Calculator + Daily Goal topbar contrast =====
   These two feature bars use a dedicated dark surface in light mode so
   their brand text remains readable and the supplied logo has a clear frame. */
body.light .cg-topbar,
body.light .goal-topbar {
  background:linear-gradient(135deg,#17191F 0%,#2A2D35 100%);
  border-bottom-color:#343842;
  color:#F8FAFC;
  box-shadow:0 7px 24px rgba(15,23,42,.16);
}

body.light .cg-brand h2,
body.light .goal-brand h2 {
  color:#F8FAFC;
  text-shadow:0 1px 1px rgba(0,0,0,.28);
}

body.light .cg-brand p,
body.light .goal-brand p {
  color:#C4CAD4;
}

body.light .cg-close,
body.light .goal-close {
  background:#F8FAFC;
  border-color:#D7DBE2;
  color:#4B5563;
  box-shadow:0 3px 10px rgba(15,23,42,.12);
}

body.light .cg-close:hover,
body.light .goal-close:hover {
  background:#FFFFFF;
  color:#9A6B00;
  border-color:#E1B52E;
  box-shadow:0 5px 14px rgba(217,169,0,.18);
}

/* Use the existing light-theme text palette as a non-black logo frame. */
body.light .logo-icon {
  background:var(--text-secondary);
  border:1px solid var(--text-muted);
  box-shadow:
    0 7px 20px rgba(17,24,39,.12),
    0 0 0 1px rgba(75,85,99,.08);
}

body.light .logo-icon img {
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.18));
}

body.light .logo-icon.logo-fallback {
  background:var(--text-secondary);
  border-color:var(--text-muted);
  box-shadow:0 7px 20px rgba(17,24,39,.12);
}

/* Use each theme's existing surface so the logo frame blends naturally with the top navigation. */
body.dark .logo-icon {
  background:var(--bg-tertiary);
  border:1px solid var(--border-light);
  box-shadow:0 6px 18px rgba(0,0,0,.20);
}

body.neon .logo-icon {
  background:var(--bg-tertiary);
  border:1px solid var(--border);
  box-shadow:0 6px 18px rgba(0,0,0,.22);
}

body.dark .logo-icon img,
body.neon .logo-icon img {
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.28));
}

@media (max-width:650px){ .cg-content,.goal-content{padding:12px;} .cg-topbar,.goal-topbar{padding:10px 12px;} .cg-brand-icon,.goal-brand-icon{width:37px;height:37px;flex-basis:37px;} .cg-fields{grid-template-columns:1fr 1fr;} .cg-mark-grid{grid-template-columns:repeat(3,minmax(0,1fr));} .goal-hero{display:block;} .goal-progress-card{margin-top:11px;} .goal-form-grid{grid-template-columns:1fr;} .goal-list{grid-template-columns:1fr;gap:10px;} .goal-task{padding:10px;} .goal-task-actions{gap:3px;} .goal-icon-btn{width:27px;height:27px;} .goal-task-title{font-size:.75rem;} .goal-brief{font-size:.63rem;} }
@media (max-width:390px){ .goal-list{gap:9px;} .goal-task{padding:9px 8px;} .goal-task-head{gap:6px;} .goal-check{width:20px;height:20px;flex-basis:20px;} .goal-icon-btn{width:25px;height:25px;} .goal-task-actions{flex-wrap:wrap;justify-content:flex-end;} }

/* Blog video media uses a stable preview frame while IndexedDB restores the file. */
.blog-video-media{position:relative;width:100%;max-width:100%;overflow:hidden;border-radius:12px;background:var(--bg-tertiary);}
.blog-video-media video{max-width:100%!important;height:auto;min-height:0;background:var(--bg-tertiary);}
.blog-video-loading{position:absolute;inset:0;display:grid;place-items:center;gap:8px;padding:12px;text-align:center;color:var(--text-secondary);font-size:.78rem;background:linear-gradient(180deg,rgba(10,10,18,.12),rgba(10,10,18,.72));pointer-events:none;}
@media(max-width:760px){
  .blog-video-media{border-radius:10px;}
  .blog-video-media video{aspect-ratio:16/9!important;object-fit:contain!important;}
}

/*
 * Batch Fund final precision layer.
 * Visual/layout corrections only: existing data, handlers and behavior remain intact.
 */

/* 1) Keep the report header inside a safe padded content area. */
#fundGallery.fund-gallery .batch-fund-report-head,
#blogFundGallery.fund-gallery .batch-fund-report-head {
    display:flex !important;
    align-items:flex-start !important;
    gap:14px !important;
    padding:18px 20px 12px !important;
    min-width:0 !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery .batch-fund-report-heading,
#blogFundGallery.fund-gallery .batch-fund-report-heading {
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:100% !important;
}

/* 2) Remove the "See more" overlap: it sits below the clamped text,
 *    instead of covering the final words at the right edge. */
#fundGallery.fund-gallery .batch-fund-report .expandable-wrap,
#blogFundGallery.fund-gallery .batch-fund-report .expandable-wrap {
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
}

#fundGallery.fund-gallery .batch-fund-report .expandable-text.is-collapsed,
#blogFundGallery.fund-gallery .batch-fund-report .expandable-text.is-collapsed {
    padding-right:0 !important;
    margin-right:0 !important;
    max-width:100% !important;
}

#fundGallery.fund-gallery .batch-fund-report .expandable-wrap.has-overflow .expandable-toggle,
#blogFundGallery.fund-gallery .batch-fund-report .expandable-wrap.has-overflow .expandable-toggle {
    position:static !important;
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    max-width:100% !important;
    margin:5px 0 0 !important;
    padding:0 !important;
    background:none !important;
    border:0 !important;
    border-radius:0 !important;
    color:var(--accent-1) !important;
    font:700 .72rem/1.35 'Hind Siliguri',sans-serif !important;
    white-space:nowrap !important;
    text-align:left !important;
    box-shadow:none !important;
}

#fundGallery.fund-gallery .batch-fund-report .expandable-wrap.has-overflow .expandable-toggle:hover,
#blogFundGallery.fund-gallery .batch-fund-report .expandable-wrap.has-overflow .expandable-toggle:hover {
    color:var(--accent-2) !important;
    text-decoration:underline !important;
}

/* Heading and caption spacing: never let text touch the side control. */
#fundGallery.fund-gallery .batch-fund-report-heading h3,
#blogFundGallery.fund-gallery .batch-fund-report-heading h3 {
    margin:7px 0 7px !important;
    padding-right:4px !important;
    line-height:1.28 !important;
}

#fundGallery.fund-gallery .batch-fund-brief,
#blogFundGallery.fund-gallery .batch-fund-brief {
    margin:0 20px 16px !important;
    padding:0 !important;
    min-width:0 !important;
    max-width:calc(100% - 40px) !important;
    overflow:hidden !important;
}

/* 3) Delete control: true centered icon inside a proper circular button. */
#fundGallery.fund-gallery .batch-fund-report .fund-delete,
#blogFundGallery.fund-gallery .batch-fund-report .fund-delete {
    position:static !important;
    flex:0 0 38px !important;
    width:38px !important;
    min-width:38px !important;
    height:38px !important;
    min-height:38px !important;
    margin:0 !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    align-self:flex-start !important;
    border:1px solid var(--border) !important;
    border-radius:50% !important;
    background:var(--bg-tertiary) !important;
    color:var(--text-muted) !important;
    line-height:1 !important;
    box-sizing:border-box !important;
    opacity:.88 !important;
}

#fundGallery.fund-gallery .batch-fund-report .fund-delete i,
#blogFundGallery.fund-gallery .batch-fund-report .fund-delete i {
    display:block !important;
    width:auto !important;
    height:auto !important;
    margin:0 !important;
    line-height:1 !important;
    text-align:center !important;
}

#fundGallery.fund-gallery .batch-fund-report .fund-delete:hover,
#blogFundGallery.fund-gallery .batch-fund-report .fund-delete:focus-visible {
    color:#ff5b70 !important;
    border-color:rgba(239,68,68,.55) !important;
    background:rgba(239,68,68,.10) !important;
    transform:translateY(-1px) !important;
    outline:none !important;
}

/* 4) Keep the four figures in a calm 2×2 financial-summary hierarchy.
 *    This also places Overall Total Fund in the left side of its own card,
 *    matching the marked position in the reference image. */
#fundGallery.fund-gallery .batch-fund-report .batch-fund-metrics,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metrics {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    padding:0 20px 18px !important;
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
}

#fundGallery.fund-gallery .batch-fund-report .batch-fund-metric,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric {
    min-width:0 !important;
    width:100% !important;
    min-height:76px !important;
    padding:13px 14px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery .batch-fund-report .batch-fund-metric span,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric span {
    display:block !important;
    width:100% !important;
    margin:0 !important;
    line-height:1.3 !important;
    text-align:left !important;
}

#fundGallery.fund-gallery .batch-fund-report .batch-fund-metric strong,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric strong {
    display:block !important;
    width:100% !important;
    margin:6px 0 0 !important;
    text-align:left !important;
    line-height:1.15 !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
}

/* Explicitly neutralize the old right-alignment rule for the overall counter. */
#fundGallery.fund-gallery .batch-fund-report .batch-fund-metric.overall .fund-counter-animate,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric.overall .fund-counter-animate {
    display:block !important;
    width:100% !important;
    text-align:left !important;
    white-space:normal !important;
    font-variant-numeric:tabular-nums !important;
    color:var(--text-primary) !important;
}

/* Stronger visual hierarchy for the overall figure without changing its value. */
#fundGallery.fund-gallery .batch-fund-report .batch-fund-metric.overall,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric.overall {
    border-color:color-mix(in srgb,var(--accent-1) 24%,var(--border)) !important;
    background:color-mix(in srgb,var(--accent-1) 5%,var(--bg-secondary)) !important;
}

/* 5) Safe image width and consistent bottom rhythm. */
#fundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap {
    width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding:0 20px 20px !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap img,
#blogFundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap img {
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    margin:0 !important;
    box-sizing:border-box !important;
    border-radius:12px !important;
}

/* 6) Narrow screens: preserve comfortable side padding and prevent any
 *    horizontal overflow when names/headings are unusually long. */
@media (max-width:760px) {
    #fundGallery.fund-gallery .batch-fund-report-head,
    #blogFundGallery.fund-gallery .batch-fund-report-head {
        padding:15px 14px 11px !important;
        gap:10px !important;
    }

    #fundGallery.fund-gallery .batch-fund-report .fund-delete,
    #blogFundGallery.fund-gallery .batch-fund-report .fund-delete {
        flex-basis:36px !important;
        width:36px !important;
        min-width:36px !important;
        height:36px !important;
        min-height:36px !important;
    }

    #fundGallery.fund-gallery .batch-fund-brief,
    #blogFundGallery.fund-gallery .batch-fund-brief {
        margin-left:14px !important;
        margin-right:14px !important;
        max-width:calc(100% - 28px) !important;
    }

    #fundGallery.fund-gallery .batch-fund-report .batch-fund-metrics,
    #blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metrics {
        padding:0 14px 14px !important;
        gap:8px !important;
    }

    #fundGallery.fund-gallery .batch-fund-report .batch-fund-metric,
    #blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metric {
        min-height:70px !important;
        padding:11px 12px !important;
    }

    #fundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap,
    #blogFundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap {
        padding:0 14px 14px !important;
    }
}

@media (max-width:420px) {
    #fundGallery.fund-gallery .batch-fund-report .batch-fund-metrics,
    #blogFundGallery.fund-gallery .batch-fund-report .batch-fund-metrics {
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:7px !important;
        padding:0 12px 12px !important;
    }

    #fundGallery.fund-gallery .batch-fund-report-head,
    #blogFundGallery.fund-gallery .batch-fund-report-head {
        padding:12px !important;
    }

    #fundGallery.fund-gallery .batch-fund-brief,
    #blogFundGallery.fund-gallery .batch-fund-brief {
        margin-left:12px !important;
        margin-right:12px !important;
        max-width:calc(100% - 24px) !important;
    }

    #fundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap,
    #blogFundGallery.fund-gallery .batch-fund-report .batch-fund-image-wrap {
        padding:0 12px 12px !important;
    }
}

/* Accessibility: keyboard focus remains obvious without introducing layout shift. */
#fundGallery.fund-gallery .batch-fund-report .fund-delete:focus-visible,
#blogFundGallery.fund-gallery .batch-fund-report .fund-delete:focus-visible,
#fundGallery.fund-gallery .batch-fund-report .expandable-toggle:focus-visible,
#blogFundGallery.fund-gallery .batch-fund-report .expandable-toggle:focus-visible {
    outline:2px solid var(--accent-1) !important;
    outline-offset:2px !important;
}

/* Respect reduced-motion preferences for the visual polish layer. */
@media (prefers-reduced-motion:reduce) {
    #fundGallery.fund-gallery .batch-fund-report .fund-delete,
    #blogFundGallery.fund-gallery .batch-fund-report .fund-delete {
        transition:none !important;
        transform:none !important;
    }
}

/* Measurement controls visibility; hidden always wins over older display rules. */
[data-expandable-toggle][hidden] {
    display:none !important;
}

/* Final edge-safe Batch Fund layout. This layer only changes presentation. */
#fundGallery.fund-gallery > .batch-fund-report,
#blogFundGallery.fund-gallery > .batch-fund-report{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
}

/* Reserve a dedicated column for the delete control so text can never enter it. */
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) 40px !important;
    align-items:start !important;
    column-gap:14px !important;
    width:100% !important;
    min-width:0 !important;
    padding:20px 24px 13px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading{
    grid-column:1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
}

/* Keep every caption line inside a visually comfortable reading rail. */
#fundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief,
#blogFundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief{
    display:block !important;
    width:auto !important;
    max-width:none !important;
    min-width:0 !important;
    margin:0 28px 18px !important;
    padding:0 4px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-text,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-text{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
    box-sizing:border-box !important;
}

/* The expandable action belongs below the text and is visible only
 * when the measured content actually exceeds three lines. */
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-toggle,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-toggle{
    position:static !important;
    inset:auto !important;
    display:none !important;
    width:auto !important;
    max-width:100% !important;
    margin:6px 0 0 !important;
    padding:0 !important;
    background:none !important;
    border:0 !important;
    border-radius:0 !important;
    white-space:nowrap !important;
    text-align:left !important;
    box-shadow:none !important;
    line-height:1.35 !important;
}
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-wrap.has-overflow > .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-wrap.has-overflow > .expandable-toggle,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap.has-overflow > .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap.has-overflow > .expandable-toggle{
    display:inline-flex !important;
}
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-wrap.is-expanded > .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-brief .expandable-wrap.is-expanded > .expandable-toggle,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap.is-expanded > .expandable-toggle,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-heading .expandable-wrap.is-expanded > .expandable-toggle{
    display:inline-flex !important;
}

/* Delete button occupies the second grid column and stays mathematically centered. */
#fundGallery.fund-gallery > .batch-fund-report .fund-delete,
#blogFundGallery.fund-gallery > .batch-fund-report .fund-delete{
    grid-column:2 !important;
    grid-row:1 !important;
    justify-self:center !important;
    align-self:start !important;
    width:40px !important;
    min-width:40px !important;
    height:40px !important;
    min-height:40px !important;
    margin:0 !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border-radius:50% !important;
    box-sizing:border-box !important;
    line-height:1 !important;
}

#fundGallery.fund-gallery > .batch-fund-report .fund-delete i,
#blogFundGallery.fund-gallery > .batch-fund-report .fund-delete i{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:1em !important;
    height:1em !important;
    margin:0 !important;
    line-height:1 !important;
}

/* Keep the financial grid visually balanced and immune to old alignment rules. */
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
    width:100% !important;
    min-width:0 !important;
    padding:0 24px 20px !important;
    box-sizing:border-box !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metric{
    min-width:0 !important;
    width:100% !important;
    overflow:hidden !important;
    box-sizing:border-box !important;
    align-items:flex-start !important;
    justify-content:center !important;
    text-align:left !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric span,
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-metric strong,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metric span,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metric strong{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    text-align:left !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
}

/* Images follow the same safe reading rail as the other card content. */
#fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
    width:100% !important;
    min-width:0 !important;
    padding:0 24px 24px !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
}

#fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap img,
#blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap img{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    height:auto !important;
    box-sizing:border-box !important;
    object-fit:contain !important;
}

@media (max-width:760px){
    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head{
        grid-template-columns:minmax(0,1fr) 36px !important;
        column-gap:10px !important;
        padding:16px 16px 12px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .fund-delete,
    #blogFundGallery.fund-gallery > .batch-fund-report .fund-delete{
        width:36px !important;
        min-width:36px !important;
        height:36px !important;
        min-height:36px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief,
    #blogFundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief{
        margin-left:20px !important;
        margin-right:20px !important;
        padding:0 3px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
        padding-left:16px !important;
        padding-right:16px !important;
        padding-bottom:16px !important;
        gap:8px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
        padding:0 16px 16px !important;
    }
}

@media (max-width:420px){
    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-report-head{
        grid-template-columns:minmax(0,1fr) 34px !important;
        column-gap:8px !important;
        padding:14px 14px 10px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .fund-delete,
    #blogFundGallery.fund-gallery > .batch-fund-report .fund-delete{
        width:34px !important;
        min-width:34px !important;
        height:34px !important;
        min-height:34px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief,
    #blogFundGallery.fund-gallery > .batch-fund-report > .batch-fund-brief{
        margin-left:14px !important;
        margin-right:14px !important;
        padding:0 2px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-metrics{
        padding-left:14px !important;
        padding-right:14px !important;
        gap:7px !important;
    }

    #fundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap,
    #blogFundGallery.fund-gallery > .batch-fund-report .batch-fund-image-wrap{
        padding-left:14px !important;
        padding-right:14px !important;
        padding-bottom:14px !important;
    }
}

@media (prefers-reduced-motion:reduce){
    #fundGallery.fund-gallery > .batch-fund-report,
    #blogFundGallery.fund-gallery > .batch-fund-report,
    #fundGallery.fund-gallery > .batch-fund-report * ,
    #blogFundGallery.fund-gallery > .batch-fund-report *{
        scroll-behavior:auto !important;
    }
}
