@import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&family=Manrope:wght@400;500;600;700;800&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
*{margin:0;padding:0;box-sizing:border-box;}

:root{
    --bg-primary:#0a0e1a;--bg-secondary:#141925;--bg-card:#1a2030;--bg-hover:#222938;--bg-input:#0d1220;
    --accent-primary:#00d4ff;--accent-secondary:#ff6b9d;--accent-success:#00ff88;--accent-warning:#ffb347;
    --travel-color:#2ecc71;--travel-bg:rgba(46,204,113,.12);--travel-border:rgba(46,204,113,.4);
    --text-primary:#e8edf5;--text-secondary:#8b93a8;--text-muted:#515866;
    --border:#2a3244;--shadow:rgba(0,212,255,.1);--sidebar-width:300px;
    --radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:14px;

    --space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;

    --fs-lg:.88rem;--fs-md:.82rem;--fs-sm:.72rem;--fs-xs:.62rem;
    --font-base:16px;--font-sm:var(--fs-sm);--font-xs:var(--fs-xs);--font-mono:'Space Mono',monospace;--font-sans:'Manrope',-apple-system,system-ui,sans-serif;
}

/* ════════════════════════════════════════════════
   SHARED COMPONENT BASES
   These set defaults; individual rules below override.
   ════════════════════════════════════════════════ */

/* Cards — elevated surface */
.hub-card,.fin-card,.spirit-card,.social-card,.idea-card,.idea-review-card,
.note-card,.gym-session-card,.gym-test-card,.gym-test-chart-card,.gym-ex-card,
.gym-prog-card,.gym-challenge-card,.gym-heatmap-card,.gym-quick-start,
.hub-test-widget,.sp-form,.sp-chart-wrap,.sp-entry-card,.recipe-card,.meal-card,
.analytics-card,.reward-system-card,.rm-card,.wiki-home-panel,.cl-checklist-card,
.cl-spot-card,.et-bank-card,.fin-history-section,.yt-card,.hub-birthday-widget,
.russe-heatmap,.gym-session-ex,.lock-active,.ramadan-widget,.bilan-budget-avg-card,
.chastity-widget-inner,.wiki-infobox,.wiki-toc,.me-container,.focus-timer-card,
.frigo-item,.ing-card,.log-container,.sb-search-results,.gym-resume-banner,
.bilan-quarter-card{
    background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);
    transition:border-color .15s;
}

/* Flat cards — secondary surface */
.tracker,.stat-box,.car-stat,.todo-stat,.russe-stat,.analytics-stat-card,
.focus-stat-box,.frigo-sum-item,.bilan-summary-card,.prayer-item,.todo-item,
.tk-item,.bucket-item,.dn-item,.dolls-bug,.fin-hist-entry,.kb-card,
.hub-note-item,.wiki-page-item,.of-idea-card,.of-reddit-item,
.gym-test-result-row,.typing-hist-row,.note-trash-item,.sp-detail-row,
.shop-item,.of-stat,.gym-stretch-card{
    background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);
    transition:border-color .15s;
}

/* Hover accent — shared across all interactive cards/items */
.hub-card:hover,.note-card:hover,.idea-card:hover,.social-card:hover,
.gym-ex-card:hover,.recipe-card:hover,.sp-entry-card:hover,.ing-card:hover,
.tracker:hover,.stat-box:hover,.car-stat:hover,.wiki-page-item:hover,
.rm-card:hover,.cl-spot-card:hover,.todo-item:hover,.tk-item:hover,
.bucket-item:hover,.dn-item:hover,.dolls-bug:hover,.fin-hist-entry:hover,
.shop-item:hover,.analytics-stat-card:hover,.bilan-summary-card:hover,
.kb-card:hover,.frigo-item:hover,.gym-prog-card:hover{
    border-color:var(--accent-primary);
}

/* Module tabs — all tab systems share this base */
.mod-tab,.gym-tab,.car-tab,.sport-tab,.nutri-tab,.test-tab,.dolls-tab,
.russe-tab,.prog-tab,.recipe-tab,.content-tab,.spirit-inner-tab,.of-inner-tab{
    padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);
    background:transparent;color:var(--text-muted);font-size:var(--fs-sm);
    font-weight:700;cursor:pointer;transition:all .15s;white-space:nowrap;
}
.mod-tab:hover,.gym-tab:hover,.car-tab:hover,.sport-tab:hover,.nutri-tab:hover,
.test-tab:hover,.dolls-tab:hover,.russe-tab:hover,.prog-tab:hover,
.recipe-tab:hover,.content-tab:hover,.spirit-inner-tab:hover,.of-inner-tab:hover{
    border-color:var(--accent-primary);color:var(--accent-primary);
}
.mod-tab.active,.gym-tab.active,.car-tab.active,.sport-tab.active,
.nutri-tab.active,.test-tab.active,.dolls-tab.active,.russe-tab.active,
.prog-tab.active,.recipe-tab.active,.content-tab.active,
.spirit-inner-tab.active,.of-inner-tab.active{
    background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);
}

/* Tab pages — hidden/shown */
.mod-page,.gym-page,.car-page,.nutri-page,.sport-page,.test-page,
.content-page,.dolls-panel,.prog-page,.of-inner-page{
    display:none;animation:fadeIn .3s ease-out;
}
.mod-page.active,.gym-page.active,.car-page.active,.nutri-page.active,
.sport-page.active,.test-page.active,.content-page.active,
.dolls-panel.active,.prog-page.active,.of-inner-page.active{display:block;}

/* Tab containers */
.mod-tabs,.gym-tabs,.car-tabs,.sport-tabs,.nutri-tabs,.test-tabs,
.dolls-tabs,.russe-tabs,.prog-tabs,.content-tabs{
    display:flex;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap;
}

/* Stat value (mono number) */
.stat-val,.car-stat-val,.todo-stat-val,.analytics-stat-val,.focus-stat-val,
.russe-stat-val,.frigo-sum-val,.bilan-card-value,.of-stat-num,.rsb-num,
.russe-session-total,.russe-insight-val,.dhikr-count-display,.et-bank-pct{
    font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-primary);
}

/* Stat label */
.stat-label,.car-stat-label,.todo-stat-label,.analytics-stat-label,
.focus-stat-lbl,.russe-stat-label,.frigo-sum-label,.bilan-card-label,
.rsb-num-label,.of-stat-label,.russe-insight-lbl{
    font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;margin-top:.15rem;
}

/* Stat grid */
.stat-grid,.car-stat-grid,.todo-stats-row{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem;
}

/* Filter chips */
.tag-btn,.filter-btn,.tk-filter,.log-filter-btn,.ing-cat-btn,
.wiki-filter-chip,.notes-tag-chip,.chal-template-btn,.typing-dur-btn,.bingo-edit-btn{
    padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);
    background:transparent;color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;
    cursor:pointer;transition:all .15s;
}
.tag-btn.active,.filter-btn.active,.tk-filter.active,.log-filter-btn.active,
.ing-cat-btn.active,.wiki-filter-chip.active,.notes-tag-chip.active,
.typing-dur-btn.typing-dur-active{
    border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.08);
}

/* Progress track */
.planner-progress-bar,.bucket-progress-bar,.bingo-progress-bar,.chal-progress,
.et-bank-bar,.cl-widget-bar,.russe-progress-bar,.russe-review-bar,
.tacos-bar-wrap,.appart-bar-wrap,.shop-sum-bar,.idea-score-bar,
.rsb-progress-bar,.rm-progress,.frigo-coverage-bar,.reward-progress-bar,
.gym-step-bar,.songs-progress-bar,.analytics-bar-track,.total-bar{
    background:var(--bg-secondary);border-radius:4px;overflow:hidden;
}

/* Progress fill */
.planner-progress-fill,.bucket-progress-fill,.bingo-progress-fill,
.chal-progress-fill,.et-bank-fill,.cl-widget-bar-fill,.russe-review-bar-fill,
.tacos-bar-fill,.appart-bar-fill,.shop-sum-fill,.idea-score-fill,
.rsb-progress-fill,.rm-progress-bar,.frigo-coverage-fill,.total-bar-fill,
.reward-progress-fill,.gym-step-fill,.gym-step-fill-done,
.songs-progress-fill,.analytics-bar-fill{
    height:100%;border-radius:4px;transition:width .3s;
}

/* Empty states */
.g-empty,.wiki-empty,.kb-empty,.analytics-empty,.mm-empty,.cl-empty,
.russe-empty,.tk-sched-empty,.sb-search-empty,.log-empty{
    text-align:center;padding:1.5rem;color:var(--text-muted);font-size:var(--fs-sm);
}

/* Scrollbars */
.sidebar-scroll::-webkit-scrollbar,.sb-search-results::-webkit-scrollbar,
.log-container::-webkit-scrollbar,.russe-list-scroll::-webkit-scrollbar,
.me-body::-webkit-scrollbar,.prayer-timetable-wrap::-webkit-scrollbar,
.tk-list-col::-webkit-scrollbar{width:3px;}
.sidebar-scroll::-webkit-scrollbar-thumb,.sb-search-results::-webkit-scrollbar-thumb,
.log-container::-webkit-scrollbar-thumb,.russe-list-scroll::-webkit-scrollbar-thumb,
.me-body::-webkit-scrollbar-thumb,.prayer-timetable-wrap::-webkit-scrollbar-thumb{
    background:var(--border);border-radius:2px;
}

/* Table headers */
.prayer-timetable thead th,.meal-table thead th,.bilan-table thead th,
.ramadan-table thead th,.cl-history-table th{
    padding:.65rem .5rem;font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;
    letter-spacing:.04em;color:var(--text-secondary);background:var(--bg-card);
    border-bottom:2px solid var(--border);border-right:1px solid var(--border);text-align:center;
}


/* ============================================
   GLOBAL UTILITY CLASSES
   Use these for consistent styling across all pages.
   ============================================ */

.g-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem;}
.g-card-flat{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);padding:.75rem;}

.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-hover);color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all .15s;}
.g-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.g-btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;border:none;font-weight:700;}
.g-btn-primary:hover{opacity:.9;transform:translateY(-1px);color:#fff;}
.g-btn-danger{border-color:rgba(255,107,157,.3);color:var(--accent-secondary);background:rgba(255,107,157,.06);}
.g-btn-danger:hover{background:rgba(255,107,157,.15);}
.g-btn-sm{padding:.3rem .6rem;font-size:var(--fs-sm);}
.g-btn-icon{width:30px;height:30px;padding:0;border-radius:var(--radius-sm);font-size:var(--fs-md);}

.g-input{width:100%;padding:.5rem .65rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:var(--fs-md);outline:none;transition:border-color .2s;}
.g-input:focus{border-color:var(--accent-primary);}
.g-select{padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);outline:none;}

.g-label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.2rem;letter-spacing:.03em;text-transform:uppercase;}

.g-title{font-family:'Space Mono',monospace;font-size:clamp(.95rem,2vw,1.15rem);font-weight:700;margin-bottom:1rem;color:var(--text-primary);}

.g-mono{font-family:'Space Mono',monospace;}
.g-sm{font-size:var(--fs-sm);}.g-xs{font-size:var(--fs-xs);}
.g-muted{color:var(--text-muted);}.g-secondary{color:var(--text-secondary);}
.g-bold{font-weight:700;}
.g-accent{color:var(--accent-primary);}.g-accent2{color:var(--accent-secondary);}

.g-flex{display:flex;}.g-flex-col{display:flex;flex-direction:column;}
.g-flex-center{display:flex;align-items:center;justify-content:center;}
.g-flex-between{display:flex;align-items:center;justify-content:space-between;}
.g-flex-wrap{flex-wrap:wrap;}
.g-gap-sm{gap:.35rem;}.g-gap{gap:.5rem;}.g-gap-md{gap:.75rem;}.g-gap-lg{gap:1rem;}
.g-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;}

.g-mb-0{margin-bottom:0;}.g-mb-sm{margin-bottom:.5rem;}.g-mb{margin-bottom:.75rem;}.g-mb-lg{margin-bottom:1rem;}
.g-mt-sm{margin-top:.5rem;}.g-mt{margin-top:.75rem;}.g-mt-lg{margin-top:1rem;}
.g-p{padding:1rem;}.g-p-sm{padding:.75rem;}.g-p-xs{padding:.5rem;}

.g-badge{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:var(--radius-sm);font-size:var(--fs-xs);font-weight:700;line-height:1.2;}
.g-badge-primary{background:rgba(0,212,255,.12);color:var(--accent-primary);}
.g-badge-success{background:rgba(0,255,136,.12);color:var(--accent-success);}
.g-badge-warning{background:rgba(255,179,71,.12);color:var(--accent-warning);}
.g-badge-danger{background:rgba(255,107,157,.12);color:var(--accent-secondary);}

.g-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-size:var(--fs-md);}
.g-empty-icon{font-size:2rem;margin-bottom:.5rem;}

.g-divider{border:none;border-top:1px solid var(--border);margin:.75rem 0;}

/* ============================================
   LAYOUT / INLINE-STYLE REPLACEMENT UTILITIES
   ============================================ */

.u-hidden{display:none;}
.u-flex{display:flex;}
.u-flex-wrap{flex-wrap:wrap;}
.u-flex-1{flex:1;}
.u-flex-col{display:flex;flex-direction:column;}
.u-items-center{align-items:center;}
.u-self-end{align-self:flex-end;}
.u-ml-auto{margin-left:auto;}
.u-w-full{width:100%;}
.u-spacer{flex:1;}

.u-mw-110{max-width:110px;}.u-mw-120{max-width:120px;}.u-mw-130{max-width:130px;}
.u-mw-140{max-width:140px;}.u-mw-160{max-width:160px;}.u-mw-180{max-width:180px;}
.u-mw-220{max-width:220px;}.u-mw-280{max-width:280px;}.u-mw-300{max-width:300px;}
.u-mw-400{max-width:400px;}.u-mw-420{max-width:420px;}.u-mw-440{max-width:440px;}
.u-mw-480{max-width:480px;}.u-mw-500{max-width:500px;}.u-mw-560{max-width:560px;}

.u-mb-0{margin-bottom:0;}.u-mb-sm{margin-bottom:.5rem;}.u-mb-1{margin-bottom:1rem;}
.u-mb-md{margin-bottom:.75rem;}.u-mb-125{margin-bottom:1.25rem;}
.u-mt-sm{margin-top:.5rem;}.u-mt-md{margin-top:.75rem;}.u-mt-1{margin-top:1rem;}

.u-py-md{padding:.75rem 0;}.u-p-2{padding:2rem;}.u-p-15{padding:1.5rem;}.u-p-2-0{padding:2rem 0;}

.u-text-xs{font-size:var(--fs-xs);}.u-text-sm{font-size:var(--fs-sm);}
.u-text-md{font-size:var(--fs-md);}.u-text-lg{font-size:var(--fs-lg);}
.u-text-title{font-size:1.1rem;}

.u-text-muted{color:var(--text-muted);}.u-text-secondary{color:var(--text-secondary);}
.u-text-accent{color:var(--accent-primary);}.u-text-accent2{color:var(--accent-secondary);}
.u-text-success{color:var(--accent-success);}.u-text-warning{color:var(--accent-warning);}
.u-fw-700{font-weight:700;}.u-fw-600{font-weight:600;}
.u-text-center{text-align:center;}.u-text-right{text-align:right;}.u-text-left{text-align:left;}
.u-mono{font-family:var(--font-mono);}

.u-flex-between{display:flex;align-items:center;justify-content:space-between;}
.u-flex-gap-sm{display:flex;gap:.3rem;}.u-flex-gap{display:flex;gap:.5rem;}.u-flex-gap-md{display:flex;gap:.75rem;}
.u-flex-2{flex:2;}.u-min-w-80{min-width:80px;}.u-min-w-120{min-width:120px;}
.u-w-65{width:65px;}.u-w-70{width:70px;}

.sd-block{margin-bottom:1rem;}
.sd-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;}
.sd-name{font-weight:700;color:var(--accent-primary);}
.sd-actions{display:flex;gap:.3rem;}
.sd-cc-card{margin-bottom:1rem;padding:.65rem;background:rgba(180,120,255,.06);border:1px solid rgba(180,120,255,.2);border-radius:10px;display:flex;align-items:center;justify-content:space-between;}
.sd-cc-name{font-weight:700;color:rgba(180,120,255,1);}
.sd-cc-label{font-size:var(--fs-xs);color:var(--text-muted);margin-left:.5rem;}
.sd-stretch-wrap{margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);}
.sd-stretch-title{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);margin-bottom:.25rem;}
.sd-stretch-item{font-size:var(--fs-xs);padding:.1rem 0;}

.gym-type-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:.1rem .4rem;border-radius:4px;margin-left:.4rem;line-height:1.3;}

/* ============================================
   GLOBAL CHECKBOX — circular sm-panty style
   Affects all visible input[type="checkbox"].
   Hidden ones (tire-toggle, md-task, u-hidden) are unaffected.
   ============================================ */
input[type="checkbox"]{-webkit-appearance:none;appearance:none;width:22px;height:22px;border:2px solid var(--border);border-radius:50%;background:transparent;cursor:pointer;transition:all .2s;flex-shrink:0;position:relative;}
input[type="checkbox"]:hover{border-color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.05);}
input[type="checkbox"]:checked{border-color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.08);}
input[type="checkbox"]:checked::after{content:'✓';color:var(--accent-success,#a6e3a1);font-size:var(--fs-xs);font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}

.tire-toggle input[type="checkbox"],.md-task input[type="checkbox"],input[type="checkbox"].u-hidden,input[type="checkbox"][style*="display:none"]{-webkit-appearance:none;appearance:none;width:0;height:0;border:0;position:absolute;pointer-events:none;}
.tire-toggle input[type="checkbox"]:checked::after,.md-task input[type="checkbox"]:checked::after,input[type="checkbox"].u-hidden:checked::after,input[type="checkbox"][style*="display:none"]:checked::after{content:none;}

/* ============================================
   ADDITIONAL UTILITIES — replace inline styles
   ============================================ */
.u-dn{display:none;}
.u-gap-sm{gap:.3rem;}.u-gap{gap:.5rem;}.u-gap-md{gap:.6rem;}
.u-flex-0{flex:0;}.u-ws-nowrap{white-space:nowrap;}
.u-mt-04{margin-top:.4rem;}.u-mb-04{margin-bottom:.4rem;}
.u-w-auto{width:auto;}
.u-border-top{border-top:1px solid var(--border);padding-top:.4rem;}
.u-font-mono{font-family:var(--font-mono);resize:vertical;}
.u-cursor-default{cursor:default;}

.tag-btn{padding:.2rem .5rem;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:all .15s;}
.tag-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.tag-btn.active{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.08);}
.filter-btn{padding:.3rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text-primary);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;}
.filter-btn:hover{border-color:var(--accent-primary);}
.filter-btn.active{border-color:var(--accent-primary);background:rgba(0,212,255,.08);color:var(--accent-primary);}
.form-section-title{margin:1rem 0 .5rem;font-size:var(--fs-lg);font-weight:700;}
.mono-textarea{font-family:var(--font-mono);font-size:var(--fs-sm);resize:vertical;}
.inline-badge{width:100px;display:inline-block;margin:0 .3rem;}
.u-flex-fixed-65{flex:0 0 65px;}.u-flex-fixed-60{flex:0 0 60px;}
.u-resize-v{resize:vertical;}.u-relative{position:relative;}
.u-opacity-half{opacity:.5;}

.settings-hint{font-size:var(--fs-xs);color:var(--text-muted);}
.settings-geoloc-btn{margin-top:.4rem;max-width:220px;font-size:var(--fs-sm);}
.ac-list-max{max-height:200px;}

.u-scroll-y-70vh{max-height:70vh;overflow-y:auto;}

.check-round{-webkit-appearance:none;appearance:none;width:24px;height:24px;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700;flex-shrink:0;position:relative;vertical-align:middle;}
.check-round:hover{border-color:var(--accent-success);background:rgba(0,255,136,.05);}
.check-round:checked{border-color:var(--accent-success);background:rgba(0,255,136,.08);}
.check-round:checked::after{content:'✓';color:var(--accent-success);font-size:var(--fs-sm);font-weight:700;position:absolute;}
.check-round-sm{width:20px;height:20px;font-size:var(--fs-xs);}
.check-round-sm:checked::after{font-size:var(--fs-xs);}

.settings-profile-row{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap;}
.settings-profile-birth{flex:1;min-width:120px;}
.settings-profile-sex{flex:0 0 100px;}
.settings-profile-height{flex:0 0 90px;}
.person-name-row{display:flex;gap:.5rem;}
.person-name-col{flex:1;}
.exp-toolbar{display:flex;align-items:center;gap:.35rem;margin-bottom:1rem;flex-wrap:wrap;}
.exp-tabs-flex{margin-bottom:0;flex:1;}
.chast-label-date{flex:1;min-width:110px;}
.chast-label-type{flex:1;min-width:130px;}
.chast-label-note{flex:2;min-width:150px;}

.btn-settings-warn{max-width:280px;background:rgba(255,179,71,.15);color:var(--text-primary);}
.btn-settings-export{max-width:280px;background:rgba(0,212,255,.12);color:var(--text-primary);}
.btn-small-add{max-width:180px;font-size:var(--fs-sm);padding:.45rem .75rem;}
.btn-tiny-add{max-width:120px;font-size:var(--fs-sm);}

.export-status{font-size:var(--fs-sm);margin-top:.4rem;color:var(--text-muted);}
.settings-migrate-note{color:var(--text-muted);margin-bottom:.5rem;}
.reset-confirm-text{margin-bottom:1rem;color:var(--accent-secondary);font-weight:700;}
.reset-confirm-input{margin-bottom:1rem;width:100%;}
.reset-error-text{color:var(--accent-secondary);font-size:var(--fs-sm);margin-top:.5rem;display:none;}

.macro-display-inline{font-size:var(--fs-sm);color:var(--text-muted);}

.postramadan-desc{font-size:var(--fs-xs);color:var(--text-muted);margin:-.25rem 0 .75rem;padding-left:.25rem;opacity:.7;}

.test-info-block{color:var(--text-secondary);font-size:var(--fs-md);line-height:1.7;}
.test-info-note{color:var(--text-muted);}

.theme-dd-dot,.theme-dot{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:.4rem;vertical-align:middle;border:1px solid rgba(255,255,255,.15);}
.theme-dot-default-dark{background:#0a0e1a;}.theme-dot-default-light{background:#f4f6fb;}
.theme-dot-ctp-frappe{background:#303446;}.theme-dot-ctp-macchiato{background:#24273a;}
.theme-dot-ctp-mocha{background:#1e1e2e;}.theme-dot-ctp-latte{background:#eff1f5;}
.theme-dot-pop{background:#0d0d0d;}
.u-cursor-pointer{cursor:pointer;}
.wiki-clickable-img{cursor:pointer;}

body.light-theme{
    --bg-primary:#f4f6fb;--bg-secondary:#e9ecf3;--bg-card:#ffffff;--bg-hover:#dee3ed;--bg-input:#f0f3f8;
    --accent-primary:#0098b8;--accent-secondary:#e84a72;--accent-success:#00a855;--accent-warning:#d98a2b;
    --travel-color:#22a960;--travel-bg:rgba(34,169,96,.1);--travel-border:rgba(34,169,96,.35);
    --text-primary:#1a1f36;--text-secondary:#5c6478;--text-muted:#9ca3b4;
    --border:#d4d9e3;--shadow:rgba(0,0,0,.06);
}
body.light-theme .grain-overlay{display:none;}
body.light-theme .modal{background:rgba(100,110,130,.45);}
body.light-theme .modal-content{box-shadow:0 20px 50px rgba(0,0,0,.12);}
body.light-theme h1{background:linear-gradient(135deg,#0098b8,#e84a72);-webkit-background-clip:text;background-clip:text;}
body.light-theme .modal-title{background:linear-gradient(135deg,#0098b8,#e84a72);-webkit-background-clip:text;background-clip:text;}
body.light-theme .sidebar{background:#ffffff;border-right:1px solid #d4d9e3;box-shadow:2px 0 12px rgba(0,0,0,.04);}
body.light-theme .sb-nav-link{color:#5c6478;}
body.light-theme .sb-nav-link:hover{background:#f0f3f8;color:#0098b8;}
body.light-theme .topbar{background:rgba(244,246,251,.85);border-bottom:1px solid #d4d9e3;}
body.light-theme .tab-btn{color:#5c6478;border-color:#d4d9e3;}
body.light-theme .tab-btn.active{color:#0098b8;border-color:#0098b8;}
body.light-theme .sub-tab-btn{color:#5c6478;}
body.light-theme .sub-tab-btn.active{color:#0098b8;border-color:#0098b8;}
#themeToggleBtn{flex:0 0 auto;width:36px;font-size:1rem;padding:.35rem;}

body{font-family:'Manrope',-apple-system,system-ui,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;}
body.popup-open{overflow:hidden;}
.grain-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:.03;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

.main{margin-left:var(--sidebar-width);padding:1.25rem 1.5rem 3rem;min-height:100vh;}

header{margin-bottom:1rem;animation:slideDown .5s ease-out;}
@keyframes slideDown{from{opacity:0;transform:translateY(-15px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}}
h1{font-family:'Space Mono',monospace;font-size:clamp(1.2rem,2.5vw,1.8rem);font-weight:700;letter-spacing:-.02em;margin-bottom:.25rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.subtitle{color:var(--text-secondary);font-size:var(--fs-md);font-weight:500;}

.empty-page{text-align:center;padding:4rem 1rem;color:var(--text-muted);}
.empty-icon{font-size:3rem;display:block;margin-bottom:.75rem;}
.empty-page h3{color:var(--text-secondary);font-size:1.1rem;margin-bottom:.3rem;}
.empty-page p{font-size:var(--fs-md);}

.page{display:none;animation:fadeIn .35s ease-out;}.page.active{display:block;}

.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(10,14,26,.95);z-index:1000;align-items:center;justify-content:center;backdrop-filter:blur(10px);padding:1rem;}
.modal.active,.modal.open{display:flex;animation:modalIn .3s ease-out;}
@keyframes modalIn{from{opacity:0}to{opacity:1}}
.modal-content{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.75rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;position:relative;animation:modalUp .3s ease-out;box-shadow:0 20px 40px rgba(0,0,0,.3);}
.modal-wide{max-width:780px;}
@keyframes modalUp{from{opacity:0;transform:translateY(18px)}}
.modal-close{position:absolute;top:1.25rem;right:1.25rem;background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--text-secondary);transition:all .3s;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;}
.modal-close:hover{background:var(--bg-hover);color:var(--accent-secondary);transform:rotate(90deg);}
.modal-header{margin-bottom:1.25rem;}
.modal-title{font-family:'Space Mono',monospace;font-size:1.5rem;font-weight:700;margin-bottom:.4rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.modal-subtitle{color:var(--text-secondary);font-size:var(--fs-lg);}
.modal-body{color:var(--text-secondary);line-height:1.65;}
.modal-body h3{color:var(--text-primary);font-weight:700;margin-top:1.25rem;margin-bottom:.6rem;font-size:1rem;}
.modal-body ul{list-style:none;padding-left:0;}
.modal-body li{padding:.4rem 0;}
.modal-body li::before{content:'→';color:var(--accent-primary);font-weight:700;margin-right:.45rem;}
.modal-link{margin-top:1rem;color:var(--accent-primary);font-weight:700;cursor:pointer;font-size:var(--fs-lg);transition:color .2s;}.modal-link:hover{color:var(--accent-success);}

.det-timeline{display:flex;flex-direction:column;gap:0;margin:.75rem 0;position:relative;padding-left:1.2rem;}
.det-timeline::before{content:'';position:absolute;left:.35rem;top:.6rem;bottom:.6rem;width:2px;background:var(--border);border-radius:1px;}
.det-item{display:flex;align-items:center;justify-content:space-between;padding:.55rem .85rem;border-radius:8px;position:relative;margin-bottom:.3rem;transition:transform .15s;}
.det-item::before{content:'';position:absolute;left:-1.05rem;top:50%;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;z-index:1;}
.det-name{font-weight:700;font-size:var(--fs-lg);}
.det-dur{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;opacity:.8;margin-left:auto;text-align:right;}
/* A = Strength (amber) */
.det-a{background:rgba(255,179,71,.08);border:1px solid rgba(255,179,71,.25);}
.det-a .det-name{color:#ffb347;}.det-a .det-dur{color:#ffb347;}
.det-a::before{background:#ffb347;box-shadow:0 0 6px rgba(255,179,71,.5);}
/* B = Cardio (green) */
.det-b{background:rgba(0,255,136,.06);border:1px solid rgba(0,255,136,.2);}
.det-b .det-name{color:#00ff88;}.det-b .det-dur{color:#00ff88;}
.det-b::before{background:#00ff88;box-shadow:0 0 6px rgba(0,255,136,.5);}
/* C = Class (pink) */
.det-c{background:rgba(255,107,157,.08);border:1px solid rgba(255,107,157,.25);}
.det-c .det-name{color:#ff6b9d;}.det-c .det-dur{color:#ff6b9d;}
.det-c::before{background:#ff6b9d;box-shadow:0 0 6px rgba(255,107,157,.5);}
/* brk = Break (muted) */
.det-brk{background:rgba(100,115,150,.06);border:1px dashed rgba(100,115,150,.25);}
.det-brk .det-name{color:var(--text-muted);font-weight:500;}.det-brk .det-dur{color:var(--text-muted);}
.det-brk::before{background:var(--text-muted);box-shadow:none;width:6px;height:6px;}
/* D = Neutral/white (upcoming planner tasks) */
.det-d{background:rgba(232,237,245,.06);border:1px solid var(--border);}
.det-d .det-name{color:var(--text-primary);}.det-d .det-dur{color:var(--text-secondary);}
.det-d::before{background:var(--text-secondary);box-shadow:0 0 4px rgba(140,150,170,.3);}
/* E = Blue (current planner task) */
.det-e{background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.3);}
.det-e .det-name{color:var(--accent-primary);}.det-e .det-dur{color:var(--accent-primary);}
.det-e::before{background:var(--accent-primary);box-shadow:0 0 6px rgba(0,212,255,.5);}
/* F = Core (purple) */
.det-f{background:rgba(196,160,247,.08);border:1px solid rgba(196,160,247,.25);}
.det-f .det-name{color:#c4a0f7;}.det-f .det-dur{color:#c4a0f7;}
.det-f::before{background:#c4a0f7;box-shadow:0 0 6px rgba(196,160,247,.5);}

.file-input-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;opacity:0;}
#scanReader{background:var(--bg-secondary);border-radius:12px;}
#scanReader video{border-radius:12px;}
#scanReader #qr-shaded-region{border-color:var(--accent-primary)!important;}

@media(max-width:1024px){
    .main{margin-left:0;padding-top:3.5rem;}
}

/* ============================================
   TOAST NOTIFICATIONS
   ============================================ */
#toastContainer{position:fixed;bottom:1.25rem;right:1.25rem;display:flex;flex-direction:column;gap:.5rem;z-index:9000;pointer-events:none;}
.toast{display:flex;align-items:center;gap:.55rem;padding:.65rem 1rem;border-radius:10px;font-size:var(--fs-md);font-weight:600;font-family:'Manrope',sans-serif;background:var(--bg-card);border:1px solid var(--border);box-shadow:0 8px 24px rgba(0,0,0,.25);opacity:0;transform:translateX(20px);transition:all .35s cubic-bezier(.34,1.56,.64,1);pointer-events:auto;max-width:320px;}
.toast.toast-show{opacity:1;transform:translateX(0);}
.toast-icon{font-size:var(--fs-lg);flex-shrink:0;}
.toast-msg{color:var(--text-primary);}
.toast-success{border-color:rgba(0,255,136,.3);background:rgba(0,255,136,.06);}
.toast-success .toast-msg{color:var(--accent-success);}
.toast-error{border-color:rgba(255,107,157,.3);background:rgba(255,107,157,.06);}
.toast-error .toast-msg{color:var(--accent-secondary);}
.toast-warning{border-color:rgba(255,179,71,.3);background:rgba(255,179,71,.06);}
.toast-warning .toast-msg{color:var(--accent-warning);}
@media(max-width:768px){#toastContainer{bottom:.75rem;right:.75rem;left:.75rem;}.toast{max-width:100%;}}

/* ============================================
   CONFIRM DIALOG
   ============================================ */
.confirm-overlay{position:fixed;inset:0;background:rgba(10,14,26,.85);z-index:8000;display:flex;align-items:center;justify-content:center;padding:1rem;backdrop-filter:blur(8px);opacity:0;transition:opacity .3s;}
.confirm-overlay.active{opacity:1;}
.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.75rem;max-width:380px;width:100%;box-shadow:0 20px 50px rgba(0,0,0,.4);transform:scale(.95);transition:transform .3s cubic-bezier(.34,1.56,.64,1);}
.confirm-overlay.active .confirm-dialog{transform:scale(1);}
.confirm-msg{font-size:var(--fs-lg);color:var(--text-primary);line-height:1.55;margin-bottom:1.25rem;font-weight:500;}
.confirm-btns{display:flex;gap:.6rem;justify-content:flex-end;}
.confirm-no{padding:.5rem 1rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.confirm-no:hover{border-color:var(--text-secondary);color:var(--text-secondary);}
.confirm-yes{padding:.5rem 1rem;border:1px solid var(--accent-primary);border-radius:8px;background:rgba(0,212,255,.1);color:var(--accent-primary);font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.confirm-yes:hover{background:rgba(0,212,255,.2);}
.confirm-yes.confirm-danger{border-color:var(--accent-secondary);background:rgba(255,107,157,.1);color:var(--accent-secondary);}
.confirm-yes.confirm-danger:hover{background:rgba(255,107,157,.2);}

/* ============================================
   MICRO-ANIMATIONS & POLISH
   ============================================ */
@keyframes popIn{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@keyframes confetti{0%{opacity:1;transform:translateY(0) rotate(0deg)}100%{opacity:0;transform:translateY(-60px) rotate(180deg)}}
@keyframes glow-pulse{0%,100%{box-shadow:0 0 0 rgba(0,255,136,0)}50%{box-shadow:0 0 20px rgba(0,255,136,.25)}}

.hub-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.15);}

.drag-row-dragging{opacity:.4;}
.drag-row-over{border-color:var(--accent-primary)!important;background:rgba(0,212,255,.04)!important;}

.fin-input:focus,.fin-select:focus,.todo-input:focus,.quicknote-input:focus{box-shadow:0 0 0 2px rgba(0,212,255,.12);}

.celebrate-particle{position:fixed;pointer-events:none;z-index:9000;font-size:1.5rem;animation:confetti .8s ease-out forwards;}

/* ============================================
   GLOBAL REUSABLE COMPONENTS
   ============================================ */

.mod-tabs,.gym-tabs,.car-tabs,.sport-tabs,.nutri-tabs,.test-tabs,.dolls-tabs,.russe-tabs,.prog-tabs{display:flex;gap:.35rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.mod-tab,.gym-tab,.car-tab,.sport-tab,.nutri-tab,.test-tab,.dolls-tab,.russe-tab,.prog-tab{padding:.5rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;white-space:nowrap;}
.mod-tab:hover,.gym-tab:hover,.car-tab:hover,.sport-tab:hover,.nutri-tab:hover,.test-tab:hover,.dolls-tab:hover,.russe-tab:hover,.prog-tab:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.mod-tab.active,.gym-tab.active,.car-tab.active,.sport-tab.active,.nutri-tab.active,.test-tab.active,.dolls-tab.active,.russe-tab.active,.prog-tab.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.mod-page,.gym-page,.car-page,.nutri-page,.sport-page,.test-page,.content-page{display:none;animation:fadeIn .3s ease-out;}
.mod-page.active,.gym-page.active,.car-page.active,.nutri-page.active,.sport-page.active,.test-page.active,.content-page.active{display:block;}
@media(max-width:600px){.mod-tabs,.gym-tabs,.car-tabs,.sport-tabs,.nutri-tabs,.test-tabs,.dolls-tabs,.russe-tabs,.prog-tabs{gap:.25rem;}.mod-tab,.gym-tab,.car-tab,.sport-tab,.nutri-tab,.test-tab,.dolls-tab,.russe-tab,.prog-tab{padding:.4rem .5rem;font-size:var(--fs-sm);}}

.stat-grid,.car-stat-grid,.todo-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem;}
.todo-stats-row{margin-top:1rem;margin-bottom:1rem;}
.stat-box,.car-stat,.todo-stat,.russe-stat{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem .5rem;text-align:center;transition:border-color .2s;}
.stat-box:hover,.car-stat:hover{border-color:var(--accent-primary);}
.stat-val,.car-stat-val,.todo-stat-val{display:block;font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent-primary);}
.stat-label,.car-stat-label,.todo-stat-label{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.2rem;font-weight:600;}
@media(max-width:768px){.stat-grid,.car-stat-grid,.todo-stats-row{grid-template-columns:repeat(2,1fr);}}

.photo-preview,.sp-photo-preview,.rf-photo-preview,.ing-photo-preview{border:2px dashed var(--border);border-radius:10px;background:var(--bg-secondary);background-size:cover;background-position:center;cursor:pointer;position:relative;transition:all .25s;}
.photo-preview::after,.sp-photo-preview::after,.rf-photo-preview::after{content:'＋';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted);transition:opacity .2s;pointer-events:none;}
.photo-preview:hover,.sp-photo-preview:hover,.rf-photo-preview:hover,.ing-photo-preview:hover{border-color:var(--accent-primary);}
.photo-preview.has-photo,.sp-photo-preview.has-photo,.rf-photo-preview.has-photo,.ing-photo-preview.has-photo{border-style:solid;border-color:var(--accent-primary);}
.photo-preview.has-photo::after,.sp-photo-preview.has-photo::after,.rf-photo-preview.has-photo::after{opacity:0;}
.photo-preview.drag-over,.sp-photo-preview.drag-over,.sp-photo-circle.drag-over{border-color:var(--accent-primary)!important;background-color:rgba(0,212,255,.06)!important;box-shadow:0 0 12px rgba(0,212,255,.15);}

.section-title,.meal-section-title,.page-title{font-family:'Space Mono',monospace;font-size:clamp(.95rem,2vw,1.15rem);font-weight:700;margin-bottom:1rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ============================================
   NORMALIZED BUTTON SYSTEM
   btn-primary  = main actions (submit, add, confirm)
   btn-secondary = secondary actions (cancel, back, alternative)
   btn-danger   = destructive actions (delete, reset)
   btn-icon     = small icon-only buttons (edit, delete inline)
   ============================================ */
.btn-primary,.fin-submit{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1rem;border:none;border-radius:8px;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;font-family:'Manrope',sans-serif;font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .2s;text-align:center;}
.btn-primary:hover,.fin-submit:hover{opacity:.9;box-shadow:0 4px 12px rgba(0,212,255,.2);transform:translateY(-1px);}
.btn-primary:active,.fin-submit:active{transform:translateY(0);}
.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);font-family:'Manrope',sans-serif;font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .2s;text-align:center;}
.btn-secondary:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}
.btn-danger,.settings-reset-btn,.btn-settings-warn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1rem;border:1px solid var(--accent-secondary);border-radius:8px;background:rgba(255,107,157,.08);color:var(--accent-secondary);font-family:'Manrope',sans-serif;font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .2s;text-align:center;}
.btn-danger:hover,.settings-reset-btn:hover,.btn-settings-warn:hover{background:rgba(255,107,157,.15);box-shadow:0 4px 12px rgba(255,107,157,.2);}
.btn-icon,.icon-action-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;padding:0;flex-shrink:0;}
.btn-icon:hover,.icon-action-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}
.btn-icon.danger,.icon-action-btn.danger{border-color:var(--accent-secondary);color:var(--accent-secondary);}
.btn-icon.danger:hover,.icon-action-btn.danger:hover{background:rgba(255,107,157,.08);}

.hub-quick-btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;padding:.5rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-secondary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all .2s;}
.hub-quick-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}

.ui-card,
.fin-card,.fin-history-section,.spirit-card,.sp-form,.sp-entry-card,.sp-chart-wrap,
.gym-ex-card,.gym-prog-card,.gym-session-card,.gym-test-card,.gym-test-chart-card,.hub-test-widget,.gym-quick-start,
.meal-card,.recipe-card,.hub-card,.chastity-widget-inner,.note-card{
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:12px;
}

/* icon-action-btn: base styles in button system, these are additional shared selectors */
.recipe-action-btn,.ing-action-btn,.todo-del,.routine-edit-btn,.routine-edit-del{
    background:var(--bg-secondary);
    border:1px solid var(--border);
    border-radius:8px;
    padding:.5rem .5rem;
    font-size:var(--fs-lg);
    color:var(--text-muted);
    cursor:pointer;
    transition:all .2s;
    display:inline-flex;align-items:center;justify-content:center;
    line-height:1;
}
.recipe-action-btn:hover,.ing-action-btn:hover,.todo-del:hover,.routine-edit-btn:hover,.routine-edit-del:hover{
    border-color:var(--accent-primary);
    color:var(--accent-primary);
    background:var(--bg-hover);
}
.icon-action-btn.active{
    background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);
}
.icon-action-btn.danger:hover,
.recipe-del:hover,.todo-del:hover,.routine-edit-del:hover{
    border-color:var(--accent-secondary);
    color:var(--accent-secondary);
    background:rgba(255,107,157,.08);
}

/* ============================================
   DEV NOTES
   ============================================ */
.dn-version-row{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem;padding:.6rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;}
.dn-version-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-right:.4rem;}
.dn-version-v{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-muted);}
.dn-ver-field{width:32px;padding:3px 4px;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-family:'Space Mono',monospace;font-size:var(--fs-md);text-align:center;outline:none;transition:all .2s;-moz-appearance:textfield;}
.dn-ver-field::-webkit-inner-spin-button,.dn-ver-field::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}
.dn-ver-field:hover{border-color:var(--accent-primary);}
.dn-ver-field:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(0,212,255,.15);}
.dn-version-dot{font-family:'Space Mono',monospace;font-weight:700;color:var(--text-muted);font-size:var(--fs-md);}
.dn-add-row{display:flex;gap:.4rem;margin-bottom:1.25rem;align-items:center;}
.dn-cat-select{flex:0 0 auto;min-width:130px;padding:.5rem .5rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);cursor:pointer;outline:none;}
.dn-input{flex:1;}
.dn-add-btn{flex:0 0 42px;height:38px;font-size:1.1rem;padding:0;}
.dn-section{margin-bottom:1.25rem;}
.dn-section-title{font-size:var(--fs-md);font-weight:700;color:var(--text-secondary);margin-bottom:.5rem;padding:.4rem .6rem;border-left:3px solid var(--accent-primary);background:var(--bg-secondary);border-radius:0 6px 6px 0;display:flex;align-items:center;gap:.5rem;cursor:pointer;user-select:none;transition:background .15s;}
.dn-section-title:hover{background:var(--bg-hover);}
.dn-section-arrow{font-size:var(--fs-xs);transition:transform .2s;flex-shrink:0;}
.dn-section.collapsed .dn-section-arrow{transform:rotate(-90deg);}
.dn-section.collapsed .dn-section-body{display:none;}
.dn-sections-grid{display:block;}
@media(min-width:1920px){.dn-sections-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:start;}
.dn-sections-grid .dn-section{margin-bottom:0;}
.dn-section.collapsed .dn-section-body{display:block;}
.dn-section-arrow{display:none;}
}
.dn-count{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;}
.dn-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.35rem;transition:all .2s;}
.dn-item:hover{border-color:var(--accent-primary);}
.dn-done{opacity:.55;}
.dn-check{flex:0 0 28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--accent-primary);font-size:var(--fs-md);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;}
.dn-check:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.08);}
.dn-text{flex:1;font-size:var(--fs-md);color:var(--text-primary);line-height:1.4;word-break:break-word;}
.dn-struck{text-decoration:line-through;color:var(--text-muted);}
.dn-date{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;flex-shrink:0;}
.dn-del{flex:0 0 24px;height:24px;border:none;background:none;color:var(--text-muted);font-size:var(--fs-lg);cursor:pointer;transition:color .15s;padding:0;display:flex;align-items:center;justify-content:center;}
.dn-del:hover{color:var(--accent-secondary);}
@media(max-width:600px){.dn-add-row{flex-wrap:wrap;}.dn-cat-select{min-width:100%;}.dn-input{min-width:0;}}

#welcomeSplash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);opacity:0;pointer-events:none;transition:opacity .6s ease;}
#welcomeSplash.splash-visible{opacity:1;pointer-events:auto;}
#welcomeSplash.splash-fade-out{opacity:0;transition:opacity .7s ease;pointer-events:none;}
.splash-content{text-align:center;transform:scale(.95) translateY(8px);transition:transform .6s cubic-bezier(.4,0,.2,1);opacity:0;}
.splash-visible .splash-content{transform:scale(1) translateY(0);opacity:1;transition:transform .6s cubic-bezier(.4,0,.2,1),opacity .5s ease;}
.splash-greeting{font-family:'Space Mono',monospace;font-size:clamp(1.2rem,4vw,1.8rem);font-weight:700;color:var(--text-muted);margin-bottom:.5rem;letter-spacing:.02em;}
.splash-name{font-family:'Space Mono',monospace;font-size:clamp(2rem,7vw,3.5rem);font-weight:800;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:0;transform:translateY(12px);animation:splashName .8s .25s cubic-bezier(.4,0,.2,1) forwards;}
.splash-brand{font-family:'Space Mono',monospace;font-size:clamp(.7rem,2vw,.9rem);color:var(--text-muted);margin-top:1.2rem;letter-spacing:.05em;opacity:0;animation:splashName .6s .6s ease forwards;}
@keyframes splashName{from{opacity:0;transform:translateY(12px);}}

#pullRefreshIndicator{position:fixed;top:0;left:50%;margin-left:-18px;z-index:9998;width:36px;height:36px;opacity:0;transition:opacity .15s;pointer-events:none;}
.pull-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .6s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================
   GLOBAL IMAGE VIEWER
   ============================================ */
#imgViewerOverlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10050;display:none;align-items:center;justify-content:center;}
#imgViewerOverlay.iv-open{display:flex;}
.iv-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.88);cursor:pointer;}
.iv-container{position:relative;z-index:1;display:flex;flex-direction:row;align-items:center;gap:.75rem;max-width:95vw;max-height:95vh;}
.iv-img{max-width:85vw;max-height:85vh;border-radius:12px;object-fit:contain;box-shadow:0 0 40px rgba(0,0,0,.5);transition:transform .3s ease;user-select:none;}
.iv-toolbar{display:flex;flex-direction:column;gap:.5rem;}
.iv-btn{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;font-size:1rem;padding:.5rem .7rem;cursor:pointer;transition:all .2s;backdrop-filter:blur(8px);line-height:1;}
.iv-btn:hover{background:rgba(255,255,255,.25);border-color:rgba(255,255,255,.4);}
.iv-close{background:rgba(255,80,80,.2);border-color:rgba(255,80,80,.3);}
.iv-close:hover{background:rgba(255,80,80,.4);}

.iv-info-overlay{position:fixed;top:0;left:0;width:100%;height:100%;z-index:10060;display:none;align-items:center;justify-content:center;}
.iv-info-overlay.iv-info-open{display:flex;}
.iv-info-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.45);}
.iv-info-panel{position:relative;z-index:1;width:420px;max-width:92vw;max-height:88vh;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.5);}
.iv-info-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);}
.iv-info-header-title{font-weight:600;font-size:var(--fs-lg);}
.iv-info-close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:.2rem .4rem;border-radius:6px;}
.iv-info-close-btn:hover{background:var(--bg-secondary);}
.iv-info-inner{padding:.85rem 1rem;}
.iv-info-inner .fin-label{margin-bottom:.5rem;}
.iv-info-inner .fin-input{margin-top:.15rem;}
.iv-exif-section{margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--border);}
.iv-exif-title{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.45rem;}
.iv-exif-grid{display:grid;grid-template-columns:auto 1fr;gap:.25rem .65rem;font-size:var(--fs-sm);}
.iv-exif-key{color:var(--text-muted);font-weight:500;white-space:nowrap;}
.iv-exif-val{color:var(--text-primary);word-break:break-all;}
.iv-exif-loading{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;}
.iv-info-actions{display:flex;gap:.5rem;margin-top:.85rem;}
.iv-info-actions .fin-submit{flex:1;}
@media(max-width:600px){
    .iv-container{flex-direction:column;gap:.5rem;}
    .iv-toolbar{flex-direction:row;}
    .iv-img{max-width:92vw;max-height:75vh;}
}

/* ============================================
   SPACING NORMALIZER — consistent 1rem gaps
   between all outer cards, widgets, sections.
   ============================================ */
.social-card,
.idea-card,
.idea-review-card,
.meal-card,
.gym-challenge-card,
.et-bank-card,
.hub-quote-card,
.hub-birthday-widget,
.hub-grid,
.hub-links,
.hub-quick-actions,
.hub-header-bar,
.hub-quote-ramadan-row,
.g-card,
.g-card-flat,
.bucket-card,
.fin-hist-entry-group,
.spirit-card-title,
.spirit-card-header {
    margin-bottom: 1rem;
}

.hub-quote-ramadan-row .hub-quote-card,
.hub-quote-ramadan-row .ramadan-widget,
.hub-card-title-row .hub-card-title,
.routine-header .hub-card-title,
.todo-header-row .hub-card-title {
    margin-bottom: 0;
}

.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border);z-index:100;display:flex;flex-direction:column;}
.sidebar-scroll{overflow-y:auto;flex:1;padding:1rem;padding-bottom:.5rem;-webkit-overflow-scrolling:touch;}
.sidebar-scroll::-webkit-scrollbar{width:4px;}.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.sidebar-header{margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);}
.sidebar-brand{font-family:'Space Mono',monospace;font-size:1.15rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.15rem;}
.sidebar-brand-sub{font-size:var(--fs-xs);color:var(--text-muted);font-weight:500;}
.sb-heading{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.6rem;letter-spacing:.03em;}
.sb-divider{height:1px;background:var(--border);margin:1rem 0;}
.sb-nav{display:flex;flex-direction:column;gap:.25rem;}
.sb-nav.sb-nav-collapsed{display:none;}
.sb-nav-toggle{cursor:pointer;user-select:none;display:flex;align-items:center;gap:.4rem;transition:color .15s;}
.sb-nav-toggle:hover{color:var(--accent-primary);}
.sb-nav-arrow{font-size:var(--fs-xs);transition:transform .2s;color:var(--text-muted);}
.sb-nav-section.open .sb-nav-arrow{transform:rotate(90deg);}
.sb-nav-section.open .sb-nav{display:flex;}
.sb-nav-link{display:block;padding:.5rem .7rem;border-radius:8px;font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);cursor:pointer;transition:all .2s;text-decoration:none;}
.sb-nav-link:hover{background:var(--bg-hover);color:var(--accent-primary);}
.sidebar-overlay{display:none;}
.hamburger{display:none;}

.sidebar-footer{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border);background:var(--bg-secondary);flex-wrap:wrap;}
.sidebar-version{width:100%;text-align:center;font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.15rem;font-weight:600;}
.sb-footer-btn{flex:1;padding:.5rem .4rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;text-align:center;}
.sb-footer-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}
.sb-logout-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);background:rgba(255,107,157,.04);}

.sb-global-search{margin-bottom:.75rem;}
.sb-search-input{width:100%;padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:var(--fs-sm);font-family:'Manrope',sans-serif;transition:border-color .2s;outline:none;}
.sb-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(0,212,255,.1);}
.sb-search-input::placeholder{color:var(--text-muted);font-size:var(--fs-sm);}
.sb-search-results{max-height:300px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-card);margin-top:.3rem;}
.sb-search-results::-webkit-scrollbar{width:3px;}.sb-search-results::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.sb-search-item{display:flex;align-items:center;gap:.35rem;padding:.4rem .5rem;cursor:pointer;transition:background .15s;font-size:var(--fs-sm);border-bottom:1px solid var(--border);}
.sb-search-item:last-child{border-bottom:none;}
.sb-search-item:hover{background:var(--bg-hover);}
.sb-search-icon{font-size:var(--fs-sm);flex-shrink:0;}
.sb-search-text{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sb-search-empty{padding:.6rem;text-align:center;font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;}
.sb-search-hint{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;flex-shrink:0;}

.sb-search-l1{border-left:3px solid var(--accent-primary);background:rgba(0,212,255,.06);}
.sb-search-l1 .sb-search-text{color:var(--accent-primary);font-weight:700;font-size:var(--fs-sm);}

.sb-search-l2{border-left:3px solid rgba(0,212,255,.35);background:rgba(0,212,255,.02);}
.sb-search-l2 .sb-search-text{color:var(--text-primary);font-weight:600;}

.sb-search-l3{border-left:3px solid var(--border);padding-left:.85rem;}
.sb-search-l3 .sb-search-text{color:var(--text-secondary);font-weight:500;font-size:var(--fs-xs);}
.sb-search-l3 .sb-search-hint{font-size:var(--fs-xs);}

.sb-search-action{border-left:2px solid var(--accent-secondary);}
.sb-search-action .sb-search-text{color:var(--text-primary);font-weight:500;}

.log-container{max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);padding:.5rem;}
.log-container::-webkit-scrollbar{width:3px;}.log-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.log-empty{text-align:center;color:var(--text-muted);font-size:var(--fs-sm);padding:1.2rem 0;font-style:italic;}
.log-date-header{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);padding:.4rem .3rem .15rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);margin-bottom:.2rem;}
.log-entry{display:flex;align-items:center;gap:.35rem;padding:.25rem .35rem;border-radius:4px;font-size:var(--fs-xs);transition:background .15s;}
.log-entry:hover{background:var(--bg-hover);}
.log-time{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);min-width:2.8rem;}
.log-filter-bar{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.4rem;padding-bottom:.4rem;border-bottom:1px solid var(--border);}
.log-filter-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:.15rem .35rem;font-size:var(--fs-xs);cursor:pointer;color:var(--text-muted);transition:all .15s;font-family:'Manrope',sans-serif;font-weight:600;}
.log-filter-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.log-filter-btn.active{background:var(--accent-primary);color:var(--bg-primary);border-color:var(--accent-primary);}
.log-date-count{font-weight:400;color:var(--text-muted);font-size:var(--fs-xs);}
.log-icon{font-size:var(--fs-sm);}.log-text{color:var(--text-secondary);font-size:var(--fs-xs);}

.settings-section{margin-bottom:1.5rem;}
.settings-section h3{color:var(--text-primary);font-size:var(--fs-lg);margin-bottom:.6rem;}
.settings-toggle{display:flex;align-items:center;gap:.6rem;cursor:pointer;padding:.5rem;border-radius:8px;transition:background .15s;}
.settings-toggle:hover{background:var(--bg-hover);}
.settings-toggle .settings-check-btn{flex-shrink:0;}
.settings-toggle-label{font-size:var(--fs-md);color:var(--text-secondary);}
.settings-danger{padding-top:1rem;border-top:1px solid rgba(255,107,157,.2);}
.settings-danger h3{color:var(--accent-secondary);}
.settings-warn{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.75rem;line-height:1.5;}

.settings-reset-btn{width:100%;}

body.nsfw-hidden .nsfw-content{display:none !important;}
body.nsfw-hidden .nsfw-nav{display:none !important;}

@media(max-width:1024px){
    .sidebar{transform:translateX(-100%);transition:transform .35s cubic-bezier(.4,0,.2,1);z-index:200;}.sidebar.open{transform:translateX(0);}
    .sidebar-header{padding-top:2.75rem;}
    .sidebar-overlay{display:block;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:150;opacity:0;pointer-events:none;transition:opacity .3s;}.sidebar-overlay.visible{opacity:1;pointer-events:auto;}
    .hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;position:fixed;top:.65rem;left:.65rem;width:38px;height:38px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;z-index:250;cursor:pointer;transition:all .3s;}
    .hamburger:hover{border-color:var(--accent-primary);}
    .hamburger span{display:block;width:17px;height:2px;background:var(--text-secondary);border-radius:1px;transition:all .3s;}
    .hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}.hamburger.active span:nth-child(2){opacity:0;}.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
}

.sb-today{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--accent-primary);font-weight:700;text-align:center;margin-bottom:.75rem;padding:.3rem .5rem;background:rgba(0,212,255,.05);border-radius:6px;border:1px solid rgba(0,212,255,.12);}

.tab-nav{display:flex;gap:.35rem;margin-bottom:.5rem;background:var(--bg-secondary);border-radius:12px;padding:.3rem;border:1px solid var(--border);flex-wrap:wrap;}
.tab-btn{padding:.55rem .65rem;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;}
.tab-btn:hover{color:var(--text-secondary);background:var(--bg-hover);}
.tab-btn.active{background:linear-gradient(135deg,rgba(0,212,255,.12),rgba(255,107,157,.12));color:var(--accent-primary);box-shadow:0 2px 8px rgba(0,212,255,.12);}
.tab-separator{width:1px;height:20px;background:var(--border);margin:0 .2rem;flex-shrink:0;align-self:center;}
.sub-tab-nav{display:none;gap:.3rem;margin-bottom:1rem;padding:.25rem;background:var(--bg-card);border-radius:10px;border:1px solid var(--border);}
.sub-tab-btn{padding:.45rem .6rem;border:none;border-radius:7px;background:transparent;color:var(--text-muted);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;}
.sub-tab-btn:hover{color:var(--text-secondary);background:var(--bg-hover);}
.sub-tab-btn.active{background:rgba(0,212,255,.1);color:var(--accent-primary);}
.sub-tab-sep{width:1px;height:16px;background:var(--border);margin:0 .1rem;flex-shrink:0;align-self:center;}

.dolls-panel{display:none;}
.dolls-panel.active{display:block;}

.dolls-input{flex:1;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);outline:none;transition:border-color .2s;}
.dolls-input:focus{border-color:var(--accent-primary);}
.dolls-sel{padding:.4rem .5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-input);color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);outline:none;cursor:pointer;}
.dolls-add-btn{flex:0 0 34px;height:34px;border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;}
.dolls-add-btn:hover{background:rgba(0,212,255,.2);transform:translateY(-1px);}

.dolls-bug-add{display:flex;gap:.4rem;margin-bottom:1rem;align-items:center;}
.dolls-bug-add .dolls-sel{flex:0 0 auto;min-width:100px;}
.dolls-bug-section{display:flex;flex-direction:column;gap:.3rem;}
.dolls-bug{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);transition:all .15s;}
.dolls-bug:hover{border-color:rgba(0,212,255,.3);}
.dolls-bug-crit{border-left:3px solid #ff4444;}
.dolls-bug-done{opacity:.45;}
.dolls-bug-check{flex:0 0 28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--accent-primary);font-size:var(--fs-md);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;}
.dolls-bug-check:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.08);}
.dolls-bug-prio{font-size:var(--fs-sm);flex-shrink:0;}
.dolls-bug-text{flex:1;font-size:var(--fs-md);color:var(--text-primary);line-height:1.35;word-break:break-word;}
.dolls-bug-age{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);flex-shrink:0;min-width:32px;text-align:right;}
.dolls-bug-del{flex:0 0 22px;height:22px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);transition:color .15s;padding:0;display:flex;align-items:center;justify-content:center;}
.dolls-bug-del:hover{color:var(--accent-secondary);}

.dolls-resolved{margin-top:.75rem;}
.dolls-resolved-sum{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);cursor:pointer;padding:.4rem .5rem;background:var(--bg-secondary);border-radius:var(--radius-sm);user-select:none;list-style:none;}
.dolls-resolved-sum::-webkit-details-marker{display:none;}
.dolls-resolved-sum::before{content:'▸ ';transition:transform .15s;}
.dolls-resolved[open] .dolls-resolved-sum::before{content:'▾ ';}
.dolls-resolved-list{display:flex;flex-direction:column;gap:.2rem;margin-top:.4rem;}

.dolls-doc-toolbar{display:flex;gap:.4rem;margin-bottom:1rem;align-items:center;}
.dolls-doc-folder{margin-bottom:.75rem;}
.dolls-doc-folder-name{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);padding:.3rem .5rem;margin-bottom:.35rem;border-bottom:1px solid var(--border);}
.dolls-doc-folder-count{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;margin-left:.25rem;}

.dolls-doc-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:.55rem .7rem;margin-bottom:.3rem;cursor:pointer;transition:all .15s;}
.dolls-doc-card:hover{border-color:rgba(0,212,255,.3);}
.dolls-doc-head{display:flex;align-items:center;gap:.4rem;}
.dolls-doc-type{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;padding:.1rem .35rem;border-radius:4px;flex-shrink:0;color:var(--text-primary);}
.dolls-doc-name{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);flex:1;}
.dolls-doc-base{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.dolls-doc-edit{background:none;border:none;cursor:pointer;font-size:var(--fs-sm);padding:.1rem;opacity:.5;transition:opacity .15s;}
.dolls-doc-edit:hover{opacity:1;}
.dolls-doc-purpose{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:.25rem;line-height:1.35;}

.dolls-doc-details{display:none;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border);}
.dolls-doc-expanded .dolls-doc-details{display:block;}
.dolls-doc-section{margin-bottom:.4rem;}
.dolls-doc-section-label{display:block;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.2rem;}
.dolls-doc-section code{display:inline-block;font-family:'Space Mono',monospace;font-size:var(--fs-xs);background:var(--bg-secondary);border:1px solid var(--border);padding:.1rem .35rem;border-radius:4px;margin:0 .2rem .2rem 0;color:var(--accent-primary);}
.dolls-doc-notes{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.3rem;font-style:italic;padding:.3rem .4rem;background:var(--bg-secondary);border-radius:4px;}

.dolls-gh-setup{max-width:400px;}
.dolls-gh-link{display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .7rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);text-decoration:none;transition:all .15s;}
.dolls-gh-link:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.05);}

@media(max-width:600px){
    .dolls-bug-add{flex-wrap:wrap;}.dolls-bug-add .dolls-sel{flex:1 1 100%;}.dolls-bug-add .dolls-input{flex:1 1 100%;}
    .dolls-doc-toolbar{flex-wrap:wrap;}.dolls-doc-toolbar .dolls-input{flex:1 1 100%;}
}

@media(min-width:1920px){#dollsPanel-bugs .dn-sections-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;align-items:start;}
#dollsPanel-bugs .dn-sections-grid .dn-section{margin-bottom:0;}}

.hub-quote-card{background:linear-gradient(135deg,rgba(0,212,255,.04),rgba(255,179,71,.04));border:1px solid rgba(255,179,71,.15);border-radius:12px;padding:1rem;margin-bottom:1rem;position:relative;overflow:hidden;text-align:center;}
.hub-quote-card::before{content:'\FDFD';position:absolute;top:.3rem;left:50%;transform:translateX(-50%);font-size:1.1rem;color:rgba(255,179,71,.15);font-family:'Times New Roman',serif;}
.hub-quote-card::after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,179,71,.2),transparent);}
.quote-text{font-size:var(--fs-lg);font-weight:500;color:var(--text-primary);line-height:1.7;font-style:italic;padding:.8rem .5rem .4rem;position:relative;}
.quote-text::before{content:'\275D';font-size:1.8rem;color:rgba(255,179,71,.18);font-family:Georgia,serif;position:absolute;top:-.1rem;left:-.3rem;font-style:normal;}
.quote-text::after{content:'\275E';font-size:1.8rem;color:rgba(255,179,71,.18);font-family:Georgia,serif;position:absolute;bottom:-.5rem;right:-.3rem;font-style:normal;}
.quote-source{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-warning);margin-top:.5rem;opacity:.85;}
.hub-routines-wrap{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem;}
.hub-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:all .25s;}
.hub-card:hover{border-color:var(--accent-primary);transform:translateY(-1px);}
.hub-card-title{font-family:'Space Mono',monospace;font-weight:700;font-size:var(--fs-lg);margin-bottom:.7rem;color:var(--accent-primary);}
.hub-section-title{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--text-secondary);margin-bottom:.75rem;margin-top:.25rem;}
.hub-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;}
.hub-link{padding:.55rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.hub-link:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--bg-hover);}

.tracker{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem;cursor:pointer;transition:all .25s;position:relative;overflow:hidden;}
.tracker::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transform:scaleX(0);transition:transform .3s;}
.tracker:hover{border-color:var(--accent-primary);}.tracker:hover::before{transform:scaleX(1);}
.tracker.checked{background:linear-gradient(135deg,rgba(0,212,255,.07),rgba(255,107,157,.07));border-color:var(--accent-success);}
.tracker-top-row{display:flex;align-items:center;gap:.5rem;}
.tracker-icon{font-size:1.1rem;}.tracker-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);transition:color .3s;}
.tracker.checked .tracker-label{color:var(--accent-success);}
.tracker-streak{display:flex;align-items:center;gap:.25rem;font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.35rem;}
.tracker.checked .tracker-streak{color:var(--accent-primary);}.streak-number{font-weight:700;color:var(--accent-primary);}.tracker.checked .streak-number{color:var(--accent-success);}
.tracker.tracker-disabled{opacity:.4;pointer-events:none;filter:grayscale(.6);}
.tracker-split{cursor:default;}.split-row{display:flex;gap:.35rem;margin-top:.45rem;}
.split-btn{flex:1;padding:.3rem .1rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;text-align:center;}
.split-btn:hover{border-color:var(--accent-primary);}.split-btn.checked{background:linear-gradient(135deg,rgba(0,255,136,.1),rgba(0,212,255,.1));border-color:var(--accent-success);color:var(--accent-success);}
.dents-streak{margin-top:.35rem;}

@media(max-width:1024px){
    .tab-btn{font-size:var(--fs-xs);padding:.45rem .35rem;}.sub-tab-btn{font-size:var(--fs-xs);padding:.35rem .4rem;}
    .hub-grid{grid-template-columns:1fr;}
    .hub-routines-wrap{grid-template-columns:1fr;}
}

.hub-header-bar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;gap:1rem;flex-wrap:wrap;}
.hub-greeting{font-family:'Space Mono',monospace;font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hub-datetime-col{text-align:right;display:flex;flex-direction:column;gap:.2rem;}
.hub-datetime{text-align:right;}
.hub-date{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);}
.hub-time{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent-primary);}
.hub-weather{display:flex;flex-direction:column;gap:.15rem;align-items:flex-end;padding-top:.25rem;margin-top:.15rem;}
.weather-main{display:flex;align-items:center;gap:.3rem;}
.weather-icon{font-size:1.1rem;line-height:1;}
.weather-temp{font-family:'Space Mono',monospace;font-weight:700;font-size:1rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.weather-desc{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);}
.weather-details{display:flex;gap:.5rem;align-items:center;}
.weather-hilo{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.weather-detail{font-size:var(--fs-xs);color:var(--text-muted);}

.hub-quote-ramadan-row{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1rem;align-items:stretch;}
.hub-quote-ramadan-row .hub-quote-card{margin-bottom:0;}
.hub-quote-ramadan-row .ramadan-widget{margin-bottom:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;}
.ramadan-widget{background:var(--bg-card);border:1px solid rgba(255,179,71,.2);border-radius:12px;padding:1rem;}
.ramadan-day-badge{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-warning);margin-bottom:.4rem;text-align:center;}
.ramadan-step{font-size:var(--fs-md);color:var(--text-secondary);padding:.2rem 0;}
.ramadan-step.next{color:var(--accent-primary);font-weight:700;}
.ramadan-step strong{color:var(--text-primary);}
.ramadan-countdown{font-size:var(--fs-sm);color:var(--accent-warning);font-family:'Space Mono',monospace;}

.hub-quick-actions{display:none;gap:1rem;margin-bottom:1rem;}

.hub-quick-revenue{border-color:rgba(0,255,136,.25);}.hub-quick-revenue:hover{background:rgba(0,255,136,.05);border-color:var(--accent-success);}
.hub-quick-expense{border-color:rgba(255,107,157,.25);}.hub-quick-expense:hover{background:rgba(255,107,157,.05);border-color:var(--accent-secondary);}

.hub-todo-card{}
.todo-input-row{display:flex;gap:.4rem;margin-bottom:.6rem;}
.todo-input{flex:1;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-md);font-family:'Manrope',sans-serif;outline:none;transition:border-color .2s;}
.todo-input:focus{border-color:var(--accent-primary);}
.todo-add-btn{width:38px;height:38px;border:1px solid var(--accent-primary);border-radius:8px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.todo-add-btn:hover{background:rgba(0,212,255,.15);}
.todo-list{display:flex;flex-direction:column;gap:.3rem;}
.todo-item{display:flex;align-items:center;gap:.55rem;padding:.45rem .55rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;transition:all .2s;}
.todo-item:hover{border-color:var(--accent-primary);}
.todo-item.todo-urgent{border-color:var(--accent-secondary);background:rgba(255,107,157,.04);}
.todo-item.todo-urgent .todo-text{color:var(--accent-secondary);font-weight:700;}
.todo-item.todo-warn{border-color:#ffb347;background:rgba(255,179,71,.04);}
.todo-item.todo-warn .todo-text{color:var(--accent-warning);font-weight:700;}
.todo-item.todo-prolonged{border-color:#f9e2af;background:rgba(249,226,175,.06);}
.todo-item.todo-prolonged .todo-text{color:#f9e2af;font-weight:700;}
.todo-timer-prolonged{color:#f9e2af !important;background:rgba(249,226,175,.1) !important;}
.todo-check{width:26px;height:26px;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);flex-shrink:0;}
.todo-check:hover{border-color:var(--accent-success);color:var(--accent-success);background:rgba(0,255,136,.05);}
.todo-content{flex:1;min-width:0;}
.todo-text{font-size:var(--fs-md);color:var(--text-primary);display:block;}
.todo-meta{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}

.ramadan-table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border);}
.ramadan-table{width:100%;border-collapse:collapse;min-width:550px;}
.ramadan-table th,.ramadan-table td{padding:.6rem .5rem;border:1px solid var(--border);text-align:center;font-size:var(--fs-sm);}
.ramadan-table thead th{background:var(--bg-card);font-weight:700;color:var(--text-secondary);}
.rt-corner{text-align:left !important;font-size:var(--fs-xs);color:var(--text-muted) !important;min-width:90px;}
.rt-week-n{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;color:var(--accent-primary);}
.rt-week-range{font-size:var(--fs-xs);color:var(--text-muted);}
.rt-day{font-weight:700;color:var(--text-secondary);text-align:left !important;padding-left:.75rem !important;}
.rt-cell{background:var(--bg-secondary);transition:all .2s;position:relative;}.rt-cell:hover{background:var(--bg-hover);}
.rt-checkable{cursor:pointer;}
.rt-checked{background:rgba(0,255,136,.08) !important;opacity:.7;}
.rt-checked .rt-main{text-decoration:line-through;}
.rt-check-mark{position:absolute;top:.15rem;right:.25rem;font-size:var(--fs-xs);font-weight:700;color:var(--accent-success);}
.rt-main{font-weight:700;color:var(--text-primary);font-size:var(--fs-sm);}
.rt-extra{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic;}
.rt-time{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--accent-primary);margin-top:.15rem;}
.rt-run-badge{font-size:var(--fs-xs);color:var(--accent-warning);font-weight:700;margin-top:.15rem;}
.rt-full .rt-main{color:var(--accent-primary);}
.rt-upper .rt-main{color:var(--accent-success);}
.rt-lower .rt-main{color:var(--accent-secondary);}
.rt-empty{background:var(--bg-primary);opacity:.3;}

body.islam-hidden .islam-content{display:none !important;}
body.islam-hidden .non-islam-label{display:block !important;}
body.beta-hidden .beta-content{display:none !important;}
body.islam-hidden .hub-quote-ramadan-row{grid-template-columns:1fr;}
body.islam-hidden .hub-quote-ramadan-row .ramadan-widget{width:100%;}

@media(max-width:768px){
    .hub-header-bar{flex-direction:column;gap:.3rem;}
    .hub-datetime-col{text-align:left;align-items:flex-start;}
    .hub-datetime{text-align:left;}
    .hub-weather{align-items:flex-start;}
    .weather-details{justify-content:flex-start;}
    .hub-quick-actions{display:flex;flex-direction:column;}
    .hub-greeting{font-size:1.1rem;}
    .hub-quote-ramadan-row{grid-template-columns:1fr;}
    .hub-quote-ramadan-row .ramadan-widget{width:100%;}
}

/* ============================================
   HUB TITLE ROW (for history/edit buttons)
   ============================================ */
.hub-card-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.hub-card-title-row .hub-card-title{margin-bottom:0;}
.todo-history-btn,.routine-edit-btn{background:none;border:1px solid var(--border);border-radius:8px;padding:.25rem .5rem;font-size:var(--fs-sm);cursor:pointer;color:var(--text-muted);transition:all .2s;}
.todo-history-btn:hover,.routine-edit-btn:hover{background:var(--bg-hover);color:var(--accent-primary);border-color:var(--accent-primary);}

/* ============================================
   TODO DELETE BUTTON
   ============================================ */
.todo-del{font-size:1rem;padding:.2rem .4rem;border-radius:6px;opacity:.4;flex-shrink:0;}
.todo-del:hover{opacity:1;}

/* ============================================
   TODO HISTORY POPUP
   ============================================ */

.todo-hist-title{font-size:var(--fs-md);color:var(--text-secondary);margin:1rem 0 .5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border);}
.todo-hist-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;margin-top:.5rem;}
.todo-hist-text{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:.3rem;}
.todo-hist-meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:var(--fs-sm);color:var(--text-muted);}
.todo-hist-dur{color:var(--accent-primary);font-weight:600;}
.todo-hist-deleted{opacity:.6;border-left:3px solid var(--accent-secondary);}

/* ============================================
   ROUTINE EDITOR
   ============================================ */
.routine-edit-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;padding:.25rem .3rem;border-radius:6px;transition:background .15s,opacity .15s;}
.routine-edit-handle{color:var(--text-muted);font-size:1.1rem;cursor:grab;flex-shrink:0;}
.routine-edit-input{flex:1;padding:.45rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-md);}
.routine-edit-input:focus{outline:none;border-color:var(--accent-primary);}
.routine-edit-del{font-size:1.1rem;padding:.2rem .35rem;border-radius:6px;flex-shrink:0;}
.routine-add-btn{width:100%;padding:.5rem;border:1px dashed var(--border);border-radius:8px;background:none;color:var(--text-muted);cursor:pointer;font-family:'Manrope',sans-serif;font-size:var(--fs-md);transition:all .2s;margin-top:.3rem;}
.routine-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}

/* ============================================
   BIRTHDAY WIDGET
   ============================================ */
.hub-birthday-widget{background:linear-gradient(135deg,rgba(255,179,71,.08),rgba(255,107,157,.06));border:1px solid rgba(255,179,71,.2);border-radius:12px;padding:1rem;margin-bottom:1rem;}
.birthday-item{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;}
.birthday-icon{font-size:1.2rem;}
.birthday-text{font-size:var(--fs-md);color:var(--text-primary);}

/* ============================================
   SOCIAL CARDS
   ============================================ */
.social-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1rem;margin-bottom:1rem;transition:all .2s;}
.social-card:hover{border-color:rgba(0,212,255,.2);}
.social-card-header{display:flex;align-items:center;gap:.75rem;}
.social-photo{width:52px;height:52px;border-radius:50%;background:var(--bg-secondary);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:1.3rem;font-weight:700;color:var(--accent-primary);background-size:cover;background-position:center;flex-shrink:0;}
.social-info{flex:1;min-width:0;}
.social-name{font-weight:700;font-size:var(--fs-lg);color:var(--text-primary);}
.social-sex{font-size:var(--fs-sm);opacity:.6;}
.social-meta{font-size:var(--fs-sm);color:var(--text-muted);}
.social-card-actions{display:flex;gap:.3rem;flex-shrink:0;}
.social-card-body{margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border);}
.social-stats{display:flex;flex-wrap:wrap;gap:.5rem .75rem;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:.5rem;}
.social-notes-wrap{margin-top:.4rem;}
.social-notes{width:100%;padding:.45rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);resize:vertical;}
.social-notes:focus{outline:none;border-color:var(--accent-primary);}
.sp-photo-upload-area{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:.75rem;}
.sp-photo-circle{width:80px;height:80px;border-radius:50%;background:var(--bg-secondary);border:2px dashed var(--border);background-size:cover;background-position:center;cursor:pointer;transition:all .25s;position:relative;}
.sp-photo-circle::after{content:'＋';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--text-muted);transition:opacity .2s;pointer-events:none;border-radius:50%;}
.sp-photo-circle:hover{border-color:var(--accent-primary);}
.sp-photo-circle.has-photo{border-style:solid;border-color:var(--accent-primary);}
.sp-photo-circle.has-photo::after{opacity:0;}

/* ============================================
   FINANCE AUTRES RADIOS
   ============================================ */
.fin-autre-radios{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.5rem;}
.fin-radio-label{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-md);color:var(--text-secondary);cursor:pointer;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;transition:all .2s;}
.fin-radio-label:has(input:checked){border-color:var(--accent-primary);background:rgba(0,212,255,.06);color:var(--accent-primary);}
.fin-radio-label input[type="radio"]{accent-color:var(--accent-primary);}
.fin-radio-label input[type="checkbox"]{accent-color:var(--accent-primary);}

/* ============================================
   IDEA CARDS
   ============================================ */
.idea-top-bar{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap;}
.idea-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1rem;margin-bottom:1rem;transition:all .2s;}
.idea-card:hover{border-color:rgba(0,212,255,.15);}
.idea-card.idea-rerate-due{border-left:3px solid var(--accent-warning);animation:pulse-border 2s ease-in-out infinite;}
@keyframes pulse-border{0%,100%{border-left-color:var(--accent-warning);}50%{border-left-color:var(--accent-secondary);}}
.idea-card-top{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem;flex-wrap:wrap;}
.idea-cat-badge,.idea-status-badge{font-size:var(--fs-sm);font-weight:700;padding:.15rem .45rem;border-radius:6px;background:rgba(255,255,255,.04);}
.idea-age{margin-left:auto;font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.idea-card-main{margin-bottom:.5rem;}
.idea-title{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin-bottom:.2rem;}
.idea-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.4;}
.idea-score-bar{position:relative;height:22px;background:var(--bg-secondary);border-radius:11px;overflow:hidden;margin-bottom:.5rem;}
.idea-score-fill{height:100%;border-radius:11px;transition:width .3s;}
.idea-score-label{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-primary);}
.idea-card-footer{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;}
.idea-status-sel{padding:.25rem .4rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-input);color:var(--text-secondary);font-size:var(--fs-sm);font-family:'Manrope',sans-serif;cursor:pointer;}
.idea-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:.2rem .45rem;font-size:var(--fs-sm);cursor:pointer;color:var(--text-muted);transition:all .2s;}
.idea-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.idea-btn-rerate{border-color:var(--accent-warning);color:var(--accent-warning);animation:pulse-border 2s ease-in-out infinite;}
.idea-btn-del{margin-left:auto;}
.idea-btn-del:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}
.idea-ratings-history{display:flex;gap:.3rem;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);}
.idea-rating-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;color:#fff;}
.idea-slider{width:100%;margin-top:.3rem;accent-color:var(--accent-primary);height:36px;cursor:pointer;}
.idea-slider::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--bg-card);box-shadow:0 2px 6px rgba(0,0,0,.3);}
.idea-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--border);}
.idea-slider::-moz-range-thumb{width:28px;height:28px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:2px solid var(--bg-card);}
.idea-slider::-moz-range-track{height:6px;border-radius:3px;background:var(--border);}
.idea-excitement-preview{font-size:var(--fs-lg)!important;padding:.5rem!important;margin:.3rem 0 .6rem!important;background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:8px;text-align:center;font-weight:700;transition:all .3s;}
.idea-excitement-preview.exc-hot{color:var(--accent-secondary)!important;border-color:rgba(255,107,157,.3)!important;background:rgba(255,107,157,.06)!important;}
.idea-excitement-preview.exc-warm{color:var(--accent-warning)!important;border-color:rgba(255,179,71,.3)!important;background:rgba(255,179,71,.06)!important;}
.idea-excitement-preview.exc-neutral{color:var(--text-secondary)!important;border-color:var(--border)!important;background:var(--bg-secondary)!important;}
.idea-excitement-preview.exc-cold{color:var(--accent-primary)!important;border-color:rgba(0,212,255,.3)!important;background:rgba(0,212,255,.06)!important;}

@media(max-width:600px){
    .social-card-header{flex-wrap:wrap;}
    .social-card-actions{width:100%;justify-content:flex-end;margin-top:.3rem;}
    .idea-card-footer{flex-wrap:wrap;}
    .fin-autre-radios{grid-template-columns:1fr;}
}

/* ============================================
   NEW: Idea card layout (freshness system)
   ============================================ */
.idea-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;}
.idea-card-cat{font-size:var(--fs-xs);font-weight:700;padding:.15rem .45rem;border-radius:6px;background:rgba(0,212,255,.08);color:var(--accent-primary);}
.idea-card-freshness{font-size:var(--fs-sm);color:var(--text-muted);}
.idea-card-title{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin-bottom:.25rem;}
.idea-card-desc{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.4;margin-bottom:.4rem;}
.idea-card-meta{display:flex;gap:.75rem;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-muted);font-family:'Space Mono',monospace;margin-bottom:.5rem;}
.idea-card-actions{display:flex;gap:.3rem;flex-wrap:wrap;}
.idea-rerate{background:rgba(255,179,71,.06);border:1px solid rgba(255,179,71,.15);border-radius:10px;padding:.65rem;margin:.5rem 0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:var(--fs-sm);color:var(--text-secondary);}
.idea-rerate-slider{flex:1;min-width:100px;accent-color:var(--accent-warning);}
.idea-abandoned{opacity:.5;border-left:3px solid var(--accent-secondary);}
.idea-started{border-left:3px solid var(--accent-success);}

/* ============================================
   NEW: Routine header with edit button
   ============================================ */
.routine-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;}
.routine-header .hub-card-title{margin-bottom:0;}

/* ============================================
   Social: 2-column on wide screens
   ============================================ */
@media(min-width:1350px){
    #socialList{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
    .social-card{margin-bottom:0;}
}
.social-top-bar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-bottom:1rem;}
.social-top-bar .fin-submit{width:auto;}
.social-filters{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;flex:1;}
.social-filter-group{display:flex;align-items:center;gap:.3rem;}
.social-filter-group label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);white-space:nowrap;}
.social-sort-dir{width:32px;height:32px;border:1px solid var(--border);border-radius:7px;background:var(--bg-secondary);color:var(--text-secondary);font-size:var(--fs-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;}
.social-sort-dir:hover{border-color:var(--accent-primary);color:var(--accent-primary);}

.social-filter-toggle{display:none;padding:.45rem .8rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.social-filter-toggle:hover,.social-filter-toggle.active{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.05);}
@media(max-width:768px){
    .social-filter-toggle{display:inline-flex;}
    .social-filters{display:none !important;}
    .social-filters.open{display:flex !important;width:100%;}
    .social-top-bar{flex-wrap:wrap;}
}

.sm-group-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem;min-height:32px;}
.sm-group-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .55rem;background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.25);border-radius:16px;font-size:var(--fs-sm);font-weight:600;color:var(--accent-primary);}
.sm-group-remove{background:none;border:none;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;padding:0 .15rem;transition:color .15s;}
.sm-group-remove:hover{color:var(--accent-secondary);}
.sm-group-add-wrap{position:relative;display:inline-block;}
.sm-group-add-btn{padding:.25rem .6rem;border:1px dashed var(--border);border-radius:16px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all .15s;font-family:'Manrope',sans-serif;}
.sm-group-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.sm-group-dropdown{display:none;position:absolute;top:100%;left:0;margin-top:.3rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.2);z-index:50;min-width:180px;max-height:200px;overflow-y:auto;padding:.3rem;}
.sm-group-dropdown.open{display:block;}
.sm-group-option{padding:.4rem .6rem;border-radius:6px;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s;}
.sm-group-option:hover{background:var(--bg-hover);color:var(--accent-primary);}

/* ============================================
   DAY PLANNER
   ============================================ */
.planner-date-row{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;}
.planner-date-input{max-width:170px;text-align:center;font-weight:700;font-size:var(--fs-md);}
.planner-today-btn{padding:.35rem .7rem;border:1px solid var(--accent-primary);border-radius:7px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;white-space:nowrap;}
.planner-today-btn:hover{background:rgba(0,212,255,.15);}
.planner-add-row{display:flex;gap:.4rem;align-items:center;margin-bottom:1.25rem;flex-wrap:wrap;}
.planner-time-input{max-width:100px;text-align:center;font-size:var(--fs-md);padding:.4rem .5rem;}
.planner-time-sep{color:var(--text-muted);font-size:var(--fs-md);font-weight:700;}
.planner-task-input{flex:1;min-width:140px;font-size:var(--fs-md);padding:.4rem .6rem;}
.planner-add-btn{max-width:50px;padding:.4rem;font-size:1rem;}
.planner-progress{margin-bottom:.75rem;}
.planner-progress-bar{height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden;margin-bottom:.25rem;}
.planner-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success));border-radius:3px;transition:width .3s;}
.planner-progress-text{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);}
.planner-timeline{display:flex;flex-direction:column;gap:0;}

.planner-det-timeline{margin:.5rem 0;padding-left:1.2rem;}
.planner-det-timeline .det-item{padding:.55rem .75rem;cursor:default;gap:.5rem;}
.planner-det-left{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0;}
.planner-det-left .det-dur{font-size:var(--fs-xs);letter-spacing:.02em;}
.planner-det-left .det-name{font-size:var(--fs-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.planner-struck{text-decoration:line-through;opacity:.6;}
.planner-det-right{display:flex;align-items:center;gap:.35rem;flex-shrink:0;}
.planner-det-dur{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;opacity:.7;}
.planner-item-done{opacity:.65;}
.planner-item-current{box-shadow:0 0 14px rgba(255,107,157,.12);}
.planner-item-past{opacity:.55;}
.planner-star-btn{width:26px;height:26px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;opacity:.4;}
.planner-star-btn:hover{opacity:1;border-color:var(--accent-warning);color:var(--accent-warning);background:rgba(255,179,71,.05);}
.planner-star-btn.starred{opacity:1;color:var(--accent-warning);border-color:rgba(255,179,71,.4);background:rgba(255,179,71,.08);}
.planner-check-btn{width:26px;height:26px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;}
.planner-check-btn:hover{border-color:var(--accent-success);color:var(--accent-success);background:rgba(0,255,136,.05);}
.planner-del-btn{width:26px;height:26px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text-muted);font-size:1rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;opacity:.4;}
.planner-del-btn:hover{opacity:1;color:var(--accent-secondary);}

@media(max-width:600px){
    .planner-add-row{flex-wrap:wrap;}
    .planner-time-input{max-width:80px;}
    .planner-det-timeline{padding-left:1rem;}
    .planner-det-left .det-name{font-size:var(--fs-md);}
    .planner-det-dur{display:none;}
}

/* ============================================
   Lock photo preview with blur
   ============================================ */

/* ============================================
   Panty gallery
   ============================================ */
.panty-person-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* ============================================
   Meal table: mobile day navigation
   ============================================ */
.meal-day-nav{display:none;align-items:center;justify-content:center;gap:1rem;margin-bottom:.75rem;padding:.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;}
.meal-day-nav button{background:none;border:1px solid var(--border);border-radius:8px;padding:.3rem .6rem;cursor:pointer;color:var(--text-primary);font-size:var(--fs-lg);transition:all .2s;}
.meal-day-nav button:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.meal-day-label{font-weight:700;font-size:var(--fs-lg);min-width:80px;text-align:center;}
@media(max-width:768px){
    .meal-day-nav{display:flex;}
    .meal-table th.mobile-hidden,.meal-table td.mobile-hidden{display:none;}
    .meal-label-col{min-width:60px;}
}

/* ============================================
   Todo header row fix
   ============================================ */
.todo-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.25rem;}
.todo-header-row .hub-card-title{margin-bottom:0;}

/* ============================================
   Ideas Gestation System
   ============================================ */
.idea-gestation-counter{display:flex;align-items:center;gap:.5rem;padding:1rem;background:linear-gradient(135deg,rgba(255,179,71,.06),rgba(0,212,255,.04));border:1px solid rgba(255,179,71,.2);border-radius:12px;margin-bottom:.75rem;margin-top:.75rem;cursor:default;}
.idea-gestation-icon{font-size:1.3rem;animation:spin-slow 4s linear infinite;}
@keyframes spin-slow{from{transform:rotate(0deg)}}
.idea-gestation-text{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);}
.idea-gestation-text strong{color:var(--accent-warning);}

.idea-review-card{background:var(--bg-card);border:1px solid rgba(255,179,71,.25);border-radius:12px;padding:1.1rem;margin-bottom:1rem;border-left:3px solid var(--accent-warning);}
.idea-review-card.idea-review-final{border-left-color:var(--accent-primary);}
.idea-review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;}
.idea-review-title{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);}
.idea-review-stage{font-size:var(--fs-xs);font-weight:700;padding:.2rem .5rem;border-radius:6px;background:rgba(255,179,71,.1);color:var(--accent-warning);}
.idea-review-stage.final{background:rgba(0,212,255,.1);color:var(--accent-primary);}
.idea-review-desc{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:.6rem;line-height:1.5;}
.idea-review-question{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.65rem;}
.idea-review-question label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);}
.idea-review-question input[type=range]{width:100%;accent-color:var(--accent-warning);}
.idea-review-question-val{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--accent-warning);text-align:right;}
.idea-review-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem;}
.idea-friend-switch{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:rgba(0,212,255,.05);border:1px solid rgba(0,212,255,.15);border-radius:8px;margin-bottom:.5rem;}
.idea-friend-switch label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);flex:1;}
.idea-friend-switch .tire-toggle{flex-shrink:0;}

.idea-score-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.5rem;margin:.65rem 0;}
.idea-score-box{text-align:center;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;}
.idea-score-box-val{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;}
.idea-score-box-label{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.15rem;font-weight:600;}
.idea-suggestion{padding:.75rem;border-radius:10px;margin:.65rem 0;font-size:var(--fs-md);font-weight:600;}
.idea-suggestion.go{background:rgba(0,255,136,.08);border:1px solid rgba(0,255,136,.2);color:var(--accent-success);}
.idea-suggestion.maybe{background:rgba(255,179,71,.08);border:1px solid rgba(255,179,71,.2);color:var(--accent-warning);}
.idea-suggestion.nogo{background:rgba(255,107,157,.08);border:1px solid rgba(255,107,157,.2);color:var(--accent-secondary);}

.idea-history-badge{font-size:var(--fs-xs);font-weight:700;padding:.15rem .4rem;border-radius:5px;}
.idea-badge-kept{background:rgba(0,255,136,.1);color:var(--accent-success);}
.idea-badge-trashed{background:rgba(255,107,157,.1);color:var(--accent-secondary);}
.idea-badge-gestating{background:rgba(255,179,71,.1);color:var(--accent-warning);}
.idea-badge-extended{background:rgba(0,212,255,.1);color:var(--accent-primary);}

/* ============================================
   HUB TWO-COLUMN LAYOUTS (desktop)
   ============================================ */
.hub-widgets-trackers-row{display:flex;gap:1rem;margin-bottom:1rem;align-items:stretch;}
.hub-widgets-col{flex:1;display:flex;flex-direction:column;gap:1rem;min-width:0;}
.hub-widgets-col>.hub-card,.hub-widgets-col>.hub-test-widget{flex:1;}
.hub-trackers-col{flex:1;display:flex;min-width:0;}
.hub-trackers-col>.hub-card{flex:1;min-width:0;}
.hub-main-row{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem;}
.hub-left-col{flex:1;display:flex;flex-direction:column;gap:1rem;min-width:0;}
.hub-right-col{flex:1;display:flex;flex-direction:column;gap:1rem;min-width:0;}

.trackers{display:flex;flex-wrap:wrap;gap:.5rem;}
.tracker{min-width:0;flex:1 1 120px;position:relative;padding-bottom:1.6rem;}
.tracker .tracker-streak{position:absolute;bottom:.35rem;left:.5rem;margin-top:0;}

@media(max-width:768px){
    .hub-widgets-trackers-row{flex-direction:column;}
    .hub-main-row{display:grid;grid-template-columns:1fr;gap:1rem;}
    .trackers{flex-direction:column;}
    .tracker{flex:none;width:100%;position:relative;padding-bottom:1.6rem;}
    .hub-card{min-width:0;overflow:hidden;}
    .car-stat-grid{overflow:hidden;}
}

.hub-quicknote-card{display:flex;flex-direction:column;}
.quicknote-row{display:flex;gap:.4rem;align-items:flex-start;}
.quicknote-input{flex:1;padding:.5rem .65rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-md);font-family:'Manrope',sans-serif;outline:none;transition:border-color .2s;resize:vertical;min-height:60px;}
.quicknote-input:focus{border-color:var(--accent-primary);}
.quicknote-save{width:38px;height:38px;border:1px solid var(--accent-primary);border-radius:8px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.quicknote-save:hover{background:rgba(0,212,255,.15);}

/* ============================================
   SIDEBAR QUICK ACTIONS
   ============================================ */
.sb-quick-actions{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.25rem;}
.sb-quick-row{display:flex;gap:.3rem;}
.sb-quick-input{flex:1;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-sm);font-family:'Manrope',sans-serif;outline:none;transition:border-color .2s;}
.sb-quick-input:focus{border-color:var(--accent-primary);}
.sb-quick-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sb-quick-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.05);}

/* ============================================
   NOTES PAGE
   ============================================ */
.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.note-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s;position:relative;min-height:80px;}
.note-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,0,0,.1);}
.note-card-title{font-size:var(--fs-lg);font-weight:800;color:var(--text-primary);margin-bottom:.3rem;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;padding-right:1.5rem;word-break:break-word;line-height:1.3;}
.note-card-preview{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.note-card-date{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.4rem;}
.note-card-del{position:absolute;top:.6rem;right:.6rem;background:none;border:none;font-size:1rem;color:var(--text-muted);cursor:pointer;opacity:.3;transition:all .2s;padding:.1rem .3rem;}
.note-card-del:hover{opacity:1;color:var(--accent-secondary);}
.note-card-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.35rem;}
.note-tag{font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);background:rgba(0,212,255,.08);padding:.1rem .4rem;border-radius:4px;white-space:nowrap;}
.notes-tag-bar{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.75rem;}
.notes-tag-chip{padding:.25rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;cursor:pointer;transition:all .15s;font-family:'Manrope',sans-serif;}
.notes-tag-chip:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.notes-tag-chip.active{background:rgba(0,212,255,.12);border-color:var(--accent-primary);color:var(--accent-primary);}
.note-editor-actions{display:flex;justify-content:flex-end;margin-top:.75rem;}
.note-trash-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:.4rem;}
.note-trash-info{flex:1;}
.note-trash-title{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);display:block;}
.note-trash-days{font-size:var(--fs-xs);color:var(--text-muted);}
.note-trash-recover{padding:.3rem .7rem;border:1px solid var(--accent-primary);border-radius:6px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.note-trash-recover:hover{background:rgba(0,212,255,.15);}

.note-view-actions{display:flex;gap:.4rem;justify-content:flex-end;margin-bottom:.75rem;}
.note-view-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:7px;background:var(--bg-secondary);cursor:pointer;font-size:var(--fs-md);display:flex;align-items:center;justify-content:center;transition:all .2s;}
.note-view-btn:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.05);}
.note-view-del:hover{border-color:var(--accent-secondary);background:rgba(255,107,157,.05);}
.note-view-body{font-size:var(--fs-md);line-height:1.65;color:var(--text-primary);}
.note-view-body h1{font-size:1.2rem;font-weight:800;margin:.4rem 0;}
.note-view-body h2{font-size:1rem;font-weight:700;margin:.35rem 0;}
.note-view-body h3{font-size:var(--fs-lg);font-weight:700;color:var(--text-secondary);margin:.3rem 0;}
.note-view-body ul,.note-view-body ol{margin:.3rem 0 .3rem 1.2rem;}
.note-view-body a{color:var(--accent-primary);text-decoration:underline;}

.hub-recent-notes{display:flex;flex-direction:column;gap:.3rem;margin-top:.6rem;}
.hub-note-item{padding:.4rem .55rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:7px;cursor:pointer;transition:all .15s;}
.hub-note-item:hover{border-color:var(--accent-primary);}
.hub-note-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hub-note-preview{font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:pre-line;word-break:break-word;}
.hub-notes-link{display:block;text-align:center;margin-top:.5rem;font-size:var(--fs-sm);font-weight:600;color:var(--accent-primary);cursor:pointer;text-decoration:none;transition:opacity .2s;}
.hub-notes-link:hover{opacity:.7;}

/* ============================================
   BUCKET LIST
   ============================================ */
.bucket-progress{margin-bottom:1rem;}
.bucket-progress-bar{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin-bottom:.3rem;}
.bucket-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success));border-radius:4px;transition:width .3s ease;}
.bucket-progress-text{font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-muted);}
.bucket-section-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin:.75rem 0 .4rem;padding-bottom:.2rem;border-bottom:1px solid var(--border);}
.bucket-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .55rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:.35rem;transition:all .2s;}
.bucket-item:hover{border-color:var(--accent-primary);}
.bucket-item.bucket-done{opacity:.6;}
.bucket-item.bucket-done .bucket-text{text-decoration:line-through;color:var(--text-muted);}
.bucket-check,.bucket-uncheck{width:26px;height:26px;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);flex-shrink:0;}
.bucket-check:hover{border-color:var(--accent-success);color:var(--accent-success);background:rgba(0,255,136,.05);}
.bucket-uncheck{border-color:var(--accent-primary);color:var(--accent-primary);font-size:var(--fs-xs);}
.bucket-uncheck:hover{background:rgba(0,212,255,.05);}
.bucket-text{font-size:var(--fs-md);color:var(--text-primary);flex:1;}
.bucket-date{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--accent-success);}
.bucket-del{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;opacity:.3;transition:all .2s;padding:.1rem .3rem;}
.bucket-del:hover{opacity:1;color:var(--accent-secondary);}

/* ============================================
   CHASTITY BINGO
   ============================================ */
.bingo-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.bingo-level{display:flex;align-items:center;gap:.5rem;}
.bingo-level-badge{font-size:var(--fs-sm);font-weight:700;}
.bingo-score{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);}
.bingo-header-actions{display:flex;gap:.25rem;}
.bingo-edit-btn{padding:.25rem .5rem;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.bingo-edit-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.bingo-progress-bar{height:6px;background:var(--bg-secondary);border-radius:3px;margin-bottom:.3rem;position:relative;overflow:visible;}
.bingo-progress-fill{height:100%;border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1);}
.bingo-progress-marker{position:absolute;top:-2px;width:2px;height:10px;background:var(--text-muted);border-radius:1px;transform:translateX(-50%);opacity:.5;}
.bingo-next-level{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.6rem;}
.bingo-next-level strong{color:var(--accent-primary);}
.bingo-recent{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap;margin-bottom:.6rem;padding:.4rem .5rem;background:var(--bg-secondary);border-radius:8px;}
.bingo-recent-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;flex-shrink:0;}
.bingo-recent-tag{font-size:var(--fs-xs);color:var(--accent-success);font-weight:600;padding:.1rem .35rem;background:rgba(0,255,136,.06);border-radius:4px;}
.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;}
.bingo-cell{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.55rem .3rem;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.15rem;}
.bingo-cell:hover{background:var(--bg-hover);border-color:var(--accent-primary);transform:translateY(-1px);}
.bingo-cell:active{transform:scale(.95);}
.bingo-cell.bingo-done{background:rgba(0,255,136,.08) !important;border-color:rgba(0,255,136,.3);}
.bingo-label{font-weight:700;color:var(--text-primary);font-size:var(--fs-xs);line-height:1.2;word-break:break-word;}
.bingo-done .bingo-label{text-decoration:line-through;color:var(--accent-success);}
.bingo-check{position:absolute;top:.2rem;right:.25rem;font-size:var(--fs-xs);color:var(--accent-success);font-weight:700;}
.bingo-done-date{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.bingo-tap-hint{font-size:var(--fs-xs);color:var(--text-muted);opacity:.35;text-transform:uppercase;letter-spacing:.05em;}
.bingo-complete-banner{text-align:center;padding:.75rem;margin-top:.75rem;background:linear-gradient(135deg,rgba(255,215,0,.1),rgba(255,107,157,.1));border:1px solid rgba(255,215,0,.3);border-radius:10px;font-size:var(--fs-sm);font-weight:700;color:#FFD700;animation:bingoPulse 2s ease-in-out infinite;}
@keyframes bingoPop{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes bingoPulse{0%,100%{opacity:1}50%{opacity:.7}}

@media(max-width:600px){
    .bingo-grid{grid-template-columns:repeat(4,1fr);gap:.25rem;}
    .bingo-cell{min-height:44px;padding:.4rem .2rem;}
    .bingo-label{font-size:var(--fs-xs);}
    .notes-grid{grid-template-columns:1fr;}
}

/* ============================================
   DAILY SCORE WIDGET
   ============================================ */

.todo-prolong{padding:.15rem .4rem;border:1px solid #ffb347;border-radius:6px;background:rgba(255,179,71,.1);color:#ffb347;font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:all .2s;flex-shrink:0;font-family:'Manrope',sans-serif;}
.todo-prolong:hover{background:rgba(255,179,71,.2);transform:scale(1.05);}
.todo-prolonged-icon{font-size:var(--fs-md);flex-shrink:0;opacity:.7;}
.todo-timer{display:inline-block;margin-left:.4rem;font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-secondary);background:rgba(255,107,157,.08);padding:.1rem .35rem;border-radius:4px;}
.todo-timer-expired{color:var(--accent-secondary);animation:pulse-urgent 1s infinite;}
@keyframes pulse-urgent{50%{opacity:.5}}

.hub-tacos-card{padding:1rem;margin-bottom:1rem;}
.tacos-widget-inner{display:flex;flex-direction:column;gap:.4rem;}
.tacos-unlocked{cursor:pointer;}
.tacos-header{display:flex;align-items:center;gap:.5rem;}
.tacos-icon{font-size:1.3rem;}
.tacos-title{font-weight:700;font-size:var(--fs-lg);color:var(--text-primary);flex:1;}
.tacos-days-left{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);}
.tacos-bar-wrap{height:10px;background:var(--bg-secondary);border-radius:5px;overflow:hidden;}
.tacos-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#ffb347,#ff9f1c);transition:width .6s cubic-bezier(.34,1.56,.64,1);}
.tacos-bar-full{background:linear-gradient(90deg,#a6e3a1,#40c057);animation:tacos-glow 1.5s ease-in-out infinite alternate;}
@keyframes tacos-glow{0%{box-shadow:0 0 4px rgba(166,227,161,.3)}100%{box-shadow:0 0 12px rgba(166,227,161,.6)}}
.tacos-status{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;}
.tacos-ready{color:var(--accent-success);font-weight:700;}
.tacos-last{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.tacos-motivation{font-size:var(--fs-xs);color:var(--text-secondary);font-style:italic;padding:.3rem .4rem;background:rgba(255,179,71,.05);border-radius:6px;border-left:2px solid #ffb347;}

.hub-appart-card{padding:1rem;margin-bottom:1rem;}
.appart-widget-inner{display:flex;flex-direction:column;gap:.4rem;}
.appart-header{display:flex;align-items:center;gap:.5rem;}
.appart-icon{font-size:1.3rem;}
.appart-title{font-weight:700;font-size:var(--fs-lg);color:var(--text-primary);flex:1;}
.appart-days-left{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);}
.appart-bar-wrap{height:10px;background:var(--bg-secondary);border-radius:5px;overflow:hidden;}
.appart-bar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transition:width .6s cubic-bezier(.34,1.56,.64,1);}
.appart-bar-done{background:linear-gradient(90deg,var(--accent-success),#40c057);animation:appart-glow 1.5s ease-in-out infinite alternate;}
@keyframes appart-glow{}
.appart-status{font-size:var(--fs-sm);color:var(--text-muted);font-weight:600;}
.appart-ready{color:var(--accent-success);font-weight:700;}
.appart-date{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}

.hub-idea-review-card{padding:.75rem 1rem;margin-bottom:1rem;}
.idea-review-widget-inner{display:flex;flex-direction:column;gap:.4rem;}
.idea-rw-header{font-size:var(--fs-md);color:var(--text-primary);margin-bottom:.2rem;}
.idea-rw-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.35rem .5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;}
.idea-rw-item:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.04);}
.idea-rw-verdict{border-color:var(--accent-warning);background:rgba(255,179,71,.04);}
.idea-rw-verdict:hover{border-color:var(--accent-warning);background:rgba(255,179,71,.08);}
.idea-rw-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.idea-rw-stage{font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);white-space:nowrap;}
.hub-gym-session-card{padding:1rem;border-color:rgba(255,179,71,.25);background:rgba(255,179,71,.04);}
.hub-gym-session-inner{display:flex;align-items:center;gap:.7rem;}
.hub-gym-session-icon{font-size:1.3rem;}
.hub-gym-session-text{flex:1;}
.hub-gym-session-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;}
.hub-gym-session-name{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.hub-gym-session-resume{font-size:var(--fs-sm);font-weight:600;color:var(--accent-primary);background:rgba(0,212,255,.1);border:1px solid var(--accent-primary);border-radius:6px;padding:.3rem .7rem;cursor:pointer;white-space:nowrap;}

/* ============================================
   INTERACTIVE ROUTINES
   ============================================ */
.routine-badge{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);background:rgba(0,212,255,.1);border-radius:10px;padding:.1rem .4rem;margin-left:.3rem;}
.routine-item{padding:.3rem .4rem;border-radius:7px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.5rem;user-select:none;}
.routine-item:hover{background:var(--bg-hover);}
.routine-item.routine-done{opacity:.65;}
.routine-item.routine-done .routine-text{text-decoration:line-through;color:var(--text-muted);}
.routine-cb{font-size:var(--fs-md);flex-shrink:0;width:1.2rem;text-align:center;transition:transform .2s;}
.routine-text{font-size:var(--fs-sm);color:var(--text-secondary);}
.routine-item:hover .routine-cb{transform:scale(1.15);}

.tracker-all-done{margin-top:.5rem;padding:.5rem .75rem;background:linear-gradient(135deg,rgba(0,255,136,.08),rgba(0,212,255,.06));border:1px solid rgba(0,255,136,.25);border-radius:9px;font-size:var(--fs-sm);font-weight:700;color:var(--accent-success);text-align:center;animation:popIn .4s cubic-bezier(.34,1.56,.64,1);}

.tracker-due{font-size:var(--fs-xs);color:var(--accent-warning);font-weight:700;margin-top:.25rem;}
.tracker-due-done{color:var(--accent-success);}

/* ============================================
   WIKI MODULE
   ============================================ */

#smPantyWrap{display:flex;justify-content:center;margin-bottom:.6rem;}
.sm-panty-row{display:flex;align-items:center;gap:.55rem;padding:.45rem 0;}
.sm-panty-check{width:26px;height:26px;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700;flex-shrink:0;}
.sm-panty-check:hover{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.05);}
.sm-panty-done{border-color:var(--accent-success,#a6e3a1)!important;color:var(--accent-success,#a6e3a1)!important;background:rgba(0,255,136,.08)!important;}
.sm-panty-label{font-size:var(--fs-md);color:var(--text-secondary);cursor:default;}

/* ============================================
   ANALYTICS DASHBOARD
   ============================================ */
.analytics-summary{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.2rem;}
.analytics-stat-card{flex:1;min-width:120px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.8rem;text-align:center;transition:all .2s;}
.analytics-stat-card:hover{border-color:var(--accent-primary);transform:translateY(-1px);}
.analytics-stat-val{font-family:'Space Mono',monospace;font-size:1.3rem;font-weight:700;color:var(--accent-primary);}
.analytics-stat-label{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.2rem;}
.analytics-card{padding:1rem;margin-bottom:1rem;}
.analytics-bars{display:flex;flex-direction:column;gap:.45rem;}
.analytics-bar-row{display:flex;align-items:center;gap:.5rem;}
.analytics-bar-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);min-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.analytics-bar-track{flex:1;height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;}
.analytics-bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transition:width .5s ease;}
.analytics-bar-time{background:linear-gradient(90deg,var(--ctp-teal,#81c8be),var(--ctp-sky,#99d1db));}
.analytics-bar-feat{background:linear-gradient(90deg,var(--ctp-peach,#ef9f76),var(--ctp-yellow,#e5c890));}
.analytics-bar-low{background:var(--text-muted);opacity:.5;}
.analytics-bar-val{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);min-width:40px;text-align:right;}
.analytics-empty{text-align:center;padding:1rem 0;font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;}
.analytics-week-chart{display:flex;gap:.5rem;align-items:flex-end;height:140px;padding-top:.5rem;}
.analytics-week-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem;height:100%;}
.analytics-week-bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;}
.analytics-week-bar{width:100%;max-width:28px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--accent-primary),var(--accent-secondary));transition:height .5s ease;min-height:3px;}
.analytics-week-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;white-space:nowrap;}
.analytics-week-val{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary);}

/* ============================================
   ROADMAP
   ============================================ */
.rm-header{display:flex;justify-content:flex-start;margin-bottom:1rem;}
.rm-add-btn{max-width:180px;padding:.45rem .85rem;font-size:var(--fs-sm);}
.rm-timeline{position:relative;padding-left:2rem;}

.rm-milestone{position:relative;margin-bottom:1.5rem;padding-left:1.5rem;}
.rm-milestone:last-child .rm-line{display:none;}
.rm-dot{position:absolute;left:-2rem;top:.75rem;width:14px;height:14px;border-radius:50%;z-index:2;border:2px solid var(--bg-card);}
.rm-line{position:absolute;left:calc(-2rem + 5px);top:1.5rem;bottom:-1.5rem;width:2px;z-index:1;opacity:.5;}
.rm-complete .rm-card{opacity:.6;}
.rm-complete .rm-title{text-decoration:line-through;}

.rm-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s;}
.rm-card:hover{border-color:rgba(0,212,255,.3);box-shadow:0 4px 16px rgba(0,0,0,.1);}
.rm-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;}
.rm-card-title-row{display:flex;align-items:baseline;gap:.5rem;flex:1;min-width:0;}
.rm-version{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;flex-shrink:0;}
.rm-title{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin:0;line-height:1.3;}
.rm-card-actions{display:flex;gap:.3rem;flex-shrink:0;}
.rm-edit-btn,.rm-del-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;cursor:pointer;font-size:var(--fs-sm);padding:0;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--text-muted);}
.rm-edit-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.06);}
.rm-del-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);background:rgba(255,107,157,.06);}
.rm-desc{font-size:var(--fs-sm);color:var(--text-secondary);margin:.4rem 0 0;line-height:1.4;}
.rm-date{font-size:var(--fs-xs);color:var(--accent-primary);font-weight:600;margin-top:.35rem;}

.rm-progress{height:4px;background:var(--bg-card);border-radius:2px;overflow:hidden;margin-top:.6rem;}
.rm-progress-bar{height:100%;border-radius:2px;transition:width .4s ease;}
.rm-progress-label{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.2rem;font-weight:600;}

.rm-tasks{display:flex;flex-direction:column;gap:.2rem;margin-top:.5rem;}
.rm-task{display:flex;align-items:center;gap:.4rem;padding:.2rem 0;font-size:var(--fs-sm);}
.rm-task-done .rm-task-text{text-decoration:line-through;color:var(--text-muted);}
.rm-task-check{width:22px;height:22px;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0;padding:0;}
.rm-task-check:hover{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.05);}
.rm-task-done .rm-task-check{border-color:var(--accent-success,#a6e3a1)!important;color:var(--accent-success,#a6e3a1)!important;background:rgba(0,255,136,.08)!important;}
.rm-task-text{flex:1;color:var(--text-primary);line-height:1.3;}
.rm-task-del{width:22px;height:22px;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);padding:0;display:flex;align-items:center;justify-content:center;opacity:.3;transition:all .15s;flex-shrink:0;}
.rm-task-del:hover{opacity:1;border-color:var(--accent-secondary);color:var(--accent-secondary);background:rgba(255,107,157,.06);}

.rm-add-task-row{display:flex;gap:.3rem;margin-top:.4rem;}
.rm-task-input{flex:1;padding:.3rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-sm);outline:none;font-family:inherit;transition:border-color .2s;}
.rm-task-input:focus{border-color:var(--accent-primary);}
.rm-task-add-btn{width:26px;height:26px;border:1px solid var(--accent-primary);border-radius:6px;background:rgba(0,212,255,.06);color:var(--accent-primary);font-size:var(--fs-md);font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .15s;}
.rm-task-add-btn:hover{background:rgba(0,212,255,.15);}

@media(max-width:600px){.rm-timeline{padding-left:1.5rem;}.rm-dot{left:-1.5rem;width:12px;height:12px;}.rm-line{left:calc(-1.5rem + 4px);}.rm-milestone{padding-left:1rem;}}

/* ============================================
   KANBAN
   ============================================ */
.kb-add-row{display:flex;gap:.4rem;margin-bottom:1rem;}
.kb-board{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;min-height:200px;}
.kb-column{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;min-height:250px;}
.kb-col-header{display:flex;align-items:center;gap:.35rem;padding:.65rem .75rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-secondary);border-radius:12px 12px 0 0;z-index:1;}
.kb-col-icon{font-size:var(--fs-md);}
.kb-col-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;flex:1;}
.kb-col-count{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;}
.kb-col-body{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:.4rem;overflow-y:auto;min-height:80px;transition:background .2s;}
.kb-drop-active{background:rgba(0,212,255,.04);border-radius:0 0 12px 12px;}
.kb-empty{text-align:center;font-size:var(--fs-xs);color:var(--text-muted);padding:1.5rem .5rem;opacity:.6;}

.kb-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;cursor:grab;transition:border-color .2s,box-shadow .2s,transform .15s,opacity .2s;position:relative;}
.kb-card:hover{border-color:rgba(0,212,255,.3);box-shadow:0 2px 10px rgba(0,0,0,.1);}
.kb-card:active{cursor:grabbing;}
.kb-card.kb-dragging{opacity:.4;transform:rotate(2deg);}
.kb-card-head{display:flex;align-items:flex-start;gap:.3rem;padding-right:5rem;}
.kb-card-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);line-height:1.3;flex:1;word-break:break-word;}
.kb-card-desc{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.25rem;line-height:1.35;word-break:break-word;}
.kb-card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.35rem;}
.kb-card-age{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);}
.kb-card-actions{position:absolute;top:.4rem;right:.4rem;display:flex;gap:.25rem;}
.kb-move-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:5px;cursor:pointer;font-size:var(--fs-xs);color:var(--text-muted);padding:0;transition:all .15s;line-height:1;display:flex;align-items:center;justify-content:center;background:var(--bg-card);}
.kb-move-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.06);}
.kb-edit-btn,.kb-del-btn{width:24px;height:24px;border:1px solid var(--border);border-radius:5px;background:var(--bg-card);cursor:pointer;font-size:var(--fs-xs);padding:0;display:flex;align-items:center;justify-content:center;transition:all .15s;color:var(--text-muted);}
.kb-edit-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.06);}
.kb-del-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);background:rgba(255,107,157,.06);}

.kb-card-actions{opacity:0;transition:opacity .15s;}.kb-card:hover .kb-card-actions{opacity:1;}
.rm-card-actions{opacity:0;transition:opacity .15s;}.rm-card:hover .rm-card-actions{opacity:1;}

@media(max-width:768px){.kb-board{grid-template-columns:1fr;gap:.5rem;}.kb-column{min-height:120px;}.kb-col-body{min-height:50px;}.kb-card-actions{opacity:1;}.rm-card-actions{opacity:1;}}

.planner-overlap-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem .5rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);cursor:pointer;transition:all .2s;text-align:center;font-family:'Manrope',sans-serif;}
.planner-overlap-btn:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.06);transform:translateY(-1px);}
.planner-overlap-icon{font-size:1.2rem;}
.planner-overlap-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);}
.planner-overlap-sub{font-size:var(--fs-xs);color:var(--text-muted);}
.planner-overlap-cancel{width:100%;padding:.55rem;border:1px solid rgba(255,107,157,.3);border-radius:8px;background:rgba(255,107,157,.06);color:var(--accent-secondary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;}
.planner-overlap-cancel:hover{background:rgba(255,107,157,.12);border-color:var(--accent-secondary);}

.cat-ac-wrap{position:relative;}
.cat-ac-list{display:none;position:absolute;top:100%;left:0;right:0;z-index:999;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;max-height:160px;overflow-y:auto;box-shadow:0 6px 20px rgba(0,0,0,.3);margin-top:2px;}
.cat-ac-item{padding:.45rem .65rem;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:all .15s;border-bottom:1px solid var(--border);}
.cat-ac-item:last-child{border-bottom:none;}
.cat-ac-item:hover{background:rgba(0,212,255,.08);color:var(--accent-primary);}

.sv-prio-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

.schedule-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:16px;border:1px solid var(--border);background:var(--bg-card);overflow-y:auto;max-height:82vh;box-shadow:0 4px 24px rgba(0,0,0,.15);}
.schedule{min-width:800px;position:relative;}
.schedule-header{display:grid;grid-template-columns:56px repeat(7,1fr);background:linear-gradient(135deg,rgba(0,212,255,.06),rgba(255,107,157,.04));border-bottom:2px solid var(--border);position:sticky;top:0;z-index:20;backdrop-filter:blur(8px);}
.corner-cell{padding:.9rem .35rem;text-align:center;font-weight:700;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-right:1px solid var(--border);}
.day-header{padding:.75rem .35rem;text-align:center;font-weight:800;font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);border-right:1px solid rgba(255,255,255,.04);transition:color .2s;}
.day-header:last-child{border-right:none;}
.schedule-body{display:grid;grid-template-columns:56px repeat(7,1fr);position:relative;}
.time-axis{position:relative;background:rgba(0,0,0,.08);border-right:1px solid var(--border);z-index:2;}
.hour-label{position:absolute;left:0;right:0;transform:translateY(-50%);font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);text-align:center;pointer-events:none;opacity:.7;}
.day-column{position:relative;border-right:1px solid rgba(255,255,255,.03);min-width:0;}.day-column:last-of-type{border-right:none;}
.hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid rgba(255,255,255,.04);pointer-events:none;z-index:0;}

.event{position:absolute;left:4px;right:4px;z-index:5;border-radius:8px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.event-travel{background:rgba(100,115,150,.06);border:1px dashed rgba(100,115,150,.18);display:flex;align-items:center;justify-content:center;z-index:4;border-radius:6px;}
.travel-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);text-align:center;padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7;}
.travel-dot{font-size:var(--fs-xs);color:var(--text-muted);opacity:.5;}
.event-activity{background:linear-gradient(145deg,rgba(0,212,255,.1),rgba(0,212,255,.04));border:1px solid rgba(0,212,255,.2);cursor:pointer;padding:6px 8px;backdrop-filter:blur(4px);}
.event-activity::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent-primary);transition:width .3s;z-index:1;border-radius:0 2px 2px 0;}
.event-activity:hover{transform:scale(1.03);box-shadow:0 6px 20px rgba(0,212,255,.25);border-color:var(--accent-primary);z-index:10;}
.event-activity:hover::before{width:100%;opacity:.06;}
.event-header{position:relative;z-index:2;overflow:hidden;}
.event-title{font-weight:800;font-size:var(--fs-sm);color:var(--text-primary);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.event-subtitle{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8;}
.event-time{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);margin-top:2px;opacity:.85;}

.event-diagonal{background:var(--bg-card);border:1px solid rgba(0,212,255,.2);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;padding:8px;transition:transform .2s,box-shadow .2s,border-color .2s;}
.event-diagonal:hover{transform:scale(1.03);box-shadow:0 6px 20px rgba(0,212,255,.25);border-color:var(--accent-primary);z-index:10;}
.diagonal-top{font-weight:700;font-size:var(--fs-sm);color:var(--accent-primary);display:flex;flex-direction:column;gap:1px;}
.diagonal-bottom{font-weight:700;font-size:var(--fs-sm);color:var(--accent-secondary);text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px;}
.diagonal-sub{display:block;font-size:var(--fs-xs);font-weight:500;opacity:.7;}
.diagonal-line{width:140%;height:1px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transform:rotate(-25deg);transform-origin:center;align-self:center;opacity:.4;margin:4px 0;}

.span-overlay{position:absolute;top:0;left:56px;right:0;pointer-events:none;z-index:3;}
.span-event{position:absolute;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;transition:transform .2s;padding:6px 8px;box-sizing:border-box;}
.span-event:hover{transform:scale(1.01);z-index:12;}
.span-title{font-weight:800;font-size:var(--fs-sm);color:var(--text-primary);text-align:center;text-shadow:0 1px 6px rgba(0,0,0,.5);}
.span-subtitle{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-secondary);margin-top:2px;text-shadow:0 1px 4px rgba(0,0,0,.5);opacity:.8;}
.span-morning{background:linear-gradient(145deg,rgba(255,179,71,.18),rgba(255,107,157,.1));border:1px solid rgba(255,179,71,.25);}.span-morning .span-title{color:var(--accent-warning);}
.span-work{background:repeating-linear-gradient(135deg,rgba(43,52,74,.4),rgba(43,52,74,.4) 8px,rgba(35,44,65,.4) 8px,rgba(35,44,65,.4) 16px);border:1px solid rgba(100,115,150,.18);}
.span-work .span-title{font-family:'Space Mono',monospace;font-size:1rem;color:var(--text-muted);letter-spacing:.15em;opacity:.6;}.span-work .span-subtitle{color:var(--text-muted);opacity:.4;}
.span-evening{background:linear-gradient(145deg,rgba(100,80,180,.18),rgba(0,212,255,.08));border:1px solid rgba(100,80,180,.25);}.span-evening .span-title{color:#b8a0e8;}
.now-line{position:absolute;left:0;right:0;height:2px;background:var(--accent-secondary);z-index:15;pointer-events:none;box-shadow:0 0 12px rgba(255,107,157,.5);}
.now-line::before{content:'';position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent-secondary);box-shadow:0 0 8px rgba(255,107,157,.6);}

.schedule-mobile-controls{display:none;gap:.4rem;margin-bottom:.75rem;}
.sched-view-btn{padding:.5rem .85rem;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;}
.sched-view-btn.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.schedule-day-nav{display:none;align-items:center;justify-content:center;gap:.75rem;margin-bottom:.6rem;}
.schedule-day-nav.visible{display:flex;}
.day-nav-arrow{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;color:var(--text-muted);font-size:var(--fs-lg);padding:.55rem .6rem;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;line-height:1;}
.day-nav-arrow:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--bg-hover);}
.day-nav-label{font-family:'Space Mono',monospace;font-weight:700;font-size:var(--fs-lg);color:var(--accent-primary);min-width:110px;text-align:center;}
.schedule-header.day-mode{grid-template-columns:44px 1fr;}
.day-header-single{font-size:var(--fs-md) !important;}
.day-header-today{color:var(--accent-primary) !important;position:relative;}
.day-header-today::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent-primary);}

@media(max-width:768px){
    .schedule-mobile-controls{display:flex;}
    .day-active .event-title{font-size:var(--fs-lg) !important;white-space:normal;}
    .day-active .event-time{font-size:var(--fs-sm) !important;}
    .day-active .event-subtitle{display:block !important;font-size:var(--fs-sm) !important;}
    .day-active .event-activity{padding:8px 10px !important;}
    .day-active .span-title{font-size:var(--fs-lg) !important;}
    .day-active .span-subtitle{font-size:var(--fs-xs) !important;}
    .day-active .travel-label{font-size:var(--fs-sm) !important;}
    .day-active .diagonal-top,.day-active .diagonal-bottom{font-size:var(--fs-md) !important;}
    .day-active .diagonal-sub{font-size:var(--fs-xs) !important;}
    .day-active .hour-label{font-size:var(--fs-xs) !important;}
}

@media(max-width:1024px){
    .schedule-header,.schedule-body{grid-template-columns:44px repeat(7,1fr);}.span-overlay{left:44px;}
    .corner-cell,.day-header{padding:.55rem .15rem;font-size:var(--fs-xs);}.hour-label{font-size:var(--fs-xs);}
    .event-activity{padding:3px 4px;}.event-title{font-size:var(--fs-xs);}.event-time{font-size:var(--fs-xs);}.event-subtitle{display:none;}
    .travel-label{font-size:var(--fs-xs);}
    .span-title{font-size:var(--fs-xs);}.span-subtitle{font-size:var(--fs-xs);}.span-work .span-title{font-size:var(--fs-md);}
    .diagonal-top,.diagonal-bottom{font-size:var(--fs-xs);}.diagonal-sub{font-size:.42rem;}
    .span-event{padding:3px 4px;}
}

.fin-time-row{display:flex;gap:.5rem;}
.fin-time-row .fin-label{flex:1;}
.event-work{background:linear-gradient(135deg,rgba(120,120,120,.15),rgba(120,120,120,.08));border-left:3px solid rgba(120,120,120,.4);color:var(--text-muted);padding:4px 6px;font-size:var(--fs-sm);}
.event-routine{background:linear-gradient(135deg,rgba(255,200,50,.12),rgba(255,200,50,.05));border-left:3px solid rgba(255,200,50,.5);padding:4px 6px;font-size:var(--fs-sm);}
.day-column{cursor:pointer;}

.spirit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.25rem;margin-bottom:2rem;}
.spirit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.spirit-card-title{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--accent-primary);margin-bottom:.85rem;}
.spirit-hint{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;margin-bottom:.6rem;}
.spirit-section{margin-bottom:2rem;}
.spirit-section-title{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;margin-bottom:.4rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.spirit-sub{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:1rem;}

.spirit-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.85rem;}
.spirit-card-header .spirit-card-title{margin-bottom:0;}
.prayer-history-btn,.grat-history-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.5rem .5rem;font-size:var(--fs-lg);cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);line-height:1;}
.prayer-history-btn:hover,.grat-history-btn:hover{border-color:var(--accent-primary);background:var(--bg-hover);color:var(--accent-primary);}
.prayer-grid{display:flex;flex-direction:column;gap:.3rem;}
.prayer-progress{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);background:rgba(0,212,255,.1);border-radius:10px;padding:.1rem .4rem;display:inline-block;margin-left:.3rem;}
.prayer-item{display:flex;align-items:center;gap:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;cursor:pointer;transition:all .2s;}
.prayer-item:hover{border-color:var(--accent-primary);}
.prayer-item.done{background:linear-gradient(135deg,rgba(0,255,136,.05),rgba(0,212,255,.05));border-color:rgba(0,255,136,.3);}
.prayer-cb{display:none;}.prayer-icon{font-size:1rem;}.prayer-name{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);flex:1;}.prayer-item.done .prayer-name{color:var(--accent-success);}.prayer-check{font-size:var(--fs-md);}

.gratitude-fields{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.75rem;}
.grat-field{display:flex;align-items:center;gap:.5rem;margin-bottom:.45rem;}
.grat-num{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);min-width:1.1rem;}
.grat-input{flex:1;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);padding:.5rem .65rem;outline:none;transition:border-color .2s;}
.grat-input:focus{border-color:var(--accent-primary);}.grat-input::placeholder{color:var(--text-muted);}
.grat-input:disabled{opacity:.6;cursor:not-allowed;}
.grat-done-msg{text-align:center;padding:.6rem;color:var(--accent-success);font-weight:700;font-size:var(--fs-md);background:rgba(0,255,136,.06);border-radius:8px;border:1px solid rgba(0,255,136,.2);}
.grat-hist-day{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);}
.grat-hist-date{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);margin-bottom:.35rem;}
.grat-hist-item{font-size:var(--fs-md);color:var(--text-secondary);padding:.2rem 0 .2rem 1rem;position:relative;}
.grat-hist-item::before{content:'♡';position:absolute;left:0;color:var(--accent-secondary);}

.prayer-timetable-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);max-height:500px;overflow-y:auto;}
.prayer-timetable-wrap::-webkit-scrollbar{width:4px;}.prayer-timetable-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.prayer-timetable{width:100%;min-width:650px;border-collapse:collapse;}
.prayer-timetable thead{position:sticky;top:0;z-index:5;}
.prayer-timetable thead th{padding:.6rem .35rem;font-weight:700;font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);background:var(--bg-card);border-bottom:2px solid var(--border);border-right:1px solid var(--border);text-align:center;}
.prayer-timetable thead th:last-child{border-right:none;}
.prayer-timetable td{padding:.45rem .35rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-secondary);text-align:center;}
.prayer-timetable td:last-child{border-right:none;}
.prayer-timetable tbody tr:hover{background:var(--bg-hover);}
.pt-num{color:var(--text-muted);font-weight:700;}.pt-fajr{color:var(--accent-warning);font-weight:700;}.pt-iftar{color:var(--accent-success);font-weight:700;}.pt-isha{color:#b8a0e8;}
.pt-reveil{color:var(--accent-primary);font-weight:700;}.pt-dormir{color:var(--accent-secondary);font-weight:700;}
.pt-today{background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(255,107,157,.05))!important;}
.pt-today td{color:var(--text-primary)!important;font-weight:700!important;}

@media(max-width:1024px){.spirit-grid{grid-template-columns:1fr;}}

.heatmap-wrap{margin-top:.5rem;}
.heatmap-month{margin-bottom:1rem;}
.heatmap-month-label{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.35rem;}
.heatmap-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.heatmap-cell{aspect-ratio:1;border-radius:4px;position:relative;min-width:0;min-height:20px;display:flex;align-items:center;justify-content:center;font-size:2rem;}
.heatmap-0{background:var(--bg-secondary);border:1px solid var(--border);}
.heatmap-1{background:rgba(255,107,157,.2);}
.heatmap-2{background:rgba(255,179,71,.25);}
.heatmap-3{background:rgba(255,179,71,.4);}
.heatmap-4{background:rgba(0,255,136,.35);}
.heatmap-5{background:rgba(0,255,136,.55);}
.heatmap-legend{display:flex;align-items:center;gap:.35rem;margin-top:.75rem;font-size:var(--fs-xs);color:var(--text-muted);}
.heatmap-legend-cell{width:12px;height:12px;border-radius:2px;}

.spirit-inner-tabs{display:flex;gap:.25rem;padding:.25rem;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border);margin-bottom:1.25rem;}
.spirit-inner-tab{flex:1;padding:.5rem .6rem;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .25s;text-align:center;}
.spirit-inner-tab:hover{color:var(--text-secondary);}
.spirit-inner-tab.active{background:rgba(0,212,255,.1);color:var(--accent-primary);box-shadow:0 1px 4px rgba(0,212,255,.1);}
.spirit-inner-page{display:none;animation:fadeIn .3s ease-out;}.spirit-inner-page.active{display:block;}

.ramadan-smart-banner{margin-bottom:1.25rem;}
.ramadan-smart-banner:empty{display:none;}
.rsb-active{background:linear-gradient(135deg,rgba(255,179,71,.08),rgba(0,212,255,.08));border:1px solid rgba(255,179,71,.25);border-radius:14px;padding:1rem 1.25rem;position:relative;overflow:hidden;}
.rsb-active::before{content:'🌙';position:absolute;top:-.5rem;right:.5rem;font-size:3rem;opacity:.1;}
.rsb-day-badge{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent-warning);margin-bottom:.4rem;}
.rsb-next-event{font-size:var(--fs-md);color:var(--text-secondary);margin-bottom:.2rem;}
.rsb-next-event strong{color:var(--text-primary);}
.rsb-countdown{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--accent-primary);}
.rsb-progress-bar{height:4px;background:var(--bg-primary);border-radius:2px;margin-top:.6rem;overflow:hidden;}
.rsb-progress-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent-warning),var(--accent-primary));transition:width .5s;}
.rsb-countdown-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;text-align:center;}
.rsb-countdown-card .rsb-icon{font-size:2.5rem;margin-bottom:.5rem;}
.rsb-countdown-card .rsb-title{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin-bottom:.3rem;}
.rsb-countdown-card .rsb-detail{font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.6rem;}
.rsb-countdown-nums{display:flex;justify-content:center;gap:1rem;}
.rsb-num-block{text-align:center;}
.rsb-num-block .rsb-num{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;color:var(--accent-primary);}
.rsb-num-block .rsb-num-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;}

.dhikr-counter-wrap{text-align:center;padding:.5rem 0;}
.dhikr-count-display{font-family:'Space Mono',monospace;font-size:2.2rem;font-weight:700;color:var(--accent-primary);margin-bottom:.5rem;}
.dhikr-tap-btn{width:80px;height:80px;border-radius:50%;border:2px solid var(--accent-primary);background:rgba(0,212,255,.06);color:var(--accent-primary);font-size:1.5rem;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;}
.dhikr-tap-btn:active{transform:scale(.92);background:rgba(0,212,255,.15);}
.dhikr-controls{display:flex;justify-content:center;gap:.5rem;margin-top:.5rem;}
.dhikr-reset-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:.25rem .5rem;font-size:var(--fs-xs);color:var(--text-muted);cursor:pointer;font-family:'Manrope',sans-serif;transition:all .15s;}
.dhikr-reset-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}
.dhikr-target{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.3rem;}

.spirit-affirmation{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:1rem;font-size:var(--fs-md);color:var(--text-secondary);line-height:1.5;font-style:italic;text-align:center;min-height:60px;display:flex;align-items:center;justify-content:center;}

.wellness-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.4rem;}
.wellness-day{text-align:center;padding:.4rem;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:all .2s;}
.wellness-day:hover{border-color:var(--accent-primary);}
.wellness-day.today{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary);}
.wellness-day-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);margin-bottom:.2rem;}
.wellness-day-mood{font-size:1.1rem;}
.wellness-day.rated .wellness-day-mood{opacity:1;}
.wellness-day:not(.rated) .wellness-day-mood{opacity:.3;}
@media(max-width:600px){.wellness-week-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;}.wellness-day{padding:.3rem;}}

/* ============================================
   MEAL TABLE
   ============================================ */
.meal-section{margin-bottom:2rem;}

.meal-section-title.no-gradient{background:none;-webkit-text-fill-color:unset;color:var(--text-primary);}
.meal-section-sub{color:var(--text-secondary);font-size:var(--fs-md);margin-bottom:1rem;}.meal-section-sub strong{color:var(--accent-primary);}
.meal-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap;}
.meal-actions{display:flex;gap:.4rem;}

.meal-action-btn{white-space:nowrap;}
.kcal-edit-btn{background:none;border:none;cursor:pointer;font-size:var(--fs-md);padding:.1rem .25rem;border-radius:4px;transition:all .15s;}
.kcal-edit-btn:hover{background:var(--bg-hover);}

.meal-table-wrapper{border-radius:0;border:none;background:transparent;overflow:visible;}
.meal-desktop-view{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);}
.meal-table{width:100%;border-collapse:collapse;}
.meal-table thead th{padding:.7rem .45rem;font-weight:700;font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);background:var(--bg-card);border-bottom:2px solid var(--border);border-right:1px solid var(--border);text-align:center;}.meal-table thead th:last-child{border-right:none;}
.meal-label-col{width:110px;}
.meal-label{padding:.55rem .7rem;font-weight:700;font-size:var(--fs-sm);color:var(--text-secondary);background:var(--bg-card);border-right:1px solid var(--border);border-bottom:1px solid var(--border);white-space:nowrap;}
.total-label{color:var(--accent-primary)!important;font-family:'Space Mono',monospace;}
.meal-row td{border-bottom:1px solid var(--border);}.snack-row .meal-label{color:var(--text-muted);font-weight:500;font-style:italic;}
.meal-cell{padding:.35rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top;min-height:100px;height:100px;}.meal-cell:last-child{border-right:none;}
@media(min-width:769px){.meal-cell{min-height:120px;height:120px;}}

.meal-items{display:flex;flex-direction:column;gap:2px;margin-bottom:3px;}
.meal-item{display:flex;align-items:center;gap:3px;background:var(--bg-hover);border-radius:5px;padding:2px 5px;font-size:var(--fs-xs);color:var(--text-primary);animation:fadeIn .15s ease-out;}
.meal-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.meal-item-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);padding:0 2px;line-height:1;transition:color .15s;flex-shrink:0;}
.meal-item-del:hover{color:var(--accent-secondary);}
.meal-add-btn{width:100%;height:24px;border:1px dashed var(--border);border-radius:5px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);line-height:1;cursor:pointer;transition:all .15s;padding:0;display:flex;align-items:center;justify-content:center;}
.meal-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.06);}

.meal-totals-row td{border-bottom:none;}.total-cell{padding:.55rem .35rem;background:var(--bg-card);text-align:center;}
.total-cal{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);margin-bottom:.25rem;}.total-cal-val{color:var(--accent-primary);}
.total-macros{display:flex;justify-content:center;gap:.35rem;margin-bottom:.35rem;}
.tm{font-size:var(--fs-xs);font-weight:700;padding:1px 3px;border-radius:3px;}.tp{color:#ff6b9d;background:rgba(255,107,157,.1);}.tca{color:#ffb347;background:rgba(255,179,71,.1);}.tf{color:#00d4ff;background:rgba(0,212,255,.1);}
.total-bar{height:4px;background:var(--bg-primary);border-radius:2px;overflow:hidden;}.total-bar-fill{height:100%;border-radius:2px;transition:width .3s;width:0%;}

.cook-day-btn{display:inline-flex;align-items:center;justify-content:center;margin-top:.35rem;width:28px;height:28px;border:1px solid var(--border);border-radius:7px;background:transparent;font-size:var(--fs-md);cursor:pointer;transition:all .2s;padding:0;}
.cook-day-btn:hover{border-color:#ffb347;background:rgba(255,179,71,.1);transform:scale(1.12);}
.cook-day-btn-mobile{display:flex;align-items:center;justify-content:center;gap:.35rem;margin-top:.6rem;padding:.5rem .85rem;border:1px solid var(--border);border-radius:8px;background:rgba(255,179,71,.05);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;width:100%;}
.cook-day-btn-mobile:hover{border-color:#ffb347;background:rgba(255,179,71,.12);color:#ffb347;}
.bar-under{background:var(--accent-primary);}.bar-good{background:var(--accent-success);}.bar-over{background:var(--accent-secondary);}

.meal-mobile-view{display:none;}
.meal-desktop-view{display:block;}

.meal-day-strip{display:flex;gap:.35rem;margin-bottom:1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
.meal-day-strip::-webkit-scrollbar{display:none;}
.meal-day-chip{padding:.55rem .85rem;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;}
.meal-day-chip:hover{border-color:var(--accent-primary);color:var(--text-secondary);}
.meal-day-chip.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;}

.meal-week-label{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);text-align:center;flex:1;}

.meal-mobile-day{display:none;}
.meal-mobile-day.active{display:block;}

.meal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.85rem;margin-bottom:1rem;transition:all .2s;}
.meal-card-snack{opacity:.85;}
.meal-card-total{background:var(--bg-secondary);border-color:var(--accent-primary);border-width:1.5px;}
.meal-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;}
.meal-card-title{font-weight:700;font-size:var(--fs-lg);color:var(--text-primary);}
.meal-card-kcal{font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--accent-primary);font-weight:700;}
.meal-card-items{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.65rem;}
.meal-card-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;background:var(--bg-hover);border-radius:8px;font-size:var(--fs-md);}
.meal-card-item-name{flex:1;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.meal-card-item-cal{font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;}
.meal-card-item-del{background:none;border:none;color:var(--text-muted);font-size:1rem;cursor:pointer;padding:0 .25rem;transition:color .15s;flex-shrink:0;line-height:1;}
.meal-card-item-del:hover{color:var(--accent-secondary);}
.meal-card-add{width:100%;padding:.55rem;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);font-weight:700;font-family:'Manrope',sans-serif;cursor:pointer;transition:all .2s;}
.meal-card-add:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}
.meal-card-macros{display:flex;justify-content:center;gap:.6rem;}

.meal-modal-results{max-height:280px;overflow-y:auto;border-radius:10px;}
.meal-modal-item{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border);border-radius:0;}
.meal-modal-item:first-child{border-radius:10px 10px 0 0;}
.meal-modal-item:last-child{border-radius:0 0 10px 10px;border-bottom:none;}
.meal-modal-item:only-child{border-radius:10px;}
.meal-modal-item:hover,.meal-modal-item:active{background:var(--bg-hover);}
.mm-thumb{width:40px;height:40px;border-radius:8px;background-size:cover;background-position:center;background-color:var(--bg-secondary);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.2rem;}
.mm-no-img{display:flex;align-items:center;justify-content:center;font-size:1.2rem;}
.mm-info{flex:1;min-width:0;overflow:hidden;}
.mm-name{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.mm-meta{font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px;}
.mm-divider{padding:.3rem .75rem;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-secondary);border-bottom:1px solid var(--border);}
.mm-empty{padding:1.5rem;text-align:center;color:var(--text-muted);font-size:var(--fs-md);}

@media(max-width:900px){
    .meal-mobile-view{display:block;}
    .meal-desktop-view{display:none;}
}

/* ============================================
   RECIPES
   ============================================ */
.recipe-section{margin-top:2rem;}
.recipe-tabs{display:flex;gap:.35rem;margin-bottom:1rem;}
.recipe-tab{padding:.5rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.recipe-tab:hover{border-color:var(--accent-primary);color:var(--text-secondary);}
.recipe-tab.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.recipe-page{display:none;}.recipe-page.active{display:block;}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.recipe-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .25s;}
.recipe-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow);}
.recipe-img{height:140px;background-size:cover;background-position:center;background-color:var(--bg-secondary);}
.recipe-no-img{display:flex;align-items:center;justify-content:center;font-size:2.5rem;}
.recipe-card-body{padding:.85rem;}
.recipe-card-body h4{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin-bottom:.35rem;}
.recipe-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-right:.5rem;}
.recipe-actions{display:flex;gap:.35rem;margin-top:.5rem;}
.recipe-action-btn{padding:.5rem .5rem;border-radius:8px;font-size:var(--fs-md);}

.rf-form{max-width:700px;}
.rf-group{margin-bottom:.85rem;}
.rf-label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.3rem;}
.rf-input{width:100%;padding:.45rem .6rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;transition:border-color .2s;}.rf-input:focus{border-color:var(--accent-primary);}
.rf-small{max-width:120px;}.rf-tiny{max-width:70px;}
.rf-select{padding:.4rem .5rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;cursor:pointer;}
.rf-unit-sel{width:60px;}
.rf-textarea{width:100%;min-height:60px;padding:.45rem .6rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);resize:vertical;outline:none;transition:border-color .2s;}.rf-textarea:focus{border-color:var(--accent-primary);}
.rf-photo-preview{width:100%;max-width:280px;aspect-ratio:16/10;}
.rf-row{display:flex;gap:.75rem;flex-wrap:wrap;}.rf-row .rf-group{flex:1;min-width:80px;}
.rf-ing-row{display:flex;gap:.3rem;margin-bottom:.35rem;align-items:center;}
.rf-ing-search-wrap{flex:1;position:relative;min-width:100px;}
.rf-ing-drop{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;background:var(--bg-card);border:1px solid var(--accent-primary);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.4);margin-top:2px;max-height:200px;overflow-y:auto;}
.rf-ing-drop.open{display:block;}
.rf-ing-option{display:flex;align-items:center;gap:.4rem;padding:.4rem .55rem;cursor:pointer;font-size:var(--fs-sm);color:var(--text-primary);transition:background .12s;border-bottom:1px solid var(--border);}
.rf-ing-option:last-child{border-bottom:none;}
.rf-ing-option:hover{background:var(--bg-hover);}
.rf-ing-option strong{color:var(--accent-primary);}
.rf-ing-option-meta{margin-left:auto;font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;white-space:nowrap;}
.rf-step-row{display:flex;gap:.4rem;margin-bottom:.35rem;align-items:flex-start;}
.rf-step-num{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);min-width:1.2rem;padding-top:.45rem;}
.rf-step-text{flex:1;min-height:45px;}
.rf-remove-btn{background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;padding:.2rem .4rem;transition:all .2s;flex-shrink:0;}.rf-remove-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}
.rf-add-btn{padding:.35rem .7rem;border:1px dashed var(--border);border-radius:7px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}.rf-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}

.rf-nutri-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem;}
.rf-nutri-col h4{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.4rem;}
.rf-nutri-empty{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;}
.nutri-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.nutri-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border);color:var(--text-secondary);}
.nutri-table td:last-child{text-align:right;color:var(--text-primary);}
.nutri-table strong{color:var(--accent-primary);}

.step-ing-highlight{background:rgba(0,212,255,.15);color:var(--accent-primary);padding:0 3px;border-radius:3px;font-weight:600;}
.recipe-detail-steps{list-style:decimal;padding-left:1.5rem;margin:.5rem 0;}
.recipe-detail-steps li{padding:.4rem 0;font-size:var(--fs-lg);line-height:1.6;color:var(--text-secondary);}

/* ============================================
   INGREDIENTS DB
   ============================================ */
.ing-toolbar{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center;}
.ing-search{flex:1;min-width:180px;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-md);outline:none;transition:border-color .2s;}
.ing-search:focus{border-color:var(--accent-primary);}
.ing-cat-filters{display:flex;gap:.25rem;flex-wrap:wrap;}
.ing-cat-btn{padding:.35rem .6rem;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all .15s;font-family:'Manrope',sans-serif;}
.ing-cat-btn:hover{border-color:var(--accent-primary);color:var(--text-secondary);}
.ing-cat-btn.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}

.ing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;}
.ing-card{display:flex;align-items:center;gap:.65rem;padding:.65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;transition:all .2s;cursor:pointer;}
.ing-card:hover{border-color:var(--accent-primary);transform:translateY(-1px);box-shadow:0 4px 12px var(--shadow);}
.ing-card-photo{width:42px;height:42px;border-radius:8px;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0;overflow:hidden;}
.ing-card-photo img{width:100%;height:100%;object-fit:cover;}
.ing-card-body{flex:1;min-width:0;overflow:hidden;}
.ing-card-name{font-weight:700;font-size:var(--fs-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ing-card-meta{font-size:var(--fs-xs);color:var(--text-muted);margin-top:1px;}
.ing-card-price{font-size:var(--fs-xs);color:var(--accent-primary);font-family:'Space Mono',monospace;margin-top:1px;}
.ing-card-actions{display:flex;gap:.2rem;flex-shrink:0;}
.ing-action-btn{padding:.2rem .4rem;border-radius:5px;font-size:var(--fs-sm);}

.ing-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem .75rem;margin:.75rem 0;}
.ing-detail-item{font-size:var(--fs-md);color:var(--text-secondary);}
.ing-detail-label{display:block;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:1px;}
.nutri-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;}

.ing-photo-preview{width:100%;max-width:200px;aspect-ratio:1;}

.ie-top-layout{display:flex;gap:1rem;margin-bottom:.5rem;}
.ie-top-photo{flex:0 0 auto;}
.ie-top-photo .ing-photo-preview{width:180px;max-width:180px;}
.ie-top-fields{flex:1;display:flex;flex-direction:column;gap:.35rem;}
.ie-top-fields .fin-label{margin-bottom:0;}
@media(max-width:600px){
    .ie-top-layout{flex-direction:column;}
    .ie-top-photo .ing-photo-preview{width:100%;max-width:200px;}
}

.ing-search-wrap{position:relative;}
.ing-search-drop{display:none;position:absolute;top:100%;left:0;right:0;z-index:50;background:var(--bg-card);border:1px solid var(--accent-primary);border-radius:8px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.3);margin-top:2px;max-height:200px;overflow-y:auto;}
.ing-search-drop.open{display:block;}
.ing-search-option{padding:.4rem .6rem;cursor:pointer;font-size:var(--fs-sm);transition:background .12s;border-bottom:1px solid var(--border);}
.ing-search-option:last-child{border-bottom:none;}
.ing-search-option:hover{background:var(--bg-hover);}

/* ============================================
   SHOPPING LIST — SMART
   ============================================ */
.shop-toggle-stock{display:flex;align-items:center;gap:.5rem;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;margin-bottom:1rem;padding:.4rem .6rem;border-radius:6px;transition:background .15s;width:fit-content;}
.shop-toggle-stock:hover{background:var(--bg-hover);}
.shop-toggle-stock input{accent-color:var(--accent-primary);width:16px;height:16px;cursor:pointer;}

.shop-summary{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem;margin-bottom:1rem;}
.shop-sum-bar{height:6px;background:var(--bg-primary);border-radius:3px;overflow:hidden;margin-bottom:.6rem;}
.shop-sum-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent-primary),#00e5a0);transition:width .4s ease;}
.shop-sum-stats{display:flex;flex-wrap:wrap;gap:.6rem .85rem;align-items:center;}
.shop-sum-stat{display:flex;align-items:center;gap:.35rem;font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);}
.shop-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.dot-stock{background:#00e5a0;}
.dot-partial{background:#ffb347;}
.dot-buy{background:var(--accent-secondary);}
.shop-sum-cost{margin-left:auto;font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);background:rgba(0,212,255,.08);padding:.2rem .5rem;border-radius:5px;}

.shop-group{margin-bottom:1.25rem;}
.shop-group-header{font-size:var(--fs-md);font-weight:700;color:var(--text-secondary);padding:.5rem .65rem;background:var(--bg-secondary);border-radius:8px;margin-bottom:.5rem;display:flex;align-items:center;gap:.35rem;}
.shop-group-count{margin-left:auto;font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);font-weight:400;}

.shop-item{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center;padding:.65rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;margin-bottom:.4rem;transition:all .2s;overflow:hidden;}
.shop-item:hover{border-color:var(--accent-primary);box-shadow:0 2px 8px var(--shadow);}
.shop-item-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--bg-primary);}
.shop-item-bar-fill{height:100%;transition:width .3s;border-radius:0 0 0 10px;}
.shop-bar-stock{background:#00e5a0;}.shop-bar-partial{background:#ffb347;}.shop-bar-buy{background:var(--bg-primary);}

.shop-item-check{display:flex;align-items:center;}
.shop-cb{}

.shop-item-body{min-width:0;}
.shop-item-name{font-weight:700;font-size:var(--fs-md);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.shop-item-detail{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem;}
.shop-pill{font-size:var(--fs-xs);font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;font-family:'Space Mono',monospace;}
.shop-pill-need{color:var(--text-muted);background:var(--bg-secondary);}
.shop-pill-fridge{color:#00c9ff;background:rgba(0,201,255,.1);}
.shop-pill-buy{color:var(--accent-secondary);background:rgba(255,107,157,.08);}

.shop-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0;}
.shop-badge{font-size:var(--fs-xs);font-weight:700;padding:3px 8px;border-radius:5px;white-space:nowrap;}
.shop-badge-stock{color:#00e5a0;background:rgba(0,229,160,.1);}
.shop-badge-partial{color:#ffb347;background:rgba(255,179,71,.1);}
.shop-badge-buy{color:var(--accent-secondary);background:rgba(255,107,157,.08);}
.shop-badge-bought{color:#00e5a0;background:rgba(0,229,160,.12);}
.shop-price{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);}

.shop-stock{opacity:.55;}.shop-stock:hover{opacity:.8;}
.shop-bought{opacity:.45;}.shop-bought .shop-item-name{text-decoration:line-through;}

@media(max-width:600px){
    .shop-item{grid-template-columns:auto 1fr;gap:.4rem;}
    .shop-item-right{grid-column:1/-1;flex-direction:row;justify-content:flex-end;gap:.4rem;}
    .shop-sum-stats{gap:.4rem;}
}

/* ============================================
   FRIGO DIGITAL — ENHANCED
   ============================================ */
.frigo-summary{display:flex;gap:.6rem;margin-bottom:1rem;flex-wrap:wrap;}
.frigo-sum-item{flex:1;min-width:100px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;text-align:center;transition:all .2s;}
.frigo-sum-item:hover{border-color:var(--accent-primary);}
.frigo-sum-val{display:block;font-family:'Space Mono',monospace;font-size:1.3rem;font-weight:700;color:var(--accent-primary);}
.frigo-sum-planned .frigo-sum-val{color:#ffb347;}
.frigo-sum-missing .frigo-sum-val{color:var(--accent-secondary);}
.frigo-sum-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;margin-top:.1rem;display:block;}

.frigo-section-header{font-size:var(--fs-md);font-weight:700;color:var(--text-secondary);padding:.5rem .65rem;background:var(--bg-secondary);border-radius:8px;margin-bottom:.6rem;margin-top:.5rem;}

.frigo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.65rem;margin-bottom:.75rem;}
.frigo-item{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:.75rem;transition:all .25s;display:flex;flex-direction:column;gap:.5rem;}
.frigo-item:hover{border-color:var(--accent-primary);transform:translateY(-1px);box-shadow:0 4px 16px var(--shadow);}
.frigo-low{border-color:rgba(255,179,71,.4);background:rgba(255,179,71,.03);}
.frigo-enough{border-left:3px solid #00e5a0;}
.frigo-low-status{border-left:3px solid #ffb347;}
.frigo-critical{border-left:3px solid var(--accent-secondary);}

.frigo-badge{font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:5px;width:fit-content;white-space:nowrap;}
.frigo-badge-enough{color:#00e5a0;background:rgba(0,229,160,.1);}
.frigo-badge-low{color:#ffb347;background:rgba(255,179,71,.1);}
.frigo-badge-critical{color:var(--accent-secondary);background:rgba(255,107,157,.08);}

.frigo-item-main{display:flex;align-items:center;justify-content:space-between;gap:.5rem;}
.frigo-item-name{font-weight:700;font-size:var(--fs-md);color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.frigo-item-qty{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--accent-primary);white-space:nowrap;flex-shrink:0;}

.frigo-coverage{width:100%;}
.frigo-coverage-labels{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:3px;font-family:'Space Mono',monospace;}
.frigo-coverage-bar{height:5px;background:var(--bg-primary);border-radius:3px;overflow:hidden;}
.frigo-coverage-fill{height:100%;border-radius:3px;transition:width .3s;}
.frigo-fill-enough{background:#00e5a0;}
.frigo-fill-low{background:#ffb347;}
.frigo-fill-critical{background:var(--accent-secondary);}

.frigo-item-actions{display:flex;gap:.3rem;justify-content:flex-end;}
.frigo-act-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text-muted);font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;}
.frigo-act-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.06);}
.frigo-act-minus:hover{border-color:#ffb347;color:#ffb347;background:rgba(255,179,71,.06);}
.frigo-act-del:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);background:rgba(255,107,157,.06);}

@media(max-width:600px){
    .frigo-grid{grid-template-columns:1fr;}
    .frigo-summary{gap:.4rem;}
    .frigo-sum-item{min-width:0;}
}

/* ============================================
   RESPONSIVE
   ============================================ */
@media(max-width:1024px){
    .recipe-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
    .ing-grid{grid-template-columns:1fr;}
    .rf-nutri-cols{grid-template-columns:1fr;}
}

.ing-filter-toggle{display:none;}
@media(max-width:600px){
    .ing-toolbar{flex-direction:column;}
    .ing-filter-toggle{display:inline-flex;}
    .ing-cat-filters{display:none;width:100%;}
    .ing-cat-filters.open{display:flex;}
    .rf-ing-row{flex-wrap:wrap;}
    .rf-tiny{max-width:55px;}
    .rf-unit-sel{width:50px;}
}

.fin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem;margin-bottom:1rem;}
.fin-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.fin-card-title{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--accent-primary);margin-bottom:1rem;}
.fin-label{display:block;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.55rem;}
.fin-select{width:100%;padding:.45rem .55rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;margin-top:.2rem;cursor:pointer;}
.fin-input{width:100%;padding:.45rem .55rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;margin-top:.2rem;transition:border-color .2s;}.fin-input:focus{border-color:var(--accent-primary);}
.fin-time-row{display:flex;gap:.75rem;}
.fin-preview{font-family:'Space Mono',monospace;font-size:1.2rem;font-weight:700;color:var(--accent-success);text-align:center;padding:.75rem;margin:.75rem 0;background:rgba(0,255,136,.05);border-radius:8px;border:1px solid rgba(0,255,136,.15);}

.fin-month-nav{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;}
.fin-month-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);padding:.3rem .55rem;cursor:pointer;font-size:var(--fs-md);transition:all .2s;}.fin-month-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.fin-month-label{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);min-width:140px;text-align:center;}

.fin-total{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent-success);margin-bottom:.75rem;padding:.5rem;background:rgba(0,255,136,.05);border-radius:8px;text-align:center;}.fin-total strong{color:var(--accent-success);}
.fin-cat-row{display:flex;justify-content:space-between;padding:.45rem .5rem;border-bottom:1px solid var(--border);}
.fin-cat-label{font-size:var(--fs-md);font-weight:700;color:var(--text-secondary);}
.fin-cat-val{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.fin-cat-sub{display:flex;justify-content:space-between;padding:.3rem .5rem .3rem 1.5rem;font-size:var(--fs-sm);color:var(--text-muted);}

.fin-history-section{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.fin-history-filters{margin-bottom:1rem;max-width:200px;}
.fin-hist-list{display:flex;flex-direction:column;gap:.3rem;}
.fin-hist-entry{display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;transition:all .15s;}.fin-hist-entry:hover{border-color:var(--accent-primary);}
.fin-hist-date{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);min-width:3.5rem;}
.fin-hist-info{flex:1;display:flex;flex-direction:column;gap:.1rem;}
.fin-hist-type{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);}
.fin-hist-title{font-size:var(--fs-xs);color:var(--text-muted);}
.fin-hist-dur{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.fin-hist-amount{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--accent-success);}
.fin-hist-del{background:none;border:1px solid transparent;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);padding:.15rem .3rem;transition:all .2s;}.fin-hist-del:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}

@media(max-width:1024px){.fin-grid{grid-template-columns:1fr;}}

.et-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;}
.et-month-label{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;min-width:160px;text-align:center;}
.et-summary{text-align:center;margin-bottom:1rem;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;}
.et-sum-total{margin-bottom:.25rem;}
.et-sum-val{font-family:'Space Mono',monospace;font-size:1.6rem;font-weight:800;color:var(--accent-secondary);}
.et-sum-unit{font-size:var(--fs-sm);color:var(--text-muted);margin-left:.35rem;}
.et-sum-meta{font-size:var(--fs-sm);color:var(--text-muted);display:flex;justify-content:center;gap:.5rem;}

.et-recur-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;flex-wrap:wrap;}
.et-recur-label{flex:1;font-size:var(--fs-sm);color:var(--text-secondary);font-weight:600;}
.et-recur-apply{padding:.25rem .6rem;border:1px solid var(--accent-primary);border-radius:6px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:all .15s;font-family:inherit;}.et-recur-apply:hover{background:rgba(0,212,255,.2);}
.et-recur-done{font-size:var(--fs-xs);color:var(--accent-success);font-weight:700;}
.et-recur-edit{padding:.2rem .4rem;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;}.et-recur-edit:hover{border-color:var(--accent-primary);color:var(--accent-primary);}

.et-cats{display:flex;flex-direction:column;gap:.4rem;}
.et-cat{border:1px solid var(--border);border-radius:10px;background:var(--bg-card);overflow:hidden;transition:border-color .15s;}
.et-cat.et-cat-open{border-color:rgba(0,212,255,.25);}
.et-cat-empty{opacity:.5;}
.et-cat-empty.et-cat-open{opacity:1;}
.et-cat-head{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;cursor:pointer;user-select:none;transition:background .15s;}.et-cat-head:hover{background:var(--bg-hover);}
.et-cat-name{flex:1;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.et-cat-total{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-secondary);}
.et-cat-count{font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-secondary);padding:.1rem .35rem;border-radius:4px;min-width:18px;text-align:center;}
.et-cat-arrow{font-size:var(--fs-xs);color:var(--text-muted);transition:transform .2s;}
.et-cat-open .et-cat-arrow{transform:rotate(180deg);}
.et-cat-body{display:none;padding:0 .6rem .6rem;border-top:1px solid var(--border);}
.et-cat-open .et-cat-body{display:block;}

.et-entry{display:flex;align-items:center;gap:.4rem;padding:.35rem .3rem;border-bottom:1px solid rgba(42,50,68,.5);font-size:var(--fs-sm);}
.et-entry:last-of-type{border-bottom:none;}
.et-entry-day{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);min-width:22px;text-align:center;}
.et-entry-desc{flex:1;color:var(--text-primary);}.et-entry-note{color:var(--text-muted);font-size:var(--fs-xs);}
.et-entry-amt{font-family:'Space Mono',monospace;font-weight:700;min-width:60px;text-align:right;}
.et-entry-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);padding:.15rem;transition:color .15s;}.et-entry-del:hover{color:var(--accent-secondary);}

.et-add-row{display:flex;gap:.25rem;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed var(--border);}
.et-add-sub{flex:1;padding:.3rem .35rem;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-xs);font-family:inherit;}
.et-add-amt{flex:0 0 65px;padding:.3rem .35rem;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-xs);font-family:'Space Mono',monospace;text-align:right;}
.et-add-date{flex:0 0 110px;padding:.3rem .35rem;border:1px solid var(--border);border-radius:5px;background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-xs);font-family:inherit;}
.et-add-btn{flex:0 0 28px;height:28px;border:1px solid var(--accent-primary);border-radius:6px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:var(--fs-lg);font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;padding:0;}.et-add-btn:hover{background:rgba(0,212,255,.2);}

.et-rec-editor{font-size:var(--fs-sm);}
.et-rec-list{display:flex;flex-direction:column;gap:.2rem;}
.et-rec-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .4rem;background:var(--bg-secondary);border-radius:6px;}
.et-rec-desc{flex:1;font-weight:600;}
.et-rec-cat{font-size:var(--fs-xs);color:var(--text-muted);}
.et-rec-amt{font-family:'Space Mono',monospace;font-weight:700;min-width:65px;text-align:right;}
.et-rec-total{text-align:right;padding:.4rem;font-family:'Space Mono',monospace;font-weight:700;font-size:var(--fs-sm);color:var(--accent-primary);}

@media(max-width:600px){.et-add-row{flex-wrap:wrap;}.et-add-sub{flex:1 1 100%;}.et-add-note{flex:1 1 100%;}.et-add-date{flex:1;}.et-add-amt{flex:1;}}

.et-add-note{padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;transition:border-color .2s;}.et-add-note:focus{border-color:var(--accent-primary);}

.cat-editor{display:flex;flex-direction:column;gap:.75rem;}
.cat-ed-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.65rem;}
.cat-ed-head{display:flex;gap:.35rem;align-items:center;margin-bottom:.5rem;}
.cat-ed-head .fin-input{font-size:var(--fs-md);margin-top:0;background:transparent;border-color:transparent;padding:.25rem .35rem;}
.cat-ed-head .fin-input:focus{border-color:var(--accent-primary);background:var(--bg-input);}
.cat-ed-subs{display:flex;flex-direction:column;gap:.2rem;padding-left:.5rem;}
.cat-ed-sub-row{display:flex;gap:.3rem;align-items:center;}
.cat-ed-sub-row .fin-input{font-size:var(--fs-sm);margin-top:0;padding:.2rem .35rem;}
.cat-ed-sub-row .icon-action-btn{padding:.15rem .35rem;font-size:var(--fs-sm);}

.fin-show-more{display:block;width:100%;margin-top:.5rem;padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--accent-primary);font-size:var(--fs-sm);cursor:pointer;text-align:center;transition:background .15s;}
.fin-show-more:hover{background:var(--bg-hover);}

.exp-donut-wrap{display:flex;flex-direction:column;gap:.75rem;}
.exp-donut-chart-area{position:relative;display:flex;justify-content:center;align-items:center;}
.exp-donut-svg{width:160px;height:160px;flex-shrink:0;}
.exp-donut-center-val{font-size:22px;font-weight:700;fill:var(--text-primary);font-family:'Space Mono',monospace;}
.exp-donut-center-lbl{font-size:10px;fill:var(--text-muted);font-family:inherit;}
.exp-donut-tooltip{position:absolute;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:var(--fs-sm);min-width:140px;max-width:200px;display:none;pointer-events:none;box-shadow:0 4px 16px rgba(0,0,0,.3);z-index:10;}
.exp-donut-tooltip.visible{display:block;}
.exp-donut-tip-total{color:var(--accent-primary);font-weight:600;margin:.1rem 0 .3rem;}
.exp-donut-tip-avg{color:var(--text-muted);margin-top:.3rem;border-top:1px solid var(--border);padding-top:.2rem;}
.exp-donut-legend{display:flex;flex-direction:column;gap:.3rem;}
.exp-donut-legend-item{display:flex;align-items:flex-start;gap:.45rem;}
.exp-donut-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:.15rem;}
.exp-donut-legend-info{display:flex;flex-direction:column;gap:.05rem;}
.exp-donut-legend-cat{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);}
.exp-donut-legend-amt{font-size:var(--fs-sm);color:var(--text-secondary);}
.exp-donut-pct{color:var(--text-muted);font-size:var(--fs-xs);}
.exp-donut-legend-avg{font-size:var(--fs-xs);color:var(--text-muted);}

.exp-donut-seg{cursor:pointer;transition:opacity .15s,filter .15s;}
.exp-donut-seg:hover{filter:brightness(1.2);}

.exp-donut-legend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:.4rem;}
.exp-donut-legend-card{background:var(--bg-card);border:1px solid var(--item-color,var(--border));border-radius:9px;padding:.5rem .6rem;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s;}
.exp-donut-legend-card:hover{transform:translateY(-2px);background:rgba(var(--text-primary-rgb),.03);box-shadow:0 4px 16px rgba(0,0,0,.25);}
.exp-donut-legend-toprow{display:flex;align-items:center;gap:.3rem;margin-bottom:.2rem;}
.exp-donut-legend-toprow .exp-donut-legend-cat{font-size:var(--fs-xs);color:var(--text-secondary);flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.exp-donut-legend-toprow .exp-donut-pct{font-size:var(--fs-xs);font-weight:700;opacity:1;margin-left:auto;flex-shrink:0;}
.exp-donut-legend-card .exp-donut-legend-amt{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;line-height:1.2;}
.exp-donut-chf{opacity:.55;font-size:var(--fs-xs);}
.exp-donut-legend-card .exp-donut-legend-avg{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.15rem;}
.exp-donut-seg{cursor:pointer;transition:filter .18s,opacity .18s;}
.exp-donut-seg:hover{filter:brightness(1.25);}
.exp-donut-seg-outline:hover{filter:brightness(1.5);}

.et-bank-card{background:linear-gradient(135deg,rgba(var(--accent-primary-rgb),.04),rgba(var(--accent-secondary-rgb),.02));border:1px solid rgba(var(--accent-primary-rgb),.15);border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem;}
.et-bank-card:hover{border-color:rgba(var(--accent-primary-rgb),.3);}
.et-bank-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.45rem;}
.et-bank-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.1rem;}
.et-bank-sub{font-size:var(--fs-xs);color:var(--text-muted);}
.et-bank-pct{font-family:'Space Mono',monospace;font-size:1.05rem;font-weight:700;color:var(--accent-primary);line-height:1;}
.et-bank-all-done{color:var(--accent-success,#a6e3a1)!important;}
.et-bank-bar{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;margin:.1rem 0 .65rem;}
.et-bank-fill{height:100%;border-radius:4px;background:var(--accent-primary);transition:width .6s cubic-bezier(.34,1.56,.64,1),background .4s;}
.et-bank-chips{display:flex;flex-wrap:wrap;gap:.4rem;}
.et-bank-btn{display:flex;align-items:center;gap:.35rem;padding:.3rem .65rem .3rem .4rem;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:all .2s;color:var(--text-secondary);}
.et-bank-btn:hover{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);}
.et-bank-btn-check{width:20px;height:20px;border:2px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;color:transparent;flex-shrink:0;transition:all .2s;}
.et-bank-btn:hover .et-bank-btn-check{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);}
.et-bank-btn-label{font-size:var(--fs-sm);font-weight:600;}
.et-bank-done{background:rgba(var(--accent-primary-rgb),.06)!important;border-color:rgba(var(--accent-primary-rgb),.25)!important;color:var(--accent-primary)!important;}
.et-bank-done .et-bank-btn-check{background:rgba(var(--accent-primary-rgb),.1);border-color:var(--accent-primary)!important;color:var(--accent-primary)!important;}

.tire-switch-wrap{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding:1.5rem 0;}
.tire-option{font-size:var(--fs-lg);font-weight:700;color:var(--text-muted);transition:all .3s;padding:.5rem .75rem;border-radius:8px;}
.tire-option.tire-active{color:var(--accent-primary);background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.2);}
.tire-toggle{position:relative;width:56px;height:28px;cursor:pointer;}
.tire-toggle input{display:none;}
.tire-slider{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(255,179,71,.2);border:1px solid rgba(255,179,71,.4);border-radius:14px;transition:all .3s;}
.tire-slider::before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:var(--accent-warning);transition:all .3s;}
.tire-toggle input:checked+.tire-slider{background:rgba(0,212,255,.2);border-color:rgba(0,212,255,.4);}
.tire-toggle input:checked+.tire-slider::before{transform:translateX(28px);background:var(--accent-primary);}
.tire-last-change{text-align:center;font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;margin-top:.5rem;}
.tire-disabled{opacity:.35;cursor:not-allowed;}

.bilan-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin-bottom:1.5rem;}
.bilan-summary-card{display:flex;align-items:center;gap:.65rem;padding:.85rem .75rem;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);transition:border-color .2s,transform .2s;}
.bilan-summary-card:hover{transform:translateY(-1px);}
.bilan-card-icon{font-size:1.3rem;flex-shrink:0;}
.bilan-card-body{flex:1;min-width:0;}
.bilan-card-value{font-family:'Space Mono',monospace;font-size:1.15rem;font-weight:700;color:var(--text-primary);line-height:1.2;}
.bilan-card-value small{font-size:var(--fs-xs);font-weight:500;color:var(--text-muted);}
.bilan-card-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;margin-top:.15rem;text-transform:uppercase;letter-spacing:.04em;}
.bilan-card-rev{border-left:3px solid var(--accent-success,#00ff88);}
.bilan-card-exp{border-left:3px solid var(--accent-secondary);}
.bilan-card-pos{border-left:3px solid var(--accent-success,#00ff88);}.bilan-card-pos .bilan-card-value{color:var(--accent-success,#00ff88);}
.bilan-card-neg{border-left:3px solid var(--accent-secondary);}.bilan-card-neg .bilan-card-value{color:var(--accent-secondary);}
.bilan-card-rate{border-left:3px solid var(--accent-primary);}

.bilan-chart-section{margin-bottom:1.5rem;}
.bilan-section-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.04em;}
.bilan-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:.35rem;padding:1rem .5rem;background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);}
.bilan-chart-col{display:flex;flex-direction:column;align-items:center;gap:.3rem;}
.bilan-chart-current{position:relative;}.bilan-chart-current::before{content:'';position:absolute;inset:-4px -2px;border-radius:8px;border:1.5px solid var(--accent-primary);opacity:.3;}
.bilan-chart-future{opacity:.35;}
.bilan-chart-bars{display:flex;gap:2px;align-items:flex-end;height:80px;width:100%;}
.bilan-bar{flex:1;border-radius:3px 3px 0 0;min-height:2px;transition:height .4s ease;}
.bilan-bar-rev{background:linear-gradient(180deg,var(--accent-success,#00ff88),rgba(0,255,136,.4));}
.bilan-bar-exp{background:linear-gradient(180deg,var(--accent-secondary),rgba(255,107,157,.4));}
.bilan-chart-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;}
.bilan-chart-diff{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;}
.bilan-diff-pos{color:var(--accent-success,#00ff88);}
.bilan-diff-neg{color:var(--accent-secondary);}
.bilan-chart-legend{display:flex;gap:1rem;justify-content:center;margin-top:.6rem;}
.bilan-legend-item{display:flex;align-items:center;gap:.3rem;font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;}
.bilan-legend-dot{width:8px;height:8px;border-radius:2px;}
.bilan-legend-rev{background:var(--accent-success,#00ff88);}
.bilan-legend-exp{background:var(--accent-secondary);}

.bilan-quarters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;margin-bottom:1.5rem;}
.bilan-quarter-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem;transition:border-color .2s;}
.bilan-quarter-active{border-color:var(--accent-primary);background:linear-gradient(135deg,rgba(0,212,255,.04),rgba(255,107,157,.02));}
.bilan-quarter-head{font-weight:800;font-size:var(--fs-md);color:var(--accent-primary);margin-bottom:.5rem;display:flex;align-items:baseline;gap:.4rem;}
.bilan-quarter-months{font-size:var(--fs-xs);font-weight:500;color:var(--text-muted);}
.bilan-quarter-row{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm);padding:.2rem 0;color:var(--text-secondary);}
.bilan-quarter-diff{border-top:1px solid var(--border);margin-top:.25rem;padding-top:.35rem;font-weight:700;}
.bilan-qval-rev{font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-success,#00ff88);font-size:var(--fs-sm);}
.bilan-qval-exp{font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-secondary);font-size:var(--fs-sm);}
.bilan-qval-pos{font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-success,#00ff88);font-size:var(--fs-sm);}
.bilan-qval-neg{font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-secondary);font-size:var(--fs-sm);}

.bilan-details-wrap{margin-top:.5rem;}
.bilan-details-toggle{font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);cursor:pointer;padding:.5rem .65rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);user-select:none;list-style:none;transition:color .2s;}
.bilan-details-toggle:hover{color:var(--accent-primary);}
.bilan-details-toggle::-webkit-details-marker{display:none;}
.bilan-details-wrap[open] .bilan-details-toggle{margin-bottom:.5rem;color:var(--accent-primary);}

@media(max-width:600px){.bilan-summary-grid{grid-template-columns:repeat(2,1fr);}.bilan-chart-bars{height:50px;}.bilan-quarters-grid{grid-template-columns:repeat(2,1fr);}}

.bilan-table-wrap{overflow-x:auto;border-radius:12px;border:1px solid var(--border);background:var(--bg-secondary);}
.bilan-table{width:100%;border-collapse:collapse;min-width:400px;}
.bilan-table thead th{padding:.7rem .5rem;font-weight:700;font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);background:var(--bg-card);border-bottom:2px solid var(--border);border-right:1px solid var(--border);text-align:center;}
.bilan-table thead th:last-child{border-right:none;}
.bilan-table td{padding:.55rem .5rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border);font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-secondary);text-align:center;}
.bilan-table td:first-child{text-align:left;font-family:'Manrope',sans-serif;font-weight:600;color:var(--text-secondary);padding-left:.75rem;}
.bilan-table td:last-child{border-right:none;}
.bilan-table tbody tr:hover{background:var(--bg-hover);}
.bilan-rev{color:var(--accent-success) !important;}
.bilan-exp{color:var(--accent-secondary) !important;}
.bilan-pos{color:var(--accent-success) !important;font-weight:700;}
.bilan-neg{color:var(--accent-secondary) !important;font-weight:700;}
.bilan-current{background:linear-gradient(135deg,rgba(0,212,255,.06),rgba(255,107,157,.04)) !important;}
.bilan-current td{color:var(--text-primary) !important;font-weight:700 !important;}
.bilan-quarter{background:var(--bg-card) !important;}
.bilan-quarter td{border-top:2px solid var(--border);font-size:var(--fs-sm);color:var(--accent-primary) !important;}
.bilan-year{background:linear-gradient(135deg,rgba(0,212,255,.1),rgba(255,107,157,.08)) !important;}
.bilan-year td{border-top:2px solid var(--accent-primary);font-size:var(--fs-md);}

.fin-quarterly{margin-top:1rem;}
.fin-quarterly-box{background:var(--bg-secondary);border:1px solid rgba(255,179,71,.2);border-radius:10px;padding:.85rem;}
.fin-quarterly-title{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-warning);margin-bottom:.5rem;}

.auth-banner{background:linear-gradient(135deg,rgba(255,107,157,.12),rgba(255,179,71,.12));border:1px solid rgba(255,107,157,.3);border-radius:10px;padding:.65rem 1rem;margin-bottom:1rem;font-size:var(--fs-md);font-weight:700;color:var(--accent-secondary);display:flex;align-items:center;justify-content:space-between;gap:.75rem;animation:fadeIn .3s ease-out;}
.auth-banner-btn{padding:.3rem .65rem;border:1px solid var(--accent-secondary);border-radius:6px;background:rgba(255,107,157,.1);color:var(--accent-secondary);font-weight:700;font-size:var(--fs-sm);cursor:pointer;font-family:'Manrope',sans-serif;transition:all .2s;}
.auth-banner-btn:hover{background:rgba(255,107,157,.2);}

@media(max-width:768px){
    .tire-switch-wrap{flex-direction:row;gap:.75rem;}
}

.bilan-budget-avg-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1.5rem;}
.bilan-budget-total{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--border);font-weight:700;font-size:var(--fs-sm);color:var(--text-secondary);}
.bilan-budget-total-val{font-family:'Space Mono',monospace;font-size:var(--fs-md);color:var(--accent-secondary);}
.bilan-budget-cats{display:flex;flex-direction:column;gap:.45rem;}
.bilan-budget-cat-row{display:grid;grid-template-columns:120px 1fr 80px;align-items:center;gap:.5rem;font-size:var(--fs-sm);}
.bilan-budget-cat-name{font-weight:600;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bilan-budget-cat-bar-wrap{height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden;}
.bilan-budget-cat-bar{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:4px;transition:width .4s ease;}
.bilan-budget-cat-val{text-align:right;font-family:'Space Mono',monospace;font-weight:700;color:var(--text-primary);font-size:var(--fs-sm);}
.bilan-budget-note{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.6rem;text-align:center;font-style:italic;}
@media(max-width:600px){.bilan-budget-cat-row{grid-template-columns:90px 1fr 65px;}}

.sp-form{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1.25rem;max-width:700px;}
.sp-form-row{display:flex;gap:.75rem;margin-bottom:.85rem;flex-wrap:wrap;}
.sp-form-row .fin-label{flex:1;min-width:140px;}

.sp-photos-row{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.sp-photo-upload{flex:1;min-width:120px;display:flex;flex-direction:column;gap:.35rem;}
.sp-photo-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);text-align:center;}
.sp-photo-preview{width:100%;aspect-ratio:3/4;}
.sp-photo-input{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.15rem;}

.sp-entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;}
.sp-entry-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .25s;}
.sp-entry-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow);}
.sp-entry-date{padding:.65rem .85rem .35rem;font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);}
.sp-entry-thumb{height:140px;background-size:cover;background-position:center top;background-color:var(--bg-secondary);}
.sp-entry-stats{display:flex;flex-wrap:wrap;gap:.35rem;padding:.55rem .85rem;}
.sp-stat{display:flex;align-items:baseline;gap:.2rem;background:var(--bg-secondary);padding:.2rem .5rem;border-radius:6px;font-size:var(--fs-xs);}
.sp-stat-label{color:var(--text-muted);font-weight:600;font-size:var(--fs-xs);margin-right:.1rem;}
.sp-stat-val{font-family:'Space Mono',monospace;font-weight:700;color:var(--text-primary);}
.sp-stat-unit{color:var(--text-muted);font-size:var(--fs-xs);}
.sp-entry-actions{display:flex;gap:.35rem;padding:.35rem .85rem .65rem;justify-content:flex-end;}
.sp-entry-comment{padding:0 .85rem .25rem;font-size:var(--fs-xs);color:var(--text-muted);font-style:italic;}

.sp-detail-photos{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap;justify-content:center;}
.sp-detail-photo{flex:1;min-width:100px;max-width:180px;text-align:center;}
.sp-detail-photo img{width:100%;border-radius:10px;border:1px solid var(--border);}
.sp-detail-photo-label{display:block;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);margin-top:.3rem;}
.sp-detail-stats{display:flex;flex-direction:column;gap:.35rem;}
.sp-detail-row{display:flex;justify-content:space-between;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);}
.sp-detail-key{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);}
.sp-detail-val{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--accent-primary);}

.sp-chart-header{margin-bottom:1rem;max-width:250px;}
.sp-chart-select{font-size:var(--fs-md);}
.sp-chart-wrap{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;overflow:hidden;}
.sp-chart-wrap canvas{width:100%;height:280px;}

.sp-compare-selectors{display:flex;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.sp-compare-selectors .fin-label{flex:1;min-width:160px;}
.sp-compare-hint{text-align:center;color:var(--text-muted);font-size:var(--fs-md);padding:2rem;}
.sp-comp-header{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:.75rem;padding-left:70px;}
.sp-comp-col-label{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);text-align:center;padding:.4rem;background:var(--bg-card);border-radius:8px;border:1px solid var(--border);}
.sp-comp-row{margin-bottom:1rem;}
.sp-comp-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em;}
.sp-comp-photos{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.sp-comp-img{border-radius:10px;overflow:hidden;border:1px solid var(--border);background:var(--bg-secondary);aspect-ratio:3/4;}
.sp-comp-img img{width:100%;height:100%;object-fit:cover;display:block;}
.sp-comp-empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.2rem;}

.sp-comp-stats{margin-top:1.25rem;display:flex;flex-direction:column;gap:.35rem;}
.sp-comp-stat-row{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;}
.sp-comp-stat-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);min-width:100px;}
.sp-comp-stat-val{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.sp-comp-stat-arrow{color:var(--text-muted);font-size:var(--fs-sm);}
.sp-comp-diff{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;padding:.15rem .45rem;border-radius:5px;margin-left:auto;}
.diff-down{color:var(--accent-success);background:rgba(0,255,136,.08);border:1px solid rgba(0,255,136,.2);}
.diff-up{color:var(--accent-secondary);background:rgba(255,107,157,.08);border:1px solid rgba(255,107,157,.2);}

@media(max-width:768px){
    .sp-photos-row{gap:.5rem;flex-wrap:nowrap;}.sp-photo-upload{min-width:0;}.sp-form-row{flex-direction:column;gap:.5rem;}
    .sp-entry-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));}
    .sp-comp-header{padding-left:0;}.sp-comp-photos{gap:.5rem;}
    .sp-comp-stat-row{font-size:var(--fs-sm);gap:.3rem;padding:.4rem .5rem;}
}

.gym-tab:hover{color:var(--text-secondary);}

.gym-exercise-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;}
.gym-ex-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:all .25s;}
.gym-ex-card:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 6px 20px var(--shadow);}
.gym-ex-photo{height:140px;background-size:cover;background-position:center;background-color:var(--bg-secondary);}
.gym-ex-no-photo{display:flex;align-items:center;justify-content:center;font-size:2.5rem;opacity:.3;}
.gym-ex-info{padding:.75rem .85rem;flex:1;}
.gym-ex-name{font-weight:800;font-size:var(--fs-lg);color:var(--text-primary);margin-bottom:.35rem;}
.gym-ex-type{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:.15rem .5rem;border-radius:5px;letter-spacing:.02em;text-transform:uppercase;}
.gym-ex-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.35rem;}
.gym-ex-equip{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);padding:.15rem .5rem;border-radius:5px;background:var(--bg-secondary);border:1px solid var(--border);}
.gym-ex-muscles{font-size:var(--fs-xs);color:var(--text-muted);line-height:1.4;}
.gym-ex-stats-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.35rem;}
.gym-ex-stat{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-warning);background:rgba(255,179,71,.08);border:1px solid rgba(255,179,71,.2);border-radius:5px;padding:.15rem .35rem;}
.gym-ex-actions{display:flex;gap:.35rem;padding:.35rem .85rem .65rem;justify-content:flex-end;}
.gym-ex-edit,.gym-ex-del{background:none;border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;cursor:pointer;font-size:var(--fs-sm);transition:all .2s;}
.gym-ex-edit:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.06);}
.gym-ex-del:hover{border-color:var(--accent-secondary);background:rgba(255,107,157,.06);}

.gym-muscle-sections{display:flex;flex-direction:column;gap:.65rem;margin-top:.4rem;}
.gym-muscle-cat-label{font-size:var(--fs-xs);font-weight:800;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.3rem;}
.gym-muscle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.35rem;}
.gym-equip-row{display:flex;gap:.5rem;margin-top:.4rem;flex-wrap:wrap;}
.gym-equip-option{display:flex;align-items:center;gap:.3rem;padding:.4rem .7rem;border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);transition:all .2s;}
.gym-equip-option:hover{border-color:var(--accent-primary);color:var(--text-secondary);}
.gym-equip-option.active{border-color:var(--accent-primary);background:rgba(0,212,255,.08);color:var(--accent-primary);}
.gym-equip-option input{display:none;}
.gym-auto-type{margin:.4rem 0;}
.gym-auto-type-badge{display:inline-block;font-size:var(--fs-xs);font-weight:700;padding:.2rem .6rem;border-radius:6px;letter-spacing:.02em;}
.gym-muscle-cb{display:flex;align-items:center;gap:.35rem;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;padding:.25rem .4rem;border-radius:6px;border:1px solid var(--border);transition:all .15s;}
.gym-muscle-cb:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.04);}
.gym-muscle-cb input[type="checkbox"]{width:18px;height:18px;}
.gym-muscle-cb input[type="checkbox"]:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.06);}
.gym-muscle-cb input[type="checkbox"]:checked{border-color:var(--accent-primary);background:rgba(0,212,255,.12);}
.gym-muscle-cb input[type="checkbox"]:checked::after{color:var(--accent-primary);}
.gym-muscle-cb input:checked+span{color:var(--accent-primary);font-weight:700;}
.gym-ex-photo-upload{max-width:200px;}
.gym-ex-photo-upload .sp-photo-preview{aspect-ratio:4/3;max-height:150px;}

.gym-prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
@media(max-width:700px){.gym-prog-grid{grid-template-columns:1fr;}}
.gym-prog-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:all .2s;}
.gym-prog-card:hover{border-color:var(--border);}
.gym-prog-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem;flex-wrap:wrap;gap:.5rem;}
.gym-prog-header-left{display:flex;flex-direction:row;gap:.5rem;align-items:center;flex:1;min-width:0;}
.gym-prog-name{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--accent-primary);}
.gym-prog-meta{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;}
.gym-prog-count,.gym-prog-usage{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;}
.gym-prog-actions{display:flex;gap:.35rem;}
.gym-prog-btn{background:none;border:1px solid var(--border);border-radius:8px;padding:.35rem .65rem;cursor:pointer;font-size:var(--fs-sm);font-weight:700;font-family:'Manrope',sans-serif;color:var(--text-muted);transition:all .2s;}
.gym-prog-start{border-color:rgba(0,255,136,.3);color:var(--accent-success);}
.gym-prog-start:hover{background:rgba(0,255,136,.08);border-color:var(--accent-success);}
.gym-prog-edit:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.gym-prog-del:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}

.gym-prog-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;flex-wrap:wrap;transition:background .15s,opacity .15s;border-radius:8px;padding:.35rem .25rem;}
.gym-prog-drag,.drag-handle{cursor:grab;color:var(--text-muted);font-size:1.1rem;user-select:none;opacity:.4;transition:opacity .2s;flex-shrink:0;line-height:1;}
.gym-prog-drag:hover,.drag-handle:hover{opacity:1;color:var(--accent-primary);}
.drag-row-dragging{opacity:.3!important;}
.drag-row-over{background:rgba(0,212,255,.08)!important;border-radius:8px;box-shadow:0 -2px 0 var(--accent-primary) inset;}
.gym-prog-row .fin-select{flex:2;min-width:120px;}
.gym-prog-ex-pick{flex:2;min-width:120px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:.4rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);cursor:pointer;transition:all .15s;text-align:left;font-family:'Manrope',sans-serif;}
.gym-prog-ex-pick:hover{border-color:var(--accent-primary);background:var(--bg-hover);}
.gym-prog-ex-name{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.gym-prog-ex-type{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;}
.gym-prog-thumb{width:36px;height:36px;border-radius:6px;background-size:cover;background-position:center;background-color:var(--bg-secondary);border:1px solid var(--border);flex-shrink:0;}
.gym-prog-thumb-empty{display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);}
.gym-prog-x{color:var(--text-muted);font-weight:700;font-size:var(--fs-md);}
.gym-prog-row-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:.2rem .4rem;transition:color .2s;}
.gym-prog-row-del:hover{color:var(--accent-secondary);}
.gym-add-row-btn,.gym-add-set-btn{background:none;border:1px dashed var(--border);border-radius:8px;padding:.4rem .8rem;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;width:100%;margin-top:.35rem;font-family:'Manrope',sans-serif;}
.gym-add-row-btn:hover,.gym-add-set-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}

.gym-session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);}
.gym-session-prog-name{font-family:'Space Mono',monospace;font-weight:700;color:var(--accent-primary);}
.gym-session-date{font-size:var(--fs-sm);color:var(--text-muted);}
.gym-session-ex{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem;margin-bottom:.75rem;}
.gym-session-ex-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;}
.gym-session-ex-name{font-weight:800;font-size:var(--fs-lg);}
.gym-session-ex-max{font-size:var(--fs-xs);color:var(--accent-warning);font-weight:600;display:inline-flex;align-items:center;gap:.4rem;}
.gym-stat-sep{display:inline-block;width:1px;height:12px;background:var(--border);flex-shrink:0;}
.gym-session-sets{display:flex;flex-direction:column;gap:.3rem;}
.gym-session-set-row{display:flex;align-items:center;gap:.4rem;}
.gym-session-set-num{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);min-width:22px;}
.gym-session-set-row .fin-input{width:65px;text-align:center;padding:.35rem;}
.gym-session-set-x{color:var(--text-muted);font-weight:700;font-size:var(--fs-sm);}
.gym-session-set-unit{font-size:var(--fs-xs);color:var(--text-muted);}
.gym-session-cardio-row{display:flex;gap:.75rem;flex-wrap:wrap;}

.gym-session-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem;}
.gym-session-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;}
.gym-session-card-date{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);}
.gym-session-card-name{font-weight:700;font-size:var(--fs-md);color:var(--text-primary);flex:1;}
.gym-session-card-del{background:none;border:none;cursor:pointer;font-size:var(--fs-sm);opacity:.5;transition:opacity .2s;}
.gym-session-card-del:hover{opacity:1;}

.gym-test-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem;}
.gym-test-header-info{font-size:var(--fs-md);color:var(--text-secondary);}
.gym-btn-disabled{opacity:.5;cursor:not-allowed!important;pointer-events:none;}

.gym-test-order-warn{color:var(--accent-secondary);font-size:var(--fs-sm);font-weight:700;text-align:center;padding:.6rem .75rem;background:rgba(232,74,114,.08);border:1px solid rgba(232,74,114,.2);border-radius:8px;margin-bottom:1rem;}
.gym-test-form{display:flex;flex-direction:column;gap:1rem;}
.gym-test-field{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:.75rem;}
.gym-test-label{font-weight:700;font-size:var(--fs-md);color:var(--text-primary);display:block;margin-bottom:.4rem;}
.gym-test-dur-row,.gym-test-num-row{display:flex;align-items:center;gap:.4rem;}
.gym-test-dur-row span,.gym-test-num-row span{font-size:var(--fs-sm);color:var(--text-muted);}
.gym-test-prev{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.35rem;}

.gym-test-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem;position:relative;}
.gym-test-card-date{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);margin-bottom:.65rem;}
.gym-test-results{display:flex;flex-direction:column;gap:.3rem;}
.gym-test-result-row{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border);}
.gym-test-result-icon{font-size:var(--fs-md);}
.gym-test-result-label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);flex:1;}
.gym-test-result-val{font-family:'Space Mono',monospace;font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.gym-test-diff{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;padding:.1rem .4rem;border-radius:5px;}
.diff-up{color:var(--accent-success);background:rgba(0,255,136,.08);border:1px solid rgba(0,255,136,.2);}
.diff-down{color:var(--accent-secondary);background:rgba(255,107,157,.08);border:1px solid rgba(255,107,157,.2);}
.gym-test-del{position:absolute;top:.75rem;right:.75rem;background:none;border:none;cursor:pointer;font-size:var(--fs-sm);opacity:.4;transition:opacity .2s;}
.gym-test-del:hover{opacity:1;}

.gym-test-chart-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:1rem;}
.gym-test-chart-title{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin-bottom:.5rem;}

.hub-test-widget{display:flex;align-items:center;gap:.65rem;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;}
.hub-test-widget:hover{border-color:var(--accent-primary);transform:translateY(-1px);}
.hub-test-icon{font-size:1.4rem;}
.hub-test-text{font-size:var(--fs-md);color:var(--text-secondary);font-weight:600;}
.hub-test-text strong{color:var(--accent-primary);}

.gym-quick-start{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;padding:.75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;}
.gym-quick-go{max-width:140px !important;margin:0 !important;padding:.5rem 1rem !important;}
.gym-quick-empty{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;}

.gym-del-set-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-md);padding:.15rem .35rem;opacity:.4;transition:all .2s;}
.gym-del-set-btn:hover{opacity:1;color:var(--accent-secondary);}

.gym-mode-chooser{display:flex;gap:1rem;flex-wrap:wrap;}
.gym-mode-btn{flex:1;min-width:160px;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.25rem 1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.gym-mode-btn:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.05);transform:translateY(-2px);}
.gym-mode-icon{font-size:1.8rem;}
.gym-mode-label{font-size:var(--fs-lg);font-weight:800;color:var(--text-primary);}
.gym-mode-desc{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;}

.gym-step-progress{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;}
.gym-step-bar{flex:1;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden;position:relative;}
.gym-step-fill{height:100%;background:var(--accent-primary);border-radius:3px;transition:width .3s ease;position:relative;z-index:1;opacity:.35;}
.gym-step-fill-done{position:absolute;top:0;left:0;height:100%;background:var(--accent-success,#00ff88);border-radius:3px;transition:width .3s ease;z-index:2;}
.gym-step-done-count{color:var(--accent-success,#00ff88);font-weight:700;}
.gym-session-progress-wrap{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;}
.gym-step-count{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-muted);white-space:nowrap;}

.gym-step-info{display:flex;gap:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:.85rem;margin-bottom:1rem;align-items:flex-start;}
.gym-step-photo{width:90px;height:90px;border-radius:10px;background-size:cover;background-position:center;flex-shrink:0;border:1px solid var(--border);}
.gym-step-details{flex:1;min-width:0;}
.gym-step-name{font-size:1.05rem;font-weight:800;margin-bottom:.35rem;}
.gym-step-badges{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem;}
.gym-step-muscles{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.2rem;}
.gym-step-max{font-size:var(--fs-sm);color:var(--text-secondary);display:inline-flex;align-items:center;gap:.4rem;}
.gym-step-max strong{color:var(--accent-primary);}

.gym-step-input{margin-bottom:1rem;}

.gym-step-nav{display:flex;flex-direction:column;gap:.75rem;}
.gym-step-nav-main{display:flex;justify-content:space-between;align-items:center;gap:.5rem;}
.gym-step-btn{padding:.55rem 1.1rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.gym-step-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.gym-step-next{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.gym-step-next:hover{background:rgba(0,212,255,.2);}
.gym-step-nav-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;padding-top:.5rem;border-top:1px solid var(--border);}
.gym-step-action{background:none;border:1px solid var(--border);border-radius:8px;padding:.35rem .7rem;font-size:var(--fs-xs);font-weight:600;cursor:pointer;color:var(--text-muted);transition:all .2s;font-family:'Manrope',sans-serif;}
.gym-step-action:hover{border-color:var(--text-secondary);color:var(--text-secondary);}
.gym-step-add{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.05);}
.gym-step-add:hover{background:rgba(0,212,255,.12);}
.gym-step-cancel:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}

.gym-resume-banner{display:flex;align-items:center;gap:.75rem;padding:.65rem 1rem;background:rgba(0,212,255,.06);border:1px solid rgba(0,212,255,.2);border-radius:10px;margin-bottom:1rem;font-size:var(--fs-md);color:var(--text-secondary);}
.gym-resume-banner strong{color:var(--accent-primary);}
.gym-resume-btn{background:rgba(0,212,255,.12);border:1px solid var(--accent-primary);border-radius:8px;padding:.3rem .8rem;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.gym-resume-btn:hover{background:rgba(0,212,255,.2);}
.gym-resume-dismiss{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:var(--fs-lg);margin-left:auto;opacity:.5;transition:opacity .2s;}
.gym-resume-dismiss:hover{opacity:1;}

@media(max-width:768px){
    .gym-exercise-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
    .gym-ex-photo{height:100px;}
    .gym-muscle-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}
    .gym-prog-row{flex-wrap:wrap;}
    .gym-session-set-row .fin-input{width:55px;}
    .gym-mode-chooser{flex-direction:column;}
    .gym-step-info{flex-direction:column;align-items:center;text-align:center;}
    .gym-step-photo{width:120px;height:90px;}
    .gym-step-badges{justify-content:center;}
    .gym-step-nav-actions{flex-direction:column;align-items:stretch;}
}

.gym-session-mode-toggle{text-align:center;margin-bottom:.75rem;}
.gym-mode-switch{background:none;border:1px solid var(--border);border-radius:8px;padding:.35rem .75rem;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.gym-mode-switch:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.05);}

@media(max-width:768px){
    .modal-gym-session{max-width:100%;max-height:100%;height:100%;border-radius:0;border:none;padding:0;animation:none;display:flex;flex-direction:column;overflow:hidden;}
    .modal-gym-session .modal-header{flex-shrink:0;padding:.75rem 1rem .5rem;border-bottom:1px solid var(--border);}
    .modal-gym-session .modal-close{top:.75rem;right:.75rem;}
    .modal-gym-session .modal-body{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:0;}

    .modal-gym-session .gym-step-progress{flex-shrink:0;padding:.5rem 1rem;border-bottom:1px solid var(--border);margin:0;}
    .modal-gym-session .gym-session-mode-toggle{flex-shrink:0;padding:.4rem 1rem 0;}
    .modal-gym-session .gym-session-header{flex-shrink:0;padding:0 1rem .5rem;}
    .modal-gym-session .gym-step-done-wrap{flex-shrink:0;padding:0 1rem;}
    .modal-gym-session .gym-session-progress-wrap{flex-shrink:0;padding:.5rem 1rem;border-bottom:1px solid var(--border);margin:0;}

    .modal-gym-session .gym-step-input{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem 1rem;}

    .modal-gym-session .gym-session-ex{margin-left:1rem;margin-right:1rem;}

    .modal-gym-session .gym-step-nav{flex-shrink:0;padding:.5rem 1rem calc(.5rem + env(safe-area-inset-bottom,0));border-top:1px solid var(--border);background:var(--bg-card);}
    .modal.active:has(.modal-gym-session){padding:0;}
}

.gym-sessions-layout{display:flex;gap:1rem;align-items:flex-start;}
.gym-sessions-col{flex:1;min-width:0;}
.gym-hm-col-title{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.65rem;}

.gym-heatmap-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom: 1rem;}
.gym-heatmap-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;}
.gym-hm-arrow{background:none;border:1px solid var(--border);border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary);font-size:var(--fs-xs);transition:all .15s;}
.gym-hm-arrow:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.gym-hm-month{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);text-transform:capitalize;}
.gym-hm-daylabels{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:3px;text-align:center;font-size:var(--fs-xs);color:var(--text-muted);font-weight:700;}
.gym-hm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.gym-hm-cell{aspect-ratio:1;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-family:'Space Mono',monospace;color:var(--text-muted);min-height:24px;}
.gym-hm-pad{background:transparent;}
.gym-hm-empty{background:var(--bg-secondary);border:1px solid var(--border);}
.gym-hm-active{background:rgba(0,212,255,.2);border:1px solid rgba(0,212,255,.4);color:var(--accent-primary);font-weight:700;cursor:pointer;transition:all .15s;position:relative;overflow:hidden;}
.gym-hm-active::before,.gym-hm-cc::before,.gym-hm-both::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));transform:scaleX(0);transition:transform .3s;}
.gym-hm-active:hover{background:rgba(0,212,255,.35);transform:scale(1.1);border-color:var(--accent-primary);}.gym-hm-active:hover::before{transform:scaleX(1);}
.gym-hm-today{box-shadow:0 0 0 2px var(--accent-primary);}
.gym-hm-summary{font-family:'Space Mono',monospace;font-size:var(--fs-xs);color:var(--text-muted);text-align:center;margin-top:.5rem;}

.gym-ex-picker-results{max-height:300px;overflow-y:auto;border-radius:10px;margin-top:.5rem;}

@media(max-width:768px){
    .gym-sessions-layout{flex-direction:column;}
    .gym-sessions-col{flex:none;width:100%;}
}

.gym-cc-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.gym-cc-header .gym-hm-col-title{margin-bottom:0;}
.gym-hm-cc{background:rgba(180,120,255,.15);border:1px solid rgba(180,120,255,.3);color:rgba(180,120,255,1);font-weight:600;cursor:pointer;position:relative;overflow:hidden;transition:all .15s;}
.gym-hm-cc:hover{background:rgba(180,120,255,.3);transform:scale(1.1);border-color:rgba(180,120,255,.6);}.gym-hm-cc:hover::before{transform:scaleX(1);}
.gym-hm-both{background:linear-gradient(135deg,rgba(0,255,136,.15),rgba(180,120,255,.15));border:1px solid rgba(0,212,255,.3);color:var(--accent-success);font-weight:600;cursor:pointer;position:relative;overflow:hidden;transition:all .15s;}
.gym-hm-both:hover{background:linear-gradient(135deg,rgba(0,255,136,.25),rgba(180,120,255,.25));transform:scale(1.1);border-color:var(--accent-primary);}.gym-hm-both:hover::before{transform:scaleX(1);}

.gym-challenge-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem;transition:all .2s;}
.gym-challenge-card.chal-done{border-color:var(--accent-success);background:rgba(0,255,136,.03);}
.chal-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;}
.chal-icon{font-size:1.3rem;}
.chal-info{flex:1;min-width:0;}
.chal-name{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);}
.chal-sub{font-size:var(--fs-xs);color:var(--text-muted);}
.chal-progress{height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-bottom:.3rem;}
.chal-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success));border-radius:3px;transition:width .3s;}
.chal-stats{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.chal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(28px,1fr));gap:3px;margin-top:.5rem;}
.chal-day{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);border-radius:4px;background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;transition:all .15s;border:1px solid transparent;font-family:'Space Mono',monospace;}
.chal-day:hover{border-color:var(--accent-primary);}
.chal-day-done{background:rgba(0,255,136,.15);color:var(--accent-success);font-weight:700;}
.chal-day-today{border-color:var(--accent-primary);box-shadow:0 0 4px rgba(0,212,255,.3);}
.chal-day-future{opacity:.3;cursor:default;}
.chal-complete-badge{text-align:center;font-size:var(--fs-sm);font-weight:700;color:var(--accent-success);padding:.5rem 0;}
.chal-templates{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;}
.chal-template-btn{padding:.35rem .6rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-secondary);color:var(--text-primary);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;}
.chal-template-btn:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.05);}
.chal-check-today{animation:pulse-success 2s infinite;}
@keyframes pulse-success{0%,100%{box-shadow:0 0 0 0 rgba(0,255,136,.3)}50%{box-shadow:0 0 12px 4px rgba(0,255,136,.15)}}

.reward-system-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;overflow:hidden;}
.reward-system-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;}
.reward-system-title{display:flex;align-items:center;gap:.4rem;font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);}
.reward-system-icon{font-size:1.1rem;}
.reward-add-btn{padding:.35rem .75rem;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:'Manrope',sans-serif;transition:all .2s;}
.reward-add-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.04);}
.reward-empty{font-size:var(--fs-sm);color:var(--text-muted);padding:.75rem 0;text-align:center;}
.reward-section-label{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:.6rem 0 .4rem;padding-top:.4rem;border-top:1px solid var(--border);}
.reward-section-label:first-of-type{border-top:none;margin-top:0;padding-top:0;}
.reward-item{padding:.6rem .65rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;margin-bottom:.45rem;transition:all .2s;}
.reward-item-done{border-color:rgba(255,215,0,.3);background:rgba(255,215,0,.04);}
.reward-item-top{display:flex;align-items:center;gap:.5rem;}
.reward-item-icon{font-size:1.1rem;flex-shrink:0;}
.reward-item-info{flex:1;min-width:0;}
.reward-item-name{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.reward-item-cond{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.1rem;}
.reward-item-unlocked-date{font-size:var(--fs-xs);color:var(--accent-success);font-weight:600;margin-top:.1rem;}
.reward-progress-bar{height:5px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden;margin-top:.45rem;}
.reward-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success));border-radius:3px;transition:width .4s;}
.reward-progress-label{text-align:right;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.2rem;font-family:'Space Mono',monospace;}
.reward-del{font-size:var(--fs-xs);opacity:.35;padding:.15rem .25rem;flex-shrink:0;}
.reward-del:hover{opacity:1;}

.gym-exmode-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.4rem;}
.gym-exmode-option{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-radius:10px;cursor:pointer;transition:all .2s;border:1px solid transparent;}
.gym-exmode-option:hover{background:rgba(255,255,255,.03);}
.gym-exmode-active{}
.gym-exmode-label{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;}
.gym-exmode-active .gym-exmode-label{color:var(--text-primary);}

.prog-page{display:none;}
.prog-page.active{display:block;}

.gym-prog-stats-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0;}
.gym-prog-stat{font-size:var(--fs-sm);font-weight:600;padding:.25rem .55rem;border-radius:8px;background:var(--bg-secondary);color:var(--text-secondary);font-family:'Space Mono',monospace;}
.gym-prog-chart-wrap{margin-top:.5rem;overflow:hidden;}
.gym-prog-chart{width:100%;height:140px;display:block;}

.gym-s-check,.gym-s-check-cardio{width:24px;height:24px;margin-left:auto;}
.gym-session-set-row.set-checked{opacity:.5;}
.gym-session-cardio-row .gym-s-check-cardio{align-self:flex-end;margin-bottom:.35rem;}

/* ─── Completed Exercise Overlay (All-at-once mode) ─────────────────────────────── */
.gym-session-ex{position:relative;transition:all .4s ease;}
.gym-session-ex.ex-completed .gym-session-ex-inner{filter:blur(2.5px) saturate(.4);opacity:.55;pointer-events:none;}
.gym-session-ex.ex-completed .gym-ex-done-overlay{display:flex;}
.gym-ex-done-overlay{display:none;position:absolute;inset:0;align-items:center;justify-content:center;z-index:3;border-radius:10px;background:rgba(0,255,136,.06);}
.gym-ex-done-check{font-size:2.8rem;color:#00ff88;-webkit-text-fill-color:#00ff88;font-family:'Manrope',Arial,sans-serif;font-weight:900;filter:drop-shadow(0 2px 8px rgba(0,255,136,.4));animation:ex-done-pop .35s ease;}
@keyframes ex-done-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}100%{transform:scale(1);opacity:1}}

.gym-step-done-wrap{position:relative;}
.gym-step-done-wrap .gym-step-info{transition:all .3s;}
.gym-step-done-wrap.step-completed .gym-step-info{filter:blur(2px) saturate(.4);opacity:.5;}
.gym-step-done-wrap.step-completed .gym-step-done-overlay{display:flex;}
.gym-step-done-overlay{display:none;position:absolute;inset:0;align-items:center;justify-content:center;z-index:3;border-radius:12px;background:rgba(0,255,136,.06);pointer-events:none;}
.gym-step-done-overlay .gym-ex-done-check{font-size:2.4rem;}

.gym-rec-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--fs-xs);font-weight:700;color:var(--accent-success);background:rgba(0,255,136,.08);border:1px solid rgba(0,255,136,.2);border-radius:6px;padding:.15rem .45rem;margin-right:1rem;vertical-align:middle;}

.gym-session-duration{font-size:var(--fs-xs);color:var(--text-muted);font-family:'Space Mono',monospace;}
.gym-avg-duration{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.25rem;}

.gym-stretch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;margin:.75rem 0;}
.gym-stretch-card{padding:.6rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .2s;text-align:center;}
.gym-stretch-card:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.05);}
.gym-stretch-card.stretch-selected{border-color:var(--accent-success);background:rgba(0,255,136,.08);}
.gym-stretch-pick.stretch-pick-selected{border-color:var(--accent-success)!important;background:rgba(0,255,136,.06)!important;}
.gym-stretch-icon{font-size:1.4rem;margin-bottom:.2rem;}
.gym-stretch-name{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);}
.gym-stretch-desc{font-size:var(--fs-xs);color:var(--text-muted);font-style:italic;margin-top:.15rem;line-height:1.3;}
.gym-stretch-target{font-size:var(--fs-xs);color:var(--text-muted);}
.gym-stretch-count{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:700;margin:.5rem 0;text-align:center;}

.defis-layout{display:flex;flex-direction:column;gap:1rem;}
@media(min-width:900px){.defis-layout{flex-direction:row;align-items:flex-start;}.defis-layout>#defisCol{flex:1;min-width:0;}.defis-layout>#rewardSystemWrap{flex:1;min-width:0;}}
.gym-milestone-tag{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;background:rgba(255,179,71,.1);border:1px solid rgba(255,179,71,.25);border-radius:6px;color:#ffb347;font-weight:600;}
.gym-milestone-del{background:none;border:none;color:rgba(255,179,71,.5);cursor:pointer;font-size:.7rem;padding:0 .1rem;line-height:1;}.gym-milestone-del:hover{color:#ff6b9d;}

/* ============================================
   RUSSE — Flashcard System
   ============================================ */

.russe-dashboard{max-width:640px;margin:0 auto;}
.russe-stats-bar{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin-bottom:1.25rem;}
.russe-stat{text-align:center;padding:.65rem .3rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;}
.russe-stat-val{font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--text-primary);}
.russe-stat-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:700;margin-top:.15rem;text-transform:uppercase;letter-spacing:.03em;}
.russe-stat-new .russe-stat-val{color:var(--accent-primary);}
.russe-stat-learning .russe-stat-val{color:#ffb347;}
.russe-stat-review .russe-stat-val{color:#ff6b9d;}
.russe-stat-mastered .russe-stat-val{color:var(--accent-success);}

.russe-progress{margin-bottom:1.25rem;}
.russe-progress-bar{height:8px;background:var(--bg-secondary);border-radius:4px;overflow:hidden;display:flex;}
.russe-prog-seg{height:100%;transition:width .4s;}
.russe-prog-mastered{background:var(--accent-success);}
.russe-prog-review{background:#ff6b9d;}
.russe-prog-learning{background:#ffb347;}
.russe-progress-label{text-align:right;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.3rem;font-weight:700;}

.russe-action-area{text-align:center;margin-bottom:1rem;}
.russe-due-badge{display:inline-block;padding:.5rem 1rem;border-radius:10px;font-size:var(--fs-md);font-weight:700;background:rgba(255,107,157,.08);border:1px solid rgba(255,107,157,.25);color:#ff6b9d;margin-bottom:.75rem;}
.russe-due-done{background:rgba(0,255,136,.08);border-color:rgba(0,255,136,.25);color:var(--accent-success);}
.russe-bonus-btn{display:block;margin:.5rem auto 0;padding:.55rem 1.2rem;border:1px solid rgba(255,179,71,.3);border-radius:10px;background:rgba(255,179,71,.06);color:#ffb347;font-family:'Manrope',sans-serif;font-size:var(--fs-md);font-weight:700;cursor:pointer;transition:all .25s;}
.russe-bonus-btn:hover{background:rgba(255,179,71,.12);border-color:#ffb347;transform:translateY(-1px);}
.russe-bonus-used{opacity:.4;cursor:not-allowed;border-color:var(--border);color:var(--text-muted);background:var(--bg-secondary);}
.russe-bonus-used:hover{transform:none;background:var(--bg-secondary);border-color:var(--border);}.russe-start-btn{display:block;width:100%;padding:1rem;border:none;border-radius:12px;background:linear-gradient(135deg,var(--accent-primary),#0090b8);color:#fff;font-family:'Manrope',sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all .25s;letter-spacing:-.01em;}
.russe-start-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,212,255,.25);}
.russe-start-btn.russe-start-new{background:linear-gradient(135deg,#ffb347,#ff8c00);}
.russe-start-btn.russe-start-new:hover{box-shadow:0 6px 20px rgba(255,179,71,.25);}

.russe-today-activity{text-align:center;font-size:var(--fs-sm);color:var(--text-secondary);padding:.5rem;margin-bottom:1rem;}

.russe-bottom-row{border-top:1px solid var(--border);padding-top:1rem;margin-top:.5rem;}
.russe-import-area{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap;}
.russe-import-btn{padding:.5rem .85rem;border:1px dashed var(--border);border-radius:8px;background:transparent;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;font-family:'Manrope',sans-serif;transition:all .2s;}
.russe-import-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.russe-import-hint{font-size:var(--fs-xs);color:var(--text-muted);}
.russe-settings-row{margin-bottom:.75rem;}
.russe-setting-label{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:600;display:flex;align-items:center;gap:.5rem;}
.russe-setting-input{width:60px;padding:.3rem .4rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Space Mono',monospace;font-size:var(--fs-sm);text-align:center;}

.russe-empty{text-align:center;padding:2rem 1rem;color:var(--text-muted);}

/* ============================================
   REVIEW SESSION
   ============================================ */
.russe-review{display:flex;flex-direction:column;max-width:540px;margin:0 auto;}

.russe-review-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;}
.russe-back-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:.3rem .55rem;transition:all .2s;}
.russe-back-btn:hover{border-color:var(--accent-secondary);color:var(--accent-secondary);}
.russe-review-progress{flex:1;}
.russe-review-count{font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:.3rem;text-align:center;}
.russe-review-bar{height:4px;background:var(--bg-secondary);border-radius:2px;overflow:hidden;}
.russe-review-bar-fill{height:100%;background:var(--accent-primary);border-radius:2px;transition:width .3s;}
.russe-direction-badge{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:6px;white-space:nowrap;letter-spacing:.04em;}

.russe-card-container{flex:1;display:flex;align-items:center;justify-content:center;perspective:1000px;padding:50px 0;min-height:220px;}
.russe-card{width:100%;max-width:440px;min-height:200px;position:relative;cursor:pointer;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.2,.2,1);}
.russe-card.flipped{transform:rotateY(180deg);}
.russe-card-front,.russe-card-back{position:absolute;top:0;left:0;width:100%;min-height:200px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1.5rem;text-align:center;transition:filter .4s;}
.russe-card-front{background:var(--bg-card);border:2px solid var(--border);z-index:2;}
.russe-card-back{background:var(--bg-card);border:2px solid rgba(0,212,255,.3);transform:rotateY(180deg);z-index:1;}
.russe-card.flipped .russe-card-front{z-index:1;filter:blur(8px);}.russe-card.flipped .russe-card-back{z-index:2;background:linear-gradient(135deg,rgba(0,212,255,.06),rgba(255,107,157,.04));}
.russe-card-lang{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:.75rem;}
.russe-card-word{font-size:1.6rem;font-weight:700;color:var(--text-primary);line-height:1.4;word-break:break-word;}
.russe-card-back .russe-card-word{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.russe-card-tap{font-size:var(--fs-xs);color:var(--text-muted);margin-top:1rem;opacity:.6;}
.russe-card.flipped~.russe-card-tap-hint{display:none;}

.russe-answer-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;padding:1rem 0;margin-top:auto;}
.russe-ans-btn{padding:.7rem .3rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);cursor:pointer;transition:all .2s;text-align:center;font-family:'Manrope',sans-serif;}
.russe-ans-btn:hover{transform:translateY(-2px);}
.russe-ans-label{display:block;font-size:var(--fs-sm);font-weight:700;margin-bottom:.15rem;}
.russe-ans-sub{display:block;font-size:var(--fs-xs);font-family:'Space Mono',monospace;color:var(--text-muted);}

.russe-ans-again{border-color:rgba(255,60,60,.3);}.russe-ans-again:hover{background:rgba(255,60,60,.08);}
.russe-ans-again .russe-ans-label{color:#ff3c3c;}
.russe-ans-hard{border-color:rgba(255,179,71,.3);}.russe-ans-hard:hover{background:rgba(255,179,71,.08);}
.russe-ans-hard .russe-ans-label{color:#ffb347;}
.russe-ans-good{border-color:rgba(0,255,136,.3);}.russe-ans-good:hover{background:rgba(0,255,136,.08);}
.russe-ans-good .russe-ans-label{color:var(--accent-success);}
.russe-ans-easy{border-color:rgba(0,212,255,.3);}.russe-ans-easy:hover{background:rgba(0,212,255,.08);}
.russe-ans-easy .russe-ans-label{color:var(--accent-primary);}

/* ============================================
   SESSION COMPLETE
   ============================================ */
.russe-complete{text-align:center;max-width:440px;margin:0 auto;padding:2rem 1rem;}
.russe-complete-icon{font-size:3rem;margin-bottom:.75rem;}
.russe-complete-title{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;margin-bottom:1.25rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.russe-session-stat{margin-bottom:1rem;}
.russe-session-total{font-family:'Space Mono',monospace;font-size:2.2rem;font-weight:700;color:var(--accent-primary);display:block;}
.russe-session-stat span:last-child{color:var(--text-muted);font-size:var(--fs-md);}
.russe-session-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1.5rem;}
.russe-breakdown-item{padding:.6rem .3rem;border-radius:10px;background:var(--bg-card);border:1px solid var(--border);font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary);}
.russe-brk-count{display:block;font-family:'Space Mono',monospace;font-size:1.1rem;margin-bottom:.15rem;}
.russe-brk-again .russe-brk-count{color:#ff3c3c;}
.russe-brk-hard .russe-brk-count{color:#ffb347;}
.russe-brk-good .russe-brk-count{color:var(--accent-success);}
.russe-brk-easy .russe-brk-count{color:var(--accent-primary);}

/* ============================================
   STUDY HEATMAP
   ============================================ */
.russe-heatmap{margin:1rem 0;padding:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;}
.russe-heatmap-title{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.6rem;}
.russe-heatmap-day-labels{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:.3rem;text-align:center;font-size:var(--fs-xs);color:var(--text-muted);font-weight:700;}
.russe-heat-0{background:var(--bg-secondary);border:1px solid var(--border);}
.russe-heat-1{background:rgba(0,212,255,.15);border:1px solid rgba(0,212,255,.2);}
.russe-heat-2{background:rgba(0,212,255,.3);border:1px solid rgba(0,212,255,.35);}
.russe-heat-3{background:rgba(0,255,136,.3);border:1px solid rgba(0,255,136,.35);}
.russe-heat-4{background:rgba(0,255,136,.5);border:1px solid rgba(0,255,136,.5);}
.russe-heat-5{background:rgba(0,255,136,.7);border:1px solid rgba(0,255,136,.65);}
.russe-heat-today{outline:2px solid var(--accent-primary);outline-offset:-1px;border-radius:4px;}
.russe-heatmap .heatmap-cell{font-size:var(--fs-xs);font-family:'Space Mono',monospace;color:var(--text-muted);font-weight:700;}
.russe-heatmap .heatmap-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;}
.russe-heatmap .heatmap-cell{aspect-ratio:1;border-radius:3px;min-height:18px;display:flex;align-items:center;justify-content:center;}
.russe-heatmap .heatmap-pad{background:transparent;border:none;}
.russe-heatmap .heatmap-month{margin-bottom:.75rem;}
.russe-heatmap .heatmap-month-label{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);margin-bottom:.25rem;text-transform:capitalize;}
.russe-heatmap-legend{display:flex;align-items:center;gap:4px;margin-top:.5rem;justify-content:center;}
.russe-heat-legend-cell{width:14px;height:14px;border-radius:3px;display:inline-block;}
.russe-heat-legend-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;margin:0 .25rem;}

/* ============================================
   TRACKER DUE BADGE (hub)
   ============================================ */
.tracker-due{font-size:var(--fs-xs);font-weight:700;color:#ff6b9d;margin-top:.15rem;text-align:center;}

/* ============================================
   CARD LIST & ADD CARD
   ============================================ */
.russe-list-search{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-md);margin-bottom:.75rem;outline:none;transition:border-color .2s;}
.russe-list-search:focus{border-color:var(--accent-primary);}
.russe-list-header{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem;font-size:var(--fs-xs);color:var(--text-muted);font-weight:700;padding:0 .5rem;text-transform:uppercase;letter-spacing:.04em;}
.russe-lh-cat{width:70px;flex-shrink:0;}.russe-lh-status{width:72px;flex-shrink:0;}.russe-lh-actions{width:52px;flex-shrink:0;}
.russe-list-scroll{max-height:55vh;overflow-y:auto;}
.russe-list-scroll::-webkit-scrollbar{width:3px;}.russe-list-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.russe-list-row{display:flex;align-items:center;padding:.45rem .5rem;border-bottom:1px solid var(--border);font-size:var(--fs-sm);gap:.5rem;transition:background .12s;}
.russe-list-row:hover{background:var(--bg-hover);}
.russe-list-fr{flex:1;color:var(--text-primary);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.russe-list-ru{flex:1;color:var(--accent-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.russe-list-cat{width:70px;flex-shrink:0;font-size:var(--fs-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.russe-list-status{width:72px;flex-shrink:0;font-size:var(--fs-xs);font-weight:700;padding:.15rem .4rem;border-radius:5px;white-space:nowrap;text-align:center;}
.russe-list-status.st-new{color:var(--text-muted);background:var(--bg-secondary);}
.russe-list-status.st-learning{color:#ffb347;background:rgba(255,179,71,.1);}
.russe-list-status.st-review{color:#ff6b9d;background:rgba(255,107,157,.1);}
.russe-list-status.st-mastered{color:var(--accent-success);background:rgba(0,255,136,.1);}
.russe-list-actions{width:52px;flex-shrink:0;display:flex;gap:2px;justify-content:flex-end;}
.russe-list-edit{background:none;border:none;cursor:pointer;font-size:var(--fs-xs);padding:.15rem .25rem;border-radius:4px;transition:all .15s;opacity:.6;}
.russe-list-edit:hover{opacity:1;background:rgba(0,212,255,.08);}
.russe-list-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-sm);padding:.15rem .3rem;border-radius:4px;transition:all .15s;}
.russe-list-del:hover{color:var(--accent-secondary);background:rgba(255,107,157,.08);}
.russe-list-count{font-size:var(--fs-sm);color:var(--text-muted);text-align:center;padding:.5rem;margin-top:.3rem;}

.russe-add-row{display:flex;gap:.4rem;margin-bottom:.75rem;max-width:100%;box-sizing:border-box;flex-wrap:wrap;}
.russe-add-row input{flex:1 1 100px;min-width:0;padding:.45rem .6rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-input);color:var(--text-primary);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);outline:none;box-sizing:border-box;}
.russe-add-row input:focus{border-color:var(--accent-primary);}
.russe-add-row .cat-ac-wrap{flex:1 1 100px;min-width:0;max-width:none !important;}
.russe-add-row button{padding:.45rem .75rem;border:none;border-radius:7px;background:var(--accent-primary);color:#0a0e1a;font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;white-space:nowrap;flex-shrink:0;}
.russe-add-row button:hover{opacity:.85;}

/* ============================================
   MOBILE
   ============================================ */
@media(max-width:768px){
    .russe-stats-bar{grid-template-columns:repeat(5,1fr);gap:.3rem;}
    .russe-stat{padding:.5rem .2rem;}
    .russe-stat-val{font-size:var(--fs-lg);}
    .russe-stat-label{font-size:var(--fs-xs);}
    .russe-card-word{font-size:1.3rem;}
    .russe-answer-btns{gap:.35rem;}
    .russe-ans-label{font-size:var(--fs-xs);}
    .russe-ans-sub{font-size:var(--fs-xs);}
    .russe-session-breakdown{grid-template-columns:repeat(4,1fr);gap:.3rem;}
}
@media(max-width:380px){
    .russe-stats-bar{grid-template-columns:repeat(3,1fr);}
    .russe-answer-btns{grid-template-columns:repeat(2,1fr);}
}

/* ============================================
   RUSSIAN SONGS
   ============================================ */
#page-russe>.russe-tabs{max-width:640px;margin-left:auto;margin-right:auto;}
.songs-dashboard{display:flex;flex-direction:column;gap:.75rem;max-width:640px;margin:0 auto;}
.songs-top-bar{display:flex;align-items:flex-start;gap:.75rem;flex-wrap:wrap;}
.songs-top-bar .car-stat-grid{margin-bottom:0;}
.songs-header{display:flex;justify-content:flex-end;}
.songs-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
@media(max-width:520px){.songs-grid{grid-template-columns:1fr;}}
.songs-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s;}
.songs-card:hover{border-color:var(--accent-primary);box-shadow:0 2px 12px rgba(var(--accent-primary-rgb),.12);}
.songs-card-done{border-color:rgba(var(--accent-primary-rgb),.4);background:rgba(var(--accent-primary-rgb),.03);}
.songs-card-main{padding:.7rem .8rem;flex:1;cursor:pointer;}
.songs-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.4rem;}
.songs-card-title{font-weight:600;font-size:var(--fs-md);line-height:1.3;}
.songs-card-artist{font-size:var(--fs-sm);color:var(--text-muted);margin-top:.1rem;}
.songs-badge-done{flex-shrink:0;width:1.3rem;height:1.3rem;background:var(--accent-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700;}
.songs-card-meta{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.3rem;}
.songs-meta-chip{font-size:var(--fs-xs);padding:.1rem .35rem;background:var(--bg-secondary);border-radius:4px;color:var(--text-muted);}
.songs-meta-cards{color:var(--accent-primary);background:rgba(var(--accent-primary-rgb),.08);}
.songs-progress-bar{margin-top:.5rem;height:3px;background:var(--bg-secondary);border-radius:99px;overflow:hidden;}
.songs-progress-fill{height:100%;background:var(--accent-primary);border-radius:99px;transition:width .3s;}
.songs-card-actions{display:flex;gap:.25rem;padding:.35rem .5rem;border-top:1px solid var(--border);}

.song-lines-editor{display:flex;flex-direction:column;gap:.35rem;max-height:40vh;overflow-y:auto;padding:.3rem 0;}
.song-line-row{display:flex;align-items:center;gap:.35rem;}
.song-line-num{font-size:var(--fs-xs);color:var(--text-muted);min-width:1.4rem;text-align:right;font-family:'Space Mono',monospace;}
.song-line-fields{flex:1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:.25rem;}
@media(max-width:500px){.song-line-fields{grid-template-columns:1fr 1fr;}}
.song-lines-editor{display:flex;flex-direction:column;gap:.4rem;max-height:50vh;overflow-y:auto;}
.song-line-row{display:flex;gap:.4rem;align-items:flex-start;padding:.35rem 0;border-bottom:1px solid var(--border);}
.song-line-num{flex:0 0 24px;font-size:var(--fs-xs);color:var(--text-muted);text-align:center;padding-top:.3rem;}
.song-line-fields{flex:1;display:flex;flex-direction:column;gap:.2rem;}
.song-line-fields .fin-input{font-size:var(--fs-sm);padding:.3rem .5rem;}
.song-study{display:flex;flex-direction:column;gap:.5rem;}
.song-study-icons{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap;}
.song-study-icons .note-view-btn{width:34px;height:34px;border:1px solid var(--border);border-radius:7px;background:var(--bg-secondary);cursor:pointer;font-size:var(--fs-lg);display:flex;align-items:center;justify-content:center;transition:all .2s;text-decoration:none;}
.song-study-icons .note-view-btn:hover{border-color:var(--accent-primary);background:rgba(0,212,255,.05);}
.song-study-icons .song-del-btn:hover{border-color:var(--accent-secondary);background:rgba(255,107,157,.05);}
.song-studied-wrap{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-secondary);transition:all .2s;width:fit-content;}
.song-studied-wrap:has(input:checked){background:rgba(166,227,161,.08);border-color:rgba(166,227,161,.3);}
.song-studied-wrap input[type=checkbox]{accent-color:var(--accent-success,#a6e3a1);width:16px;height:16px;}
.song-studied-label{font-weight:600;}
.song-study-lines{display:flex;flex-direction:column;gap:.2rem;}
.song-study-line{padding:.5rem .65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;}
.song-study-line.revealed{background:rgba(var(--accent-primary-rgb),.04);}
.song-study-ru{font-size:var(--fs-md);font-weight:500;margin-bottom:.2rem;}
.song-study-fr{font-size:var(--fs-sm);color:var(--accent-primary);}
.song-study-fr.hidden,.song-study-notes.hidden{display:none;}
.song-study-notes{font-size:var(--fs-xs);color:var(--text-muted);margin-top:.15rem;font-style:italic;}
.song-study-actions{display:flex;gap:.25rem;margin-top:.25rem;}
.song-reveal-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:.2rem .4rem;font-size:var(--fs-sm);cursor:pointer;}

.russe-insights{display:flex;gap:.5rem;margin:.5rem 0;}
.russe-insight{flex:1;text-align:center;padding:.5rem .35rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;}
.russe-insight-val{display:block;font-size:1rem;font-weight:700;color:var(--accent-primary);}
.russe-insight-lbl{display:block;font-size:var(--fs-xs);color:var(--text-muted);margin-top:.1rem;}

.russe-difficult{margin:.5rem 0;padding:.5rem .65rem;background:rgba(255,160,50,.04);border:1px solid rgba(255,160,50,.15);border-radius:8px;}
.russe-diff-title{font-size:var(--fs-sm);font-weight:700;margin-bottom:.35rem;color:var(--accent-warning);}
.russe-diff-word{display:flex;gap:.5rem;align-items:center;padding:.25rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);}
.russe-diff-word:last-child{border-bottom:none;}
.russe-diff-ru{flex:1;font-weight:600;}
.russe-diff-fr{flex:1;color:var(--text-muted);}
.russe-diff-lapses{font-size:var(--fs-xs);color:var(--accent-warning);white-space:nowrap;}
.russe-diff-compact{padding:.4rem .6rem;}.russe-diff-compact .russe-diff-title{margin-bottom:.2rem;}.russe-diff-compact .russe-diff-word{padding:.2rem 0;}

.russe-categories{margin:.5rem 0;}
.russe-cats-title{font-size:var(--fs-sm);font-weight:700;margin-bottom:.35rem;}
.russe-cats-grid{display:flex;gap:.3rem;flex-wrap:wrap;}
.russe-cat-chip{padding:.3rem .55rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-size:var(--fs-sm);display:flex;flex-direction:column;gap:.1rem;}
.russe-cat-name{font-weight:600;}
.russe-cat-stat{font-size:var(--fs-xs);color:var(--text-muted);}

.typing-mode-select{display:flex;gap:.5rem;}
.typing-dur-btn{padding:.3rem .7rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;font-family:'Space Mono',monospace;}
.typing-dur-btn.typing-dur-active{border-color:var(--accent-primary);color:var(--accent-primary);background:rgba(0,212,255,.08);}
.typing-timer{text-align:center;font-size:1.4rem;font-weight:700;font-family:'Space Mono',monospace;color:var(--accent-primary);margin-bottom:.5rem;}
.typing-display{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:.75rem;min-height:60px;font-size:var(--fs-lg);line-height:1.8;font-family:'Manrope',sans-serif;overflow:hidden;margin-bottom:.5rem;}
.typing-word{color:var(--text-muted);transition:color .1s;}
.typing-word-done{color:var(--text-secondary);opacity:.4;}
.typing-word-current{color:var(--text-primary);font-weight:600;}
.typing-char-ok{color:var(--accent-success);}
.typing-char-err{color:var(--accent-secondary);text-decoration:underline;text-decoration-style:wavy;}
.typing-char-cursor{background:rgba(0,212,255,.2);border-bottom:2px solid var(--accent-primary);padding:0 1px;}
.typing-keyboard{display:flex;flex-direction:column;align-items:center;gap:4px;margin:.5rem 0;}
.typing-kb-row{display:flex;gap:3px;justify-content:center;}
.typing-kb-row-shift{margin-left:16px;}
.typing-key{min-width:28px;height:34px;border:1px solid var(--border);border-radius:5px;background:var(--bg-secondary);color:var(--text-primary);font-size:var(--fs-sm);cursor:pointer;transition:all .1s;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:'Manrope',sans-serif;}
.typing-key:hover{background:rgba(0,212,255,.1);border-color:var(--accent-primary);}
.typing-key:active{background:var(--accent-primary);color:#000;transform:scale(.95);}
.typing-key-wide{min-width:48px;font-size:var(--fs-xs);}
.typing-key-space{min-width:180px;font-size:var(--fs-xs);color:var(--text-muted);}
.typing-live-stats{display:flex;justify-content:center;gap:1.2rem;font-size:var(--fs-sm);font-family:'Space Mono',monospace;color:var(--text-muted);margin-top:.4rem;}
.typing-results{text-align:center;padding:1rem 0;}
.typing-result-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem;color:var(--text-primary);}
.typing-result-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.typing-result-stat{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.6rem;}
.typing-result-val{font-size:1.3rem;font-weight:700;font-family:'Space Mono',monospace;color:var(--accent-primary);}
.typing-result-label{font-size:var(--fs-xs);color:var(--text-muted);}

.typing-words-review{margin-top:1rem;text-align:left;}
.typing-review-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.03em;}
.typing-review-list{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:.15rem;}
.typing-review-row{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:6px;font-size:var(--fs-sm);font-family:'Space Mono',monospace;}
.typing-review-ok{background:rgba(0,255,136,.04);}
.typing-review-err{background:rgba(255,107,157,.04);}
.typing-review-word{flex:1;color:var(--text-primary);font-weight:600;}
.typing-review-typed{flex:1;color:var(--accent-secondary);text-decoration:line-through;opacity:.7;}
.typing-review-badge{flex-shrink:0;font-size:var(--fs-xs);font-weight:700;}
.typing-review-ok .typing-review-badge{color:var(--accent-success);}
.typing-review-err .typing-review-badge{color:var(--accent-secondary);}

.typing-hist-scroll{max-height:60vh;overflow-y:auto;display:flex;flex-direction:column;gap:.2rem;}
.typing-hist-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;border-radius:8px;border:1px solid var(--border);font-size:var(--fs-sm);transition:background .12s;}
.typing-hist-clickable{cursor:pointer;}
.typing-hist-clickable:hover{background:var(--bg-hover);border-color:var(--accent-primary);}
.typing-hist-date{font-weight:600;color:var(--text-primary);min-width:90px;}
.typing-hist-stat{color:var(--text-muted);white-space:nowrap;}
.typing-hist-arrow{margin-left:auto;color:var(--text-muted);font-size:var(--fs-lg);flex-shrink:0;}
.typing-detail-stats{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.75rem;font-size:var(--fs-sm);color:var(--text-muted);}

.typing-sent-row{padding:.5rem .6rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.15rem;transition:background .12s;}
.typing-sent-word{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:.2rem;word-break:break-word;}
.typing-sent-meta{display:flex;gap:.5rem;align-items:center;font-size:var(--fs-xs);}
.typing-sent-date{color:var(--text-muted);margin-left:auto;}
.typing-sent-card{color:var(--accent-primary);font-weight:600;font-size:var(--fs-xs);}
.typing-sent-group-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);padding:.5rem .2rem .2rem;margin-top:.4rem;border-bottom:1px solid var(--border);}

@media(max-width:768px){.russe-tab-typing{display:none!important;}}

/* ============================================
   SENTENCE CHALLENGE
   ============================================ */
.russe-sentence-challenge{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem;text-align:center;gap:.6rem;}
.russe-sentence-icon{font-size:2rem;}
.russe-sentence-prompt{font-size:var(--fs-sm);color:var(--text-muted);}
.russe-sentence-word{font-size:1.4rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.russe-sentence-hint{font-size:var(--fs-sm);color:var(--text-muted);font-style:italic;margin-bottom:.5rem;}
.russe-sentence-input{width:100%;max-width:400px;padding:.6rem .8rem;border:2px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:var(--fs-base);resize:none;font-family:inherit;transition:border-color .2s;}
.russe-sentence-input:focus{outline:none;border-color:var(--accent-primary);}
.russe-sentence-feedback{font-size:var(--fs-sm);padding:.35rem .7rem;border-radius:6px;margin-top:.2rem;}
.russe-sentence-ok{color:var(--accent-success);background:rgba(0,255,136,.08);}
.russe-sentence-fail{color:var(--accent-warning);background:rgba(255,160,50,.08);}
.russe-sentence-submit{padding:.5rem 1.5rem;border:none;border-radius:8px;background:var(--accent-primary);color:#fff;font-weight:600;cursor:pointer;font-size:var(--fs-sm);}
.russe-sentence-submit:active{transform:scale(.97);}
.russe-sentence-skip{padding:.35rem 1rem;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);}
.russe-sentence-skip:hover{color:var(--text-primary);}

/* ============================================
   COMPLICATED WORDS
   ============================================ */
.russe-comp-toggle{padding:.15rem .35rem;border:1px solid var(--border);border-radius:5px;background:var(--bg-secondary);cursor:pointer;font-size:var(--fs-xs);line-height:1;opacity:.5;transition:opacity .2s,background .2s;}
.russe-comp-toggle:hover,.russe-comp-toggle.active{opacity:1;}
.russe-comp-toggle.active{background:rgba(196,160,247,.15);border-color:rgba(196,160,247,.4);}
.russe-complicated-section{margin:.5rem 0;padding:.5rem .65rem;background:rgba(196,160,247,.04);border:1px solid rgba(196,160,247,.15);border-radius:8px;}
.russe-comp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem;}
.russe-comp-practice-btn{padding:.3rem .7rem;border:1px solid rgba(196,160,247,.4);border-radius:6px;background:rgba(196,160,247,.1);color:var(--accent-secondary);font-size:var(--fs-xs);font-weight:600;cursor:pointer;}
.russe-comp-practice-btn:active{transform:scale(.97);}
.russe-comp-list{display:flex;flex-direction:column;gap:.15rem;}
.russe-comp-word{display:flex;gap:.5rem;align-items:center;padding:.2rem 0;font-size:var(--fs-sm);}
.russe-comp-more{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;padding:.2rem 0;}
.russe-complicated-badge{font-size:var(--fs-xs);padding:.15rem .4rem;border-radius:4px;background:rgba(196,160,247,.12);color:var(--accent-secondary);margin-top:.3rem;}

/* ============================================
   FAUX AMIS
   ============================================ */
.russe-faux-amis{margin-top:.4rem;padding:.3rem .6rem;border-radius:6px;background:rgba(255,160,50,.08);border:1px solid rgba(255,160,50,.2);color:var(--accent-warning);font-size:var(--fs-sm);font-weight:600;}
.russe-fa-inline{font-size:var(--fs-xs);color:var(--accent-warning);white-space:nowrap;}
.russe-fa-vs{color:var(--accent-warning);font-weight:700;font-size:var(--fs-sm);flex-shrink:0;}
.russe-fa-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem;min-height:1.5rem;}
.russe-fa-chip{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;border-radius:5px;background:rgba(255,160,50,.1);border:1px solid rgba(255,160,50,.25);color:var(--text-primary);font-size:var(--fs-xs);}
.russe-fa-rm{cursor:pointer;opacity:.6;font-size:var(--fs-xs);}
.russe-fa-rm:hover{opacity:1;}
.russe-toggle-row{display:flex;justify-content:space-between;align-items:center;}

/* ============================================
   SONG RELATED CARDS
   ============================================ */
.song-line-related{margin-top:.2rem;}
.song-rc-pills{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.3rem;}
.song-rc-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .45rem;border-radius:5px;background:rgba(var(--accent-primary-rgb),.08);border:1px solid rgba(var(--accent-primary-rgb),.2);font-size:var(--fs-xs);color:var(--text-primary);max-width:100%;}
.song-rc-pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.song-rc-unlink{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-xs);padding:0 .15rem;line-height:1;opacity:.6;flex-shrink:0;}
.song-rc-unlink:hover{opacity:1;color:var(--accent-secondary);}
.song-rc-form{margin-top:.35rem;padding:.5rem;border:1px dashed var(--border);border-radius:8px;background:var(--bg-secondary);display:flex;flex-direction:column;gap:.35rem;}
.song-rc-results{display:flex;flex-direction:column;gap:.15rem;max-height:140px;overflow-y:auto;}
.song-rc-result{display:flex;gap:.5rem;align-items:center;padding:.35rem .5rem;border-radius:6px;cursor:pointer;font-size:var(--fs-sm);transition:background .12s;border:1px solid var(--border);}
.song-rc-result:hover{background:rgba(var(--accent-primary-rgb),.06);border-color:var(--accent-primary);}
.song-rc-result-ru{font-weight:600;color:var(--text-primary);}
.song-rc-result-fr{color:var(--accent-primary);}
.song-rc-result-cat{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;}
.song-rc-no-match{font-size:var(--fs-xs);color:var(--text-muted);padding:.25rem;text-align:center;}
.song-rc-create-row{display:flex;gap:.25rem;flex-wrap:wrap;}
.song-rc-create-row .fin-input{flex:1;min-width:100px;font-size:var(--fs-sm);padding:.3rem .5rem;}
.song-rc-form-actions{display:flex;gap:.3rem;}
.song-rc-pill-study{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .4rem;border-radius:5px;font-size:var(--fs-xs);background:rgba(var(--accent-primary-rgb),.06);border:1px solid rgba(var(--accent-primary-rgb),.15);color:var(--accent-primary);font-weight:600;}
.song-study-related{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem;}

/* ============================================
   DUPLICATE DETECTION
   ============================================ */
.russe-dup-group{padding:.5rem .65rem;border:1px solid rgba(255,160,50,.2);background:rgba(255,160,50,.04);border-radius:8px;margin-bottom:.5rem;}
.russe-dup-group-title{font-size:var(--fs-xs);color:var(--accent-warning);font-weight:700;margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.03em;}
.russe-dup-row{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);}
.russe-dup-row:last-child{border-bottom:none;}
.russe-dup-ru{flex:1;font-weight:600;color:var(--text-primary);}
.russe-dup-fr{flex:1;color:var(--accent-primary);}
.russe-dup-cat{font-size:var(--fs-xs);color:var(--text-muted);width:70px;}
.russe-dup-status{font-size:var(--fs-xs);color:var(--text-muted);white-space:nowrap;flex-shrink:0;}
.russe-dup-actions{display:flex;gap:.35rem;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);}
.russe-dup-scroll{max-height:60vh;overflow-y:auto;}
.russe-dup-merge-sources{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem;padding:.5rem;border-radius:8px;background:var(--bg-secondary);border:1px solid var(--border);}
.russe-dup-merge-src{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;font-size:var(--fs-sm);padding:.2rem 0;}
.russe-dup-merge-src.russe-dup-merge-best{background:rgba(var(--accent-primary-rgb),.06);padding:.3rem .5rem;border-radius:6px;border:1px solid rgba(var(--accent-primary-rgb),.2);}
.russe-dup-best-tag{color:var(--accent-primary);font-weight:700;font-size:var(--fs-md);flex-shrink:0;}

.nsfw-section-title{font-size:var(--fs-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-primary);opacity:.8;margin-bottom:.6rem;display:flex;align-items:center;gap:.4rem;}

.lock-active,.lock-revealed,.lock-setup{text-align:center;}
.lock-active{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
.lock-icon{font-size:2.5rem;margin-bottom:.5rem;}
.lock-timer{font-family:'Space Mono',monospace;font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.3rem;}
.lock-label{font-size:var(--fs-sm);color:var(--text-muted);}
.lock-photo{max-width:100%;max-height:300px;border-radius:10px;margin-top:.75rem;border:2px solid var(--accent-primary);}
.lock-setup label{text-align:left;}

.lock-photo-upload{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:.75rem;}
.lock-photo-blur{width:120px;height:160px;border:2px dashed var(--border);border-radius:10px;background:var(--bg-secondary);cursor:pointer;position:relative;overflow:hidden;transition:all .25s;}
.lock-photo-blur:hover{border-color:var(--accent-primary);}
.lock-photo-blur::after{content:'\FF0B';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:var(--text-muted);transition:opacity .2s;z-index:2;}
.lock-photo-blur.has-photo{border-style:solid;border-color:var(--accent-primary);}
.lock-photo-blur.has-photo::before{content:'';position:absolute;inset:-10px;background-image:var(--lock-bg);background-size:cover;background-position:center;filter:blur(20px);-webkit-filter:blur(20px);z-index:1;}
.lock-photo-blur.has-photo::after{opacity:0;}
.lock-photo-blur.drag-over{border-color:var(--accent-primary)!important;background-color:var(--bg-hover)!important;box-shadow:0 0 12px var(--shadow);}

.panty-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.6rem;}
.panty-item{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-secondary);transition:all .2s;}
.panty-item:hover{border-color:var(--accent-primary);transform:translateY(-2px);box-shadow:0 4px 12px var(--shadow);}
.panty-item .sp-photo-preview{border:none;border-radius:0;aspect-ratio:3/4;}
.panty-item-footer{display:flex;align-items:center;gap:.35rem;padding:.35rem .5rem;font-size:var(--fs-xs);color:var(--text-secondary);}
.panty-person-photo{width:20px;height:20px;border-radius:50%;background:var(--bg-card);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0;border:1px solid var(--border);}
.panty-person-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;}
.panty-upload-preview{width:60px;height:80px;flex-shrink:0;border:2px dashed var(--border);border-radius:8px;}

.panty-add-section{display:flex;gap:.75rem;align-items:flex-start;padding-bottom:.65rem;border-bottom:1px solid var(--border);}
.panty-add-photo{flex-shrink:0;}
.panty-add-photo .panty-upload-preview{width:70px;height:90px;}
.panty-add-fields{flex:1;display:flex;flex-direction:column;gap:.4rem;min-width:0;}
.panty-add-fields .fin-select,.panty-add-fields .fin-input{width:100%;font-size:var(--fs-sm);}

.nsfw-event-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;margin-bottom:.75rem;}
.nsfw-event-form .fin-label{margin-bottom:0;}

.nsfw-bingo .bingo-cell{border-color:var(--border);}
.nsfw-bingo .bingo-cell:hover{border-color:var(--accent-primary);background:var(--bg-hover);}
.nsfw-bingo .bingo-cell.bingo-done{background:var(--bg-secondary)!important;border-color:var(--accent-primary);}
.nsfw-bingo .bingo-done .bingo-label{color:var(--accent-primary);text-decoration:line-through;}
.nsfw-bingo .bingo-check{color:var(--accent-primary);}
.nsfw-bingo .bingo-progress-fill{background:var(--accent-primary)!important;}
.nsfw-bingo .bingo-recent-tag{color:var(--accent-primary);background:rgba(0,212,255,.08);}
.nsfw-bingo .bingo-complete-banner{color:var(--accent-primary);border-color:rgba(0,212,255,.3);background:linear-gradient(135deg,rgba(0,212,255,.08),rgba(255,107,157,.08));}

.heatmap-lock{background:var(--bg-secondary)!important;border:1px solid var(--accent-primary)!important;font-size:2rem;display:flex;align-items:center;justify-content:center;}

.chastity-bottom-row{display:flex;flex-direction:column;gap:1rem;margin-top:1rem;}
@media(min-width:900px){.chastity-bottom-row{flex-direction:row;}.chastity-bottom-row>.fin-card{flex:1;margin-top:0!important;}}

#chastityWidget.hub-card{padding:0;border:none;background:none;}
#chastityWidget.hub-card:hover{transform:none;}
.chastity-widget-inner{display:flex;align-items:center;gap:.85rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:all .2s;}
.chastity-widget-inner:hover{border-color:var(--accent-primary);}
.chastity-widget-inner.censored{border-color:var(--accent-warning);}
.chastity-widget-inner.suggest{border-style:dashed;border-color:var(--text-muted);}
.chastity-widget-icon{font-size:1.5rem;}
.chastity-widget-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);}
.chastity-widget-timer{font-family:'Space Mono',monospace;font-size:1rem;font-weight:700;color:var(--accent-primary);}
.chastity-widget-start{background:none;border:none;color:var(--accent-primary);font-weight:700;font-size:var(--fs-sm);cursor:pointer;padding:.2rem 0;font-family:'Manrope',sans-serif;text-decoration:underline;}

/* ============================================
   WIKI CSS v2 — Wikipedia-style
   ============================================ */

.wiki-layout{display:grid;grid-template-columns:260px 1fr;gap:1rem;align-items:start;}
@media(max-width:860px){.wiki-layout{grid-template-columns:1fr;}}

.wiki-home-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:1rem;position:sticky;top:70px;}
.wiki-homepage-rendered{font-size:var(--fs-md);line-height:1.6;color:var(--text-secondary);}
.wiki-homepage-rendered h1{font-size:1.1rem;font-weight:700;color:var(--text-primary);margin:0 0 .5rem;border-bottom:1px solid var(--border);padding-bottom:.3rem;}
.wiki-homepage-rendered h2{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin:.75rem 0 .3rem;}
.wiki-homepage-rendered h3{font-size:var(--fs-md);font-weight:600;color:var(--text-secondary);margin:.5rem 0 .2rem;}
.wiki-homepage-rendered ul{margin:.25rem 0 .5rem 1rem;padding:0;}
.wiki-homepage-rendered li{margin:.15rem 0;}
.wiki-homepage-rendered a{color:var(--accent-primary);text-decoration:none;}
.wiki-homepage-rendered strong{font-weight:700;color:var(--text-primary);}
.wiki-homepage-rendered code{background:var(--bg-secondary);padding:.1rem .3rem;border-radius:4px;font-size:var(--fs-sm);}
.wiki-home-edit-btn{display:block;width:100%;margin-top:.6rem;padding:.3rem;background:none;border:1px dashed var(--border);border-radius:7px;color:var(--text-muted);font-size:var(--fs-sm);cursor:pointer;transition:all .15s;}
.wiki-home-edit-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}

.wiki-pages-panel{display:flex;flex-direction:column;gap:.5rem;}
.wiki-top-bar{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;}
.wiki-search{flex:1;min-width:120px;}
.wiki-view-btns{display:flex;gap:.2rem;}
.wiki-view-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;padding:.3rem .5rem;cursor:pointer;font-size:var(--fs-md);color:var(--text-muted);transition:all .15s;}
.wiki-view-btn.active,.wiki-view-btn:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.wiki-new-btn{padding:.35rem .75rem;background:var(--accent-primary);color:#fff;border:none;border-radius:7px;font-size:var(--fs-sm);font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s;}
.wiki-new-btn:hover{opacity:.85;}
.wiki-pages-count{font-size:var(--fs-xs);color:var(--text-muted);padding:0 .1rem;}

.wiki-filters{display:flex;flex-direction:column;gap:.3rem;}
.wiki-filter-row{display:flex;flex-wrap:wrap;gap:.25rem;}
.wiki-filter-chip{padding:.2rem .5rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;font-size:var(--fs-xs);font-weight:600;cursor:pointer;color:var(--text-muted);transition:all .15s;}
.wiki-filter-chip.active,.wiki-filter-chip:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.wiki-filter-clear{background:rgba(255,100,100,.08);border-color:rgba(255,100,100,.3);color:var(--accent-secondary);}
.wiki-tag-filter{padding:.18rem .45rem;border-radius:20px;font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:opacity .15s;}
.wiki-tag-filter:hover{opacity:.8;}
.wiki-tag-badge{display:inline-block;padding:.1rem .35rem;border-radius:5px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;}

.wiki-page-list,.wiki-tree-items{display:flex;flex-direction:column;gap:.35rem;}
.wiki-page-item{display:flex;gap:.6rem;padding:.55rem .65rem;background:var(--bg-card);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:border-color .15s,box-shadow .15s;}
.wiki-page-item:hover{border-color:var(--accent-primary);box-shadow:0 1px 8px rgba(0,0,0,.12);}
.wiki-card-thumb{width:42px;height:42px;border-radius:6px;background:var(--bg-secondary);background-size:cover;background-position:center;flex-shrink:0;border:1px solid var(--border);}
.wiki-card-main{flex:1;min-width:0;}
.wiki-card-title{font-weight:600;font-size:var(--fs-md);line-height:1.3;margin-bottom:.15rem;}
.wiki-card-excerpt{font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wiki-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.25rem;}
.wiki-card-cat{font-size:var(--fs-xs);background:rgba(var(--accent-primary-rgb),.08);color:var(--accent-primary);padding:.1rem .3rem;border-radius:4px;}
.wiki-card-date{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;}

.wiki-tree{display:flex;flex-direction:column;gap:.5rem;}
.wiki-tree-cat{background:var(--bg-card);border:1px solid var(--border);border-radius:9px;overflow:hidden;}
.wiki-tree-cat-head{padding:.45rem .65rem;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);background:var(--bg-secondary);display:flex;align-items:center;gap:.35rem;}
.wiki-tree-count{margin-left:auto;background:rgba(var(--accent-primary-rgb),.12);color:var(--accent-primary);font-size:var(--fs-xs);padding:.1rem .35rem;border-radius:10px;}
.wiki-tree-items{padding:.35rem .35rem;}
.wiki-tree-items .wiki-page-item{background:transparent;border-color:transparent;padding:.35rem .45rem;}
.wiki-tree-items .wiki-page-item:hover{background:var(--bg-hover);border-color:var(--border);}

.wiki-empty{text-align:center;padding:2rem;color:var(--text-muted);}
.wiki-empty-icon{font-size:2rem;margin-bottom:.5rem;}
.wiki-empty p{font-size:var(--fs-md);}

/* ============================================
   VIEWER
   ============================================ */
.wiki-viewer{display:flex;flex-direction:column;gap:.6rem;}
.wiki-breadcrumb{display:flex;align-items:center;gap:.3rem;font-size:var(--fs-sm);color:var(--text-muted);}
.wiki-bread-link{background:none;border:none;color:var(--accent-primary);cursor:pointer;font-size:var(--fs-sm);padding:0;}
.wiki-bread-link:hover{text-decoration:underline;}
.wiki-bread-sep{color:var(--text-muted);}
.wiki-bread-cat{color:var(--accent-primary);}
.wiki-bread-current{color:var(--text-secondary);font-weight:600;}
.wiki-viewer-bar{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;}
.wiki-viewer-h1{font-family:'Space Mono',monospace;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:700;margin:0;border-bottom:2px solid var(--border);padding-bottom:.4rem;flex:1;}
.wiki-viewer-acts{display:flex;gap:.3rem;flex-shrink:0;}
.wiki-edit-btn{padding:.3rem .65rem!important;background:rgba(var(--accent-primary-rgb),.08)!important;color:var(--accent-primary)!important;border-color:rgba(var(--accent-primary-rgb),.2)!important;}
.wiki-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;font-size:var(--fs-sm);color:var(--text-muted);margin-bottom:.25rem;}
.wiki-meta-cat{background:rgba(var(--accent-primary-rgb),.08);color:var(--accent-primary);padding:.1rem .35rem;border-radius:4px;font-size:var(--fs-xs);}
.wiki-meta-date{margin-left:auto;font-size:var(--fs-xs);}

.wiki-body{display:grid;grid-template-columns:1fr 220px;gap:1rem;align-items:start;}
@media(max-width:700px){.wiki-body{grid-template-columns:1fr;}}
.wiki-main-col{min-width:0;}

.wiki-toc{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.65rem .8rem;margin-bottom:.75rem;display:inline-block;min-width:160px;max-width:280px;}
.wiki-toc-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);margin-bottom:.35rem;}
.wiki-toc-item{font-size:var(--fs-sm);line-height:1.5;}
.wiki-toc-item a{color:var(--accent-primary);text-decoration:none;}
.wiki-toc-item a:hover{text-decoration:underline;}
.wiki-toc-h1{padding-left:0;font-weight:700;}
.wiki-toc-h2{padding-left:.85rem;}
.wiki-toc-h3{padding-left:1.6rem;color:var(--text-muted);}

.wiki-content{font-size:var(--fs-md);line-height:1.7;color:var(--text-secondary);}
.wiki-content h1{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:1.25rem 0 .5rem;border-bottom:1px solid var(--border);padding-bottom:.3rem;}
.wiki-content h2{font-size:1.05rem;font-weight:700;color:var(--text-primary);margin:1rem 0 .4rem;border-bottom:1px solid var(--border);padding-bottom:.2rem;}
.wiki-content h3{font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);margin:.75rem 0 .3rem;}
.wiki-content p{margin:.5rem 0;}
.wiki-content ul,.wiki-content ol{margin:.5rem 0 .5rem 1.25rem;}
.wiki-content li{margin:.2rem 0;}
.wiki-content strong{font-weight:700;color:var(--text-primary);}
.wiki-content em{font-style:italic;}
.wiki-content code{background:var(--bg-secondary);padding:.1rem .35rem;border-radius:4px;font-size:var(--fs-sm);font-family:'Space Mono',monospace;}
.wiki-content pre{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.75rem;overflow-x:auto;}
.wiki-content blockquote{border-left:3px solid var(--accent-primary);padding:.5rem .75rem;margin:.5rem 0;background:rgba(var(--accent-primary-rgb),.04);border-radius:0 6px 6px 0;color:var(--text-muted);}
.wiki-content table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);margin:.5rem 0;}
.wiki-content th{background:var(--bg-secondary);padding:.35rem .6rem;font-weight:700;border:1px solid var(--border);text-align:left;}
.wiki-content td{padding:.3rem .6rem;border:1px solid var(--border);}
.wiki-content tr:nth-child(even) td{background:rgba(var(--text-primary-rgb),.02);}
.wiki-link{color:var(--accent-primary);text-decoration:none;cursor:pointer;}
.wiki-link:hover{text-decoration:underline;}
.wiki-link-missing{color:var(--accent-secondary,#f38ba8);text-decoration:underline dotted;cursor:pointer;}

.wiki-infobox-col{flex-shrink:0;}
.wiki-infobox{background:var(--bg-secondary);border:1px solid var(--border);border-radius:9px;overflow:hidden;font-size:var(--fs-sm);}
.wiki-infobox-img{width:100%;aspect-ratio:1;object-fit:cover;display:block;}
.wiki-infobox-title{background:var(--accent-primary);color:#fff;font-weight:700;padding:.45rem .65rem;font-size:var(--fs-md);text-align:center;}
.wiki-infobox-row{display:grid;grid-template-columns:1fr 1.3fr;gap:.2rem;border-top:1px solid var(--border);}
.wiki-ib-key{padding:.3rem .5rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);font-size:var(--fs-sm);}
.wiki-ib-val{padding:.3rem .5rem;color:var(--text-primary);font-size:var(--fs-sm);}

/* ============================================
   EDITOR
   ============================================ */
.wiki-editor{display:flex;flex-direction:column;gap:.55rem;}
.wiki-editor-bar{display:flex;align-items:center;gap:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);}
.wiki-ed-label{font-weight:700;font-size:var(--fs-md);flex:1;}
.wiki-title-input{font-size:var(--fs-lg);font-weight:700;padding:.5rem .75rem;}
.wiki-ed-meta{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
@media(max-width:500px){.wiki-ed-meta{grid-template-columns:1fr;}}
.wiki-ed-field{display:flex;flex-direction:column;gap:.2rem;}
.wiki-ed-lbl{font-size:var(--fs-sm);font-weight:600;color:var(--text-muted);}
.wiki-md-wrap{border:1px solid var(--border);border-radius:9px;overflow:hidden;min-height:200px;}
.wiki-ed-hint{font-size:var(--fs-xs);color:var(--text-muted);background:rgba(var(--accent-primary-rgb),.05);padding:.3rem .6rem;border-radius:6px;}

.wiki-ed-infobox-details{background:var(--bg-secondary);border:1px solid var(--border);border-radius:9px;padding:.6rem;}
.wiki-ed-infobox-sum{font-size:var(--fs-sm);font-weight:700;cursor:pointer;list-style:none;color:var(--text-primary);}
.wiki-ed-infobox-sum::-webkit-details-marker{display:none;}
.wiki-ed-infobox{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;}
.wiki-ib-edit-row{display:flex;gap:.3rem;align-items:center;}
.wiki-ib-edit-row .fin-input{font-size:var(--fs-sm);padding:.3rem .5rem;}
.wiki-ib-edit-row .wiki-ib-k{max-width:130px;}
.wiki-ib-add-btn{padding:.3rem .65rem;background:rgba(var(--accent-primary-rgb),.08);border:1px solid rgba(var(--accent-primary-rgb),.2);color:var(--accent-primary);border-radius:6px;font-size:var(--fs-sm);font-weight:600;cursor:pointer;margin-top:.2rem;transition:all .15s;}
.wiki-ib-add-btn:hover{background:rgba(var(--accent-primary-rgb),.15);}
.wiki-ib-img-row{display:flex;flex-direction:column;padding:.4rem 0 .6rem;border-bottom:1px solid var(--border);margin-bottom:.3rem;}
.wiki-ib-img-preview{min-height:32px;}

.wiki-link-popup{position:absolute;z-index:200;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.2);overflow:hidden;min-width:160px;}
.wiki-link-opt{padding:.4rem .65rem;font-size:var(--fs-sm);cursor:pointer;transition:background .1s;}
.wiki-link-opt:hover{background:var(--bg-hover);}

.wiki-link-opt{display:flex;align-items:center;gap:.4rem;padding:.35rem .65rem;font-size:var(--fs-sm);cursor:pointer;transition:background .1s;}

.wiki-link-none{color:var(--text-muted);cursor:default;font-style:italic;}
.wiki-lp-icon{flex-shrink:0;font-size:var(--fs-md);}
.wiki-lp-title{flex:1;font-weight:600;color:var(--text-primary);}
.wiki-lp-cat{font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-secondary);padding:.1rem .3rem;border-radius:4px;margin-left:.2rem;}

kbd{display:inline-block;padding:.1rem .35rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;font-family:'Space Mono',monospace;font-size:var(--fs-sm);color:var(--text-secondary);}

.wiki-ib-photo{width:100%;aspect-ratio:1/1;max-height:180px;border-radius:9px;}
.wiki-ib-photo.has-photo::after{opacity:0;}
.wiki-ib-photo.has-photo:hover::after{opacity:.35;content:'🔍';font-size:1.8rem;color:#fff;}

/* ============================================
   FOCUS — Pomodoro Timer
   ============================================ */
.focus-layout{display:grid;grid-template-columns:1fr;gap:1.25rem;max-width:880px;margin:0 auto;}
@media(min-width:700px){.focus-layout{grid-template-columns:1fr 260px;}}

.focus-timer-card{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem !important;}

.focus-mode-indicator{
    display:flex;align-items:center;gap:.4rem;margin-bottom:1.2rem;
    padding:.3rem .8rem;border:1px solid var(--border);border-radius:20px;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);
}
.focus-mode-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-primary);transition:background .3s;}

.focus-ring-wrap{position:relative;width:200px;height:200px;margin:0 auto 1.2rem;}
.focus-ring{width:100%;height:100%;transform:rotate(-90deg);}
.focus-ring-bg{fill:none;stroke:var(--border);stroke-width:5;}
.focus-ring-progress{fill:none;stroke:var(--accent-primary);stroke-width:5;stroke-linecap:round;transition:stroke-dashoffset .4s ease,stroke .3s;}
.focus-ring-inner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.focus-time{font-family:'Space Mono',monospace;font-size:2.5rem;font-weight:700;color:var(--text-primary);letter-spacing:2px;line-height:1;}
.focus-session-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:.35rem;font-weight:500;}

.focus-controls{display:flex;align-items:center;justify-content:center;gap:.8rem;margin-bottom:1rem;}
.focus-ctrl-btn{display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;transition:all .2s;}
.focus-ctrl-side{
    width:40px;height:40px;border:1px solid var(--border);background:transparent;color:var(--text-muted);
}
.focus-ctrl-side:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.focus-ctrl-main{
    width:56px;height:56px;border:none;
    background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff;
}
.focus-ctrl-main:hover{opacity:.9;transform:scale(1.05);}

.focus-dots{display:flex;gap:.4rem;justify-content:center;margin-bottom:1rem;}
.focus-dot{width:9px;height:9px;border-radius:50%;border:2px solid var(--border);background:transparent;transition:all .25s;}
.focus-dot.filled{background:var(--accent-primary);border-color:var(--accent-primary);}
.focus-dot.current{border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(0,212,255,.15);}

.focus-task-row{width:100%;max-width:280px;}

.focus-setting-row{display:flex;align-items:center;gap:.4rem;margin-bottom:.55rem;}
.focus-setting-lbl{flex:1;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.focus-setting-val{width:60px !important;text-align:center;margin-top:0 !important;padding:.35rem .3rem !important;font-size:var(--fs-sm) !important;}
select.focus-setting-val{width:80px !important;text-align:left;}
.focus-setting-unit{font-size:var(--fs-xs);color:var(--text-muted);min-width:20px;}

.focus-side-col{display:flex;flex-direction:column;gap:1.25rem;}

.focus-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;margin-bottom:.8rem;}
.focus-stat-box{text-align:center;padding:.5rem .25rem;border:1px solid var(--border);border-radius:8px;}
.focus-stat-val{display:block;font-family:'Space Mono',monospace;font-size:1.2rem;font-weight:700;color:var(--accent-primary);}
.focus-stat-lbl{font-size:var(--fs-xs);color:var(--text-muted);}
.focus-hist-row{display:flex;align-items:center;gap:.4rem;padding:.3rem 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm);}
.focus-hist-date{color:var(--text-muted);min-width:65px;}
.focus-hist-detail{color:var(--text-secondary);font-weight:600;}

@media(max-width:600px){.focus-ring-wrap{width:170px;height:170px;}.focus-time{font-size:2rem;}}

/* ============================================
   CONTENT CREATION — YouTube Pipeline
   ============================================ */

.content-tabs{display:flex;gap:.35rem;margin-bottom:1.25rem;flex-wrap:wrap;}
.content-tab{padding:.5rem .8rem;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--text-muted);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;white-space:nowrap;}
.content-tab:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.content-tab.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.content-page{display:none;animation:fadeIn .3s ease-out;}
.content-page.active{display:block;}

.yt-pipeline-card{padding:.6rem .8rem !important;margin-bottom:1rem;}
.yt-pipeline-bar{display:flex;align-items:center;gap:.2rem;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.yt-pipe-step{display:flex;flex-direction:column;align-items:center;gap:.1rem;padding:.35rem .5rem;border-radius:8px;cursor:pointer;transition:all .2s;min-width:52px;flex-shrink:0;}
.yt-pipe-step:hover{background:rgba(0,212,255,.06);}
.yt-pipe-step.active{background:rgba(0,212,255,.12);box-shadow:inset 0 0 0 1px var(--accent-primary);}
.yt-pipe-step.has-items .yt-pipe-count{opacity:1;}
.yt-pipe-icon{font-size:1rem;}
.yt-pipe-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);white-space:nowrap;}
.yt-pipe-count{font-family:'Space Mono',monospace;font-size:var(--fs-xs);font-weight:700;color:var(--accent-primary);opacity:.35;transition:opacity .2s;}
.yt-pipe-arrow{color:var(--text-muted);font-size:var(--fs-xs);opacity:.3;flex-shrink:0;}

.yt-add-bar{display:flex;gap:.5rem;margin-bottom:1.25rem;}

.yt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;}
.yt-card{padding:1rem !important;transition:border-color .2s !important;}
.yt-card:hover{border-color:var(--accent-primary) !important;}
.yt-card-top{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem;}
.yt-badge{padding:.15rem .5rem;border-radius:6px;font-size:var(--fs-xs);font-weight:700;border:1px solid;white-space:nowrap;}
.yt-prio{font-size:var(--fs-sm);}
.yt-date{font-size:var(--fs-xs);color:var(--text-muted);margin-left:auto;}
.yt-card-title{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin:0 0 .2rem;line-height:1.3;}
.yt-card-sub{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:.2rem;}
.yt-card-desc{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.4rem;line-height:1.4;}
.yt-card-tags{display:flex;flex-wrap:wrap;gap:.2rem;margin-bottom:.4rem;}
.yt-tag{padding:.1rem .4rem;border-radius:5px;background:rgba(0,212,255,.08);color:var(--accent-primary);font-size:var(--fs-xs);font-weight:600;}
.yt-card-check{font-size:var(--fs-xs);color:var(--text-muted);margin-bottom:.4rem;}
.yt-card-bar{height:3px;background:var(--border);border-radius:3px;margin-bottom:.6rem;overflow:hidden;}
.yt-card-bar-fill{height:100%;border-radius:3px;transition:width .4s;}
.yt-card-actions{display:flex;gap:.35rem;align-items:center;}
.yt-act{padding:.25rem .55rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;cursor:pointer;transition:all .2s;font-family:'Manrope',sans-serif;}
.yt-act:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.yt-act-open{margin-left:auto;}
.yt-act-del{border-color:transparent;padding:.25rem .35rem;}
.yt-act-del:hover{color:#ef4444;border-color:#ef4444;}

.yt-detail{display:flex;flex-direction:column;gap:.7rem;}
.yt-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;}
@media(max-width:500px){.yt-detail-grid{grid-template-columns:1fr;}}
.yt-script-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.3rem;}
.yt-script-preview{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.4;padding:.4rem .6rem;border:1px solid var(--border);border-radius:8px;background:rgba(0,0,0,.1);max-height:60px;overflow:hidden;}

.yt-chk-row{display:flex;align-items:center;gap:.4rem;padding:.25rem .3rem;border-radius:6px;font-size:var(--fs-sm);color:var(--text-secondary);}
.yt-chk-row:hover{background:rgba(0,212,255,.04);}
.yt-chk-cb{flex-shrink:0;}
.yt-chk-done{text-decoration:line-through;opacity:.5;}
.yt-chk-del{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--fs-md);opacity:.3;transition:opacity .2s;padding:0 .2rem;margin-left:auto;}
.yt-chk-del:hover{opacity:1;color:#ef4444;}
.yt-chk-add{display:flex;gap:.4rem;margin-top:.3rem;}

@media(max-width:600px){
    .yt-pipeline-bar{gap:.1rem;}.yt-pipe-step{padding:.25rem .3rem;min-width:40px;}.yt-pipe-label{font-size:var(--fs-xs);}
    .yt-grid{grid-template-columns:1fr;}
}

/* ============================================
   PAGE INFO — Button (uses icon-action-btn base)
   ============================================ */
.pageinfo-btn{margin-left:auto;-webkit-text-fill-color:initial;}

/* ============================================
   ONLYFANS CONTENT PLANNER
   ============================================ */
.of-stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1rem;}
.of-stat{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:.6rem;text-align:center;}
.of-stat-num{display:block;font-family:'Space Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--accent-primary);}
.of-stat-label{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;}

.of-inner-tabs{display:flex;gap:.2rem;padding:.2rem;background:var(--bg-secondary);border-radius:10px;border:1px solid var(--border);margin-bottom:1rem;}
.of-inner-tab{flex:1;padding:.45rem .5rem;border:none;border-radius:8px;background:transparent;color:var(--text-muted);font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .2s;text-align:center;}
.of-inner-tab:hover{color:var(--text-secondary);}
.of-inner-tab.active{background:rgba(255,107,157,.1);color:var(--accent-secondary);}
.of-inner-page{display:none;animation:fadeIn .25s ease-out;}.of-inner-page.active{display:block;}

.of-add-row{display:flex;gap:.4rem;margin-bottom:1rem;align-items:center;}
@media(max-width:600px){.of-add-row{flex-wrap:wrap;}.of-stats-row{grid-template-columns:repeat(2,1fr);}}

.of-group{margin-bottom:1rem;}
.of-group-title{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.4rem;padding-left:.5rem;border-left:3px solid var(--accent-primary);}
.of-idea-card{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.3rem;transition:all .15s;}
.of-idea-card:hover{border-color:var(--accent-secondary);}
.of-idea-cat{font-size:1rem;flex-shrink:0;}
.of-idea-text{flex:1;font-size:var(--fs-sm);color:var(--text-secondary);font-weight:500;}
.of-idea-actions{display:flex;gap:.25rem;flex-shrink:0;}

.of-cal-header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:.75rem;}
.of-cal-month{font-family:'Space Mono',monospace;font-size:var(--fs-lg);font-weight:700;color:var(--text-primary);min-width:140px;text-align:center;}
.of-cal-header-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.25rem;}
.of-cal-header-row span{text-align:center;font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);padding:.2rem 0;}
.of-cal-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;}
.of-cal-day{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;min-height:48px;padding:.25rem;position:relative;transition:all .15s;}
.of-cal-day.of-cal-empty{background:transparent;border-color:transparent;}
.of-cal-day.of-cal-today{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary);}
.of-cal-day.of-cal-has{background:rgba(255,107,157,.04);}
.of-cal-num{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);}
.of-cal-dot{font-size:var(--fs-xs);display:block;line-height:1;margin-top:.1rem;}
.of-cal-legend{display:flex;gap:.75rem;justify-content:center;margin-top:.5rem;font-size:var(--fs-xs);color:var(--text-muted);}

.of-caption-card{display:flex;align-items:flex-start;gap:.5rem;padding:.6rem .7rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;margin-bottom:.3rem;}
.of-caption-text{flex:1;font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.4;white-space:pre-wrap;}
.of-caption-actions{display:flex;gap:.25rem;flex-shrink:0;}
.of-captions-info{margin-bottom:.75rem;}

.of-reddit-group{margin-bottom:.75rem;}
.of-reddit-sub{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--accent-primary);margin-bottom:.3rem;padding-left:.4rem;border-left:2px solid var(--accent-primary);}
.of-reddit-item{display:flex;align-items:center;gap:.4rem;padding:.4rem .6rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;margin-bottom:.2rem;transition:all .15s;}
.of-reddit-item.of-reddit-posted{opacity:.5;}
.of-reddit-item.of-reddit-posted .of-reddit-title{text-decoration:line-through;}
.of-reddit-check{background:none;border:none;cursor:pointer;font-size:var(--fs-md);padding:0;transition:transform .15s;}
.of-reddit-check:active{transform:scale(.85);}
.of-reddit-title{flex:1;font-size:var(--fs-sm);color:var(--text-secondary);}
.of-reddit-info{margin-bottom:.75rem;}

.of-inline-date{display:flex;gap:.3rem;align-items:center;margin-top:.35rem;padding-top:.35rem;border-top:1px solid var(--border);}
.of-date-pick{flex:1;font-size:var(--fs-sm);padding:.3rem .4rem;}

/* ============================================
   CLEANING — Ménage
   ============================================ */

.cl-settings-bar{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap;}
.cl-add-spot-btn{white-space:nowrap;}

.cl-section-title{font-size:var(--fs-lg);font-weight:800;color:var(--text-primary);margin:2rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border);}
.cl-history-header{display:flex;align-items:center;justify-content:space-between;}
.cl-history-header .cl-section-title{flex:1;}

/* ============================================
   CHECKLIST CARD
   ============================================ */
.cl-checklist-card{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.25rem;margin-bottom:1.5rem;transition:all .3s;}
.cl-checklist-card.cl-all-done{border-color:var(--accent-success);background:linear-gradient(135deg,rgba(0,255,136,.03),transparent);}
.cl-checklist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem;}
.cl-checklist-title{font-size:var(--fs-lg);font-weight:800;color:var(--text-primary);}
.cl-checklist-week{font-size:var(--fs-xs);font-weight:600;color:var(--text-muted);background:var(--bg-input);padding:.25rem .6rem;border-radius:6px;}
.cl-done-msg{text-align:center;padding:1rem;font-size:var(--fs-md);font-weight:700;color:var(--accent-success);margin-bottom:.5rem;}

.cl-spot-group{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle,rgba(255,255,255,.04));}
.cl-spot-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.cl-spot-group.cl-spot-done{opacity:.6;}
.cl-spot-header{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem;}
.cl-spot-emoji{font-size:1.1em;}

.cl-task-row{display:flex;align-items:center;gap:.65rem;padding:.4rem .5rem;border-radius:8px;cursor:pointer;transition:background .15s;margin:.15rem 0;}
.cl-task-row:hover{background:rgba(255,255,255,.03);}
.cl-task-row.cl-task-checked .cl-task-label{color:var(--text-muted);text-decoration:line-through;}
.cl-task-label{font-size:var(--fs-sm);color:var(--text-primary);transition:all .2s;}

/* ============================================
   SPOTS GRID
   ============================================ */
.cl-spots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.75rem;margin-bottom:1.5rem;}
.cl-spot-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:1rem;transition:border-color .2s;}
.cl-spot-card:hover{border-color:var(--accent-primary);}
.cl-spot-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.65rem;}
.cl-spot-card-emoji{font-size:1.3em;}
.cl-spot-card-name{font-size:var(--fs-md);font-weight:700;color:var(--text-primary);flex:1;}
.cl-spot-card-actions{display:flex;gap:.25rem;}
.cl-spot-card-tasks{display:flex;flex-wrap:wrap;gap:.35rem;}
.cl-spot-task-pill{font-size:var(--fs-xs);background:var(--bg-input);color:var(--text-secondary);padding:.2rem .55rem;border-radius:6px;border:1px solid var(--border-subtle,rgba(255,255,255,.06));}

.cl-modal-form{display:flex;flex-direction:column;gap:.75rem;}
.cl-tasks-textarea{font-family:inherit;resize:vertical;min-height:100px;line-height:1.6;}

/* ============================================
   HISTORY TABLE
   ============================================ */
.cl-history-table{overflow-x:auto;border-radius:10px;border:1px solid var(--border);}
.cl-history-table table{width:100%;border-collapse:collapse;font-size:var(--fs-sm);}
.cl-history-table thead{background:var(--bg-card);}
.cl-history-table th{padding:.65rem .75rem;text-align:left;font-weight:700;color:var(--text-secondary);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border);}
.cl-history-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-subtle,rgba(255,255,255,.04));}
.cl-history-table tbody tr:last-child td{border-bottom:none;}
.cl-history-table tbody tr:hover{background:rgba(255,255,255,.02);}
.cl-hist-week{font-weight:600;color:var(--text-primary);white-space:nowrap;}
.cl-hist-cell{font-family:'Space Mono',monospace;font-weight:700;text-align:center;}
.cl-hist-ok{color:var(--accent-success);}
.cl-hist-partial{color:var(--text-muted);}
.cl-hist-status{text-align:center;}
.cl-badge-done{font-size:var(--fs-xs);color:var(--accent-success);background:rgba(0,255,136,.08);padding:.2rem .5rem;border-radius:5px;font-weight:700;}
.cl-badge-partial{font-size:var(--fs-xs);color:var(--text-muted);background:var(--bg-input);padding:.2rem .5rem;border-radius:5px;font-weight:700;}
.cl-badge-none{font-size:var(--fs-xs);color:var(--accent-secondary);background:rgba(255,107,157,.08);padding:.2rem .5rem;border-radius:5px;font-weight:700;}
.cl-empty{padding:2rem;text-align:center;color:var(--text-muted);font-size:var(--fs-sm);}

/* ============================================
   HUB WIDGET
   ============================================ */
.cl-widget-inner{cursor:pointer;transition:all .2s;border-radius:10px;}
.cl-widget-inner:hover{opacity:.85;}
.cl-widget-inner.cl-widget-today{border-radius:10px;}
.cl-widget-header{display:flex;align-items:center;gap:.65rem;margin-bottom:.5rem;}
.cl-widget-icon{font-size:1.4rem;}
.cl-widget-title{font-size:var(--fs-md);font-weight:800;color:var(--text-primary);}
.cl-widget-sub{font-size:var(--fs-xs);color:var(--text-muted);font-weight:600;}
.cl-widget-bar{height:5px;background:var(--bg-input);border-radius:3px;overflow:hidden;margin-bottom:.5rem;}
.cl-widget-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-success));border-radius:3px;transition:width .4s ease;}
.cl-widget-spots{display:flex;flex-wrap:wrap;gap:.4rem;}
.cl-widget-spot{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);background:var(--bg-input);padding:.15rem .5rem;border-radius:5px;}
.cl-widget-spot.cl-widget-spot-done{color:var(--accent-success);background:rgba(0,255,136,.08);}

/* ============================================
   MOBILE
   ============================================ */
@media(max-width:768px){
    .cl-settings-bar{flex-direction:column;align-items:stretch;gap:.75rem;}
    .cl-spots-grid{grid-template-columns:1fr;}
    .cl-checklist-card{padding:1rem;}
    .cl-history-table{font-size:var(--fs-xs);}
    .cl-history-table th,.cl-history-table td{padding:.4rem .5rem;}
}

/* ============================================
   TASKS & PLANIFICATION — two-widget layout
   ============================================ */

.tk-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start;}
@media(max-width:900px){.tk-layout{grid-template-columns:1fr;}}

.tk-widget{display:flex;flex-direction:column;}
.tk-widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;}
.tk-widget-header .fin-card-title{margin-bottom:0;}

.tk-sched-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem;}
.tk-sched-date{font-family:'Space Mono',monospace;font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);min-width:160px;text-align:center;}

.tk-sched-add{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);}
.tk-sched-add-row{display:flex;gap:.3rem;align-items:center;margin-bottom:.3rem;}
.tk-sched-time{max-width:90px;font-size:var(--fs-sm);padding:.35rem .4rem;}
.tk-sched-task-sel{width:100%;font-size:var(--fs-sm);min-width:0;}
.u-mt-xs{margin-top:.25rem;}

.tk-sched-empty{text-align:center;padding:1.5rem .5rem;color:var(--text-muted);font-size:var(--fs-sm);font-style:italic;}
.tk-det-timeline{margin-top:0;padding-left:1rem;}
.tk-det-timeline .det-item{margin-bottom:.25rem;}
.tk-linked-dot{color:var(--accent-primary);font-size:var(--fs-xs);margin-right:.2rem;}
.tk-sched-summary{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;margin-top:.5rem;padding-top:.4rem;border-top:1px solid var(--border);}

.tk-add-row{display:flex;gap:.35rem;margin-bottom:.6rem;align-items:center;flex-wrap:wrap;}
.tk-add-input{flex:2;min-width:100px;}
.tk-add-date{flex:0 0 auto;max-width:130px;font-size:var(--fs-sm);}
.tk-add-prio{flex:0 0 auto;max-width:100px;font-size:var(--fs-sm);}

.tk-filter-row{display:flex;gap:.2rem;margin-bottom:.6rem;align-items:center;flex-wrap:wrap;}
.tk-filter{padding:.3rem .5rem;border:1px solid var(--border);border-radius:7px;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);font-weight:700;cursor:pointer;transition:all .15s;font-family:'Manrope',sans-serif;}
.tk-filter:hover{border-color:var(--accent-primary);color:var(--accent-primary);}
.tk-filter.active{background:rgba(0,212,255,.1);border-color:var(--accent-primary);color:var(--accent-primary);}
.tk-filter-spacer{flex:1;}

.tk-list-col{display:flex;flex-direction:column;gap:.3rem;max-height:65vh;overflow-y:auto;}
.tk-list-col::-webkit-scrollbar{width:3px;}.tk-list-col::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}
.tk-overdue-banner{padding:.35rem .6rem;background:rgba(255,107,157,.06);border:1px solid rgba(255,107,157,.25);border-radius:8px;font-size:var(--fs-xs);font-weight:700;color:var(--accent-secondary);margin-bottom:.3rem;}

.tk-item{display:flex;align-items:center;gap:.4rem;padding:.45rem .6rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;transition:all .15s;}
.tk-item:hover{border-color:var(--accent-primary);}
.tk-item.tk-done{opacity:.45;}
.tk-item.tk-overdue{border-left:3px solid var(--accent-secondary);background:rgba(255,107,157,.03);}
.tk-item.tk-due-today{border-left:3px solid var(--accent-warning);background:rgba(255,179,71,.03);}
.tk-item.tk-due-soon{border-left:3px solid var(--accent-primary);}
.tk-item.tk-prio-high .tk-text{font-weight:800;}
.tk-item.tk-prio-low{opacity:.75;}
.tk-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);background:transparent;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.tk-check:hover{border-color:var(--accent-success);color:var(--accent-success);}
.tk-content{flex:1;min-width:0;}
.tk-text{font-size:var(--fs-sm);color:var(--text-primary);font-weight:600;display:block;word-break:break-word;}
.tk-struck{text-decoration:line-through;color:var(--text-muted);}
.tk-meta{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap;margin-top:.1rem;}
.tk-deadline{font-size:var(--fs-xs);font-family:'Space Mono',monospace;font-weight:600;color:var(--text-muted);padding:.05rem .25rem;background:var(--bg-primary);border-radius:4px;}
.tk-deadline-overdue{color:var(--accent-secondary);background:rgba(255,107,157,.08);}
.tk-deadline-today{color:var(--accent-warning);background:rgba(255,179,71,.08);}
.tk-sched-badge{font-size:var(--fs-xs);font-weight:600;color:var(--accent-primary);padding:.05rem .25rem;background:rgba(0,212,255,.06);border-radius:4px;}
.tk-actions{display:flex;gap:.15rem;flex-shrink:0;}
.tk-act-btn{width:22px;height:22px;border:none;border-radius:5px;background:transparent;color:var(--text-muted);font-size:var(--fs-xs);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;opacity:.35;}
.tk-act-btn:hover{opacity:1;background:var(--bg-hover);}
.tk-del-btn:hover{color:var(--accent-secondary);}
.tk-sched-btn:hover{color:var(--accent-primary);}
.tk-edit-btn:hover{color:var(--accent-warning);}

@media(max-width:600px){
    .tk-add-row{flex-direction:column;}.tk-add-input,.tk-add-date,.tk-add-prio{max-width:100%;width:100%;}
    .tk-filter{font-size:var(--fs-xs);padding:.25rem .35rem;}
    .tk-item{padding:.35rem .45rem;}
}

/* ============================================
   MARKDOWN EDITOR — Reusable component styles
   ============================================ */
.me-container{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg-card);}
.me-toolbar{display:flex;flex-wrap:wrap;gap:.2rem;padding:.4rem .5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);align-items:center;}
.me-btn{width:30px;height:28px;border:1px solid transparent;border-radius:5px;background:transparent;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;}
.me-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text-primary);}
.me-btn.active{background:rgba(0,212,255,.12);border-color:var(--accent-primary);color:var(--accent-primary);}
.me-btn.me-h{font-size:var(--fs-xs);letter-spacing:-.02em;}
.me-sep{width:1px;height:20px;background:var(--border);margin:0 .15rem;flex-shrink:0;}
.me-body{min-height:180px;max-height:500px;overflow-y:auto;padding:.85rem 1rem;font-size:var(--fs-md);line-height:1.6;color:var(--text-primary);outline:none;font-family:'Manrope',sans-serif;}
.me-body:empty::before{content:attr(data-placeholder);color:var(--text-muted);pointer-events:none;font-style:italic;}
.me-body h1{font-size:1.3rem;font-weight:800;margin:.5rem 0 .3rem;color:var(--text-primary);}
.me-body h2{font-size:1.05rem;font-weight:700;margin:.4rem 0 .25rem;color:var(--text-primary);}
.me-body h3{font-size:var(--fs-lg);font-weight:700;margin:.35rem 0 .2rem;color:var(--text-secondary);}
.me-body p{margin:.25rem 0;}
.me-body ul,.me-body ol{margin:.3rem 0 .3rem 1.2rem;padding:0;}
.me-body li{margin:.15rem 0;}
.me-body a{color:var(--accent-primary);text-decoration:underline;}
.me-body s{color:var(--text-muted);}

.me-body .md-task{list-style:none;margin-left:-1.2rem;display:flex;align-items:flex-start;gap:.45rem;padding:.2rem 0;}
.me-body .md-task input[type="checkbox"]{display:none;order:-2;}
.me-body .md-task .md-check-btn{width:24px;height:24px;margin:.25rem 0 .25rem 0;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0;order:-1;}
.me-body .md-task .md-check-btn:hover{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.05);}
.me-body .md-task-done .md-check-btn{border-color:var(--accent-success,#a6e3a1)!important;color:var(--accent-success,#a6e3a1)!important;background:rgba(0,255,136,.08)!important;}
.me-body .md-task-done{color:var(--text-muted);text-decoration:line-through;}
.note-view-body .md-task,.modal-body .md-task,.wiki-content .md-task{list-style:none;margin-left:-1.2rem;display:flex;align-items:flex-start;gap:.45rem;padding:.2rem 0;}
.note-view-body .md-task input[type="checkbox"],.modal-body .md-task input[type="checkbox"],.wiki-content .md-task input[type="checkbox"]{display:none;}
.note-view-body .md-task .md-check-btn,.modal-body .md-task .md-check-btn,.wiki-content .md-task .md-check-btn{width:24px;height:24px;margin:.25rem 0 .25rem 0;border:2px solid var(--border);border-radius:50%;background:transparent;color:transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;flex-shrink:0;order:-1;}
.note-view-body .md-task .md-check-btn:hover,.modal-body .md-task .md-check-btn:hover,.wiki-content .md-task .md-check-btn:hover{border-color:var(--accent-success,#a6e3a1);color:var(--accent-success,#a6e3a1);background:rgba(0,255,136,.05);}
.note-view-body .md-task-done .md-check-btn,.modal-body .md-task-done .md-check-btn,.wiki-content .md-task-done .md-check-btn{border-color:var(--accent-success,#a6e3a1)!important;color:var(--accent-success,#a6e3a1)!important;background:rgba(0,255,136,.08)!important;}
.note-view-body .md-task-done,.modal-body .md-task-done,.wiki-content .md-task-done{color:var(--text-muted);text-decoration:line-through;}
.md-inline-img{max-width:100%;border-radius:8px;margin:.5rem 0;}
.md-hr,
.me-body hr,
.note-view-body hr,
.modal-body hr,
.wiki-content hr{border:none;border-top:1px solid var(--border);margin:1rem 0;}
.me-body::-webkit-scrollbar{width:4px;}
.me-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

.modal-body .me-body{color:var(--text-primary);font-size:var(--fs-md);line-height:1.6;}
.modal-body .me-body li{padding:0;margin:.15rem 0;}
.modal-body .me-body li::before{content:none;display:none;}
.modal-body .me-body ul{list-style:disc;padding-left:1.2rem;}
.modal-body .me-body ol{list-style:decimal;padding-left:1.2rem;}
.modal-body .me-body p,.modal-body .me-body div{color:var(--text-primary);font-size:var(--fs-md);}
.modal-body .me-body h1,.modal-body .me-body h2{color:var(--text-primary);}

.modal-body .note-view-body{color:var(--text-primary);font-size:var(--fs-md);}
.modal-body .note-view-body li{padding:0;}
.modal-body .note-view-body li::before{content:none;display:none;}
.modal-body .note-view-body ul{list-style:disc;padding-left:1.2rem;}
.modal-body .note-view-body ol{list-style:decimal;padding-left:1.2rem;}

.me-container.me-compact .me-body{min-height:80px;max-height:200px;font-size:var(--fs-md);}
.me-container.me-compact .me-toolbar{padding:.25rem .4rem;}

@media(max-width:768px){
    .me-btn{width:28px;height:26px;font-size:var(--fs-xs);}
    .me-body{min-height:140px;padding:.65rem .75rem;font-size:var(--fs-md);}
}

.me-raw{width:100%;min-height:200px;padding:.75rem;border:1px solid var(--border);border-radius:0 0 8px 8px;background:var(--bg-input);color:var(--text-primary);font-family:'JetBrains Mono','Fira Code',monospace;font-size:var(--fs-sm);line-height:1.6;resize:vertical;outline:none;border-top:none;}
.me-raw:focus{box-shadow:0 0 0 2px rgba(0,212,255,.12);}
.me-toggle-raw{font-family:'JetBrains Mono',monospace !important;font-size:var(--fs-xs) !important;letter-spacing:.5px;}
.me-toggle-raw.active{background:var(--accent-primary) !important;color:#fff !important;}

.me-container{position:relative;}
.me-tag-autocomplete{position:absolute;z-index:100;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px var(--shadow);max-height:180px;overflow-y:auto;min-width:120px;}
.me-tag-ac-item{padding:.4rem .65rem;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;transition:background .15s;}
.me-tag-ac-item:hover{background:var(--bg-hover);color:var(--accent-primary);}

/* ============================================
   POP! THEME — "ATELIER" — Brutalist Luxury
   Sharp geometric editorial. Black & Gold.
   Completely distinct UI language.
   ============================================ */

body.pop-theme{
    --bg-primary:#060606;--bg-secondary:#0c0c0c;--bg-card:#101010;--bg-hover:#181818;--bg-input:#080808;
    --accent-primary:#d4a622;--accent-secondary:#f0d060;--accent-success:#b8952a;--accent-warning:#e89820;
    --travel-color:#b8952a;--travel-bg:rgba(180,149,42,.07);--travel-border:rgba(180,149,42,.28);
    --text-primary:#ece6d6;--text-secondary:#968c78;--text-muted:#524a3c;
    --border:#1e1a14;--shadow:rgba(212,166,34,.05);

    --radius-sm:1px;--radius-md:2px;--radius-lg:3px;--radius-xl:4px;
    font-family:'Outfit',-apple-system,system-ui,sans-serif;
    letter-spacing:.015em;
    font-size:15px;
    line-height:1.55;
}

body.pop-theme .stat-val,body.pop-theme .car-stat-val,body.pop-theme .todo-stat-val,
body.pop-theme .gym-prog-stat,body.pop-theme .gym-ex-stat,body.pop-theme .fin-total-amount,
body.pop-theme .log-time,body.pop-theme .gym-hm-summary,body.pop-theme .russe-insight-val,
body.pop-theme .gym-test-result-val,body.pop-theme .note-card-date,body.pop-theme .log-date-header{
    font-family:'JetBrains Mono','Space Mono',monospace!important;
    letter-spacing:-.02em;
}

body.pop-theme .grain-overlay{display:none;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TYPOGRAPHY — Uppercase, wide tracking, sharp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme h1,body.pop-theme h2,body.pop-theme h3{
    font-family:'Outfit',sans-serif;font-weight:700;letter-spacing:.04em;
}

body.pop-theme h1,
body.pop-theme .modal-title,
body.pop-theme .hub-card-title,
body.pop-theme .sidebar-brand{
    background:none!important;
    -webkit-background-clip:unset!important;background-clip:unset!important;
    -webkit-text-fill-color:#d4a622!important;color:#d4a622!important;
    text-transform:uppercase;letter-spacing:.1em;font-weight:800;
}
body.pop-theme .meal-section-title:not(.no-gradient),
body.pop-theme .spirit-card-title{
    background:none!important;
    -webkit-background-clip:unset!important;background-clip:unset!important;
    -webkit-text-fill-color:#d4a622!important;color:#d4a622!important;
    text-transform:uppercase;letter-spacing:.07em;font-weight:700;font-size:var(--fs-lg);
    padding-bottom:.5rem;border-bottom:1px solid #1e1a14;
}

body.pop-theme .fin-card-title,body.pop-theme .gym-hm-col-title{
    text-transform:uppercase;letter-spacing:.07em;font-size:var(--fs-xs);font-weight:700;color:#968c78;
}
body.pop-theme .fin-label{
    text-transform:uppercase;letter-spacing:.06em;font-size:var(--fs-xs);font-weight:600;color:#968c78;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SIDEBAR — Clean, no-gradient, precise lines
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .sidebar{
    background:#090909;border-right:1px solid #1e1a14;box-shadow:none;
}
body.pop-theme .sidebar-brand-sub{
    color:#524a3c;text-transform:uppercase;letter-spacing:.14em;font-size:var(--fs-xs);font-weight:600;
}
body.pop-theme .sb-nav-link{
    color:#968c78;border-radius:0!important;transition:all .12s;font-weight:500;
    letter-spacing:.02em;border-left:2px solid transparent;padding:.5rem .7rem;
}
body.pop-theme .sb-nav-link:hover{
    background:rgba(212,166,34,.03);color:#d4a622;border-left-color:rgba(212,166,34,.25);
}
body.pop-theme .sb-nav-link.active{
    background:rgba(212,166,34,.05);color:#d4a622;
    border-left:2px solid #d4a622;border-radius:0!important;
}
body.pop-theme .sb-heading{
    color:#524a3c;letter-spacing:.16em;text-transform:uppercase;font-size:var(--fs-xs);font-weight:700;
}
body.pop-theme .sb-divider{border-color:#141210;}
body.pop-theme .sb-quick-input{
    background:#080808;border:1px solid #1e1a14;color:#ece6d6;border-radius:2px!important;
    font-family:'Outfit',sans-serif;
}
body.pop-theme .sb-quick-input:focus{border-color:#d4a622;box-shadow:none;}
body.pop-theme .sb-quick-btn{
    background:transparent;color:#d4a622;border:1px solid #d4a622;border-radius:2px!important;
    text-transform:uppercase;font-size:var(--fs-xs);letter-spacing:.07em;font-weight:700;
    font-family:'Outfit',sans-serif;
}
body.pop-theme .sb-quick-btn:hover{background:#d4a622;color:#060606;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TOPBAR
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .topbar{
    background:rgba(6,6,6,.95);border-bottom:1px solid #1e1a14;backdrop-filter:blur(20px);
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TAB NAVIGATION — Underline-only, no pills
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .tab-btn{
    color:#524a3c;border:none!important;border-bottom:2px solid transparent!important;
    border-radius:0!important;padding:.55rem .7rem;transition:all .15s;
    font-family:'Outfit',sans-serif;text-transform:uppercase;
    letter-spacing:.07em;font-size:var(--fs-xs);font-weight:600;background:none!important;
}
body.pop-theme .tab-btn:hover{color:#968c78;background:none!important;}
body.pop-theme .tab-btn.active{
    color:#d4a622!important;border-bottom-color:#d4a622!important;
    text-shadow:none;background:none!important;
}
body.pop-theme .sub-tab-btn{
    color:#524a3c;border:none!important;border-bottom:2px solid transparent!important;
    border-radius:0!important;font-family:'Outfit',sans-serif;text-transform:uppercase;
    letter-spacing:.06em;font-size:var(--fs-xs);font-weight:600;
    padding:.4rem .55rem;transition:all .15s;background:none!important;
}
body.pop-theme .sub-tab-btn:hover{color:#968c78;background:none!important;}
body.pop-theme .sub-tab-btn.active{
    color:#d4a622!important;border-bottom-color:#d4a622!important;background:none!important;
}

body.pop-theme .gym-tab,body.pop-theme .car-tab,body.pop-theme .nutri-tab,
body.pop-theme .sport-tab,body.pop-theme .test-tab,body.pop-theme .dolls-tab,
body.pop-theme .russe-tab,body.pop-theme .prog-tab,body.pop-theme .mod-tab,body.pop-theme .content-tab{
    border:none!important;border-bottom:2px solid transparent!important;
    border-radius:0!important;background:none!important;color:#524a3c;
    font-family:'Outfit',sans-serif;text-transform:uppercase;
    letter-spacing:.06em;font-size:var(--fs-xs);font-weight:600;
    padding:.4rem .55rem;transition:all .15s;
}
body.pop-theme .gym-tab:hover,body.pop-theme .car-tab:hover,body.pop-theme .nutri-tab:hover,
body.pop-theme .sport-tab:hover,body.pop-theme .test-tab:hover,body.pop-theme .dolls-tab:hover,
body.pop-theme .russe-tab:hover,body.pop-theme .prog-tab:hover,body.pop-theme .mod-tab:hover,body.pop-theme .content-tab:hover{
    color:#968c78;border-bottom-color:transparent!important;background:none!important;
}
body.pop-theme .gym-tab.active,body.pop-theme .car-tab.active,body.pop-theme .nutri-tab.active,
body.pop-theme .sport-tab.active,body.pop-theme .test-tab.active,body.pop-theme .dolls-tab.active,
body.pop-theme .russe-tab.active,body.pop-theme .prog-tab.active,body.pop-theme .mod-tab.active,body.pop-theme .content-tab.active{
    color:#d4a622!important;border-bottom-color:#d4a622!important;background:none!important;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CARDS — Flat, sharp, no shadows, no gradients
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .fin-card,body.pop-theme .hub-card,body.pop-theme .g-card,
body.pop-theme .note-card,body.pop-theme .bucket-card,body.pop-theme .idea-card,
body.pop-theme .social-card,body.pop-theme .meal-card,
body.pop-theme .gym-challenge-card,body.pop-theme .et-bank-card{
    background:#101010;border:1px solid #1e1a14;
    box-shadow:none;border-radius:3px;transition:border-color .15s;
}
body.pop-theme .fin-card:hover,body.pop-theme .hub-card:hover,
body.pop-theme .note-card:hover,body.pop-theme .idea-card:hover,
body.pop-theme .social-card:hover{
    border-color:#d4a622;box-shadow:none;transform:none;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   STAT BOXES — Minimal, sharp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .stat-box,body.pop-theme .car-stat,
body.pop-theme .todo-stat,body.pop-theme .russe-stat{
    border-radius:2px;border:1px solid #1e1a14;background:#0c0c0c;
}
body.pop-theme .stat-box:hover,body.pop-theme .car-stat:hover{border-color:#d4a622;}
body.pop-theme .stat-label,body.pop-theme .car-stat-label,body.pop-theme .todo-stat-label{
    text-transform:uppercase;letter-spacing:.09em;font-family:'Outfit',sans-serif;
    font-size:var(--fs-xs);font-weight:700;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   BUTTONS — Outlined / hollow, sharp edges
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .fin-submit,body.pop-theme .g-btn-primary{
    background:transparent!important;color:#d4a622;
    border:1.5px solid #d4a622;font-weight:700;border-radius:2px;
    box-shadow:none;transition:all .15s;text-transform:uppercase;
    letter-spacing:.06em;font-family:'Outfit',sans-serif;font-size:var(--fs-sm);
}
body.pop-theme .fin-submit:hover,body.pop-theme .g-btn-primary:hover{
    background:#d4a622!important;color:#060606;
    box-shadow:0 0 24px rgba(212,166,34,.12);transform:none;
}
body.pop-theme .g-btn{
    border:1px solid #1e1a14;background:transparent;color:#968c78;border-radius:2px;
    font-family:'Outfit',sans-serif;text-transform:uppercase;
    letter-spacing:.05em;font-size:var(--fs-xs);font-weight:600;
}
body.pop-theme .g-btn:hover{border-color:#d4a622;color:#d4a622;background:transparent;}
body.pop-theme .icon-action-btn{
    background:transparent;border:1px solid #1e1a14;color:#968c78;border-radius:2px;
}
body.pop-theme .icon-action-btn:hover{
    background:transparent;border-color:#d4a622;color:#d4a622;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   INPUTS — Minimal, sharp, no glow
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .fin-input,body.pop-theme .fin-select,
body.pop-theme .g-input,body.pop-theme .g-select{
    background:#080808;border:1px solid #1e1a14;color:#ece6d6;
    border-radius:2px;font-family:'Outfit',sans-serif;transition:border-color .12s;
}
body.pop-theme .fin-input:focus,body.pop-theme .fin-select:focus,
body.pop-theme .g-input:focus{border-color:#d4a622;box-shadow:none;outline:none;}
body.pop-theme .fin-input::placeholder,body.pop-theme .g-input::placeholder{
    text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-xs);color:#524a3c;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MODAL — Gold-border, sharp, dramatic
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .modal{background:rgba(0,0,0,.82);backdrop-filter:blur(14px);}
body.pop-theme .modal-content{
    background:#0e0e0e;border:1px solid #d4a622;
    box-shadow:0 0 80px rgba(212,166,34,.06),0 40px 80px rgba(0,0,0,.5);
    border-radius:4px;
}
body.pop-theme .modal-close{
    color:#524a3c;border:1px solid #1e1a14;border-radius:2px;width:28px;height:28px;
}
body.pop-theme .modal-close:hover{color:#d4a622;border-color:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SCROLLBAR — Hair-thin, sharp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme ::-webkit-scrollbar{width:3px;}
body.pop-theme ::-webkit-scrollbar-track{background:#060606;}
body.pop-theme ::-webkit-scrollbar-thumb{background:#1e1a14;border-radius:0;}
body.pop-theme ::-webkit-scrollbar-thumb:hover{background:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CHECKBOXES / TODOS — Square, crisp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .todo-check{border-color:#1e1a14;border-radius:2px;}
body.pop-theme .todo-check:hover{border-color:#d4a622;background:transparent;}
body.pop-theme .todo-check.todo-done{border-color:#d4a622;color:#d4a622;background:rgba(212,166,34,.06);border-radius:2px;}
body.pop-theme .sm-panty-check{border-radius:2px!important;}
body.pop-theme .sm-panty-check:hover{border-color:#d4a622;color:#d4a622;background:transparent;}
body.pop-theme .sm-panty-done{border-color:#d4a622!important;color:#d4a622!important;background:rgba(212,166,34,.06)!important;border-radius:2px!important;}
body.pop-theme .md-check-btn{border-radius:2px!important;}
body.pop-theme .md-check-btn:hover{border-color:#d4a622!important;color:#d4a622!important;background:transparent!important;}
body.pop-theme .md-task-done .md-check-btn{border-color:#d4a622!important;color:#d4a622!important;background:rgba(212,166,34,.06)!important;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TOGGLE SWITCHES
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .tire-slider{background:#161210;border-radius:2px;}
body.pop-theme .tire-slider::before{border-radius:2px;}
body.pop-theme .tire-toggle input:checked+.tire-slider{background:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PRAYER
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .prayer-item.done{background:rgba(212,166,34,.03);border-color:rgba(212,166,34,.12);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   FINANCE
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .fin-total{background:rgba(212,166,34,.03);border:1px solid #1e1a14;border-radius:2px;}
body.pop-theme .fin-preview{color:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   HUB
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .hub-quote-card{
    background:#0c0c0c;border:1px solid #1e1a14;
    border-left:3px solid #d4a622;border-radius:3px;
}
body.pop-theme .tacos-bar-fill,body.pop-theme .appart-bar-fill{background:#d4a622;border-radius:0;}
body.pop-theme .hub-link{
    border-radius:2px;font-family:'Outfit',sans-serif;
    text-transform:uppercase;letter-spacing:.05em;font-size:var(--fs-xs);font-weight:600;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   PROGRESS BARS — Flat, no radius
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .planner-progress-fill,body.pop-theme .challenge-bar-fill{background:#d4a622;border-radius:0;}
body.pop-theme .planner-progress-bar,body.pop-theme .challenge-bar{border-radius:0;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   LOG
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .log-entry{border-left-color:rgba(212,166,34,.18);}
body.pop-theme .log-time{color:#524a3c;}
body.pop-theme .log-container{border-radius:3px;}
body.pop-theme .log-filter-btn{
    border-radius:2px;font-family:'Outfit',sans-serif;
    text-transform:uppercase;letter-spacing:.05em;font-size:var(--fs-xs);
}
body.pop-theme .log-filter-btn.active{background:#d4a622;color:#060606;border-color:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   BADGES
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .g-badge-primary{background:rgba(212,166,34,.07);color:#d4a622;border-radius:2px;}
body.pop-theme .g-badge-success{background:rgba(184,149,42,.07);color:#b8952a;border-radius:2px;}
body.pop-theme .g-badge-warning{background:rgba(232,152,32,.07);color:#e89820;border-radius:2px;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   WIKI
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .wiki-toc{background:#0c0c0c;border:1px solid #1e1a14;border-radius:3px;}
body.pop-theme .wiki-toc-title{color:#d4a622;text-transform:uppercase;letter-spacing:.1em;font-size:var(--fs-xs);font-weight:700;}
body.pop-theme .wiki-infobox{background:#0c0c0c;border:1px solid #1e1a14;border-radius:3px;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MARKDOWN EDITOR
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .me-toolbar{background:#0c0c0c;border:1px solid #1e1a14;border-radius:2px;}
body.pop-theme .me-btn{color:#968c78;border-radius:2px;}
body.pop-theme .me-btn:hover{color:#d4a622;background:transparent;}
body.pop-theme .me-btn.active{color:#d4a622;background:rgba(212,166,34,.05);}
body.pop-theme .me-body{
    background:#080808;border:1px solid #1e1a14;border-radius:2px;
    font-family:'Outfit',sans-serif;
}
body.pop-theme .me-body:focus{border-color:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SETTINGS
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .settings-section{border-color:#1e1a14;}
body.pop-theme .settings-section h3{
    text-transform:uppercase;letter-spacing:.07em;font-size:var(--fs-sm);font-family:'Outfit',sans-serif;
}
body.pop-theme .settings-danger{background:rgba(160,40,40,.02);border-color:rgba(160,40,40,.12);border-radius:3px;}
body.pop-theme .settings-reset-btn{
    border-color:rgba(160,40,40,.25);color:#a03030;border-radius:2px;
    text-transform:uppercase;letter-spacing:.05em;font-size:var(--fs-xs);font-family:'Outfit',sans-serif;
}
body.pop-theme .settings-reset-btn:hover{background:rgba(160,40,40,.06);}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   GYM / SPORT — Everything sharp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .gym-set-row:nth-child(even){background:rgba(212,166,34,.015);}
body.pop-theme .gym-muscle-cb input:checked+span{
    background:rgba(212,166,34,.08);color:#d4a622;
    border-color:rgba(212,166,34,.2);border-radius:2px;
}
body.pop-theme .gym-equip-option{border-radius:2px;}
body.pop-theme .gym-equip-option.active{border-color:#d4a622;background:rgba(212,166,34,.04);}
body.pop-theme .gym-ex-card{border-radius:3px;}
body.pop-theme .gym-ex-type{
    border-radius:2px;font-family:'JetBrains Mono',monospace;
    font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;
}
body.pop-theme .gym-ex-stat{border-radius:2px;font-size:var(--fs-xs);}
body.pop-theme .gym-prog-stat{border-radius:2px;}
body.pop-theme .gym-hm-cell{border-radius:1px;}
body.pop-theme .gym-heatmap-card{border-radius:3px;border:1px solid #1e1a14;}
body.pop-theme .gym-session-ex{border-radius:3px;}
body.pop-theme .gym-test-card{border-radius:3px;}
body.pop-theme .gym-exmode-option{border-radius:2px;}
body.pop-theme .gym-challenge-card{border-radius:3px;}
body.pop-theme .gym-ex-photo{border-radius:3px;}
body.pop-theme .gym-ex-no-photo{border-radius:3px;}
body.pop-theme .gym-hm-active{background:rgba(212,166,34,.18);border-color:rgba(212,166,34,.35);}
body.pop-theme .gym-hm-today{box-shadow:inset 0 0 0 1.5px #d4a622;}
body.pop-theme .gym-hm-cc{background:rgba(180,120,255,.12);border-color:rgba(180,120,255,.25);}
body.pop-theme .gym-hm-both{background:linear-gradient(135deg,rgba(212,166,34,.18),rgba(180,120,255,.12));}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   TOAST — Left-bordered, sharp
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .toast{
    background:#101010;border:1px solid #1e1a14;color:#ece6d6;
    box-shadow:0 4px 20px rgba(0,0,0,.35);border-radius:3px;
    font-family:'Outfit',sans-serif;border-left:3px solid #d4a622;
}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SCHEDULE
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .sch-block{border-left-color:#d4a622;border-radius:2px;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   LINKS & SELECTION
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme a{color:#d4a622;}
body.pop-theme a:hover{color:#f0d060;}
body.pop-theme ::selection{background:rgba(212,166,34,.18);color:#ece6d6;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   AUTH BANNER
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .auth-banner{background:rgba(212,166,34,.04);border-color:rgba(212,166,34,.12);border-radius:3px;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SIDEBAR FOOTER
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .sb-footer-btn{
    color:#524a3c;border-radius:2px;text-transform:uppercase;
    letter-spacing:.05em;font-family:'Outfit',sans-serif;font-size:var(--fs-xs);font-weight:600;
}
body.pop-theme .sb-footer-btn:hover{color:#d4a622;background:transparent;border-color:#d4a622;}
body.pop-theme .sidebar-version{color:#1e1a14;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   CONFIRM DIALOG
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .confirm-overlay{background:rgba(0,0,0,.78);}
body.pop-theme .confirm-box{
    background:#0e0e0e;border:1px solid #d4a622;
    box-shadow:0 0 50px rgba(212,166,34,.05);border-radius:4px;
}
body.pop-theme .confirm-title{text-transform:uppercase;letter-spacing:.07em;font-family:'Outfit',sans-serif;}
body.pop-theme .confirm-btn{border-radius:2px;text-transform:uppercase;letter-spacing:.05em;font-family:'Outfit',sans-serif;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   NOTE CARDS
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .note-card{border-radius:3px;}
body.pop-theme .note-card-title{color:#ece6d6;font-family:'Outfit',sans-serif;font-weight:600;}
body.pop-theme .note-card:hover{border-color:#d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   EMPTY STATES
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .empty-page .empty-icon,body.pop-theme .g-empty-icon{opacity:.35;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   RUSSIAN — Keyboard, cards, progress
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .ru-key{background:#0c0c0c;border:1px solid #1e1a14;color:#968c78;border-radius:3px;}
body.pop-theme .ru-key.active{background:rgba(212,166,34,.08);border-color:#d4a622;color:#d4a622;}
body.pop-theme .ru-key.correct{background:rgba(184,149,42,.06);border-color:#b8952a;}
body.pop-theme .ru-key.wrong{background:rgba(160,40,40,.06);border-color:#a03030;}
body.pop-theme .russe-card{border-radius:4px;}
body.pop-theme .russe-action-area .russe-start-btn{
    border-radius:2px;text-transform:uppercase;letter-spacing:.05em;font-family:'Outfit',sans-serif;
}
body.pop-theme .russe-bonus-btn{border-radius:2px;}
body.pop-theme .russe-progress-bar{border-radius:0;}
body.pop-theme .russe-prog-seg{border-radius:0;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   SEARCH RESULTS — match sharp aesthetic
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .sb-search-results{border-radius:3px;border-color:#1e1a14;}
body.pop-theme .sb-search-input{
    border-radius:2px!important;font-family:'Outfit',sans-serif;
    letter-spacing:.02em;
}
body.pop-theme .sb-search-text{font-family:'Outfit',sans-serif;}
body.pop-theme .sb-search-l1{border-left-color:#d4a622;background:rgba(212,166,34,.04);}
body.pop-theme .sb-search-l1 .sb-search-text{color:#d4a622;}
body.pop-theme .sb-search-l2{border-left-color:rgba(212,166,34,.3);}
body.pop-theme .sb-search-l3{border-left-color:#1e1a14;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   MISC COMPONENTS
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .social-avatar{border-radius:3px;}
body.pop-theme .idea-card{border-radius:3px;}
body.pop-theme .planner-block{border-radius:2px;}
body.pop-theme .photo-preview,body.pop-theme .sp-photo-preview,
body.pop-theme .rf-photo-preview,body.pop-theme .ing-photo-preview{border-radius:3px;}
body.pop-theme .russe-import-btn{
    border-radius:2px;text-transform:uppercase;letter-spacing:.04em;
    font-size:var(--fs-xs);font-family:'Outfit',sans-serif;
}
body.pop-theme .russe-import-btn:hover{border-color:#d4a622;color:#d4a622;}
body.pop-theme .rw-reward-card{border-radius:3px;}
body.pop-theme .meal-card{border-radius:3px;}
body.pop-theme .cat-ac-list{border-radius:3px;}
body.pop-theme .cat-ac-item{font-family:'Outfit',sans-serif;}

body.pop-theme .theme-dot-pop{background:linear-gradient(135deg,#d4a622,#080808);border:1.5px solid #d4a622;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   DECORATIVE: Gold accent line under page content areas
   Adds an editorial "rule" under tab bars
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .gym-tabs,body.pop-theme .car-tabs,body.pop-theme .nutri-tabs,
body.pop-theme .russe-tabs,body.pop-theme .prog-tabs,body.pop-theme .dolls-tabs,body.pop-theme .content-tabs{
    border-bottom:1px solid #1e1a14;padding-bottom:0;margin-bottom:.8rem;
}
body.pop-theme .tab-nav{border-bottom:1px solid #1e1a14;margin-bottom:.6rem;}
body.pop-theme .sub-tabs{border-bottom:1px solid #141210;}

/* ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   DONUT CHART — Brutalist gold treatment
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ */
body.pop-theme .exp-donut-dot{border-radius:1px;}
body.pop-theme .exp-donut-tooltip{border-radius:2px;border-color:#2a2418;}
body.pop-theme .exp-donut-center-val{fill:#d4a622;font-family:'JetBrains Mono','Space Mono',monospace;}
body.pop-theme .exp-donut-center-lbl{fill:#968c78;text-transform:uppercase;letter-spacing:.08em;}
body.pop-theme .exp-donut-legend-cat{text-transform:uppercase;letter-spacing:.04em;font-size:var(--fs-sm);}
body.pop-theme .exp-donut-seg{stroke:#060606;stroke-width:1.5;}

/* ============================================
   CATPPUCCIN THEMES
   Latte (light), Frappé, Macchiato, Mocha (dark)
   ============================================ */

body.ctp-frappe{
    --bg-primary:#303446;--bg-secondary:#292c3c;--bg-card:#414559;--bg-hover:#51576d;--bg-input:#232634;
    --text-primary:#c6d0f5;--text-secondary:#b5bfe2;--text-muted:#838ba7;
    --border:#626880;--shadow:rgba(0,0,0,.25);
    --accent-success:#a6d189;--accent-warning:#e5c890;
    --ctp-rosewater:#f2d5cf;--ctp-flamingo:#eebebe;--ctp-pink:#f4b8e4;--ctp-mauve:#ca9ee6;
    --ctp-red:#e78284;--ctp-maroon:#ea999c;--ctp-peach:#ef9f76;--ctp-yellow:#e5c890;
    --ctp-green:#a6d189;--ctp-teal:#81c8be;--ctp-sky:#99d1db;--ctp-sapphire:#85c1dc;
    --ctp-blue:#8caaee;--ctp-lavender:#babbf1;
}
body.ctp-frappe .grain-overlay{display:none;}
body.ctp-frappe .sidebar{background:#292c3c;border-right:1px solid #414559;}
body.ctp-frappe .topbar{background:rgba(48,52,70,.9);border-bottom:1px solid #414559;}
body.ctp-frappe .modal{background:rgba(35,38,52,.6);}
body.ctp-frappe .modal-content{box-shadow:0 20px 50px rgba(0,0,0,.35);}

body.ctp-macchiato{
    --bg-primary:#24273a;--bg-secondary:#1e2030;--bg-card:#363a4f;--bg-hover:#494d64;--bg-input:#181926;
    --text-primary:#cad3f5;--text-secondary:#b8c0e0;--text-muted:#8087a2;
    --border:#5b6078;--shadow:rgba(0,0,0,.3);
    --accent-success:#a6da95;--accent-warning:#eed49f;
    --ctp-rosewater:#f4dbd6;--ctp-flamingo:#f0c6c6;--ctp-pink:#f5bde6;--ctp-mauve:#c6a0f6;
    --ctp-red:#ed8796;--ctp-maroon:#ee99a0;--ctp-peach:#f5a97f;--ctp-yellow:#eed49f;
    --ctp-green:#a6da95;--ctp-teal:#8bd5ca;--ctp-sky:#91d7e3;--ctp-sapphire:#7dc4e4;
    --ctp-blue:#8aadf4;--ctp-lavender:#b7bdf8;
}
body.ctp-macchiato .grain-overlay{display:none;}
body.ctp-macchiato .sidebar{background:#1e2030;border-right:1px solid #363a4f;}
body.ctp-macchiato .topbar{background:rgba(36,39,58,.9);border-bottom:1px solid #363a4f;}
body.ctp-macchiato .modal{background:rgba(24,25,38,.6);}
body.ctp-macchiato .modal-content{box-shadow:0 20px 50px rgba(0,0,0,.4);}

body.ctp-mocha{
    --bg-primary:#1e1e2e;--bg-secondary:#181825;--bg-card:#313244;--bg-hover:#45475a;--bg-input:#11111b;
    --text-primary:#cdd6f4;--text-secondary:#bac2de;--text-muted:#7f849c;
    --border:#585b70;--shadow:rgba(0,0,0,.35);
    --accent-success:#a6e3a1;--accent-warning:#f9e2af;
    --ctp-rosewater:#f5e0dc;--ctp-flamingo:#f2cdcd;--ctp-pink:#f5c2e7;--ctp-mauve:#cba6f7;
    --ctp-red:#f38ba8;--ctp-maroon:#eba0ac;--ctp-peach:#fab387;--ctp-yellow:#f9e2af;
    --ctp-green:#a6e3a1;--ctp-teal:#94e2d5;--ctp-sky:#89dceb;--ctp-sapphire:#74c7ec;
    --ctp-blue:#89b4fa;--ctp-lavender:#b4befe;
}
body.ctp-mocha .grain-overlay{display:none;}
body.ctp-mocha .sidebar{background:#181825;border-right:1px solid #313244;}
body.ctp-mocha .topbar{background:rgba(30,30,46,.9);border-bottom:1px solid #313244;}
body.ctp-mocha .modal{background:rgba(17,17,27,.6);}
body.ctp-mocha .modal-content{box-shadow:0 20px 50px rgba(0,0,0,.45);}

body.ctp-latte{
    --bg-primary:#eff1f5;--bg-secondary:#e6e9ef;--bg-card:#ffffff;--bg-hover:#ccd0da;--bg-input:#dce0e8;
    --text-primary:#4c4f69;--text-secondary:#5c5f77;--text-muted:#8c8fa1;
    --border:#acb0be;--shadow:rgba(0,0,0,.06);
    --accent-success:#40a02b;--accent-warning:#df8e1d;
    --ctp-rosewater:#dc8a78;--ctp-flamingo:#dd7878;--ctp-pink:#ea76cb;--ctp-mauve:#8839ef;
    --ctp-red:#d20f39;--ctp-maroon:#e64553;--ctp-peach:#fe640b;--ctp-yellow:#df8e1d;
    --ctp-green:#40a02b;--ctp-teal:#179299;--ctp-sky:#04a5e5;--ctp-sapphire:#209fb5;
    --ctp-blue:#1e66f5;--ctp-lavender:#7287fd;
}
body.ctp-latte .grain-overlay{display:none;}
body.ctp-latte .sidebar{background:#ffffff;border-right:1px solid #bcc0cc;box-shadow:2px 0 12px rgba(0,0,0,.04);}
body.ctp-latte .topbar{background:rgba(239,241,245,.9);border-bottom:1px solid #bcc0cc;}
body.ctp-latte .sb-nav-link{color:#5c5f77;}
body.ctp-latte .sb-nav-link:hover{background:#e6e9ef;color:var(--accent-primary);}
body.ctp-latte .tab-btn{color:#5c5f77;border-color:#acb0be;}
body.ctp-latte .tab-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);}
body.ctp-latte .sub-tab-btn{color:#5c5f77;}
body.ctp-latte .sub-tab-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);}
body.ctp-latte .modal{background:rgba(172,176,190,.4);}
body.ctp-latte .modal-content{box-shadow:0 20px 50px rgba(0,0,0,.1);}

body[class*="ctp-"] h1,
body[class*="ctp-"] .modal-title,
body[class*="ctp-"] .meal-section-title:not(.no-gradient){
    background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}

.ctp-accent-rosewater{--accent-primary:var(--ctp-rosewater);--accent-secondary:var(--ctp-flamingo);}
.ctp-accent-flamingo{--accent-primary:var(--ctp-flamingo);--accent-secondary:var(--ctp-pink);}
.ctp-accent-pink{--accent-primary:var(--ctp-pink);--accent-secondary:var(--ctp-mauve);}
.ctp-accent-mauve{--accent-primary:var(--ctp-mauve);--accent-secondary:var(--ctp-pink);}
.ctp-accent-red{--accent-primary:var(--ctp-red);--accent-secondary:var(--ctp-maroon);}
.ctp-accent-maroon{--accent-primary:var(--ctp-maroon);--accent-secondary:var(--ctp-red);}
.ctp-accent-peach{--accent-primary:var(--ctp-peach);--accent-secondary:var(--ctp-maroon);}
.ctp-accent-yellow{--accent-primary:var(--ctp-yellow);--accent-secondary:var(--ctp-peach);}
.ctp-accent-green{--accent-primary:var(--ctp-green);--accent-secondary:var(--ctp-teal);}
.ctp-accent-teal{--accent-primary:var(--ctp-teal);--accent-secondary:var(--ctp-green);}
.ctp-accent-sky{--accent-primary:var(--ctp-sky);--accent-secondary:var(--ctp-sapphire);}
.ctp-accent-sapphire{--accent-primary:var(--ctp-sapphire);--accent-secondary:var(--ctp-blue);}
.ctp-accent-blue{--accent-primary:var(--ctp-blue);--accent-secondary:var(--ctp-lavender);}
.ctp-accent-lavender{--accent-primary:var(--ctp-lavender);--accent-secondary:var(--ctp-blue);}

.theme-selector{margin-top:.75rem;}
.theme-selector-label{font-size:var(--fs-sm);font-weight:700;color:var(--text-secondary);margin-bottom:.4rem;display:block;}
.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-bottom:.75rem;}
.theme-opt{display:flex;align-items:center;gap:.4rem;padding:.45rem .55rem;border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .2s;background:transparent;font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);}
.theme-opt:hover{border-color:var(--accent-primary);}
.theme-opt.active{border-color:var(--accent-primary);background:var(--bg-hover);}
.theme-opt .theme-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;border:1px solid var(--border);}

.accent-grid{display:flex;flex-wrap:wrap;gap:.3rem;}
.accent-opt{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s;position:relative;}
.accent-opt:hover{transform:scale(1.15);}
.accent-opt.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary);}
.accent-opt.active::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:900;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.5);}

@media(max-width:480px){
    .theme-grid{grid-template-columns:repeat(2,1fr);}
}

.theme-dropdown-wrap{position:relative;flex:0 0 auto;}
.theme-dropdown{
    display:none;position:absolute;bottom:calc(100% + 6px);left:0;
    min-width:220px;width:max-content;
    background:var(--bg-card);border:1px solid var(--border);border-radius:10px;
    padding:.35rem;z-index:300;
    box-shadow:0 -8px 24px rgba(0,0,0,.25);
    animation:themeDropIn .15s ease-out;
}
.theme-dropdown.open{display:block;}
@keyframes themeDropIn{}

.theme-dd-item{
    display:flex;align-items:center;gap:.5rem;width:100%;
    padding:.45rem .6rem;border:none;border-radius:7px;
    background:transparent;color:var(--text-secondary);
    font-family:'Manrope',sans-serif;font-size:var(--fs-sm);font-weight:600;
    cursor:pointer;transition:all .15s;text-align:left;
}
.theme-dd-item:hover{background:var(--bg-hover);color:var(--text-primary);}
.theme-dd-item.active{background:var(--bg-hover);color:var(--accent-primary);}
.theme-dd-item.active .theme-dd-dot{box-shadow:0 0 0 2px var(--accent-primary);}

.theme-dd-dot{
    width:12px;height:12px;border-radius:50%;flex-shrink:0;
    border:1px solid var(--border);
}

.theme-dd-divider{height:1px;background:var(--border);margin:.25rem .4rem;}

.theme-dd-accents{
    display:none;padding:.35rem .3rem .15rem;
}
.theme-dd-accents.visible{display:block;}
.theme-dd-accents-label{font-size:var(--fs-xs);font-weight:700;color:var(--text-muted);margin-bottom:.35rem;text-transform:uppercase;letter-spacing:.04em;}
.theme-dd-accent-grid{display:flex;flex-wrap:wrap;gap:.25rem;}
.theme-dd-accent-btn{
    width:22px;height:22px;border-radius:50%;border:2px solid transparent;
    cursor:pointer;transition:all .15s;position:relative;
}
.theme-dd-accent-btn:hover{transform:scale(1.2);}
.theme-dd-accent-btn.active{border-color:var(--text-primary);}
.theme-dd-accent-btn.active::after{
    content:'\2713';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:var(--fs-xs);font-weight:900;color:#fff;text-shadow:0 0 3px rgba(0,0,0,.6);
}
