@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;src:url(be-vietnam-pro-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;src:url(be-vietnam-pro-vietnamese-400-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url(be-vietnam-pro-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url(be-vietnam-pro-vietnamese-500-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;src:url(be-vietnam-pro-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;src:url(be-vietnam-pro-vietnamese-600-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url(be-vietnam-pro-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url(be-vietnam-pro-vietnamese-700-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(source-serif-4-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400;font-display:swap;src:url(source-serif-4-vietnamese-400-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(source-serif-4-latin-600-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:600;font-display:swap;src:url(source-serif-4-vietnamese-600-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(source-serif-4-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400;font-display:swap;src:url(source-serif-4-vietnamese-400-italic.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
:root{
  --g900:#14301f; --g800:#16352a; --g700:#235240; --g600:#2b6350; --g500:#3c7a63; --g300:#86b8a3; --g100:#dcebe3;
  --gold:#c9a24b; --gold-d:#7e5c12;
  --cream:#f8f8f5; --bg:#f2f3ef; --card:#ffffff;
  --t1:#1b2420; --t2:#424b46; --t3:#66706a;
  --border:#d9dcd5; --red:#b3261e; --red-bg:#f9e3e1; --blue:#1d4f91; --blue-bg:#e3ecf7;
  --green-bg:#e4eee8; --gold-bg:#f5eedc;
  --li-green:#1d5a33; --li-purple:#4a2a72; --li-white:#5a5f5b; --li-gold:#8a6410;
  --purple:#4a2a72; --purple-bg:#f0eaf6;
  --r2:6px; --r3:8px; --r4:10px; --r5:12px;
  --sans:'Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --serif:'Source Serif 4',Georgia,'Times New Roman',serif;
  --lift:0 8px 28px rgba(20,48,31,.18);
  font-size:16px;
}
html,body{height:100%}
body{margin:0;background:#e5e8e2;color:var(--t1);font-family:var(--sans);font-size:15px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
button,input,textarea,select{font-family:inherit}

/* ---- components ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
button,a,.mod-card,.qa-cat,.h-row,.chip,.sugg{touch-action:manipulation;-webkit-tap-highlight-color:rgba(45,106,79,.14)}
.tab-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.tab-content::-webkit-scrollbar{display:none}
.tab-pane{display:none;scroll-margin-top:0}
.tab-pane.active{display:block}
#onboard{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--g900);z-index:200;display:flex;flex-direction:column}
.ob-slides{flex:1;position:relative;overflow:hidden}
.ob-slide{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 28px;text-align:center;opacity:0;transform:translateX(100%);transition:all .4s cubic-bezier(.4,0,.2,1)}
.ob-slide.active{opacity:1;transform:translateX(0)}
.ob-slide.prev{opacity:0;transform:translateX(-100%)}
.ob-emoji{font-size:68px;margin-bottom:20px}
.ob-h1{font-size:24px;font-weight:700;color:#fff;line-height:1.25;margin-bottom:10px}
.ob-p{font-size:15px;color:rgba(255,255,255,.7);line-height:1.65;max-width:300px}
.ob-verse{margin-top:20px;padding:14px 18px;background:rgba(255,255,255,.08);border-radius:8px;font-family:var(--serif);font-size:14px;font-style:italic;color:rgba(255,255,255,.88);border-left:3px solid var(--gold);text-align:left;max-width:300px;line-height:1.6}
.ob-bottom{padding:16px 28px 32px}
.ob-dots{display:flex;justify-content:center;gap:6px;margin-bottom:16px}
.ob-dot{width:7px;height:7px;border-radius:4px;background:rgba(255,255,255,.25);transition:all .3s;cursor:pointer}
.ob-dot.active{background:var(--gold);width:24px}
.ob-cta{width:100%;padding:16px;background:var(--gold);color:#12261d;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}
.ob-cta:hover{background:#FFD54F}
.ob-skip{text-align:center;color:rgba(255,255,255,.4);font-size:13px;cursor:pointer;margin-top:12px}
.ob-quiz-shell{flex:1;display:flex;flex-direction:column;padding:34px 26px 18px;overflow:auto}
.ob-kicker{font-size:11px;font-weight:700;color:var(--gold);margin-bottom:12px}
.ob-progress{height:8px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden;margin-bottom:18px}
#ob-progress-bar{height:100%;width:0;background:var(--gold);border-radius:999px;transition:width .25s ease}
.ob-q-meta{font-size:12px;font-weight:700;color:rgba(255,255,255,.58);margin-bottom:10px}
.ob-q-title{font-size:23px;font-weight:850;color:#fff;line-height:1.22;margin:0 0 10px}
.ob-q-ref{font-size:13px;color:rgba(255,255,255,.72);line-height:1.5;margin-bottom:16px}
.ob-options{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.ob-option{width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);color:#fff;border-radius:8px;padding:13px 14px;text-align:left;font-family:inherit;font-size:14px;font-weight:750;line-height:1.35;cursor:pointer}
.ob-option.active{background:var(--gold);border-color:var(--gold);color:#10291f}
.ob-input,.ob-textarea{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.09);color:#fff;border-radius:8px;padding:13px 14px;font-family:inherit;font-size:14px;line-height:1.4;outline:none}
.ob-input::placeholder,.ob-textarea::placeholder{color:rgba(255,255,255,.42)}
.ob-textarea{min-height:96px;resize:none}
.ob-help{font-size:12px;color:rgba(255,255,255,.58);line-height:1.45;margin-top:10px}
.ob-result{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:16px;color:#fff;line-height:1.5}
.ob-result h2{font-size:22px;line-height:1.2;margin:0 0 8px}
.ob-result p{font-size:13px;color:rgba(255,255,255,.76);margin:0 0 12px}
.ob-score-row{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid rgba(255,255,255,.12);font-size:13px}
.ob-score-row b{color:var(--gold)}
.card{background:var(--card);border-radius:var(--r4);padding:16px}
.sec-label{font-size:11px;font-weight:700;color:var(--t3);margin-bottom:10px}
.divider{height:1px;background:var(--border);margin:0 16px}
.liturgy-banner{background:#145A24;padding:16px 20px 20px;color:#fff;position:relative;overflow:hidden}
.liturgy-banner::after{content:none;position:absolute;right:-8px;top:-8px;font-size:90px;opacity:.05;transform:rotate(12deg)}
.lb-meta{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;opacity:.8;margin-bottom:7px}
.lb-dot{width:6px;height:6px;background:#4CAF50;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.lb-greeting{font-size:20px;font-weight:700;margin-bottom:2px}
.lb-theme{font-size:12px;opacity:.75;font-style:italic}
.ks-card{margin:14px 16px 0;background:#fff;border-radius:10px;padding:18px;border-left:4px solid var(--g500)}
.ks-text{font-family:var(--serif);font-size:15px;line-height:1.72;color:#1A2530;font-style:italic;margin-bottom:10px}
.ks-ref{font-size:11px;font-weight:700;color:var(--g700)}
.ks-action{margin-top:12px;padding-top:12px;border-top:1px solid #dcdfd7;font-size:12px;color:var(--t2);line-height:1.5}
.ks-action strong{color:var(--g700)}
.today-lit-card{margin:14px 16px 0;background:#fff;border-radius:10px;padding:14px;border:1px solid #d9dcd5;cursor:pointer}
.tl-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.tl-kicker{font-size:11px;font-weight:700;color:var(--g700);margin-bottom:3px}
.tl-title{font-size:16px;font-weight:700;color:var(--t1);line-height:1.25}
.tl-sub{font-size:11.5px;color:var(--t3);line-height:1.45;margin-top:3px}
.tl-color{min-width:70px;border-radius:8px;padding:8px 7px;text-align:center;background:#15572A;color:#fff}
.tl-color b{display:block;font-size:11px}
.tl-color span{display:block;font-size:18px;line-height:1;margin-top:4px}
.tl-compact{margin-top:11px;display:flex;flex-direction:column;gap:6px}
.tl-compact-row{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--t2);line-height:1.45}
.tl-compact-row b{color:var(--t1)}
.tl-compact-ic{width:20px;height:20px;border-radius:4px;background:#f6f7f3;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.tl-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.tl-cell{background:#f6f7f3;border:1px solid #dcdfd7;border-radius:8px;padding:9px 10px}
.tl-cell small{display:block;font-size:11px;font-weight:700;color:var(--t3);margin-bottom:3px}
.tl-cell strong{display:block;font-size:12px;color:var(--t1);line-height:1.3}
.tl-feast{display:flex;align-items:center;gap:9px;background:#f7f0dd;border:1px solid #F0D999;border-radius:8px;padding:10px;margin-bottom:10px}
.tl-feast-ic{width:34px;height:34px;border-radius:6px;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.tl-feast-text{font-size:12.5px;color:var(--t2);line-height:1.45}
.tl-feast-text b{color:var(--t1)}
.tl-verse{font-family:var(--serif);font-size:13px;line-height:1.62;color:#1A2530;background:#eef0eb;border-left:4px solid var(--g500);border-radius:8px;padding:11px;margin-bottom:10px}
.tl-verse span{display:block;font-family:var(--sans);font-style:normal;font-size:11px;font-weight:700;color:var(--g700);margin-top:6px}
.tl-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.tl-tab{border:1px solid var(--border);background:#f6f7f3;border-radius:8px;padding:10px 8px;font-family:inherit;font-size:12px;font-weight:700;color:var(--t2);cursor:pointer}
.tl-tab.active{background:var(--g700);border-color:var(--g700);color:#fff}
.tl-panel{display:none;margin-top:10px;background:#f7f8f5;border:1px solid var(--border);border-radius:8px;padding:12px}
.tl-panel.active{display:block}
.tl-row{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-bottom:1px solid #E6DED2}
.tl-row:last-child{border-bottom:none}
.tl-date{min-width:42px;font-size:11px;font-weight:700;color:var(--g700)}
.tl-row-body{font-size:12px;color:var(--t2);line-height:1.45}
.tl-row-body b{color:var(--t1)}
.tl-note{font-size:11px;color:var(--t3);line-height:1.45;margin-top:8px}
.today-lit-card .tl-grid,
.today-lit-card .tl-feast,
.today-lit-card .tl-verse,
.today-lit-card .tl-tabs,
.today-lit-card .tl-panel{display:none}
.core-flow-card{margin:14px 16px 0;background:#fff;border-radius:10px;padding:15px;border:1px solid var(--border)}
.core-flow-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.core-flow-kicker{font-size:11px;font-weight:700;color:var(--g700);margin-bottom:3px}
.core-flow-title{font-size:16px;font-weight:700;color:var(--t1);line-height:1.28}
.core-flow-sub{font-size:11.5px;color:var(--t3);line-height:1.45;margin-top:3px}
.core-flow-badge{font-size:11px;font-weight:700;color:#12261d;background:var(--gold);border-radius:999px;padding:5px 8px;white-space:nowrap}
.core-rail{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scroll-snap-type:x proximity}
.core-rail::-webkit-scrollbar{display:none}
.core-step{min-width:112px;scroll-snap-align:start;background:#f6f7f3;border:1px solid #dcdfd7;border-radius:8px;padding:10px 9px;position:relative}
.core-step::after{content:"›";position:absolute;right:-8px;top:50%;transform:translateY(-50%);color:var(--g700);font-size:18px;font-weight:700}
.core-step:last-child::after{display:none}
.core-step-ic{font-size:18px;margin-bottom:6px}
.core-step b{display:block;font-size:11px;color:var(--g900);line-height:1.25;margin-bottom:3px}
.core-step span{display:block;font-size:11px;color:var(--t3);line-height:1.35}
.start-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
.start-card{background:#f7f8f5;border:1px solid var(--border);border-radius:8px;padding:11px}
.start-card h3{font-size:12px;font-weight:700;color:var(--g900);line-height:1.25;margin-bottom:7px}
.start-card ol{padding-left:17px;margin:0}
.start-card li{font-size:11.2px;color:var(--t2);line-height:1.45;margin-bottom:4px}
.start-card li:last-child{margin-bottom:0}
.start-card.project{background:#F4ECFF;border-color:#DDC9F8}
.start-card.project h3{color:var(--purple)}
.core-flow-actions{display:flex;gap:8px;margin-top:11px}
.core-action{flex:1;border:none;border-radius:8px;padding:10px 8px;font-family:inherit;font-size:11.5px;font-weight:700;cursor:pointer}
.core-action.primary{background:var(--g700);color:#fff}
.core-action.secondary{background:#f6f7f3;color:var(--g700);border:1px solid var(--border)}
.value-wheel-card{margin:14px 16px 0;background:#fff;border-radius:10px;padding:15px;border:1px solid var(--border)}
.value-wheel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.value-wheel-head h2{font-size:17px;font-weight:700;color:var(--t1);line-height:1.25}
.value-wheel-head p{font-size:11.5px;color:var(--t3);line-height:1.45;margin-top:3px}
.value-wheel-tag{font-size:11px;font-weight:700;color:#12261d;background:var(--gold);border-radius:999px;padding:5px 8px;white-space:nowrap}
.value-wheel{position:relative;width:278px;height:278px;margin:8px auto 12px;border-radius:50%;background:#f6f7f3;border:1px solid #E4DCCD}
.value-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:96px;height:96px;border-radius:50%;background:var(--g700);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.value-center b{font-size:12px;line-height:1.2}
.value-center span{font-size:11px;opacity:.82;margin-top:3px}
.value-node{position:absolute;width:78px;min-height:58px;border:none;border-radius:10px;background:#fff;color:var(--t1);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-family:inherit;font-weight:700;cursor:pointer;padding:6px 5px;border:1px solid rgba(0,0,0,.05)}
.value-node .vn-ic{font-size:18px;line-height:1}
.value-node .vn-text{font-size:11px;line-height:1.12}
.value-node.active{background:var(--g700);color:#fff}
.value-node[data-value="word"]{left:100px;top:-2px}
.value-node[data-value="awareness"]{right:10px;top:34px}
.value-node[data-value="action"]{right:-3px;top:110px}
.value-node[data-value="discipline"]{right:28px;bottom:26px}
.value-node[data-value="progress"]{left:100px;bottom:-2px}
.value-node[data-value="freedom"]{left:28px;bottom:26px}
.value-node[data-value="charity"]{left:-3px;top:110px}
.value-node[data-value="witness"]{left:10px;top:34px}
.value-detail{background:#f7f8f5;border:1px solid var(--border);border-radius:8px;padding:13px;margin-top:10px}
.value-detail-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:9px}
.value-detail-icon{width:38px;height:38px;border-radius:8px;background:#e4eee8;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.value-detail h3{font-size:14px;font-weight:700;color:var(--g900);line-height:1.25;margin-bottom:2px}
.value-detail p{font-size:12px;color:var(--t2);line-height:1.55;margin:0}
.value-pill-row{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}
.value-pill{font-size:11px;font-weight:700;border-radius:999px;padding:4px 7px;background:#fff;border:1px solid #dcdfd7;color:var(--g700)}
.value-guide{display:grid;grid-template-columns:1fr;gap:7px;margin-top:8px}
.value-guide-item{background:#fff;border:1px solid #dcdfd7;border-radius:8px;padding:9px}
.value-guide-item b{display:block;font-size:11px;color:var(--t1);margin-bottom:3px}
.value-guide-item span{display:block;font-size:11px;color:var(--t3);line-height:1.42}
.project-blueprint{margin-top:12px;background:#F4ECFF;border:1px solid #DDC9F8;border-radius:8px;padding:12px}
.project-blueprint h3{font-size:13px;font-weight:700;color:var(--purple);margin-bottom:8px}
.project-flow{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.project-flow div{background:#fff;border:1px solid #E5D8FA;border-radius:6px;padding:8px 5px;text-align:center;font-size:11px;font-weight:700;color:var(--purple);line-height:1.25}
.project-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.project-form input,.project-form textarea{width:100%;border:1px solid #d9dcd5;border-radius:6px;background:#fff;font-family:inherit;font-size:12px;padding:9px;color:var(--t1);outline:none}
.project-form textarea{grid-column:1/-1;min-height:58px;resize:none}
.project-actions{display:flex;gap:8px;margin-top:9px}
.principle-guide-card{margin:14px 16px;background:#fff;border-radius:10px;padding:15px;border:1px solid var(--border)}
.principle-guide-card h2{font-size:15px;font-weight:700;color:var(--t1);line-height:1.3;margin-bottom:5px}
.principle-guide-card p{font-size:12px;color:var(--t3);line-height:1.5;margin-bottom:10px}
.principle-mini-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.principle-mini-step{background:#f6f7f3;border:1px solid #dcdfd7;border-radius:8px;padding:9px 7px;text-align:center}
.principle-mini-step b{display:block;font-size:11px;color:var(--g900);line-height:1.25;margin-bottom:3px}
.principle-mini-step span{display:block;font-size:11px;color:var(--t3);line-height:1.3}
@media (max-width:360px){.start-grid{grid-template-columns:1fr}
.core-flow-actions{flex-direction:column}
.value-wheel{width:252px;height:252px}
.value-node{width:72px}
.value-node[data-value="word"],.value-node[data-value="progress"]{left:90px}
.project-form{grid-template-columns:1fr}
.project-flow{grid-template-columns:repeat(2,1fr)}}
.calendar-open-btn{width:100%;border:none;background:transparent;color:var(--g700);font-family:inherit;font-size:11.5px;font-weight:700;padding:9px 0 0;margin-top:6px;display:flex;align-items:center;justify-content:flex-start;gap:6px;cursor:pointer}
#calendar-detail{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:120;overflow-y:auto;overflow-x:hidden;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
#calendar-detail.open{transform:translateX(0)}
#calendar-detail::-webkit-scrollbar{display:none}
.cal-hdr{background:var(--g800);padding:14px 18px;color:#fff;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.cal-back{width:34px;height:34px;border-radius:6px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:20px;cursor:pointer}
.cal-hdr-title{flex:1;min-width:0}
.cal-hdr-title h2{font-size:16px;font-weight:700;line-height:1.2}
.cal-hdr-title p{font-size:11px;opacity:.78;margin-top:2px}
.cal-jump{border:none;border-radius:999px;background:var(--gold);color:#12261d;font-family:inherit;font-size:11px;font-weight:700;padding:8px 10px;cursor:pointer}
.cal-wrap{padding:16px}
.cal-month-card{background:#fff;border-radius:10px;padding:15px;border:1px solid var(--border)}
.cal-month-title{font-size:15px;font-weight:700;color:var(--g800);text-align:center;margin-bottom:4px}
.cal-month-sub{font-size:11px;color:var(--t3);text-align:center;margin-bottom:13px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}
.cal-dh{font-size:11px;font-weight:700;color:var(--t3);padding-bottom:6px}
.cal-dh.sun{color:var(--red)}
.cal-cell{min-height:48px;background:#fff;border:1px solid #E7E0D5;border-radius:6px;padding:6px 3px;font-size:13px;font-weight:700;color:var(--t1);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;transition:transform .15s,box-shadow .15s,border-color .15s}
.cal-cell:hover{transform:translateY(-1px);border-color:var(--g500)}
.cal-cell.empty{background:transparent;border:none;cursor:default}
.cal-cell.empty:hover{transform:none}
.cal-cell.sun{background:#FFF5F5;color:var(--red)}
.cal-cell.today{background:var(--g700);color:#fff;border-color:var(--g700)}
.cal-cell.solemnity{border-color:var(--red);color:var(--red);background:#FFF8F8}
.cal-cell.today.solemnity{color:#fff}
.cal-cell small{font-size:11px;font-weight:700;line-height:1;max-width:42px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-cell .dot{width:5px;height:5px;border-radius:50%;margin-top:1px;background:#4CAF50}
.cal-cell .dot.white{background:#D4C5A2}
.cal-cell .dot.red{background:var(--red)}
.cal-cell.today .dot{background:#fff}
.cal-legend{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px;justify-content:center}
.cal-leg{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--t3)}
.cal-leg i{width:8px;height:8px;border-radius:50%;display:block;background:#4CAF50}
.cal-season-card{margin-top:14px;background:#F9F9F9;border-radius:10px;padding:14px;border:1px solid var(--border)}
.cal-season-name{font-size:13px;font-weight:700;color:var(--g700);margin-bottom:7px}
.cal-season-copy{font-size:12px;color:var(--t2);line-height:1.6}
.cal-scripture-preview{margin-top:14px;background:#fff;border-radius:10px;padding:15px;border:1px solid var(--border)}
.cal-scripture-preview h3{font-size:12px;font-weight:700;color:var(--g800);margin-bottom:8px}
.cal-scripture-preview p{font-size:12.5px;line-height:1.6;color:var(--t2);margin-bottom:7px}
.day-backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);z-index:125;display:none;opacity:0;transition:opacity .2s}
.day-backdrop.show{display:block;opacity:1}
#day-detail-sheet{position:absolute;left:0;right:0;bottom:0;z-index:130;background:#fff;border-radius:10px 10px 0 0;padding:22px;box-shadow:var(--lift);transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);max-height:76%;overflow-y:auto}
#day-detail-sheet.open{transform:translateY(0)}
#day-detail-sheet::-webkit-scrollbar{display:none}
.ds-handle{width:38px;height:4px;background:#E0E0E0;border-radius:2px;margin:0 auto 18px}
.ds-date{font-size:11px;font-weight:700;color:var(--g700);margin-bottom:6px}
.ds-title{font-size:17px;font-weight:700;color:var(--t1);line-height:1.35;margin-bottom:6px}
.ds-meta{font-size:12.5px;font-weight:700;color:var(--t3);margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.ds-readings{font-size:13px;color:var(--t2);line-height:1.75;margin-bottom:14px}
.ds-readings strong{color:var(--t1)}
.ds-scripture{background:#eef0eb;border-left:4px solid var(--g500);border-radius:8px;padding:13px;margin-bottom:12px}
.ds-scripture blockquote{font-family:var(--serif);font-size:14px;line-height:1.65;color:#1A2530;font-style:italic;margin-bottom:7px}
.ds-scripture .ref{font-size:11px;font-weight:700;color:var(--g700)}
.ds-reflection,.ds-action{background:#f7f8f5;border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:10px}
.ds-reflection h3,.ds-action h3{font-size:11px;font-weight:700;color:var(--g800);margin-bottom:6px}
.ds-reflection p,.ds-action p{font-size:12.5px;color:var(--t2);line-height:1.65}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px 0}
.score-card{background:#fff;border-radius:10px;padding:14px;text-align:center}
.score-ring{position:relative;width:74px;height:74px;margin:0 auto 6px}
.score-ring svg{transform:rotate(-90deg)}
.score-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:20px;font-weight:700;color:var(--g700)}
.score-lbl{font-size:11px;font-weight:700;color:var(--t3)}
.score-trend{font-size:11px;color:#1E7A4E;font-weight:700;margin-top:2px}
.habits-card{background:#fff;border-radius:10px;padding:14px}
.h-title{font-size:11px;font-weight:700;color:var(--t3);margin-bottom:10px}
.h-row{display:flex;align-items:center;gap:8px;margin-bottom:9px;cursor:pointer}
.h-row:last-child{margin-bottom:0}
.h-chk{width:22px;height:22px;border-radius:4px;border:2px solid #DDD;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;transition:all .2s}
.h-chk.done{background:var(--g700);border-color:var(--g700);color:#fff}
.h-txt{font-size:12px;color:var(--t2);line-height:1.3}
.h-txt.done{text-decoration:line-through;color:var(--t3)}
.budget-sec{padding:12px 16px 0}
.budget-card{background:#fff;border-radius:10px;padding:14px}
.budget-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.b-title{font-size:13px;font-weight:700;color:var(--t1)}
.b-month{font-size:11px;color:var(--t3)}
.budget-rings{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.ring-item{display:flex;flex-direction:column;align-items:center;gap:3px}
.mini-ring{position:relative;width:52px;height:52px}
.mini-ring svg{transform:rotate(-90deg)}
.m-num{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:700}
.m-lbl{font-size:11px;font-weight:700;color:var(--t3);text-align:center}
.ai-nudge{margin:12px 16px 0;background:#e4eee8;border-radius:10px;padding:12px 14px;display:flex;gap:10px;align-items:flex-start;border:1px solid #C8E6C9}
.ai-av{width:34px;height:34px;background:var(--g700);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.ai-nd-txt{font-size:12px;color:#1A2530;line-height:1.55}
.ai-nd-txt strong{color:var(--g900)}
.fab{position:absolute;bottom:76px;right:18px;width:56px;height:56px;background:var(--g700);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;cursor:pointer;box-shadow:var(--lift);z-index:20;line-height:1;transition:all .2s;border:none}
.fab:hover{transform:scale(1.06)}
.scroll-pad{height:20px}
.qa-sec-label{font-size:11px;font-weight:700;padding:8px 0 6px;display:flex;align-items:center;gap:5px}
.income-label{color:var(--g700)}
.expense-label{color:var(--t2)}
.give-save-label{color:var(--gold-d)}
.debt-label{color:var(--red)}
.qa-cats-3col{grid-template-columns:repeat(3,1fr) !important}
#qa-income-grid,#qa-expense-grid,#qa-gsil-grid,#qa-debt-grid{margin-bottom:0}
.fin-hdr{background:var(--g900);padding:20px 20px 32px;color:#fff}
.fin-hdr small{font-size:12px;font-weight:600;opacity:.75;display:block;margin-bottom:4px}
.fin-total{font-size:34px;font-weight:700;letter-spacing:-1px}
.fin-sub{font-size:12px;opacity:.65;margin-top:3px}
.fin-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px;margin-top:-16px;margin-bottom:12px}
.fc{background:#fff;border-radius:8px;padding:14px}
.fc-lbl{font-size:11px;font-weight:700;color:var(--t3);margin-bottom:4px}
.fc-val{font-size:19px;font-weight:700;color:var(--t1)}
.fc-pct{font-size:11px;font-weight:700;margin-top:3px}
.ok{color:#1E7A4E}
.warn{color:var(--red)}
.progress-sec{padding:0 16px 12px}
.pr-item{background:#fff;border-radius:8px;padding:14px;margin-bottom:10px}
.pr-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pr-name{font-size:13px;font-weight:700;color:var(--t1);display:flex;gap:6px;align-items:center}
.pr-val{font-size:12px;color:var(--t2)}
.pr-bar{height:8px;background:#dcdfd7;border-radius:4px;overflow:hidden}
.pr-fill{height:100%;border-radius:4px}
.pr-note{font-size:11px;color:var(--t3);margin-top:6px}
.bf-sec{padding:14px 16px 4px}
.bf-bars{background:#fff;border-radius:8px;padding:14px;margin-bottom:10px}
.bf-row{margin-bottom:11px}
.bf-row:last-child{margin-bottom:0}
.bf-row-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:5px}
.bf-lbl{font-size:12px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:6px}
.bf-pct{font-size:11px;font-weight:700;color:var(--t3)}
.bf-amt{font-size:11px;color:var(--t3)}
.bf-track{height:9px;background:#dcdfd7;border-radius:4px;overflow:hidden;position:relative}
.bf-fill{height:100%;border-radius:4px;transition:width .3s}
.bf-target{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--t1);opacity:.35}
.bf-give .bf-fill{background:var(--gold-d)}
.bf-save .bf-fill{background:var(--g500)}
.bf-invest .bf-fill{background:var(--blue)}
.bf-live .bf-fill{background:#7a8a80}
.bf-debt .bf-fill{background:var(--red)}
.bf-trend{background:#fff;border-radius:8px;padding:14px;margin-bottom:10px}
.bf-trend-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.bf-trend-ttl{font-size:11px;font-weight:700;color:var(--t1)}
.bf-legend{display:flex;gap:10px;flex-wrap:wrap}
.bf-leg-item{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--t3)}
.bf-leg-dot{width:8px;height:8px;border-radius:50%}
.bf-other{padding:0 16px 4px}
.bf-other-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px}
.bf-other-row:last-child{border-bottom:none}
.bf-other-lbl{color:var(--t2);font-weight:600}
.bf-other-val{font-weight:700;color:var(--t1)}
.bf-empty-hint{font-size:11px;color:var(--t3);text-align:center;padding:10px 0}
.goals-sec{padding:0 16px}
.goal-card{background:#fff;border-radius:8px;padding:14px;margin-bottom:10px;display:flex;gap:12px;align-items:center}
.g-icon{width:42px;height:42px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.g-info{flex:1;min-width:0}
.g-name{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:5px}
.g-bar{height:5px;background:#dcdfd7;border-radius:3px;overflow:hidden;margin-bottom:4px}
.g-nums{font-size:11px;color:var(--t3)}
.g-pct{font-size:13px;font-weight:700;color:var(--g700);flex-shrink:0}
.np-hdr{background:var(--g900);padding:18px 20px 16px;color:#fff}
.np-hdr h1{font-size:22px;font-weight:700;margin-bottom:3px}
.np-hdr p{font-size:13px;opacity:.7}
.np-filter{padding:10px 16px;display:flex;gap:7px;overflow-x:auto;background:#fff;border-bottom:1px solid var(--border)}
.np-filter::-webkit-scrollbar{display:none}
.chip{padding:6px 13px;border-radius:10px;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;transition:all .2s;border:1.5px solid transparent}
.chip.active{background:var(--g700);color:#fff}
.chip:not(.active){background:#fff;color:var(--t2);border-color:var(--border)}
.np-list{padding:12px 16px}
.np-item{background:#fff;border-radius:8px;padding:13px;margin-bottom:9px;cursor:pointer;transition:all .2s;display:flex;gap:10px;align-items:flex-start}
.np-item:hover{transform:translateY(-1px)}
.np-code{font-size:11px;font-weight:700;color:var(--g700);background:#e4eee8;padding:4px 8px;border-radius:4px;flex-shrink:0;font-family:monospace}
.np-inf{flex:1;min-width:0}
.np-ttl{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:2px}
.np-sub{font-size:11px;color:var(--t3)}
.np-arr{color:var(--t3);font-size:16px;padding-top:2px}
#np-detail{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:100;overflow-y:auto;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
#np-detail.open{transform:translateX(0)}
#np-detail::-webkit-scrollbar{display:none}
.ndh{background:var(--g700);padding:14px 20px;color:#fff;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.ndh-back{font-size:22px;cursor:pointer;opacity:.9;line-height:1}
.ndh h2{font-size:16px;font-weight:700}
.ndb{padding:20px}
.nd-sec{margin-bottom:20px}
.nd-stl{font-size:11px;font-weight:700;color:var(--g700);margin-bottom:8px;padding-bottom:5px;border-bottom:2px solid #e4eee8;display:block}
.nd-scripture{font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.75;color:#1A2530;background:#eef0eb;padding:16px;border-radius:8px;border-left:4px solid var(--g500)}
.nd-ref{display:block;margin-top:8px;font-size:12px;font-weight:700;color:var(--g700);font-style:normal}
.nd-ccc{font-size:13px;color:var(--t2);line-height:1.65;background:#e4eee8;padding:13px;border-radius:6px}
.nd-reflection{font-size:14px;color:var(--t1);line-height:1.72}
.nd-principle-name{font-size:13px;font-weight:700;color:var(--g700);background:#e4eee8;padding:10px 13px;border-radius:6px;margin-bottom:6px;line-height:1.5}
.nd-soi-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.nd-soi-item{background:#f7f0dd;border-left:3px solid #F9A825;padding:10px 13px;border-radius:0 6px 6px 0;font-size:13px;color:var(--t1);line-height:1.6}
.nd-soi-item strong{color:#E65100;font-size:11px;display:block;margin-bottom:3px}
.nd-soi-note{width:100%;margin-top:10px;padding:10px 12px;border:1.5px dashed #F9A825;border-radius:6px;background:#FFFDE7;font-size:13px;color:var(--t1);resize:none;min-height:60px;font-family:inherit;outline:none;transition:border-color .2s}
.nd-soi-note:focus{border-color:#F57F17;border-style:solid}
.nd-soi-note::placeholder{color:#BCAAA4;font-style:italic}
.nd-action-list{display:flex;flex-direction:column;gap:8px}
.nd-action-item{background:var(--g700);color:#fff;padding:13px 16px;border-radius:8px;font-size:13px;font-weight:600;line-height:1.5;display:flex;gap:10px;align-items:flex-start}
.nd-action-item::before{content:'';display:inline-block;width:1em;height:1em;background:currentColor;-webkit-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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M5 12h14' /%3E %3Cpath d='m12 5 7 7-7 7' /%3E %3C/svg%3E") center/contain no-repeat;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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M5 12h14' /%3E %3Cpath d='m12 5 7 7-7 7' /%3E %3C/svg%3E") center/contain no-repeat;opacity:.85;flex-shrink:0;font-weight:700}
.nd-action-item.optional{background:var(--g500)}
.nd-ai-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--g700);background:#e4eee8;padding:3px 8px;border-radius:10px;font-weight:700;margin-bottom:12px}
.nd-action{background:var(--g700);color:#fff;padding:16px;border-radius:8px;font-size:14px;font-weight:700;line-height:1.55;display:flex;gap:10px}
.nd-action::before{content:'';display:inline-block;width:1em;height:1em;background:currentColor;-webkit-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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M20 6 9 17l-5-5' /%3E %3C/svg%3E") center/contain no-repeat;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='2.2' stroke-linecap='round' stroke-linejoin='round'%3E %3Cpath d='M20 6 9 17l-5-5' /%3E %3C/svg%3E") center/contain no-repeat;opacity:.8}
.coach-screen{display:flex;flex-direction:column;height:100%}
.ch-hdr{background:var(--g900);padding:14px 20px;color:#fff;display:flex;align-items:center;gap:12px;flex-shrink:0}
.ch-av{width:46px;height:46px;background:rgba(255,255,255,.18);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.ch-info h2{font-size:16px;font-weight:700}
.ch-info p{font-size:12px;opacity:.7}
.ch-ctx{background:rgba(255,255,255,.09);margin:0 20px 0;padding:8px 12px;border-radius:6px;font-size:11px;color:rgba(255,255,255,.88);display:flex;gap:7px;align-items:center;flex-shrink:0}
.ch-ctx span{opacity:.6}
.chat-msgs{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:11px}
.chat-msgs::-webkit-scrollbar{display:none}
.msg{max-width:82%;padding:11px 14px;border-radius:10px;font-size:13px;line-height:1.55}
.msg-ai{background:#fff;color:var(--t1);border-bottom-left-radius:4px;align-self:flex-start}
.msg-user{background:var(--g700);color:#fff;border-bottom-right-radius:4px;align-self:flex-end}
.msg-verse{margin-top:8px;padding:8px 11px;background:#e4eee8;border-radius:6px;font-size:12px;color:#0E4D1F;font-style:italic;border-left:3px solid var(--g500)}
.typing{display:flex;gap:4px;align-items:center;padding:4px 2px}
.typing span{width:7px;height:7px;background:var(--t3);border-radius:50%;animation:blink 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}
.typing span:nth-child(3){animation-delay:.4s}
@keyframes blink{0%,80%,100%{transform:scale(0.6);opacity:.4;}40%{transform:scale(1);opacity:1;}}
.ch-suggestions{padding:4px 16px 6px;display:flex;gap:6px;overflow-x:auto;flex-shrink:0}
.ch-suggestions::-webkit-scrollbar{display:none}
.sugg{padding:7px 13px;background:#fff;border:1.5px solid var(--border);border-radius:10px;font-size:12px;color:var(--t2);white-space:nowrap;cursor:pointer;transition:all .2s;flex-shrink:0}
.sugg:hover{background:var(--g700);color:#fff;border-color:var(--g700)}
.ch-input-row{padding:10px 16px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;gap:8px;flex-shrink:0}
.ch-inp{flex:1;background:var(--bg);border:1.5px solid var(--border);border-radius:10px;padding:10px 16px;font-size:13px;color:var(--t1);outline:none;font-family:inherit;transition:border .2s}
.ch-inp:focus{border-color:var(--g700)}
.ch-send{width:40px;height:40px;background:var(--g700);border-radius:10px;border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}
.ch-send:hover{background:var(--g900)}
.htr-hdr{background:#16352a;padding:20px;color:#fff}
.htr-lv{font-size:11px;font-weight:700;opacity:.7;margin-bottom:4px}
.htr-name{font-size:23px;font-weight:700;margin-bottom:2px}
.htr-verse{font-size:12px;opacity:.7;font-style:italic}
.xp-wrap{margin-top:14px}
.xp-row{display:flex;justify-content:space-between;font-size:11px;opacity:.8;margin-bottom:6px}
.xp-bar{height:8px;background:rgba(255,255,255,.2);border-radius:4px;overflow:hidden}
.xp-fill{height:100%;background:var(--gold);border-radius:4px;width:56.5%}
.radar-wrap{padding:14px 16px 0}
.r-card{background:#fff;border-radius:10px;padding:18px;text-align:center;margin-bottom:12px}
.r-card h3{font-size:13px;font-weight:700;color:var(--t1);margin-bottom:3px}
.r-card p{font-size:11px;color:var(--t3);margin-bottom:14px}
.pillar-map{margin-top:12px;text-align:left;background:#f6f7f3;border:1px solid var(--border);border-radius:8px;padding:12px}
.pillar-map-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.pillar-map-head strong{font-size:12.5px;color:var(--g900);line-height:1.35}
.pillar-map-head span{font-size:11px;font-weight:700;color:var(--g700);background:#e4eee8;border-radius:999px;padding:3px 7px;white-space:nowrap}
.pillar-dim{background:#fff;border:1px solid #dcdfd7;border-radius:8px;padding:10px;margin-bottom:8px}
.pillar-dim:last-child{margin-bottom:0}
.pillar-dim-title{font-size:11px;font-weight:700;margin-bottom:6px}
.pillar-dim p{font-size:11.5px;color:var(--t2);line-height:1.5;margin:0}
.pillar-dim small{display:block;font-size:11px;color:var(--t3);line-height:1.45;margin-top:5px}
.mission-wrap{padding:0 16px 12px}
.m-card{background:#e4eee8;border:1px solid #C8E6C9;border-radius:10px;padding:15px}
.m-badge{font-size:11px;font-weight:700;color:var(--g900);margin-bottom:5px}
.m-name{font-size:14px;font-weight:700;color:var(--t1);margin-bottom:6px}
.m-desc{font-size:12px;color:var(--t2);line-height:1.55;margin-bottom:7px}
.m-xp{font-size:12px;font-weight:700;color:var(--g700)}
.levels-wrap{padding:0 16px}
.lv-card{background:#fff;border-radius:8px;padding:14px;margin-bottom:9px;display:flex;gap:12px;align-items:center}
.lv-icon{width:42px;height:42px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.lv-info{flex:1}
.lv-name{font-size:14px;font-weight:700;color:var(--t1)}
.lv-desc{font-size:11px;color:var(--t3);margin-top:2px}
.lv-tag{font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px;flex-shrink:0}
.done-tag{background:#e4eee8;color:var(--g700)}
.cur-tag{background:var(--g700);color:#fff}
.lock-tag{background:#F5F5F5;color:var(--t3)}
.mod-hdr{background:var(--g900);padding:18px 20px 14px;color:#fff}
.mod-hdr h1{font-size:21px;font-weight:700;margin-bottom:3px}
.mod-hdr p{font-size:12.5px;color:rgba(255,255,255,.78);line-height:1.5}
.mod-stats{display:flex;gap:8px;margin-top:12px}
.mod-stat{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:8px 6px;text-align:center}
.mod-stat b{display:block;font-size:18px;font-weight:700;color:var(--gold)}
.mod-stat span{font-size:11px;color:rgba(255,255,255,.75);font-weight:700}
.mod-tools{padding:12px 16px;background:#f2f3ef;border-bottom:1px solid var(--border)}
.mod-search{width:100%;height:42px;border:1px solid var(--border);border-radius:8px;background:#fff;font-family:inherit;font-size:13px;font-weight:700;color:var(--t1);padding:0 13px;outline:none}
.mod-filter{display:flex;gap:7px;overflow-x:auto;margin-top:9px;padding-bottom:2px}
.mod-filter::-webkit-scrollbar{display:none}
.mod-filter button{flex-shrink:0;border:1px solid var(--border);background:#fff;border-radius:999px;padding:8px 11px;font-family:inherit;font-size:11px;font-weight:700;color:var(--t2);cursor:pointer}
.mod-filter button.active{background:var(--g700);border-color:var(--g700);color:#fff}
.mod-selected{background:#f7f8f5;border-bottom:1px solid var(--border)}
.mod-selected .mdh{position:static;border-radius:0}
.mod-selected #md-body{padding:14px 16px 4px}
.mod-empty{padding:16px;font-size:12px;color:var(--t3);text-align:center;display:none}
.mod-group{padding:16px 16px 8px;border-top:1px solid var(--border);background:#f7f8f5}
.mod-group:nth-of-type(even){background:#F3F7F1}
.mod-group-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mod-group-ttl{font-size:12px;font-weight:700;color:var(--g900);line-height:1.35}
.mod-group-cnt{font-size:11px;font-weight:700;color:var(--g800);background:#fff;border:1px solid var(--border);border-radius:999px;padding:3px 9px;white-space:nowrap}
.mod-card{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.96);border-radius:8px;padding:13px;margin-bottom:9px;border:1px solid rgba(233,196,106,.36);cursor:pointer;transition:all .15s}
.mod-card:hover{border-color:var(--g500)}
.mod-card.selected{border-color:var(--g700)}
.mod-ic{width:46px;height:46px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:23px}
.mod-body{flex:1;min-width:0}
.mod-name{font-size:13.5px;font-weight:700;color:#083825;margin-bottom:2px;line-height:1.3}
.mod-desc{font-size:11px;color:#315B4C;line-height:1.35;font-weight:650}
.mod-tags{display:flex;gap:5px;margin-top:5px;flex-wrap:wrap}
.mod-tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px}
.mod-tag.phase1{background:var(--green-bg);color:var(--g700)}
.mod-tag.phase2{background:var(--blue-bg);color:var(--blue)}
.mod-tag.phase3{background:var(--gold-bg);color:var(--gold-d)}
.mod-tag.phase4{background:var(--purple-bg);color:var(--purple)}
.mod-tag.phase5{background:var(--red-bg);color:var(--red)}
.mod-tag.live{background:var(--g700);color:#fff}
.mod-arr{color:var(--t3);font-size:17px;flex-shrink:0}
#mod-detail{background:var(--bg);border-bottom:1px solid var(--border);max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1)}
#mod-detail.open{max-height:1200px}
#mod-detail::-webkit-scrollbar{display:none}
.mdh{padding:14px 20px;color:#fff;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:10}
.mdh-back{font-size:20px;cursor:pointer;opacity:.95;line-height:1;width:30px;height:30px;border-radius:6px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center}
.mdh-ttl{flex:1}
.mdh-ttl h2{font-size:16px;font-weight:700}
.mdh-ttl p{font-size:11px;opacity:.78}
.mdb{padding:18px}
.mdb-sec{background:#fff;border-radius:8px;padding:15px;margin-bottom:12px;border:1px solid var(--border)}
.mdb-sec h3{font-size:12px;font-weight:700;color:var(--g800);margin-bottom:9px}
.mdb-sec p{font-size:13px;color:var(--t2);line-height:1.65;margin-bottom:6px}
.mdb-sec p:last-child{margin-bottom:0}
.mdb-list{font-size:13px;color:var(--t2);line-height:1.75;padding-left:18px}
.mdb-list li{margin-bottom:5px}
.mdb-verse{font-family:var(--serif);font-style:italic;font-size:13.5px;line-height:1.7;color:#1A2530;background:#eef0eb;padding:13px;border-radius:6px;border-left:4px solid var(--g500);margin-bottom:6px}
.mdb-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:13px}
.mdb-row:last-child{border-bottom:none}
.mdb-row .mr-lbl{color:var(--t2);font-weight:600}
.mdb-row .mr-val{color:var(--t1);font-weight:700}
.mdb-pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;margin:0 4px 4px 0}
.mdb-badge-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.li-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px}
.li-strip::-webkit-scrollbar{display:none}
.li-chip{flex-shrink:0;min-width:84px;border-radius:8px;padding:10px 8px;text-align:center;color:#fff;font-size:11px;font-weight:700}
.li-chip small{display:block;font-size:11px;font-weight:700;opacity:.85;margin-top:2px}
#qa-modal{position:absolute;top:107px;left:10px;right:10px;bottom:auto;background:#fff;border-radius:10px;padding:18px;box-shadow:var(--lift);transform:translateY(-18px);opacity:0;pointer-events:none;transition:transform .24s cubic-bezier(.4,0,.2,1),opacity .2s;z-index:50;max-height:calc(100dvh - 124px);overflow-y:auto}
#qa-modal.open{transform:translateY(0);opacity:1;pointer-events:auto}
.qa-handle{width:38px;height:4px;background:#E0E0E0;border-radius:2px;margin:0 auto 16px}
.qa-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.qa-title{font-size:18px;font-weight:700;color:var(--t1)}
.qa-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:12px}
.qa-mode{border:1px solid var(--border);background:#f6f7f3;border-radius:8px;padding:9px 5px;font-family:inherit;font-size:11px;font-weight:700;color:var(--t2);cursor:pointer}
.qa-mode.active{background:var(--g700);border-color:var(--g700);color:#fff}
.qa-close{width:36px;height:36px;border:none;border-radius:8px;background:#eff1ec;color:var(--t2);font-size:22px;line-height:1;cursor:pointer}
.qa-amt{width:100%;font-size:36px;font-weight:700;color:var(--g700);border:none;outline:none;text-align:center;background:#eff1ec;border-radius:8px;padding:12px;font-family:inherit;margin-bottom:14px}
.qa-nlp-row{display:flex;gap:8px;margin-bottom:14px}
.qa-nlp-row .qa-input{flex:1;margin-bottom:0;font-size:13px}
.qa-nlp-btn{flex-shrink:0;width:46px;border:none;border-radius:8px;background:var(--g700);color:#fff;font-size:18px;cursor:pointer;font-family:inherit}
.qa-nlp-btn:hover{background:var(--g900)}
.qa-nlp-hint{font-size:11px;color:var(--t3);margin:-8px 0 14px;line-height:1.4}
.qa-iotoggle{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:14px}
.qa-io{border:1.5px solid var(--border);background:#f6f7f3;border-radius:8px;padding:9px 5px;font-family:inherit;font-size:12px;font-weight:700;color:var(--t2);cursor:pointer}
.qa-io.sel-expense{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.qa-io.sel-income{border-color:var(--g700);background:var(--green-bg);color:var(--g700)}
@media (max-width:360px){.qa-cats{grid-template-columns:repeat(2,1fr)}
.qa-amt{font-size:30px}}
.qa-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.qa-field{margin-bottom:12px}
.qa-field label{display:block;font-size:11px;font-weight:700;color:var(--t3);margin-bottom:5px}
.qa-input,.qa-textarea{width:100%;border:1.5px solid var(--border);border-radius:8px;background:#f6f7f3;font-family:inherit;font-size:14px;color:var(--t1);padding:12px;outline:none}
.qa-textarea{min-height:76px;resize:none;line-height:1.45}
.qa-work-fields{display:none}
.qa-modal-task .qa-money-fields{display:none}
.qa-modal-task .qa-work-fields{display:block}
.qa-modal-task .qa-cats{grid-template-columns:repeat(3,1fr)}
.qa-cat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;background:#eff1ec;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:all .2s}
.qa-cat.sel{border-color:var(--g700);background:#e4eee8}
.qa-cat-em{font-size:22px}
.qa-cat-nm{font-size:11px;font-weight:700;color:var(--t2)}
.qa-save{width:100%;padding:16px;background:var(--g700);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}
.qa-save:hover{background:var(--g900)}
.backdrop{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.3);z-index:45;display:none}
.backdrop.show{display:block}
.saint-card{margin:14px 16px 0;background:#FFFBF2;border-radius:10px;padding:14px 14px 12px;border:1.5px solid var(--gold);display:flex;gap:12px;align-items:flex-start;position:relative;overflow:hidden}
.saint-card::before{content:none;position:absolute;right:-6px;top:-10px;font-size:72px;opacity:.05;color:var(--gold-d)}
.saint-icon{font-size:38px;flex-shrink:0;line-height:1;margin-top:2px}
.saint-body{flex:1;min-width:0}
.saint-meta{font-size:11px;font-weight:700;color:var(--gold-d);margin-bottom:3px}
.saint-name{font-size:15px;font-weight:700;color:var(--t1);margin-bottom:1px}
.saint-role{font-size:11px;color:var(--t3);margin-bottom:7px}
.saint-verse{font-family:var(--serif);font-size:12px;font-style:italic;color:var(--t2);line-height:1.5;border-left:2.5px solid var(--gold);padding-left:9px;margin-bottom:7px}
.saint-patronage{font-size:11px;color:var(--g700);font-weight:600;line-height:1.4}
.saint-pray-btn{margin-top:9px;padding:6px 12px;background:var(--gold);border:none;border-radius:10px;font-size:11px;font-weight:700;color:#12261d;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:4px;transition:all .2s}
.saint-pray-btn:hover{background:var(--gold-d);color:#fff}
.saint-feast-tag{flex-shrink:0;text-align:center;background:var(--gold);border-radius:6px;padding:8px 9px;min-width:46px}
.saint-feast-date{font-size:12px;font-weight:700;color:#12261d;line-height:1.2}
.saint-feast-lbl{font-size:11px;font-weight:700;color:#12261d;opacity:.75;margin-top:2px}
.saint-modal{display:none;position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(27,67,50,.7);z-index:150;align-items:center;justify-content:center;padding:24px}
.saint-modal.open{display:flex}
.saint-modal-card{background:#fff;border-radius:10px;width:100%;max-width:340px;box-shadow:var(--lift);overflow:hidden}
.saint-modal-hdr{background:var(--g700);padding:16px 20px;color:#fff;display:flex;align-items:center;justify-content:space-between}
.saint-modal-hdr span{font-size:15px;font-weight:700}
.saint-modal-close{width:28px;height:28px;background:rgba(255,255,255,.2);border-radius:50%;border:none;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.saint-modal-body{padding:20px}
.saint-modal-title{font-size:14px;font-weight:700;color:var(--g900);margin-bottom:12px;font-style:italic}
.saint-modal-body p{font-size:13px;color:var(--t2);line-height:1.7;margin-bottom:10px}
.saint-amen{text-align:center;font-size:15px;font-weight:700;color:var(--g700);margin-top:8px}
.value-wheel-card-v2{margin:0 16px 16px;background:#fff;border-radius:10px;padding:16px 16px 12px;border:2px solid var(--g100);position:relative;overflow:hidden}
.value-wheel-card-v2::before{content:"";position:absolute;top:-30px;right:-30px;width:120px;height:120px;background:radial-gradient(circle,rgba(45,106,79,.08) 0,transparent 70%);pointer-events:none}
.vw2-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:8px}
.vw2-title-block h2{font-size:15px;font-weight:700;color:var(--g900);margin-bottom:2px;letter-spacing:-.2px}
.vw2-title-block p{font-size:11px;color:var(--t3);line-height:1.4}
.vw2-badge{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}
.vw2-badge-pill{font-size:11px;font-weight:700;padding:3px 8px;border-radius:99px}
.vw2-badge-pill.green{background:var(--green-bg);color:var(--g700)}
.vw2-badge-pill.gold{background:var(--gold-bg);color:var(--gold-d)}
.vw2-detail{display:none;margin-top:12px;background:#F9F8F5;border-radius:10px;padding:12px;border:1px solid var(--border);animation:vwFadeIn .3s ease}
.vw2-detail.show{display:block}
@keyframes vwFadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.vw2-detail-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.vw2-detail-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;background:var(--green-bg)}
.vw2-detail-info h3{font-size:14px;font-weight:700;color:var(--g900);line-height:1.2;margin-bottom:2px}
.vw2-detail-info p{font-size:11px;color:var(--t3);line-height:1.4}
.vw2-pillars-label{font-size:11px;font-weight:700;color:var(--t3);margin-bottom:8px}
.vw2-pillar-card{background:#fff;border-radius:8px;border:1px solid var(--border);margin-bottom:8px;overflow:hidden}
.vw2-pillar-head{display:flex;align-items:center;gap:8px;padding:10px 12px;cursor:pointer}
.vw2-pillar-head:active{background:var(--bg)}
.vw2-pillar-num{width:24px;height:24px;border-radius:6px;background:var(--g700);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.vw2-pillar-name{flex:1;font-size:12.5px;font-weight:700;color:var(--t1)}
.vw2-pillar-ic{font-size:16px}
.vw2-pillar-arr{font-size:14px;color:var(--t3);transition:transform .2s}
.vw2-pillar-card.open .vw2-pillar-arr{transform:rotate(90deg)}
.vw2-pillar-body{display:none;padding:0 12px 12px}
.vw2-pillar-card.open .vw2-pillar-body{display:block}
.vw2-step{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid #eff1ec}
.vw2-step:last-child{border-bottom:none}
.vw2-step-num{width:20px;height:20px;border-radius:4px;background:var(--green-bg);color:var(--g700);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.vw2-step-text{font-size:12px;color:var(--t2);line-height:1.5}
.vw2-step-text b{color:var(--t1);display:block;margin-bottom:1px;font-size:11.5px}
.vw2-detail-actions{display:flex;gap:8px;margin-top:12px}
.vw2-action-btn{flex:1;padding:11px;border:none;border-radius:8px;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer}
.vw2-action-btn.primary{background:var(--g700);color:#fff}
.vw2-action-btn.secondary{background:var(--green-bg);color:var(--g700)}
.project-blueprint-v2{margin-top:14px;background:#F4ECFF;border:1px solid #DDC9F8;border-radius:10px;padding:14px}
.project-blueprint-v2 h3{font-size:13px;font-weight:700;color:var(--purple);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.disc-stepper{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;position:relative}
.disc-stepper::before{content:"";position:absolute;top:13px;left:22px;right:22px;height:2px;background:#DDC9F8;z-index:0}
.disc-step{display:flex;flex-direction:column;align-items:center;gap:4px;z-index:1;width:22%}
.disc-step-circle{width:26px;height:26px;background:#fff;border:2px solid var(--purple);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--purple)}
.disc-step.active .disc-step-circle{background:var(--purple);color:#fff}
.disc-step-lbl{font-size:11px;font-weight:700;color:var(--purple);text-align:center;line-height:1.2}
.disc-step.completed .disc-step-circle{background:var(--g700);border-color:var(--g700);color:#fff}
.disc-step.completed .disc-step-lbl{color:var(--g700)}
@keyframes stepGlow{0%,100%{box-shadow:0 0 0 0 rgba(54,16,95,.5);}60%{box-shadow:0 0 0 8px rgba(54,16,95,0);}}
.disc-step.active .disc-step-circle{animation:stepGlow 2s ease-out infinite}
.disc-stepper::before{transition:background .4s}
.prayer-unlock{display:none;margin-top:10px;background:#F4ECFF;border-radius:8px;padding:12px 14px;border:1.5px solid var(--purple)}
.prayer-unlock.show{display:block;animation:fadeSlideUp .4s ease}
@keyframes fadeSlideUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.prayer-unlock-title{font-size:11px;font-weight:700;color:var(--purple);margin-bottom:6px;display:flex;align-items:center;gap:5px}
.prayer-unlock-desc{font-size:11.5px;color:var(--t2);line-height:1.5;margin-bottom:10px}
.prayer-unlock-btn{width:100%;padding:11px;background:var(--purple);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;display:flex;align-items:center;justify-content:center;gap:7px}
.prayer-unlock-btn:hover{background:#4A1480}
.daily-reminder-card{background:var(--card);border-radius:var(--r4);margin:10px 16px 0;overflow:hidden}
.dr-header{padding:10px 14px 0;display:flex;align-items:center;gap:6px;cursor:pointer}
.dr-header-title{flex:1;font-size:11px;font-weight:700;color:var(--t3)}
.dr-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:4px;background:var(--red-bg);color:var(--red)}
.dr-badge.ok{background:var(--green-bg);color:var(--g700)}
.dr-toggle{font-size:12px;color:var(--t3);transition:transform .2s}
.dr-toggle.open{transform:rotate(180deg)}
.dr-body{padding:10px 14px 12px;display:none}
.dr-body.open{display:block}
.dr-tabs{display:flex;gap:3px;margin-bottom:8px}
.dr-tab{flex:1;padding:5px 3px;border:none;border-radius:4px;font-size:11px;font-weight:700;cursor:pointer;background:#eff1ec;color:var(--t3);font-family:inherit}
.dr-tab.act{background:var(--red);color:#fff}
.dr-tab.act.pend{background:var(--gold-d)}
.dr-tab.act.opt{background:var(--blue)}
.dr-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #F5F2EE}
.dr-item:last-child{border-bottom:none}
.dr-item-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.urgent-dot{background:var(--red)}
.pend-dot{background:var(--gold-d)}
.opt-dot{background:var(--blue)}
.dr-item-txt{flex:1;font-size:12.5px;color:var(--t2);line-height:1.35}
.dr-item-txt.checked{text-decoration:line-through;color:var(--t3)}
.dr-chk{width:22px;height:22px;border:2px solid var(--border);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;transition:all .15s}
.dr-chk.on{background:var(--g700);border-color:var(--g700);color:#fff}
.dr-empty{text-align:center;padding:8px 0;font-size:12px;color:var(--t3)}
.np-usage-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.np-usage-step{background:#f6f7f3;border-radius:6px;padding:9px 10px;display:flex;flex-direction:column;gap:3px}
.np-usage-step-num{width:18px;height:18px;border-radius:4px;background:var(--g700);color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.np-usage-step-title{font-size:11px;font-weight:700;color:var(--g900)}
.np-usage-step-desc{font-size:11px;color:var(--t3);line-height:1.3}
.np-structure-card{background:#FDFBF5;border:1px solid rgba(233,196,106,.45);border-radius:8px;padding:12px 14px;margin:0 16px 12px}
.np-structure-card h3{font-size:14px;font-weight:700;color:var(--g900);margin-bottom:6px}
.np-structure-card p{font-size:12px;color:var(--t2);line-height:1.45;margin-bottom:8px}
.np-structure-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.np-structure-pill{font-size:11px;font-weight:700;color:#0B3D2E;background:#e4eee8;border-radius:6px;padding:6px 7px}
.np-search{width:100%;padding:9px 14px;border:1.5px solid var(--border);border-radius:6px;font-size:13px;font-family:inherit;background:#FAFAF8;color:var(--t1);outline:none;margin-bottom:4px}
.np-search:focus{border-color:var(--g600)}
.np-group-hdr{padding:10px 16px 4px;background:var(--bg);font-size:11px;font-weight:700;color:var(--t3);position:sticky;top:0;z-index:5;border-bottom:1px solid var(--border)}
.np-tag{font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;background:var(--green-bg);color:var(--g700);margin-left:auto;flex-shrink:0}
.np-tag.labor{background:#e4eee8;color:#1B5E20}
.np-tag.spend{background:#FFF3E0;color:#E65100}
.np-tag.save{background:#E3F2FD;color:#0D47A1}
.np-tag.debt{background:#FCE4E6;color:var(--red)}
.np-tag.invest{background:#F3E5F5;color:#4A148C}
.np-tag.biz{background:#E8EAF6;color:#283593}
.np-tag.greed{background:#FBE9E7;color:#BF360C}
.np-tag.family{background:#e4eee8;color:#1B5E20}
.np-tag.charity{background:#f7f0dd;color:#F57F17}
.np-tag.purpose{background:#F3E5F5;color:#4A148C}
.np-tag.give{background:#f7f0dd;color:#F57F17}
.np-tag.overview{background:#E8F4FD;color:#0C4A6E}
.np-tag.budget{background:#FEF3C7;color:#92400E}
.disc-form{background:#fff;border-radius:8px;padding:12px;margin-bottom:10px}
.disc-form-row{margin-bottom:8px}
.disc-form-row label{display:block;font-size:11px;font-weight:700;color:var(--t2);margin-bottom:4px}
.disc-form-row input,.disc-form-row textarea{width:100%;background:#F8F9FA;border:1px solid var(--border);padding:9px 10px;border-radius:6px;font-size:12px;font-family:inherit;outline:none;color:var(--t1)}
.disc-form-row textarea{min-height:56px;resize:none}
.disc-schema{background:#fff;border-radius:8px;padding:10px;margin-bottom:10px}
.disc-schema-title{font-size:11px;font-weight:700;color:var(--purple);margin-bottom:8px}
.disc-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:4px}
.disc-flow-box{background:var(--purple-bg);border-radius:6px;padding:6px 4px;text-align:center;font-size:11px;font-weight:700;color:var(--purple);line-height:1.3}
.disc-flow-arrow{color:var(--purple);font-size:12px;font-weight:700}
.disc-btns{display:flex;gap:8px}
.disc-btn{flex:1;padding:10px;border:none;border-radius:6px;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer}
.disc-btn.primary{background:var(--purple);color:#fff}
.disc-btn.secondary{background:#EDE5FA;color:var(--purple)}
.qa-task-section{display:none}
.qa-task-section.visible{display:block}
.qa-value-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.qa-val-tag{padding:5px 10px;font-size:11px;font-weight:700;border-radius:10px;border:1.5px solid var(--border);color:var(--t2);cursor:pointer;transition:all .15s}
.qa-val-tag.active{background:var(--g700);color:#fff;border-color:var(--g700)}
.invest-port-card{margin:0 16px 14px;background:#fff;border-radius:10px;padding:14px}
.invest-port-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.invest-port-hdr h3{font-size:13px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:6px}
.invest-port-total{font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-bg);padding:3px 9px;border-radius:99px}
.invest-port-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #eff1ec}
.invest-port-row:last-of-type{border-bottom:none}
.invest-port-ic{width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.invest-port-info{flex:1;min-width:0}
.invest-port-name{font-size:12px;font-weight:700;color:var(--t1)}
.invest-port-sub{font-size:11px;color:var(--t3);margin-top:1px}
.invest-port-val{font-size:12px;font-weight:700;color:var(--t1);flex-shrink:0}
.invest-port-esg{margin-top:10px;padding:9px 10px;background:var(--green-bg);border-radius:6px;font-size:11px;color:var(--g700);line-height:1.5}
.invest-port-link{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;padding:9px;background:var(--bg);border-radius:6px;font-size:11.5px;font-weight:700;color:var(--g700);cursor:pointer}
.cf-card{margin:10px 16px;background:#fff;border-radius:10px;overflow:hidden}
.cf-hdr{padding:12px 14px 10px;display:flex;align-items:center;justify-content:space-between}
.cf-hdr h3{font-size:13px;font-weight:700;color:var(--t1);display:flex;align-items:center;gap:6px}
.cf-hdr p{font-size:11px;color:var(--t3);margin-top:2px}
.cf-tabs{display:flex;gap:6px;padding:0 14px 10px}
.cf-tab{flex:1;text-align:center;padding:6px 4px;font-size:11px;font-weight:700;border-radius:6px;background:var(--bg);color:var(--t2);cursor:pointer;border:1.5px solid transparent}
.cf-tab.active{background:var(--g700);color:#fff}
.cf-body{padding:0 14px 12px}
.cf-summary{display:flex;justify-content:space-between;background:var(--green-bg);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.cf-sum-item{text-align:center;flex:1}
.cf-sum-lbl{font-size:11px;font-weight:700;color:var(--t3)}
.cf-sum-val{font-size:13px;font-weight:700;margin-top:2px}
.cf-sum-val.income{color:var(--g700)}
.cf-sum-val.expense{color:var(--red)}
.cf-sum-val.surplus.pos{color:var(--blue)}
.cf-sum-val.surplus.neg{color:var(--red)}
.cf-bars{margin-bottom:10px}
.cf-bar-row{margin-bottom:7px}
.cf-bar-top{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--t2);margin-bottom:3px}
.cf-bar-track{height:7px;background:var(--bg);border-radius:4px;overflow:hidden}
.cf-bar-fill{height:100%;border-radius:4px;transition:width .4s}
.cf-suggestion{background:#FFF8E8;border:1px solid var(--gold);border-radius:8px;padding:10px 12px;font-size:11.5px;line-height:1.6;color:#6B4E0A;margin-bottom:10px}
.cf-suggestion b{color:var(--gold-d)}
.cf-ask-btn{width:100%;padding:10px;border:none;border-radius:8px;background:var(--g700);color:#fff;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer}
#about-detail{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:121;overflow-y:auto;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1)}
#about-detail.open{transform:translateX(0)}
#about-detail::-webkit-scrollbar{display:none}
.about-hero{background:#14301f;padding:24px 20px 20px;color:#fff;text-align:center}
.about-hero-icon{font-size:40px;margin-bottom:8px}
.about-hero h1{font-size:18px;font-weight:700;letter-spacing:-.3px}
.about-hero .about-ver{font-size:11px;opacity:.6;margin-top:4px}
.about-sec{padding:16px}
.about-sec-title{font-size:11px;font-weight:700;color:var(--g700);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.about-mission{font-family:var(--serif);font-size:13px;font-style:italic;line-height:1.7;color:var(--t1);background:#fff;border-left:3px solid var(--gold);border-radius:0 8px 8px 0;padding:14px}
.theology-quote{border-left:4px solid var(--g500);padding:16px 16px 16px 20px;margin:0;background:var(--green-bg);border-radius:0 8px 8px 0;font-family:var(--serif);font-style:italic;color:var(--t1);font-size:13.5px;line-height:1.75}
.theology-quote p{margin:0}
.theology-subtitle{font-size:12.5px;color:var(--t2);margin:10px 0 14px;line-height:1.6}
.theology-points{display:flex;flex-direction:column;gap:10px;margin-top:2px}
.theology-point{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#fff;border-radius:8px;border:1px solid var(--border)}
.theo-num{width:28px;height:28px;border-radius:50%;background:var(--g700);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.theo-txt{font-size:13px;color:var(--t1);line-height:1.6}
.theo-txt strong{color:var(--g700)}
.theology-banner{background:#16352a;border-radius:8px;padding:18px;margin-bottom:0;color:#fff;text-align:center}
.theology-banner-icon{font-size:28px;margin-bottom:6px}
.theology-banner-title{font-size:15px;font-weight:700;margin-bottom:4px}
.theology-banner-sub{font-size:11px;opacity:.75}
.about-vision-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}
.about-vstat{background:#fff;border-radius:8px;padding:10px;text-align:center}
.about-vstat b{font-size:15px;font-weight:700;color:var(--g700);display:block}
.about-vstat span{font-size:11px;color:var(--t3)}
.about-chain{background:#fff;border-radius:8px;padding:14px}
.about-chain-item{display:flex;align-items:center;gap:10px;padding:7px 0}
.about-chain-num{width:26px;height:26px;border-radius:50%;background:var(--green-bg);color:var(--g700);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.about-chain-txt{font-size:12px;font-weight:700;color:var(--t1)}
.about-chain-txt span{display:block;font-size:11px;font-weight:500;color:var(--t3);margin-top:1px}
.about-chain-arrow{text-align:center;font-size:12px;color:var(--g500);margin-left:13px}
.about-pillar-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.about-pillar{background:#fff;border-radius:8px;padding:10px;display:flex;gap:8px;align-items:flex-start}
.about-pillar-ic{font-size:18px;flex-shrink:0}
.about-pillar-txt b{display:block;font-size:11px;font-weight:700;color:var(--t1);line-height:1.3}
.about-pillar-txt span{font-size:11px;color:var(--t3)}
.about-feature-list{background:#fff;border-radius:8px;padding:4px}
.about-feature-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #eff1ec}
.about-feature-row:last-child{border-bottom:none}
.about-feature-ic{font-size:18px}
.about-feature-txt{flex:1;font-size:12px;font-weight:700;color:var(--t1)}
.about-feature-txt span{display:block;font-size:11px;color:var(--t3);font-weight:500}
.about-footer{text-align:center;padding:18px;font-size:11px;color:var(--t3);line-height:1.6}

/* ---- icons ---- */
.ic{display:inline-block;width:1.15em;height:1.15em;flex:none;fill:none;stroke:currentColor;stroke-width:1.75;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-.2em}
[class^="icd-"]{display:inline-block;width:.7em;height:.7em;flex:none;vertical-align:.02em}
.icd-red{color:#b3261e}.icd-yellow{color:#c9a24b}.icd-green{color:#2f7d4f}.icd-blue{color:#2f64b0}
.icd-purple{color:#5b3a8a}.icd-white{color:#cfd5cf}

/* ---- app shell (full-screen on phones, centred column on desktop) ---- */
.app-shell{position:relative;display:flex;flex-direction:column;width:100%;max-width:520px;height:100vh;height:100dvh;
  margin:0 auto;background:var(--bg);overflow:hidden}
@media(min-width:560px){.app-shell{border-left:1px solid var(--border);border-right:1px solid var(--border)}}
.app-body{flex:1;min-height:0;display:flex;flex-direction:column}
.app-topbar{order:-2;display:flex;align-items:center;gap:8px;flex-shrink:0;position:relative;z-index:30;
  padding:calc(env(safe-area-inset-top,0px) + 8px) 10px 8px;background:var(--g800);color:#fff}
.back-btn,.top-info{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:0;
  border-radius:var(--r3);background:transparent;color:#fff;font-size:20px;cursor:pointer}
.back-btn:hover,.top-info:hover{background:rgba(255,255,255,.12)}
.top-info{font-size:18px;opacity:.85}
.top-title{flex:1;min-width:0}
.top-title strong{display:block;font-size:16px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-title span{display:block;margin-top:1px;font-size:12px;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top-quick{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;border:0;border-radius:var(--r3);
  background:#fff;color:var(--g800);font:600 14px var(--sans);cursor:pointer;white-space:nowrap}
.top-quick:hover{background:var(--g100)}
.tab-content{min-height:0}

.bottom-nav{order:2;position:relative;z-index:25;display:flex;flex-shrink:0;background:#fff;border-top:1px solid var(--border);
  padding:4px 4px calc(env(safe-area-inset-bottom,0px) + 4px)}
.nav-btn{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px 5px;
  border:0;border-radius:var(--r3);background:none;color:var(--t3);cursor:pointer;user-select:none;-webkit-user-select:none;text-decoration:none}
.nav-btn .n-icon{display:flex;font-size:22px;line-height:1}
.nav-btn .n-icon .ic{stroke-width:1.6}
.nav-btn .n-lbl{max-width:100%;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-btn.active{color:var(--g700)}
.nav-btn.active .n-lbl{font-weight:600}
.nav-btn.active .n-icon .ic{stroke-width:2.1}
.nav-btn.active::before{content:'';position:absolute;top:-5px;left:28%;right:28%;height:2px;background:var(--g700)}

/* ---- surfaces and focus ---- */
.card{border:1px solid var(--border)}
:focus-visible{outline:2px solid var(--g500);outline-offset:2px}
.ob-emoji .ic{width:56px;height:56px;stroke-width:1.25}
.ob-emoji{display:flex;justify-content:center;color:var(--gold)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ---- toast ---- */
.toast{position:absolute;left:50%;bottom:84px;transform:translateX(-50%);z-index:300;max-width:90%;padding:10px 16px;
  border-radius:var(--r3);background:var(--g800);color:#fff;font-size:14px;font-weight:500;line-height:1.35;
  box-shadow:var(--lift);text-align:center}
.fab{bottom:calc(env(safe-area-inset-bottom,0px) + 76px);width:52px;height:52px;font-size:24px}
.fab .ic{stroke-width:2}

.cal-cell .dot.purple{background:#6b4a8f}

/* Tên app */
.top-title strong.brand-title{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-weight:600;font-size:21px;letter-spacing:.2px;line-height:1.15;color:#f3dfa6;text-shadow:0 1px 0 rgba(0,0,0,.18)}
.top-title strong.brand-title::first-letter{font-size:1.18em;color:#fff}
.top-title span{font-family:'Be Vietnam Pro',sans-serif;letter-spacing:.6px;text-transform:uppercase;font-size:10.5px}
/* Lịch: bài đọc bấm mới mở */
.rd-item{border:1px solid rgba(0,0,0,.09);border-radius:12px;margin:8px 0;background:#fff;overflow:hidden}
.rd-item>button{all:unset;box-sizing:border-box;display:flex;gap:8px;align-items:center;width:100%;padding:10px 12px;cursor:pointer;font-size:14px}
.rd-item>button b{min-width:78px;color:#2b6350;font-weight:600}
.rd-item>button span{flex:1;min-width:0}
.rd-item>button i{transition:transform .2s;font-style:normal;opacity:.6}
.rd-item.open>button i{transform:rotate(90deg)}
.rd-body{display:none;padding:2px 14px 12px;font-family:'Source Serif 4',Georgia,serif;font-size:15.5px;line-height:1.6;white-space:pre-line}
.rd-item.open .rd-body{display:block}
.rd-empty{font-size:12.5px;opacity:.7;padding:0 12px 10px}
.ds-feast{margin:6px 0 2px;font-size:13.5px;color:#7a5a12}

.tl-more{margin-top:8px}.tl-more>summary{cursor:pointer;font-size:13px;color:#2b6350;font-weight:600;padding:6px 0}
.tl-compact-row,.tl-feast{margin:4px 0}
.app-body .tab-pane>*{max-width:100%;box-sizing:border-box}

.lb-verse{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.22)}
.lb-verse q{display:block;quotes:none;font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-weight:600;font-size:22px;line-height:1.38;color:#fff}
.lb-verse q::before{content:'\201C'}.lb-verse q::after{content:'\201D'}
.lb-verse cite{display:block;margin-top:6px;font-style:normal;font-size:12.5px;letter-spacing:.5px;color:#f3dfa6;font-weight:600}

.rd-meta{font-size:11.5px;color:var(--t3,#6b7280);margin:4px 0 10px;line-height:1.4;padding:6px 10px;background:rgba(43,99,80,.06);border-radius:8px}
.rd-meta-empty{background:rgba(180,80,20,.07);color:#8a4b1a}
.rd-status{font-weight:600;color:#2b6350}
.ds-color{font-weight:500;opacity:.85}
