
.input-primary,
.input-gaming,
.input-bonus { width:100%; border:1px solid var(--flux-line); border-radius:8px; padding:.625rem; outline:none; background:var(--flux-bg); color:var(--flux-text); font-size:.875rem; transition:background .15s,border-color .15s; }
.input-primary:focus,
.input-gaming:focus,
.input-bonus:focus { border-color:var(--haven-accent); background:var(--flux-surface-hover); }
.checkbox-primary,
.checkbox-gaming { border-radius:4px; background:var(--flux-surface); border-color:var(--flux-line); accent-color:var(--haven-accent); }
.modal-base { width:100%; padding:1.5rem; border:1px solid var(--flux-line); border-radius:12px; outline:none; background:var(--flux-surface); color:var(--flux-text); box-shadow:0 25px 50px -12px #0004; }
.modal-base::backdrop { background:#000c; }
.btn-cancel { padding:.5rem 1rem; font-size:.875rem; transition:color .15s; }
.btn-cancel:hover { color:var(--flux-text); }
.btn-submit-primary,
.btn-submit-gaming,
.btn-submit-bonus { border:1px solid var(--flux-line); padding:.5rem 1rem; border-radius:8px; background:var(--site-control-bg); color:var(--site-control-ink); font-size:.875rem; font-weight:600; transition:background .15s,transform .15s; }
.btn-submit-primary:hover,
.btn-submit-gaming:hover,
.btn-submit-bonus:hover { background:var(--flux-surface-hover); }
.btn-submit-primary:active,
.btn-submit-gaming:active,
.btn-submit-bonus:active { transform:scale(.95); }
.button-hidden { opacity:0; transform:translateX(8px) scale(.9); pointer-events:none; transition:all .3s; }
.button-visible { opacity:1; transform:translateX(0) scale(1); pointer-events:auto; transition:all .3s; }
/* Section: genealogy-styles */
.genealogy-sosa-guide { padding:clamp(1.25rem,3vw,2.25rem); border:1px solid var(--haven-line); border-radius:12px; background:var(--haven-card); color:var(--haven-text); }
.genealogy-sosa-guide h2 { font-size:1.8rem; letter-spacing:-.04em; margin:.4rem 0; }
.genealogy-sosa-guide h3 { font-size:1rem; font-weight:600; margin:1rem 0 .6rem; }
.genealogy-sosa-guide p,.genealogy-sosa-guide li { color:var(--flux-muted); margin:.6rem 0; }
.genealogy-sosa-eyebrow { color:var(--haven-accent); font-size:.8rem; }
.genealogy-sosa-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem; margin:1rem 0; }
.genealogy-sosa-lookup { align-items:start; margin-bottom:2rem; }
.genealogy-sosa-equations { display:grid; gap:1rem; margin:1.25rem 0; }
.genealogy-sosa-equation { min-width:0; padding:1rem; background:var(--haven-bg); border-radius:10px; }
.genealogy-sosa-equation > span { display:block; font-size:.8rem; color:var(--haven-muted); margin-bottom:.6rem; }
.genealogy-sosa-equation math { display:math; math-style:normal; font-size:clamp(1rem,2vw,1.2rem); color:var(--haven-text); margin:.75rem 0; overflow:visible; }
.genealogy-statistics { padding:clamp(1.25rem,3vw,2.25rem); background:var(--haven-card); border:1px solid var(--haven-line); border-radius:12px; }
.genealogy-statistics h2 { font-size:1.8rem; letter-spacing:-.04em; }
.genealogy-statistics h3 { font-size:1rem; font-weight:600; margin:1.75rem 0 .75rem; }
.genealogy-statistics p { font-size:.82rem; line-height:1.7; color:var(--haven-muted); margin:.6rem 0 1rem; }
.genealogy-stat-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1rem; margin:1.25rem 0; }
.genealogy-stat-metric { padding:1rem; background:var(--haven-bg); border-radius:10px; }
.genealogy-stat-metric strong { display:block; font-size:1.8rem; font-weight:400; color:var(--haven-text); }
.genealogy-stat-metric span { font-size:.8rem; color:var(--haven-muted); }
.genealogy-charts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; margin:1.5rem 0 2rem; }
.genealogy-chart { min-width:0; padding:1.25rem; border:1px solid var(--haven-line); border-radius:12px; }
.genealogy-chart h3 { margin:0 0 .5rem; }
.genealogy-chart-places { grid-column:1/-1; }
.genealogy-chart-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr) 4rem; align-items:center; gap:.75rem; margin:.75rem 0; font-size:.8rem; }
.genealogy-chart-label { overflow-wrap:anywhere; color:var(--haven-muted); }
.genealogy-chart-row strong { text-align:right; font-weight:500; font-variant-numeric:tabular-nums; }
.genealogy-chart-track { display:flex; height:.65rem; background:var(--haven-line); border-radius:999px; overflow:hidden; }
.genealogy-chart-track > span { display:block; height:100%; background:var(--haven-accent); }
.genealogy-chart-track .is-birth { background:#87b7a1; }
.genealogy-chart-track .is-marriage { background:#c6ad80; }
.genealogy-chart-track .is-death { background:#a49ebf; }
.genealogy-chart-controls,.genealogy-chart-legend { display:flex; flex-wrap:wrap; gap:.75rem; margin:1rem 0; font-size:.8rem; }
.genealogy-chart-controls button { padding:.35rem .7rem; border-radius:10px; color:var(--haven-muted); }
.genealogy-chart-controls button[aria-pressed="true"] { background:var(--site-control-bg); color:var(--site-control-ink); }
.genealogy-chart-legend span::before { content:''; display:inline-block; width:.5rem; height:.5rem; border-radius:50%; margin-right:.4rem; }
.genealogy-chart-legend .is-birth::before { background:#87b7a1; }
.genealogy-chart-legend .is-marriage::before { background:#c6ad80; }
.genealogy-chart-legend .is-death::before { background:#a49ebf; }
@media(max-width:700px) { .genealogy-charts { grid-template-columns:1fr; } .genealogy-chart-row { grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) 3rem; gap:.5rem; } }
.genealogy-statistics .genealogy-location-table { width:100%; min-width:640px; table-layout:fixed; }
.genealogy-location-table .genealogy-location-name { width:44%; }
.genealogy-location-table .genealogy-location-count { width:14%; }
.genealogy-statistics .genealogy-location-table :is(th,td) { min-width:0; max-width:none; }
.genealogy-sosa-guide code { color:var(--haven-text); font-size:.85rem; overflow-wrap:anywhere; }
.genealogy-sosa-guide ul { padding-left:1.2rem; list-style:disc; }
.genealogy-sosa-guide label { display:block; font-size:.875rem; margin:1rem 0 .5rem; }
#genealogy-sosa-number { max-width:20rem; }
#genealogy-sosa-answer { margin-top:1rem; font-size:.875rem; overflow-wrap:anywhere; }
#genealogy-sosa-answer dt { color:var(--haven-muted); margin-top:.75rem; }
#genealogy-sosa-answer dd { margin-top:.2rem; }
#genealogy-sosa-answer button { color:var(--haven-accent); }
@media(max-width:700px) { .genealogy-sosa-columns { grid-template-columns:1fr; gap:.5rem; } }
#genealogy-section :is(.genealogy-results,.genealogy-table-scroll,.genealogy-detail,.genealogy-dialog,.genealogy-dialog ul) { scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--haven-muted) 38%,transparent) transparent; }
#genealogy-section ::-webkit-scrollbar { width:5px; height:5px; }
#genealogy-section ::-webkit-scrollbar-track { background:transparent; }
#genealogy-section ::-webkit-scrollbar-thumb { background:color-mix(in srgb,var(--haven-muted) 38%,transparent); border-radius:999px; }
#genealogy-section ::-webkit-scrollbar-thumb:hover { background:color-mix(in srgb,var(--haven-muted) 65%,transparent); }
#genealogy-section ::-webkit-scrollbar-button { display:none; width:0; height:0; }
#genealogy-section ::-webkit-scrollbar-corner { background:transparent; }
@supports selector(::-webkit-scrollbar) {
    #genealogy-section :is(.genealogy-results,.genealogy-table-scroll,.genealogy-detail,.genealogy-dialog,.genealogy-dialog ul) { scrollbar-width:auto; scrollbar-color:auto; }
}
.genealogy-actions,.genealogy-controls,.genealogy-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
.genealogy-actions button,.genealogy-controls button,.genealogy-empty button,.genealogy-dialog button,.genealogy-detail button { padding:.55rem .8rem; border-radius:10px; background:var(--haven-card); color:var(--haven-text); font-size:.75rem; }
.genealogy-actions .genealogy-primary,.genealogy-empty .genealogy-primary,.genealogy-dialog .genealogy-primary { background:#bcc59a; color:#263025; font-weight:650; }
#genealogy-section button:disabled { opacity:.4; cursor:default; }
.genealogy-summary { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; align-items:center; padding:0 0 1.2rem; color:var(--haven-muted); font-size:.75rem; }
.genealogy-summary strong { color:var(--haven-text); margin-right:.3rem; font-size:1rem; }
.genealogy-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; padding:1rem; border-radius:18px 18px 0 0; background:var(--haven-card); border:1px solid var(--haven-line); }
.genealogy-search { position:relative; flex:1; min-width:180px; max-width:340px; }
.genealogy-search input { width:100%; padding:.65rem .8rem; border-radius:10px; background:var(--haven-bg); color:var(--haven-text); border:1px solid var(--haven-line); outline:none; font-size:.8rem; }
.genealogy-search input:focus { border-color:#b7b68b; }
.genealogy-results { position:absolute; top:calc(100% + 6px); left:0; width:max(100%,280px); max-width:calc(100vw - 4rem); max-height:340px; overflow:auto; z-index:20; padding:.4rem; background:var(--haven-card); border:1px solid var(--haven-line); border-radius:12px; box-shadow:var(--haven-shadow); }
.genealogy-results button { display:block; width:100%; padding:.7rem; text-align:left; color:var(--haven-text); border-radius:8px; font-size:.8rem; }
.genealogy-results button:hover,.genealogy-results button:focus { background:var(--haven-bg); }
.genealogy-results small { display:block; color:var(--haven-muted); margin-top:.2rem; font-size:.68rem; }
.genealogy-results p { padding:.75rem; font-size:.75rem; color:var(--haven-muted); }
.genealogy-tabs button { border-radius:8px; padding:.5rem .65rem; font-size:.72rem; color:var(--haven-muted); }
.genealogy-tabs button[aria-pressed="true"] { background:var(--site-control-bg); color:var(--site-control-ink); }
.genealogy-controls label { font-size:.7rem; color:var(--haven-muted); display:flex; gap:.5rem; align-items:center; }
.genealogy-controls { margin-left:auto; }
.genealogy-controls select { background:var(--haven-bg); padding:.4rem; border-radius:8px; color:var(--haven-text); }
.genealogy-workbench { display:grid; grid-template-columns:minmax(0,1fr) 290px; background:var(--haven-card); border-radius:0 0 18px 18px; overflow:hidden; border:1px solid var(--haven-line); border-top:0; }
.genealogy-workbench:has(#genealogy-table-panel:not([hidden])) { border-radius:18px; border-top:1px solid var(--haven-line); }
.genealogy-view-area { min-width:0; }
#genealogy-section [hidden] { }
.genealogy-table-tools,.genealogy-table-pagination { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; padding:1rem; }
.genealogy-table-tools { flex-wrap:nowrap; }
#genealogy-section .genealogy-table-tools > .custom-select { flex:0 0 auto; width:max-content; }
#genealogy-section .genealogy-table-tools .custom-select__trigger { width:auto; min-width:0; }
@media(max-width:760px) { .genealogy-table-tools { flex-direction:column; align-items:stretch; } #genealogy-section .genealogy-table-tools input { width:100%; box-sizing:border-box; flex:none; } #genealogy-section .genealogy-table-tools > .custom-select { align-self:flex-end; } }
.genealogy-table-tools input { flex:1; min-width:0; width:0; padding:.6rem; border:1px solid var(--haven-line); border-radius:8px; background:var(--haven-bg); color:var(--haven-text); font-size:.8rem; }
.genealogy-table-tools select,.genealogy-table-pagination button { padding:.45rem .65rem; background:var(--haven-bg); color:var(--haven-text); border-radius:8px; font-size:.75rem; }
.genealogy-table-pagination { font-size:.72rem; color:var(--haven-muted); }
.genealogy-table-pagination span { margin-right:auto; }
.genealogy-table-scroll { overflow:auto; max-height:clamp(420px,65vh,800px); }
.genealogy-table { border-collapse:collapse; width:max-content; min-width:100%; font-size:.75rem; color:var(--haven-text); }
.genealogy-table th { position:sticky; top:0; z-index:1; background:var(--haven-card); text-align:left; font-weight:600; }
.genealogy-table th,.genealogy-table td { padding:.75rem; border-bottom:1px solid var(--haven-line); vertical-align:top; min-width:110px; max-width:280px; white-space:normal; overflow-wrap:anywhere; }
.genealogy-table td { white-space:pre-wrap; }
.genealogy-table tbody tr.is-selected { background:color-mix(in srgb,#b7b68b 10%,var(--haven-card)); }
.genealogy-table button { --person-accent:#b7b68b; color:var(--haven-text); text-decoration:underline; text-underline-offset:3px; text-decoration-color:var(--person-accent); text-align:left; cursor:pointer; background:none; }
.genealogy-table button[data-sex="male"] { --person-accent:#599fe5; }
.genealogy-table button[data-sex="female"] { --person-accent:#e47ca8; }
.genealogy-table button:hover { color:var(--person-accent); }
.genealogy-table .genealogy-table-links { display:flex; flex-direction:column; gap:.4rem; }
.genealogy-stage { position:relative; min-width:0; height:clamp(420px,65vh,800px); background:radial-gradient(circle at 1px 1px,var(--haven-line) 1px,transparent 0) 0 0 / 22px 22px,var(--haven-bg); }
.genealogy-canvas { width:100%; height:100%; touch-action:none; cursor:grab; display:block; outline:none; }
.genealogy-canvas:active { cursor:grabbing; }
.genealogy-canvas:focus-visible { outline:2px solid #b7b68b; outline-offset:-3px; }
.genealogy-person { cursor:pointer; outline:none; }
.genealogy-person,.genealogy-tree-card,.genealogy-relative { --person-accent:#b7b68b; }
.genealogy-relative[data-sex="male"],.genealogy-person[data-sex="male"],.genealogy-tree-card[data-sex="male"],.genealogy-legend-sex[data-sex="male"] { --person-accent:#599fe5; }
.genealogy-relative[data-sex="female"],.genealogy-person[data-sex="female"],.genealogy-tree-card[data-sex="female"],.genealogy-legend-sex[data-sex="female"] { --person-accent:#e47ca8; }
.genealogy-person rect { fill:var(--haven-card); stroke:var(--haven-line); stroke-width:1; }
.genealogy-person.is-selected rect,.genealogy-person:focus rect { stroke:#b7b68b; stroke-width:2.5; }
.genealogy-person:hover rect { stroke:#b7b68b; }
.genealogy-parent-link { fill:none; stroke:var(--haven-muted); stroke-opacity:.45; stroke-width:1.5; }
.genealogy-union-link { fill:none; stroke:#b7b68b; stroke-opacity:.7; stroke-width:1.5; }
.genealogy-union-link.is-divorced { stroke-dasharray:5 4; }
.genealogy-union { fill:var(--haven-card); stroke:#b7b68b; stroke-width:2; }

.genealogy-canvas.is-distant .genealogy-name,.genealogy-canvas.is-distant .genealogy-date { visibility:hidden; }
.genealogy-canvas.is-distant .genealogy-person rect { fill:var(--haven-card); }

.genealogy-map { position:absolute; bottom:1rem; right:1rem; width:150px; height:90px; border:1px solid var(--haven-line); border-radius:10px; background:var(--haven-card); opacity:.95; cursor:crosshair; }
.genealogy-map .genealogy-map-node { fill:#b7b68b; opacity:.7; }
.genealogy-map .genealogy-map-window { fill:#b7b68b; fill-opacity:.12; stroke:var(--haven-text); stroke-width:2; vector-effect:non-scaling-stroke; pointer-events:none; }
.genealogy-zoom { position:absolute; top:.8rem; left:.8rem; display:flex; gap:.25rem; align-items:center; border:1px solid var(--haven-line); background:var(--haven-card); border-radius:10px; padding:.2rem; }
.genealogy-zoom button { width:32px; height:30px; font-size:1.1rem; color:var(--haven-text); }
.genealogy-zoom output { min-width:42px; text-align:center; color:var(--haven-muted); font-size:.65rem; }
.genealogy-detail { padding:1.3rem; border-left:1px solid var(--haven-line); overflow:auto; max-height:clamp(420px,65vh,800px); }
.genealogy-detail h2 { font-size:1.3rem; letter-spacing:-.035em; margin:.5rem 0; line-height:1.25; }
.genealogy-detail h3 { font-size:.7rem; text-transform:uppercase; letter-spacing:.1em; margin:1.3rem 0 .5rem; color:var(--haven-muted); }
.genealogy-detail p { font-size:.75rem; color:var(--haven-muted); line-height:1.6; }
.genealogy-detail dl { margin-top:1rem; }
.genealogy-detail dt { font-size:.65rem; color:var(--haven-muted); margin-top:.85rem; }
.genealogy-detail dd { white-space:pre-wrap; font-size:.78rem; color:var(--haven-text); overflow-wrap:anywhere; margin-top:.15rem; }
.genealogy-detail .genealogy-relative { display:block; width:100%; text-align:left; margin:.55rem 0; padding:.15rem 0; background:transparent; border:0; border-radius:0; cursor:pointer; overflow-wrap:anywhere; }
.genealogy-detail .genealogy-relative small { display:block; color:var(--haven-muted); font-size:.65rem; margin-top:.2rem; }
.genealogy-parent-family + .genealogy-parent-family { margin-top:1rem; }
.genealogy-detail .genealogy-parent-union { margin:.55rem 0 0; }
.genealogy-detail .genealogy-union-card { margin:.7rem 0; padding:.7rem; border:1px solid var(--haven-line); border-radius:10px; }
.genealogy-relative-content { min-width:0; }
.genealogy-relative-name { color:var(--haven-text); text-decoration:underline; text-decoration-color:var(--person-accent); text-underline-offset:3px; text-decoration-thickness:1px; }
.genealogy-relative:hover .genealogy-relative-name,.genealogy-relative:focus-visible .genealogy-relative-name { color:var(--person-accent); text-decoration-thickness:2px; }
.genealogy-detail-heading { display:flex; align-items:flex-start; gap:.75rem; }
.genealogy-detail-heading h2 { flex:1; min-width:0; }
.genealogy-detail .genealogy-center-selected { flex:none; display:grid; place-items:center; margin-top:.4rem; padding:.35rem; background:transparent; color:var(--haven-muted); cursor:pointer; }
.genealogy-detail .genealogy-center-selected:hover,.genealogy-detail .genealogy-center-selected:focus-visible { color:var(--haven-text); background:var(--haven-bg); }
.genealogy-tree-card { box-sizing:border-box; min-height:82px; width:190px; padding:.65rem .75rem; border-left:4px solid var(--person-accent); border-radius:10px; font-family:Inter,sans-serif; overflow-wrap:anywhere; }
.genealogy-tree-card.is-sized { height:100%; }
.genealogy-tree-card .genealogy-name { color:var(--haven-text); font-size:12px; font-weight:600; line-height:1.4; }
.genealogy-tree-card .genealogy-date { color:var(--haven-muted); font-size:11px; line-height:1.4; margin-top:.3rem; }
.genealogy-detail h2 { overflow-wrap:anywhere; }
.genealogy-footer { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin:.8rem .25rem; color:var(--haven-muted); font-size:.68rem; }
.genealogy-footer .genealogy-legend-sex::before { content:""; display:inline-block; width:.65rem; height:.65rem; margin-right:.35rem; border-radius:3px; background:var(--person-accent); }
.genealogy-footer .genealogy-legend-union { color:#b7b68b; }
.genealogy-empty { border:1px solid var(--haven-line); background:radial-gradient(ellipse at top,#b7b68b15,transparent 70%),var(--haven-card); border-radius:20px; padding:clamp(2rem,6vw,5rem) 1.5rem; text-align:center; }
.genealogy-empty svg { width:100px; height:100px; margin:auto auto 1.5rem; color:#b7b68b; }
.genealogy-empty h2 { font-size:1.6rem; letter-spacing:-.05em; }
.genealogy-empty p { max-width:30rem; margin:.8rem auto 1.5rem; color:var(--haven-muted); font-size:.85rem; line-height:1.7; }
.genealogy-empty .genealogy-actions { justify-content:center; }
.genealogy-empty small { display:block; margin-top:1.5rem; color:var(--haven-muted); font-size:.68rem; }
.genealogy-message { font-size:.78rem; margin:0 0 1rem; color:var(--haven-muted); overflow-wrap:anywhere; }
.genealogy-message[data-error="true"] { color:#cf6570; }
.genealogy-dialog { width:min(36rem,calc(100vw - 2rem)); max-height:85dvh; overflow:auto; border:1px solid var(--haven-line); border-radius:20px; padding:1.5rem; background:var(--haven-card); color:var(--haven-text); }
.genealogy-dialog::backdrop { background:#0008; backdrop-filter:blur(5px); }
.genealogy-dialog h2 { font-size:1.3rem; margin-bottom:.75rem; }
.genealogy-dialog p,.genealogy-dialog li { color:var(--haven-muted); font-size:.8rem; line-height:1.6; margin:.6rem 0; }
.genealogy-dialog ul { list-style:disc; padding-left:1.2rem; max-height:15rem; overflow:auto; }
.genealogy-dialog dt { margin-top:.75rem; font-size:.65rem; color:var(--haven-muted); }
.genealogy-dialog dd { margin-top:.2rem; font-size:.8rem; white-space:pre-wrap; overflow-wrap:anywhere; }
.genealogy-dialog .genealogy-actions { justify-content:flex-end; margin-top:1.5rem; }
#genealogy-section [hidden],.genealogy-dialog [hidden] { display:none!important; }
@media(max-width:900px) {
    .genealogy-workbench { grid-template-columns:minmax(0,1fr); }
    .genealogy-detail { border-left:0; border-top:1px solid var(--haven-line); max-height:340px; }
    .genealogy-detail dl { display:grid; grid-template-columns:1fr 1fr; gap:0 1rem; }
    .genealogy-stage { height:58dvh; min-height:380px; }
}
@media(max-width:600px) {
    .genealogy-toolbar { padding:.8rem; gap:.6rem; }
    .genealogy-search { max-width:none; flex-basis:100%; }
    .genealogy-tabs { gap:.15rem; }
    .genealogy-tabs button { font-size:.65rem; padding:.5rem; }
    .genealogy-controls { margin-left:0; width:100%; justify-content:space-between; }
    .genealogy-map { width:110px; height:70px; bottom:.5rem; right:.5rem; }
}
@media print {
.genealogy-toolbar,
.genealogy-actions,
.genealogy-map,
.genealogy-zoom { display:none; }
    .genealogy-workbench { display:block; }
    .genealogy-stage { height:75vh; }
    .genealogy-detail { max-height:none; }
}

/* Browser defaults and utility animations. */
html { overflow-y: scroll; color-scheme: dark; }
        html:has(#login-section:not(.hidden)) { overflow-y:auto; }
        ::-webkit-scrollbar { width: 8px; }
        ::-webkit-scrollbar-track { background: #020617; }
        ::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }
        ::-webkit-scrollbar-thumb:hover { background: #475569; }

        input[type=number]::-webkit-inner-spin-button, 
        input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
        input[type=number] { -moz-appearance: textfield; appearance: textfield; }

.reveal-card { opacity: 0; transform: translateY(60px); transition: opacity 0.8s cubic-bezier(0.2, 1, 0.2, 1), transform 0.8s cubic-bezier(0.2, 1, 0.2, 1); }
        .reveal-card.is-visible { opacity: 1; transform: translateY(0); }
        .glass-card { background: rgba(15, 23, 42, 0.5); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);  box-shadow: 0 10px 30px -10px rgba(0, 0, 0, 0.7); }

/* Section: flux-styles */
/* #region Base - Theme et navigation */
        /* Kept outside Tailwind's runtime compiler so Flux can never stop the
           application's utility classes from being generated. */
        .hidden {
            display: none !important;
        }

        @media (prefers-reduced-motion: no-preference) {
            html { scroll-behavior: smooth; }
        }

        .page-section:not(.hidden) {
            animation: page-fade-in 550ms ease-in-out;
        }

        @keyframes page-fade-in {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        @media (prefers-reduced-motion: reduce) {
            .page-section:not(.hidden) { animation: none; }
        }

        /* Flux is the unified, deliberately quiet interface. */
        :root[data-style^="flux"] {
            color-scheme: dark;
        }

        :root[data-style="flux-light"] {
        }

        :root[data-style^="flux"] body {
            --home-lime: #dcf68b;
            --flux-nav: rgba(16, 18, 16, .84);
        }

        :root[data-style="flux-light"] body {
            --flux-bg: #fffefa;
            --home-lime: #48601c;
            --flux-surface: #faf8f1;
            --flux-text: #293c36;
            --flux-muted: #5d6d64;
            --flux-nav: rgba(250, 249, 244, .88);
        }

/* #endregion */
/* #region Connexion */
        #login-section {
            position:relative; isolation:isolate; min-height:100svh; overflow:clip;
        }
        #login-section::before {
            content:""; position:absolute; z-index:-2; pointer-events:none;
            background-image:linear-gradient(var(--flux-line) 1px,transparent 1px),linear-gradient(90deg,var(--flux-line) 1px,transparent 1px);
            background-size:5rem 5rem;
        }
        #login-section::after {
            content:""; position:absolute; z-index:-1; aspect-ratio:1; pointer-events:none;
        }
        .login-shell { width:min(100%,64rem); display:grid; grid-template-columns:minmax(0,1.15fr) minmax(19rem,.85fr); align-items:center; gap:clamp(3rem,8vw,8rem); }
        .login-brand { position:relative; padding:2rem 0; }
        :root[data-style^="flux"] #login-section .login-title { max-width:35rem; color:var(--flux-text); }
        .login-panel { position:relative; padding:clamp(1.5rem,4vw,2.25rem); border:1px solid var(--flux-line); }
        .login-panel h2 { margin:.5rem 0 .4rem; color:var(--flux-text); font-size:1.55rem; font-weight:560; letter-spacing:-.045em; }

.login-field { position:relative; margin-top:1.25rem; }
        .login-field label { display:block; margin:0 0 .5rem .15rem; color:var(--flux-muted); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
        .login-field input { width:100%; height:3.15rem; padding:0 3.2rem 0 1rem; border:1px solid var(--flux-line); border-radius:.8rem; outline:0; background:var(--flux-bg); color:var(--flux-text); font-size:.86rem; letter-spacing:.1em; transition:border-color .25s ease,box-shadow .25s ease,background .25s ease; }
        .login-field input::placeholder { color:color-mix(in srgb,var(--flux-muted) 58%,transparent); letter-spacing:0; }
        .login-field input:focus { background:var(--flux-surface-hover); }
        .login-submit { position:absolute; right:.42rem; bottom:.42rem; display:grid; place-items:center; width:2.3rem; height:2.3rem; border-radius:.62rem; transition:transform .25s ease,filter .25s ease; }
        .login-submit svg { width:1rem; height:1rem; transition:transform .25s ease; }
        .login-submit:hover { transform:translateY(-1px); filter:brightness(1.06); }
        .login-submit:hover svg { transform:translateX(2px); }
        
        @media(max-width:720px) {
            #login-section { justify-content:flex-start; padding:clamp(1.25rem,6vw,2rem); }
            #login-section::after { width:34rem; transform:translate(-70%,-70%); }
            .login-shell { grid-template-columns:1fr; }
            .login-brand { padding:1.5rem 0 0; }
            :root[data-style^="flux"] #login-section .login-title { max-width:26rem; font-size:clamp(3rem,15vw,4.6rem); }
            .login-panel { border-radius:1.35rem; }
        }
        @media(prefers-reduced-motion:reduce) { #login-section::after { animation:none; } }

:root[data-style^="flux"] .flux-lock-button {
            display:grid; place-items:center; width:2.5rem; height:2.5rem;
            color:var(--flux-muted); border:0; background:transparent;
            filter:drop-shadow(0 0 0 transparent);
            transition:color .3s ease,filter .3s ease,transform .3s ease;
        }

        :root[data-style^="flux"] .flux-lock-button svg { width:1.2rem; height:1.2rem; }
        :root[data-style^="flux"] .flux-lock-button .flux-lock-shackle { transform-origin:14px 10px; transition:transform .35s cubic-bezier(.16,1,.3,1); }
        :root[data-style^="flux"] .flux-lock-button:hover { color:#e76565; background:transparent; filter:drop-shadow(0 0 8px rgba(231,101,101,.55)); transform:translateY(-2px) scale(1.06); }
        :root[data-style^="flux"] .flux-lock-button:hover .flux-lock-shackle { transform:translateY(-2px) rotate(-13deg); }

        :root[data-style^="flux"] .flux-style-control {
            display: flex;
            align-items: center;
            gap: .15rem;
            padding: .2rem;
            border: 1px solid var(--flux-line);
            border-radius: 999px;
            background: var(--flux-surface);
        }

        :root[data-style^="flux"] .flux-style-control button {
            display: grid;
            place-items: center;
            flex: 0 0 1.5rem;
            width: 1.5rem;
            height: 1.5rem;
            color: var(--flux-muted);
            border-radius: 999px;
            padding: 0;
            font-size: .68rem;
            font-weight: 700;
            line-height: 1;
        }

        :root[data-style^="flux"] .flux-style-control button[aria-pressed="true"] {
            background: var(--flux-text);
            color: var(--flux-bg);
        }

/* #endregion */
/* #region Pages - En-tetes */
        :root[data-style^="flux"] #dashboard-wrapper>#flux-dashboard {
            display: block;
            margin: 0 auto;
        }

        :root[data-style^="flux"] .flux-title {
            margin: 0;
            color: var(--flux-text);
            font-size: clamp(3rem, 8vw, 6rem);
            font-weight: 400 !important;
            letter-spacing: -.075em;
            line-height: .9;
        }

:root[data-style^="flux"] .flux-page-header {
            position: relative;
            padding: clamp(1.25rem, 3vw, 2rem) 0 clamp(2rem, 5vw, 3.5rem);
        }

        :root[data-style^="flux"] .flux-page-header::before {
            content: none;
        }

:root[data-style^="flux"] .flux-page-header--accounts h1 {
            font-weight: 400 !important;
            letter-spacing: -.06em !important;
            line-height: .95;
        }

        :root[data-style^="flux"] .flux-page-header--accounts .flux-page-header__intro {
            max-width: 36rem;
            margin-top: 1.15rem;
            font-size: 1rem;
            line-height: 1.6;
        }

        :root[data-style^="flux"] .flux-page-header--gaming h1,
        :root[data-style^="flux"] .flux-page-header--books h1,
        :root[data-style^="flux"] .flux-page-header--notes h1,
        :root[data-style^="flux"] .flux-page-header--todos h1 {
            font-weight: 400 !important;
            letter-spacing: -.06em !important;
            line-height: .95;
        }

        :root[data-style^="flux"] .flux-page-header--gaming .flux-page-header__intro,
        :root[data-style^="flux"] .flux-page-header--books .flux-page-header__intro,
        :root[data-style^="flux"] .flux-page-header--notes .flux-page-header__intro,
        :root[data-style^="flux"] .flux-page-header--todos .flux-page-header__intro {
            max-width: 36rem;
            margin-top: 1.15rem;
            font-size: 1rem;
            line-height: 1.6;
        }

/* Harmonized elegant section title typography for Flux mode */
        :root[data-style^="flux"] .page-section h1,
        :root[data-style^="flux"] .page-section h2,
        :root[data-style^="flux"] .page-section h3 {
            font-weight: 500 !important;
            letter-spacing: -0.04em !important;
            text-transform: none !important;
        }

:root[data-style^="flux"] #flux-dashboard {
            position: relative;
            isolation: isolate;
        }

        :root[data-style^="flux"] #flux-dashboard::before {
            position: absolute;
            z-index: -1;
            inset: 7rem -8rem auto;
            height: 42rem;
            pointer-events: none;
            opacity: .42;
            filter: blur(18px);
            background:
                radial-gradient(circle at 15% 25%, rgba(228, 168, 83, .13), transparent 28%),
                radial-gradient(circle at 78% 18%, rgba(32, 168, 139, .11), transparent 25%),
                radial-gradient(circle at 52% 75%, rgba(154, 116, 246, .1), transparent 32%);
        }

:root[data-style="flux-light"] #comptes-section > .rounded-2xl,
:root[data-style="flux-light"] #comptes-section .bg-\[var\(--flux-surface\)\],
:root[data-style="flux-light"] .glass-card {
            box-shadow: 0 8px 24px -16px rgba(37, 48, 38, .28);
        }

/* #endregion */
/* #region Composants partages */

:root[data-style^="flux"] #comptes-section,
        :root[data-style^="flux"] #gaming-section,
        :root[data-style^="flux"] #livres-section {
            padding: 7rem 1.25rem 3rem;
        }

        :root[data-style^="flux"] #gaming-section > .grid,
        :root[data-style^="flux"] #livres-section > .grid {
            gap: 1.5rem;
        }

:root[data-style^="flux"] #livres-section > .grid.grid-cols-1,
:root[data-style^="flux"] #gaming-section > .grid.grid-cols-1 {
            gap: 1rem;
        }

        :root[data-style^="flux"] #gaming-section > .flex,
        :root[data-style^="flux"] #livres-section > .flex {
            align-items: center !important;
            padding: 0;
            background: transparent;
        }

        :root[data-style^="flux"] #gaming-section #admin-buttons-games button,
        :root[data-style^="flux"] #livres-section #admin-buttons-books button,
        :root[data-style^="flux"] #gaming-section #btn-reset-filter,
        :root[data-style^="flux"] #livres-section #btn-reset-filter-books,
        :root[data-style^="flux"] #livres-section #btn-sort-books {
            padding: .65rem .9rem;
            border-radius: 999px;
            background: var(--flux-surface);
            box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
        }

        :root[data-style^="flux"] .page-section .reveal-card {
            opacity: 1;
            transform: none;
        }

        .chevron { transform:rotate(0deg) !important; transform-origin:center; transition-property:transform; }
        [aria-expanded="true"] .chevron { transform:rotate(180deg) !important; }

        :root[data-style^="flux"] .page-section .text-slate-400,
        :root[data-style^="flux"] .page-section .text-slate-500,
        :root[data-style^="flux"] .page-section .text-slate-600 {
            color: var(--flux-muted) !important;
        }

        :root[data-style^="flux"] .page-section .text-white,
        :root[data-style^="flux"] .page-section [class~="text-slate-200"],
        :root[data-style^="flux"] .page-section [class~="text-slate-300"] {
            color: var(--flux-text) !important;
        }

        :root[data-style^="flux"] .glass-card {
            background: var(--flux-surface);
            border-color: var(--flux-line) !important;
            box-shadow: none;
            backdrop-filter: none;
        }

        :root[data-style^="flux"] .page-section .rounded-xl {
            border-radius: 1rem;
        }

        :root[data-style^="flux"] .page-section [class*="border-l-"] {
            border-left-width: 1px !important;
        }

        :root[data-style^="flux"] .page-section .hover\\:shadow-\[0_0_25px\]:hover {
            box-shadow: 0 6px 18px rgba(0, 0, 0, .05) !important;
        }

        :root[data-style^="flux"] .modal-base {
            width:min(calc(100% - 2rem),32rem);
            max-height:min(90vh,52rem);
            border:1px solid var(--flux-line) !important;
            border-radius:1.25rem;
            background:var(--flux-surface);
            color:var(--flux-text);
            box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
            clip-path:inset(0 round 1.25rem);
            scrollbar-gutter:stable;
            scrollbar-width:thin;
            scrollbar-color:color-mix(in srgb,var(--modal-accent,#e4a853) 42%,transparent) transparent;
        }
        :root[data-style^="flux"] .modal-base::-webkit-scrollbar { width:5px; height:5px; }
        :root[data-style^="flux"] .modal-base::-webkit-scrollbar-track { margin-block:.8rem; background:transparent; }
        :root[data-style^="flux"] .modal-base::-webkit-scrollbar-thumb { border-radius:999px; background:color-mix(in srgb,var(--modal-accent,#e4a853) 42%,transparent); }
        :root[data-style^="flux"] .modal-base::-webkit-scrollbar-button { width:0; height:.55rem; background:transparent; }
        :root[data-style^="flux"] .modal-base::-webkit-scrollbar-thumb:hover { background:color-mix(in srgb,var(--modal-accent,#e4a853) 65%,transparent); }

        :root[data-style^="flux"] .modal-base h2,
        :root[data-style^="flux"] .modal-base h3 { color:var(--flux-text) !important; }
        :root[data-style^="flux"] .modal-base label { color:var(--flux-muted); }
        :root[data-style^="flux"] .modal-base input:not([type="checkbox"]):not([type="hidden"]),
        :root[data-style^="flux"] .modal-base textarea,
        :root[data-style^="flux"] .modal-base [contenteditable="true"] {
            border-color:var(--flux-line) !important;
            background:var(--flux-bg) !important;
            color:var(--flux-text) !important;
            caret-color:currentColor;
        }
        :root[data-style^="flux"] .modal-base input::placeholder,
        :root[data-style^="flux"] .modal-base textarea::placeholder { color:color-mix(in srgb,var(--flux-muted) 72%,transparent) !important; }
        :root[data-style^="flux"] .modal-base input:focus,
        :root[data-style^="flux"] .modal-base textarea:focus,
        :root[data-style^="flux"] .modal-base [contenteditable="true"]:focus {
            border-color:color-mix(in srgb,var(--modal-accent,#e4a853) 70%,var(--flux-line)) !important;
            box-shadow:0 0 0 3px color-mix(in srgb,var(--modal-accent,#e4a853) 12%,transparent);
        }
        #modal-account,#modal-operation,#modal-edit-balance { --modal-accent:#20a88b; }
        #modal-loan,#modal-update-loan-balance { --modal-accent:#23a6bd; }
        #modal-game { --modal-accent:#9a74f6; }
        #modal-book { --modal-accent:#df6380; }
        #modal-note,:is(#modal-note-sections,#modal-home-link,#modal-home-sections) { --modal-accent:#5b8def; }
        #modal-todo,#modal-todo-sections,#modal-birthday { --modal-accent:#e4a853; }

        :root[data-style^="flux"] #comptes-section #admin-buttons button {
            padding: .65rem .9rem;
            border-radius: 999px;
            background: var(--flux-surface);
            color: var(--flux-text);
            box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
        }

        :root[data-style^="flux"] #comptes-section #admin-buttons button:hover {
            color: #20a88b;
            background: var(--flux-surface-hover);
        }

        :root[data-style^="flux"] #comptes-section #local-admin-toggle + div {
            border-color: transparent;
        }

        :root[data-style^="flux"] dialog::backdrop {
            background: rgba(10, 12, 10, .48);
            backdrop-filter: blur(3px);
        }

        .custom-select { position:relative; width:100%; min-width:0; }
        .custom-select__native { position:absolute !important; width:1px !important; height:1px !important; margin:0 !important; padding:0 !important; opacity:0 !important; pointer-events:none; }
        .custom-select__trigger {
            display:flex; align-items:center; justify-content:space-between; gap:.75rem; width:100%; min-height:2.65rem;
            padding:.68rem .8rem; border:1px solid var(--flux-line); border-radius:.65rem;
            background:var(--flux-bg); color:var(--flux-text); font-size:.82rem; line-height:1.2; text-align:left;
            transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
        }
        .custom-select__trigger:hover { background:var(--flux-surface-hover); }
        .custom-select__trigger:focus-visible,.custom-select.is-open .custom-select__trigger {
            border-color:color-mix(in srgb,var(--modal-accent,#e4a853) 72%,var(--flux-line)); outline:none;
            box-shadow:0 0 0 3px color-mix(in srgb,var(--modal-accent,#e4a853) 12%,transparent);
        }
        .custom-select__chevron { display:block; flex:0 0 auto; width:1rem; height:1rem; color:var(--flux-muted); transition:transform .18s ease; }
        .custom-select__chevron svg { width:100%; height:100%; color:inherit !important; }
        .custom-select.is-open .custom-select__chevron { transform:rotate(180deg); }
        .custom-select__menu {
            position:absolute; z-index:80; top:calc(100% + .4rem); left:0; display:none; width:100%; max-height:14rem; padding:.35rem;
            overflow-y:auto; border:1px solid var(--flux-line); border-radius:.75rem; background:var(--flux-surface-hover);
            box-shadow:0 18px 45px rgba(0,0,0,.26); scrollbar-width:thin;
        }
        .custom-select.is-open .custom-select__menu { display:grid; gap:.1rem; }
        .custom-select__option {
            width:100%; padding:.58rem .65rem; border-radius:.5rem; color:var(--flux-muted); font-size:.78rem; line-height:1.25; text-align:left;
        }
        .custom-select__option:hover,.custom-select__option:focus-visible { outline:none; background:var(--flux-surface); color:var(--flux-text); }
        .custom-select__option[aria-selected="true"] { background:color-mix(in srgb,var(--modal-accent,#e4a853) 14%,var(--flux-surface)); color:var(--modal-accent,#e4a853); }
        .custom-select:has(select:invalid) .custom-select__trigger { color:var(--flux-muted); }
        .custom-select--compact { width:auto; min-width:9.5rem; }
        .custom-select--compact .custom-select__trigger { justify-content:flex-start; gap:.35rem; min-height:0; padding:.45rem .2rem; border:0; background:transparent; color:var(--flux-muted); font-size:.78rem; }
        .custom-select--compact .custom-select__trigger:hover { color:var(--flux-text); }
:root[data-style^="flux"] select {
            background: var(--flux-bg) !important;
            border-color: var(--flux-line) !important;
            color: var(--flux-text) !important;
        }

        :root[data-style="flux-light"] .bg-white\\/5 {
            background-color: var(--flux-surface) !important;
        }

        @media (max-width: 640px) {

            :root[data-style^="flux"] .flux-style-control button {
                flex-basis:1.45rem;
                width:1.45rem;
                height:1.45rem;
            }

        }

/* #endregion */
/* #region Notes - Workspace */
        /* Todo workspace */
        :root[data-style^="flux"] #todos-section { margin: auto; }
        :root[data-style^="flux"] #notes-section { margin:auto; }
        .notes-toolbar { display:flex; justify-content:flex-start; gap:.65rem; margin:0 0 1.5rem; }
        .notes-toolbar > :is(#notes-view,.custom-select:has(#notes-view)) { margin-right:auto; }
        .note-sections { display:grid; gap:2rem; }
        .note-section-group { min-width:0; }
        .note-section-heading { display:flex; align-items:center; gap:.6rem; margin:0 0 .8rem; padding:0 .25rem; }
        .note-section-heading h2 { color:var(--flux-text); font-size:1rem; font-weight:650 !important; }
        .note-section-heading span,
        .todo-section-heading .todo-section-count { display:grid; place-items:center; min-width:1.4rem; height:1.4rem; padding:0 .35rem; border:0; border-radius:999px; background:var(--flux-surface); color:var(--flux-muted); font-size:.65rem; font-weight:400; }

        .notes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:1.25rem; }
        .note-card {
            --note-color:#e4a853; position:relative; min-height:10rem; padding:1.5rem 1.5rem 3.25rem; overflow:hidden;
            border:1px solid color-mix(in srgb,var(--note-color) 18%,transparent); border-radius:1.25rem;
            background:color-mix(in srgb,var(--note-color) 8%,var(--flux-surface)); color:var(--flux-text); text-align:left;
            transition:transform .28s cubic-bezier(.16,1,.3,1),background .28s ease,box-shadow .28s ease;
        }
        .note-card[data-note-color="teal"] { --note-color:#20a88b; }
        .note-card[data-note-color="purple"] { --note-color:#9a74f6; }
        .note-card[data-note-color="rose"] { --note-color:#df6380; }
        .note-card[data-note-color="cyan"] { --note-color:#23a6bd; }
        .note-card:hover { transform:translateY(-4px) rotate(-.3deg); background:color-mix(in srgb,var(--note-color) 12%,var(--flux-surface-hover)); box-shadow:0 14px 30px -18px color-mix(in srgb,var(--note-color) 48%,transparent); }
        .note-card__edit { position:absolute; top:.65rem; right:.65rem; z-index:2; display:grid; place-items:center; width:2rem; height:2rem; border-radius:999px; color:var(--note-color); background:var(--flux-surface); opacity:0; transform:translateY(-3px); transition:opacity .2s ease,transform .2s ease,background .2s ease; }
        .note-card:hover .note-card__edit,.note-card__edit:focus-visible { opacity:1; transform:translateY(0); }
        .note-card__edit:hover { background:var(--flux-bg); }
        .note-card h2 { padding-right:1rem; color:var(--flux-text); font-size:1.2rem; font-weight:650 !important; }
        .note-card__content { max-height:calc(1.55em * 10); margin:1rem 0 .35rem; padding-right:.55rem; overflow-y:auto; color:var(--flux-muted); font-size:.84rem; line-height:1.55; pointer-events:auto; scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--note-color) 38%,transparent) transparent; }
        .note-card__content::-webkit-scrollbar { width:4px; }
        .note-card__content::-webkit-scrollbar-track { background:transparent; }
        .note-card__content::-webkit-scrollbar-thumb { border-radius:999px; background:color-mix(in srgb,var(--note-color) 38%,transparent); }
        .note-card__content ul { list-style:disc outside; padding-left:1.3rem; }.note-card__content ol{list-style:decimal outside;padding-left:1.3rem}
        .note-card__content li { padding-left:.15rem; }
        .note-card__content label { display:flex; align-items:flex-start; gap:.42rem; min-width:0; }
        .note-card__content input { flex:0 0 auto; width:1rem; height:1rem; margin:0 !important; accent-color:var(--note-color); cursor:pointer; transform:translateY(.2rem); }
        .note-card time { position:absolute; left:1.5rem; bottom:1rem; color:var(--note-color); opacity:.6; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
        .note-title-input { width:100%; border:0; background:transparent; color:var(--flux-text); font-size:1.4rem; font-weight:650; outline:none; }
        .note-toolbar-editor { display:flex; align-items:center; gap:.25rem; padding:.55rem; border-block:1px solid var(--flux-line); }
        .note-format-button { display:grid; place-items:center; min-width:2rem; height:2rem; padding:0 .5rem; border-radius:.5rem; color:var(--flux-muted); font-size:.78rem; }
        .note-format-button.is-active { color:var(--site-accent); background:color-mix(in srgb,#5b8def 14%,var(--flux-bg)); }
        @media(hover:hover) { .note-format-button:hover { color:var(--site-accent); background:var(--flux-bg); } }
        .note-editor { min-height:15rem; max-height:50vh; padding:1rem .55rem 1rem .25rem; overflow-y:auto; color:var(--flux-text); font-size:.92rem; line-height:1.65; outline:none; scrollbar-width:thin; scrollbar-color:color-mix(in srgb,#5b8def 38%,transparent) transparent; }
        .note-editor::-webkit-scrollbar { width:4px; }
        .note-editor::-webkit-scrollbar-track { background:transparent; }
        .note-editor::-webkit-scrollbar-thumb { border-radius:999px; background:color-mix(in srgb,#5b8def 38%,transparent); }
        .note-editor:empty::before { content:attr(data-placeholder); color:var(--flux-muted); pointer-events:none; }
        .note-editor ul { list-style:disc outside; padding-left:1.4rem; }.note-editor ol{list-style:decimal outside;padding-left:1.4rem}
        .note-editor li { padding-left:.15rem; }
        .note-editor label { display:flex; align-items:flex-start; gap:.45rem; min-width:0; cursor:text; white-space:pre-wrap; overflow-wrap:anywhere; }
        .note-editor input { flex:0 0 auto; width:1rem; height:1rem; margin:0 !important; accent-color:var(--site-accent); pointer-events:none; transform:translateY(.27rem); }
        .note-color-options { display:flex; align-items:center; gap:.45rem; }
        .note-color-button { --swatch:#e4a853; width:1.15rem; height:1.15rem; border:2px solid transparent; border-radius:50%; background:var(--swatch); opacity:.55; transition:.2s ease; }
        .note-color-button[data-note-color="teal"]{--swatch:#20a88b}.note-color-button[data-note-color="purple"]{--swatch:#9a74f6}.note-color-button[data-note-color="rose"]{--swatch:#df6380}.note-color-button[data-note-color="cyan"]{--swatch:#23a6bd}
        .note-color-button[aria-pressed="true"] { opacity:1; border-color:var(--flux-text); transform:scale(1.15); }
        .note-section-manager-row { display:flex; align-items:center; gap:.5rem; margin-top:.55rem; }
        .note-section-manager-row input { flex:1; min-width:0; padding:.65rem .75rem; border:1px solid var(--flux-line); border-radius:.65rem; background:var(--flux-bg); color:var(--flux-text); }
        .note-section-manager-row > button { width:2.35rem; height:2.35rem; border-radius:999px; color:var(--flux-muted); font-size:1.15rem; }
        .note-section-manager-row > button:hover { color:#e76565; background:var(--flux-bg); }
        .note-section-order-actions { display:flex; gap:.15rem; }
        .note-section-order-actions button { width:1.8rem; height:2.35rem; color:var(--flux-muted); font-size:.85rem; }
        .note-section-order-actions button:hover { color:var(--site-accent); }
        .note-section-order-actions button:disabled { opacity:.2; cursor:not-allowed; }
        .note-section-manager-row.is-unsectioned input { opacity:.72; cursor:not-allowed; }
        .note-section-system-label { color:var(--flux-muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
        @media(max-width:850px){.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
        @media(max-width:560px){.notes-grid{grid-template-columns:1fr}.note-card{min-height:12rem}}
        @media(hover:none){.note-card__edit{opacity:1;transform:none}}

/* #endregion */
/* #region Tasks et bibliotheques - Controles */
        .todo-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin:2rem 0 1.25rem; flex-wrap:wrap; }
        .todo-tabs { display:flex; padding:.3rem; border-radius:999px; background:var(--flux-surface); }
        .todo-toolbar > .todo-tabs { max-width:100%; overflow-x:auto; }
        .library-view-tabs { width:max-content; max-width:100%; margin:0 0 1.25rem; overflow-x:auto; }
        .library-content-grid .library-view-single { grid-column:1/-1 !important; }
        .library-content-grid .library-view-single > .accordion-toggle,
        .library-content-grid .library-view-single > h2 { display:none; }
        .library-content-grid.is-all-view [data-gaming-status] > .accordion-toggle,
        .library-content-grid.is-all-view [data-books-status] > .accordion-toggle,
        .library-content-grid.is-all-view [data-gaming-status] > h2,
        .library-content-grid.is-all-view [data-books-status] > h2 {
            display:flex; align-items:center; gap:.6rem; margin:0 0 .65rem; padding:0 .25rem;
            width:max-content; color:var(--flux-text); cursor:pointer;
        }
        .library-content-grid.is-all-view h2 {
            display:flex; align-items:center; gap:.6rem; padding:0 !important; margin:0 !important;
            color:var(--flux-text) !important; font-family:inherit !important; font-size:1rem !important;
            font-weight:650 !important; letter-spacing:-.04em !important; text-transform:none !important;
            text-shadow:none !important;
        }
        :root[data-style^="flux"] #gaming-section .library-content-grid.is-all-view > section > h2,
        :root[data-style^="flux"] #livres-section .library-content-grid.is-all-view > section > h2 {
            margin:0 0 .65rem !important;
            color:var(--flux-text) !important;
        }
        .library-content-grid.is-all-view h2 > span:not(.library-section-count) { display:none; }
        .library-content-grid.is-all-view .accordion-toggle > .chevron {
            display:inline-block;
            color:var(--flux-muted);
        }
        .library-section-count {
            display:inline-flex !important; align-items:center; justify-content:center; flex-shrink:0;
            min-width:1.4rem; height:1.4rem; padding:0 .35rem;
            border-radius:999px; background:var(--flux-surface); color:var(--flux-muted) !important;
            font-family:inherit; font-size:.65rem; font-weight:650; line-height:1 !important;
            letter-spacing:0; text-align:center; text-shadow:none;
        }
        :root[data-style^="flux"] #gaming-section,
        :root[data-style^="flux"] #livres-section { display:flex; flex-direction:column; }
        :root[data-style^="flux"] #gaming-section > .flux-page-header,
        :root[data-style^="flux"] #livres-section > .flux-page-header { order:0; }
:root[data-style^="flux"] #stats-container-games,
        :root[data-style^="flux"] #stats-container-books,
:root[data-style^="flux"] .library-stats-card { order:1; }
        :root[data-style^="flux"] .library-controls { order:2; margin-bottom:1rem !important; }
        :root[data-style^="flux"] .library-view-tabs { order:3; }
        :root[data-style^="flux"] .library-content-grid { order:4; margin-top:0 !important; }
        :root[data-style^="flux"] #gaming-section > dialog,
        :root[data-style^="flux"] #livres-section > dialog { order:10; }
        .todo-tab { padding:.6rem 1rem; color:var(--flux-muted); border-radius:999px; font-size:.78rem; font-weight:700; }
        .todo-tab.is-active { color:var(--flux-text); background:var(--flux-surface-hover); box-shadow:0 3px 12px rgba(0,0,0,.1); }
        .todo-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
        .todo-sort { border:0 !important; border-radius:0; padding:.4rem 1.4rem .4rem 0; background:transparent !important; box-shadow:none; color:var(--flux-muted) !important; font-size:.78rem; outline:none; }
        .todo-sort:hover,.todo-sort:focus { color:var(--flux-text) !important; }
        .todo-add { border-radius:999px; padding:.7rem 1.1rem; background:#e4a853; color:#18130b; font-size:.78rem; font-weight:800; }
        #btn-add-birthday { background:#df6380; color:#fff; }
        .flux-create-button {
            --create-accent:#20a88b;
            display:inline-flex !important; align-items:center; justify-content:center; gap:.35rem;
            padding:.7rem 1.1rem !important; border:0 !important; border-radius:999px !important;
            background:var(--create-accent) !important; color:#fff !important; line-height:1 !important; text-transform:none !important; white-space:nowrap;
            box-shadow:0 8px 20px color-mix(in srgb,var(--create-accent) 20%,transparent) !important;
            transition:transform .25s ease,filter .25s ease,box-shadow .25s ease !important;
        }

#btn-add-account { --create-accent:#20a88b; }
        #btn-add-loan { --create-accent:#23a6bd; }
        #btn-add-game { --create-accent:#9a74f6; }
        #btn-add-book { --create-accent:#df6380; }
        #btn-reset-month { --create-accent:#d95f5f; }
        .todo-summary { display:flex; justify-content:space-between; color:var(--flux-muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:.8rem; }
.todo-list,
.todo-today-list { display:grid; gap:.75rem; }
        .todo-upcoming { margin-top:1.5rem; }

/* #endregion */
/* #region Tasks - Listes et anniversaires */
        .birthday-section { display:grid; gap:1rem; }
        .birthday-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
        .birthday-card { position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.75rem; min-width:0; padding:.82rem .85rem; overflow:hidden; border:1px solid rgba(228,168,83,.14); border-radius:1rem; background:linear-gradient(135deg,color-mix(in srgb,#e4a853 9%,var(--flux-surface)),color-mix(in srgb,#df6380 5%,var(--flux-surface))); }
        .birthday-card::before,.birthday-card::after { content:""; position:absolute; width:3rem; height:3rem; border-radius:50%; pointer-events:none; filter:blur(22px); opacity:.16; }.birthday-card::before{top:-1.8rem;left:18%;background:#e4a853}.birthday-card::after{right:-1rem;bottom:-1.8rem;background:#df6380}
        .birthday-card.is-today { border-color:rgba(228,168,83,.38); box-shadow:0 10px 24px -20px rgba(228,168,83,.75); }
        .birthday-card.has-tag { border-color:rgba(78,166,160,.24); background:linear-gradient(135deg,color-mix(in srgb,#4ea6a0 11%,var(--flux-surface)),color-mix(in srgb,#6d7fd1 6%,var(--flux-surface))); }
        .birthday-card.has-tag::before{background:#4ea6a0}.birthday-card.has-tag::after{background:#6d7fd1}.birthday-card.has-tag.is-today{border-color:rgba(78,166,160,.55);box-shadow:0 12px 28px -18px rgba(78,166,160,.75)}
        .birthday-card__date { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; width:3rem; height:3rem; border:0; border-radius:.8rem; background:color-mix(in srgb,#e4a853 14%,var(--flux-bg)); color:#d6973d; text-align:center; }
        .birthday-card__date strong { font-size:1.25rem; font-weight:720; line-height:1; letter-spacing:-.06em; }.birthday-card__date span{margin-top:.15rem;color:currentColor;font-size:11px;font-weight:800;line-height:1;text-transform:uppercase;letter-spacing:.1em}
        .birthday-card.has-tag .birthday-card__date{background:color-mix(in srgb,#4ea6a0 15%,var(--flux-bg));color:#4ea6a0}
        .birthday-card__content { position:relative; z-index:1; min-width:0; }.birthday-card__meta{display:flex;align-items:center;gap:.4rem}.birthday-card__meta:empty{display:none}.birthday-card__kicker{color:#c98b2f;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.birthday-card__tag{display:inline-block;max-width:11rem;overflow:hidden;font-size:11px;font-weight:750;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.birthday-card h3{margin-top:.12rem;color:var(--flux-text);font-size:.98rem;font-weight:650!important}.birthday-card p{margin-top:.12rem;color:var(--flux-muted);font-size:.7rem;line-height:1.35}
        .birthday-card__edit { position:relative; z-index:1; width:2rem; height:2rem; border-radius:999px; color:var(--flux-muted); }.birthday-card__edit:hover{color:#e4a853;background:var(--flux-bg)}
        .birthday-section .birthday-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.15rem .7rem; }
        .birthday-section .birthday-card { grid-template-columns:3.25rem minmax(0,1fr) auto; gap:.65rem; padding:.48rem .2rem .48rem 1.15rem; overflow:visible; border:0; border-radius:.5rem; background:transparent; box-shadow:none; transition:background .18s ease; }
        .birthday-section .birthday-card::before { top:50%; left:.25rem; width:.38rem; height:.38rem; border-radius:.12rem; background:#e4a853; filter:none; opacity:.9; transform:translateY(-50%) rotate(45deg); }
        .birthday-section .birthday-card::after { display:none; }
        .birthday-section .birthday-card.has-tag::before { background:#4ea6a0; }
        .birthday-section .birthday-card__date { flex-direction:row; justify-content:flex-start; gap:.25rem; width:auto; height:auto; border-radius:0; background:transparent; color:#d6973d; text-align:left; font-variant-numeric:tabular-nums; }
        .birthday-section .birthday-card.has-tag .birthday-card__date { background:transparent; color:#4ea6a0; }
        .birthday-section .birthday-card__date strong { min-width:1.1rem; font-size:.78rem; font-weight:650; letter-spacing:0; text-align:right; }
        .birthday-section .birthday-card__date span { margin:0; font-size:11px; letter-spacing:.08em; }
        .birthday-section .birthday-card__content { display:flex; align-items:baseline; gap:.5rem; }
        .birthday-section .birthday-card__content h3 { order:1; margin:0; font-size:.9rem; font-weight:550!important; }
        .birthday-section .birthday-card__meta { order:2; min-width:0; }
        .birthday-section .birthday-card__tag { font-size:.7rem; font-weight:650; }
        .birthday-section .birthday-card__content p { display:none; }
        .birthday-section .birthday-card__edit { width:1.7rem; height:1.7rem; opacity:.45; }
        .birthday-section .birthday-card:hover { background:color-mix(in srgb,var(--flux-surface) 52%,transparent); }
        .birthday-section .birthday-card:hover .birthday-card__edit { opacity:1; }
        .birthday-today { display:grid; gap:.85rem; margin-bottom:1.25rem; padding:1.2rem; border-radius:1.4rem; background:linear-gradient(115deg,rgba(228,168,83,.08),rgba(223,99,128,.06)); }
        .birthday-today__heading { display:flex; align-items:center; gap:.75rem; }.birthday-today__heading>span{font-size:1.7rem}.birthday-today__heading h2{color:var(--flux-text);font-size:1rem;font-weight:650!important}.birthday-today__heading p{color:var(--flux-muted);font-size:.7rem}
        .todo-card { position:relative; display:grid; grid-template-columns:auto 1fr auto; gap:1rem; padding:1.2rem; background:var(--flux-surface); border:1px solid var(--flux-line); border-radius:1.15rem; transition:background .2s ease,box-shadow .2s ease,border-color .2s ease; }
        .todo-card:hover { background:var(--flux-surface-hover); box-shadow:0 9px 24px -20px rgba(0,0,0,.65); }
        .todo-card.priority-high { border:2px solid color-mix(in srgb,#e76565 88%,var(--flux-line)); }
        .todo-card.priority-medium { border:2px solid color-mix(in srgb,#e4a853 88%,var(--flux-line)); }
        .todo-card.priority-low { border:2px solid color-mix(in srgb,#4ea6a0 88%,var(--flux-line)); }
        .todo-card.is-waiting { background:color-mix(in srgb,#5b8def 13%,var(--flux-surface)); }
        .todo-card.is-waiting:hover { background:color-mix(in srgb,#5b8def 18%,var(--flux-surface-hover)); }

.todo-check input { position:absolute; opacity:0; } .todo-check span { display:block; width:1.25rem; height:1.25rem; border:1.5px solid var(--flux-muted); border-radius:.4rem; margin-top:.15rem; cursor:pointer; }
        .todo-check input:checked + span { background:#20a88b; border-color:#20a88b; }
        .todo-title { display:block; color:var(--flux-text); font-weight:650; font-size:1rem; text-align:left; }
        .todo-description { margin-top:.25rem; color:var(--flux-muted); font-size:.82rem; line-height:1.5; white-space:pre-line; }
        .todo-meta { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin-top:.75rem; color:var(--flux-muted); font-size:.7rem; }
        .todo-recurrence,.todo-date { padding:.28rem .55rem; border-radius:999px; background:var(--flux-bg); }
        .todo-tag { font-weight:650; }
        .todo-tag.tag-color-0,.birthday-card__tag.tag-color-0 { color:#35e6bc; }
        .todo-tag.tag-color-1,.birthday-card__tag.tag-color-1 { color:#b88cff; }
        .todo-tag.tag-color-2,.birthday-card__tag.tag-color-2 { color:#ff7194; }
        .todo-tag.tag-color-3,.birthday-card__tag.tag-color-3 { color:#ffc052; }
        .todo-tag.tag-color-4,.birthday-card__tag.tag-color-4 { color:#42d9f5; }
        :root[data-style="flux-light"] .tag-color-0 { color:#08775e; }
        :root[data-style="flux-light"] .tag-color-1 { color:#6735c7; }
        :root[data-style="flux-light"] .tag-color-2 { color:#c72e55; }
        :root[data-style="flux-light"] .tag-color-3 { color:#9a6000; }
        :root[data-style="flux-light"] .tag-color-4 { color:#08758b; }
        .todo-date.is-overdue { color:#f08a8a; background:rgba(231,101,101,.14); }
        .todo-date.is-today { color:#ffc052; background:rgba(228,168,83,.14); }
        .todo-date.is-tomorrow { color:#42d9f5; background:rgba(66,217,245,.13); }
        .todo-date.is-upcoming { color:#b88cff; background:rgba(184,140,255,.13); }
        .todo-recurrence { color:#b693ed; }
        :root[data-style="flux-light"] .todo-date.is-overdue {
            color:#9f2525;
            background:#f4cccc;
            box-shadow:inset 0 0 0 1px rgba(183,55,55,.22);
        }
        :root[data-style="flux-light"] .todo-date.is-today { color:#875300; background:#f8e4b8; }
        :root[data-style="flux-light"] .todo-date.is-tomorrow { color:#08758b; background:#cceff5; }
        :root[data-style="flux-light"] .todo-date.is-upcoming { color:#6735c7; background:#e5d8fa; }
        .todo-priority-pill { padding:.28rem .55rem; border-radius:999px; background:var(--flux-bg); font-weight:700; }
        .todo-priority-pill.priority-high { color:var(--task-priority-high); }
        .todo-priority-pill.priority-medium { color:var(--task-priority-medium); }
        .todo-priority-pill.priority-low { color:var(--task-priority-low); }
        .todo-edit { color:var(--flux-muted); width:2rem; height:2rem; border-radius:999px; }
        .todo-edit:hover { background:var(--flux-bg); color:var(--flux-text); }
        .todo-card-actions { display:flex; align-items:flex-start; gap:.25rem; }
        .todo-remove { color:var(--flux-muted); width:2rem; height:2rem; border-radius:999px; font-size:1.15rem; }
        .todo-remove:hover { color:#e76565; background:var(--flux-bg); }
        .todo-card.is-completed .todo-title { text-decoration:line-through; color:var(--flux-muted); }
        .todo-card.is-completed .todo-description { opacity:.65; }
        .todo-subtasks { display:grid; gap:.45rem; margin-top:.9rem; padding-top:.75rem; border-top:1px solid var(--flux-line); }
        .todo-subtasks label { display:flex; align-items:center; gap:.55rem; color:var(--flux-muted); font-size:.78rem; }
        .todo-subtasks input:checked + span { text-decoration:line-through; opacity:.55; }
        .todo-progress { display:block; margin-top:.55rem; color:var(--flux-muted); font-size:.65rem; }
        .todo-empty { padding:5rem 1rem; text-align:center; color:var(--flux-muted); background:var(--flux-surface); border-radius:1.5rem; }
        .todo-empty > span { display:inline-grid; place-items:center; width:3rem; height:3rem; border-radius:50%; background:var(--flux-bg); color:#20a88b; font-size:1.2rem; }
        .todo-empty h3 { color:var(--flux-text); margin-top:1rem; font-size:1.05rem; }.todo-empty p{font-size:.78rem;margin-top:.35rem}
        .todo-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }.todo-field-full{grid-column:1/-1}
        .todo-field label { display:block; margin-bottom:.4rem; color:var(--flux-muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.09em; }
        .todo-input { width:100%; padding:.72rem .8rem; border:1px solid var(--flux-line); border-radius:.65rem; background:var(--flux-bg); color:var(--flux-text); outline:none; }
        .todo-input:focus { border-color:#e4a853; }.todo-input option{background:#171b19}
        .todo-waiting-inline { display:flex; align-items:center; gap:.55rem; }
        .todo-field.todo-waiting-inline label { display:flex; align-items:center; margin:0; line-height:1; cursor:pointer; }
        .todo-waiting-inline input { flex:0 0 1rem; width:1rem; height:1rem; margin:0; accent-color:#e4a853; cursor:pointer; }
        .todo-field:has(#todo-waiting:disabled) { display:none; }
        .todo-subtask-field { display:flex; gap:.5rem; margin-top:.5rem; }.todo-subtask-field input{flex:1;padding:.6rem .7rem;border-radius:.6rem;background:var(--flux-bg);border:1px solid var(--flux-line);color:var(--flux-text)}
        .todo-subtask-field button{width:2.3rem;color:var(--flux-muted);font-size:1.2rem}.todo-subtask-add{margin-top:.65rem;color:#e4a853;font-size:.75rem;}
        .todo-section-group { display:grid; gap:.65rem; }
        .todo-section-group + .todo-section-group { margin-top:1.5rem; }
        .todo-section-heading { display:flex; align-items:center; gap:.45rem; width:max-content; max-width:100%; padding:0 .25rem; color:var(--flux-text); text-align:left; }
        .todo-section-heading h2 { color:var(--flux-text); font-size:1rem; font-weight:650 !important; }
        .todo-section-heading .chevron { width:.85rem; height:.85rem; flex:0 0 auto; color:var(--flux-muted); transition:transform .3s ease; }
        .todo-overdue { margin-bottom:1.5rem; }
        .todo-overdue .todo-section-heading h2 { color:#e76565; }
        .todo-section-tasks { display:grid; gap:.75rem; }
        .todo-section-empty { padding:1.25rem; border:1px dashed var(--flux-line); border-radius:1rem; color:var(--flux-muted); font-size:.76rem; text-align:center; }
        .todo-section-manager-row { display:flex; align-items:center; gap:.5rem; margin-top:.55rem; }
        .todo-section-manager-row input { flex:1; min-width:0; padding:.65rem .75rem; border:1px solid var(--flux-line); border-radius:.65rem; background:var(--flux-bg); color:var(--flux-text); }
        .todo-section-manager-row button { width:2.35rem; height:2.35rem; border-radius:999px; color:var(--flux-muted); font-size:1.15rem; }
        .todo-section-manager-row button:hover { color:#e76565; background:var(--flux-bg); }
        .todo-section-order-actions { display:flex; gap:.15rem; }
        .todo-section-order-actions button { width:1.8rem; height:2.35rem; font-size:.85rem; }
        .todo-section-order-actions button:hover { color:#e4a853; }
        .todo-section-order-actions button:disabled { opacity:.2; cursor:not-allowed; background:transparent; color:var(--flux-muted); }
        .todo-section-manager-row.is-unsectioned input { opacity:.72; cursor:not-allowed; }
        .todo-section-system-label { color:var(--flux-muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }

/* #endregion */
/* #region Sport */
        /* Sport tracker */
        #sport-section{max-width:78rem;margin:0 auto;padding:7rem 1.25rem 4rem}.flux-page-header--sport .flux-title{font-weight:400!important;letter-spacing:-.06em!important;line-height:.9}.flux-page-header--sport .flux-page-header__intro{max-width:38rem;margin-top:1.15rem;font-size:1rem;line-height:1.6}.sport-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.6rem}.sport-toolbar__actions{display:flex;align-items:center;gap:.55rem}.sport-add{padding:.72rem 1rem;border-radius:999px;background:#ef765f;color:#fff;font-size:.72rem;font-weight:800;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease}.sport-add:hover{transform:translateY(-1px);box-shadow:0 9px 25px -12px rgba(239,118,95,.85)}.sport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1.15rem}.sport-card{--sport-card-color:#ef765f;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:16rem;padding:1.35rem;overflow:hidden;border:1px solid color-mix(in srgb,var(--sport-card-color) 18%,var(--flux-line));border-radius:1.4rem;background:linear-gradient(145deg,color-mix(in srgb,var(--sport-card-color) 8%,var(--flux-surface)),var(--flux-surface));transition:transform .22s ease,box-shadow .22s ease}.sport-card:hover{transform:translateY(-4px);box-shadow:0 18px 36px -27px var(--sport-card-color)}.sport-card[data-sport="climbing"]{--sport-card-color:#9a74f6}.sport-card[data-sport="swimming"]{--sport-card-color:#23a6bd}.sport-card[data-sport="cycling"]{--sport-card-color:#20a88b}.sport-card[data-sport="hiking"]{--sport-card-color:#e4a853}.sport-card[data-sport="strength"]{--sport-card-color:#df6380}.sport-card[data-sport="other"]{--sport-card-color:#8190a5}.sport-card__top,.sport-card__footer{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.sport-card__top{margin-bottom:1.35rem}.sport-card__icon{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:.9rem;background:color-mix(in srgb,var(--sport-card-color) 16%,var(--flux-bg));color:var(--sport-card-color)}.sport-card__icon svg{width:1.4rem;height:1.4rem}.sport-card__edit{width:2rem;height:2rem;border-radius:999px;color:var(--flux-muted)}.sport-card__edit:hover{background:var(--flux-bg);color:var(--sport-card-color)}.sport-card__date{margin-bottom:.3rem;color:var(--sport-card-color);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.1em}.sport-card h2{color:var(--flux-text);font-size:1.3rem!important}.sport-card__comment{margin-top:.65rem;color:var(--flux-muted);font-size:.78rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.sport-card__footer{margin-top:1.2rem;padding-top:.9rem;border-top:1px solid var(--flux-line);color:var(--flux-muted);font-size:.68rem;font-weight:750}.sport-card__footer button,.sport-done{color:var(--sport-card-color);font-weight:800}.sport-empty{grid-column:1/-1;padding:5rem 1rem;text-align:center;color:var(--flux-muted)}.sport-empty>span{display:block;color:#ef765f;font-size:2rem}.sport-empty h2{margin:.7rem 0 .3rem;color:var(--flux-text);font-size:1.25rem!important}.sport-empty p{font-size:.78rem}.sport-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.sport-kpis article,.sport-panel{border:1px solid var(--flux-line);border-radius:1.35rem;background:var(--flux-surface)}.sport-kpis article{display:flex;flex-direction:column;min-height:10rem;padding:1.2rem}.sport-kpis span,.sport-kpis small,.sport-panel__heading span{color:var(--flux-muted);font-size:.65rem}.sport-kpis strong{margin:auto 0 .1rem;color:var(--flux-text);font-size:2rem;font-weight:500;letter-spacing:-.06em}.sport-chart-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem;margin-top:1rem}.sport-panel{padding:1.35rem}.sport-panel__heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:1.5rem}.sport-panel__heading h2{color:var(--flux-text);font-size:1.1rem!important}.sport-bars{display:grid;gap:.85rem}.sport-bars>div{display:grid;grid-template-columns:6rem 1fr 1.5rem;align-items:center;gap:.65rem;color:var(--flux-muted);font-size:.68rem}.sport-bars i{height:.38rem;overflow:hidden;border-radius:999px;background:var(--flux-bg)}.sport-bars b{display:block;height:100%;border-radius:inherit;background:#ef765f}.sport-bars strong{color:var(--flux-text);text-align:right}.sport-panel__empty{color:var(--flux-muted);font-size:.75rem}.sport-months{display:flex;align-items:flex-end;gap:.35rem;height:12rem;padding-top:1rem}.sport-months>div{position:relative;display:flex;flex:1;align-items:center;justify-content:flex-end;height:100%;flex-direction:column}.sport-months i{width:min(1.2rem,75%);min-height:.25rem;border-radius:.35rem .35rem .12rem .12rem;background:linear-gradient(#ef765f,#e4a853)}.sport-months strong{position:absolute;bottom:calc(var(--bar-height,0%) + 1rem);color:var(--flux-muted);font-size:11px}.sport-months span{margin-top:.45rem;color:var(--flux-muted);font-size:11px;text-transform:uppercase}.sport-completed-field{display:flex;align-items:center;gap:.55rem;align-self:end;min-height:2.8rem;color:var(--flux-text);font-size:.75rem}.sport-completed-field input{width:1rem;height:1rem;accent-color:#ef765f}
        .sport-months>button{position:relative;display:flex;flex:1;align-items:center;justify-content:flex-end;height:100%;min-width:0;flex-direction:column;border-radius:.5rem;cursor:pointer;transition:background .18s ease,transform .18s ease}.sport-months>button:hover,.sport-months>button.is-active{background:color-mix(in srgb,#ef765f 10%,transparent)}.sport-months>button:hover{transform:translateY(-2px)}.sport-months>button.is-active i{box-shadow:0 0 0 2px color-mix(in srgb,#ef765f 35%,transparent),0 0 18px rgba(239,118,95,.3)}
        @media(min-width:641px){.sport-months>button:hover,.sport-months>button.is-active{background:transparent}.sport-months>button:hover{transform:none}.sport-months>button::before{content:"";position:absolute;z-index:0;top:-.35rem;bottom:-.35rem;left:50%;width:2.35rem;border-radius:.65rem;background:color-mix(in srgb,#ef765f 10%,transparent);opacity:0;transform:translateX(-50%);transition:opacity .18s ease}.sport-months>button:hover::before,.sport-months>button.is-active::before{opacity:1}.sport-months>button i,.sport-months>button span{position:relative;z-index:1}.sport-months>button strong{position:absolute;z-index:1}}
        @media(max-width:850px){.sport-grid,
.sport-kpis {grid-template-columns:repeat(2,minmax(0,1fr))}.sport-chart-grid{grid-template-columns:1fr}}
        @media(max-width:640px){.todo-form-grid{grid-template-columns:1fr}.todo-field-full{grid-column:auto}.todo-toolbar{align-items:stretch}.todo-actions{width:100%;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:.25rem}.todo-actions .custom-select{min-width:0;flex:1 1 auto}.todo-actions .custom-select__trigger{min-width:0}.todo-actions .custom-select__trigger>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-sort{width:100%;min-width:0;padding-right:.35rem;font-size:.7rem}#btn-manage-todo-sections{padding-inline:.65rem}#btn-add-birthday,#btn-add-todo{flex:0 0 auto;margin-left:auto;padding-inline:.8rem}.todo-card{gap:.7rem;padding:1rem}.birthday-grid,.birthday-section .birthday-grid{grid-template-columns:1fr}.birthday-card{gap:.7rem;padding:.75rem .8rem}.sport-toolbar{align-items:stretch;flex-direction:column}.sport-toolbar__actions{width:100%;justify-content:space-between}.sport-grid{grid-template-columns:1fr}.sport-card{aspect-ratio:auto;min-height:15rem}.sport-kpis{grid-template-columns:1fr 1fr}.sport-kpis article{min-height:8rem}.sport-months{gap:.15rem}.sport-months span{font-size:11px}.sport-completed-field{align-self:start}}

/* #endregion */
/* #region Gaming et livres */
        /* Library workspaces — compact catalogues aligned with Home and Tasks */
        :root[data-style^="flux"] #gaming-section,
        :root[data-style^="flux"] #livres-section {
            --library-accent:#9a74f6;
            max-width:78rem;
            padding:7rem 1.25rem 4rem;
        }

        :root[data-style^="flux"] .library-page-header { padding:clamp(1.25rem,3vw,2rem) 0 clamp(2rem,5vw,3.5rem); }
        :root[data-style^="flux"] #stats-container-games,
        :root[data-style^="flux"] #stats-container-books {
            display:block; margin:0 !important; padding:.5rem 1.5rem 1.5rem !important;
        }
        :root[data-style^="flux"] .library-workspace-bar {
            order:2; display:flex; align-items:center; justify-content:space-between; gap:1rem;
        }
        :root[data-style^="flux"] .library-workspace-bar .library-view-tabs { order:0; margin:0; }
        :root[data-style^="flux"] .library-workspace-bar .library-controls { order:1; width:auto !important; margin:0 !important; }
        :root[data-style^="flux"] .library-content-grid {
            grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem 2.25rem !important; margin:0 !important;
        }
        :root[data-style^="flux"] .library-content-grid > section { min-width:0; }
        :root[data-style^="flux"] .library-content-grid [id^="grid-"] { gap:1px; }
        :root[data-style^="flux"] .library-entry,
        :root[data-style^="flux"] .series-group {
            position:relative; padding:.375rem .5rem !important; border-radius:.55rem !important;
            background:transparent; transition:background .18s ease,transform .18s ease;
        }
        :root[data-style^="flux"] .library-entry:hover,
        :root[data-style^="flux"] .series-group:hover { background:var(--flux-surface) !important; transform:translateX(2px); }
        :root[data-style^="flux"] .library-entry h3,
        :root[data-style^="flux"] .series-group h3 { font-size:.875rem; line-height:1.25; font-weight:580 !important; }
        :root[data-style^="flux"] .library-entry .library-dot { width:.32rem; height:.32rem; margin-top:.48rem; margin-right:.7rem; box-shadow:none; }
        :root[data-style^="flux"] .library-entry [class*="text-[9px]"],
        :root[data-style^="flux"] .series-group [class*="text-[11px]"] { font-size:11px; letter-spacing:.055em; }
        :root[data-style^="flux"] .library-entry .dlc-toggle-btn { margin-top:.15rem; opacity:.72; }
        :root[data-style^="flux"] .series-group { border:0 !important; }
        :root[data-style^="flux"] .series-group .series-dots { margin-right:.7rem; }
        :root[data-style^="flux"] .series-group .series-dots > div { width:.25rem; height:.25rem; box-shadow:none; }
        :root[data-style^="flux"] .series-group .accordion-content > div > div { border-color:color-mix(in srgb,var(--library-accent) 16%,transparent); }
        :root[data-style="flux-light"] .library-entry:hover,
        :root[data-style="flux-light"] .series-group:hover { background:var(--flux-surface-hover) !important; }
        @media(max-width:760px) {
            :root[data-style^="flux"] #stats-container-games,
            :root[data-style^="flux"] #stats-container-books { display:block; }
            :root[data-style^="flux"] .library-workspace-bar { align-items:stretch; flex-direction:column; }
            :root[data-style^="flux"] .library-workspace-bar .library-controls { width:100% !important; flex-direction:row !important; align-items:center !important; justify-content:space-between !important; }
            :root[data-style^="flux"] .library-controls > div:first-child { flex:1; flex-wrap:nowrap; justify-content:flex-start; }
            :root[data-style^="flux"] .library-controls > div:last-child { margin-left:auto; justify-content:flex-end; }
            :root[data-style^="flux"] .library-controls .button-hidden { display:none; }
            :root[data-style^="flux"] .library-content-grid { grid-template-columns:1fr; }
        }

/* The navigation has its own light palette in both themes. */
        @property --nav-accent { syntax:"<color>"; inherits:true; initial-value:#dcf68b; }


        
        /* #endregion */
        /* #region Home - Titre et focus */
        :root[data-style^="flux"] #dashboard-wrapper>#flux-dashboard { max-width:78rem; padding:7.4rem 2rem 1.5rem; }
        :root[data-style^="flux"] #flux-dashboard::before { content:none; }
        #flux-dashboard { --home-lime:#dcf68b; scroll-margin-top:6rem; }
        :root[data-style="flux-light"] #flux-dashboard { --home-lime:#48601c; }
        :root[data-style^="flux"] #flux-dashboard .flux-page-header { padding:4rem 0 3.75rem; min-height:28rem; }
        :root[data-style^="flux"] #flux-dashboard .flux-title { font-size:clamp(3.5rem,6.9vw,6.15rem); font-weight:500!important; letter-spacing:-.075em!important; line-height:1; }
        #flux-dashboard .flux-title em { position:relative; display:inline-block; color:var(--home-lime); font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.07em; }
        #flux-dashboard .flux-title em::after { content:""; position:absolute; z-index:-1; left:2%; right:-3%; bottom:-.05em; height:.13em; background:#b19ae9; border-radius:60% 35% 50% 40%; transform:rotate(-2deg); opacity:.55; transition:transform .6s; }
        #flux-dashboard .flux-page-header:hover .flux-title em::after { transform:rotate(0deg) scaleX(1.04); }

@supports(background-clip:text) {
 }

/* Solid paper-like shapes occupy the clear space above the card copy. */
        .home-card-geometry {
            position:absolute; z-index:0; pointer-events:none; width:8rem; height:8rem;
            right:1.4rem; top:-1.8rem; color:var(--card-color); opacity:.38;
            background:currentColor; border:0; border-radius:50% 50% 12% 50%;
            transform:rotate(-18deg); transition:transform .8s cubic-bezier(.2,.9,.2,1.2),opacity .5s;
        }
        .home-card-geometry::before { content:""; position:absolute; width:2.3rem; height:2.3rem; left:-1.5rem; bottom:.2rem; background:currentColor; border-radius:50%; opacity:.55; transition:transform .8s cubic-bezier(.2,.9,.2,1.2); }
        .home-card-geometry::after { content:""; position:absolute; inset:0; background:linear-gradient(135deg,#ffffff45,transparent 65%); border-radius:inherit; }

:root[data-style="flux-light"] .home-card-geometry { opacity:.78; }

@media(min-width:761px) and (max-width:1100px) {
 }

#flux-dashboard :is(button,a):focus-visible { outline:3px solid var(--home-lime); outline-offset:5px; }

@media(max-width:760px) {
            :root[data-style^="flux"] #dashboard-wrapper>#flux-dashboard { padding:6.5rem 1.25rem 1.25rem; }

:root[data-style^="flux"] #flux-dashboard .flux-title { font-size:clamp(3.3rem,8.5vw,4.5rem); }

}
        @media(max-width:480px) {

            .home-card-geometry { width:6rem; height:6rem; top:-1.8rem; right:.5rem; }

:root[data-style^="flux"] #flux-dashboard .flux-page-header { padding:2.5rem 0; min-height:0; }

}

/* #endregion */
        /* #region Site - Decorations */
        /* Full-width decoration is a sibling of the constrained content, clipped only at the viewport. */
        #dashboard-wrapper { overflow:clip; isolation:isolate; }
        body { isolation:isolate; }
        .home-atmosphere { position:fixed; inset:0; z-index:-1; pointer-events:none; overflow:clip; --shape-opacity:.2; }
        .home-atmosphere>span { position:absolute; display:block; opacity:var(--shape-opacity); transition:transform 1.2s cubic-bezier(.2,.8,.2,1),opacity .8s; }
        .home-atmosphere__orbit { width:clamp(12rem,23vw,26rem); aspect-ratio:1; left:-9rem; top:30rem; background:#b3ce78; border-radius:50% 50% 14% 50%; transform:rotate(-24deg); }
        .home-atmosphere__grid { width:clamp(11rem,20vw,24rem); aspect-ratio:1; right:-6rem; top:7rem; background:#ae97df; border-radius:22%; transform:rotate(-24deg); }
        .home-atmosphere__arch { width:clamp(12rem,22vw,25rem); height:26rem; right:-8rem; bottom:3rem; background:#df9979; border-radius:14rem 14rem 2rem 2rem; transform:rotate(28deg); }

body:has(.flux-page-header:hover) .home-atmosphere__grid { transform:rotate(-12deg) translate(-12px,8px); }

        @media(max-width:760px) { .home-atmosphere { --shape-opacity:.13; } :root[data-style="flux-light"] .home-atmosphere { --shape-opacity:.28; }
 }

/* #endregion */
        /* #region Home - Mouvement reduit */
        @media(prefers-reduced-motion:reduce) {

#flux-dashboard *, #flux-dashboard *::before, #flux-dashboard *::after { animation:none!important; transition:none!important; }
            .home-atmosphere>span { transition:none!important; }
            body:has(.flux-page-header:hover) .home-atmosphere__grid { transform:rotate(-24deg); }

#flux-dashboard .home-card-geometry::before,
#flux-dashboard .flux-title em::after { transform:none!important; }

        }

#todos-section .flux-page-header--todos { isolation:isolate; padding:2.5rem 0 3rem; }

        #todos-section .flux-page-header__intro { max-width:70%; font-size:.88rem; line-height:1.7; }

#todos-section .todo-tab { border-radius:9px; font-weight:550; }
        #todos-section .todo-tabs .todo-tab:is(:hover,:focus-visible) { color:var(--flux-text); }
        #todos-section .todo-tabs .todo-tab.is-active { font-weight:700; }

#todos-section .todo-add { background:#dcf68b; color:var(--tasks-ink); font-weight:650; transition:transform .2s,box-shadow .2s; }
        #todos-section .todo-add:hover { transform:translateY(-2px); box-shadow:3px 5px 0 #101d1825; }

/* #endregion */
        /* #region Tasks - Liste et priorites */
        #todos-section .todo-summary { margin-bottom:1rem; }
        #todos-section #todo-count { color:var(--flux-text); font-weight:650; }
#todos-section .todo-list,
#todos-section .todo-today-list,
#todos-section .todo-section-tasks { }
        #todos-section .todo-card { --task-priority:var(--flux-line); isolation:isolate; overflow:hidden; }
        #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::before { content:""; position:absolute; z-index:-1; pointer-events:none; right:-1.5rem; top:-2.5rem; transition:transform .65s cubic-bezier(.2,.8,.2,1),border-radius .65s,opacity .4s; }
        #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::after { position:absolute; z-index:-1; pointer-events:none; left:-1.2rem; bottom:-1.4rem; width:4.5rem; height:4.5rem; border-radius:50% 50% 12% 50%; background:var(--task-priority); opacity:.13; transform:rotate(24deg); transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .4s; }
        #todos-section .todo-card:is(:hover,:focus-within)::before { transform:translate(-.6rem,.4rem) rotate(-8deg) scale(1.08); border-radius:45% 55% 25% 50%; }
        #todos-section .todo-card:is(:hover,:focus-within)::after { transform:translate(.3rem,-.3rem) rotate(8deg) scale(1.05); opacity:.22; }

#todos-section .todo-content { min-width:0; }
        #todos-section .todo-title,
#todos-section .todo-description { overflow-wrap:anywhere; }

        #todos-section .todo-tag { overflow-wrap:anywhere; }
        #todos-section .todo-check { position:relative; align-self:start; }
        #todos-section .todo-check span { position:relative; width:1.35rem; height:1.35rem; border:1px solid var(--flux-muted); transition:background .2s,border-color .2s; }
        #todos-section .todo-check input:checked+span { background:var(--tasks-accent); border-color:var(--tasks-accent); }
        #todos-section .todo-check input:checked+span::after { content:""; position:absolute; left:.42rem; top:.2rem; width:.35rem; height:.65rem; border:solid var(--flux-bg); border-width:0 2px 2px 0; transform:rotate(45deg); }
        #todos-section .todo-check input:focus-visible+span { outline:2px solid var(--tasks-accent); outline-offset:4px; }
        #todos-section .todo-edit,#todos-section .todo-remove { width:1.85rem; height:1.85rem; }
        #todos-section .todo-edit { border-radius:0; }
        #todos-section .todo-edit:hover { background:transparent; color:var(--tasks-accent); }

        #todos-section .todo-subtasks label { align-items:flex-start; line-height:1.5; overflow-wrap:anywhere; }
        #todos-section .todo-subtasks input { flex-shrink:0; margin-top:.2rem; accent-color:var(--tasks-accent); }
        #todos-section .todo-card.is-completed { opacity:.72; }

        #todos-section .todo-section-group+.todo-section-group { margin-top:1.75rem; }

        #todos-section .todo-section-heading h2 { font-size:.95rem; }
        #todos-section .todo-upcoming { margin-top:2rem; padding-top:.5rem; }
        #todos-section .todo-empty { padding:3.5rem 1.5rem; background:color-mix(in srgb,var(--flux-surface) 60%,transparent); }
        #todos-section .todo-empty>span { background:color-mix(in srgb,var(--tasks-accent) 12%,var(--flux-surface)); color:var(--tasks-accent); }

        @media(min-width:641px) {
            #todos-section .birthday-today:has(.birthday-grid > :only-child) { width:calc((100% - .7rem) / 2); min-width:min(100%,24rem); justify-self:start; }
            #todos-section .birthday-today .birthday-grid:has(> :only-child) { grid-template-columns:minmax(0,1fr); }
        }
        #todos-section .birthday-section { gap:.35rem; }
        #todos-section .birthday-section + .birthday-section { margin-top:1.4rem; }
        #todos-section .birthday-section .todo-section-heading { padding-bottom:.65rem; }
        #todos-section .birthday-section .birthday-grid { gap:.45rem 1.1rem; padding:.15rem; }
        #todos-section .birthday-section .birthday-card {
            --birthday-accent:#dbacae;
            grid-template-columns:2.8rem minmax(0,1fr) auto;
            transition:background .3s ease,border-color .3s ease;
        }
        #todos-section .birthday-section .birthday-card.has-tag { --birthday-accent:#8fc6ad; }
        #todos-section .birthday-section .birthday-card::before,
        #todos-section .birthday-section .birthday-card::after { content:none; }
        #todos-section .birthday-section .birthday-card__date {
            isolation:isolate; flex-direction:column; justify-content:center; align-items:center; gap:.1rem;
            width:2.8rem; height:2.8rem; background:transparent; color:var(--flux-text); text-align:center;
        }
        #todos-section .birthday-section .birthday-card__date::before {
            content:""; position:absolute; z-index:-1; inset:.05rem;
            background:color-mix(in srgb,var(--birthday-accent) 24%,var(--flux-surface));
            transition:transform .45s cubic-bezier(.2,.8,.2,1),background .3s ease;
        }

        #todos-section .birthday-section .birthday-card__date strong { font-size:1.3rem; font-weight:500; line-height:1; text-align:center; letter-spacing:-.05em; }
        #todos-section .birthday-section .birthday-card__date span { font-size:11px; line-height:1; letter-spacing:.06em; }
        #todos-section .birthday-section .birthday-card__content { display:flex; align-items:baseline; gap:.15rem .5rem; }

        #todos-section .birthday-section .birthday-card__meta { flex-wrap:wrap; gap:.25rem .4rem; }
        #todos-section .birthday-section .birthday-card__tag { font-size:11px; }
        #todos-section .birthday-section .birthday-card__content p { display:block; order:3; flex-basis:100%; margin:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.7rem; line-height:1.4; }
        #todos-section .birthday-section .birthday-card__edit { opacity:.65; width:1.8rem; height:1.8rem; }
        #todos-section .birthday-section .birthday-card:is(:hover,:focus-within) { background:var(--flux-surface-hover); border-color:color-mix(in srgb,var(--birthday-accent) 30%,var(--flux-line)); }
        #todos-section .birthday-section .birthday-card:is(:hover,:focus-within) .birthday-card__date::before { transform:rotate(0deg) scale(1.06); background:color-mix(in srgb,var(--birthday-accent) 40%,var(--flux-surface)); }
        #todos-section .birthday-section .birthday-card.is-today { border-color:color-mix(in srgb,var(--birthday-accent) 50%,var(--flux-line)); }
        #todos-section .birthday-section .birthday-card.is-today .birthday-card__date::before { background:var(--birthday-accent); }
        #todos-section .birthday-section .birthday-card.is-today .birthday-card__date { color:#293c36; }
        #todos-section .birthday-section .birthday-card__kicker { color:var(--tasks-accent); font-size:11px; }
        #todos-section .birthday-card__content { min-width:0; flex-wrap:wrap; }
        #todos-section .birthday-card h3 { overflow-wrap:anywhere; }
        
        /* #endregion */
        /* #region Tasks - Formulaires */
        #todos-section :is(#modal-todo,#modal-birthday,#modal-todo-sections) { --modal-accent:var(--tasks-accent); }
        #todo-section-form > input { flex:1; min-width:0; }
        #modal-todo-sections .todo-section-order-actions,
        #modal-todo-sections .todo-section-system-label,
        #modal-todo-sections .todo-section-manager-row > button { flex-shrink:0; }
        #todos-section #modal-todo .btn-submit-bonus { background:#dcf68b; color:#252b19; }
        #todos-section .todo-input:focus { border-color:var(--tasks-accent); }
        #todos-section :is(button,select):focus-visible { outline:2px solid var(--tasks-accent); outline-offset:3px; }
        
        /* #endregion */
        /* #region Tasks - Responsive */
        @media(max-width:1000px) {
            #todos-section .todo-toolbar { align-items:stretch; }
            #todos-section .todo-actions { margin-left:auto; }
        }
        @media(max-width:640px) {
            :root[data-style^="flux"] #todos-section { padding:6.5rem 1.25rem 3rem; }
            #todos-section .flux-page-header--todos { padding:1.5rem 0 2rem; }

#todos-section .flux-page-header__intro { max-width:80%; font-size:.8rem; }
            #todos-section .todo-toolbar { flex-direction:column; }

            #todos-section .todo-tabs .todo-tab { flex:1; white-space:nowrap; font-size:.7rem; }
            #todos-section .todo-actions { gap:.3rem; }
            #todos-section .todo-card { gap:.7rem; padding:1rem .85rem; }
            #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::before { width:8rem; height:8rem; right:-1.8rem; top:-1.8rem; }
            #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::after { width:3.5rem; height:3.5rem; }
            #todos-section .todo-title { font-size:.93rem; }
            #todos-section .todo-card-actions { flex-direction:column; }
            #todos-section .todo-edit,#todos-section .todo-remove { width:1.6rem; height:1.6rem; }
        }
        
        /* #endregion */
        /* #region Tasks - Mouvement reduit */
        @media(prefers-reduced-motion:reduce) {
            #todos-section .birthday-section .birthday-card:is(:hover,:focus-within) .birthday-card__date::before { transform:rotate(-15deg); }
            #todos-section .birthday-section .birthday-card:nth-child(even):is(:hover,:focus-within) .birthday-card__date::before { transform:rotate(16deg); }

            #todos-section .todo-card:is(:hover,:focus-within)::after { transform:rotate(24deg); }
            #todos-section *,#todos-section *::before,#todos-section *::after { transition:none!important; }
            #todos-section .todo-add:hover { transform:none; }
        }
        
        /* #endregion */

/* Section: identity-styles */
/* Optical alignment of oversized letters with the content below. */
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section) .flux-title { margin-left:-.045em; }

/* #endregion */
        /* #region Home et Tasks - Typographie et rythme communs */
        :root { --page-intro-size:.87rem; --page-title-size:clamp(3.5rem,6.9vw,6.15rem); }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section) > .flux-page-header {
            padding:4rem 0 3.75rem; min-height:28rem;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section) .flux-title {
            font-size:var(--page-title-size); font-weight:500!important; letter-spacing:-.075em!important; line-height:1;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section) :is(.flux-intro,.flux-page-header__intro) {
            margin:1.5rem 0 1.4rem; max-width:34rem; font-size:var(--page-intro-size); line-height:1.7;
        }
        #todos-section .todo-tab,#todos-section .todo-tabs .todo-tab { font-size:.77rem; }
        @media(max-width:760px) {
            :root { --page-title-size:clamp(3.3rem,8.5vw,4.5rem); }
            :root[data-style^="flux"] #todos-section { padding:6.5rem 1.25rem 3rem; }
        }
        @media(max-width:480px) {
            :root[data-style^="flux"] :is(#flux-dashboard,#todos-section) > .flux-page-header { padding:2.5rem 0; min-height:0; }
        }

        :root[data-style^="flux"] #todos-section > .flux-page-header { min-height:0; }
        :root[data-style^="flux"] :is(#todos-section,#sport-section) .flux-title { font-family:inherit; font-size:clamp(3rem,8vw,6rem); font-weight:400!important; letter-spacing:-.06em!important; line-height:.9; }
        #todos-section .flux-title em { font-family:inherit; font-style:normal; font-weight:inherit; letter-spacing:inherit; color:inherit; }
        :root[data-style^="flux"] #todos-section .flux-page-header__intro { margin-bottom:.5rem; }
        #todos-section .todo-toolbar { margin-bottom:1.25rem; }
        #todos-section .todo-tabs { width:max-content; max-width:100%; border:0; }
        #todos-section .todo-tabs .todo-tab { color:var(--flux-muted); background:transparent; transition:background .25s,color .25s,box-shadow .25s; }

        #todos-section #btn-manage-todo-sections { border:0; background:transparent; box-shadow:none; }
        #todos-section #btn-add-todo { --create-accent:#dcf68b; color:var(--site-control-ink)!important; }
        #todos-section #btn-add-birthday { --create-accent:#dbacae; }
        #todos-section .todo-actions .flux-create-button.hidden { display:none!important; }
        @media(max-width:640px) {
            #todos-section .todo-tabs { width:100%; }

        }
        /* #endregion */
        /* #region Connexion - Acces prive */
        #login-section {
            
            --login-accent:#dcf68b; color:var(--flux-text);
        }
        :root[data-style="flux-light"] #login-section {
            
            --login-accent:#48601c;
        }
        #login-section::before { inset:auto auto -7rem -6rem; width:22rem; height:22rem; opacity:.16; background:#8fc6ad; border-radius:50% 50% 12% 50%; mask-image:none; transform:rotate(-24deg); }
        #login-section::after { top:-6rem; left:auto; right:-5rem; width:20rem; height:20rem; border:0; border-radius:30% 65% 40% 60%; background:#c0afda; opacity:.16; transform:rotate(18deg); animation:none; }

        .login-title em { color:var(--login-accent); font-family:Georgia,'Times New Roman',serif; font-weight:400; }
        .login-panel { border-radius:14px; background:var(--flux-surface); box-shadow:0 18px 40px -32px #07110c70; backdrop-filter:none; -webkit-backdrop-filter:none; }

        .login-submit { background:#dcf68b; color:#252b19; box-shadow:2px 3px 0 #101d1825; }
        .login-field input:focus { border-color:var(--login-accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--login-accent) 12%,transparent); }
        #login-section button:focus-visible { outline:2px solid var(--login-accent); outline-offset:3px; }
        @media(max-width:720px) {
            .login-shell { gap:2.5rem; }
            .login-panel { padding:1.35rem; }
        }
        /* #endregion */

/* Section: notes-identity-styles */
/* Notes follows Tasks' compact header and controls. */
        #notes-section { --notes-accent:#afbddb; }
        #notes-section .flux-page-header--notes { isolation:isolate; }

#modal-note .note-field-label { display:block; margin-bottom:.4rem; color:var(--flux-muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.09em; }
        #modal-note .note-writing-field { border:1px solid var(--flux-line); border-radius:.65rem; background:var(--flux-bg); }
        #modal-note .note-writing-field:focus-within { border-color:var(--notes-accent); }
        #modal-note .note-toolbar-editor { border-top:0; }
        :root[data-style^="flux"] #modal-note .note-editor { min-height:10rem; max-height:32vh; padding:.72rem .8rem; border:0!important; box-shadow:none!important; background:transparent!important; font-size:1rem; }
        #modal-note .note-editor label { display:flex; margin-bottom:0; color:var(--flux-text); font-size:inherit; text-transform:none; letter-spacing:normal; }
        #modal-note .note-color-options { flex-wrap:wrap; gap:.8rem; padding:.5rem .2rem; }
        #modal-note .note-color-button { width:1.5rem; height:1.5rem; }
        #notes-section #modal-note .note-save-button { border:0; }
        #notes-section #modal-note .note-save-button:hover { background:#c2cee6; }
        :root[data-style="flux-light"] #notes-section { --notes-accent:#52668c; }
        :root[data-style^="flux"] #notes-section > .flux-page-header { min-height:0; }
        :root[data-style^="flux"] #notes-section .flux-title { margin-left:-.045em; font-family:inherit; }
        :root[data-style^="flux"] #notes-section .flux-page-header__intro { max-width:34rem; }
        #notes-section .notes-toolbar { align-items:center; flex-wrap:wrap; }
        #notes-section .todo-tab { border:0; border-radius:9px; background:transparent; box-shadow:none; }

#notes-section :is(button,select):focus-visible { outline:2px solid var(--notes-accent); outline-offset:3px; }
        #notes-section :is(#modal-note,:is(#modal-note-sections,#modal-home-link,#modal-home-sections)) { --modal-accent:var(--notes-accent); }
        #notes-section .todo-input:focus { border-color:var(--notes-accent); }
        #notes-section .note-format-button { border-radius:9px; transition:background .25s,color .25s; }
        #notes-section .note-format-button:is(:hover,.is-active) { color:var(--notes-accent); background:var(--flux-surface-hover); }
        #notes-section .note-toolbar-editor { flex-wrap:wrap; }

        /* Persisted color keys now select Home's pastel shapes, not card fills. */
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="amber"] { --card-color:#dcf68b; --card-ink:#506227; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="teal"] { --card-color:#8fc6ad; --card-ink:#3c715d; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="purple"] { --card-color:#c0afda; --card-ink:#775495; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="rose"] { --card-color:#dbacae; --card-ink:#97585e; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="cyan"] { --card-color:#afbddb; --card-ink:#52668c; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) [data-note-color="peach"] { --card-color:#e6ad88; --card-ink:#97592f; }
        #notes-section .note-color-button { background:var(--card-color); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card { padding-top:1.5rem;
        }

        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card::before { position:absolute; top:0; left:1.5rem; width:2.25rem; height:2px; background:var(--note-color); opacity:.65; transition:width .65s cubic-bezier(.2,.8,.2,1),opacity .45s; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) { border-color:color-mix(in srgb,var(--card-color) 38%,var(--flux-line)); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within)::before { width:4.5rem; opacity:1; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card[data-note-color="teal"] .home-card-geometry { border-radius:50%; transform:rotate(-35deg) scaleY(.8); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card[data-note-color="purple"] .home-card-geometry { border-radius:25% 5% 25% 5%; transform:rotate(45deg); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card[data-note-color="rose"] .home-card-geometry { border-radius:5rem 5rem .5rem .5rem; transform:rotate(-25deg); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card[data-note-color="cyan"] .home-card-geometry { border-radius:12%; transform:rotate(-26deg); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card[data-note-color="peach"] .home-card-geometry { border-radius:5rem 5rem 0 0; transform:rotate(35deg); }

        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry::before { transform:translate(-8px,8px) scale(.75); }

        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card :is(h2,.note-card__content) { position:relative; z-index:1; overflow-wrap:anywhere; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:focus-within .note-card__edit { opacity:1; transform:none; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card time { opacity:1; }
        @media(prefers-reduced-motion:reduce) {
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card,#notes-section .home-card-geometry,#notes-section .home-card-geometry::before,:is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card::before { transition:none; }
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within),:is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry,:is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry::before { transform:none; }
        }

/* Section: sport-identity-styles */
/* Shared page rhythm; Sport uses Home's peach accent. */
        #sport-section { --sport-accent:#e6ad88; }

        :root[data-style^="flux"] #sport-section > .flux-page-header { isolation:isolate; min-height:0; }
        :root[data-style^="flux"] #sport-section .flux-title { margin-left:-.045em; }
        :root[data-style^="flux"] #sport-section .flux-page-header__intro { max-width:34rem; }

#sport-section .todo-tabs { width:max-content; max-width:100%; border:0; border-radius:999px; }
        #sport-section .todo-tab { min-height:0; border:0; color:var(--flux-muted); background:transparent; transition:background .25s,color .25s,box-shadow .25s; }

        #sport-section .sport-toolbar__actions { gap:.5rem; }

#sport-section .flux-create-button.hidden { display:none!important; }
        #sport-section :is(button,select):focus-visible { outline:2px solid var(--sport-accent); outline-offset:3px; }
        #sport-section .todo-summary { margin-bottom:1rem; }
        #sport-count { color:var(--flux-text); font-weight:650; }
        #sport-section .sport-grid { align-items:start; }
        #sport-section .sport-card { --card-color:#e6ad88; --card-ink:#97592f; --sport-card-color:var(--card-color); isolation:isolate; overflow:hidden; aspect-ratio:auto; transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .45s,box-shadow .45s; }
        #sport-section .sport-card[data-sport="climbing"] { --card-color:#c0afda; --card-ink:#775495; }
        #sport-section .sport-card[data-sport="swimming"] { --card-color:#afbddb; --card-ink:#52668c; }
        #sport-section .sport-card[data-sport="cycling"] { --card-color:#8fc6ad; --card-ink:#3c715d; }
        #sport-section .sport-card[data-sport="hiking"] { --card-color:#dcf68b; --card-ink:#506227; }
        #sport-section .sport-card[data-sport="strength"] { --card-color:#dbacae; --card-ink:#97585e; }
        #sport-section .sport-card[data-sport="other"] { --card-color:#afbddb; --card-ink:#52668c; }
        :root[data-style="flux-light"] #sport-section .sport-card { --sport-card-color:var(--card-ink); }
        #sport-section .sport-card::before { position:absolute; top:0; left:1.5rem; width:2.25rem; height:2px; background:var(--sport-card-color); opacity:.65; transition:width .65s,opacity .45s; }
        #sport-section .sport-card:is(:hover,:focus-within) { transform:translateY(-4px); background:var(--flux-surface); border-color:color-mix(in srgb,var(--card-color) 38%,var(--flux-line)); box-shadow:0 18px 28px -24px #07110c70; }
        #sport-section .sport-card:is(:hover,:focus-within)::before { width:4.5rem; opacity:1; }
        #sport-section .sport-card .home-card-geometry { border-radius:5rem 5rem 0 0; transform:rotate(35deg); }
        #sport-section .sport-card:is(:hover,:focus-within) .home-card-geometry { opacity:.66; transform:translate(-8px,4px) rotate(8deg) scale(1.08); }
        #sport-section .sport-card:is(:hover,:focus-within) .home-card-geometry::before { transform:translate(-8px,8px) scale(.75); }
        :root[data-style="flux-light"] #sport-section .sport-card:is(:hover,:focus-within) .home-card-geometry { opacity:1; }
        #sport-section .sport-card > div { position:relative; z-index:1; }
        #sport-section .sport-card__icon { background:color-mix(in srgb,var(--sport-card-color) 10%,var(--flux-surface)); color:var(--sport-card-color); }
        #sport-section .sport-card__date { color:var(--flux-muted); font-weight:500; letter-spacing:.04em; }
        #sport-section .sport-card h2 { margin:.4rem 0 0; }
        #sport-section .sport-card__comment { max-height:12rem; overflow-y:auto; overflow-wrap:anywhere; scrollbar-width:thin; color:var(--flux-muted); }
        #sport-section .sport-card__footer { flex-wrap:wrap; gap:.75rem; }
        #sport-section .sport-card__footer > span:first-child { color:var(--flux-text); font-weight:650; }
        #sport-section .sport-card__footer button { background:color-mix(in srgb,var(--sport-card-color) 10%,var(--flux-surface)); }
        #sport-section .sport-card__footer button:hover { background:color-mix(in srgb,var(--sport-card-color) 18%,var(--flux-surface)); }
        #sport-section .sport-empty { padding:3.5rem 1rem; }
        #sport-section .sport-empty > span { color:var(--sport-accent); }
        #sport-section .sport-kpis { gap:1rem; }
        #sport-section :is(.sport-kpis article,.sport-panel) { background:var(--flux-surface); }
        #sport-section .sport-kpis article { padding:1.25rem; }
        #sport-section .sport-kpis strong { color:var(--flux-text); font-size:clamp(1.6rem,3vw,2.3rem); font-weight:400; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
        #sport-section .sport-kpis :is(span,small) { font-size:.75rem; line-height:1.5; }
        #sport-section .sport-panel__heading { flex-wrap:wrap; gap:.5rem; }
        #sport-section .sport-panel__heading h2 { font-size:1rem!important; font-weight:650!important; }
        #sport-section .sport-panel__heading > span { font-size:.72rem; }
        #sport-section .sport-bars > div { font-size:.78rem; }
        #sport-section .sport-bars b,#sport-section .sport-months button i { background:var(--sport-accent); }
        #sport-section .sport-months button:is(:hover,.is-active),
#sport-section .sport-months button::before { background:color-mix(in srgb,var(--sport-accent) 10%,transparent); }
        #sport-section .sport-months button.is-active i { box-shadow:0 0 0 2px color-mix(in srgb,var(--sport-accent) 35%,transparent); }
        #sport-section #modal-sport { --modal-accent:var(--sport-accent); }
        #sport-section .todo-input:focus { border-color:var(--sport-accent); }
        #sport-section .sport-completed-field input { accent-color:var(--sport-accent); }
        #sport-section #modal-sport .sport-add { padding:.625rem 1rem; border:0; border-radius:9px; font-size:.875rem; font-weight:700; box-shadow:none; }
        @media(max-width:900px) { #sport-section .sport-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #sport-section .sport-toolbar { flex-wrap:wrap; } #sport-section .sport-toolbar__actions { margin-left:auto; } }
        @media(max-width:640px) { #sport-section .sport-grid { grid-template-columns:1fr; } #sport-section .todo-tabs { display:flex; width:100%; } #sport-section .todo-tab { flex:1; padding:.6rem .5rem; font-size:.72rem; } #sport-section .sport-toolbar__actions { } #sport-section .sport-chart-grid { grid-template-columns:1fr; } #sport-section .sport-card { min-height:0; } }
        @media(prefers-reduced-motion:reduce) { #sport-section .sport-card,#sport-section .sport-card::before,#sport-section .home-card-geometry,#sport-section .home-card-geometry::before { transition:none; } #sport-section .sport-card:is(:hover,:focus-within) { transform:none; } }

/* Section: library-identity-styles */
:root[data-style^="flux"] #gaming-section { --library-color:#c0afda; --library-accent:#c0afda; --library-ink:#775495; --library-shape:25% 5% 25% 5%; --library-angle:45deg; }
        :root[data-style^="flux"] #livres-section { --library-color:#dbacae; --library-accent:#dbacae; --library-ink:#97585e; --library-shape:5rem 5rem .5rem .5rem; --library-angle:-25deg; }
        :root[data-style="flux-light"] :is(#gaming-section,#livres-section) { --library-accent:var(--library-ink); }
        :root[data-style^="flux"] .library-page-header { isolation:isolate; min-height:0; }
        :root[data-style^="flux"] .library-page-header .flux-title { margin-left:-.045em; font-family:inherit; font-size:clamp(3rem,8vw,6rem); font-weight:400!important; letter-spacing:-.06em!important; line-height:.9; }
        :root[data-style^="flux"] .library-page-header .flux-page-header__intro { margin:1.5rem 0 .5rem; max-width:34rem; font-size:var(--page-intro-size); line-height:1.7; }

:is(#gaming-section,#livres-section) :is(button,select):focus-visible { outline:2px solid var(--library-accent); outline-offset:3px; }
        :root[data-style^="flux"] .library-workspace-bar { padding:.5rem 0; margin:1rem 0 1.25rem; flex-wrap:wrap; }
        :root[data-style^="flux"] .library-workspace-bar .todo-tabs { padding:.3rem; gap:0; border:0; border-radius:999px; background:var(--flux-surface); }
        .library-workspace-bar .todo-tab { min-height:0; padding:.6rem 1rem; font-size:.78rem; font-weight:700; }
        :root[data-style^="flux"] :is(#btn-sort-books,#btn-reset-filter,#btn-reset-filter-books) { font-size:.77rem; font-weight:550; text-transform:none; letter-spacing:0; }
        :root[data-style^="flux"] .library-stats-card { border:1px solid var(--flux-line); border-radius:14px; background:var(--flux-surface); box-shadow:none; backdrop-filter:none; }
        .library-stats-card > button { padding:1.25rem; }
        :root[data-style^="flux"] .library-stats-card > button > div > div:first-child { padding:.65rem; border-radius:9px; color:var(--library-accent); background:color-mix(in srgb,var(--library-accent) 10%,transparent); }
        :root[data-style^="flux"] .library-stats-card :is(#header-total-games,#header-total-books) { color:var(--flux-text); font-weight:400; }
        .library-stats-card .uppercase { text-transform:none; letter-spacing:0; font-weight:550; }
        :root[data-style^="flux"] .library-stats-card :is(#stats-container-games,#stats-container-books) .grid > div { min-width:0; border:1px solid var(--flux-line); background:var(--flux-bg); border-radius:9px; }
        :is(#gaming-section,#livres-section) .modal-base { --modal-accent:var(--library-accent); padding:1.5rem; }
        :is(#gaming-section,#livres-section) .modal-base :is(input,textarea,select) { border-radius:.65rem; padding:.72rem .8rem; }

        :is(#gaming-section,#livres-section) .modal-base :is(.btn-submit-gaming,.btn-submit-bonus) { border:0; border-radius:9px; background:var(--library-color); color:#252b19; }
        @media(max-width:640px) {
            #sport-section .sport-toolbar__actions { justify-content:space-between; }
            .library-workspace-bar .todo-tabs { width:100%; }
            .library-workspace-bar .todo-tab { flex:1; padding:.6rem .5rem; }
            :root[data-style^="flux"] .library-controls { gap:.5rem; }
        }
        #gaming-section .library-content-grid { --library-accent:#9a74f6; }
        #livres-section .library-content-grid { --library-accent:#df6380; }

/* Section: accounts-identity-styles */
#comptes-section { --accounts-color:#8fc6ad; --accounts-accent:#8fc6ad; --account-ring-track:color-mix(in srgb,var(--flux-muted) 28%,var(--flux-surface)); }

:root[data-style^="flux"] #comptes-section { display:flex; flex-direction:column; gap:1.5rem; }
#comptes-section > :not(dialog) { margin-top:0; margin-bottom:0; }
:root[data-style^="flux"] #comptes-section > .flux-page-header { isolation:isolate; min-height:0; }
:root[data-style^="flux"] #comptes-section .flux-title { margin-left:-.045em; font-family:inherit; }
:root[data-style^="flux"] #comptes-section .flux-page-header__intro { max-width:34rem; }

.accounts-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.accounts-overview article { display:flex; flex-direction:column; gap:.65rem; padding:1.25rem; border:1px solid var(--flux-line); border-radius:14px; background:var(--flux-surface); min-width:0; }
.accounts-overview span { color:var(--flux-muted); font-size:.75rem; }
.accounts-overview strong { color:var(--flux-text); font-size:clamp(1.25rem,2.4vw,1.9rem); font-weight:400; letter-spacing:-.045em; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.accounts-overview small { color:var(--flux-muted); font-size:.68rem; }
#comptes-section #stats-card { border:1px solid var(--flux-line); border-radius:14px; box-shadow:none; }
#stats-card > button { padding:1rem 1.25rem; }
#stats-card > button > div > div:first-child { padding:.65rem; border-radius:9px; color:var(--accounts-accent); background:color-mix(in srgb,var(--accounts-accent) 10%,transparent); }
#comptes-section #header-total-amount { color:var(--accounts-accent); font-size:1.6rem; font-weight:400; }
#stats-card .uppercase { text-transform:none; letter-spacing:0; font-weight:500; }
#stats-container .grid > div { min-width:0; border:1px solid var(--flux-line); background:var(--flux-bg); }
#stats-container .tabular-nums { overflow-wrap:anywhere; }
#comptes-section > .flex { gap:1rem; padding:.5rem 0; }

#comptes-section :is(#btn-add-account,#btn-add-loan) { --create-accent:var(--accounts-color); color:var(--site-control-ink)!important; }
#comptes-section #btn-reset-month { --create-accent:#dbacae; }
#comptes-section :is(button,a,input,select,textarea):focus-visible { outline:2px solid var(--accounts-accent); outline-offset:3px; }

.accounts-group { min-width:0; scroll-margin-top:7rem; }
#comptes-section .accounts-group > p:first-child,#comptes-section .accounts-group > div:first-child > div > p:first-child { color:var(--flux-text); font-size:1rem; font-weight:650; text-transform:none; }
#comptes-section .accounts-group p.text-sm { font-size:.78rem; line-height:1.6; }
#comptes-section :is(#col-current,#col-savings,#col-third-party) { margin-top:1rem; gap:.75rem; }
#comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div { position:relative; border:1px solid var(--flux-line); border-radius:14px; background:var(--flux-surface); padding:1.25rem; box-shadow:none; }
#comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div:hover { border-color:color-mix(in srgb,var(--accounts-color) 38%,var(--flux-line)); background:var(--flux-surface); }
#comptes-section :is(.edit-balance-btn,.update-loan-btn) { font-size:1.7rem; font-weight:400; letter-spacing:-.045em; color:var(--flux-text); }
#comptes-section :is(.edit-balance-btn,.update-loan-btn):hover { color:var(--accounts-accent); }
#comptes-section .account-meta { text-transform:none; letter-spacing:0; font-size:.68rem; }
#comptes-section .op-row { border-block:0; background:transparent; border-radius:6px; }

#comptes-section .op-row input { accent-color:var(--accounts-accent); }
#comptes-section .add-op-btn { text-transform:none; }

#comptes-section :is(#loans-container,#monthly-forecast-container) .text-\[9px\] { font-size:.68rem; text-transform:none; letter-spacing:0; }
#comptes-section .modal-base { --modal-accent:var(--accounts-accent); }
#comptes-section .modal-base .btn-submit-primary { border:0; border-radius:9px; }

@media(max-width:900px) { .accounts-overview { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .accounts-overview { gap:.65rem; } .accounts-overview article { padding:1rem; }

 #comptes-section > .flex { flex-direction:column-reverse; align-items:stretch; } #comptes-section #admin-buttons { justify-content:flex-start; } #stats-container .grid { gap:.65rem; } }

.home-notifications { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.25rem; } .home-notifications:not(:has(.home-notification:not([hidden]))) { display:none; } .home-notification { display:inline-flex; align-items:center; min-height:1.5rem; padding:.2rem .65rem; border-radius:999px; background:var(--card-color); color:#252b19; border:1px solid color-mix(in srgb,var(--card-ink) 30%,transparent); box-shadow:none; font-size:.72rem; line-height:1.2; letter-spacing:0; font-weight:500; font-variant-numeric:tabular-nums; }
        .home-notification[hidden] { display:none; }

@media(max-width:760px) {

        }

/* Section: compact-page-headers */
/* A quiet wordmark-sized heading leaves room for the workspace. */
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section) > .flux-page-header {
            min-height:0; padding:1rem 0 1.75rem;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section) .flux-title {
            margin:0; font-family:inherit; font-size:clamp(2rem,4vw,2.75rem); font-weight:700!important;
            letter-spacing:-.09em!important; line-height:1.1; text-transform:lowercase!important;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section) > .flux-page-header > :is(.flux-intro,.flux-page-header__intro) { display:block; margin:.5rem 0 0; max-width:38rem; font-size:.8rem; line-height:1.45; color:var(--flux-muted); }

@media(max-width:640px) {
            :root[data-style^="flux"] :is(#flux-dashboard,#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section) > .flux-page-header { padding:.5rem 0 1.25rem; }

        }

/* Section: home-shape-presence */
#flux-dashboard .home-card-geometry { width:10rem; height:10rem; right:1rem; top:-1.5rem; opacity:.56; }
        #flux-dashboard .home-card-geometry::before { width:2.8rem; height:2.8rem; opacity:.7; }

        :root[data-style="flux-light"] #flux-dashboard .home-card-geometry { opacity:.92; }

        @media(max-width:480px) {
            #flux-dashboard .home-card-geometry { width:8rem; height:8rem; right:.8rem; top:-1.5rem; }
        }

@media(max-width:760px) {
 }
/* Section: workspace-polish */
/* Match the wordmark without increasing control height. */

        .add-op-btn,.todo-subtask-add { font-family:inherit!important; font-weight:700!important; letter-spacing:-.09em!important; text-transform:none!important; }
        #comptes-section > :is(.accounts-columns,#accounts-forecast,#accounts-loans,#accounts-third-party,.accounts-personal-notes) { margin-top:.75rem; }

        :root[data-style^="flux"] #comptes-section #local-admin-toggle + div { position:relative; width:2rem; height:1rem; border-radius:999px; }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle + div::after { content:""; position:absolute; width:.75rem; height:.75rem; border-radius:50%; background:var(--flux-text); }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:checked + div { border-color:var(--accounts-color); }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:checked + div::after { background:#293c36; }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:focus-visible + div { outline:2px solid var(--accounts-accent); outline-offset:3px; }
        #livres-section .library-controls .custom-select--compact { min-width:9.5rem; }

/* Section: theme-and-access-refinement */
/* Neutral charcoal surfaces give the pastel accents room to breathe. */
        :root[data-style="flux-dark"] body {
            --flux-bg:#131313; --flux-surface:#222629; --flux-surface-hover:#2c3135;
            --flux-text:#edece6; --flux-muted:#a0a7a8; --flux-line:#373d40;
        }

        :root[data-style="flux-dark"] .home-atmosphere { --shape-opacity:.09; }
        :root[data-style="flux-dark"] #login-section::before,
        :root[data-style="flux-dark"] #login-section::after { opacity:.08; }
        :root[data-style="flux-dark"] ::-webkit-scrollbar-track { background:#131313; }
        :root[data-style="flux-dark"] ::-webkit-scrollbar-thumb { background:#454c50; }
        :root[data-style="flux-dark"] ::-webkit-scrollbar-thumb:hover { background:#5b6469; }

        /* A single, quiet access form, using the site's existing identity. */
        #login-section { justify-content:center; padding:2rem 1.25rem; }
        #login-section .login-shell { width:min(100%,22rem); grid-template-columns:minmax(0,1fr); gap:1.75rem; }
        #login-section .login-brand { display:flex; flex-direction:column; align-items:center; padding:0; text-align:center; }
        #login-section .login-favicon { display:block; width:3.5rem; height:3.5rem; margin-bottom:1rem; }
        :root[data-style^="flux"] #login-section .login-title { margin:0; font-family:inherit; font-size:2.6rem; font-weight:700!important; letter-spacing:-.09em!important; line-height:1.1; }
        .login-access-label { margin:.6rem 0 0; color:var(--flux-muted); font-size:.72rem; letter-spacing:.04em; }
        .login-company { text-align:center; padding-top:.5rem; color:var(--haven-muted); font-size:.8rem; line-height:1.7; }
        .login-company > span { color:var(--haven-text); font-weight:500; }
        .login-company p { margin:.5rem 0 .75rem; }
        .login-company a { display:inline-flex; align-items:center; gap:.4rem; color:var(--haven-accent); border-radius:4px; }
        .login-company a:hover { color:var(--haven-text); }
        .login-company a:focus-visible { outline:2px solid var(--haven-accent); outline-offset:4px; }
        .login-profile-label { display:block; margin-bottom:.6rem; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--haven-muted); }
        .login-profile { width:100%; padding:0; margin:0 0 1rem; border:0; min-width:0; }
        .login-profile-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
        .login-profile-options label { position:relative; cursor:pointer; }
        .login-profile-options input { position:absolute; opacity:0; width:1px; height:1px; }
        .login-profile-options span { display:block; padding:.65rem .8rem; text-align:center; border:1px solid var(--haven-line); border-radius:10px; background:var(--haven-bg); color:var(--haven-muted); font-size:.85rem; transition:background .2s,color .2s,border-color .2s; }
        .login-profile-options input:checked + span { background:var(--site-control-bg); color:var(--site-control-ink); border-color:var(--haven-accent); }
        .login-profile-options input:focus-visible + span { outline:2px solid var(--haven-accent); outline-offset:3px; }
        .login-profile:disabled label { cursor:default; opacity:.6; }
        body[data-access="tasks"] :is(.page-linked-notes,#mini-pomodoro,[data-flux-nav]:not([data-flux-nav="todos"])),
body[data-access="tasks"] #modal-todo .todo-field:has(:is(#todo-project,#todo-milestone,#todo-active)) { display:none!important; }
        #login-section .login-panel { padding:1.25rem; border:1px solid var(--flux-line); border-radius:14px; background:var(--flux-surface); box-shadow:0 14px 35px -28px #07110c60; }

#login-section .login-field { margin-top:1.25rem; }
        #login-section .login-field label { text-transform:none; letter-spacing:0; font-size:.72rem; font-weight:500; }
        #login-section .login-field input { height:3rem; font-size:.85rem; border-radius:.7rem; }
        #login-section .login-submit { width:2.15rem; height:2.15rem; border-radius:.5rem; }

/* Section: task-calendar-styles */
.todo-layout-toggle { display:grid; place-items:center; flex:0 0 2rem; width:2rem; height:2rem; padding:.35rem; border:1px solid var(--flux-line); border-radius:.65rem; background:color-mix(in srgb,var(--flux-text) 5%,transparent); color:var(--flux-text); }
        .todo-layout-toggle[hidden] { display:none; }
        .todo-layout-toggle svg { width:1.2rem; height:1.2rem; }
        .todo-layout-toggle:hover { background:var(--flux-surface-hover); }
        .todo-calendar-header button { padding:.5rem .85rem; border-radius:999px; color:var(--flux-muted); font-size:.78rem; }
        @media(max-width:640px) {
            #todos-section .todo-actions { min-width:0; flex-wrap:nowrap; }
            #todos-section .todo-actions .custom-select { flex:1 1 0; min-width:0; }
            #todos-section .todo-actions #btn-manage-todo-sections { flex-shrink:0; padding-inline:.4rem; }
            #todos-section .todo-actions #btn-add-todo { padding-inline:.6rem; }
        }
        .todo-calendar { min-width:0; color:var(--flux-text); }
        .todo-calendar-header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
        .todo-calendar-header h2 { font-size:1.25rem; text-transform:capitalize; }
        .todo-calendar-header button { background:var(--flux-surface); margin-left:.25rem; }
        .todo-calendar-scroll { max-width:100%; overflow-x:auto; }
        .todo-calendar table { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; }
        .todo-calendar th { padding:.65rem .25rem; color:var(--flux-muted); font-size:.7rem; font-weight:500; background:transparent; }
        .todo-calendar th { width:calc(100% / 7); }
        .todo-calendar td { height:8rem; vertical-align:top; padding:.4rem; border:solid var(--flux-line); border-width:0 1px 1px 0; background:var(--flux-bg); }
        .todo-calendar tbody tr:first-child td { border-top-width:1px; }
        .todo-calendar tbody td:first-child { border-left-width:1px; }
        .todo-calendar tbody tr:first-child td:first-child { border-top-left-radius:12px; }
        .todo-calendar tbody tr:first-child td:last-child { border-top-right-radius:12px; }
        .todo-calendar tbody tr:last-child td:first-child { border-bottom-left-radius:12px; }
        .todo-calendar tbody tr:last-child td:last-child { border-bottom-right-radius:12px; }
        .todo-calendar time { display:grid; place-items:center; width:1.7rem; height:1.7rem; margin-bottom:.35rem; font-size:.75rem; }
        .todo-calendar .is-outside { background:var(--flux-surface); }
        .todo-calendar .is-outside time { color:var(--flux-muted); }
        .todo-calendar .is-today time { border-radius:50%; background:#e4a853; color:#21180c; font-weight:700; }
        .todo-calendar-day-tasks { display:grid; gap:.35rem; }
        :root[data-style^="flux"] .todo-calendar-day-tasks { scrollbar-width:thin; scrollbar-color:color-mix(in srgb,#e4a853 38%,transparent) transparent; }
        :root[data-style^="flux"] .todo-calendar-day-tasks::-webkit-scrollbar { width:3px; height:3px; }
        :root[data-style^="flux"] .todo-calendar-day-tasks::-webkit-scrollbar-track { background:transparent; }
        :root[data-style^="flux"] .todo-calendar-day-tasks::-webkit-scrollbar-thumb { border-radius:999px; background:color-mix(in srgb,#e4a853 38%,transparent); }
        :root[data-style^="flux"] .todo-calendar-day-tasks::-webkit-scrollbar-thumb:hover { background:color-mix(in srgb,#e4a853 65%,transparent); }
        :root[data-style^="flux"] .todo-calendar-day-tasks::-webkit-scrollbar-button { display:none; width:0; height:0; }
        /* Let WebKit thumb rules control the width and rounding instead of native scrollbar styling. */
        @supports selector(::-webkit-scrollbar) {
            :root[data-style^="flux"] .todo-calendar-day-tasks { scrollbar-width:auto; scrollbar-color:auto; }
        }
        .todo-calendar-task { display:block; width:100%; padding:.45rem; text-align:left; border-left:3px solid #e4a853; border-radius:.4rem; background:var(--flux-surface-hover); color:var(--flux-text); overflow-wrap:anywhere; }
        .todo-calendar-task__title { display:block; font-size:.74rem; line-height:1.4; }
        .todo-calendar-task small { display:block; margin-top:.2rem; font-size:11px; color:var(--flux-muted); }
        .todo-calendar-task.is-completed { border-color:#20a88b; }
        .todo-calendar-task.is-completed .todo-calendar-task__title { text-decoration:line-through; color:var(--flux-muted); }
        .todo-calendar-task.is-waiting { border-color:#9a74f6; }
        .todo-calendar-undated { margin-top:1.25rem; }
        .todo-calendar-undated h3 { margin-bottom:.65rem; font-size:.85rem; }
        .todo-calendar-undated>div { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:.5rem; }
        .todo-calendar-day-heading { display:flex; align-items:center; justify-content:space-between; gap:.15rem; min-height:1.7rem; margin-bottom:.35rem; }
        .todo-calendar-day-heading time { flex-shrink:0; margin-bottom:0; }
        .todo-calendar-week { display:inline-block; padding:.12rem .35rem; border-radius:999px; background:color-mix(in srgb,var(--flux-text) 8%,transparent); color:var(--flux-muted); font-size:11px; line-height:1.3; }
        @media(max-width:640px) {
            .todo-calendar { --calendar-row-height:clamp(4.5rem,calc(65svh / var(--calendar-weeks)),7rem); }
            .todo-calendar-scroll { overflow:hidden; }
            .todo-calendar th { padding:.5rem .1rem; font-size:11px; }
            .todo-calendar td { height:var(--calendar-row-height); padding:.2rem .12rem; }
            .todo-calendar-day-heading { min-height:1.25rem; gap:0; margin-bottom:.2rem; }
            .todo-calendar-day-heading time { width:1.15rem; height:1.15rem; font-size:.65rem; }
            .todo-calendar-week { padding:.1rem .2rem; font-size:11px; }
            .todo-calendar-day-tasks { display:flex; flex-direction:column; gap:.2rem; height:calc(var(--calendar-row-height) - 1.9rem); overflow-y:auto; scrollbar-width:thin; }
            .todo-calendar-day-tasks .todo-calendar-task { flex:0 0 auto; padding:.25rem .15rem; border-left-width:2px; border-radius:.25rem; }
            .todo-calendar-day-tasks .todo-calendar-task__title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:11px; line-height:1.3; }
            .todo-calendar-day-tasks .todo-calendar-task small { font-size:11px; line-height:1.2; }
            .todo-calendar-header { gap:.5rem; margin-bottom:.65rem; }
            .todo-calendar-header h2 { font-size:1.05rem; }
            .todo-calendar-header button { padding:.45rem .55rem; font-size:.7rem; }
        }
        .todo-calendar button:focus-visible,.todo-calendar-scroll:focus-visible,.todo-layout-toggle:focus-visible { outline:2px solid #e4a853; outline-offset:2px; }

/* Section: workspaces-styles */
.workspace-section { max-width:78rem; margin:auto; padding:7rem 1.25rem 4rem; }
.workspace-section > .flux-page-header { padding:1rem 0 1.75rem; }
:root[data-style^="flux"] .workspace-section .flux-title { font-size:clamp(2rem,4vw,2.75rem); font-weight:700!important; letter-spacing:-.09em; line-height:1.1; }
.workspace-section .flux-page-header__intro { margin-top:.5rem; color:var(--flux-muted); font-size:.8rem; }
.workspace-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
.workspace-card { min-width:0; padding:1.25rem; border:1px solid var(--flux-line); border-radius:14px; background:var(--flux-surface); color:var(--flux-text); text-align:left; }
.workspace-card h2 { font-size:1.1rem; margin-bottom:.65rem; }
.workspace-card h3 { font-size:.95rem; }
.workspace-card p { font-size:.8rem; line-height:1.6; margin:.5rem 0; overflow-wrap:anywhere; }
.workspace-meta,.workspace-hint { color:var(--flux-muted); font-size:.72rem; line-height:1.6; }
.workspace-hint { margin-bottom:.8rem; }
.workspace-toolbar { display:flex; align-items:center; justify-content:space-between; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
.workspace-toolbar .workspace-toolbar { margin:0; }
.workspace-toolbar h2 { margin:0; }
.workspace-toolbar [hidden] { display:none; }
.workspace-empty { padding:1.25rem 0; color:var(--flux-muted); font-size:.8rem; }
.workspace-error { color:#e76565; margin-top:1rem; font-size:.8rem; }
.workspace-description { white-space:pre-wrap; }
.project-card { width:100%; transition:border-color .2s; }
.project-card:hover { border-color:#afbddb; }
.project-next { color:var(--flux-text); font-size:1rem!important; font-weight:600; }
.project-next small { display:block; color:var(--flux-muted); font-size:.68rem; font-weight:400; margin-bottom:.25rem; }
.project-section { margin:1.75rem 0; scroll-margin-top:6rem; }
.project-section > .workspace-toolbar h2 { font-size:1.1rem; }
.project-jumps { justify-content:flex-start; margin-top:1rem; font-size:.8rem; color:var(--flux-muted); }
.project-jumps a:hover { color:var(--flux-text); }
.project-completed { margin-top:1.25rem; }
.project-completed summary { cursor:pointer; margin-bottom:.8rem; }

.milestone-actions { display:flex; gap:.5rem; flex-wrap:wrap; font-size:.7rem; }
.milestone-actions button:disabled { opacity:.25; cursor:default; }
.workspace-form-actions { justify-content:flex-end; margin:1.5rem 0 0; }
.overview-entry { display:block; width:100%; text-align:left; padding:.7rem 0; border-bottom:1px solid var(--flux-line); }
.overview-entry:last-child { border-bottom:0; }
.overview-entry strong { display:block; font-size:.84rem; font-weight:550; overflow-wrap:anywhere; }
.overview-entry span { display:block; margin-top:.25rem; font-size:.72rem; line-height:1.5; color:var(--flux-muted); overflow-wrap:anywhere; }
.overview-entry:hover strong { color:#afbddb; }
.overview-metric { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; font-size:.8rem; }
.overview-metric strong { font-weight:550; font-variant-numeric:tabular-nums; }

.workspace-section :is(button,a):focus-visible { outline:2px solid #afbddb; outline-offset:3px; }
:is(#projects-wrapper,#properties-wrapper) .todo-content { min-width:0; overflow-wrap:anywhere; }

:is(#projects-wrapper,#properties-wrapper) .note-card :is(h2,.note-card__content) { position:relative; overflow-wrap:anywhere; }
:is(#projects-wrapper,#properties-wrapper) .note-card__edit { opacity:1; }

@media(max-width:700px) { .workspace-grid { grid-template-columns:minmax(0,1fr); }

 }

/* Section: dashboard-visual-styles */
#overview-wrapper { --dashboard-accent:#dcf68b; }

.dashboard-date { color:var(--flux-muted); font-size:.7rem; margin-bottom:1rem; letter-spacing:.08em; }

#overview-content { grid-template-columns:repeat(12,minmax(0,1fr)); align-items:stretch; }
        #overview-content .dashboard-widget { position:relative; isolation:isolate; overflow:hidden; grid-column:span 4; }
        .dashboard-widget::before { content:""; position:absolute; z-index:-1; pointer-events:none; right:-3rem; top:-4rem; width:10rem; height:10rem; border-radius:40% 60% 25% 55%; background:var(--widget-color); opacity:.07; transform:rotate(-20deg); }

.dashboard-widget-top { display:flex; align-items:center; gap:.65rem; margin-bottom:1rem; }

.dashboard-open { margin-left:auto; width:2rem; height:2rem; border-radius:9px; background:color-mix(in srgb,var(--widget-color) 9%,transparent); color:var(--widget-color); font-size:1.1rem; transition:transform .2s; }
        .dashboard-open:hover { transform:translate(2px,-2px); }
        #overview-content h2 { font-size:.88rem; color:var(--flux-muted); margin-bottom:.9rem; }
        .dashboard-number { display:flex; align-items:center; gap:1rem; margin:.4rem 0 1.1rem; }
        .dashboard-number>strong { font-size:3.7rem; font-weight:400; line-height:1; letter-spacing:-.075em; color:var(--widget-color); }
        .dashboard-number>span { font-size:.8rem; }
        .dashboard-caption { display:block; color:var(--flux-muted); font-size:.65rem; margin-top:.3rem; }

.dashboard-project { display:flex; align-items:center; gap:.9rem; width:100%; padding:.9rem 0; text-align:left; border-top:1px solid var(--flux-line); }
        .dashboard-project:first-child { border-top:0; }

#overview-notes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
        #overview-notes .overview-entry { padding:1rem; min-height:6rem; border:0; border-radius:4px 14px 14px 14px; background:color-mix(in srgb,var(--widget-color) 10%,var(--flux-surface)); }
        #overview-notes .overview-entry:nth-child(even) { background:color-mix(in srgb,#e6ad88 10%,var(--flux-surface)); }
        #overview-finance { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
        #overview-finance .overview-metric { flex-direction:column; gap:.4rem; padding:1rem; border-radius:12px; background:color-mix(in srgb,var(--widget-color) 6%,var(--flux-bg)); }
        #overview-finance .overview-metric span { font-size:.7rem; color:var(--flux-muted); }
        #overview-finance .overview-metric strong { font-size:clamp(1.15rem,2.4vw,1.8rem); font-weight:450; overflow-wrap:anywhere; }
        .dashboard-bars { display:flex; align-items:flex-end; gap:3px; height:4.5rem; margin:1rem 0 .35rem; }
        .dashboard-bars>span { flex:1; min-width:0; height:var(--bar); border-radius:4px 4px 1px 1px; background:var(--flux-line); }
        .dashboard-bars>span.has-session { background:var(--widget-color); }
        .dashboard-chart-labels { display:flex; justify-content:space-between; color:var(--flux-muted); font-size:11px; }
        #overview-content .workspace-empty { grid-column:1/-1; line-height:1.6; }
        :root[data-style="flux-light"] #overview-wrapper { --dashboard-accent:#48601c; }
:root[data-style="flux-light"] .dashboard-open,
:root[data-style="flux-light"] .dashboard-number>strong { color:var(--flux-text); }
        @media(max-width:760px) { #overview-content { grid-template-columns:minmax(0,1fr); } #overview-content .dashboard-widget { }

 }
        @media(max-width:420px) {
 #overview-content .dashboard-widget { padding:1.15rem; } }
        @media(prefers-reduced-motion:reduce) { .dashboard-open { transition:none; } .dashboard-open:hover { transform:none; } }

/* Section: project-detail-styles */
:root[data-style^="flux"] #modal-project-editor { width:min(calc(100% - 2rem),48rem); padding:0; }
        #modal-project-editor .todo-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
        #modal-project-editor .todo-field { min-width:0; }
        #modal-project-editor .todo-field:has(:is(#project-title,#project-description,#project-next_action,#project-next_action_task_id,#project-url)) { grid-column:1/-1; }
        #modal-project-editor #project-title { font-size:1.1rem; padding:.9rem; }
        #modal-project-editor textarea { min-height:10rem; resize:vertical; line-height:1.65; }
        :is(#projects-wrapper,#properties-wrapper).is-project-detail .workspace-section>.flux-page-header { display:none; }

        .project-overview { padding:.75rem 0 1.5rem; scroll-margin-top:6rem; }
        .project-heading-row { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; }
        .project-heading-row>div:first-child { min-width:0; }
        :is(#projects-wrapper,#properties-wrapper) .project-page-title { line-height:1.15; margin:.8rem 0; overflow-wrap:anywhere; }
        .project-badges { display:flex; flex-wrap:wrap; gap:.45rem; }
        .project-badges>span { padding:.25rem .65rem; border-radius:999px; font-size:.7rem; color:var(--flux-muted); background:var(--flux-surface); }
        .project-badges>span:first-child { color:var(--flux-text); background:color-mix(in srgb,#afbddb 18%,var(--flux-surface)); }
        .project-heading-actions { display:flex; flex-shrink:0; align-items:center; gap:.25rem; }
        .project-heading-actions .project-edit-button { border-radius:9px; background:var(--flux-surface); color:var(--flux-text); }
        .project-heading-actions [data-delete-project] { font-size:.68rem; }
        .project-description { max-width:52rem; color:var(--flux-muted); line-height:1.75; font-size:.9rem; margin:.5rem 0 1.25rem; overflow-wrap:anywhere; }
        .project-dates { display:flex; flex-wrap:wrap; gap:.65rem 2rem; font-size:.7rem; color:var(--flux-muted); }
        .project-dates strong { display:block; margin-top:.2rem; color:var(--flux-text); font-size:.8rem; font-weight:500; }
        .project-direction { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:1.5rem; padding:1.25rem 0; border-block:1px solid var(--flux-line); }
        .project-direction .project-next { margin:0; padding-left:1rem; border-left:3px solid #afbddb; line-height:1.5; flex:1; min-width:0; overflow-wrap:anywhere; font-size:1.15rem!important; }
        .project-facts { display:flex; flex-wrap:wrap; gap:1.25rem; }
        .project-facts>span { font-size:.65rem; color:var(--flux-muted); }
        .project-facts strong { display:block; color:var(--flux-text); font-size:1.6rem; font-weight:450; letter-spacing:-.05em; }
        .project-facts small { font-size:.9rem; color:var(--flux-muted); }
        .project-milestone-list { display:grid; gap:1.25rem; }
        .project-milestone { border:1px solid var(--flux-line); border-radius:16px; background:var(--flux-bg); overflow:hidden; }
        .project-milestone-header { display:flex; align-items:flex-start; gap:1rem; padding:1.25rem; background:color-mix(in srgb,#afbddb 7%,var(--flux-surface)); }
        .project-step-number { display:grid; place-items:center; flex:0 0 2.4rem; height:2.4rem; border-radius:10px; background:color-mix(in srgb,#afbddb 18%,var(--flux-bg)); color:var(--flux-text); font-size:.85rem; }
        .project-milestone.is-completed .project-step-number { background:color-mix(in srgb,#8fc6ad 25%,var(--flux-bg)); }
        .project-step-copy { flex:1; min-width:0; overflow-wrap:anywhere; }
        .project-step-copy h3 { font-size:1.05rem; margin-bottom:.35rem; }
        .project-step-copy p { white-space:pre-wrap; color:var(--flux-muted); line-height:1.6; font-size:.8rem; margin-bottom:.4rem; }
        .project-milestone-body { padding:1rem 1.25rem; }
        .project-add-step-task { margin-top:1rem; padding:.35rem 0; color:var(--flux-muted); font-size:.78rem; }
        .project-add-step-task:hover { color:var(--flux-text); }
        .project-unassigned { margin-top:1.75rem; padding:1rem 0; }
        .project-unassigned h3 { font-size:.95rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-milestone .todo-card { border-radius:12px; padding:1rem; }
        @media(max-width:700px) {
            .project-heading-row { flex-direction:column; gap:.5rem; }
            .project-heading-actions { align-self:flex-end; }
            .project-direction { flex-direction:column; align-items:stretch; gap:1.25rem; }
            .project-facts { justify-content:space-between; }
            .project-milestone-header { flex-wrap:wrap; padding:1rem; gap:.7rem; }
            .project-milestone-header .milestone-actions { width:100%; justify-content:flex-end; }
            .project-milestone-body { padding:1rem .75rem; }
            #modal-project-editor .todo-form-grid { grid-template-columns:minmax(0,1fr); }
        }

/* Section: project-flow-styles */
.project-overview { display:grid; grid-template-columns:minmax(0,1fr) 13rem; column-gap:2.5rem; }
        .project-heading-row { grid-column:1/-1; }
        .project-overview .project-description { max-width:none; grid-column:1; }
        .project-overview .project-dates { grid-column:2; grid-row:2; flex-direction:column; gap:.85rem; padding-left:1.25rem; border-left:1px solid var(--flux-line); }
        .project-direction { grid-column:1/-1; }
        .task-project-pill { display:inline-block; max-width:100%; padding:.2rem .55rem; border-radius:999px; background:color-mix(in srgb,#afbddb 18%,var(--flux-surface)); color:var(--flux-text); font-size:.65rem; line-height:1.4; font-weight:550; overflow-wrap:anywhere; }

        .project-task-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.4rem; align-items:start; }
        .project-task-order { display:flex; flex-direction:column; gap:.2rem; padding-top:.4rem; }
        .project-task-order button { width:1.7rem; height:1.7rem; border-radius:.4rem; color:var(--flux-muted); background:var(--flux-surface); }
        .project-task-order button:disabled { opacity:.25; cursor:default; }
        .todo-calendar-task .task-project-pill { margin-top:.25rem; font-size:11px; padding:.1rem .3rem; }
        @media(max-width:700px) { .project-overview { grid-template-columns:minmax(0,1fr); } .project-overview .project-dates { grid-column:1; grid-row:auto; flex-direction:row; border-left:0; padding-left:0; } }

/* Section: project-home-polish */
.note-project-pill { position:relative; z-index:1; margin-top:.5rem; }
        .project-jumps a { display:inline-flex; align-items:center; gap:.5rem; padding:.5rem 0; }
        .project-jumps svg { width:1rem; height:1rem; flex-shrink:0; }

@media(max-width:760px) {
 }

.project-jumps a { font-family:inherit; font-size:.8rem; font-weight:400; letter-spacing:normal; line-height:1.5; }
        .project-resource-row { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0 .75rem 1rem; }
        .project-resource-row::before { content:""; position:absolute; left:0; top:1.3rem; width:.3rem; height:.3rem; border-radius:50%; background:#afbddb; }
        .project-resource-row>div:first-child { min-width:0; overflow-wrap:anywhere; }
        .project-resource-row a { font-size:.86rem; font-weight:550; }
        .project-resource-row a:hover { color:var(--tasks-accent,var(--flux-text)); text-decoration:underline; text-underline-offset:3px; }
        .project-resource-row p { margin-top:.12rem; color:var(--flux-muted); font-size:.73rem; }
        .project-resource-row .milestone-actions { flex-shrink:0; color:var(--flux-muted); }

@media(max-width:480px) { .project-resource-row { align-items:flex-start; flex-wrap:wrap; gap:.5rem; } .project-resource-row .milestone-actions { margin-left:auto; } }

.project-completed summary { list-style:none; font-size:.95rem; color:var(--flux-text); gap:.6rem; }
        .project-completed summary::-webkit-details-marker { display:none; }
        .project-completed[open]>summary .chevron { transform:rotate(180deg)!important; }

        :is(#projects-wrapper,#properties-wrapper) .project-add-step-task { margin-top:1rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-card { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; }
        :is(#projects-wrapper,#properties-wrapper) .project-card:hover { transform:translateY(-3px); border-color:#edce83; }
        .project-card-art { position:absolute; z-index:-1; top:-2.2rem; right:1rem; width:9rem; height:9rem; border-radius:50% 14% 50% 14%; background:var(--site-control-bg); opacity:.16; transform:rotate(18deg); }
        :root[data-style="flux-light"] .project-card-art { opacity:.36; }
        .project-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
        .project-card-status { padding:.25rem .65rem; border-radius:999px; background:var(--flux-bg); color:var(--flux-muted); font-size:.68rem; }
        .project-card-open { font-size:1.3rem; color:var(--flux-muted); }
        :is(#projects-wrapper,#properties-wrapper) .project-card h2 { font-size:1.35rem; line-height:1.3; overflow-wrap:anywhere; }
        :is(#projects-wrapper,#properties-wrapper) .project-card .project-next { font-weight:500; overflow-wrap:anywhere; }
        .project-card-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem 1rem; margin-top:auto; padding-top:.85rem; border-top:1px solid var(--flux-line); font-size:.68rem; color:var(--flux-muted); }
        @media(prefers-reduced-motion:reduce) { :is(#projects-wrapper,#properties-wrapper) .project-card { transition:none; } :is(#projects-wrapper,#properties-wrapper) .project-card:hover { } }

:is(#projects-wrapper,#properties-wrapper) .todo-add { color:#252b19; }
        #modal-project-editor { --modal-accent:#edce83; }
        :is(#projects-wrapper,#properties-wrapper).is-project-detail #projects-add { display:none!important; }
        .project-completed[data-expanding="false"]>summary .chevron { transform:rotate(0deg)!important; }
        #overview-wrapper .dashboard-heading { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1rem 0 1.75rem; }
        #overview-wrapper .dashboard-heading .flux-title { margin:0; font-family:inherit; font-size:clamp(2rem,4vw,2.75rem); font-weight:700!important; letter-spacing:-.09em!important; line-height:1.1; }
        #overview-wrapper .dashboard-heading .flux-page-header__intro { margin:.5rem 0 0; font-size:.8rem; line-height:1.45; color:var(--flux-muted); }
        #overview-wrapper .dashboard-date { margin:0; border-left:2px solid #83cbd1; color:var(--flux-muted); font-size:.75rem; letter-spacing:0; }
        @media(max-width:640px) { #overview-wrapper .dashboard-heading { align-items:flex-start; flex-direction:column; gap:1rem; padding:.5rem 0 1.25rem; } }

@supports(background-clip:text) {

        }

.project-resource-row::before { transition:transform .2s; }
        .project-resource-row a:is(:hover,:focus-visible) { color:var(--flux-text); text-decoration:none; }
        .project-resource-row:has(a:is(:hover,:focus-visible))::before { transform:scale(1.4); }
        .project-resource-arrow { display:inline-flex; vertical-align:middle; margin-left:.35rem; width:.9rem; height:.9rem; color:var(--flux-muted); transition:transform .2s,color .2s; }
        .project-resource-arrow svg { width:100%; height:100%; }
        .project-resource-row a:is(:hover,:focus-visible) .project-resource-arrow { transform:translate(2px,-2px); color:var(--flux-text); }
        #overview-wrapper .dashboard-date { padding:.5rem 0; border:0; }
        @media(prefers-reduced-motion:reduce) {
.project-resource-row::before,
.project-resource-arrow { transition:none; }
.project-resource-row:has(a:is(:hover,:focus-visible))::before,
.project-resource-row a:is(:hover,:focus-visible) .project-resource-arrow { transform:none!important; }
        }

@media(max-width:640px) {

}
/* Section: project-button-pills */

:is(#projects-wrapper,#properties-wrapper) [data-move-project-task] {
            display:inline-grid; place-items:center; width:.9rem; height:1.05rem;
            min-height:0; padding:0!important; border:0!important; border-radius:0!important;
            background:transparent!important; color:var(--flux-muted)!important;
            font-family:inherit; font-size:.7rem!important; font-weight:400!important; line-height:1;
            box-shadow:none!important;
        }
        :is(#projects-wrapper,#properties-wrapper) [data-move-project-task]:hover:not(:disabled) {
            background:transparent!important; color:var(--flux-text)!important;
        }
        :is(#projects-wrapper,#properties-wrapper) .project-task-order { gap:.2rem; padding-top:.4rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-task-row { gap:.3rem; }

:root[data-style^="flux"] #dashboard-wrapper > #flux-dashboard { padding:8rem clamp(1.25rem,4vw,3rem) 1.5rem; }
        #flux-dashboard.haven-home { --home-lime:var(--haven-accent); }
        :root[data-style^="flux"] #flux-dashboard > .haven-header { align-items:center; column-gap:1.5rem; position:relative; min-height:0; padding:1rem 0 2.25rem; }
        :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title { grid-column:1; grid-row:1; margin:0; font-size:clamp(2.2rem,4.5vw,3.7rem); line-height:1.1; font-weight:500!important; letter-spacing:-.055em!important; text-transform:none!important; color:var(--haven-text); }
        #flux-dashboard #flux-dashboard-title > span { color:var(--haven-accent); }

#flux-dashboard .haven-notifications { grid-column:1/-1; gap:.5rem; margin-top:1.3rem; }
        #flux-dashboard .haven-notifications .home-notification { padding:.4rem .7rem; color:var(--haven-text); font-size:.68rem; font-weight:400; }
        #flux-dashboard .haven-notifications .home-notification::before { content:""; width:5px; height:5px; margin-right:.45rem; border-radius:50%; background:#98b68c; }
        #flux-dashboard .haven-notifications #home-today-birthday-count::before { background:#dba6b7; }
        #flux-dashboard .haven-notifications #home-today-sport-count::before { background:#e3b293; }
        #flux-dashboard .haven-focus { display:grid; }
        #flux-dashboard .haven-feature { position:relative; isolation:isolate; overflow:hidden; min-width:0; text-align:left; transition:transform .3s,box-shadow .3s; }
        #flux-dashboard .haven-feature--dashboard { background:linear-gradient(120deg,#dce6f5,#c5d4eb); color:#2c4264; }
        #flux-dashboard .haven-feature--projects { background:linear-gradient(120deg,#ece5d8,#e0d4bf); color:#574a36; }

#flux-dashboard .haven-feature-copy { display:flex; flex-direction:column; align-items:flex-start; }
        #flux-dashboard .haven-kicker { font-size:11px; letter-spacing:.12em; font-weight:500; opacity:.75; }

        #flux-dashboard .haven-feature-description { font-size:.74rem; opacity:.8; max-width:75%; }
        #flux-dashboard .haven-feature-cta { display:inline-flex; align-items:center; gap:.7rem; margin-top:1.5rem; padding:.6rem .85rem; border-radius:10px; background:#ffffff45; font-size:.72rem; font-weight:500; box-shadow:0 2px 4px #00000004; }
        #flux-dashboard .haven-feature-cta svg { width:.9rem; height:.9rem; transition:transform .3s; }
        #flux-dashboard .haven-feature:is(:hover,:focus-visible) { transform:translateY(-3px); }
        #flux-dashboard .haven-feature:is(:hover,:focus-visible) .haven-feature-cta svg { transform:translate(2px,-2px); }
        #flux-dashboard .haven-dashboard-art { position:absolute; pointer-events:none; transition:transform .6s; }
        #flux-dashboard .haven-art-ring { position:absolute; top:0; right:0; border-radius:50%; }
        #flux-dashboard .haven-art-panel { display:grid; gap:.5rem; position:absolute; border-radius:12px; box-shadow:0 12px 20px #31446115; backdrop-filter:blur(8px); }
        #flux-dashboard .haven-art-panel i { height:4px; border-radius:4px; }
        #flux-dashboard .haven-art-panel i:nth-child(2) { width:65%; }
        #flux-dashboard .haven-art-panel i:nth-child(3) { width:80%; }
        #flux-dashboard .haven-art-dot { position:absolute; top:0; left:0; width:1.5rem; height:1.5rem; border-radius:50%; background:linear-gradient(145deg,#fff,#a6bcdb); box-shadow:0 6px 10px #31446115; }
        #flux-dashboard .haven-project-art { position:absolute; pointer-events:none; transform:rotate(12deg); transition:transform .6s; }
        #flux-dashboard .haven-project-art i { position:absolute; border-radius:14px; }
        #flux-dashboard .haven-project-art i:nth-child(1) { left:2rem; top:0; }
        #flux-dashboard .haven-project-art i:nth-child(2) { left:1rem; top:1.2rem; }
        #flux-dashboard .haven-project-art i:nth-child(3) { left:0; top:2.4rem; }
        #flux-dashboard .haven-feature:hover .haven-dashboard-art { transform:rotate(-5deg) translateY(-4px); }
        #flux-dashboard .haven-feature:hover .haven-project-art { transform:rotate(6deg) translateY(-4px); }

        #flux-dashboard .haven-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
        :root[data-style^="flux"] #flux-dashboard .haven-section-heading h2 { letter-spacing:-.025em!important; color:var(--haven-text); }
        #flux-dashboard .haven-section-heading > span,#flux-dashboard .haven-section-heading p { color:var(--haven-muted); line-height:1.6; }
        #flux-dashboard .haven-section-heading p { margin-top:.3rem; }
        #flux-dashboard .haven-space-grid { display:grid; }
        #flux-dashboard .haven-space { position:relative; isolation:isolate; overflow:hidden; display:flex; flex-direction:column; align-items:stretch; min-width:0; text-align:left; padding:1.4rem; background:linear-gradient(125deg,color-mix(in srgb,var(--space-accent) 17%,var(--haven-card)),color-mix(in srgb,var(--space-accent) 5%,var(--haven-card))); color:var(--haven-text); box-shadow:inset 0 1px 0 #ffffff09,var(--haven-shadow); transition:transform .25s,border-color .25s,box-shadow .25s; }
        #flux-dashboard .haven-space-watermark { position:absolute; z-index:-1; pointer-events:none; color:var(--space-accent); transition:transform .6s,opacity .4s; }

        :root[data-style="flux-light"] #flux-dashboard .haven-space > strong { color:#253145; }
        :root[data-style="flux-light"] #flux-dashboard .haven-space .haven-description { color:#4c5b6c; }
        :root[data-style="flux-light"] #flux-dashboard .haven-space .haven-arrow { color:#41536a; opacity:.85; }
        @media(max-width:700px) { #flux-dashboard .haven-space-watermark { width:7rem; height:7rem; top:-.5rem; right:-1rem; } }
        @media(prefers-reduced-motion:reduce) { #flux-dashboard .haven-space-watermark { transform:none!important; } }
        #flux-dashboard .haven-space-top { display:flex; justify-content:flex-end; align-items:center; }

#flux-dashboard .haven-arrow { display:grid; place-items:center; width:1.2rem; height:1.2rem; color:var(--haven-muted); opacity:.65; transition:transform .25s,opacity .25s; }
        #flux-dashboard .haven-arrow svg { width:1rem; height:1rem; }
        #flux-dashboard .haven-space > strong { font-size:1rem; font-weight:500; letter-spacing:-.025em; }
        #flux-dashboard .haven-description { margin-top:.4rem; color:var(--haven-muted); font-size:.72rem; }
        #flux-dashboard .haven-space:is(:hover,:focus-visible) { transform:translateY(-3px); border-color:color-mix(in srgb,var(--space-accent) 35%,var(--haven-line)); box-shadow:0 12px 28px -19px #253c6050; }

#flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-arrow { transform:translate(2px,-2px); opacity:1; }
        #flux-dashboard .haven-links-section { position:relative; isolation:isolate; overflow:hidden; padding:1.6rem; border-radius:20px; background:linear-gradient(120deg,color-mix(in srgb,var(--haven-accent) 24%,var(--haven-card)),color-mix(in srgb,var(--haven-accent) 7%,var(--haven-card)) 85%); box-shadow:inset 0 1px 0 #ffffff08,var(--haven-shadow); }
        #flux-dashboard .haven-links-section::before { position:absolute; z-index:-1; pointer-events:none; right:-3rem; top:-5rem; width:15rem; height:15rem; border:1px solid color-mix(in srgb,var(--haven-accent) 10%,transparent); border-radius:50%; box-shadow:0 0 0 1.5rem color-mix(in srgb,var(--haven-accent) 3%,transparent),0 0 0 3rem color-mix(in srgb,var(--haven-accent) 2%,transparent); }
        #flux-dashboard .haven-section-heading > svg { width:1.5rem; height:1.5rem; color:var(--haven-muted); }

#flux-dashboard .haven-footer { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; font-size:.65rem; }
        #flux-dashboard .haven-footer > :is(p,a) { font-family:inherit; font-size:.65rem; font-weight:400; line-height:1.5; letter-spacing:normal;  white-space:nowrap;}
        #flux-dashboard .haven-footer > span {  white-space:nowrap;}

        #flux-dashboard.haven-home :is(button,a):focus-visible { outline:2px solid var(--haven-accent); outline-offset:4px; }

        @media(max-width:1000px) {
            #flux-dashboard .haven-feature { padding:1.5rem; }
            #flux-dashboard .haven-dashboard-art,#flux-dashboard .haven-project-art { right:-2.5rem; opacity:.3; }
        }
        @media(max-width:700px) {
            :root[data-style^="flux"] #dashboard-wrapper > #flux-dashboard { padding:7rem 1.25rem 1rem; }

            #flux-dashboard .haven-focus { grid-template-columns:1fr; }
            #flux-dashboard .haven-feature { min-height:16rem; }
            #flux-dashboard .haven-feature-copy > strong { font-size:1.8rem; }
            #flux-dashboard .haven-dashboard-art,#flux-dashboard .haven-project-art { right:0; opacity:.45; }
            #flux-dashboard .haven-space-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
            #flux-dashboard .haven-space { padding:1.1rem; border-radius:16px; }
            #flux-dashboard .haven-section-heading > span { display:none; }

            #flux-dashboard .haven-links-section { padding:1.25rem; }
            #flux-dashboard .haven-footer { flex-wrap:nowrap; gap:.4rem; }
            #flux-dashboard .haven-footer p { display:block; }
        }
        @media(max-width:380px) {
 #flux-dashboard .haven-space { padding:.9rem; } }
        @media(prefers-reduced-motion:reduce) {
            #flux-dashboard.haven-home *,#flux-dashboard.haven-home *::before,#flux-dashboard.haven-home *::after { transition:none!important; animation:none!important; }
#flux-dashboard .haven-feature,
#flux-dashboard .haven-space,
#flux-dashboard .haven-arrow,
#flux-dashboard .haven-feature-cta svg { transform:none!important; }
        }

/* Section: site-haven-identity */
/* Shared canvas and navigation across every workspace. */
        :root[data-style^="flux"] body { min-height:100svh;
        }

        .home-atmosphere { display:none; }
        #login-section { background:transparent; }
        #login-section::before,#login-section::after { content:none; }

#flux-dashboard .haven-links-section::before { }
        #flux-dashboard .haven-links-watermark {
            position:absolute; z-index:-1; pointer-events:none; right:-2rem; top:-3rem;
            width:19rem; height:19rem; color:var(--haven-accent);
            transform:rotate(-18deg); mask-image:linear-gradient(110deg,transparent,black 65%);
        }
        #flux-dashboard .haven-links-watermark svg { width:100%; height:100%; }
        :root[data-style="flux-light"] #flux-dashboard .haven-links-section {
            border-color:#b7c9e0;
        }

        @media(max-width:640px) {

#flux-dashboard .haven-links-watermark { right:-5rem; top:-1rem; }
        }

:root[data-style="flux-light"] #flux-dashboard .haven-space {
            border-color:color-mix(in srgb,var(--space-accent) 30%,white);
        }
        :root[data-style="flux-dark"] #flux-dashboard .haven-space {
            background:linear-gradient(125deg,color-mix(in srgb,var(--space-accent) 12%,#2a3039),#262c35);
        }

#flux-dashboard .haven-space::after,#flux-dashboard .haven-links-section::after {
            content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; border-radius:inherit;
            background:linear-gradient(125deg,transparent 10%,#17294420 100%);
            opacity:0; transition:opacity .3s ease;
        }
        #flux-dashboard .haven-space:is(:hover,:focus-visible)::after,
        #flux-dashboard .haven-links-section:is(:hover,:focus-within)::after { opacity:1; }
        :root[data-style="flux-dark"] #flux-dashboard .haven-space::after,
        :root[data-style="flux-dark"] #flux-dashboard .haven-links-section::after {
            background:linear-gradient(125deg,transparent 10%,#09111e55 100%);
        }

/* Section: projects-haven-edition */
/* Home links use the same borderless, softly tinted surface as the spaces. */
        #flux-dashboard .haven-space,
        #flux-dashboard .haven-links-section { border:0; }

:root[data-style="flux-dark"] #flux-dashboard .haven-links-section {
            background:linear-gradient(125deg,#343d4c,#262c35);
        }

        :is(#projects-wrapper,#properties-wrapper) {
            --project-accent:#c9bca2; --project-ink:#eadfc9;
            --project-panel:linear-gradient(125deg,#35352f,#252b33);
            --project-soft:color-mix(in srgb,var(--haven-accent) 8%,var(--haven-card));
            color:var(--haven-text);
        }
        :root[data-style="flux-light"] :is(#projects-wrapper,#properties-wrapper) {
            --project-accent:#9a8054; --project-ink:#68583f;
            --project-panel:linear-gradient(125deg,#eee8dc,#fbfaf7);
            --project-soft:linear-gradient(125deg,#eef2f9,#fff);
        }
        :is(#projects-wrapper,#properties-wrapper) .workspace-section { max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem; }
        :is(#projects-wrapper,#properties-wrapper) .workspace-section > .flux-page-header { padding:1rem 0 2.25rem; }
        :root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .workspace-section .flux-title {
            color:var(--haven-text); font-size:clamp(2.2rem,4.5vw,3.7rem);
            font-weight:500!important; letter-spacing:-.055em!important; line-height:1.1;
        }
        :is(#projects-wrapper,#properties-wrapper) .flux-page-header__intro { font-size:.82rem; line-height:1.6; margin-top:.7rem; }
        :is(#projects-wrapper,#properties-wrapper) .workspace-grid { gap:1.25rem; align-items:start; }
        :is(#projects-wrapper,#properties-wrapper) .workspace-section > .workspace-toolbar { margin-bottom:1.5rem; }
        :is(#projects-wrapper,#properties-wrapper) .flux-create-button,:is(#projects-wrapper,#properties-wrapper) .todo-add {
            --create-accent:#d9ccb2; background:var(--site-control-bg); color:var(--site-control-ink)!important;
            border:0!important; border-radius:10px!important; box-shadow:none!important;
            font-size:.76rem!important; font-weight:550!important; letter-spacing:0!important;
        }
        :is(#projects-wrapper,#properties-wrapper) :is(button,a):focus-visible { outline:2px solid var(--haven-accent); outline-offset:4px; }
        :is(#projects-wrapper,#properties-wrapper) .project-card { border:0; border-radius:22px; box-shadow:var(--haven-shadow);
            transition:transform .25s,box-shadow .25s;
        }
        :is(#projects-wrapper,#properties-wrapper) .project-card::after {
            content:""; position:absolute; z-index:-1; inset:0; pointer-events:none;
            background:linear-gradient(125deg,transparent,#18283e18); opacity:0; transition:opacity .3s;
        }
        :is(#projects-wrapper,#properties-wrapper) .project-card:is(:hover,:focus-visible)::after { opacity:1; }
        :is(#projects-wrapper,#properties-wrapper) .project-card:hover { box-shadow:0 14px 30px -23px #15253960; }
        :is(#projects-wrapper,#properties-wrapper) .project-card-art {
            top:-2rem; right:-1rem; width:11rem; height:11rem; border-radius:28px;
            background:transparent; border:1px solid var(--project-accent); opacity:.25;
            box-shadow:1rem 1rem 0 -1px var(--haven-card),1rem 1rem 0 0 var(--project-accent);
            transform:rotate(-18deg);
        }
        :is(#projects-wrapper,#properties-wrapper) .project-card-status,
        :is(#projects-wrapper,#properties-wrapper) .project-badges > span {
            border:0; border-radius:7px; background:color-mix(in srgb,var(--project-accent) 13%,transparent);
            color:var(--project-ink); font-size:.68rem; padding:.35rem .6rem;
        }
        :root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .project-card h2 { font-size:1.45rem; font-weight:500!important; letter-spacing:-.035em!important; }
        :is(#projects-wrapper,#properties-wrapper) .project-card .project-next { font-size:.88rem!important; }
        :is(#projects-wrapper,#properties-wrapper) .project-next small { font-size:.65rem; color:var(--haven-muted); margin-bottom:.4rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-card-footer { border-color:color-mix(in srgb,var(--project-accent) 16%,transparent); line-height:1.6; }
        :is(#projects-wrapper,#properties-wrapper) .project-overview {
            position:relative; row-gap:.5rem;
        }
        :root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .project-page-title {
            margin:1rem 0 .7rem;
        }
        :is(#projects-wrapper,#properties-wrapper) .project-description { font-size:.87rem; line-height:1.8; }
        :is(#projects-wrapper,#properties-wrapper) .project-overview .project-description,
        .genealogy-sosa-guide :is(p,li,label,dt,dd,code,input,td,button):not(.genealogy-detail *) { font-family:inherit; font-size:.82rem; font-weight:400; line-height:1.7; letter-spacing:normal; }
        .genealogy-sosa-guide .genealogy-sosa-detail { margin:0; max-height:none; overflow:visible; }
        :is(#projects-wrapper,#properties-wrapper) .project-dates { border-color:color-mix(in srgb,var(--project-accent) 20%,transparent); }
        :is(#projects-wrapper,#properties-wrapper) .project-direction { margin-top:1rem; padding:1.5rem 0 0; border-bottom:0; border-top-color:color-mix(in srgb,var(--project-accent) 20%,transparent); }
        :is(#projects-wrapper,#properties-wrapper) .project-direction .project-next { border-color:var(--project-accent); font-size:1rem!important; font-weight:500; }
        :is(#projects-wrapper,#properties-wrapper) .project-facts strong { color:var(--project-ink); font-size:1.8rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-heading-actions .project-edit-button { background:color-mix(in srgb,var(--haven-card) 55%,transparent); border-radius:10px; font-weight:500; }
        :is(#projects-wrapper,#properties-wrapper) [data-delete-project]:hover,:is(#projects-wrapper,#properties-wrapper) [data-remove-resource]:hover,
        :is(#projects-wrapper,#properties-wrapper) [data-remove-milestone]:hover { color:#d9757d; }
        :is(#projects-wrapper,#properties-wrapper) .project-jumps { gap:.5rem 1.5rem; margin:1.5rem 0 2rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-jumps a { font-size:.76rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-section { margin:2.5rem 0; }
        :root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .project-section > .workspace-toolbar h2 { font-size:1.1rem; font-weight:550!important; letter-spacing:-.025em!important; }
        :is(#projects-wrapper,#properties-wrapper) .project-milestone { border:0; border-radius:20px; background:var(--haven-card); box-shadow:var(--haven-shadow); }
        :is(#projects-wrapper,#properties-wrapper) .project-milestone-header { padding:1.5rem; background:var(--project-soft); }
        :is(#projects-wrapper,#properties-wrapper) .project-step-number { border-radius:12px; width:2.6rem; height:2.6rem; background:color-mix(in srgb,var(--haven-accent) 14%,transparent); color:var(--haven-accent); }
        :is(#projects-wrapper,#properties-wrapper) .project-milestone.is-completed .project-step-number { background:#83c6b525; color:var(--haven-text); }
        :is(#projects-wrapper,#properties-wrapper) .project-step-copy h3 { font-size:1rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-milestone-body { padding:1.25rem 1.5rem; }
        :is(#projects-wrapper,#properties-wrapper) .milestone-actions { gap:.6rem; color:var(--haven-muted); align-items:center; }
        :is(#projects-wrapper,#properties-wrapper) .milestone-actions button { padding:.35rem .2rem; }
        :is(#projects-wrapper,#properties-wrapper) .todo-card { background:color-mix(in srgb,var(--haven-bg) 70%,var(--haven-card)); border-radius:14px; box-shadow:none; }
        :is(#projects-wrapper,#properties-wrapper) .todo-card:not(.priority-high):not(.priority-medium):not(.priority-low) { border-color:transparent; }
        :is(#projects-wrapper,#properties-wrapper) .todo-card.is-waiting { background:color-mix(in srgb,var(--haven-accent) 12%,var(--haven-card)); }
        :is(#projects-wrapper,#properties-wrapper) .todo-title { font-size:.9rem; font-weight:500; }
        :is(#projects-wrapper,#properties-wrapper) .todo-description { font-size:.78rem; line-height:1.65; }
        :is(#projects-wrapper,#properties-wrapper) .project-unassigned { padding:1.5rem; border-radius:20px; background:var(--project-soft); }
        :is(#projects-wrapper,#properties-wrapper) .note-card { border:0; border-radius:20px; background:var(--project-soft); box-shadow:var(--haven-shadow); }
        :is(#projects-wrapper,#properties-wrapper) .note-card .home-card-geometry { opacity:.12; }
        :is(#projects-wrapper,#properties-wrapper) #project-resources { border-radius:20px; }
        :is(#projects-wrapper,#properties-wrapper) .project-resource-row { padding-top:1rem; padding-bottom:1rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-resource-row::before { top:1.55rem; background:var(--haven-accent); }
        :is(#projects-wrapper,#properties-wrapper) .workspace-empty { padding:1.5rem; border-radius:14px; background:color-mix(in srgb,var(--haven-card) 65%,transparent); font-size:.8rem; line-height:1.7; }
        :root[data-style^="flux"] #modal-project-editor {
            --modal-accent:var(--haven-accent); border:0!important; border-radius:22px;
            background:var(--haven-card); clip-path:inset(0 round 22px);
        }
        #modal-project-editor form { padding:2rem; }
        #modal-project-editor h2 { font-weight:500; letter-spacing:-.035em; }
        #modal-project-editor .todo-field label { font-size:.7rem; letter-spacing:0; text-transform:none; }
        #modal-project-editor .todo-input,#modal-project-editor .custom-select__trigger { border-radius:10px; font-size:.85rem; }
        #modal-project-editor .workspace-form-actions { padding-top:1rem; }
        @media(max-width:700px) {
            :is(#projects-wrapper,#properties-wrapper) .workspace-section { padding:7rem 1.25rem 2rem; }
            :is(#projects-wrapper,#properties-wrapper) .project-overview { border-radius:20px; }

            :is(#projects-wrapper,#properties-wrapper) .project-milestone-header { padding:1.1rem; }
            :is(#projects-wrapper,#properties-wrapper) .project-milestone-body { padding:1rem; }
            :is(#projects-wrapper,#properties-wrapper) .project-unassigned,:is(#projects-wrapper,#properties-wrapper) #project-resources { padding:1.1rem; }
            :is(#projects-wrapper,#properties-wrapper) .project-facts { gap:.8rem; }
            #modal-project-editor form { padding:1.4rem; }
        }
        @media(prefers-reduced-motion:reduce) {
            :is(#projects-wrapper,#properties-wrapper) .project-card,:is(#projects-wrapper,#properties-wrapper) .project-card::after { transition:none; }
            :is(#projects-wrapper,#properties-wrapper) .project-card:hover { transform:none; }
        }

/* Section: tasks-haven-edition */
/* Project detail stays open on the shared canvas. */
        :root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .workspace-section .flux-title { text-transform:none!important; }

:is(#projects-wrapper,#properties-wrapper) .project-overview {
            isolation:isolate; overflow:hidden; padding:1rem 0 1.5rem;
            background:transparent; border:0; border-radius:0; box-shadow:none;
        }
        :is(#projects-wrapper,#properties-wrapper) .project-overview::before {
            content:""; position:absolute; z-index:-1; pointer-events:none;
            width:min(48%,19rem); height:calc(100% - 2rem); max-height:19rem;
            right:2%; top:1rem;
            background:var(--project-accent); opacity:.14; transform:none;
            mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 160'%3E%3Cg transform='rotate(-12 80 80)' fill='black'%3E%3Crect x='57' y='22' width='72' height='92' rx='13' opacity='.5'/%3E%3Crect x='31' y='46' width='72' height='92' rx='13'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
        }
        :root[data-style="flux-light"] :is(#projects-wrapper,#properties-wrapper) .project-overview::before { opacity:.17; }
        :is(#projects-wrapper,#properties-wrapper) .project-dates,
:is(#projects-wrapper,#properties-wrapper) .project-direction { border:0; }
        :is(#projects-wrapper,#properties-wrapper) #project-resources { padding:0; background:transparent; border:0; box-shadow:none; }

        /* Tasks: light surfaces, legible priorities and unboxed page structure. */
        #todos-section { --tasks-accent:#aac990; --tasks-ink:#30402b; --task-wash:#aac990; }
        :root[data-style="flux-light"] #todos-section { --tasks-accent:#587547; }
        :root[data-style^="flux"] #todos-section { max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem; }
        :root[data-style^="flux"] #todos-section > .flux-page-header { position:relative; isolation:isolate; padding:1rem 0 2.25rem; }
        :root[data-style^="flux"] #todos-section .flux-title {
            color:var(--haven-text); font-size:clamp(2.2rem,4.5vw,3.7rem);
            font-weight:500!important; letter-spacing:-.055em!important; line-height:1.1; text-transform:none!important;
        }
        #todos-section #todo-page-title::first-letter { text-transform:uppercase; }
        :root[data-style^="flux"] #todos-section > .flux-page-header > .flux-page-header__intro { margin-top:.7rem; font-size:.82rem; line-height:1.6; }
        #todos-section .todo-toolbar { gap:1rem; margin:0 0 1.4rem; padding:0; }
        #todos-section .todo-tabs { background:transparent; padding:.25rem 0; gap:.3rem; border-radius:0; }
        #todos-section .todo-tabs .todo-tab { font-weight:500; }
        #todos-section .todo-tabs .todo-tab.is-active { box-shadow:none; }
        #todos-section .todo-actions { gap:.5rem; }
        #todos-section .flux-create-button,#todos-section .todo-add,
        #todos-section #modal-todo .btn-submit-bonus {
            --create-accent:#c6d9b7; background:var(--site-control-bg)!important; color:var(--site-control-ink)!important;
            border:0!important; border-radius:10px!important; box-shadow:none!important;
            font-size:.76rem!important; font-weight:550!important; letter-spacing:0!important;
        }
        #todos-section #btn-add-birthday { background:var(--site-control-bg)!important; color:var(--site-control-ink)!important; }
        #todos-section #btn-manage-todo-sections { font-size:.75rem; font-weight:500; }
        #todos-section .todo-layout-toggle { border:0; background:transparent; border-radius:8px; }
        #todos-section .todo-layout-toggle:hover { background:var(--haven-card); }
        #todos-section .todo-summary { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #todos-section .todo-list,#todos-section .todo-today-list,#todos-section .todo-section-tasks { gap:.65rem; }
        #todos-section .todo-card {
            --task-wash:var(--haven-accent);
            padding:1.1rem 1.25rem; gap:.85rem; border:0; border-radius:16px;
            background:linear-gradient(120deg,color-mix(in srgb,var(--task-wash) 6%,var(--haven-card)),var(--haven-card));
            box-shadow:var(--haven-shadow); transition:background .25s,box-shadow .25s;
        }
        #todos-section .todo-card.priority-high { --task-wash:var(--task-wash-high); --task-priority:var(--task-priority-high); }
        #todos-section .todo-card.priority-medium { --task-wash:var(--task-wash-medium); --task-priority:var(--task-priority-medium); }
        #todos-section .todo-card.priority-low { --task-wash:var(--task-wash-low); --task-priority:var(--task-priority-low); }
        #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::before {
            inset:1rem auto 1rem 0; width:3px; height:auto; border-radius:0 3px 3px 0;
            background:var(--task-priority); transform:none; opacity:.85;
        }
        #todos-section .todo-card:is(.priority-high,.priority-medium,.priority-low)::after { content:none; }
        #todos-section .todo-card:hover { background:color-mix(in srgb,var(--task-wash) 11%,var(--haven-card)); box-shadow:0 10px 24px -20px #15253955; }
        #todos-section .todo-title { font-size:.94rem; font-weight:500; line-height:1.5; }
        #todos-section .todo-description { font-size:.79rem; line-height:1.65; }
        #todos-section .todo-meta { margin-top:.6rem; gap:.4rem; font-size:.65rem; }
        #todos-section .todo-check span { border-radius:6px; border-color:color-mix(in srgb,var(--haven-muted) 65%,transparent); }
        #todos-section .todo-edit,#todos-section .todo-remove { border:0; background:transparent; }
        #todos-section .todo-subtasks { margin-top:.85rem; padding-top:.75rem; border-color:var(--haven-line); }
        #todos-section .todo-card.is-waiting { background:color-mix(in srgb,var(--haven-accent) 9%,var(--haven-card)); }
        #todos-section .todo-section-heading { gap:.6rem; padding:.3rem 0 .65rem; }
        :root[data-style^="flux"] #todos-section .todo-section-heading h2 { font-size:1rem; font-weight:550!important; letter-spacing:-.025em!important; }
        #todos-section .todo-section-heading .todo-section-count { font-size:.65rem; font-weight:400; background:var(--haven-card); }
        #todos-section .todo-empty,#todos-section .todo-section-empty { border:0; background:color-mix(in srgb,var(--haven-card) 65%,transparent); border-radius:18px; }
        #todos-section .birthday-today { background:linear-gradient(125deg,#dbacae18,var(--haven-card)); border:0; border-radius:20px; }
        #todos-section .birthday-section .birthday-card { background:var(--haven-card); }
        #todos-section .birthday-section .birthday-card:hover { background:var(--haven-card); box-shadow:var(--haven-shadow); }
        #todos-section .birthday-section .birthday-card__date::before { border-radius:10px; transform:none; }
        #todos-section .birthday-section .birthday-card:nth-child(even) .birthday-card__date::before { transform:none; }
        #todos-section .birthday-section .birthday-card__content h3 { font-size:.9rem; }
        #todos-section .birthday-section .birthday-card.is-today { box-shadow:inset 3px 0 0 #dbacae; }
        #todos-section .todo-calendar-header { margin-bottom:1.25rem; }
        #todos-section .todo-calendar-header button { border-radius:9px; background:var(--haven-card); }
        #todos-section .todo-calendar td { background:color-mix(in srgb,var(--haven-card) 70%,transparent); border-color:var(--flux-line); }
        #todos-section .todo-calendar .is-outside { background:transparent; }
        #todos-section .todo-calendar .is-today time { background:var(--site-control-bg); color:var(--site-control-ink); }
        #todos-section .todo-calendar-task { background:var(--haven-card); border-left-color:var(--tasks-accent); border-radius:7px; }
        #todos-section .todo-calendar-task.is-completed { border-left-color:#83c6b5; }
        #todos-section .todo-calendar-task.is-waiting { border-left-color:#bea4df; }
        :root[data-style^="flux"] #todos-section .modal-base { border:0!important; border-radius:22px; clip-path:inset(0 round 22px); background:var(--haven-card); }
        #todos-section .modal-base h2 { font-weight:500!important; letter-spacing:-.035em!important; }
        #todos-section .todo-field label { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #todos-section .todo-input,#todos-section .custom-select__trigger { border-radius:10px; font-size:.85rem; }
        #todos-section .custom-select--compact .custom-select__trigger { font-size:.75rem; }
        #todos-section .todo-subtask-add { font-size:.75rem; font-weight:500!important; letter-spacing:0!important; color:var(--tasks-accent); }
        @media(max-width:700px) {
            :root[data-style^="flux"] #todos-section { padding:7rem 1.25rem 2rem; }
            #todos-section .todo-toolbar { flex-direction:column; align-items:stretch; }
            #todos-section .todo-tabs { width:100%; }
            #todos-section .todo-tabs .todo-tab { flex:1; padding:.6rem .4rem; }
            #todos-section .todo-actions { width:100%; gap:.3rem; }
            #todos-section .todo-card { padding:1rem; gap:.65rem; }
            :is(#projects-wrapper,#properties-wrapper) .project-overview { padding:1rem 0; }
            :is(#projects-wrapper,#properties-wrapper) .project-card { padding:1.15rem; }
            :is(#projects-wrapper,#properties-wrapper) #project-resources { padding:0; }
        }
        @media(prefers-reduced-motion:reduce) {
            #todos-section .todo-card { transition:none; }
            #todos-section .todo-card:is(:hover,:focus-within)::before { transform:none; border-radius:0 3px 3px 0; }
        }

/* Section: shared-task-cards */
/* One task component for both workspaces. */
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) { --task-check:#aac990; }
        :root[data-style="flux-light"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) { --task-check:#587547; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .flux-create-button,
        #todos-section .todo-tabs .todo-tab {
            min-height:0; height:auto; padding:.3rem .7rem!important;
            font-size:.76rem!important; font-weight:550!important; line-height:1.5!important;
            letter-spacing:0!important; border:0!important; border-radius:10px!important;
            box-shadow:none!important;
        }
        #todos-section .todo-tabs .todo-tab.is-active {
            background:var(--site-control-bg); color:var(--site-control-ink);
        }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card {
            --task-wash:var(--haven-accent);
            position:relative; isolation:isolate; overflow:hidden;
            display:grid;
            padding:1.1rem 1.25rem 1.1rem 1.5rem; gap:.85rem;
            border:0; border-radius:16px;
            background:linear-gradient(120deg,color-mix(in srgb,var(--task-wash) 6%,var(--haven-card)),var(--haven-card));
            box-shadow:var(--haven-shadow); transition:background .25s,box-shadow .25s;
        }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.priority-high { --task-wash:var(--task-wash-high); --task-priority:var(--task-priority-high); }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.priority-medium { --task-wash:var(--task-wash-medium); --task-priority:var(--task-priority-medium); }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.priority-low { --task-wash:var(--task-wash-low); --task-priority:var(--task-priority-low); }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card:is(.priority-high,.priority-medium,.priority-low)::before {
            content:""; position:absolute; z-index:-1; pointer-events:none; border:0; transition:none;
        }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card::after { content:none; }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card:hover {
            background:color-mix(in srgb,var(--task-wash) 11%,var(--haven-card));
            box-shadow:0 10px 24px -20px #15253955;
        }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-content { min-width:0; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-title { font-size:.94rem; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-description { font-size:.79rem; line-height:1.65; overflow-wrap:anywhere; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-meta { margin-top:.6rem; gap:.4rem; font-size:.65rem; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-date { border:0!important; box-shadow:none!important; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-check { position:relative; align-self:start; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-check span {
            position:relative; width:1.35rem; height:1.35rem;
            border:1px solid color-mix(in srgb,var(--haven-muted) 65%,transparent); border-radius:6px;
        }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-check input:checked + span { background:var(--task-check); border-color:var(--task-check); }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-check input:checked + span::after {
            content:""; position:absolute; left:.42rem; top:.2rem; width:.35rem; height:.65rem;
            border:solid var(--haven-bg); border-width:0 2px 2px 0; transform:rotate(45deg);
        }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-check input:focus-visible + span { outline:2px solid var(--task-check); outline-offset:4px; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-edit,
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-remove { width:1.85rem; height:1.85rem; border:0; border-radius:0; background:transparent; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-edit:hover { background:transparent; color:var(--task-check); }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-subtasks { margin-top:.85rem; padding-top:.75rem; border-color:var(--haven-line); }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-subtasks label { align-items:flex-start; line-height:1.5; overflow-wrap:anywhere; }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-subtasks input { flex-shrink:0; margin-top:.2rem; accent-color:var(--task-check); }
        :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-completed { opacity:.72; }

:root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-waiting,
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-waiting:hover {
            filter:grayscale(1); background:#252628; box-shadow:none;
            --flux-text:#a4a4a4; --flux-muted:#969696;
        }
        :root[data-style="flux-light"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-waiting,
        :root[data-style="flux-light"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-waiting:hover {
            background:#e2e3e4; --flux-text:#606060; --flux-muted:#666;
        }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-waiting::before { opacity:.45; }
        @media(max-width:700px) {
            :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card { padding:1rem 1rem 1rem 1.3rem; gap:.65rem; }
        }
        @media(max-width:640px) {
            :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card-actions { flex-direction:column; }
            :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-edit,
            :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-remove { width:1.6rem; height:1.6rem; }
        }
        @media(prefers-reduced-motion:reduce) {
            :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card { transition:none; }
        }

/* Section: notes-haven-edition */
/* A short inset color bar replaces the full-height priority ribbon. */
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card:is(.priority-high,.priority-medium,.priority-low)::before { transform:none;
        }

        :root[data-style^="flux"] #notes-section {
            max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem;
            --notes-accent:var(--haven-accent);
        }
        :root[data-style^="flux"] #notes-section > .flux-page-header { padding:1rem 0 2.25rem; }
        :root[data-style^="flux"] #notes-section .flux-title {
            color:var(--haven-text); font-size:clamp(2.2rem,4.5vw,3.7rem);
            font-weight:500!important; letter-spacing:-.055em!important; line-height:1.1; text-transform:none!important;
        }
        #notes-section .flux-title::first-letter { text-transform:uppercase; }
        :root[data-style^="flux"] #notes-section .flux-page-header__intro { margin:.7rem 0 0; font-size:.82rem; line-height:1.6; }
        #notes-section .notes-toolbar { padding:0; margin-bottom:1.7rem; gap:.65rem; }

#notes-section .todo-tab { font-size:.75rem; font-weight:500; }
        #notes-section .note-sections { gap:2rem; }
        #notes-section .note-section-heading { padding:0; gap:.6rem; margin-bottom:1rem; }
        :root[data-style^="flux"] #notes-section .note-section-heading h2 { font-size:1rem; font-weight:550!important; letter-spacing:-.025em!important; }
        #notes-section .note-section-heading > span { background:var(--haven-card); font-size:.65rem; }
        #notes-section .notes-grid { gap:1.15rem; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card {
            --note-color:var(--card-color); min-height:13rem; padding:1.5rem 1.5rem 3rem;
            isolation:isolate; border:0; border-radius:20px;
            background:linear-gradient(130deg,color-mix(in srgb,var(--card-color) 8%,var(--haven-card)),var(--haven-card) 80%);
            box-shadow:var(--haven-shadow); transition:transform .3s,box-shadow .3s;
        }
        :root[data-style="flux-light"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card {
            --note-color:var(--card-ink);
            background:linear-gradient(130deg,color-mix(in srgb,var(--card-color) 13%,var(--haven-card)),var(--haven-card) 85%);
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card::before { content:none; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card::after {
            content:""; position:absolute; z-index:0; inset:0; pointer-events:none;
            border-radius:inherit; background:linear-gradient(120deg,transparent,#1c304c0c);
            opacity:0; transition:opacity .3s;
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) {
            background:linear-gradient(130deg,color-mix(in srgb,var(--card-color) 12%,var(--haven-card)),var(--haven-card) 80%);
            transform:translateY(-3px); box-shadow:0 14px 30px -23px #15253965;
        }
        :root[data-style="flux-light"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) {
            background:linear-gradient(130deg,color-mix(in srgb,var(--card-color) 18%,var(--haven-card)),var(--haven-card) 85%);
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within)::after { opacity:1; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card .home-card-geometry {
            width:8.5rem; height:8.5rem; right:-.5rem; top:-1.7rem;
            color:var(--card-color); opacity:.21;
            background:linear-gradient(145deg,currentColor,color-mix(in srgb,var(--card-color) 45%,transparent));
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card .home-card-geometry::before { width:2rem; height:2rem; left:-1.1rem; bottom:.4rem; opacity:.5; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card .home-card-geometry::after { opacity:.35; }
        :root[data-style="flux-light"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card .home-card-geometry { opacity:.5; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry { opacity:.32; transform:translate(-4px,4px) rotate(8deg); }
        :root[data-style="flux-light"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry { opacity:.65; }
        :root[data-style^="flux"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card h2 {
            padding-right:1.5rem; font-size:1.16rem; font-weight:550!important; letter-spacing:-.035em!important; line-height:1.4;
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card__content { margin-top:.85rem; font-size:.82rem; line-height:1.7; color:var(--haven-text); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card__edit {
            top:.7rem; right:.7rem; background:transparent; color:var(--note-color);
            opacity:.65; transform:none; border-radius:8px;
        }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .note-card__edit { opacity:1; }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card__edit:hover { background:color-mix(in srgb,var(--card-color) 18%,transparent); }
        :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card time { font-size:11px; letter-spacing:.035em; text-transform:none; color:var(--haven-muted); }
        #notes-section .note-project-pill { font-size:11px; font-weight:500; background:color-mix(in srgb,var(--card-color) 18%,transparent); }

        :root[data-style^="flux"] #notes-section .modal-base {
            --modal-accent:var(--haven-accent); border:0!important; border-radius:22px;
            clip-path:inset(0 round 22px); background:var(--haven-card);
        }
        #notes-section .modal-base h2 { font-weight:500!important; letter-spacing:-.035em!important; }
        #notes-section .modal-base .note-field-label { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #notes-section .modal-base .note-writing-field { border-radius:12px; border-color:var(--flux-line); }
        #notes-section .modal-base .note-toolbar-editor { background:transparent; gap:.3rem; padding:.6rem; }
        #notes-section .modal-base .note-format-button { border-radius:8px; }
        #notes-section .modal-base .todo-input,#notes-section .modal-base .custom-select__trigger { border-radius:10px; font-size:.85rem; }
        #notes-section #modal-note .note-save-button { background:var(--site-control-bg); color:var(--site-control-ink); padding:.3rem .7rem; border-radius:10px; font-size:.76rem; font-weight:550; line-height:1.5; }
        #notes-section .note-section-manager-row input { border-radius:10px; font-size:.82rem; }
        #notes-section :is(button,input,select):focus-visible { outline:2px solid var(--haven-accent); outline-offset:3px; }
        @media(max-width:700px) {
            :root[data-style^="flux"] #notes-section { padding:7rem 1.25rem 2rem; }
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card { padding:1.25rem 1.25rem 3rem; border-radius:18px; }
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card time { left:1.25rem; }
        }
        @media(prefers-reduced-motion:reduce) {
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card,:is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card::after,#notes-section .home-card-geometry { transition:none; }
            :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within),:is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:is(:hover,:focus-within) .home-card-geometry { transform:none; }
        }

/* Section: navigation-task-details */
/* Reserve a stable control row when sorting disappears in Birthdays. */
        #todos-section .todo-actions { min-height:2.4rem; align-items:center; }
        #todos-section .todo-tabs { min-height:2.4rem; align-items:center; }
        #todos-section :is(#btn-add-todo,#btn-add-birthday) {
            box-sizing:border-box; height:1.74rem; min-height:1.74rem;
            padding:.3rem .7rem!important; line-height:1.5!important;
            font-size:.76rem!important; border:0!important;
        }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card:is(.priority-high,.priority-medium,.priority-low)::before { opacity:1;
        }

@media(max-width:640px) {

        }

/* Section: title-ribbon-modal-polish */
:root[data-style^="flux"] .page-section h1.flux-title { text-transform:none!important; }
        .page-title-accent { color:var(--haven-accent); }
        :root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card:is(.priority-high,.priority-medium,.priority-low)::before {
            inset:-.6rem auto auto -.6rem; width:3.5rem; height:3.5rem;
            mask:none; border-radius:0; box-shadow:none;
            clip-path:polygon(0 53%,53% 0,82% 0,0 82%);
            background:linear-gradient(135deg,color-mix(in srgb,var(--task-priority) 85%,white),var(--task-priority));
        }
        :root[data-style^="flux"] :is(#modal-todo,#modal-birthday,#modal-todo-sections,#modal-note,:is(#modal-note-sections,#modal-home-link,#modal-home-sections),#modal-project-editor)
        :is(button[type="submit"],.btn-cancel,.note-save-button) {
            display:inline-flex; align-items:center; justify-content:center;
            min-height:0; height:auto; padding:.3rem .7rem!important;
            border:0!important; border-radius:10px!important; box-shadow:none!important;
            font-family:inherit!important; font-size:.76rem!important; font-weight:550!important;
            letter-spacing:0!important; line-height:1.5!important; text-transform:none!important;
        }
        :root[data-style^="flux"] :is(#modal-todo,#modal-birthday,#modal-todo-sections) button[type="submit"] { background:var(--site-control-bg)!important; color:var(--site-control-ink)!important; }
        :root[data-style^="flux"] :is(#modal-note,:is(#modal-note-sections,#modal-home-link,#modal-home-sections)) button[type="submit"],
:root[data-style^="flux"] #modal-project-editor button[type="submit"] { background:var(--site-control-bg)!important; color:var(--site-control-ink)!important; }
        :root[data-style^="flux"] :is(#modal-todo,#modal-birthday,#modal-todo-sections,#modal-note,:is(#modal-note-sections,#modal-home-link,#modal-home-sections),#modal-project-editor) .btn-cancel { background:var(--flux-surface-hover); color:var(--haven-text); }

/* Section: accounts-haven-edition */
:root[data-style^="flux"] #comptes-section {
            --accounts-color:#bddbce; --accounts-accent:#98c9b5;
            max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem;
        }
        :root[data-style="flux-light"] #comptes-section { --accounts-accent:#427863; }
        :root[data-style^="flux"] #comptes-section > .flux-page-header { padding:1rem 0 1.25rem; }
        :root[data-style^="flux"] #comptes-section .flux-title {
            font-size:clamp(2.2rem,4.5vw,3.7rem); font-weight:500!important;
            letter-spacing:-.055em!important; line-height:1.1; text-transform:none!important;
        }
        :root[data-style^="flux"] #comptes-section .flux-page-header__intro { margin:.7rem 0 0; font-size:.82rem; line-height:1.6; }

#comptes-section #btn-reset-month { background:#e4c5cf!important; color:#593f48!important; }

#comptes-section #admin-buttons { gap:.5rem; }
        #comptes-section .accounts-group > p:first-child,
        #comptes-section .accounts-group > div:first-child > div > p:first-child { font-weight:550; letter-spacing:-.025em; }
        /* Card geometry and internal layout are preserved; only their palette changes. */
        #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div,
        #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div:hover,
        #comptes-section .accounts-overview article,#comptes-section #stats-card {
            background:linear-gradient(125deg,color-mix(in srgb,var(--accounts-color) 7%,var(--haven-card)),var(--haven-card));
            border-color:color-mix(in srgb,var(--accounts-accent) 16%,var(--haven-card));
        }
        :root[data-style="flux-light"] #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div,
        :root[data-style="flux-light"] #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div:hover,
        :root[data-style="flux-light"] #comptes-section .accounts-overview article,
        :root[data-style="flux-light"] #comptes-section #stats-card {
            background:linear-gradient(125deg,color-mix(in srgb,var(--accounts-color) 8%,var(--haven-card)),var(--haven-card));
            border-color:#dce8e2;
        }
        #comptes-section .op-row { padding:.3rem .5rem; gap:.6rem; }
        #comptes-section .accordion-wrapper .flex.flex-col:has(> .op-row) { gap:.1rem; margin-top:.65rem; }
        #comptes-section .accordion-wrapper .flex.flex-col:has(> .op-row) > .mt-3 { margin-top:.5rem; }
        #comptes-section .op-row:hover { background:color-mix(in srgb,var(--accounts-accent) 9%,transparent); }
        #comptes-section .op-row .text-red-400 { color:#df8790; }
        #comptes-section .op-row .text-teal-400 { color:#94cbb4; }
        :root[data-style="flux-light"] #comptes-section .op-row .text-red-400 { color:#b34756; }
        :root[data-style="flux-light"] #comptes-section .op-row .text-teal-400 { color:#36735a; }
        #comptes-section .add-op-btn { font-size:.73rem; font-weight:500!important; letter-spacing:0!important; color:var(--accounts-accent); }

        :root[data-style^="flux"] #comptes-section .modal-base {
            --modal-accent:var(--accounts-accent);
            border:0!important; border-radius:22px; clip-path:inset(0 round 22px); background:var(--haven-card);
        }
        #comptes-section .modal-base h2 { font-weight:500!important; letter-spacing:-.035em!important; }
        #comptes-section .modal-base label { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #comptes-section .modal-base :is(input,textarea,.custom-select__trigger) { border-radius:10px; }
        :root[data-style^="flux"] #comptes-section .modal-base :is(.btn-submit-primary,.btn-cancel) {
            min-height:0; height:auto; padding:.3rem .7rem!important; border:0!important; border-radius:10px;
            font-size:.76rem; font-weight:550; line-height:1.5; letter-spacing:0; box-shadow:none;
        }
        #comptes-section .modal-base .btn-submit-primary { background:var(--accounts-color); color:var(--site-control-ink); }
        #comptes-section .modal-base .btn-cancel { background:var(--flux-surface-hover); color:var(--haven-text); }
        @media(max-width:700px) {
            :root[data-style^="flux"] #comptes-section { padding:7rem 1.25rem 2rem; }
            #comptes-section .op-row { padding:.3rem .25rem; gap:.4rem; }
        }

/* Section: page-linked-notes-styles */
.page-linked-notes { margin-top:2rem; order:5; }
        .page-linked-notes[hidden] { display:none!important; }
        .page-linked-notes > h2 { margin-bottom:1rem; font-size:1.1rem; }
        .page-linked-notes .note-card { isolation:isolate; border:0; border-radius:20px; background:var(--haven-card); }
        .page-linked-notes .note-card :is(h2,.note-card__content) { position:relative; z-index:1; }
        .page-linked-notes .note-card__edit { opacity:1; }
        .page-linked-notes .home-card-geometry { color:var(--note-color); opacity:.16; }
        .page-linked-notes .note-project-pill { position:relative; z-index:1; }

/* Section: page-note-actions-styles */
.page-linked-notes > .workspace-toolbar h2 { font-size:1.1rem; margin:0; }
        .page-note-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; }
        .page-note-actions button {
            padding:.3rem .7rem; border:0; border-radius:10px;
            background:var(--site-control-bg); color:var(--site-control-ink); font:550 .76rem/1.5 inherit;
            font-family:inherit; font-size:.76rem; font-weight:550; line-height:1.5;
        }
        .page-note-actions [data-attach-project-note],.page-note-actions [data-link-page-note],.page-note-actions [data-cancel] { background:var(--flux-surface-hover); color:var(--haven-text); }
        .page-note-actions button:disabled { opacity:.45; cursor:default; }
        .page-note-actions button:focus-visible { outline:2px solid var(--haven-accent); outline-offset:3px; }
        .page-note-picker h2 { font-size:1.3rem; margin-bottom:1.5rem; }
        .page-note-picker label { display:block; margin-bottom:.5rem; font-size:.75rem; }
        .page-note-picker .workspace-hint { margin-top:.8rem; }
        .page-note-picker .page-note-actions { justify-content:flex-end; margin-top:1.5rem; }
        .page-linked-notes .workspace-empty { grid-column:1/-1; padding:1rem 0; }

/* Games and Books: only header, controls, statistics and dialogs. */
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) {
            max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem;
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) > .library-page-header { padding:1rem 0 2rem; }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-page-header .flux-page-header__intro {
            margin:.5rem 0 0; font-size:.8rem; line-height:1.45;
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-stats-card { border-radius:20px;
            background:linear-gradient(125deg,color-mix(in srgb,var(--library-color) 12%,var(--haven-card)),var(--haven-card));
        }
        :root[data-style="flux-light"] :is(#gaming-section,#livres-section) .library-stats-card {
            background:linear-gradient(125deg,color-mix(in srgb,var(--library-color) 14%,var(--haven-card)),var(--haven-card));
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-stats-card > button > div > div:first-child {
            background:color-mix(in srgb,var(--library-color) 22%,transparent); border-radius:12px;
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-stats-card :is(#stats-container-games,#stats-container-books) .grid > div {
            border:0; border-radius:12px; background:color-mix(in srgb,var(--haven-card) 75%,transparent);
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar { }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar .todo-tabs {
            background:transparent; padding:.25rem 0; gap:.3rem; border-radius:0;
        }
        :is(#gaming-section,#livres-section) .library-workspace-bar .todo-tab {
            padding:.3rem .7rem; border:0; border-radius:10px; font-size:.76rem;
            font-weight:550; line-height:1.5; box-shadow:none;
        }
        :is(#gaming-section,#livres-section) .library-workspace-bar .todo-tab.is-active { background:var(--site-control-bg); color:var(--site-control-ink); }

:root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-controls :is(#btn-sort-books,#btn-reset-filter,#btn-reset-filter-books) {
            padding:.3rem .7rem; border:0; border-radius:10px; box-shadow:none;
            background:transparent; font-size:.76rem; font-weight:500;
        }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .modal-base {
            border:0!important; border-radius:22px; clip-path:inset(0 round 22px); background:var(--haven-card);
        }
        :is(#gaming-section,#livres-section) .modal-base :is(h2,h3) { font-weight:500!important; letter-spacing:-.035em!important; }
        :is(#gaming-section,#livres-section) .modal-base label { font-size:.7rem; text-transform:none; letter-spacing:0; }
        :is(#gaming-section,#livres-section) .modal-base :is(input,textarea,.custom-select__trigger) { border-radius:10px; }
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .modal-base :is(.btn-submit-gaming,.btn-submit-bonus,.btn-cancel) {
            padding:.3rem .7rem; border:0; border-radius:10px; box-shadow:none;
            font-size:.76rem; font-weight:550; line-height:1.5; letter-spacing:0;
        }
        :is(#gaming-section,#livres-section) .modal-base .btn-cancel { background:var(--flux-surface-hover); color:var(--haven-text); }
        @media(max-width:700px) {
            :root[data-style^="flux"] :is(#gaming-section,#livres-section) { padding:7rem 1.25rem 2rem; }

            :is(#gaming-section,#livres-section) .library-workspace-bar .todo-tab { padding:.4rem .5rem; }
        }

/* Section: sport-haven-edition */
:root[data-style^="flux"] #comptes-section .accounts-overview article,
        :root[data-style^="flux"] #comptes-section #stats-card { }
        :is(#projects-wrapper,#properties-wrapper) .project-card { min-height:0; padding:1.1rem 1.25rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-card-top { margin-bottom:.35rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-card .project-next { margin:.4rem 0 .7rem; line-height:1.45; }
        :is(#projects-wrapper,#properties-wrapper) .project-card .project-next small { margin-bottom:.15rem; }
        :is(#projects-wrapper,#properties-wrapper) .project-card-footer { margin-top:0; padding-top:.5rem; }
        :root[data-style^="flux"] #sport-section {
            max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem;
            --sport-accent:#d7af91;
        }
        :root[data-style="flux-light"] #sport-section { --sport-accent:#986744; }
        :root[data-style^="flux"] #sport-section > .flux-page-header { padding:1rem 0 2rem; }
        :root[data-style^="flux"] #sport-section .flux-page-header__intro { margin:.5rem 0 0; font-size:.8rem; line-height:1.45; }
        .sport-week-overview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-bottom:2rem; }
        .sport-week-overview article { padding:1.4rem; border-radius:20px; background:linear-gradient(125deg,#d7af911b,var(--haven-card)); }
        .sport-week-overview article:last-child { background:linear-gradient(125deg,#a4b8ee1c,var(--haven-card)); }
        .sport-week-overview article > span { display:block; margin-bottom:1rem; color:var(--haven-muted); font-size:.7rem; }
        .sport-week-overview strong { display:block; font-size:2rem; font-weight:500; letter-spacing:-.045em; }
        .sport-week-overview strong small { font-size:.75rem; font-weight:400; letter-spacing:0; }
        .sport-week-overview .sport-week-next { font-size:1.3rem; line-height:1.5; }
        .sport-week-overview p { margin-top:.5rem; font-size:.7rem; color:var(--haven-muted); line-height:1.5; }
        #sport-section .sport-toolbar { margin-bottom:1.25rem; padding:0; gap:1rem; }
        #sport-section .todo-tabs { background:transparent; padding:.25rem 0; gap:.3rem; }
        #sport-section .todo-tab { padding:.3rem .7rem; border-radius:10px; font-size:.76rem; font-weight:550; line-height:1.5; }
        #sport-section .todo-tab.is-active { background:var(--site-control-bg); color:var(--site-control-ink); box-shadow:none; }

#sport-section .todo-summary { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #sport-section .sport-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
        .sport-session-group { grid-column:1/-1; min-width:0; margin-bottom:.75rem; }
        #sport-section .sport-session-group > h2 { display:flex; align-items:center; gap:.6rem; margin-bottom:.85rem; font-size:1rem; font-weight:550!important; }
        .sport-session-group > h2 > span { font-size:.65rem; font-weight:400; color:var(--haven-muted); }
        .sport-session-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
        #sport-section .sport-card {
            min-height:0; padding:1.25rem; border:0; border-radius:20px;
            background:var(--haven-card); box-shadow:var(--haven-shadow);
        }
        #sport-section .sport-card::before { content:none; }
        #sport-section .sport-card:hover { background:color-mix(in srgb,var(--card-color) 7%,var(--haven-card)); }
        .sport-session-watermark { position:absolute; z-index:0; pointer-events:none; right:-.4rem; top:-.5rem; width:8rem; height:8rem; color:var(--card-color); opacity:.18; transform:rotate(-12deg); }
        .sport-session-watermark svg { width:100%; height:100%; }
        :root[data-style="flux-light"] .sport-session-watermark { color:var(--card-ink); opacity:.16; }
        #sport-section .sport-card__top { margin-bottom:.75rem; }
        #sport-section .sport-card__icon { width:2.2rem; height:2.2rem; border-radius:10px; }
        #sport-section .sport-card__icon svg { width:1.2rem; height:1.2rem; }
        #sport-section .sport-card h2 { font-size:1.15rem!important; font-weight:550!important; }
        #sport-section .sport-card__date { font-size:.68rem; }
        #sport-section .sport-card__comment { margin-top:.45rem; font-size:.8rem; line-height:1.6; }
        #sport-section .sport-card__footer { margin-top:1rem; padding-top:.75rem; border-color:var(--haven-line); font-size:.72rem; }
        #sport-section .sport-card__footer button { border-radius:9px; padding:.3rem .7rem; font-weight:500; }
        #sport-section .sport-empty { grid-column:1/-1; background:var(--haven-card); border-radius:20px; }
        #sport-section :is(.sport-kpis article,.sport-panel) { border:0; border-radius:20px; box-shadow:var(--haven-shadow); }
        #sport-section .sport-kpis article { min-height:8rem; }
        #sport-section .sport-chart-grid { gap:1rem; }
        :root[data-style^="flux"] #sport-section .modal-base {
            border:0!important; border-radius:22px; clip-path:inset(0 round 22px); background:var(--haven-card);
        }
        #sport-section .modal-base h2 { font-weight:500!important; letter-spacing:-.035em!important; }
        #sport-section .modal-base label { font-size:.7rem; text-transform:none; letter-spacing:0; }
        #sport-section .modal-base :is(.todo-input,.custom-select__trigger) { border-radius:10px; font-size:.85rem; }
        #sport-section #modal-sport :is(.sport-add,.btn-cancel) { padding:.3rem .7rem; border:0; border-radius:10px; font-size:.76rem; font-weight:550; line-height:1.5; box-shadow:none; }
        #sport-section #modal-sport .sport-add { background:var(--site-control-bg); color:var(--site-control-ink); }
        #sport-section #modal-sport .btn-cancel { background:var(--flux-surface-hover); color:var(--haven-text); }
        @media(max-width:700px) {
            :root[data-style^="flux"] #sport-section { padding:7rem 1.25rem 2rem; }
            .sport-week-overview { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
            .sport-week-overview article { padding:1.1rem; }
            .sport-week-overview article:last-child { grid-column:1/-1; }
            #sport-section .sport-grid,.sport-session-cards { grid-template-columns:1fr; }
            #sport-section .sport-toolbar { flex-direction:column; align-items:stretch; }
            #sport-section .todo-tabs { width:100%; }
        }

/* Section: solid-header-cards */
:root[data-style^="flux"] #comptes-section .accounts-overview article,
        :root[data-style^="flux"] #comptes-section #stats-card,
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-stats-card,
        :root[data-style^="flux"] #flux-dashboard .haven-links-section {
            background:var(--haven-card); border:0; box-shadow:var(--haven-shadow);
        }
        #comptes-section .accounts-overview article,
        #comptes-section #stats-card,
        :is(#gaming-section,#livres-section) .library-stats-card {
            position:relative; isolation:isolate; overflow:hidden;
            --header-art:var(--accounts-accent);
            --header-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='3'/%3E%3Cpath d='M3 10h18M6 15h5'/%3E%3C/g%3E%3C/svg%3E");
        }
        #gaming-section .library-stats-card {
            --header-art:var(--library-accent);
            --header-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M7 7h10c3 0 5 11 2 11-2 0-3-3-4-3H9c-1 0-2 3-4 3C2 18 4 7 7 7ZM6 11h4M8 9v4M16 10h.1M18 12h.1'/%3E%3C/g%3E%3C/svg%3E");
        }
        #livres-section .library-stats-card {
            --header-art:var(--library-accent);
            --header-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linejoin='round'%3E%3Cpath d='M12 6C9 3 5 3 2 4v15c4-1 7-1 10 1 3-2 6-2 10-1V4c-3-1-7-1-10 2Zm0 0v14'/%3E%3C/g%3E%3C/svg%3E");
        }
        #comptes-section .accounts-overview article::before,
        #comptes-section #stats-card::before,
        :is(#gaming-section,#livres-section) .library-stats-card::before {
            content:""; position:absolute; z-index:-1; pointer-events:none;
            right:2rem; top:-1.5rem; width:10rem; height:10rem;
            background:var(--header-art); opacity:.25; transform:rotate(-14deg);
            mask:var(--header-symbol) center/contain no-repeat;
        }
        #comptes-section .accounts-overview article::before { width:7rem; height:7rem; right:-.5rem; top:-.8rem; opacity:.16; }
        #flux-dashboard .haven-links-watermark,
:root[data-style="flux-light"] #flux-dashboard .haven-links-watermark { opacity:.4; }

        #flux-dashboard .haven-header .haven-notifications { align-self:start;
        }
        @media(max-width:700px) {

#flux-dashboard .haven-header .haven-notifications { grid-column:1/-1; grid-row:4; justify-content:flex-start; max-width:none; margin-top:.4rem; }
            :is(#gaming-section,#livres-section) .library-stats-card::before,
            #comptes-section #stats-card::before { right:1.5rem; width:8rem; height:8rem; }
        }

/* Section: sport-hover-home-notifications */
@media(min-width:701px) {

            #flux-dashboard .haven-header .haven-notifications {
                grid-column:1/-1; grid-row:3; justify-content:flex-start;
                max-width:none; margin-top:1.3rem;
            }
        }
        /* Use the button's own background at every size, as on mobile. */
        #sport-section .sport-months > button::before { content:none; }
        #sport-section .sport-months > button:is(:hover,.is-active) {
            background:color-mix(in srgb,var(--sport-accent) 10%,transparent);
        }
        #sport-section .sport-months > button:hover { transform:translateY(-2px); }
        #sport-section .sport-week-overview article {
            position:relative; isolation:isolate; overflow:hidden;
            background:var(--haven-card); border:0; border-radius:20px;
            box-shadow:var(--haven-shadow); --sport-summary-accent:var(--sport-accent);
            --sport-summary-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='m7 12 3 3 7-7'/%3E%3C/g%3E%3C/svg%3E");
        }
        #sport-section .sport-week-overview article:nth-child(2) {
            --sport-summary-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='3'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4M8 14h2M14 14h2M8 17h2'/%3E%3C/g%3E%3C/svg%3E");
        }
        #sport-section .sport-week-overview article:last-child {
            --sport-summary-accent:var(--haven-accent);
            --sport-summary-symbol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/g%3E%3C/svg%3E");
        }
        #sport-section .sport-week-overview article::before {
            content:""; position:absolute; z-index:-1; pointer-events:none;
            right:-.5rem; top:-.8rem; width:7rem; height:7rem;
            background:var(--sport-summary-accent); opacity:.2; transform:rotate(-14deg);
            mask:var(--sport-summary-symbol) center/contain no-repeat;
        }
        @media(prefers-reduced-motion:reduce) {
            #sport-section .sport-months > button:hover { transform:none; }
        }

/* Section: home-feature-card-shadow */
#flux-dashboard .haven-feature {
            border:0;
        }
        :root[data-style="flux-light"] #flux-dashboard .haven-feature--dashboard { --space-accent:#a4b8ee; }
        :root[data-style="flux-light"] #flux-dashboard .haven-feature--projects { --space-accent:#e4c093; }
        :root[data-style="flux-light"] #flux-dashboard .haven-feature {
            box-shadow:inset 0 1px 0 #ffffffb0,0 8px 22px -16px color-mix(in srgb,var(--space-accent) 55%,#36465b);
        }
        #flux-dashboard .haven-feature:is(:hover,:focus-visible) {
            box-shadow:0 12px 28px -19px #253c6050;
        }

/* Section: dashboard-haven-edition */
#overview-wrapper .workspace-section { max-width:80rem; padding:8rem clamp(1.25rem,4vw,3rem) 3rem; }
        #overview-wrapper .dashboard-heading { margin-bottom:.75rem; }
        #overview-content { gap:1.15rem; }
        #overview-content .dashboard-widget {
            --widget-color:#aac990; --widget-ink:#557445;
            border:0; border-radius:20px; padding:1.5rem;
            background:var(--haven-card); box-shadow:var(--haven-shadow); min-width:0;
        }
        #overview-content .dashboard-widget::before { content:none; }
        #overview-content .dashboard-widget--focus { grid-column:span 7; }
        #overview-content .dashboard-widget--overdue { grid-column:span 5; }
        #overview-content .dashboard-widget--projects { --widget-color:#d9ccb2; --widget-ink:#856e47; grid-column:span 6; }
        #overview-content .dashboard-widget--notes { --widget-color:#a4b8ee; --widget-ink:#516da5; grid-column:span 5; }
        #overview-content .dashboard-widget--finance { --widget-color:#83c6b5; --widget-ink:#3d7b68; grid-column:span 7; }
        #overview-content .dashboard-widget--sport { --widget-color:#e3b293; --widget-ink:#956341; grid-column:span 6; }
        #overview-content .dashboard-widget--books { --widget-color:#dba6b7; --widget-ink:#98566e; grid-column:span 6; }
        #overview-content .dashboard-widget--games { --widget-color:#bea4df; --widget-ink:#7c5c9f; grid-column:span 6; }
        #overview-content .dashboard-watermark {
            position:absolute; pointer-events:none; z-index:-1; right:-.7rem; top:-1rem;
            width:9rem; height:9rem; color:var(--widget-color); opacity:.19; transform:rotate(-14deg);
            mask-image:linear-gradient(black 25%,transparent 100%);
        }
        #overview-content .dashboard-watermark svg { width:100%; height:100%; }
        :root[data-style="flux-light"] #overview-content .dashboard-watermark { color:var(--widget-ink); opacity:.16; }
        #overview-content .dashboard-widget-top { margin-bottom:1.4rem; gap:1rem; align-items:center; }
        :root[data-style^="flux"] #overview-content .dashboard-widget-top h2 {
            margin:0; color:var(--haven-text); font-size:1rem; font-weight:550!important; letter-spacing:-.025em!important;
        }
        #overview-content .dashboard-open {
            display:grid; place-items:center; flex-shrink:0; background:transparent;
            color:var(--haven-muted); width:1.8rem; height:1.8rem; border-radius:8px;
        }
        #overview-content .dashboard-open svg { width:1rem; height:1rem; }
        #overview-content .dashboard-open:hover { color:var(--widget-color); }
        :root[data-style="flux-light"] #overview-content .dashboard-open:hover { color:var(--widget-ink); }
        #overview-content .dashboard-number { margin:.25rem 0 1.25rem; gap:.85rem; }
        #overview-content .dashboard-number > strong { font-size:3rem; color:var(--widget-color); font-weight:400; letter-spacing:-.06em; }
        :root[data-style="flux-light"] #overview-content .dashboard-number > strong { color:var(--widget-ink); }
        #overview-content .dashboard-number > span { font-size:.78rem; line-height:1.5; }
        #overview-content .dashboard-caption { font-size:.65rem; color:var(--haven-muted); }
        #overview-content .overview-entry {
            padding:.75rem .5rem; margin:0 -.5rem; width:calc(100% + 1rem);
            border:0; border-radius:10px; transition:background .2s;
        }
        #overview-content .overview-entry strong { font-size:.84rem; font-weight:500; line-height:1.5; }
        #overview-content .overview-entry span { font-size:.67rem; margin-top:.2rem; }
        #overview-content .overview-entry:hover { background:color-mix(in srgb,var(--widget-color) 9%,transparent); }
        #overview-content .overview-entry:hover strong { color:var(--haven-text); }
        #overview-content .dashboard-project { padding:.9rem 0; border-color:var(--haven-line); gap:.85rem; }

#overview-content #overview-notes { gap:.65rem; }
        #overview-content #overview-notes .overview-entry {
            position:relative; isolation:isolate; overflow:hidden; margin:0; width:100%;
            min-height:6rem; padding:1rem; border-radius:14px;
            background:color-mix(in srgb,var(--widget-color) 8%,var(--haven-bg));
        }
        #overview-content #overview-notes .overview-entry::before {
            content:""; position:absolute; z-index:-1; pointer-events:none; right:-1rem; top:-1rem;
            width:4rem; height:4rem; background:var(--widget-color); opacity:.2;
            border-radius:12px; transform:rotate(-22deg);
        }
        #overview-content #overview-notes .overview-entry:nth-child(even)::before { border-radius:50% 15% 50% 15%; }
        #overview-content #overview-notes .overview-entry:hover { background:color-mix(in srgb,var(--widget-color) 15%,var(--haven-bg)); }
        #overview-content #overview-finance { gap:1rem 1.5rem; }
        #overview-content #overview-finance .overview-metric { padding:.5rem 0; background:transparent; border-radius:0; }
        #overview-content #overview-finance .overview-metric strong { font-size:clamp(1.25rem,2.4vw,1.8rem); }
        #overview-content .dashboard-bars { height:4rem; gap:4px; }
        #overview-content #overview-sport > p { font-size:.72rem; line-height:1.6; color:var(--haven-muted); }
        #overview-content .workspace-empty { padding:1rem 0; font-size:.76rem; color:var(--haven-muted); }
        #overview-content :is(button,a):focus-visible { outline:2px solid var(--haven-accent); outline-offset:3px; }
        @media(max-width:760px) {
            #overview-wrapper .workspace-section { padding:7rem 1.25rem 2rem; }
            #overview-content .dashboard-widget { grid-column:1/-1; padding:1.25rem; }
        }
        @media(max-width:380px) { #overview-content #overview-notes { grid-template-columns:1fr; } }
        @media(prefers-reduced-motion:reduce) { #overview-content .overview-entry { transition:none; } }

/* Section: page-title-signature */
/* Shared two-tone signature; page content headings remain independent. */
        :root[data-style^="flux"] :is(#flux-dashboard,#overview-wrapper,:is(#projects-wrapper,#properties-wrapper),#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section)
        .flux-page-header :is(h1.flux-title,#flux-dashboard-title) {
            width:fit-content; max-width:100%; margin:0; padding:0 0 .12em;
            font-family:inherit; font-size:clamp(2.1rem,4.3vw,3.15rem);
            font-weight:600!important; letter-spacing:-.06em!important; line-height:1.16;
            color:var(--haven-text);
            text-transform:none!important; text-wrap:balance;
        }
        :root[data-style^="flux"] .flux-page-header h1 .page-title-accent,
        :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span {
            position:relative; display:inline-block; color:var(--haven-accent);
            font-weight:600; letter-spacing:-.06em;
        }
        .flux-page-header h1 .page-title-accent::after,
        #flux-dashboard #flux-dashboard-title > span::after { content:none; }
        @media(max-width:640px) {
            :root[data-style^="flux"] :is(#flux-dashboard,#overview-wrapper,:is(#projects-wrapper,#properties-wrapper),#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section)
            .flux-page-header :is(h1.flux-title,#flux-dashboard-title) {
                font-size:clamp(2rem,8vw,2.5rem);
            }
        }
#flux-dashboard .haven-footer > span > span {
            display:inline-block; margin-left:.4em;
            font-family:inherit;
            line-height:1; letter-spacing:0;
        }

/* Section: access-blue-identity */
:root[data-style^="flux"] #login-section { --login-accent:var(--haven-accent); }
#login-section .login-submit {
            background:var(--login-accent); color:var(--haven-bg);
            box-shadow:none;
        }
        #login-section .login-field input:focus {
            border-color:var(--login-accent);
            box-shadow:0 0 0 3px color-mix(in srgb,var(--login-accent) 12%,transparent);
        }
        #login-section button:focus-visible { outline-color:var(--login-accent); }
        #login-section .login-title em { color:var(--login-accent); }

/* Section: dashboard-daily-agenda */
#overview-content .dashboard-widget--focus,
        #overview-content .dashboard-widget--overdue { grid-column:span 6; }
        #overview-content .dashboard-widget--overdue { --widget-color:var(--task-wash-high); --widget-ink:var(--task-priority-high); }
        .dashboard-agenda-totals { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1.2rem; }
        .dashboard-agenda-totals > span { padding:.35rem .65rem; border-radius:9px; background:#aac99020; color:var(--haven-text); font-size:.73rem; }
        .dashboard-agenda-totals > .is-overdue { background:color-mix(in srgb,var(--task-wash-high) 15%,transparent); color:var(--task-priority-high); }
        .dashboard-agenda-scroll { max-height:25rem; overflow-y:auto; padding-right:.35rem; }
        #overview-content .dashboard-agenda-group + .dashboard-agenda-group { margin-top:1.1rem; }
        #overview-content .dashboard-agenda-group h3 { display:flex; align-items:center; gap:.5rem; margin:0 0 .5rem; font-size:.75rem; color:var(--haven-muted); }
        .dashboard-agenda-group h3 > span { font-size:.65rem; }
        .dashboard-agenda-task {
            display:grid; align-items:center;
            width:100%; padding:.7rem .65rem; text-align:left; border-radius:10px; color:var(--haven-text); background:linear-gradient(120deg,color-mix(in srgb,var(--agenda-wash,var(--widget-color)) 6%,var(--haven-card)),var(--haven-card)); margin-top:.35rem;
        }
        .dashboard-agenda-task:hover { background:color-mix(in srgb,var(--agenda-wash,var(--widget-color)) 15%,transparent); }
        .dashboard-agenda-task strong { display:block; font-size:.82rem; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
        .dashboard-agenda-task small { display:block; margin-top:.2rem; color:var(--haven-muted); font-size:.65rem; line-height:1.5; }
        .dashboard-agenda-dot { background:var(--haven-muted); }
        .dashboard-agenda-task.priority-high .dashboard-agenda-dot { background:var(--task-priority-high); }
        .dashboard-agenda-task.priority-medium .dashboard-agenda-dot { background:var(--task-priority-medium); }
        .dashboard-agenda-task.priority-low .dashboard-agenda-dot { background:var(--task-priority-low); }
        .dashboard-agenda-task.is-waiting { filter:grayscale(1); background:color-mix(in srgb,var(--haven-muted) 8%,transparent); }
        .dashboard-week-chart { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.6rem; margin:0 0 1.5rem; }
        .dashboard-week-chart > div { text-align:center; min-width:0; }
        .dashboard-week-chart strong,.dashboard-week-chart span { display:block; font-size:11px; font-weight:500; color:var(--haven-muted); }
        .dashboard-week-track { display:flex; align-items:flex-end; height:3.5rem; margin:.35rem 0; border-radius:5px; background:var(--haven-line); overflow:hidden; }
        .dashboard-week-track i { display:block; width:100%; border-radius:5px 5px 0 0; background:var(--task-wash-high); }
        #overview-content .dashboard-agenda-task { border:0; box-shadow:none; background:transparent; }
        #overview-content .dashboard-agenda-task:hover { background:color-mix(in srgb,var(--agenda-wash,var(--widget-color)) 15%,transparent); }
        .dashboard-agenda-scroll:focus-visible { outline:2px solid var(--haven-accent); outline-offset:3px; }
        @media(max-width:760px) { #overview-content .dashboard-widget--focus,#overview-content .dashboard-widget--overdue { grid-column:1/-1; } }

/* Section: note-pins */
.note-card__pin {
            position:absolute; z-index:3; top:.7rem; right:2.9rem;
            display:grid; place-items:center; width:2rem; height:2rem;
            border:0; border-radius:8px; background:transparent;
            color:var(--haven-muted); cursor:pointer;
        }
        .note-card__pin svg { width:1rem; height:1rem; transform:rotate(35deg); transition:transform .2s; }
        .note-card__pin[aria-pressed="true"] { color:var(--haven-accent); background:color-mix(in srgb,var(--haven-accent) 12%,transparent); }
        .note-card__pin[aria-pressed="true"] svg { transform:rotate(0deg); }
        .note-card__pin[aria-pressed="true"] .note-pin-head { fill:currentColor; fill-opacity:.25; }
        .note-card__pin:hover { color:var(--haven-accent); }
        .note-card__pin:focus-visible { outline:2px solid var(--haven-accent); outline-offset:2px; }
        .note-card__pin:disabled { opacity:.5; cursor:wait; }
        :root[data-style^="flux"] :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card:has(.note-card__pin) > h2 { padding-right:3.75rem; }
        @media(prefers-reduced-motion:reduce) { .note-card__pin svg { transition:none; } }

/* Section: pinned-notes-section */
#notes-section .note-section-pinned > .note-section-heading h2 { color:var(--haven-accent); }
        #notes-section .note-section-pinned > .note-section-heading > span {
            background:color-mix(in srgb,var(--haven-accent) 12%,var(--haven-card));
            color:var(--haven-accent);
        }

/* Section: dashboard-forecast-leisure */
#overview-content #overview-finance { display:block; }

        .dashboard-account + .dashboard-account { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--haven-line); }
        .dashboard-account header,.dashboard-leisure-list header { display:flex; justify-content:space-between; align-items:baseline; gap:.75rem; }
        .dashboard-account header button,.dashboard-leisure-list header button { font-size:.88rem; font-weight:550; text-align:left; overflow-wrap:anywhere; }
        .dashboard-account header > span,.dashboard-leisure-list header > span { flex-shrink:0; font-size:.65rem; color:var(--haven-muted); }
        .forecast-flows { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin:.65rem 0 1rem; }
        .forecast-flows > span { color:var(--haven-muted); font-size:.65rem; }
        .forecast-flows strong { margin-left:.4rem; font-size:.75rem; font-weight:500; color:var(--haven-text); }

#overview-content .dashboard-widget--leisure { --widget-color:#bea4df; --widget-ink:#7c5c9f; grid-column:1/-1; }
        #overview-leisure { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.75rem; }
        .dashboard-leisure-list { min-width:0; }
        .dashboard-leisure-list header { margin-bottom:.6rem; }
        .dashboard-leisure-list:last-child { --leisure-color:#bea4df; }
        .dashboard-leisure-list:first-child { --leisure-color:#dba6b7; }
        .dashboard-leisure-entry { display:grid; align-items:center; width:100%; text-align:left; }
        .dashboard-leisure-entry:hover { background:color-mix(in srgb,var(--leisure-color) 10%,transparent); }
        .leisure-dot { width:.3rem; height:.3rem; border-radius:50%; background:var(--leisure-color); }
        .dashboard-leisure-entry strong { overflow-wrap:anywhere; }
        .dashboard-leisure-entry small { margin-top:.15rem; }

        @media(max-width:640px) {
            #overview-leisure { grid-template-columns:1fr; gap:1.25rem; }

}

/* Section: dashboard-compact-details */
.forecast-single { padding:.4rem .4rem; margin:.5rem 0; }
        .forecast-single-track { height:.5rem; position:relative; border-radius:999px; background:var(--haven-line); }
        .forecast-change { position:absolute; top:0; height:100%; border-radius:999px; }
        .forecast-segment { border-radius:0; }
        /* Composition bars run right to left: round only the outside ends. */
        .forecast-segment:first-child { border-top-right-radius:999px; border-bottom-right-radius:999px; }
        .forecast-segment:last-child { border-top-left-radius:999px; border-bottom-left-radius:999px; }
        .forecast-change.is-increase { background:#83c6b5; }
        .forecast-change.is-decrease { background:#dba6b7; }

.forecast-labels { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1rem; font-size:.65rem; color:var(--haven-muted); }
        .forecast-labels > span { display:flex; align-items:center; gap:.35rem; }
        .forecast-labels strong { color:var(--haven-text); font-size:.8rem; font-weight:500; font-variant-numeric:tabular-nums; }
        .forecast-labels i { width:.45rem; height:.45rem; border-radius:50%; }

.dashboard-leisure-entry { grid-template-columns:.3rem minmax(0,1fr); padding:.375rem .5rem; gap:.7rem; border-radius:.55rem; }
        .dashboard-leisure-entry strong { font-size:.875rem; line-height:1.25; font-weight:580; }
        .dashboard-leisure-entry small { display:inline; margin:0; font-size:.75rem; line-height:1.25; color:var(--haven-muted); }
        .dashboard-leisure-entry > span:last-child { font-size:inherit; color:var(--haven-text); }
        .dashboard-next-session { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--haven-line); }
        .dashboard-next-session > span { display:block; color:var(--haven-muted); font-size:.65rem; margin-bottom:.5rem; }
        .dashboard-next-session > strong { display:block; font-size:1.05rem; font-weight:550; }
        .dashboard-next-session-meta { display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin-top:.5rem; font-size:.72rem; color:var(--haven-muted); }
        #overview-content .dashboard-next-session p { margin:.6rem 0 0; font-size:.76rem; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }

/* Section: dashboard-projects-refinement */
#overview-content .dashboard-agenda-task.is-waiting,
        #overview-content .dashboard-agenda-task.is-waiting:hover { background:transparent; color:var(--haven-muted); filter:grayscale(1); }
        #overview-content .dashboard-agenda-task.is-waiting strong { color:var(--haven-muted); }
        #overview-content .dashboard-leisure-entry {
            padding:.375rem .5rem; margin:0 0 1px; min-height:0;
            font-size:.875rem; line-height:1.25; align-items:start;
        }
        #overview-content .dashboard-leisure-entry > span:nth-child(2) { line-height:1.25; }
        #overview-content .dashboard-leisure-entry strong { font-size:.875rem; line-height:1.25; font-weight:580; }
        #overview-content .dashboard-leisure-entry small { font-size:.75rem; line-height:1.25; }
        #overview-content .dashboard-leisure-entry .leisure-dot { width:.32rem; height:.32rem; margin-top:.48rem; }
        #overview-content .dashboard-project-count { font-size:.7rem; color:var(--haven-muted); margin:0 0 .8rem; }

/* Section: dashboard-counts-milestone */
.dashboard-leisure-list header { justify-content:flex-start; gap:.6rem; }
        .dashboard-leisure-list header > span {
            display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
            min-width:1.4rem; height:1.4rem; padding:0 .35rem;
            border:0; border-radius:999px; background:var(--flux-surface);
            color:var(--flux-muted); font-size:.65rem; font-weight:400; line-height:1;
        }

/* Section: dashboard-task-priority-details */
.dashboard-agenda-task { --agenda-priority:var(--haven-muted); grid-template-columns:.2rem minmax(0,1fr); gap:.45rem; }
        .dashboard-agenda-task.priority-high { --agenda-priority:var(--task-priority-high);  --agenda-wash:var(--task-wash-high); }
        .dashboard-agenda-task.priority-medium { --agenda-priority:var(--task-priority-medium);  --agenda-wash:var(--task-wash-medium); }
        .dashboard-agenda-task.priority-low { --agenda-priority:var(--task-priority-low);  --agenda-wash:var(--task-wash-low); }
        .dashboard-agenda-dot { width:.2rem; height:.2rem; border-radius:50%; align-self:start; margin-top:.52rem; }
        .dashboard-task-priority { color:var(--agenda-priority); font-weight:550; }
        :root[data-style="flux-light"] .dashboard-agenda-task.priority-high { --agenda-priority:var(--task-priority-high);  --agenda-wash:var(--task-wash-high); }
        :root[data-style="flux-light"] .dashboard-agenda-task.priority-medium { --agenda-priority:var(--task-priority-medium);  --agenda-wash:var(--task-wash-medium); }
        :root[data-style="flux-light"] .dashboard-agenda-task.priority-low { --agenda-priority:var(--task-priority-low);  --agenda-wash:var(--task-wash-low); }
        .dashboard-agenda-task.is-waiting .dashboard-task-priority { color:var(--haven-muted); }
        .dashboard-leisure-list header > .library-section-count { background:var(--haven-bg); font-weight:650; }

/* Section: dashboard-leisure-navigation */
.dashboard-leisure-list header > button { display:inline-flex; align-items:center; gap:.4rem; }
        .dashboard-leisure-arrow { width:.9rem; height:.9rem; flex-shrink:0; color:var(--haven-muted); }
        .dashboard-leisure-list header > button:hover .dashboard-leisure-arrow { color:var(--haven-accent); }

/* Section: daily-workspace-views */
.dashboard-leisure-list header .library-section-count { background:var(--haven-bg); font-weight:650; }
        .dashboard-agenda-scroll { scrollbar-width:thin; scrollbar-color:color-mix(in srgb,var(--haven-muted) 38%,transparent) transparent; }
        .dashboard-agenda-scroll::-webkit-scrollbar { width:3px; }
        .dashboard-agenda-scroll::-webkit-scrollbar-track { background:transparent; }
        .dashboard-agenda-scroll::-webkit-scrollbar-thumb { border-radius:999px; background:color-mix(in srgb,var(--haven-muted) 38%,transparent); }
        .dashboard-agenda-scroll::-webkit-scrollbar-button { display:none; width:0; height:0; }
        @supports selector(::-webkit-scrollbar) {
            .dashboard-agenda-scroll { scrollbar-width:auto; scrollbar-color:auto; }
        }
        .todo-daily-dashboard { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; align-items:start; }
        .todo-daily-panel { --widget-color:var(--haven-accent); min-width:0; padding:1.4rem; border-radius:20px; background:var(--haven-card); box-shadow:var(--haven-shadow); }
        #todos-section .todo-daily-panel > h2 { font-size:1rem; margin-bottom:1.2rem; }
        .todo-daily-panel .dashboard-number { margin-bottom:1.2rem; }
        #todos-section .todo-daily-panel .todo-card { background:var(--haven-bg); box-shadow:none; }
        #todos-section .todo-daily-panel .todo-upcoming { margin-top:0; padding-top:0; }
        .sport-daily-chart { --widget-color:var(--sport-accent); margin-top:1rem; }
        .sport-daily-chart .dashboard-bars { height:9rem; }
        @media(max-width:900px) { .todo-daily-dashboard { grid-template-columns:minmax(0,1fr); } }
        @media(max-width:640px) {
            .todo-daily-panel { padding:1rem; }
            .dashboard-agenda-scroll { padding-right:.5rem; }
            .sport-daily-chart .dashboard-bars { gap:2px; height:7rem; }
        }

/* Section: tasks-two-column-lists */
#todo-list[data-layout="sections"] .todo-section-tasks,
        #todo-list[data-layout="completed"] {
            display:block; column-count:2; column-gap:1rem;
        }
        #todo-list:is([data-layout="sections"],[data-layout="completed"]) .todo-card {
            min-width:0; break-inside:avoid; margin-bottom:.7rem;
        }
        #todo-list[data-layout="sections"] .todo-section-empty,
        #todo-list[data-layout="completed"] > .todo-empty { column-span:all; }
        .todo-waiting-pill {
            display:inline-flex; align-items:center; padding:.28rem .55rem;
            border:0; border-radius:999px; background:color-mix(in srgb,var(--flux-muted) 16%,var(--flux-bg));
            color:var(--flux-muted); font-size:inherit; font-weight:550; line-height:1.4;
        }
        @media(max-width:900px) {
            #todo-list[data-layout="sections"] .todo-section-tasks,
            #todo-list[data-layout="completed"] { column-count:1; }
        }

/* Section: birthday-density-title-depth */
/* Compact dates, with rose and teal distinguishing the two groups. */
        #todos-section .birthday-card {
            --birthday-accent:#d77b96;
            --birthday-ink:#a43d60;
        }
        #todos-section .birthday-card.has-tag {
            --birthday-accent:#55b8a1;
            --birthday-ink:#246f5e;
        }
        #todos-section .birthday-card,
        #todos-section .birthday-section .birthday-card {
            grid-template-columns:2.25rem minmax(0,1fr) auto;
            gap:.65rem; padding:.5rem .65rem; min-height:0;
            border:0; border-radius:11px;
            background:color-mix(in srgb,var(--birthday-accent) 15%,var(--haven-card));
            box-shadow:none;
        }
        #todos-section .birthday-card:is(:hover,:focus-within),
        #todos-section .birthday-section .birthday-card:is(:hover,:focus-within) {
            background:color-mix(in srgb,var(--birthday-accent) 23%,var(--haven-card));
            box-shadow:none;
        }
        #todos-section .birthday-card .birthday-card__date {
            width:2.25rem; height:2.25rem; color:var(--birthday-ink);
            background:color-mix(in srgb,var(--birthday-accent) 32%,var(--haven-card));
            border-radius:8px;
        }
        #todos-section .birthday-card .birthday-card__date::before { content:none; }
        #todos-section .birthday-card .birthday-card__date strong { font-size:1.1rem; }
        #todos-section .birthday-card .birthday-card__date span { font-size:11px; }
        #todos-section .birthday-card .birthday-card__content h3 { margin:0; font-size:.86rem; }
        #todos-section .birthday-card .birthday-card__content p { font-size:.68rem; margin:0; }
        #todos-section .birthday-card .birthday-card__edit { width:1.65rem; height:1.65rem; }
        #todos-section .birthday-card.is-today { box-shadow:inset 3px 0 0 var(--birthday-accent); }
        #todos-section .birthday-card.is-today .birthday-card__date {
            background:var(--birthday-accent); color:#172c28;
        }
        :root[data-style="flux-dark"] #todos-section .birthday-card { --birthday-ink:#f0adc2; }
        :root[data-style="flux-dark"] #todos-section .birthday-card.has-tag { --birthday-ink:#95dfcb; }

        /* A quiet blue wash gives the existing heading its own visual anchor. */
        .flux-page-header :is(h1.flux-title,#flux-dashboard-title) {
            position:relative; isolation:isolate;
        }
        .flux-page-header :is(h1.flux-title,#flux-dashboard-title)::before {
            content:""; position:absolute; z-index:-1; pointer-events:none;
            left:-.2em; top:-.08em; width:1.35em; height:1.2em;
            border-radius:32% 68% 60% 40% / 45% 40% 60% 55%;
            transform:rotate(-14deg);
            background:linear-gradient(135deg,color-mix(in srgb,var(--haven-accent) 19%,transparent),color-mix(in srgb,var(--haven-accent) 3%,transparent));
        }
        @supports (background-clip:text) {
            :root[data-style^="flux"] .flux-page-header h1 .page-title-accent,
            :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span {
                background:linear-gradient(115deg,color-mix(in srgb,var(--haven-accent) 80%,var(--haven-text)),var(--haven-accent) 55%,color-mix(in srgb,var(--haven-accent) 65%,var(--haven-text)));
                background-clip:text; color:transparent;
            }
        }
        @media(forced-colors:active) {
            .flux-page-header :is(h1.flux-title,#flux-dashboard-title)::before { content:none; }
            :root[data-style^="flux"] .flux-page-header h1 .page-title-accent,
            :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span { background:none; color:CanvasText; }
        }

/* Section: dashboard-accounts-density */
#overview-finance .dashboard-account + .dashboard-account { margin-top:.85rem; padding-top:.85rem; }
        #overview-finance .forecast-flows { gap:.35rem 1.25rem; margin:.4rem 0 .45rem; }

        #overview-finance .forecast-remaining { display:block; color:var(--haven-muted); font-size:.65rem; line-height:1.4; text-align:right; }
        #overview-finance .forecast-labels { gap:.35rem .8rem; }

/* Section: dashboard-current-balance */
#overview-finance .dashboard-account header { align-items:center; flex-wrap:wrap; gap:.35rem 1rem; }
        #overview-finance .dashboard-account header > button { flex:1 1 8rem; min-width:0; }
        .dashboard-current-balance { margin-left:auto; max-width:100%; text-align:right; }
        .dashboard-current-balance small { display:block; margin-bottom:.12rem; color:var(--haven-muted); font-size:11px; line-height:1.4; }
        .dashboard-current-balance strong { display:block; color:var(--haven-text); font-weight:400; letter-spacing:-.045em; line-height:1.15; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }

/* Section: dashboard-account-details */
.dashboard-current-balance strong { font-size:clamp(1.2rem,2vw,1.5rem); }
        .dashboard-account-meta { display:block; margin-top:.15rem; color:var(--haven-muted); font-size:.65rem; font-weight:400; line-height:1.4; }
        #overview-finance .forecast-single { margin:.15rem 0; padding:0 .4rem .2rem; }
        #overview-finance .forecast-remaining { margin-bottom:.2rem; }
        #overview-finance .forecast-labels { align-items:baseline; padding-inline:.4rem; }
        #overview-finance .forecast-labels .forecast-flows { margin:0; gap:.25rem .8rem; }
        #overview-finance .forecast-labels > span { margin-left:auto; }
        #overview-finance .forecast-flows strong { font-size:.72rem; margin-left:.25rem; }

/* Section: account-forecast-harmony */
#overview-finance .forecast-single { margin-top:.65rem; }
        .account-forecast-heading { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem 1rem; }
        .account-forecast-identity { flex:1 1 9rem; min-width:0; }
        .account-forecast-name { display:flex; align-items:center; gap:.4rem; }
        .account-forecast-name .chevron { flex-shrink:0; }
        #comptes-section .account-forecast-name h3 { font-size:.95rem; font-weight:550!important; overflow-wrap:anywhere; }
        #comptes-section .account-forecast-header .edit-balance-btn { display:block; margin-left:auto; font-size:clamp(1.2rem,2vw,1.5rem); font-weight:400; line-height:1.15; letter-spacing:-.045em; text-align:right; }
        .account-forecast-header .forecast-single { margin:.65rem 0 .15rem; padding:0 .4rem .2rem; }
        .account-forecast-header .forecast-remaining { display:block; margin-bottom:.2rem; color:var(--haven-muted); font-size:.65rem; line-height:1.4; text-align:right; }
        .account-forecast-header .forecast-labels { align-items:baseline; padding-inline:.4rem; gap:.35rem .8rem; }
        .account-forecast-header .forecast-flows { margin:0; gap:.25rem .8rem; }
        .account-forecast-header .forecast-labels > span { margin-left:auto; }
        .account-forecast-header .forecast-flows strong { font-size:.72rem; margin-left:.25rem; }

/* Section: accounts-borderless-finance */
:root[data-style^="flux"] #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div,
        :root[data-style^="flux"] #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div:hover {
            border:0!important; background:var(--haven-card); box-shadow:var(--haven-shadow);
        }
        #comptes-section .finance-card-title { font-size:.95rem; font-weight:550!important; line-height:1.4; overflow-wrap:anywhere; }
        #comptes-section .dashboard-current-balance .update-loan-btn { display:block; margin-left:auto; font-size:clamp(1.2rem,2vw,1.5rem); font-weight:400; line-height:1.15; letter-spacing:-.045em; text-align:right; }
        .finance-progress { margin-top:.7rem; padding-inline:.4rem; }
        .finance-progress-caption { margin-bottom:.25rem; text-align:right; color:var(--haven-muted); font-size:.65rem; }
        .finance-card-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.35rem .8rem; margin-top:.4rem; color:var(--haven-muted); font-size:.65rem; }
        .finance-card-footer strong { color:var(--haven-text); font-size:.75rem; font-weight:500; }
        .provision-footer { margin-top:.85rem; }
        #comptes-section .dashboard-account-meta :is(.account-type,.account-bank) { background:none; padding:0; border:0; border-radius:0; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-blue-400 { color:#426da9; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-teal-400 { color:#257c69; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta :is(.text-amber-400,.text-amber-600) { color:#996720; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-purple-400 { color:#8656ac; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-pink-400 { color:#b54f85; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-emerald-400 { color:#217c59; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-red-400 { color:#b94e58; }
        :root[data-style="flux-light"] #comptes-section .dashboard-account-meta .text-indigo-400 { color:#6564ae; }
        :root[data-style="flux-dark"] #comptes-section .dashboard-account-meta .text-cyan-600 { color:#72c2d6; }
        :root[data-style="flux-dark"] #comptes-section .dashboard-account-meta .text-amber-600 { color:#dbb576; }

/* Section: loans-dialogs-links-refinement */
#loans-container .finance-progress .forecast-change { background:var(--haven-accent); }
        :root[data-style^="flux"] dialog.modal-base {
            position:fixed; inset:0; margin:auto;
            max-height:90vh; max-height:90svh; overflow-y:auto;
        }

/* Section: accounts-admin-toggle */
:root[data-style^="flux"] #comptes-section #local-admin-toggle + div {
            border:0; box-shadow:none;
        }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:checked + div {
            border:0; background:var(--accounts-color);
        }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle + div::after {
            top:2px; left:2px;
        }
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:checked + div::after {
            transform:translateX(1rem);
        }

/* Section: admin-stability-birthday-lists */
:root[data-style^="flux"] #comptes-section #local-admin-toggle + div,
        :root[data-style^="flux"] #comptes-section #local-admin-toggle:checked + div {
            background:color-mix(in srgb,var(--flux-muted) 55%,var(--flux-surface));
        }
        #comptes-section #admin-buttons.button-hidden {
            display:flex; visibility:hidden; pointer-events:none; transform:none;
        }
        #comptes-section #admin-buttons.button-visible { visibility:visible; transform:none; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-grid { gap:1px 1.25rem; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card {
            --birthday-ink:#d992a8;
            grid-template-columns:3.8rem minmax(0,1fr) auto; gap:.6rem;
            padding:.375rem .5rem; border:0; border-radius:.55rem;
            background:transparent; box-shadow:none;
        }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card.has-tag { --birthday-ink:#70cfc2; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card:is(:hover,:focus-within) {
            background:color-mix(in srgb,var(--birthday-ink) 8%,var(--haven-card)); box-shadow:none;
        }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card::before,
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card::after,
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__date::before { content:none; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card .birthday-card__date {
            flex-direction:row; justify-content:flex-start; gap:.3rem;
            width:auto; height:auto; background:transparent; border:0; border-radius:0;
            color:var(--birthday-ink);
        }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__date strong { font-size:.85rem; font-weight:600; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__date span { margin:0; font-size:11px; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__content h3 { font-size:.875rem; line-height:1.25; font-weight:580!important; color:var(--birthday-ink); }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__tag { color:var(--birthday-ink); font-size:.65rem; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__edit { place-items:center;
        }
        :root[data-style="flux-light"] #todos-section :is(.birthday-section,.birthday-today) .birthday-card { --birthday-ink:#aa486a; }
        :root[data-style="flux-light"] #todos-section :is(.birthday-section,.birthday-today) .birthday-card.has-tag { --birthday-ink:#087c73; }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card.is-today .birthday-card__date strong { text-decoration:underline; text-underline-offset:3px; }
        @media(prefers-reduced-motion:reduce) {
            #todos-section :is(.birthday-section,.birthday-today) .birthday-card__edit { transition:none; }
        }

/* Section: birthday-edit-matches-tasks */
#todos-section :is(.birthday-section,.birthday-today) .birthday-card__edit {
            display:inline-block; width:1.85rem; height:1.85rem;
            padding:0; border:0; border-radius:0; background:transparent;
            color:var(--flux-muted); opacity:1; line-height:inherit; transition:none;
        }
        #todos-section :is(.birthday-section,.birthday-today) .birthday-card__edit:is(:hover,:focus-visible) {
            background:transparent; color:var(--task-check);
        }
        @media(max-width:640px) {
            #todos-section :is(.birthday-section,.birthday-today) .birthday-card__edit { width:1.6rem; height:1.6rem; }
        }

/* Section: mobile-content-sized-tabs */
@media(max-width:760px) {
            :root[data-style^="flux"] body :is(#todos-section,#sport-section,#gaming-section,#livres-section,#notes-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper)) .todo-tabs[role="tablist"] {
                width:max-content; max-width:100%; min-width:0;
                flex:0 1 auto; align-self:flex-start; justify-self:start;
                justify-content:flex-start; margin-left:0; margin-right:auto;
                overflow-x:auto;
            }
            :root[data-style^="flux"] body :is(#todos-section,#sport-section,#gaming-section,#livres-section,#notes-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper)) .todo-tabs[role="tablist"] .todo-tab {
                flex:0 0 auto; width:auto; min-width:0;
                padding:.3rem .7rem; white-space:nowrap;
            }
        }

/* Section: tasks-project-sections */
#todo-list[data-layout="completed"] { column-count:auto; }
#todo-list[data-layout="completed"] .todo-project-subsection .todo-section-tasks {
            display:block; column-count:2; column-gap:1rem;
        }
        #todos-section .todo-projects-section { margin-top:1.75rem; }
        #todos-section .todo-projects-section:first-child { margin-top:0; }
        .todo-project-groups { display:grid; gap:1rem; min-width:0; }
        #todos-section .todo-project-subsection + .todo-project-subsection { margin-top:0; }
        #todos-section .todo-project-subsection > .todo-section-heading h2 { font-size:.85rem; color:var(--haven-accent); }
        @media(max-width:900px) {
#todo-list[data-layout="completed"] .todo-project-subsection .todo-section-tasks { column-count:1; }
        }

/* Section: daily-birthdays-calendar-actions */
.dashboard-birthdays { margin-bottom:1.25rem; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
        #overview-content .dashboard-birthdays h3 { margin-bottom:.45rem; color:#d992a8; font-size:.8rem; }
        .dashboard-birthdays button { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; padding:.25rem 0; width:100%; text-align:left; }
        .dashboard-birthdays button > span { color:#d992a8; }
        .dashboard-birthdays strong { font-size:.85rem; font-weight:500; }
        .dashboard-birthdays small { color:var(--haven-muted); font-size:.7rem; }
        #flux-dashboard button.home-notification { cursor:pointer; }
        #flux-dashboard button.home-notification:hover { filter:brightness(.95); }
        .todo-calendar td[data-calendar-day] { cursor:pointer; }
        .todo-calendar-create { border-radius:50%; }
        .todo-calendar-create:hover { background:var(--flux-surface-hover); }

/* Section: sport-edit-task-hover */
#sport-section .sport-card .sport-card__edit {
            width:1.85rem; height:1.85rem; padding:0; border:0;
            border-radius:0; background:transparent; box-shadow:none; color:var(--flux-muted);
        }
        #sport-section .sport-card .sport-card__edit:is(:hover,:focus-visible) {
            background:transparent; box-shadow:none; color:var(--sport-accent);
        }
        @media(max-width:640px) {
            #sport-section .sport-card .sport-card__edit { width:1.6rem; height:1.6rem; }
        }

/* Section: note-website-styles */
.note-card .note-archived-pill { position:absolute; right:1.5rem; bottom:1rem; z-index:1; display:inline; margin:0; padding:0; border:0; border-radius:0; background:none; color:var(--haven-muted); font-size:11px; font-weight:400; line-height:1.5; letter-spacing:.035em; text-transform:none; }
.note-card:has(.note-order) .note-archived-pill { left:1.5rem; right:auto; }
:is(.note-card,.note-reader) .note-card__website { position:relative; z-index:1; display:flex; align-items:center; gap:.5rem; width:fit-content; max-width:100%; margin-top:1rem; padding:.45rem .65rem; border-radius:9px; background:color-mix(in srgb,var(--haven-accent,#526f9d) 10%,transparent); color:var(--haven-accent,#526f9d); font-size:.75rem; line-height:1.4; text-decoration:none; }
.note-card__website span { min-width:0; overflow-wrap:anywhere; }
.note-card__website svg { width:1rem; height:1rem; flex-shrink:0; }
:is(.note-card,.note-reader) .note-card__website:hover { background:color-mix(in srgb,var(--haven-accent,#526f9d) 20%,transparent); color:var(--flux-text); }
.note-card__website:focus-visible { outline:2px solid var(--haven-accent,#526f9d); outline-offset:3px; }

/* Section: home-project-dashboard-refinements */
#flux-dashboard .haven-notifications .home-notification { border:0; background:color-mix(in srgb,var(--haven-accent) 16%,var(--haven-card)); }
#overview-content :is(.dashboard-agenda-scroll,#overview-notes,#overview-projects) { max-height:none; height:auto; overflow:visible; padding-right:0; }
#overview-content .dashboard-book-tags { display:flex; flex-wrap:wrap; gap:.25rem .5rem; margin-top:.2rem; color:var(--haven-accent); font-size:11px; }
:root[data-style^="flux"] dialog.note-preview { padding:0; width:min(calc(100% - 2rem),36rem); border:0!important; background:var(--flux-surface); }
.note-preview .note-card { border:0; margin:0; border-radius:inherit; opacity:1; transform:none; padding:2rem 1.5rem 3rem; }
.note-preview .note-card__content { max-height:none; overflow:visible; }
.note-preview-close { position:absolute; right:.6rem; top:.4rem; z-index:4; width:2rem; height:2rem; font-size:1.4rem; color:var(--flux-muted); }
.note-preview-close:hover { color:var(--flux-text); }

/* Section: dashboard-account-budget */
#overview-content .forecast-composition { display:flex; height:.6rem; overflow:hidden; border-radius:999px; background:var(--haven-line); }
#overview-content .forecast-segment { display:block; height:100%; }

#overview-content .forecast-segment.is-expense { background:#d68b9f; }
#overview-content .forecast-segment.is-budget { background:#b39cdb; }
#overview-content .forecast-flows { flex-wrap:wrap; }
#overview-content .forecast-flows > span::before { content:''; display:inline-block; width:.4rem; height:.4rem; border-radius:50%; margin-right:.3rem; }
#overview-content .forecast-flow-income::before { background:#69b8a0; }
#overview-content .forecast-flow-expense::before { background:#d68b9f; }
#overview-content .forecast-flow-budget::before { background:#b39cdb; }
.forecast-health { display:inline-flex; align-items:center; gap:.35rem; flex-shrink:0; font-size:.65rem; }
.forecast-health > span { display:grid; place-items:center; width:1.25rem; height:1.25rem; border-radius:50%; background:color-mix(in srgb,currentColor 13%,transparent); font-weight:700; }
.forecast-health.is-positive { color:#69b8a0; }
.forecast-health.is-negative { color:#ef8d96; }
.forecast-health.is-zero { color:var(--haven-muted); }
:root[data-style="flux-light"] .forecast-health.is-positive { color:#28785e; }
:root[data-style="flux-light"] .forecast-health.is-negative { color:#b74251; }
#overview-content .forecast-budget-explanation { margin:.7rem .4rem 0; color:var(--haven-muted); font-size:.66rem; line-height:1.6; }
.account-budget-option { display:flex; gap:.65rem; align-items:flex-start; font-size:.8rem; }
.account-budget-option input { margin-top:.2rem; accent-color:var(--haven-accent); flex-shrink:0; }
.account-budget-option small { display:block; margin-top:.25rem; font-size:.7rem; color:var(--flux-muted); line-height:1.5; }
#flux-dashboard .haven-notifications #home-account-warning { background:color-mix(in srgb,#dc6e7c 17%,var(--haven-card)); }
#flux-dashboard .haven-notifications #home-account-warning::before { background:#dc6e7c; }
@media(max-width:480px) { #overview-content .dashboard-account header { flex-wrap:wrap; gap:.5rem; } }

/* Section: finance-legends-and-book-entries */
#comptes-section .forecast-flows > span::before { content:''; display:inline-block; width:.4rem; height:.4rem; border-radius:50%; margin-right:.3rem; }
#comptes-section .forecast-flow-income::before { background:#69b8a0; }
#comptes-section .forecast-flow-expense::before { background:#d68b9f; }
#livres-section .book-entry-heading { display:block; line-height:1.25; }
#livres-section .book-entry-heading h3 { display:inline; }
#livres-section .book-entry-author { color:var(--haven-muted); font-size:.75rem; }
#livres-section .book-entry-author button:hover { color:var(--haven-accent); }
#livres-section .book-entry-tags { display:flex; flex-wrap:wrap; gap:.25rem .5rem; margin-top:.2rem; color:var(--haven-accent); font-size:11px; }
#livres-section .book-entry-tags button:hover { color:var(--flux-text); }
#livres-section .book-entry-series { display:block; color:var(--haven-muted); font-size:11px; margin-top:.15rem; }

/* Section: account-bar-and-series-details */
#overview-content .forecast-composition { flex-direction:row-reverse; }
#overview-content .forecast-segment { flex-shrink:0; }
#comptes-section .finance-repaid::before { content:''; display:inline-block; width:.4rem; height:.4rem; border-radius:50%; margin-right:.3rem; background:var(--haven-accent); }
#livres-section .book-series-copy { min-width:0; flex:0 1 auto; }

/* Section: library-row-consistency */
#livres-section .book-series-count { font-size:.75rem; color:var(--haven-muted); white-space:nowrap; }
#gaming-section .game-entry-heading { display:block; line-height:1.25; }
#gaming-section .game-entry-heading h3 { display:inline; }
#gaming-section .game-entry-platform { color:var(--haven-muted); font-size:.75rem; }
#gaming-section .game-entry-platform button:hover { color:var(--haven-accent); }
#gaming-section .game-entry-tags { display:flex; flex-wrap:wrap; gap:.25rem .5rem; margin-top:.2rem; color:var(--haven-accent); font-size:11px; }
#gaming-section .game-entry-tags button:hover { color:var(--flux-text); }

/* One continuous navigation/header rhythm at every viewport width. */
        :root { --page-gutter:clamp(1rem,3vw,2rem); --page-heading-size:clamp(1.65rem,2.5vw,2.25rem); --home-section-gap:2.5rem; }
        @media(max-width:700px) { :root { --page-heading-size:1.8rem; } }

        @media(min-width:701px) {
            :root { --page-gutter:clamp(2rem,5vw,4rem); }
        }

:root[data-style^="flux"] #dashboard-wrapper > #flux-dashboard,
        :root[data-style^="flux"] :is(#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,#genealogy-section),
        :root[data-style^="flux"] :is(:is(#projects-wrapper,#properties-wrapper),#overview-wrapper) > .workspace-section {
            max-width:80rem; padding:1rem var(--page-gutter) 2rem !important;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,.workspace-section) > .flux-page-header {
            display:flex; flex-direction:column; flex-wrap:nowrap; align-items:flex-start; justify-content:flex-start;
            gap:.45rem 1rem; min-height:0; margin:0; padding:0 0 .9rem !important;
        }
        :root[data-style^="flux"] :is(#flux-dashboard,#overview-wrapper,:is(#projects-wrapper,#properties-wrapper),#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,#genealogy-section) .flux-page-header :is(h1.flux-title,#flux-dashboard-title) { text-wrap:wrap;
        }
        .page-section .flux-page-header :is(h1.flux-title,#flux-dashboard-title)::before { content:none; }
        :root[data-style^="flux"] .page-section .flux-page-header :is(.flux-page-header__intro,.flux-intro) { display:none !important; }

        :root[data-style^="flux"] .page-section .flux-page-header :is(.page-current-date,#dashboard-date) {
            flex:0 1 auto; max-width:none; margin:0; padding:0; line-height:1.5; text-align:left; letter-spacing:0;
        }
        :root[data-style^="flux"] #flux-dashboard > .haven-header { display:grid; gap:.45rem 1rem; padding-bottom:var(--after-page-date) !important; }
        #flux-dashboard .haven-header #flux-dashboard-title { grid-column:1; grid-row:1; }

#flux-dashboard .haven-header .haven-notifications { grid-column:1/-1; grid-row:4; justify-content:flex-start; max-width:none; margin-top:.2rem; }
        :root[data-style^="flux"] :is(#todos-section,#notes-section,#sport-section) :is(.todo-toolbar,.notes-toolbar,.sport-toolbar),
        :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar,
        :is(#projects-wrapper,#properties-wrapper) .workspace-section > .workspace-toolbar {
            margin:.15rem 0 .85rem; padding:0; gap:.5rem .75rem;
        }
        :root[data-style^="flux"] #todos-section .todo-toolbar,
        :root[data-style^="flux"] #sport-section .sport-toolbar { flex-direction:row; flex-wrap:wrap; align-items:center; }
        :root[data-style^="flux"] #todos-section .todo-actions,
        :root[data-style^="flux"] #sport-section .sport-toolbar__actions { width:auto; max-width:100%; margin-left:auto; }
        #comptes-section { gap:1rem !important; }
        #comptes-section > .flux-page-header { padding-bottom:0 !important; }
        :is(#projects-wrapper,#properties-wrapper) .project-overview { padding-top:0; }
        :is(#projects-wrapper,#properties-wrapper) .project-page-title { font-size:var(--page-heading-size) !important; }
        @media(max-width:480px) {
            :root[data-style^="flux"] #flux-dashboard > .haven-header { grid-template-columns:minmax(0,1fr); }

            #flux-dashboard .haven-header .haven-notifications { grid-row:4; }
        }

/* Section: consistent-page-date-spacing */
:root { --after-page-date:1.75rem; }
        :root[data-style^="flux"] :is(#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,.workspace-section) > .flux-page-header {
            margin:0 !important; padding-bottom:var(--after-page-date) !important;
        }
        :root[data-style^="flux"] :is(#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,.workspace-section) > .flux-page-header + * { margin-top:0 !important; }
        /* Accounts already contributes a 1rem gap between its flex children. */
        :root[data-style^="flux"] #comptes-section > .flux-page-header { padding-bottom:calc(var(--after-page-date) - 1rem) !important; }

/* Section: monthly-timeline-and-budget */
:root[data-style^="flux"] .page-section .flux-page-header :is(.page-current-date,#dashboard-date) { font-size:.8rem; }
:root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar { margin-top:1.75rem; }
#comptes-section .forecast-composition { display:flex; flex-direction:row-reverse; height:.6rem; overflow:hidden; border-radius:999px; background:var(--haven-line); }
#comptes-section .forecast-segment { display:block; height:100%; flex-shrink:0; }
#comptes-section .forecast-segment.is-expense { background:#d68b9f; }
#comptes-section .forecast-segment.is-budget,#comptes-section .forecast-flow-budget::before { background:#b39cdb; }
#comptes-section .forecast-flows { flex-wrap:wrap; }
#comptes-section .forecast-budget-explanation { margin:.7rem .4rem 0; color:var(--haven-muted); font-size:.66rem; line-height:1.6; }
#comptes-section .account-forecast-header .forecast-health { margin:.2rem .4rem; }
#todos-section .todo-layout-toggle { display:inline-flex; gap:.3rem; width:auto; flex:0 0 auto; padding:.4rem .55rem; font-size:.7rem; }
#todos-section .todo-layout-toggle[hidden] { display:none; }
#todos-section .todo-layout-toggle svg { width:.8rem; height:.8rem; }
.todo-timeline { min-width:0; }
.todo-timeline-days { list-style:none; margin:0; padding:0; }
.todo-timeline-day { position:relative; display:grid; grid-template-columns:3.4rem minmax(0,1fr); gap:clamp(.6rem,2vw,1.2rem); padding-bottom:.8rem; }
.todo-timeline-day::before { position:absolute; left:1.65rem; top:2.7rem; bottom:0; width:1px; background:var(--flux-line); }
.todo-timeline-day:last-child::before { display:none; }
.todo-timeline-date { align-self:start; padding:.3rem; border-radius:.6rem; color:var(--flux-muted); text-align:center; }
.todo-timeline-date strong { display:block; font-size:1.1rem; font-weight:550; line-height:1.2; }
.todo-timeline-date span { display:block; margin-top:.1rem; font-size:11px; }
.todo-timeline-date:hover,.todo-timeline-date:focus-visible { background:var(--flux-surface); color:var(--haven-accent); }
.todo-timeline-day.is-today .todo-timeline-date { background:var(--haven-accent); color:var(--haven-bg); }
.todo-timeline-items { display:block; column-count:2; column-gap:1rem; min-width:0; }
#todos-section .todo-timeline-items > .todo-card { break-inside:avoid; margin-bottom:.7rem; }
.todo-timeline-items:has(> .todo-timeline-empty) { column-count:1; align-self:center; }
@media(max-width:900px) { .todo-timeline-items { column-count:1; } }
.todo-timeline-empty { align-self:center; color:var(--flux-muted); font-size:.7rem; }
.todo-timeline-undated { margin-top:1rem; }
.todo-timeline-undated h3 { margin-bottom:.75rem; font-size:.85rem; }
#todos-section .todo-timeline .todo-card { min-width:0; }
@media(max-width:480px) { .todo-timeline-day { grid-template-columns:2.5rem minmax(0,1fr); gap:.5rem; } .todo-timeline-day::before { left:1.2rem; } }

/* Section: continuous-task-timeline */
.todo-timeline-days { --timeline-axis:1.65rem; position:relative; isolation:isolate; }
.todo-timeline-days::before { content:''; position:absolute; z-index:-1; left:var(--timeline-axis); top:1rem; bottom:1rem; width:1px; background:var(--flux-line); }
.todo-timeline-day::before { content:none; }
.todo-timeline-date { background:var(--flux-bg); }
.todo-timeline-month-marker { display:grid; grid-template-columns:3.4rem minmax(0,1fr); gap:clamp(.6rem,2vw,1.2rem); align-items:center; padding:.5rem 0 1rem; }
.todo-timeline-month-marker > span { justify-self:center; width:.5rem; height:.5rem; border-radius:50%; background:var(--haven-accent); }
.todo-timeline-month-marker h2 { margin:0; font-size:.85rem; color:var(--haven-accent); }
@media(max-width:480px) { .todo-timeline-days { --timeline-axis:1.2rem; } .todo-timeline-month-marker { grid-template-columns:2.5rem minmax(0,1fr); gap:.5rem; } }

/* Section: quiet-page-titles */
:root[data-style^="flux"] :is(#flux-dashboard,#overview-wrapper,:is(#projects-wrapper,#properties-wrapper),#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,#genealogy-section) .flux-page-header :is(h1.flux-title,#flux-dashboard-title) { width:fit-content; max-width:100%; margin:0; padding:0; font-family:inherit; color:var(--haven-text); overflow-wrap:anywhere; }
:root[data-style^="flux"] .page-section .flux-page-header h1 .page-title-accent,
:root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span { font-family:inherit; font-style:normal; padding:0; background:none; color:var(--haven-accent); text-shadow:none; }
.page-section .flux-page-header h1::before,.page-section .flux-page-header h1::after,.page-section .flux-page-header h1 span::before,.page-section .flux-page-header h1 span::after { content:none !important; }
:root[data-style^="flux"] :is(#projects-wrapper,#properties-wrapper) .project-page-title { font-family:inherit; font-style:normal; font-size:clamp(1.8rem,3vw,2.3rem) !important; font-weight:550 !important; letter-spacing:-.055em !important; color:var(--haven-text); }
:root[data-style^="flux"] #dashboard-wrapper > #flux-dashboard,
:root[data-style^="flux"] :is(#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,#genealogy-section),
:root[data-style^="flux"] :is(:is(#projects-wrapper,#properties-wrapper),#overview-wrapper) > .workspace-section { padding-top:clamp(1.4rem,4vw,2.5rem) !important; }
:root[data-style^="flux"] #flux-dashboard > .haven-header { grid-template-columns:minmax(0,1fr) auto; }
#flux-dashboard .home-controls { grid-column:2; grid-row:1; display:flex; align-items:center; gap:.3rem; align-self:center; }
:root[data-style^="flux"] #flux-dashboard .home-controls .flux-style-control { border:0; background:none; padding:0; gap:0; }
:root[data-style^="flux"] #flux-dashboard .home-controls .flux-style-control button { width:2rem; height:2.5rem; flex-basis:2rem; background:none; color:var(--haven-muted); }
:root[data-style^="flux"] #flux-dashboard .home-controls .flux-style-control button[aria-pressed="true"] { background:none; color:var(--haven-accent); }
.home-controls .flux-style-control svg { width:1rem; height:1rem; }
.home-controls .flux-lock-button { background:none; }

/* Section: priority-section-colors */
#todos-section .todo-priority-group.priority-high .todo-section-heading h2 { color:var(--task-priority-high); }
#todos-section .todo-priority-group.priority-medium .todo-section-heading h2 { color:var(--task-priority-medium); }
#todos-section .todo-priority-group.priority-low .todo-section-heading h2 { color:var(--task-priority-low); }

/* Section: page-home-icons */
:root[data-style^="flux"] :is(#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,.workspace-section) { position:relative; }

:is(#projects-wrapper,#properties-wrapper).is-project-detail .workspace-section > .workspace-toolbar { padding-right:3rem; }

/* Section: page-title-word-hierarchy */
:root[data-style^="flux"] :is(#flux-dashboard,#overview-wrapper,:is(#projects-wrapper,#properties-wrapper),#todos-section,#notes-section,#comptes-section,#sport-section,#gaming-section,#livres-section,#genealogy-section) .flux-page-header :is(h1.flux-title,#flux-dashboard-title) {
    font-size:clamp(1.8rem,3vw,2.3rem) !important;
    font-weight:550 !important; letter-spacing:-.09em !important; line-height:1.15;
}
:root[data-style^="flux"] #flux-dashboard #flux-dashboard-title { overflow:visible; }
:root[data-style^="flux"] .page-section .flux-page-header h1 .page-title-accent,
:root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span {
    font-size:clamp(1.8rem,3vw,2.3rem); font-weight:600;
    letter-spacing:-.055em; line-height:1.15; vertical-align:baseline;
}
:root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span { padding-right:.12em; overflow:visible; }

/* Section: task-content-width */
:root[data-style^="flux"] :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card { grid-template-columns:auto minmax(0,1fr); }
:is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card .todo-title { padding-right:2.2rem; min-height:1.85rem; }
:is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card.is-completed .todo-title { padding-right:4.2rem; }
:is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card .todo-card-actions { position:absolute; top:1.1rem; right:1.25rem; flex-direction:row; }
.todo-meta .task-project-pill { order:0; }
@media(max-width:640px) {
    :is(#todos-section,:is(#projects-wrapper,#properties-wrapper)) .todo-card .todo-card-actions { top:1rem; right:.85rem; }
}

/* Section: note-link-editor-styles */
.note-link-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:.65rem; align-items:end; margin-bottom:.8rem; }.note-link-fields label { min-width:0; }.note-link-fields input { display:block; margin-top:.4rem; }.note-link-remove { align-self:end; padding:.7rem .4rem; color:var(--flux-muted); }.note-link-remove:hover { color:#cf6570; }@media(max-width:540px) { .note-link-fields { grid-template-columns:minmax(0,1fr) auto; }.note-link-fields label { grid-column:1; }.note-link-remove { grid-column:2; grid-row:1/3; } }

/* Section: note-image-styles */
#note-images-editor { display:flex; flex-wrap:wrap; gap:.6rem; }
.note-image-thumb { width:7rem; min-width:0; }
.note-image-thumb img { width:100%; height:5rem; object-fit:contain; border-radius:.6rem; background:var(--flux-bg); }
.note-image-thumb>div { display:flex; justify-content:space-between; }
.note-image-thumb button { padding:.4rem .6rem; color:var(--flux-text); }
.note-image-thumb button:disabled { opacity:.25; }
#note-add-image { margin-right:1rem; }
#note-image-status { display:block; color:var(--flux-muted); font-size:.75rem; }
.note-gallery { position:relative; z-index:1; min-width:0; margin-top:1rem; }
.note-gallery-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:.8rem; background:color-mix(in srgb,var(--flux-bg) 70%,transparent); }
.note-gallery-track::-webkit-scrollbar { display:none; }
.note-gallery-track>button { flex:0 0 100%; min-width:0; scroll-snap-align:start; }
.note-gallery-track img { display:block; width:100%; height:12rem; object-fit:cover; object-position:center; }
.note-gallery-controls { display:flex; justify-content:center; align-items:center; gap:1rem; color:var(--flux-muted); font-size:.7rem; }
.note-gallery-controls button { padding:.5rem .75rem; color:var(--flux-text); }
.note-gallery button:focus-visible,#note-images-editor button:focus-visible { outline:2px solid var(--haven-accent); outline-offset:-2px; }
.note-image-viewer { width:min(96vw,90rem); height:92dvh; max-height:96dvh; margin:auto; padding:1rem; border:0; border-radius:1rem; background:var(--flux-surface); color:var(--flux-text); }
.note-image-viewer::backdrop { background:#000b; }
.note-image-viewer-tools { height:2.5rem; display:flex; justify-content:flex-end; gap:1rem; }
.note-image-viewer-tools button { padding:.3rem .7rem; }
.note-image-viewer-scroll { height:calc(100% - 2.5rem); overflow:auto; }
.note-image-viewer img { display:block; width:100%; height:100%; object-fit:contain; }
.note-image-viewer.is-zoomed img { width:200%; max-width:none; height:auto; }

/* Section: project-active-actions */
.project-active-action { display:block; margin-top:.35rem; line-height:1.45; overflow-wrap:anywhere; }
.todo-active-pill { padding:.28rem .55rem; border-radius:999px; color:var(--haven-accent); background:color-mix(in srgb,var(--haven-accent) 14%,transparent); }
.dashboard-active-project { padding:1rem 0; border-top:1px solid var(--flux-line); }
.dashboard-active-project:first-of-type { border-top:0; }
.dashboard-active-project>header { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.4rem 1rem; margin-bottom:.5rem; }
.dashboard-active-project>header button { font-size:1rem; font-weight:650; color:var(--flux-text); text-align:left; overflow-wrap:anywhere; }
.dashboard-active-project>header button:hover { color:var(--haven-accent); }
.dashboard-active-project>header>span { font-size:.7rem; color:var(--flux-muted); }
.dashboard-active-project .dashboard-agenda-task { width:100%; }

/* Section: page-title-alignment-and-modal-scroll */
:root[data-style^="flux"] .page-section .flux-page-header :is(h1.flux-title,#flux-dashboard-title) { margin-left:-.035em !important; }
dialog { overscroll-behavior:contain; }

/* Section: single-theme-toggle */
.flux-style-control [data-theme-toggle] { position:relative; overflow:hidden; background:transparent!important; color:var(--haven-accent,var(--flux-text))!important; }
.flux-style-control [data-theme-toggle] svg { position:absolute; top:50%; left:50%; transition:opacity .28s ease,transform .38s cubic-bezier(.2,.8,.2,1); }
:root[data-style="flux-light"] [data-theme-toggle] .theme-sun,
:root[data-style="flux-dark"] [data-theme-toggle] .theme-moon { opacity:0; transform:translate(-50%,-50%) rotate(-70deg) scale(.5); }
:root[data-style="flux-dark"] [data-theme-toggle] .theme-sun,
:root[data-style="flux-light"] [data-theme-toggle] .theme-moon { opacity:1; transform:translate(-50%,-50%) rotate(0) scale(1); }
@media(prefers-reduced-motion:reduce) { .flux-style-control [data-theme-toggle] svg { transition:none; } }

/* Section: page-titles-and-watermarks */
/* The same two-line title and quiet stationery-like backdrop on every page. */
:root[data-style^="flux"] .page-section .flux-page-header h1 .page-title-accent,
:root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span { display:block; margin-top:.02em; }
:root[data-style^="flux"] .home-atmosphere { display:block; --shape-opacity:.055; }
:root[data-style="flux-light"] .home-atmosphere { --shape-opacity:.065; }
:root[data-style^="flux"] .home-atmosphere > span { background:var(--haven-accent); opacity:var(--shape-opacity); transition:none; }
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__orbit {
    width:clamp(13rem,25vw,27rem); height:auto;
    left:-9rem; top:30vh; bottom:auto; transform:rotate(-24deg);
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__grid { height:auto; aspect-ratio:1; bottom:auto;
    transform:rotate(-24deg);
    border:1px solid var(--haven-accent);
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch {
    right:-8rem; top:auto; transform:rotate(28deg);
}

@media(max-width:640px) {

:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch { right:-9rem; }
}
@media(forced-colors:active) { :root[data-style^="flux"] .home-atmosphere { display:none; } }

/* Section: project-order-controls */
.project-card-item { min-width:0; }
        .project-card-order { display:flex; justify-content:flex-end; gap:.3rem; padding:.35rem .2rem 0; }
        .project-card-order button { display:grid; place-items:center; width:1.8rem; height:1.8rem; border-radius:.5rem; color:var(--flux-muted); transition:color .2s,background .2s; }
        .project-card-order button:hover:not(:disabled) { color:var(--flux-text); background:var(--flux-surface); }
        .project-card-order button:disabled { opacity:.25; cursor:default; }
        .forecast-labels .forecast-health { font-size:inherit; vertical-align:middle; }
        .dashboard-account > .forecast-health { }

/* Section: project-colors-and-note-archives */
#comptes-section .account-forecast-header > .forecast-health,
.dashboard-account > .forecast-health { margin:.35rem .4rem 0; }

:is(#projects-wrapper,#properties-wrapper) .project-card-order { position:static; display:flex; gap:.15rem; padding:0; }
:is(#projects-wrapper,#properties-wrapper) .project-card-order button { width:1.4rem; height:1.4rem; font-size:.72rem; }
:is(#projects-wrapper,#properties-wrapper) .project-card-controls { display:flex; align-items:center; gap:.45rem; margin-left:auto; }
:is(#projects-wrapper,#properties-wrapper) .project-card-top { width:100%; gap:.75rem; }
:is(#projects-wrapper,#properties-wrapper) .project-card { cursor:pointer; background:color-mix(in srgb,var(--project-accent) 12%,var(--haven-card)); }
:is(#projects-wrapper,#properties-wrapper) .project-card:hover { background:color-mix(in srgb,var(--project-accent) 18%,var(--haven-card)); }
:is(#projects-wrapper,#properties-wrapper) .project-card h2 button { text-align:left; }
:is(#projects-wrapper,#properties-wrapper) .project-card-status { color:color-mix(in srgb,var(--project-accent) 40%,var(--flux-text)); }
.project-color-options { display:flex; flex-wrap:wrap; gap:.65rem; }
.project-color-options label { position:relative; cursor:pointer; }
.project-color-options input { position:absolute; opacity:0; width:100%; height:100%; }
.project-color-options span { display:block; width:1.8rem; height:1.8rem; border-radius:50%; background:var(--swatch); font-size:0; border:3px solid var(--flux-surface); }
.project-color-options input:checked + span { outline:2px solid var(--swatch); outline-offset:2px; }
.project-color-options input:focus-visible + span { outline:2px solid var(--flux-text); outline-offset:2px; }
.note-archive-option { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; color:var(--flux-text); font-size:.8rem; }
.note-archive-option small { color:var(--flux-muted); }
:root[data-style^="flux"] #overview-wrapper .dashboard-heading > div { min-width:0; width:100%; }
:root[data-style^="flux"] #overview-wrapper .dashboard-heading h1 .page-title-accent { white-space:nowrap; }

/* Section: maeleo-light-and-depth */
/* Light lives around the content; working surfaces retain their solid colours. */
:root[data-style^="flux"] body {
    --ambient-blue:color-mix(in srgb,var(--haven-accent) 18%,transparent);
    --ambient-warm:rgba(32,130,151,.10);
    --lift-shadow:0 18px 44px -28px rgba(0,0,0,.48);
}
:root[data-style="flux-light"] body {
    --ambient-blue:color-mix(in srgb,var(--haven-accent) 14%,transparent);
    --ambient-warm:rgba(32,130,151,.12);
    --lift-shadow:0 20px 42px -28px rgba(39,67,105,.3);
}

:root[data-style^="flux"] .home-atmosphere .home-atmosphere__grid {
    width:clamp(19rem,42vw,42rem); border-radius:50%; right:-13rem; top:-15rem;
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__orbit {
    aspect-ratio:1; border-radius:50%; background:transparent;
    border:1px solid color-mix(in srgb,var(--haven-accent) 65%,transparent);
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch {
    width:clamp(16rem,27vw,29rem); height:auto; aspect-ratio:1;
    bottom:-12rem; border-radius:50%; opacity:.3; background:transparent;
    border:1.1rem solid color-mix(in srgb,var(--haven-accent) 19%,transparent);
    box-shadow:none;
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch::before {
    content:""; position:absolute; inset:-2.7rem -2rem -1.8rem -2.7rem;
    border-radius:50%; border:1px solid color-mix(in srgb,var(--haven-accent) 55%,transparent); transform:rotate(-35deg);
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch::after {
    content:""; position:absolute; inset:1.2rem .8rem 1.5rem 1.2rem;
    border-radius:50%; border:.65rem solid color-mix(in srgb,var(--haven-accent) 14%,transparent); transform:rotate(40deg);
}
@media(max-width:640px) {
    :root[data-style^="flux"] .home-atmosphere .home-atmosphere__grid { right:-11rem; top:-11rem; opacity:.28; }
    :root[data-style^="flux"] .home-atmosphere .home-atmosphere__orbit { left:-9rem; }
}
/* A restrained ink highlight on the existing blue title, with a solid fallback. */
@supports (background-clip:text) {
    :root[data-style^="flux"] .page-section .flux-page-header h1 .page-title-accent,
    :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span {
        background:linear-gradient(110deg,var(--haven-accent) 15%,color-mix(in srgb,var(--haven-accent) 55%,var(--flux-text)) 65%,var(--haven-accent));
        background-clip:text; -webkit-background-clip:text; color:transparent;
        width:fit-content; max-width:100%;
    }
}
#flux-dashboard .haven-feature { --feature-light:#a4b8ee; }
#flux-dashboard .haven-feature--projects { --feature-light:#e4c093; }
#flux-dashboard .haven-feature-copy { position:relative; z-index:2; }
#flux-dashboard .haven-feature::after {
    content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
}
#flux-dashboard .haven-dashboard-art,
#flux-dashboard .haven-space-watermark { transition:transform .65s cubic-bezier(.2,.8,.2,1),opacity .4s; }
#flux-dashboard :is(.haven-feature,.haven-space,.haven-links-section),
:is(#projects-wrapper,#properties-wrapper) .project-card,
#overview-content .dashboard-widget,
.todo-daily-panel {
    box-shadow:var(--haven-shadow),0 16px 38px -30px color-mix(in srgb,var(--haven-accent) 18%,transparent);
}
@media(hover:hover) and (pointer:fine) {
    #flux-dashboard :is(.haven-feature,.haven-space),:is(#projects-wrapper,#properties-wrapper) .project-card {
        transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background-color .35s;
    }
    #flux-dashboard :is(.haven-feature,.haven-space):hover,:is(#projects-wrapper,#properties-wrapper) .project-card:hover {
        transform:translateY(-4px); box-shadow:var(--lift-shadow);
    }
    #flux-dashboard .haven-feature:hover .haven-dashboard-art { transform:translateY(-4px) rotate(3deg); }
    #flux-dashboard .haven-space:hover .haven-space-watermark { transform:rotate(0) scale(1.06); }
}
@media(prefers-reduced-motion:no-preference) {
    dialog[open] { animation:maeleo-dialog-enter .24s cubic-bezier(.2,.8,.2,1); }
    dialog[open]::backdrop { animation:maeleo-backdrop-enter .24s ease-out; }
    @keyframes maeleo-dialog-enter { from { opacity:0; transform:translateY(10px) scale(.985); } to { opacity:1; transform:none; } }
    @keyframes maeleo-backdrop-enter { from { opacity:0; } to { opacity:1; } }
}
@media(prefers-reduced-motion:reduce) {
    #flux-dashboard :is(.haven-feature,.haven-space,.haven-dashboard-art,.haven-space-watermark),
    :is(#projects-wrapper,#properties-wrapper) .project-card { transition:none; }
    #flux-dashboard :is(.haven-feature,.haven-space):hover,:is(#projects-wrapper,#properties-wrapper) .project-card:hover,
    #flux-dashboard .haven-feature:hover .haven-dashboard-art { transform:none; }
}
@media(forced-colors:active) {
    :root[data-style^="flux"] .page-section .flux-page-header h1 .page-title-accent,
    :root[data-style^="flux"] #flux-dashboard #flux-dashboard-title > span { background:none; color:CanvasText; }
    #flux-dashboard .haven-feature::after { display:none; }
}

:root[data-style^="flux"] #flux-dashboard .haven-feature--dashboard { --feature-light:#e9f1ff;
}
:root[data-style^="flux"] #flux-dashboard .haven-feature--projects { --feature-light:#fff7df;
}
:root[data-style="flux-dark"] #flux-dashboard .haven-feature--dashboard { background:#2b3d56; color:#dce7f6; }

#flux-dashboard .haven-feature-copy > strong { line-height:1.04; max-width:90%;
}
#flux-dashboard .haven-feature-copy > .haven-feature-description { max-width:65%; }
#flux-dashboard .haven-feature .haven-kicker { opacity:.85; }
#flux-dashboard .haven-feature--dashboard .haven-feature-cta { color:inherit; box-shadow:none; }
#flux-dashboard .haven-feature::before {
    content:""; position:absolute; pointer-events:none; width:24rem; height:24rem; right:-12rem; top:-13rem;
    border:1px solid #ffffff26; border-radius:50%; box-shadow:0 0 0 2.8rem #ffffff07,0 0 0 5.6rem #ffffff04;
}
#flux-dashboard .haven-feature::after {
    background:radial-gradient(circle at 80% 15%,#ffffff24,transparent 55%);
}
#flux-dashboard .haven-dashboard-art { right:-1.25rem; bottom:-1rem; width:13rem; height:14rem; }
#flux-dashboard .haven-art-ring {
    width:10rem; height:10rem; border:1.6rem solid #aacfff30; border-top-color:#d5e9ff; border-left-color:#9dc8ff;
    box-shadow:0 16px 30px #071d4933,inset 0 5px 15px #132f5733;
}
#flux-dashboard .haven-art-panel { left:.3rem; bottom:1.1rem; width:7.3rem; padding:1.2rem; transform:rotate(6deg); background:#d6e6ffdd; border:0; }
#flux-dashboard .haven-art-panel i { background:#496ea588; }
#flux-dashboard .haven-project-art { width:12rem; height:13rem; right:-1.7rem; bottom:-1rem; }
#flux-dashboard .haven-project-art i { width:7rem; height:8.5rem; border:0; background:#b39b78; box-shadow:0 12px 22px #30230d25; }
#flux-dashboard .haven-project-art i:nth-child(2) { background:#cebc9b; }
#flux-dashboard .haven-project-art i:nth-child(3) { background:#f4ead5; }
#flux-dashboard .haven-project-art i:nth-child(3)::after {
    content:""; position:absolute; left:1rem; right:1rem; top:1.3rem; height:3.2rem;
    background:repeating-linear-gradient(transparent 0 .7rem,#a78a5840 .7rem .85rem); border-radius:3px;
}
#flux-dashboard .haven-space { border-radius:22px; }

:root[data-style^="flux"] #flux-dashboard .haven-space > strong { letter-spacing:-.025em; color:var(--haven-text); }
#flux-dashboard .haven-space::after {
    content:""; position:absolute; inset:0; pointer-events:none; opacity:0;
    background:radial-gradient(circle at 75% 20%,color-mix(in srgb,var(--space-accent) 20%,transparent),transparent 65%);
    transition:opacity .3s;
}
#flux-dashboard .haven-space:is(:hover,:focus-visible)::after { opacity:1; }

@media(max-width:700px) {
    #flux-dashboard .haven-dashboard-art,
#flux-dashboard .haven-project-art { right:-3rem; opacity:.5; }
    #flux-dashboard .haven-feature-copy > strong { max-width:100%; }
}
@media(prefers-reduced-motion:reduce) {
    #flux-dashboard .haven-space::after,#flux-dashboard .haven-project-art { transition:none; }
    #flux-dashboard .haven-feature:hover .haven-project-art { transform:rotate(12deg); }
}
@media(forced-colors:active) {
    #flux-dashboard .haven-feature { background:Canvas!important; color:CanvasText!important; }
    #flux-dashboard .haven-feature::before,#flux-dashboard .haven-space::after { display:none; }
}

/* Section: compact-task-display */
#todos-section .todo-summary { display:flex; align-items:center; justify-content:space-between; gap:.75rem; overflow:visible; }
#todos-section .todo-display { position:relative; margin-left:auto; z-index:10; font-size:.75rem; color:var(--flux-text); }
#todos-section .todo-display[hidden] { display:none; }
.todo-display summary { display:flex; align-items:center; gap:.5rem; cursor:pointer; list-style:none; padding:.4rem .55rem; border-radius:.6rem; }
.todo-display summary::-webkit-details-marker { display:none; }
.todo-display summary:hover,.todo-display[open] summary { background:var(--flux-surface); }
.todo-display-panel { position:absolute; right:0; top:calc(100% + .35rem); width:max-content; max-width:calc(100vw - 2.5rem); padding:.75rem; border-radius:1rem; background:var(--flux-surface); box-shadow:0 14px 45px #0004; border:1px solid var(--flux-line); }
.todo-display-panel fieldset { min-width:0; margin:0 0 .85rem; padding:0; border:0; }
.todo-display-panel legend { font-size:.65rem; color:var(--flux-muted); margin-bottom:.45rem; }
.todo-display-panel fieldset > div { display:flex; flex-wrap:wrap; gap:.3rem; }
.todo-display-panel button { padding:.45rem .6rem; border-radius:.5rem; font-size:.75rem; }
.todo-display-panel button[aria-pressed="true"] { background:color-mix(in srgb,var(--haven-accent) 20%,transparent); color:var(--flux-text); }
.todo-display-panel button:hover { background:var(--flux-surface-hover); }
#btn-manage-todo-sections { width:100%; border-top:1px solid var(--flux-line); padding-top:.8rem; text-align:left; border-radius:0; }
.todo-display :is(summary,button):focus-visible { outline:2px solid var(--haven-accent); outline-offset:2px; }
#todo-sort,#todo-layout-toggle { display:none!important; }
@media(max-width:640px) {
    #todos-section .todo-toolbar { flex-wrap:nowrap; gap:.3rem; }
    #todos-section .todo-tabs { min-width:0; gap:.1rem; }
    #todos-section .todo-tabs .todo-tab { padding:.5rem .4rem; }
    #todos-section .todo-actions { flex:0 0 auto; margin-left:auto; }
    #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday) { display:inline-flex; align-items:center; justify-content:center; flex:0 0 2rem; font-size:0!important; width:2rem; height:2rem; min-height:2rem; padding:0!important; border-radius:50%!important; line-height:1!important; }
    #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday)::after { content:'+'; background:none; font-size:1.2rem; line-height:1; }
}

/* Section:  */
@media(min-width:1024px) { #sport-section .sport-grid, #sport-section .sport-session-cards { grid-template-columns:repeat(3,minmax(0,1fr)); } }

/* Section: home-brand-initial */
#flux-dashboard-title { position:relative; isolation:isolate; }

@media(forced-colors:active) {
 }

/* Section: task-display-polish */
.todo-display[open] > summary .custom-select__chevron { transform:rotate(180deg); }
.todo-display > summary { flex-wrap:wrap; justify-content:flex-end; }
.todo-display > summary .custom-select__chevron { width:.85rem; height:.85rem; }
@media(prefers-reduced-motion:no-preference) {
    .todo-display[open] .todo-display-panel { transform-origin:top right; animation:task-display-enter .18s ease-out; }
    @keyframes task-display-enter { from { opacity:0; transform:translateY(-4px) scale(.98); } to { opacity:1; transform:none; } }
}
@media(prefers-reduced-motion:reduce) { .todo-display .custom-select__chevron { transition:none; } }
@media(max-width:640px) {
    :root[data-style^="flux"] #todos-section .todo-toolbar { display:flex; align-items:center; flex-wrap:nowrap; }
    :root[data-style^="flux"] #todos-section .todo-actions { width:auto; flex:0 0 2rem; align-self:center; margin:0 0 0 .3rem; }
    :root[data-style^="flux"] body #todos-section .todo-tabs[role="tablist"] { align-self:center; flex:1 1 auto; margin-right:0; }
    #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday) { position:relative; margin:0; transform:none; }
    #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday)::after { position:absolute; inset:0; display:grid; place-items:center; width:100%; height:100%; }
}

/* Section: birthday-pocket-calendar */
#todos-section #todo-list .birthday-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem .8rem; padding:.15rem 0; }
#todos-section #todo-list .birthday-section { margin-bottom:1.15rem; }
#todos-section #todo-list .birthday-section .todo-section-heading { gap:.5rem; padding:.35rem 0 .6rem; }
#todos-section #todo-list .birthday-section .todo-section-heading h2 { font-size:.88rem; }
#todos-section #todo-list .birthday-card {
    --birthday-ink:#aac4ef; display:grid; grid-template-columns:3.2rem minmax(0,1fr) 1.65rem;
    align-items:center; gap:.65rem; min-height:0; padding:.65rem .7rem .65rem .85rem;
    background:color-mix(in srgb,var(--birthday-ink) 5%,var(--haven-card));
    border:0; border-left:2px solid color-mix(in srgb,var(--birthday-ink) 45%,transparent);
    border-radius:3px 11px 11px 3px; box-shadow:none; transform:none;
}
#todos-section #todo-list .birthday-card.has-tag { --birthday-ink:#85d6ba; background:color-mix(in srgb,var(--birthday-ink) 12%,var(--haven-card)); border-left-color:var(--birthday-ink); }
:root[data-style="flux-light"] #todos-section #todo-list .birthday-card { --birthday-ink:#537aaf; }
:root[data-style="flux-light"] #todos-section #todo-list .birthday-card.has-tag { --birthday-ink:#278971; }
#todos-section #todo-list .birthday-card:is(:hover,:focus-within) { background:color-mix(in srgb,var(--birthday-ink) 17%,var(--haven-card)); box-shadow:none; transform:none; }
#todos-section #todo-list .birthday-card .birthday-card__date { display:flex; flex-direction:row; align-items:baseline; justify-content:flex-start; gap:.25rem; padding:0; width:auto; height:auto; min-width:0; border:0; background:none; color:var(--birthday-ink); }
#todos-section #todo-list .birthday-card__date strong { font-size:1.3rem; line-height:1; font-weight:450; letter-spacing:-.06em; font-variant-numeric:tabular-nums; text-decoration:none; }
#todos-section #todo-list .birthday-card__date span { font-size:11px; text-transform:uppercase; letter-spacing:.03em; margin:0; }
#todos-section #todo-list .birthday-card__content { display:flex; flex-wrap:wrap; align-items:center; gap:.2rem .5rem; min-width:0; }
#todos-section #todo-list .birthday-card__content h3 { order:0; margin:0; font-size:.9rem; line-height:1.35; font-weight:550!important; color:var(--flux-text); overflow-wrap:anywhere; }
#todos-section #todo-list .birthday-card__meta { order:1; display:flex; flex-wrap:wrap; gap:.3rem; min-width:0; }
#todos-section #todo-list .birthday-card__meta:empty { display:none; }
#todos-section #todo-list .birthday-card__tag { max-width:100%; white-space:normal; overflow-wrap:anywhere; padding:.18rem .4rem; border-radius:5px; background:color-mix(in srgb,var(--birthday-ink) 13%,transparent); color:var(--birthday-ink); font-size:11px; line-height:1.3; font-weight:550; }
#todos-section #todo-list .birthday-card__content p { display:block; white-space:normal; overflow:visible; order:2; flex-basis:100%; margin:0; color:var(--flux-muted); font-size:.7rem; line-height:1.45; overflow-wrap:anywhere; }
#todos-section #todo-list .birthday-card.is-today { border-left-color:#dfb66c; background:color-mix(in srgb,#dfb66c 13%,var(--haven-card)); }
#todos-section #todo-list .birthday-card__kicker { color:var(--birthday-ink); font-size:11px; font-weight:550; letter-spacing:0; text-transform:none; }
#todos-section #todo-list .birthday-card__edit { align-self:center; width:1.65rem; height:1.65rem; }
@media(max-width:640px) { #todos-section #todo-list .birthday-grid { grid-template-columns:minmax(0,1fr); gap:.35rem; } }

/* Section: shared-display-menu-style */
/* Shared vocabulary with Tasks: compact triggers and selectable pills. */
:root[data-style^="flux"] .custom-select--compact { width:auto; min-width:0; max-width:100%; }
:root[data-style^="flux"] .custom-select--compact .custom-select__trigger {
    min-height:0; padding:.4rem .55rem; gap:.5rem; border:0; border-radius:.6rem;
    background:transparent; color:var(--flux-text); font-size:.75rem; line-height:1.5; box-shadow:none;
}
:root[data-style^="flux"] .custom-select--compact:is(:hover,.is-open) .custom-select__trigger { background:var(--flux-surface); }
:root[data-style^="flux"] .custom-select .custom-select__menu {
    width:max-content; max-width:min(24rem,calc(100vw - 2.5rem)); max-height:18rem;
    padding:.75rem; border-radius:1rem; border:1px solid var(--flux-line);
    background:var(--flux-surface); box-shadow:0 14px 45px #0004;
}
:root[data-style^="flux"] .custom-select.is-open .custom-select__menu { display:flex; flex-direction:column; align-items:stretch; gap:.3rem; }
:root[data-style^="flux"] .custom-select .custom-select__option {
    flex:0 0 auto; width:100%; max-width:100%; min-width:0; padding:.45rem .6rem;
    border:0; border-radius:.5rem; font-size:.75rem; line-height:1.4;
    white-space:normal; overflow-wrap:anywhere; color:var(--flux-text); background:transparent;
}
:root[data-style^="flux"] .custom-select .custom-select__option[aria-selected="true"] {
    background:color-mix(in srgb,var(--haven-accent) 20%,transparent); color:var(--flux-text);
}
:root[data-style^="flux"] .custom-select .custom-select__option:hover { background:var(--flux-surface-hover); }
:root[data-style^="flux"] .custom-select .custom-select__option:disabled { opacity:.4; cursor:default; }
:root[data-style^="flux"] .custom-select :is(.custom-select__trigger,.custom-select__option):focus-visible {
    outline:2px solid var(--haven-accent); outline-offset:2px; box-shadow:none;
}
.custom-select--compact .custom-select__chevron { width:.85rem; height:.85rem; }
:is(.sport-toolbar__actions,.library-workspace-bar) .custom-select__menu { left:auto; right:0; }
/* Form controls retain their field width; their menus stay inside that width. */
:root[data-style^="flux"] dialog .custom-select .custom-select__menu { width:100%; max-width:100%; }
@media(prefers-reduced-motion:no-preference) {
    .custom-select.is-open .custom-select__menu { animation:shared-select-enter .18s ease-out; transform-origin:top center; }
    @keyframes shared-select-enter { from { opacity:0; transform:translateY(-4px) scale(.98); } to { opacity:1; transform:none; } }
}
@media(prefers-reduced-motion:reduce) { .custom-select__chevron { transition:none; } }
@media(forced-colors:active) { .custom-select .custom-select__option[aria-selected="true"] { outline:1px solid Highlight; } }

/* Section: books-compact-controls */
:root[data-style^="flux"] #livres-section .library-workspace-bar .library-controls {
    justify-content:flex-end!important; gap:.5rem; padding-inline:0;
}
:root[data-style^="flux"] #livres-section .library-controls > div {
    flex:0 1 auto; gap:.5rem; margin-left:0;
}
#livres-section #btn-reset-filter-books.button-hidden { display:none; }

/* Section: note-content-budget-and-book-sort */
:root[data-style^="flux"] #livres-section .library-controls .custom-select:has(#btn-sort-books) { flex:0 0 auto; width:max-content; min-width:0; }
:root[data-style^="flux"] #livres-section .library-controls .custom-select:has(#btn-sort-books) .custom-select__trigger { width:auto; min-width:0; min-height:0; padding:.4rem .55rem; gap:.5rem; font-size:.75rem; line-height:1.5; }
.note-card .note-card__body { display:flex; flex-direction:column; min-height:0; max-height:28.2rem; margin-top:.85rem; position:relative; z-index:1; }
.note-card .note-card__body .note-card__content { flex:0 0 auto; min-height:0; max-height:none; margin:0; font-size:.82rem; line-height:1.7; overflow-y:auto; }
.note-card .note-card__attachments { flex:0 0 auto; max-height:18rem; overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--flux-line) transparent; }
:is(.note-card .note-card__attachments,.note-reader-attachments) .note-card__website { margin-top:.55rem; }
.note-card .note-card__attachments .note-gallery { margin-top:.75rem; }
.note-preview .note-card .note-card__body { max-height:none; }
.note-preview .note-card .note-card__body .note-card__content { max-height:none!important; overflow:visible; }
.note-preview .note-card .note-card__attachments { max-height:none; overflow:visible; }

/* Section: mobile-task-control-height */
@media(max-width:640px) {
    #todos-section .todo-toolbar { --task-control-height:1.74rem; }
    :root[data-style^="flux"] body #todos-section .todo-tabs[role="tablist"] .todo-tab {
        box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center;
        height:var(--task-control-height); min-height:var(--task-control-height); padding-block:0!important;
    }
    :root[data-style^="flux"] #todos-section .todo-actions {
        flex-basis:var(--task-control-height); min-width:var(--task-control-height); min-height:var(--task-control-height);
    }
    :root[data-style^="flux"] #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday) {
        box-sizing:border-box; flex-basis:var(--task-control-height); width:var(--task-control-height);
        height:var(--task-control-height); min-height:var(--task-control-height);
    }
}

/* Section: responsive-view-selectors */
:root[data-style^="flux"] body .view-mobile-select { display:none!important; }
:root[data-style^="flux"] body .view-desktop-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem; }
:root[data-style^="flux"] body .view-generated-tabs .todo-tab { padding:.3rem .7rem; font-size:.76rem; font-weight:550; line-height:1.5; border:0; border-radius:10px; background:transparent; color:var(--flux-muted); }
:root[data-style^="flux"] body .view-generated-tabs .todo-tab.is-active { background:color-mix(in srgb,var(--haven-accent) 22%,var(--flux-surface)); color:var(--flux-text); }
.notes-toolbar > .view-generated-tabs { margin-right:auto; }
@media(max-width:760px) {
    :root[data-style^="flux"] body .view-desktop-tabs { display:none!important; }
    :root[data-style^="flux"] body .view-mobile-select { display:block!important; flex:0 1 auto!important; width:max-content!important; min-width:0; max-width:100%; margin:0 auto 0 0; }
    :root[data-style^="flux"] body .view-mobile-select .custom-select__trigger { min-height:1.74rem; padding:.3rem .55rem; font-size:.76rem; border:0; border-radius:10px; background:var(--flux-surface); color:var(--flux-text); }
    :root[data-style^="flux"] body .view-mobile-select .custom-select__menu { left:0; right:auto; width:max-content; max-width:calc(100vw - 2.5rem); }
    :root[data-style^="flux"] body .view-mobile-select.is-open .custom-select__menu { display:flex; flex-direction:column; gap:.3rem; }
    :root[data-style^="flux"] body .view-mobile-select .custom-select__option[aria-selected="true"] { background:color-mix(in srgb,var(--haven-accent) 20%,transparent); color:var(--flux-text); }
    :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar { flex-direction:row; align-items:center; }
    :root[data-style^="flux"] :is(#gaming-section,#livres-section) .library-workspace-bar .library-controls { width:auto!important; }
}

/* Section: view-toolbar-refinement */
:root[data-style^="flux"] body :is(#projects-wrapper,#properties-wrapper) .view-generated-tabs { --view-color:var(--site-control-bg); --view-ink:var(--site-control-ink); }
:root[data-style^="flux"] body #genealogy-section .view-generated-tabs .todo-tab { font-size:.75rem; font-weight:500; border-radius:9px; }
:root[data-style^="flux"] body #genealogy-section .view-generated-tabs { --view-color:var(--site-control-bg); --view-ink:var(--site-control-ink); margin-bottom:.75rem; }
:root[data-style^="flux"] body #notes-section .view-generated-tabs { --view-color:var(--site-control-bg); --view-ink:var(--site-control-ink); }
:root[data-style^="flux"] body :is(:is(#projects-wrapper,#properties-wrapper),#notes-section,#genealogy-section) .view-generated-tabs { border:0; background:transparent; padding:.25rem 0; gap:.3rem; }
:root[data-style^="flux"] body :is(:is(#projects-wrapper,#properties-wrapper),#notes-section,#genealogy-section) .view-generated-tabs .todo-tab.is-active { background:var(--view-color); color:var(--view-ink); box-shadow:none; }
@media(max-width:760px) {
    :root[data-style^="flux"] #todos-section .todo-toolbar { align-items:center; flex-wrap:nowrap; gap:.35rem; }
    :root[data-style^="flux"] #todos-section .todo-actions { flex:0 0 auto; width:auto; min-width:0; gap:.35rem; margin-left:auto; }
    :root[data-style^="flux"] #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday) {
        display:inline-flex; flex:0 0 auto; width:auto; height:1.74rem; min-height:1.74rem;
        font-size:.76rem!important; line-height:1.5!important; padding:.3rem .7rem!important; border-radius:10px!important;
    }
    :root[data-style^="flux"] #todos-section .todo-actions :is(#btn-add-todo,#btn-add-birthday)::after { content:none; }
    #todos-section .todo-actions .todo-display { margin:0; text-transform:none; letter-spacing:normal; }
    #todos-section .todo-actions .todo-display summary { flex-wrap:nowrap; gap:.5rem; min-height:1.74rem; padding:.3rem .55rem; font-size:.76rem; line-height:1.5; border:0; border-radius:10px; background:transparent; color:var(--flux-text); }
    #todos-section .todo-actions .todo-display[open] summary { background:var(--flux-surface); }
    @media(hover:hover) { #todos-section .todo-actions .todo-display summary:hover { background:var(--flux-surface); } }
    #todos-section .todo-actions #todo-display-label { font-size:0; }
    #todos-section .todo-actions #todo-display-label::after { content:'View options'; font-size:.76rem; white-space:nowrap; }
    html[lang="fr"] #todos-section .todo-actions #todo-display-label::after { content:'Options de vue'; }
    #todos-section .todo-display-panel { right:0; max-width:calc(100vw - 7rem); }
}

/* Section: note-order-and-book-details */
#livres-section .book-entry-details { display:flex; flex-wrap:wrap; align-items:baseline; gap:.25rem .5rem; }
#livres-section .book-entry-details :is(.book-entry-series,.book-entry-tags,.tag-btn-book) { font-size:.65rem; line-height:1.4; margin:0; }
.note-order { position:absolute; right:1.25rem; bottom:.75rem; z-index:2; display:flex; justify-content:flex-end; gap:.15rem; margin:0; }
.note-order button,.note-link-order button { width:1.5rem; height:1.5rem; font-size:.75rem; color:var(--flux-muted); border-radius:.4rem; }
.note-order button:hover,.note-link-order button:hover { background:var(--flux-surface-hover); color:var(--flux-text); }
.note-link-order { display:flex; align-items:center; gap:.1rem; justify-content:flex-end; align-self:end; padding-bottom:.5rem; }
.note-order button:focus-visible,.note-link-order button:focus-visible { outline:2px solid var(--haven-accent); }

/* Section: note-editor-layout-fixes */
#livres-section .book-entry-details { margin-top:.2rem; }
.note-link-order .note-link-remove { padding:0; width:1.5rem; height:1.5rem; align-self:center; }
.note-end-options { margin-top:1rem; }
#modal-note .note-end-options .note-archive-option { display:flex; flex-wrap:nowrap; align-items:flex-start; gap:.5rem; margin-bottom:.55rem; text-transform:none; letter-spacing:0; line-height:1.5rem; }
#modal-note .note-end-options .note-archive-option input { flex-shrink:0; width:1rem; height:1rem; margin:.25rem 0 0; transform:none; }
#modal-note .note-end-options .note-archive-option small { display:inline; margin:0; font-size:.72rem; font-weight:400; }
@media(max-width:540px) { .note-link-order { grid-column:2; grid-row:1/3; } }

/* Section: home-links-editor-styles */
#flux-dashboard .haven-links-section > .haven-section-heading { align-items:center; gap:.75rem; margin-bottom:.8rem; flex-wrap:wrap; }
#flux-dashboard .haven-links-section > .haven-section-heading > svg { display:none; }
.home-links-actions { display:flex; align-items:center; gap:.5rem; margin-left:auto; }
#home-links-content { position:relative; }
.home-link-section + .home-link-section { margin-top:1rem; }
.home-link-section-heading { display:flex; align-items:center; gap:.5rem; margin-bottom:.25rem; }
.home-link-section-heading h3 { font-size:.85rem; color:var(--flux-muted); }
.home-links-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.5rem; align-items:start; }
.home-link-row { display:flex; align-items:flex-start; min-width:0; padding:.375rem .5rem; border-radius:.6rem; transition:background .2s; }
.home-link-row:hover { background:color-mix(in srgb,var(--flux-text) 4%,transparent); }
.home-link-row a { flex:1; min-width:0; color:var(--flux-text); text-decoration:none; overflow-wrap:anywhere; }
.home-link-row a:hover strong { color:var(--site-accent); }
.home-link-row strong { display:block; font-size:.875rem; font-weight:500; line-height:1.5; }
.home-link-row small { display:block; margin-top:.2rem; color:var(--flux-muted); font-size:.65rem; line-height:1.4; }
.home-link-row > button,.home-link-section-heading > button { flex-shrink:0; padding:0 .35rem; color:var(--flux-muted); line-height:1.5rem; font-size:.8rem; }
.home-link-row > button:hover,.home-link-section-heading > button:hover { color:var(--site-accent); }
.home-links-empty { color:var(--flux-muted); font-size:.75rem; padding:.375rem .5rem; }
#modal-home-link { width:min(30rem,calc(100% - 2rem)); margin:auto; padding:1.5rem; background:var(--flux-surface); color:var(--flux-text); }
#modal-home-link h2 { margin-bottom:1.25rem; font-size:1.25rem; line-height:1.75rem; }
#modal-home-link .todo-field { margin-bottom:1rem; }
#modal-home-link label { display:block; margin-bottom:.4rem; font-size:.68rem; color:var(--flux-muted); }
#modal-home-link .todo-field small { color:var(--flux-muted); font-size:.72rem; }
#modal-home-link .todo-input { width:100%; background:var(--flux-bg); color:var(--flux-text); }
.home-link-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:.5rem; margin-top:1.25rem; }
.home-link-form-actions [data-delete-home-link] { margin-right:auto; color:#e76565; font-size:.8rem; }
#home-link-error { color:#e76565; font-size:.8rem; }
@media(max-width:640px) { .home-links-list { grid-template-columns:minmax(0,1fr); } }
/* Section: home-links-controls-polish */

#flux-dashboard .home-links-actions .todo-tab { padding:.3rem .7rem; border:0; border-radius:10px; background:transparent; color:var(--flux-muted); font-size:.75rem; font-weight:500; line-height:1.5; }
#flux-dashboard .home-links-actions .todo-tab:hover { background:var(--flux-surface-hover); color:var(--flux-text); }
#flux-dashboard .home-link-row small { font-size:.72rem; line-height:1.6; }

:is(#modal-home-link,#modal-home-sections) { --modal-accent:#5b8def; width:min(30rem,calc(100% - 2rem)); margin:auto; padding:clamp(1.5rem,4vw,2rem); border-radius:1rem; }
#modal-home-sections h2 { font-size:1.25rem; margin-bottom:1.5rem; }
#home-section-list { margin-top:1.25rem; }
#home-section-form input { min-width:0; flex:1; }
:root[data-style^="flux"] :is(#modal-home-link,#modal-home-sections).modal-base { border:0!important; border-radius:22px; clip-path:inset(0 round 22px); background:var(--haven-card); }
:is(#modal-home-link,#modal-home-sections) h2 { font-weight:500!important; letter-spacing:-.035em!important; }
:is(#modal-home-link,#modal-home-sections) :is(.todo-input,.custom-select__trigger) { border-radius:10px; font-size:.85rem; }
@media(max-width:760px) {

 }

/* Section: home-outline-watermarks */

#flux-dashboard .haven-links-watermark svg { fill:none; stroke:currentColor; stroke-width:.74; }
        @media(max-width:640px) { #flux-dashboard .haven-links-watermark svg { stroke-width:.6; } }

/* Section: home-description-scale */
#flux-dashboard { --home-description-size:.8rem; }
#flux-dashboard .haven-description,
#flux-dashboard .haven-feature-description,
#flux-dashboard .haven-links-section .haven-section-heading p { font-size:var(--home-description-size); line-height:1.6; }

/* Section: home-large-watermarks */
:root[data-style^="flux"] #flux-dashboard .haven-space-watermark {
            position: absolute;
            top: -.45rem;
            right: -.7rem;
            bottom: auto;
            width: 10.5rem;
            height: 10.5rem;
            transform: rotate(-14deg);
            mask-image: linear-gradient(black 60%,transparent 100%);
            filter: none;
            pointer-events: none;
            z-index: 0;
            transition: opacity .3s ease, transform .35s cubic-bezier(.16, 1, .3, 1);
        }

        :root[data-style="flux-light"] #flux-dashboard .haven-space-watermark {
            color: color-mix(in srgb,var(--space-accent) 72%,#34455c);
            opacity: .48;
        }

        :root[data-style="flux-light"] #flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-space-watermark {
            opacity: .65;
        }
        :root[data-style^="flux"] #flux-dashboard .haven-links-watermark {
            width: 10.5rem;
            height: 10.5rem;
            top: -.45rem;
            right: -.7rem;
            color: var(--haven-accent);
            opacity: .4;
            transform: rotate(-18deg);
            mask-image: linear-gradient(110deg,transparent,black 65%);
        }
        #flux-dashboard .haven-space-watermark svg {
            display: block;
            width: 100%;
            height: 100%;
            fill: none;
            stroke: currentColor;
            stroke-linecap: round;
            stroke-linejoin: round;
            filter: none;
        }
        #flux-dashboard .haven-space > :is(strong, .haven-description, .haven-space-top) {
            position: relative;
            z-index: 1;
        }
        @media(max-width:700px) {
            :root[data-style^="flux"] #flux-dashboard .haven-space-watermark {
                width: 8.5rem;
                height: 8.5rem;
                top: -.5rem;
                right: -1rem;
                bottom: auto;
            }
            :root[data-style^="flux"] #flux-dashboard .haven-links-watermark {
                width: 8.5rem;
                height: 8.5rem;
                top: -.5rem;
                right: -1rem;
                opacity: .4;
            }
        }
        @media(prefers-reduced-motion:reduce) {
            :root[data-style^="flux"] #flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-space-watermark {
                transform: none;
                transition: none;
            }
        }

/* Section: home-pomodoro-styles */
#flux-dashboard .home-pomodoro { display:flex; align-items:center; flex-wrap:wrap; gap:1.25rem 2rem; margin:0 0 1.25rem; }

.home-pomodoro-copy { flex:1 1 13rem; }
#flux-dashboard .home-pomodoro h2 { font-size:1.05rem; font-weight:550; letter-spacing:-.025em; }
.home-pomodoro-copy p { margin-top:.4rem; font-size:.8rem; color:var(--haven-muted); }
.home-pomodoro-clock { flex:0 0 8.5rem; }
#pomodoro-clock { display:block; text-align:center; font-size:2.6rem; font-weight:400; font-variant-numeric:tabular-nums; letter-spacing:-.045em; line-height:1.2; color:var(--haven-accent); }
.home-pomodoro-track { height:3px; margin-top:.55rem; background:var(--flux-line); border-radius:999px; overflow:hidden; }
#pomodoro-progress { display:block; height:100%; width:0; background:var(--haven-accent); transition:width .5s linear; }
.home-pomodoro-controls { display:flex; align-items:flex-end; gap:.5rem; flex-wrap:wrap; }
.home-pomodoro-controls label { display:flex; flex-direction:column; gap:.3rem; color:var(--haven-muted); font-size:.65rem; }
#pomodoro-duration { width:4.5rem; height:2rem; padding:.3rem .5rem; border:1px solid var(--flux-line); border-radius:9px; background:var(--flux-bg); color:var(--haven-text); font-size:.8rem; }
.home-pomodoro-controls button { min-height:2rem; padding:.3rem .8rem; border-radius:10px; font-size:.76rem; font-weight:550; background:var(--site-control-bg); color:var(--site-control-ink); }
#pomodoro-reset { background:var(--flux-surface-hover); color:var(--haven-muted); }
.home-pomodoro-controls :disabled { opacity:.45; cursor:default; }
#pomodoro-error:empty { display:none; }
#pomodoro-error { flex-basis:100%; font-size:.75rem; color:#cf6570; }
@media(max-width:600px) { #flux-dashboard .home-pomodoro { padding:1.2rem; gap:1rem; } .home-pomodoro-copy { flex-basis:calc(100% - 9.5rem); } .home-pomodoro-clock { flex-basis:7.5rem; } .home-pomodoro-controls { width:100%; justify-content:flex-end; } }
@media(prefers-reduced-motion:reduce) { #pomodoro-progress { transition:none; } }

/* Section: focus-sync-and-folders */
#site-sync-status { position:fixed; bottom:.7rem; right:1rem; z-index:40; padding:.25rem .5rem; border-radius:8px; background:var(--flux-bg); color:var(--flux-muted); font-size:11px; pointer-events:none; }
#site-sync-status[data-state="error"] { color:#cf6570; }
#site-sync-status[data-state="saving"] { color:var(--haven-accent); }
#mini-pomodoro { position:fixed; bottom:1rem; left:1rem; z-index:40; display:flex; align-items:center; gap:.65rem; max-width:min(22rem,calc(100vw - 8rem)); padding:.65rem .9rem; border-radius:14px; background:var(--flux-surface); box-shadow:var(--haven-shadow); color:var(--flux-text); }
#mini-pomodoro[hidden],#site-sync-status[hidden] { display:none; }
#mini-pomodoro-clock { font-variant-numeric:tabular-nums; font-weight:500; color:var(--haven-accent); }
#mini-pomodoro-label { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:.75rem; }
.home-link-section > .home-link-section-heading { cursor:pointer; width:fit-content; color:var(--flux-muted); font-size:.85rem; text-align:left; }
.home-link-section > .home-link-section-heading small { font-size:.65rem; }
.link-section-chevron { width:.85rem; height:.85rem; transition:transform .2s; transform:rotate(-90deg); }
.home-link-section-heading[aria-expanded="true"] .link-section-chevron { transform:rotate(0); }
.home-links-collapse { display:grid; }
.home-links-collapse[aria-hidden="true"] { grid-template-rows:0fr; }
.home-links-collapse[aria-hidden="false"] { grid-template-rows:1fr; }
#notes-section .notes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:1px; column-gap:1.15rem; row-gap:0; align-items:start; }
#notes-section .notes-grid > .note-card { width:100%; min-width:0; margin:0; }
@media(max-width:850px) { #notes-section .notes-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { #notes-section .notes-grid { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .home-links-collapse,.home-link-section-heading .link-section-chevron { transition:none!important; } }

@media(prefers-reduced-motion:reduce) { .link-section-chevron { transition:none; } }

/* Section: shared-site-topbar */
.site-topbar { --topbar-bg:#131313; --topbar-line:#ffffff26; --topbar-shadow:#00000066; position:sticky; top:0; z-index:60; background:var(--topbar-bg); color:var(--haven-text); border-bottom:1px solid var(--topbar-line); }
:root[data-style="flux-light"] .site-topbar { --topbar-bg:#fff; --topbar-line:#00000024; --topbar-shadow:#00000022; }
.site-topbar[hidden] { display:none; }
.site-topbar::after { position:absolute; top:100%; left:0; right:0; height:24px; background:radial-gradient(ellipse at 50% 0%,var(--topbar-shadow) 0%,transparent 72%); pointer-events:none; }
.site-topbar-inner { box-sizing:border-box; display:flex; align-items:center; gap:1rem; min-height:64px; max-width:80rem; margin:0 auto; padding:.55rem clamp(1rem,3vw,2rem); }
.site-home-logo { position:relative; isolation:isolate; flex:none; display:grid; place-items:center; width:42px; height:42px; border:0; padding:0; background:transparent; color:var(--haven-text); cursor:pointer; }
.site-home-logo svg { display:block; width:42px; height:42px; overflow:visible; transform-origin:center; transition:transform 120ms ease-out; }
.site-logo-shape { transform-box:fill-box; transform-origin:center; transform:rotate(12deg); }
.site-home-logo:active:not(:disabled) svg { transform:perspective(180px) translateZ(-32px); }
.site-home-logo.is-animating svg { animation:site-logo-rebound 580ms ease-out 1 both; }
@keyframes site-logo-rebound {
    0% { transform:perspective(180px) translateZ(-32px); }
    30% { transform:perspective(180px) translateZ(11px); }
    55% { transform:perspective(180px) translateZ(-5px); }
    76% { transform:perspective(180px) translateZ(2px); }
    100% { transform:perspective(180px) translateZ(0); }
}
@media(prefers-reduced-motion:reduce) {
    .site-home-logo svg { transition:none; }
    .site-home-logo:active:not(:disabled) svg { transform:scale(.97); }
    .site-home-logo.is-animating svg { animation:none; }
}
.site-home-logo span { font-size:2rem; font-weight:700; line-height:1; letter-spacing:-.09em; padding-right:.09em; }
.site-home-logo:hover { transform:none; }
.site-home-logo:focus-visible { outline:2px solid var(--haven-accent); outline-offset:4px; border-radius:10px; }
#site-page-title { flex:1; min-width:0; margin:0; font-family:inherit; font-size:clamp(1.15rem,2.5vw,1.65rem); font-weight:600; letter-spacing:-.045em; line-height:1.2; overflow-wrap:anywhere; }
#site-page-title .site-title-accent { color:var(--haven-accent); }
.site-topbar .home-controls { position:static!important; display:flex!important; align-items:center; gap:.45rem; margin:0!important; padding:0!important; }
:root[data-style^="flux"] .site-topbar .flux-style-control { border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; padding:0!important; }
:root[data-style^="flux"] .site-topbar [data-theme-toggle] { border:0!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; }
.site-topbar .home-controls button { display:grid; place-items:center; width:30px; height:30px; padding:.25rem; border:0; background:transparent; cursor:pointer; }

body .page-section .flux-page-header:not(.haven-header) { display:none!important; }
body #flux-dashboard > .haven-header { display:block!important; padding:0!important; margin:0!important; min-height:0!important; }
body #flux-dashboard-title,
body #dashboard-date { display:none!important; }
body #flux-dashboard .haven-notifications { position:static!important; margin:0 0 1.25rem!important; }
body #flux-dashboard .haven-notifications:has(>button:not([hidden])) { display:flex!important; }
body #flux-dashboard .haven-notifications:not(:has(>button:not([hidden]))) { display:none!important; }
@media(max-width:600px) {
 .site-topbar-inner { min-height:58px; gap:.6rem; padding:.45rem 1rem; }
 .site-home-logo { width:32px; height:36px; } .site-home-logo svg { width:36px; height:36px; } .site-home-logo span { font-size:1.65rem; }
 .site-topbar .home-controls { gap:.15rem; } .site-topbar .home-controls button { width:26px; height:28px; }
}
@media print { .site-topbar { display:none!important; } }

/* Section: shared-view-interactions */
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper),#genealogy-section) :is(.view-desktop-tabs,.todo-tabs[role="tablist"]) .todo-tab { transition:color .18s,background .18s; }
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper),#genealogy-section) :is(.view-desktop-tabs,.todo-tabs[role="tablist"]) .todo-tab.is-active { font-weight:550!important; }
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper),#genealogy-section) :is(.view-desktop-tabs,.todo-tabs[role="tablist"]) .todo-tab:not(.is-active):is(:hover,:focus-visible),
.view-mobile-select .custom-select__option:not([aria-selected="true"]):is(:hover,:focus-visible) { color:var(--flux-text); background:var(--flux-surface-hover); }
#genealogy-section > #genealogy-content > .view-mobile-select { margin-bottom:.75rem; }

/* Shared Atelier identity. Presentation only: layout and state classes stay intact. */
:root[data-style^="flux"] body {
    --haven-bg: #101823;
    --haven-card: #172231;
    --haven-text: #edf2fa;
    --haven-muted: #a4b3c8;
    --haven-line: #83a7ed26;
    --haven-accent: #83a7ed;
    --haven-shadow: 0 12px 30px -24px #00000065;
    --flux-bg: var(--haven-bg);
    --flux-surface: var(--haven-card);
    --flux-surface-hover: #22334b;
    --flux-text: var(--haven-text);
    --flux-muted: var(--haven-muted);
    --flux-line: #83a7ed33;
    --site-accent: #83a7ed;
    --site-accent-soft: #83a7ed1a;
    --task-priority-high: #cf6570;
    --task-priority-medium: #c28d46;
    --task-priority-low: #549b87;
    --task-wash-high: #dc8c91;
    --task-wash-medium: #e4c093;
    --task-wash-low: #99c6b9;
    --site-control-bg: var(--site-accent-soft);
    --site-control-ink: var(--site-accent);
    background: radial-gradient(ellipse at 85% 5%, #356bca26, transparent 50%),
        radial-gradient(ellipse at 0% 65%, #167b8520, transparent 55%), var(--haven-bg);
    background-attachment: fixed;
    color: var(--haven-text);
}
:root[data-style="flux-light"] body {
    --haven-bg: #dce5f0;
    --haven-card: #ffffff;
    --haven-text: #14253d;
    --haven-muted: #475a74;
    --haven-line: #244f9640;
    --haven-accent: #315fa8;
    --haven-shadow: 0 12px 30px -24px #18385d25;
    --flux-surface-hover: #dce6f3;
    --flux-line: #244f964d;
    --site-accent: #244f96;
    --site-accent-soft: #244f961c;
    --task-priority-high: #b34450;
    --task-priority-medium: #93631f;
    --task-priority-low: #357563;
    background: radial-gradient(ellipse at 85% 5%, #5285db26, transparent 50%),
        radial-gradient(ellipse at 0% 65%, #258d9a18, transparent 55%), var(--haven-bg);
}
:root[data-style^="flux"] .home-atmosphere {
    background: radial-gradient(ellipse at 90% 0%, #356bca14, transparent 55%),
        radial-gradient(ellipse at 0% 90%, #258d9a10, transparent 50%);
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__grid {
    background: radial-gradient(circle at 30% 22%, #6389cd20, transparent 68%);
    box-shadow: inset 1px 1px 0 #6389cd20, 0 0 0 2.4rem #6389cd09, 0 0 0 5rem #6389cd06;
    opacity: .55;
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__orbit {
    border-color: #6389cd40;
    box-shadow: 0 0 0 1.3rem #6389cd09, 0 0 0 3rem #6389cd05;
    opacity: .5;
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch {
    border-color: #6389cd25;
    border-top-color: transparent;
    border-left-color: #6389cd45;
    filter: none;
}
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch::before { border-color: #6389cd30; border-right-color: transparent; }
:root[data-style^="flux"] .home-atmosphere .home-atmosphere__arch::after { border-color: #6389cd15; border-bottom-color: transparent; }

/* Warm accents sit alongside meaningful task, finance and activity colours. */
:root[data-style^="flux"] body :is(#projects-wrapper,#properties-wrapper) {
    --project-accent: var(--site-accent);
    --project-ink: var(--haven-text);
    --project-soft: var(--haven-card);
    --project-panel: linear-gradient(125deg, var(--site-accent-soft), var(--haven-card));
}
:root[data-style^="flux"] body #notes-section { --notes-accent: var(--site-accent); }
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper),#overview-wrapper,#genealogy-section) {
    color: var(--haven-text);
    --modal-accent: var(--site-accent);
}
:root[data-style^="flux"] body .page-section .page-title-accent { color: var(--site-accent); }
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper),#overview-wrapper,#genealogy-section) :is(.workspace-card,.note-card,.sport-card,.todo-card) {
    background: radial-gradient(ellipse at 100% 0%, var(--site-accent-soft), transparent 75%), var(--haven-card);
    border-radius: 12px;
    box-shadow: var(--haven-shadow);
}
:root[data-style^="flux"] body :is(#notes-section,:is(#projects-wrapper,#properties-wrapper),.page-linked-notes,.note-preview) .note-card {
    background: radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--card-color, var(--site-accent)) 13%, transparent), transparent 75%), var(--haven-card);
}
:root[data-style^="flux"] body :is(#gaming-section,#livres-section) .library-stats-card {
    background: radial-gradient(ellipse at 100% 0%, var(--site-accent-soft), transparent 75%), var(--haven-card);
    border-radius: 12px;
    box-shadow: var(--haven-shadow);
}
:root[data-style^="flux"] body :is(#gaming-section,#livres-section) :is(.library-entry,.series-group):hover {
    background: var(--site-accent-soft);
}
:root[data-style^="flux"] body #overview-content .dashboard-widget {
    background: radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--widget-color) 12%, transparent), transparent 75%), var(--haven-card);
    border-color: var(--haven-line);
}
:root[data-style^="flux"] body #overview-content .dashboard-watermark { opacity: .14; }
:root[data-style^="flux"] body #genealogy-section :is(.genealogy-toolbar,.genealogy-workbench,.genealogy-empty) { background-color: var(--haven-card); border-color: var(--haven-line); }
:root[data-style^="flux"] body #comptes-section :is(#col-current,#col-savings,#col-third-party,#loans-container,#monthly-forecast-container) > div,
:root[data-style^="flux"] body #comptes-section .accounts-overview article,
:root[data-style^="flux"] body #comptes-section #stats-card {
    background: radial-gradient(ellipse at 100% 0%, color-mix(in srgb, var(--accounts-accent) 10%, transparent), transparent 75%), var(--haven-card);
    border-color: var(--haven-line);
    box-shadow: var(--haven-shadow);
}
:root[data-style^="flux"] body .page-section :is(.todo-input,.todo-search,.todo-sort,.custom-select__trigger),
:root[data-style^="flux"] body dialog :is(.todo-input,.custom-select__trigger) {
    background: var(--flux-surface);
    color: var(--flux-text);
    border-color: var(--flux-line);
    border-radius: 8px;
}
:root[data-style^="flux"] body .custom-select__menu { background: var(--haven-card); border-color: var(--haven-line); }
:root[data-style^="flux"] body .custom-select__option[aria-selected="true"] { background: var(--site-accent-soft); color: var(--haven-text); }
/* One appearance for every add button, using the compact Game / Book style.
   Display and visibility remain controlled by the existing state classes. */
:root[data-style^="flux"] body :is(.page-section,dialog) :is(.flux-create-button,#btn-add-todo,#btn-add-birthday,#home-add-link) {
    min-height: 0 !important;
    height: auto !important;
    padding: .3rem .7rem !important;
    background: var(--site-control-bg) !important;
    color: var(--site-control-ink) !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-family: inherit !important;
    font-size: .76rem !important;
    font-weight: 550 !important;
    letter-spacing: 0 !important;
    line-height: 1.5 !important;
    filter: none !important;
}
:root[data-style^="flux"] body :is(.page-section,dialog) :is(.flux-create-button,#btn-add-todo,#btn-add-birthday,#home-add-link):hover:not(:disabled) {
    background: color-mix(in srgb, var(--site-accent) 20%, var(--haven-card)) !important;
    transform: translateY(-2px);
    box-shadow: none !important;
}
:root[data-style^="flux"] body :is(#todos-section,#notes-section,#sport-section,#gaming-section,#livres-section,#comptes-section,:is(#projects-wrapper,#properties-wrapper)) .todo-tab.is-active {
    background: var(--site-accent-soft);
    color: var(--site-accent);
    box-shadow: none;
}
:root[data-style^="flux"] body dialog.modal-base {
    background: var(--haven-card);
    color: var(--haven-text);
    --modal-accent: var(--site-accent);
    box-shadow: 0 30px 90px -35px #00000080;
}
:root[data-style^="flux"] body dialog.modal-base::backdrop { background: #0d12126b; backdrop-filter: blur(12px); }
:root[data-style^="flux"] body :is(#modal-note,#modal-note-sections,#modal-home-link,#modal-home-sections,#modal-project-editor) button[type="submit"] {
    background: var(--site-accent-soft) !important;
    color: var(--site-accent) !important;
}
:root[data-style^="flux"] body #login-section .login-panel {
    padding: 22px;
    background: radial-gradient(ellipse at 100% 0%, var(--site-accent-soft), transparent 70%), var(--haven-card);
    border-color: var(--haven-line);
    border-radius: 12px;
    box-shadow: var(--haven-shadow);
}
:root[data-style^="flux"] body #login-section .login-title { font-size: 32px; font-weight: 400 !important; letter-spacing: -.055em !important; }
:root[data-style^="flux"] body #login-section .login-favicon { width: 64px; height: 64px; margin-bottom: 16px; }
:root[data-style^="flux"] body #login-section .login-access-label { font-size: 11px; letter-spacing: .15em; text-transform: uppercase; }
:root[data-style^="flux"] body #login-section .login-field { margin-top: 0; }
:root[data-style^="flux"] body #login-section .login-field label { margin-left: 0; margin-bottom: 10px; color: var(--haven-muted); }
:root[data-style^="flux"] body #login-section .login-field input { border-radius: 10px; background: var(--haven-bg); border-color: var(--haven-line); padding-right: 48px; letter-spacing: .04em; }
:root[data-style^="flux"] body #login-section .login-submit { right: 6px; bottom: 6px; width: 36px; height: 36px; border-radius: 50%; background: var(--site-control-bg); color: var(--site-control-ink); box-shadow: none; }
:root[data-style^="flux"] body #login-section .login-submit:hover { background: color-mix(in srgb, var(--site-accent) 20%, var(--haven-card)); }
:root[data-style^="flux"] body #login-section .login-field input:focus { border-color: var(--site-accent); box-shadow: 0 0 0 3px var(--site-accent-soft); }
:root[data-style^="flux"] body #login-section .login-field label { font-size: 11px; }
:root[data-style^="flux"] body .page-section :is(small,.dashboard-caption,.note-archived-pill,.todo-tag,.dashboard-book-tags) { font-size: max(11px, .65rem); }
:root[data-style^="flux"] body .page-section :is(input,textarea,button,a):focus-visible { outline-color: var(--site-accent); }
@media (forced-colors: active) {
    :root[data-style^="flux"] body .home-atmosphere { display: none; }
    :root[data-style^="flux"] body .page-section .flux-create-button { border-color: ButtonText !important; }
}

/* Maeleo Atelier — a quiet, editorial home. */
#flux-dashboard {
    --atelier-paper: #172231;
    --atelier-ink: #edf2fa;
    --atelier-muted: #a4b3c8;
    --atelier-line: #ffffff18;
    --atelier-gold: #83a7ed;
}
:root[data-style="flux-light"] #flux-dashboard {
    --atelier-paper: var(--haven-card);
    --atelier-ink: var(--haven-text);
    --atelier-muted: var(--haven-muted);
    --atelier-line: var(--haven-line);
    --atelier-gold: var(--site-accent);
}
#flux-dashboard .atelier-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(250px, .7fr);
    align-items: center;
    min-height: 280px;
    gap: 24px;
    padding: clamp(24px, 3vw, 36px);
    margin-bottom: 24px;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--atelier-ink);
}
.atelier-hero-copy { position: relative; z-index: 1; }
.atelier-eyebrow { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 500; letter-spacing: .2em; color: var(--atelier-muted); }
.atelier-eyebrow > span:first-child { width: 5px; height: 5px; border-radius: 50%; background: var(--atelier-gold); }

#flux-dashboard .atelier-hero h2 { margin: 20px 0 14px; font-size: clamp(38px, 4vw, 56px); font-weight: 400; letter-spacing: -.065em; line-height: 1.04; color: var(--atelier-ink); }
.atelier-hero h2 em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.055em; color: var(--atelier-gold); }
.atelier-intro { font-size: 12px; line-height: 1.9; color: var(--atelier-muted); }

.atelier-sculpture { position: absolute; width: 410px; right: -60px; top: 50%; transform: translateY(-50%); opacity: .16; pointer-events: none; color: var(--atelier-gold); }
.atelier-sculpture svg { display: block; width: 100%; }

#flux-dashboard .home-pomodoro { padding: 20px 26px; border: 1px solid var(--atelier-line); border-radius: 14px; box-shadow: none; background: var(--atelier-paper); }
:root[data-style="flux-light"] #flux-dashboard .home-pomodoro { background: #faf9f5; }
#flux-dashboard .home-pomodoro-copy h2 { font-size: 13px; letter-spacing: -.02em; }
#flux-dashboard .haven-focus { grid-template-columns: 1.25fr 1fr; gap: 18px; }
#flux-dashboard .haven-feature { min-height: 245px; padding: 30px; border-radius: 12px; box-shadow: none; }
:root[data-style^="flux"] #flux-dashboard .haven-feature--dashboard { background: #183f69; color: #edf2fa; }
:root[data-style="flux-light"] #flux-dashboard .haven-feature--dashboard { background: #c1d5ef; color: #183f69; }
:root[data-style="flux-light"] #flux-dashboard .haven-feature--projects { background: #c9e1e8; color: #183f4e; }
:root[data-style^="flux"] #flux-dashboard .haven-feature--projects { background: #dde8ed; color: #235365; }
:root[data-style="flux-dark"] #flux-dashboard .haven-feature--projects { background: #18303c; color: #cbeaf3; }
#flux-dashboard .haven-feature-copy > strong { font-size: clamp(28px, 3vw, 40px); font-weight: 400; margin: 24px 0 12px; letter-spacing: -.05em; }
#flux-dashboard .haven-feature .haven-kicker { font-size: 11px; letter-spacing: .18em; }
#flux-dashboard .haven-feature .haven-feature-cta { padding: 0 0 7px; border-radius: 0; border-bottom: 1px solid currentColor; background: transparent; font-size: 11px; box-shadow: none; }
#flux-dashboard .haven-feature::before { opacity: .35; }
#flux-dashboard .haven-dashboard-art { opacity: .4; transform: rotate(-12deg); }
#flux-dashboard .haven-project-art { opacity: .55; }
#flux-dashboard .haven-section { margin-top: 42px; }
#flux-dashboard .haven-section-heading { padding-bottom: 14px; border-bottom: 1px solid var(--atelier-line); margin-bottom: 18px; }
:root[data-style^="flux"] #flux-dashboard .haven-section-heading h2 { font-size: 15px; font-weight: 500 !important; }
#flux-dashboard .haven-space-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
:root[data-style^="flux"] #flux-dashboard .haven-space { padding: 20px; border: 1px solid var(--atelier-line); border-radius: 12px; }

#flux-dashboard .haven-space-top { min-height: 20px; margin-bottom: 27px; }
#flux-dashboard .haven-space-watermark { right: auto; opacity: .8; transform: none; mask-image: none; }
:root[data-style^="flux"] #flux-dashboard .haven-space-watermark { opacity: .8; }
#flux-dashboard .haven-space:nth-child(even) .haven-space-watermark { transform: none; }
:root[data-style^="flux"] #flux-dashboard .haven-space > strong { font-size: 14px; font-weight: 500; }
#flux-dashboard .haven-space .haven-description { font-size: 11px; line-height: 1.7; }
#flux-dashboard .haven-space::after { display: none; }
:root[data-style^="flux"] #flux-dashboard .haven-space:is(:hover,:focus-visible) { border-color: var(--space-accent); background: radial-gradient(ellipse at 110% 0%, color-mix(in srgb, var(--space-accent) 35%, transparent), transparent 80%), var(--atelier-paper); transform: translateY(-4px); box-shadow: 0 14px 28px #0000000a; }
#flux-dashboard .haven-links-section { margin-top: 40px; }
#flux-dashboard .haven-footer { margin-top: 26px; }

@media (max-width: 900px) {
    #flux-dashboard .haven-space-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    #flux-dashboard .atelier-hero { min-height: 280px; }
    .atelier-eyebrow { font-size: 11px; }
}
@media (max-width: 600px) {
    #flux-dashboard .atelier-hero { grid-template-columns: 1fr; padding: 28px; min-height: 0;  }
    #flux-dashboard .atelier-hero h2 { font-size: clamp(38px, 10vw, 48px); margin-top: 20px; }
    .atelier-sculpture { width: 310px; right: -130px; top: 100px; opacity: .18; }
}

/* Useful information belongs to the opening composition. */
body #flux-dashboard .atelier-hero .haven-notifications {
    position: relative !important;
    margin: 18px 0 0 !important;
    gap: 0;
    max-width: none;
    flex-wrap: wrap;
    align-items: stretch;
}
#flux-dashboard .atelier-hero .haven-notifications .home-notification {
    gap: 8px;
    padding: 7px 12px 7px 0;
    margin-right: 12px;
    min-height: 30px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--atelier-ink);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.5;
    text-align: left;
    box-shadow: none;
    transition: color .2s;
}
#flux-dashboard .atelier-hero .home-notification::before { margin: 0; width: 4px; height: 4px; flex: none; background: var(--atelier-gold); }
#flux-dashboard .atelier-hero .home-notification::after { content:''; width:1em; height:1em; flex:none; color:var(--atelier-muted); background:currentColor; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 17 7M7 7h10v10'/%3E%3C/svg%3E") center/contain no-repeat; }
#flux-dashboard .atelier-hero .home-notification:hover { color: var(--atelier-gold); filter: none; }
#flux-dashboard .atelier-hero #home-account-warning { background: transparent; }
#flux-dashboard .atelier-hero .home-pomodoro {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 14px;
    padding: 14px 0 14px 24px;
    margin: 0;
    border: 0;

    border-radius: 0;
    background: transparent;
    box-shadow: none;
    min-width: 0;
}
#flux-dashboard .atelier-hero .home-pomodoro { --atelier-gold:#c77b61; }
:root[data-style="flux-light"] #flux-dashboard .atelier-hero .home-pomodoro { --atelier-gold:#a34f38; }
#mini-pomodoro { --haven-accent:#c77b61; }
:root[data-style="flux-light"] #mini-pomodoro { --haven-accent:#a34f38; }
#flux-dashboard .atelier-hero .home-pomodoro-copy { flex: none; text-align: center; }
#flux-dashboard .atelier-hero .home-pomodoro-copy h2 { margin: 0; font-family: inherit; font-weight: 500; text-transform: uppercase; color: var(--atelier-gold); }
#flux-dashboard .atelier-hero .home-pomodoro-copy p { margin-top: 7px; color: var(--atelier-muted); }
#flux-dashboard .atelier-hero .home-pomodoro-clock { flex: none; width: min(190px, 100%); }
#flux-dashboard .atelier-hero #pomodoro-clock { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(48px, 5vw, 68px); letter-spacing: -.055em; color: var(--atelier-ink); line-height: 1; }
#flux-dashboard .atelier-hero .home-pomodoro-track { height: 1px; margin: 14px 12px 0; background: var(--atelier-line); }
#flux-dashboard .atelier-hero #pomodoro-progress { background: var(--atelier-gold); }
#flux-dashboard .atelier-hero .home-pomodoro-controls { width: auto; justify-content: center; align-items: center; flex-wrap: wrap; gap: 9px; }
#flux-dashboard .atelier-hero .home-pomodoro-controls label { flex-direction: row; align-items: center; gap: 6px; font-size: 11px; color: var(--atelier-muted); }
#flux-dashboard .atelier-hero #pomodoro-duration { height: 30px; border: 0; border-bottom: 1px solid var(--atelier-line); border-radius: 0; background: transparent; color: var(--atelier-ink); font-size: 11px; }
#flux-dashboard .atelier-hero #pomodoro-start { min-height: 30px; color: var(--atelier-paper); font-size: 11px; }
#flux-dashboard .atelier-hero #pomodoro-reset { min-height: 30px; padding: 6px; background: transparent; color: var(--atelier-muted); font-size: 11px; }
#flux-dashboard .atelier-hero #pomodoro-error { flex-basis: auto; max-width: 250px; text-align: center; font-size: 11px; line-height: 1.5; overflow-wrap: anywhere; }
#flux-dashboard .haven-space-watermark { width: 27px; height: 27px; top: 20px; left: 20px; }
:root[data-style^="flux"] #flux-dashboard .haven-space-watermark { color: color-mix(in srgb, var(--space-accent) 55%, var(--atelier-gold)); opacity: .85; }
#flux-dashboard .haven-space-watermark svg { stroke-width: 1.25; }
#flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-space-watermark { transform: translateY(-2px); opacity: 1; }
@media (max-width: 760px) {
    #flux-dashboard .atelier-hero { grid-template-columns: minmax(0, 1fr) minmax(190px, .65fr); gap: 18px; padding: 24px; }

    #flux-dashboard .atelier-hero .home-pomodoro { padding-left: 18px; }
}
@media (max-width: 600px) {
    #flux-dashboard .atelier-hero { grid-template-columns: 1fr; gap: 22px; }
    #flux-dashboard .atelier-hero .home-pomodoro { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; border: 0; padding: 6px 0 0; }
    #flux-dashboard .atelier-hero .home-pomodoro-copy { text-align: left; }
    #flux-dashboard .atelier-hero .home-pomodoro-clock { width: 115px; }
    #flux-dashboard .atelier-hero #pomodoro-clock { font-size: 42px; }
    #flux-dashboard .atelier-hero .home-pomodoro-controls { grid-column: 1 / -1; justify-content: flex-start; }
    #flux-dashboard .atelier-hero #pomodoro-error { grid-column: 1 / -1; max-width: none; text-align: left; }
    #flux-dashboard .haven-space-watermark { top: 18px; left: 18px; }
}

@media (max-width: 600px) {
    #flux-dashboard .haven-focus { grid-template-columns: 1fr; }
    #flux-dashboard .haven-feature { min-height: 230px; padding: 26px; }
    #flux-dashboard .haven-space-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    :root[data-style^="flux"] #flux-dashboard .haven-space { padding: 18px; }
    #flux-dashboard .home-pomodoro { padding: 18px; }
}

/* Explicit theme scopes take precedence over the legacy inline themes. */
:root[data-style^="flux"] #flux-dashboard .atelier-hero .home-pomodoro {
    background: transparent;
    border: 0;
    box-shadow: none;
    backdrop-filter: none;
}
#flux-dashboard .atelier-hero .home-pomodoro::before,
#flux-dashboard .atelier-hero .home-pomodoro::after { content: none; }
#flux-dashboard .atelier-hero #pomodoro-clock {
    font-family: Inter, sans-serif;
    font-weight: 300;
    letter-spacing: -.07em;
    color: var(--atelier-gold);
}
#flux-dashboard .atelier-hero #pomodoro-start {
    color: var(--atelier-ink);
    border-bottom: 1px solid var(--atelier-gold);
    margin: 0 8px;
    letter-spacing: .04em;
}
#flux-dashboard .atelier-hero #pomodoro-start:hover:not(:disabled) { color: var(--atelier-gold); }
#flux-dashboard .atelier-hero .home-pomodoro-track { opacity: .6; }
#flux-dashboard .atelier-hero .home-pomodoro-copy h2 { font-size: 11px; letter-spacing: .22em; }
#flux-dashboard .atelier-hero .home-pomodoro-copy p { font-size: 11px; }
:root[data-style^="flux"] #flux-dashboard .haven-space .haven-space-watermark {
    left: auto;
    bottom: auto;
    z-index: 0;
    transform: rotate(-12deg);
}
:root[data-style^="flux"] #flux-dashboard .haven-space:nth-child(even) .haven-space-watermark { transform: rotate(10deg); }
:root[data-style^="flux"] #flux-dashboard .haven-space .haven-space-watermark svg { stroke-width: .55; }
:root[data-style^="flux"] #flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-space-watermark {
    transform: rotate(-5deg) translateY(-2px);
}
#flux-dashboard .haven-space .haven-arrow { opacity: .35; }
:root[data-style^="flux"] #flux-dashboard .haven-links-section {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding: 15px 20px 17px;
    border: 1px solid var(--atelier-line);
    border-radius: 12px;
    background: var(--atelier-paper);
    box-shadow: none;
}
:root[data-style="flux-light"] #flux-dashboard .haven-links-section { background: var(--atelier-paper); }
#flux-dashboard .haven-links-section::before,
#flux-dashboard .haven-links-section::after { content: none; }
:root[data-style^="flux"] #flux-dashboard .haven-links-section .haven-links-watermark {
    width: 210px;
    height: 210px;
    top: 35px;
    right: -40px;
    color: var(--atelier-gold);
    opacity: .12;
    transform: rotate(-18deg);
    z-index: -1;
    mask-image: linear-gradient(100deg, transparent 5%, black 75%);
}
#flux-dashboard .haven-links-section .haven-links-watermark svg { stroke-width: .45; }
#flux-dashboard .haven-links-section .haven-links-watermark svg * { fill: none; stroke-width: .45; }
#flux-dashboard .haven-links-section .haven-section-heading { position: relative; align-items: center; }
#flux-dashboard .haven-links-section .haven-section-heading > svg { display: none; }
#flux-dashboard .haven-links-section .home-links-actions { margin-left: auto; gap: 14px; }
:root[data-style^="flux"] #flux-dashboard .haven-links-section .home-links-actions button {
    border-bottom: 1px solid var(--atelier-line);
    background: transparent;
    box-shadow: none;
    color: var(--atelier-muted);
    font-size: 11px;
    font-weight: 400;
}
:root[data-style^="flux"] #flux-dashboard .haven-links-section .home-links-actions button:hover { color: var(--atelier-gold); }
#flux-dashboard .haven-links-section .home-link-section-heading { color: var(--atelier-muted); font-size: 11px; }
#flux-dashboard .haven-links-section .home-link-row { border-bottom: 1px solid var(--atelier-line); }
#flux-dashboard .haven-links-section .home-link-row strong { font-size: 12px; font-weight: 400; color: var(--atelier-ink); }
#flux-dashboard .haven-links-section .home-link-row a:hover strong { color: var(--atelier-gold); }
#flux-dashboard .haven-links-section .home-link-row small { font-size: 11px; color: var(--atelier-muted); }

/* The shared navigation follows the same paper, ink and champagne palette. */
:root[data-style^="flux"] .site-topbar {
    background: #172231f0;
    color: #edf2fa;
    border-bottom: 1px solid #83a7ed17;
    backdrop-filter: blur(18px);
    box-shadow: none;
}
:root[data-style="flux-light"] .site-topbar { background: #f3f6fbed; color: #192a43; border-bottom-color: #244f9618; }
.site-topbar::after { content: none; }
.site-topbar .site-topbar-inner { min-height: 52px; padding: 7px clamp(1.25rem,4vw,3rem); gap: 13px; }
.site-topbar .site-home-logo, .site-topbar .site-home-logo svg { width: 30px; height: 30px; }
.site-topbar #site-page-title { font-size: 20px; font-weight: 400; letter-spacing: -.055em; color: inherit; }
.site-topbar #site-page-title .site-title-accent { color: #6389cd; }
.site-topbar .home-controls button { color: #73849b; }
.site-topbar .home-controls button:hover { color: #6389cd; }
.site-topbar .home-controls svg { width: 17px; height: 17px; stroke-width: 1.1; }
.site-topbar .site-logo-shape { fill: none; stroke: #6389cd; stroke-width: 1.2; }
.site-topbar .site-home-logo svg > path:not(.site-logo-shape) { fill: #6389cd; }
.site-topbar .site-home-logo svg > circle { fill: #6389cd; opacity: .3; }

/* Home card materials. */
:root[data-style^="flux"] #flux-dashboard .haven-space {
    background: radial-gradient(ellipse at 110% 0%, color-mix(in srgb, var(--space-accent) 7%, transparent), transparent 75%), var(--atelier-paper);
    border-color: color-mix(in srgb, var(--space-accent) 12%, var(--atelier-line));
    box-shadow: inset 0 1px 0 #ffffff05;
}
:root[data-style="flux-light"] #flux-dashboard .haven-space {
    background: radial-gradient(ellipse at 110% 0%, color-mix(in srgb, var(--space-accent) 10%, transparent), transparent 80%), var(--atelier-paper);
    box-shadow: inset 0 1px 0 #ffffff80;
}
:root[data-style^="flux"] #flux-dashboard .haven-space .haven-space-watermark {
    width: 116px; height: 116px; right: -12px; top: 5px;
    opacity: .42;
    color: color-mix(in srgb, var(--space-accent) 65%, var(--atelier-gold));
    mask-image: linear-gradient(100deg, transparent, black 65%);
}
:root[data-style^="flux"] #flux-dashboard .haven-space .space-art-symbol { stroke-width: .65; }
:root[data-style^="flux"] #flux-dashboard .haven-space:is(:hover,:focus-visible) .haven-space-watermark { opacity: .6; }

#flux-dashboard .haven-feature .haven-feature-cta { border: 0; }

:root[data-style^="flux"] #flux-dashboard .haven-links-section .home-links-actions button { border: 0; border-radius: 999px; padding: 7px 12px; }
:root[data-style^="flux"] #flux-dashboard .haven-links-section #home-add-link { background: color-mix(in srgb, var(--atelier-gold) 12%, transparent); color: var(--atelier-gold); }
:root[data-style^="flux"] #flux-dashboard .haven-links-section .home-links-actions button:hover { background: color-mix(in srgb, var(--atelier-gold) 15%, transparent); }
#flux-dashboard .haven-links-section .home-link-row { border: 0; border-radius: 6px; padding: 10px 8px; }
#flux-dashboard .haven-links-section .home-link-row > button:hover { color: var(--atelier-gold); }
#flux-dashboard .haven-footer { border-top: 1px solid var(--atelier-line); padding: 24px 0 8px; color: var(--atelier-muted); }
#flux-dashboard .haven-footer > span { color: var(--atelier-ink); }
#flux-dashboard .haven-footer > span > span { color: var(--atelier-gold); font-weight: 400; opacity: .75; vertical-align: middle; }
#flux-dashboard .haven-footer > p { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: 12px; color: var(--atelier-muted); }
#flux-dashboard .haven-footer > a { border: 0; text-decoration: none; color: var(--atelier-muted); }
#flux-dashboard .haven-footer > a:hover { color: var(--atelier-gold); }
@media (max-width: 600px) {
    #flux-dashboard .haven-links-section { padding: 15px 20px 17px; }
    :root[data-style^="flux"] #flux-dashboard .haven-space .haven-space-watermark { width: 100px; height: 100px; right: -16px; top: 12px; }
    #flux-dashboard .haven-links-section .haven-section-heading { flex-wrap: wrap; gap: 10px; }
    .site-topbar .site-topbar-inner { min-height: 48px; gap: 10px; }
    .site-topbar #site-page-title { font-size: 18px; }
}

/* Final spacing and type refinements. */
:root[data-style^="flux"] #flux-dashboard .haven-space {
    min-height: 144px;
    padding-top: 15px;
    padding-bottom: 17px;
}
#flux-dashboard .haven-space .haven-space-top { margin-bottom: auto; }
:root[data-style^="flux"] #flux-dashboard .haven-space > strong { margin-top: 28px; }
#flux-dashboard .haven-space .haven-description { margin-top: 5px; }
#flux-dashboard .atelier-hero #pomodoro-start {
    border: 0;
    border-radius: 0;
    padding: 6px 3px;
    background: transparent;
}
#flux-dashboard .atelier-hero #pomodoro-duration {
    width: 34px;
    padding: 4px 0;
    text-align: center;
    appearance: textfield;
    -moz-appearance: textfield;
}
#flux-dashboard .atelier-hero #pomodoro-duration::-webkit-inner-spin-button,
#flux-dashboard .atelier-hero #pomodoro-duration::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
#flux-dashboard .haven-links-section .haven-section-heading { border-bottom: 0; padding-bottom: 0; }
#flux-dashboard .haven-footer { padding-top: 12px; }
#flux-dashboard .haven-footer > span {
    font-family: inherit;
    font-size: 20px;
    font-weight: 400;
    letter-spacing: -.055em;
    line-height: 1.2;
}
/* Slightly larger text for Home's smallest labels. */
#flux-dashboard .haven-section-heading > span,
#flux-dashboard .haven-section-heading p,
#flux-dashboard .haven-links-section .home-link-section-heading small,
#flux-dashboard .haven-links-section .home-links-empty,
#flux-dashboard .haven-links-section .home-link-row > button,
#flux-dashboard .haven-footer > a,

body:has(#dashboard-wrapper:not(.hidden)) #site-sync-status,
body:has(#dashboard-wrapper:not(.hidden)) #mini-pomodoro { font-size: 11px; }
/* Shared welcome: editorial introduction, integrated timer and existing navigation. */
#dashboard-wrapper { overflow: visible; }
#flux-dashboard .atelier-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 0;
    gap: 24px;
    margin-bottom: 24px;
    overflow: visible;
}
#flux-dashboard .atelier-hero-copy { padding: 12px 0 0; }
#flux-dashboard .atelier-hero h2 { font-size: clamp(38px, 10vw, 52px); margin: 16px 0 12px; }
.atelier-eyebrow { font-size: 10px; letter-spacing: .12em; }
.atelier-intro { font-size: 12px; line-height: 1.65; }
#flux-dashboard .atelier-hero .atelier-sculpture {
    width: 280px; right: -105px; top: 0; transform: none; opacity: .16;
}
:root[data-style^="flux"] #flux-dashboard .atelier-hero .home-pomodoro {
    display: grid; grid-template-columns: max-content minmax(0, max-content);
    justify-content: center;
    gap: 6px 32px; padding: 18px 0 0; margin: 0;
    border: 0; border-top: 1px solid var(--atelier-line);
    border-radius: 0; background: transparent;
    box-shadow: none; backdrop-filter: none;
}
#flux-dashboard .atelier-hero .home-pomodoro-copy { grid-column: 2; grid-row: 1; text-align: left; display: block; }
#flux-dashboard .atelier-hero .home-pomodoro-copy h2 { font-size: 10px; letter-spacing: .12em; }
#flux-dashboard .atelier-hero .home-pomodoro-copy p { margin: 6px 0 0; font-size: 10px; }
#flux-dashboard .atelier-hero .home-pomodoro-clock { grid-column: 1; grid-row: 1 / 3; align-self: center; width: max-content; min-width: 0; }
#flux-dashboard .atelier-hero #pomodoro-clock { font-size: clamp(38px, 10vw, 48px); font-variant-numeric: tabular-nums; text-align: left; }
#flux-dashboard .atelier-hero .home-pomodoro-track { margin: 8px 0 0; width: 100%; }
#flux-dashboard .atelier-hero .home-pomodoro-controls { grid-column: 2; grid-row: 2; justify-content: flex-start; flex-wrap: nowrap; gap: 4px; }
#flux-dashboard .atelier-hero .home-pomodoro-controls :is(button,input) { min-height: 44px; }
#flux-dashboard .atelier-hero .home-pomodoro-controls label { flex-direction: row; flex-basis: auto; gap: 6px; font-size: 10px; }
#flux-dashboard .atelier-hero #pomodoro-duration { min-height: 28px; width: 30px; border: 0; font-size: 12px; }
#flux-dashboard .atelier-hero #pomodoro-start { margin: 0; padding: 8px; color: var(--atelier-gold); font-size: 12px; font-weight: 600; }
#flux-dashboard .atelier-hero #pomodoro-reset { padding: 8px; font-size: 11px; }
#flux-dashboard .atelier-hero #pomodoro-error { grid-column: 1 / -1; grid-row: 3; max-width: none; text-align: left; }
#flux-dashboard .atelier-hero #pomodoro-error:empty { display: none; }
#flux-dashboard .haven-focus { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
#flux-dashboard .haven-feature { min-height: 185px; padding: 18px 14px; display: flex; }
#flux-dashboard .haven-feature-copy { width: 100%; }
#flux-dashboard .haven-feature-copy > strong { max-width: 100%; font-size: clamp(19px, 5.3vw, 28px); margin: 16px 0 18px; overflow-wrap: normal; }
#flux-dashboard .haven-feature .haven-kicker { font-size: 9px; letter-spacing: .08em; }
#flux-dashboard .haven-feature-copy > .haven-feature-description { display: none; }
#flux-dashboard .haven-feature .haven-feature-cta { font-size: 11px; margin-top: auto; }
#flux-dashboard .haven-dashboard-art, #flux-dashboard .haven-project-art { opacity: .12; }
@media (max-width: 760px) {
    #flux-dashboard .atelier-hero-copy { text-align: center; }
    #flux-dashboard .atelier-hero .atelier-eyebrow,
    #flux-dashboard .atelier-hero .haven-notifications { justify-content: center; }
    #flux-dashboard .atelier-hero :is(#pomodoro-start,#pomodoro-reset) { padding-inline: 4px; }
}
@media (min-width: 761px) {
    #flux-dashboard .atelier-hero { grid-template-columns: minmax(0, 1fr) minmax(260px, .65fr); gap: 40px; padding: 20px 24px; margin-bottom: 24px; }
    #flux-dashboard .atelier-hero h2 { font-size: clamp(44px, 4vw, 56px); }
    #flux-dashboard .atelier-hero .atelier-sculpture { width: 410px; right: -110px; top: 50%; transform: translateY(-50%); opacity: .09; }
    :root[data-style^="flux"] #flux-dashboard .atelier-hero .home-pomodoro { width: 100%; max-width: 300px; justify-self: center; justify-content: normal; padding: 0 0 0 28px; border-top: 0; border-left: 1px solid var(--atelier-line); gap: 14px; }
    #flux-dashboard .atelier-hero .home-pomodoro-copy { grid-column: 1 / -1; grid-row: auto; }
    #flux-dashboard .atelier-hero .home-pomodoro-copy p { margin-top: 8px; font-size: 11px; }
    #flux-dashboard .atelier-hero .home-pomodoro-clock { grid-column: 1 / -1; grid-row: auto; }
    #flux-dashboard .atelier-hero #pomodoro-clock { font-size: 64px; }
    #flux-dashboard .atelier-hero .home-pomodoro-controls { grid-column: 1 / -1; grid-row: auto; justify-content: flex-start; }
    #flux-dashboard .atelier-hero #pomodoro-error { grid-row: auto; }
    #flux-dashboard .atelier-hero .home-pomodoro-controls label { flex-basis: auto; font-size: 11px; }
    #flux-dashboard .haven-focus { grid-template-columns: 1.25fr 1fr; gap: 18px; }
    #flux-dashboard .haven-feature { min-height: 245px; padding: 30px; }
    #flux-dashboard .haven-feature-copy > strong { font-size: clamp(28px, 3vw, 40px); margin: 24px 0 12px; }
    #flux-dashboard .haven-feature .haven-kicker { font-size: 11px; letter-spacing: .18em; }
    #flux-dashboard .haven-feature-copy > .haven-feature-description { display: block; }
    #flux-dashboard .haven-feature .haven-feature-cta { margin-top: 24px; }
    #flux-dashboard .haven-dashboard-art { opacity: .4; }
    #flux-dashboard .haven-project-art { opacity: .55; }
}
@media (max-width: 600px) { #flux-dashboard .haven-footer > span { font-size: 18px; } }

#flux-dashboard .haven-footer > span > span { font-size: .8em; }
:root[data-style^="flux"] body #flux-dashboard small { font-size:11px; }


/* Number artwork mode: remove home-number-art from Home to restore the retained SVGs. */
#flux-dashboard.home-number-art :is(.haven-space-watermark,.haven-links-watermark) > svg { display:none; }
.home-card-number { display:none; }
#flux-dashboard.home-number-art .home-card-number { display:block; font-family:'Inter',sans-serif; font-weight:700; font-variant-numeric:lining-nums tabular-nums; letter-spacing:-.08em; line-height:1; }
:root[data-style^="flux"] #flux-dashboard.home-number-art .haven-space .haven-space-watermark {
    width:auto; height:auto; left:auto; right:-12px; top:-24px; bottom:auto;
    color:var(--space-accent); opacity:.15; mask-image:none; transform:none;
    font-size:110px; pointer-events:none;
    transition:transform .45s ease,opacity .45s ease;
}
:root[data-style^="flux"] #flux-dashboard.home-number-art .haven-space:is(:hover,:focus-visible) .haven-space-watermark {
    opacity:.29; transform:translateY(-4px) scale(1.04);
}
:root[data-style^="flux"] #flux-dashboard.home-number-art .haven-links-section .haven-links-watermark {
    width:auto; height:auto; right:-12px; top:-24px; font-size:110px;
    opacity:.1; mask-image:none; transform:none; pointer-events:none;
    transition:transform .45s ease,opacity .45s ease;
}
:root[data-style^="flux"] #flux-dashboard.home-number-art .haven-links-section:is(:hover,:focus-within) .haven-links-watermark {
    opacity:.2; transform:translateY(-4px);
}
@media(max-width:700px) {
    :root[data-style^="flux"] #flux-dashboard.home-number-art .haven-space .haven-space-watermark,
:root[data-style^="flux"] #flux-dashboard.home-number-art .haven-links-section .haven-links-watermark { font-size:90px; right:-9px; top:-20px; }
}
@media(prefers-reduced-motion:reduce) {
    :root[data-style^="flux"] #flux-dashboard.home-number-art :is(.haven-space-watermark,.haven-links-watermark) { transition:none; }
}
/* Milestone disclosure keeps the existing card and task layout. */
.project-milestone-header { cursor:pointer; }
.project-milestone-toggle { display:flex; align-items:center; gap:.6rem; width:100%; text-align:left; color:inherit; font:inherit; background:transparent; border:0; padding:0; }
.project-milestone-toggle .chevron { width:.85rem; height:.85rem; flex:none; color:var(--flux-muted); transition:transform .3s ease; }
.project-milestone-toggle:focus-visible { outline:2px solid var(--site-accent); outline-offset:4px; border-radius:3px; }
.project-milestone-panel { display:grid; grid-template-rows:1fr; opacity:1; transition:grid-template-rows .3s ease,opacity .3s ease; }
.project-milestone-panel.is-collapsed { grid-template-rows:0fr; opacity:0; }
.project-milestone-panel-inner { min-height:0; overflow:hidden; }
@media(prefers-reduced-motion:reduce) {
    .project-milestone-panel,.project-milestone-toggle .chevron { transition:none; }
}
/* Property ledgers retain all user-specified columns. */
.property-heading p,.property-table-note { color:var(--haven-muted); font-size:.82rem; line-height:1.7; }
.property-panel { padding:1.5rem; margin-bottom:1.5rem; background:var(--haven-card); border:1px solid var(--haven-line); border-radius:12px; }
.property-panel h2 { font-size:1.1rem; font-weight:500; }
.property-table-scroll { overflow:auto; scrollbar-width:thin; scrollbar-color:var(--site-accent) transparent; }
.property-table { width:100%; border-collapse:collapse; font-size:.82rem; font-variant-numeric:lining-nums tabular-nums; }
.property-table th,.property-table td { padding:.8rem .65rem; border-bottom:1px solid var(--haven-line); text-align:right; white-space:nowrap; }
.property-table th { color:var(--haven-muted); font-weight:500; }
.property-table td:first-child,.property-table th:first-child { text-align:left; }
.property-table td:nth-child(2),.property-table td:nth-child(3) { white-space:normal; min-width:7rem; }
.property-row-actions { width:1%; min-width:0; white-space:nowrap; }
.property-row-actions button { font-size:.75rem; }
.property-table-note { margin-top:.8rem; }
#properties-editor { width:min(92vw,36rem); max-height:90dvh; overflow:auto; background:var(--haven-card); color:var(--haven-text); border:1px solid var(--haven-line); border-radius:12px; padding:1.5rem; }
#properties-editor::backdrop { background:#08142599; backdrop-filter:blur(4px); }
@media(max-width:700px) { .property-panel { padding:1rem; } }
/* Shared property cards and forms, independent of the removed Travels page. */
.property-empty { color:var(--haven-muted); font-size:.82rem; line-height:1.7; }
.property-form { display:grid; gap:1rem; }
.property-field { display:grid; gap:.4rem; font-size:.82rem; }
.property-field .todo-input { width:100%; background:var(--haven-bg); color:var(--haven-text); border:1px solid var(--haven-line); border-radius:8px; padding:.65rem; }
.property-error { color:var(--task-priority-high); font-size:.82rem; }
#modal-project-editor .todo-field:has(.project-color-options) { grid-column:1/-1; }
:root[data-style^="flux"] body :is(.view-desktop-tabs,.todo-tabs[role="tablist"]) .todo-tab { font-weight:550!important; }
.view-mobile-select .custom-select__option[aria-selected="true"] { font-weight:500; }
@media(prefers-reduced-motion:reduce) { .property-card { transition:none; } }
/* Full-width reading and editing leave the note cards unchanged. */
.note-card__open { color:inherit; font:inherit; text-align:left; background:transparent; border:0; padding:0; cursor:pointer; }
.note-card__open:focus-visible { outline:2px solid var(--site-accent); outline-offset:3px; border-radius:3px; }
:root[data-style^="flux"] body dialog.note-reader,
:root[data-style^="flux"] body #modal-note.is-wide { width:calc(100% - 4rem); max-width:80rem; max-height:calc(100dvh - 4rem); }
.note-reader { padding:0; overflow:auto; color:var(--haven-text); background:var(--haven-card); border:1px solid var(--haven-line); border-radius:12px; scrollbar-width:thin; scrollbar-color:var(--site-accent) transparent; }
.note-reader-header { position:sticky; top:0; z-index:1; display:flex; justify-content:space-between; align-items:flex-start; gap:1.5rem; padding:1.5rem 2rem; background:var(--haven-card); border-bottom:1px solid var(--haven-line); }
.note-reader-header h2 { font-size:1.4rem; font-weight:500; overflow-wrap:anywhere; }
.note-reader-header p { color:var(--haven-muted); font-size:.82rem; margin-top:.35rem; }
.note-reader-actions { display:flex; gap:.5rem; flex:none; }
.note-reader-content { padding:2rem; font-size:.82rem; line-height:1.7; overflow-wrap:anywhere; white-space:pre-wrap; }
.note-reader-content ul { list-style:disc outside; padding-left:1.3rem; }
.note-reader-content ol { list-style:decimal outside; padding-left:1.3rem; }
.note-reader-content li { padding-left:.15rem; }
.note-reader-content label { display:flex; align-items:flex-start; gap:.42rem; min-width:0; cursor:pointer; }
.note-reader-content input[type="checkbox"] { flex:0 0 auto; width:1rem; height:1rem; margin:0!important; accent-color:var(--site-accent); cursor:pointer; transform:translateY(.2rem); }
.note-reader-content img { max-width:100%; height:auto; }
.note-reader-attachments { padding:0 2rem 2rem; }
:root[data-style^="flux"] #modal-note.is-wide .note-editor { min-height:45vh; max-height:none; }
#modal-note.is-wide { overflow:auto; }
#modal-note.is-wide .todo-field:has(:is(#note-section-select,#note-page,#note-project)) { grid-column:auto; }
@media(max-width:700px) {
    :root[data-style^="flux"] body dialog.note-reader,
    :root[data-style^="flux"] body #modal-note.is-wide { width:calc(100% - 1rem); max-width:calc(100% - 1rem); height:fit-content; min-height:0; max-height:calc(100dvh - 1rem); margin:auto; border-radius:12px; }
    .note-reader-header { padding:1rem; gap:.75rem; }
    .note-reader-content { padding:1.25rem; }
    .note-reader-attachments { padding:0 1.25rem 1.25rem; }
}
#flux-dashboard .haven-space > strong { display:flex; align-items:center; gap:.7rem; }
#flux-dashboard .haven-space > strong .haven-arrow { flex:0 0 auto; }

/* Secondary actions use the Tasks View options appearance in every page. */
:root[data-style^="flux"] body :is(
    .todo-display > summary,
    .todo-reschedule-overdue,
    .property-sort,
    .workspace-delete,
    .custom-select:has(select.todo-sort) > .custom-select__trigger,
    .custom-select:has(#genealogy-table-sort) > .custom-select__trigger,
    .project-edit-button,
    [data-attach-project-note],
    [data-link-page-note],
    #btn-manage-note-sections,
    #btn-manage-todo-sections,
    #home-add-section
) {
    min-height:1.74rem;
    padding:.3rem .55rem!important;
    border:0!important;
    border-radius:10px!important;
    background:transparent!important;
    color:var(--flux-text)!important;
    box-shadow:none!important;
    font-family:inherit;
    font-size:.76rem!important;
    font-weight:400!important;
    line-height:1.5!important;
    letter-spacing:normal!important;
    text-transform:none!important;
    transition:color .18s ease,background-color .18s ease;
}
:root[data-style^="flux"] body :is(
    .todo-display > summary,
    .todo-reschedule-overdue,
    .property-sort,
    .workspace-delete,
    .custom-select:has(select.todo-sort) > .custom-select__trigger,
    .custom-select:has(#genealogy-table-sort) > .custom-select__trigger,
    .project-edit-button,
    [data-attach-project-note],
    [data-link-page-note],
    #btn-manage-note-sections,
    #btn-manage-todo-sections,
    #home-add-section
):is(:hover,:focus-visible),
:root[data-style^="flux"] body .todo-display[open] > summary,
:root[data-style^="flux"] body .custom-select:is(.is-open):has(select.todo-sort,#genealogy-table-sort) > .custom-select__trigger {
    background:var(--secondary-control-hover,var(--flux-surface))!important;
    color:var(--flux-text)!important;
}
/* Ordering controls are useful only when there is more than one sortable item. */
.workspace-grid > .project-card:only-child .project-card-order,
.project-milestone-list > .project-milestone:only-child [data-move-milestone],
.todo-list > .project-task-row:only-child .project-task-order,
#todo-section-list > .todo-section-manager-row:only-child .todo-section-order-actions,
#note-section-list > .note-section-manager-row:only-child .note-section-order-actions,
#home-section-list > .todo-section-manager-row:only-child .todo-section-order-actions,
#note-links-fields > .note-link-fields:only-child .note-link-order button:not(.note-link-remove),
#note-images-editor > .note-image-thumb:only-child [data-image-move],
.notes-grid:not(:has(> .note-card:has(.note-order) ~ .note-card:has(.note-order))) > .note-card .note-order {
    display:none!important;
}
.todo-subtask-order { display:flex; align-items:center; flex:none; }
.todo-subtask-order button { width:1.6rem; font-size:.85rem; }
.todo-subtask-order button[hidden] { display:none; }
.todo-subtask-field input { min-width:0; }
#modal-note .note-writing-field { overflow:visible; }
#modal-note .note-toolbar-editor { position:sticky; top:0; z-index:3; background:var(--flux-surface); border-radius:.65rem .65rem 0 0; }
.note-link-order [data-move-note-link][hidden] { display:none!important; }

#todos-section .todo-daily-panel .dashboard-agenda-totals { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; }
#todos-section .dashboard-agenda-totals .todo-reschedule-overdue { --secondary-control-hover:var(--haven-bg); margin-left:auto; flex:none; }
.todo-reschedule-dialog { padding:1.5rem; }
.todo-reschedule-dialog h2 { font-size:1.2rem; }
.todo-reschedule-dialog p { font-size:.82rem; line-height:1.7; color:var(--flux-muted); }

.site-link-arrow { display:inline-block; width:1em; height:1em; vertical-align:-.12em; flex:none; }
:is(#projects-wrapper,#properties-wrapper) .project-card-open .site-link-arrow { width:1.1rem; height:1.1rem; }
:is(#projects-wrapper,#properties-wrapper) [data-delete-project],#properties-section [data-property-action="remove-property"] { font-weight:400; }
#todos-section #todo-list .birthday-today .birthday-grid > .birthday-card:only-child { grid-column:1/-1; }
/* Property workspaces follow the Projects hierarchy. */
#properties-section .property-table th,#properties-section .property-table td { padding:.3rem .55rem; line-height:1.45; }
#properties-section .property-table .is-text { text-align:left; }
#properties-section .property-table .is-positive { color:var(--task-priority-low); }
.property-loan-facts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.property-loan-facts span,.property-loan-facts strong { display:block; font-size:.82rem; overflow-wrap:anywhere; }
.property-loan-facts span { color:var(--haven-muted); margin-bottom:.25rem; }
.property-loan-facts strong { font-weight:500; }
.property-checkbox { display:flex; align-items:center; gap:.5rem; }
@media(max-width:700px) { .property-loan-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
#properties-section .workspace-toolbar:has(#properties-filter) > .custom-select { width:auto; min-width:10rem; }
#properties-section .property-row-actions .todo-tab { padding:.15rem .4rem; font-size:.75rem; font-weight:400; }

/* Properties reuses Projects presentation, including responsive view selectors. */
#properties-section .property-sort { --secondary-control-hover:var(--haven-bg); }
:root[data-style^="flux"] select option { background:var(--flux-surface); color:var(--flux-text); }
:root[data-style="flux-light"] { color-scheme:light; }
:root[data-style="flux-dark"] { color-scheme:dark; }
/* Property list and detail use the same toolbar and heading structure as Projects. */
.property-ledger-actions { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
@media(max-width:760px) { .property-ledger-actions { gap:.35rem; } }
#properties-content > :is(.todo-tabs,.view-mobile-select) { margin:1.25rem 0; }

#properties-add[hidden] { display:none!important; }

/* Hide the list-only selectors even when responsive controls force display. */
:root[data-style^="flux"] body :is(#projects-wrapper,#properties-wrapper).is-project-detail .workspace-section > .workspace-toolbar :is(.view-mobile-select,.view-generated-tabs) { display:none!important; }
/* Keep Edit beside Status at every viewport width. */
:is(#projects-wrapper,#properties-wrapper) .project-heading-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 .75rem; align-items:start; }
:is(#projects-wrapper,#properties-wrapper) .project-heading-row > div:first-child { display:contents; }
:is(#projects-wrapper,#properties-wrapper) .project-heading-row > div:first-child > .project-badges { grid-column:1; grid-row:1; }
:is(#projects-wrapper,#properties-wrapper) .project-heading-row > div:first-child > :not(.project-badges) { grid-column:1/-1; }
:is(#projects-wrapper,#properties-wrapper) .project-heading-actions { grid-column:2; grid-row:1; align-self:start; justify-self:end; }
.modal-delete { color:var(--task-priority-high); font-size:.76rem; font-weight:400; margin-right:auto; }
.property-amortization { margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--haven-line); }
/* Outer wrappers must also leave room for the sticky header. */
:root[data-style^="flux"] body > .page-section { min-height:calc(100dvh - var(--site-topbar-height, 63px)); }
/* Attached notes keep their actions available without an empty section heading. */
.page-linked-notes.is-empty > .workspace-toolbar { justify-content:flex-end; margin-bottom:0; }
.page-linked-notes.is-empty > .workspace-toolbar > h2,
.page-linked-notes.is-empty > .notes-grid,
#project-notes:not(:has(.note-card)) > .workspace-toolbar > h2,
#project-notes:not(:has(.note-card)) > .notes-grid { display:none; }
#project-notes:not(:has(.note-card)) > .workspace-toolbar { justify-content:flex-end; }
.page-linked-notes.is-empty { padding-top:1.5rem; }
/* Only the outer page host changes layout; its existing content grids stay intact. */
:root[data-style^="flux"] body :is(.workspace-section,#flux-dashboard,#todos-section,#comptes-section,#sport-section,#gaming-section,#livres-section):has(> .page-linked-notes) { display:flex; flex-direction:column; box-sizing:border-box; min-height:calc(100dvh - var(--site-topbar-height, 63px)); }
:root[data-style^="flux"] body .page-linked-notes { margin-top:auto; padding-top:4rem; }
/* Property overview: quiet surfaces, coloured data and exact amounts below the charts. */
.property-overview-intro { margin:1.5rem 0; }
.property-overview-intro h2 { font-size:1.1rem; font-weight:500; }
.property-overview-intro p,.property-metric > span,.property-metric small { color:var(--haven-muted); font-size:.78rem; line-height:1.5; }
.property-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.property-metric { display:flex; flex-direction:column; gap:.65rem; min-width:0; }
.property-metric strong { color:var(--haven-text); font-size:clamp(1.1rem,1.8vw,1.7rem); font-weight:500; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.property-metric small { margin-top:auto; }
.property-overview-charts { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.property-overview-charts > * { min-width:0; }
.property-chart-legend { display:flex; flex-wrap:wrap; gap:.6rem 1.25rem; margin:1rem 0; font-size:.78rem; }
.property-chart-legend span::before { content:''; display:inline-block; width:.6rem; height:.6rem; background:currentColor; border-radius:50%; margin-right:.4rem; }
.property-series-net { color:var(--site-accent); stroke:var(--site-accent); }
.property-series-principal { color:#6fa68c; stroke:#6fa68c; }
.property-series-spending { color:#be8dcd; stroke:#be8dcd; }
.property-line-chart { display:block; width:100%; height:auto; overflow:visible; }
.property-line-chart polyline { fill:none; stroke-width:2.5; stroke-linejoin:round; vector-effect:non-scaling-stroke; }
.property-chart-axis { display:flex; justify-content:space-between; gap:1rem; margin-inline:0; color:var(--haven-muted); font-size:.78rem; line-height:1.5; }
.property-chart-zero { stroke:var(--haven-line); stroke-dasharray:4 5; }
.property-flow-bars,.property-category-bars { display:grid; gap:1rem; margin-top:1.25rem; }
.property-flow-row { display:grid; grid-template-columns:5.5rem minmax(0,1fr) auto; align-items:center; gap:.75rem; font-size:.76rem; }
.property-flow-row strong,.property-category-bars strong { font-weight:500; font-variant-numeric:tabular-nums; }
.property-flow-tracks { display:grid; gap:4px; }
.property-flow-tracks i { display:block; height:7px; border-radius:3px; }
.property-flow-tracks .is-income { background:#6fa68c; }
.property-flow-tracks .is-outflow { background:#c68c82; }
.property-category-bars > div > div:first-child { display:flex; justify-content:space-between; gap:1rem; font-size:.78rem; margin-bottom:.1rem; }
.property-category-track { height:6px; border-radius:3px; background:var(--haven-line); }
.property-category-track i { display:block; height:100%; border-radius:inherit; }
.property-category-track .is-income { background:#6fa68c; }
.property-category-track .is-outflow { background:#c68c82; }
.property-category-flow { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:.5rem; margin-top:.15rem; font-size:.78rem; }
.property-chart-hit { fill:transparent; pointer-events:all; cursor:crosshair; }
.property-chart-hit:focus-visible { outline:none; fill:color-mix(in srgb,var(--site-accent) 10%,transparent); }
#site-tooltip { white-space:pre-line; }
.property-summary-table th { white-space:normal; min-width:7rem; }
.property-summary-table td { white-space:nowrap!important; }
@media(max-width:1000px) { .property-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .property-overview-charts { grid-template-columns:1fr; gap:0; } .property-metrics { gap:.75rem; } .property-metric { padding:1rem; } .property-flow-row { gap:.5rem; grid-template-columns:5rem minmax(0,1fr) auto; } }
/* Project details have their own project-specific notes and actions. */
#projects-wrapper.is-project-detail .page-linked-notes { display:none!important; }
.property-flow-key { white-space:nowrap; }
.property-flow-key::before { content:''; display:inline-block; width:.4rem; height:.4rem; border-radius:50%; margin-right:.3rem; }
.property-flow-key.is-income::before { background:#6fa68c; }
.property-flow-key.is-outflow::before { background:#c68c82; }


@media(min-width:641px) {
    .property-form:has([name="ledger_category"],[name="property_ledger_category"]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .property-form:has([name="ledger_category"],[name="property_ledger_category"]) > * { grid-column:1/-1; min-width:0; }
    .property-form > .property-field:has([name="ledger_label"],[name="ledger_category"],[name="property_ledger_label"],[name="property_ledger_category"]) { grid-column:auto; }
}
.property-flow-legend { margin:.65rem 0 0; gap:.25rem .8rem; }
.property-flow-legend > span { font-size:.65rem; }
.property-repayment-track { height:.6rem; border-radius:999px; overflow:hidden; background:var(--haven-line); margin:.75rem 0 1.25rem; }
.property-repayment-track > span { display:block; height:100%; background:#6fa68c; border-radius:inherit; }
.property-loan-progress > .workspace-toolbar > strong { font-size:.85rem; font-weight:500; font-variant-numeric:tabular-nums; }

/* Property filters and shared note/task metadata. */
.property-category-filter { display:flex; align-items:center; gap:.5rem; color:var(--haven-muted); font-size:.8rem; }
.property-category-filter select { width:auto; max-width:16rem; }
.property-category-filter .custom-select { width:auto; min-width:0; }
:root[data-style^="flux"] body #properties-section .property-category-filter .custom-select__trigger { width:auto; min-width:0; min-height:0; padding:.3rem .55rem; gap:.4rem; font-size:.75rem; }
.todo-today-date { display:inline-block; margin-left:.5rem; color:var(--haven-muted); font-size:.75rem; font-weight:400; letter-spacing:normal; }
.note-reader-date { display:inline-block; margin-top:.5rem; color:var(--haven-muted); font-size:.65rem; white-space:nowrap; }
.note-reader-header .note-project-pill + .note-reader-date { margin-left:.5rem; }
/* Accounts reuse the shared form controls for optional property allocations. */
#modal-operation { width:min(92vw,42rem); max-width:42rem; max-height:90dvh; overflow:auto; }
.operation-property-toggle { display:flex; align-items:center; gap:.6rem; font-size:.85rem; }
.operation-account-field { display:grid; gap:.4rem; font-size:.8rem; }
.operation-property-toggle input { accent-color:var(--site-accent); }
.operation-property-help,.account-operation-properties { display:block; color:var(--flux-muted); font-size:.75rem; line-height:1.6; }
.account-operation-properties { margin-top:.25rem; font-size:11px; line-height:1.3; white-space:pre-line; }
.operation-allocation { margin:1rem 0; padding:1rem; border:1px solid var(--flux-line); border-radius:10px; }
.operation-allocation legend { padding:0 .4rem; color:var(--flux-muted); font-size:.75rem; }
.operation-allocation [data-remove-allocation] { margin-top:.75rem; }
.operation-allocation-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.operation-allocation-grid label,.operation-payment-form > label { display:grid; gap:.4rem; min-width:0; font-size:.8rem; }
.operation-allocation-actions,.operation-payment-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; }
.operation-allocation-actions output { color:var(--flux-muted); font-size:.8rem; }
.operation-payment-form { display:grid; gap:1.2rem; }
.operation-payment-form h2 { font-size:1.2rem; }
.operation-payment-form > p { color:var(--flux-muted); font-size:.8rem; line-height:1.6; }
.operation-payment-form .property-error { color:#cf6570; }
.operation-payment-form p:empty { display:none; }
.operation-payment-actions { justify-content:flex-end; }
@media(max-width:480px) { .operation-allocation-grid { grid-template-columns:1fr; } }
@media(max-width:600px) { :root[data-style^="flux"] #flux-dashboard .haven-links-section { padding:15px 18px 17px; } }
