@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--green:#20382e;--deep:#152f27;--leaf:#436654;--cream:#f8f6f0;--white:#fff;--gold:#b99658;--goldlight:#f5ede0;--border:#e6e4da;--text:#243e35;--muted:#67766f;--red:#9a3c32;--shadow:0 18px 60px #223b2a12}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--text);font:15px/1.6 'DM Sans',Arial,sans-serif}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',Georgia,serif;line-height:1.14;letter-spacing:-.027em;font-weight:500}h1{font-size:clamp(40px,5.2vw,69px)}h2{font-size:clamp(30px,3.3vw,45px)}h1 em,h2 em{font-weight:500;color:var(--gold);font-style:italic}h3{font-size:18px;line-height:1.3;color:var(--deep);margin:0 0 14px}a{color:inherit}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.shell{max-width:1170px;margin:auto;padding:0 25px}.app-header{background:#fff;border-bottom:1px solid var(--border)}.header-layout{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:47px;height:50px;display:grid;place-items:center;border:1.5px solid var(--gold);clip-path:polygon(50% 0,96% 17%,96% 68%,50% 100%,4% 68%,4% 17%);color:var(--gold);font:28px 'Playfair Display',serif}.brand strong{font:24px 'Playfair Display',Georgia,serif;display:block;color:var(--deep)}.brand strong em{font-weight:400}.brand small{font-size:9px;letter-spacing:2.2px;color:var(--gold);display:block}.header-nav{display:flex;gap:22px;align-items:center}.header-nav a{text-decoration:none;font-size:13px;font-weight:700;color:var(--deep)}.header-nav .header-book{background:var(--green);color:white;padding:12px 17px;border-radius:6px}.hero{margin:28px auto 17px;border-radius:16px;background:var(--deep);color:#fff;display:grid;grid-template-columns:1.6fr .9fr;overflow:hidden;min-height:300px}.hero-text{padding:49px 52px}.eyebrow{font-size:10px;letter-spacing:2.1px;font-weight:700;color:var(--gold);margin-bottom:15px}.hero h1{max-width:660px;margin-bottom:14px}.hero p{color:#d9e1db;max-width:650px;font-size:15px}.hero-badges{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.hero-badges span{padding:5px 10px;border:1px solid #ffffff33;border-radius:30px;color:#f2efe5;font-size:11px}.hero-side{background:linear-gradient(140deg,#2c5343,#193d32);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-left:1px solid #ffffff1c;padding:25px}.hero-side>span:not(.hero-graphic){font:25px/1.35 'Playfair Display',serif}.hero-side em{color:#d8ba78}.hero-side p{font-size:12px;margin-top:22px}.hero-graphic{font:55px Georgia;color:#d0ae68;display:block;margin-bottom:12px}.privacy-banner{display:flex;align-items:flex-start;gap:14px;margin:18px 0;padding:14px 20px;background:#f3eee4;border:1px solid #e8dfce;border-radius:10px}.privacy-banner span{font-size:21px}.privacy-banner p{margin:0;color:#5b6059;font-size:12px}.tabs{display:flex;gap:6px;padding:9px;background:white;border:1px solid var(--border);border-radius:12px;margin:23px 0 31px;overflow-x:auto;scrollbar-width:thin}.tab{border:0;background:transparent;color:#51695b;padding:11px 14px;white-space:nowrap;font-weight:700;font-size:12px;border-radius:8px}.tab.is-active{background:var(--deep);color:white}.pane{display:none;min-height:400px}.pane.is-active{display:block}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.section-heading h2{margin:0 0 5px}.section-heading p{max-width:780px;color:var(--muted);margin:5px 0 0}.section-heading .eyebrow{margin-bottom:12px}.month-selector{white-space:nowrap;font-size:12px;font-weight:700}.month-selector input{display:block;margin-top:5px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:22px 0 24px}.stat{background:#fff;border-radius:11px;border:1px solid var(--border);padding:23px;box-shadow:0 6px 24px #1c382510}.stat span,.stat small{display:block;color:var(--muted);font-size:12px}.stat strong{display:block;font:33px/1.3 'Playfair Display',serif;color:var(--deep);margin:6px 0}.stat-accent{background:var(--green);border-color:var(--green)}.stat-accent strong{color:#fff}.stat-accent span,.stat-accent small{color:#dce6dd}.panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{padding:25px;background:white;border-radius:13px;border:1px solid var(--border);box-shadow:0 4px 20px #25463109;min-width:0}.wide-panel{margin:22px 0}.panel-heading{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:13px}.panel-heading h3{margin:0}.link-button{background:none;border:0;padding:0;color:#6f7044;font-weight:700;font-size:12px;text-decoration:underline;text-underline-offset:3px}.form-stack{display:grid;gap:14px}.form-stack label,.learn-filters label,.button-stack label{font-size:12px;font-weight:700;color:#3f564a;display:block}.form-stack input,.form-stack select,.learn-filters input,.learn-filters select,.button-stack select,.month-selector input{display:block;width:100%;padding:11px 13px;border:1px solid #d7ded4;border-radius:7px;background:white;margin-top:6px;color:var(--deep);outline-color:var(--leaf);font-weight:500;min-height:43px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}.primary,.secondary,.ghost{display:inline-flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--green);background:var(--green);color:white;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.1px;padding:12px 18px;min-height:43px;border-radius:7px}.secondary{background:#fff;color:var(--deep)}.ghost{background:transparent;border:0;color:#596a60}.hint,.quiet{font-size:12px;color:var(--muted);line-height:1.7;margin:13px 0 0}.item-list{display:grid;gap:8px}.item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 13px;background:#fafaf7;border:1px solid #ebede6;border-radius:8px}.item-main{min-width:0}.item-main strong{display:block;font-size:13px;color:var(--deep);overflow-wrap:anywhere}.item-main small{display:block;color:#7a857b;font-size:11px}.item-actions{display:flex;gap:7px;align-items:center;flex-shrink:0}.item-amount{font-weight:700;font-size:13px;color:var(--green)}.icon-button,.remove-button,.mini-button{background:white;border:1px solid #e2e6de;color:#394e42;min-width:34px;height:34px;border-radius:7px;font-size:16px}.mini-button{font-size:11px;width:auto;padding:0 8px}.remove-button{color:#9a4036}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.calendar-toolbar h3{margin:0}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.days-heading{text-align:center;font-size:11px;font-weight:700;color:#89978c;margin-bottom:8px}.day{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:49px;gap:2px;background:#fafbf8;border:1px solid #edf0e9;border-radius:7px;font-size:12px;color:#415a4b}.day:hover{border-color:var(--gold)}.day.is-selected{background:var(--green);color:white;border-color:var(--green)}.day.today{outline:2px solid var(--gold);outline-offset:-2px}.day.empty{background:transparent;border:0}.dots{display:flex;gap:3px}.dot{width:5px;height:5px;border-radius:50%;background:var(--gold)}.dot.family{background:#6b9478}.day-details{margin-top:14px;padding:13px;border-radius:8px;background:#f8f8f3;color:var(--deep)}.day-details strong{font-size:12px}.day-details p{margin:5px 0;font-size:12px}.pill{font-size:11px;color:var(--leaf);padding:4px 8px;background:#edf3eb;border-radius:50px}.bars{display:grid;gap:12px}.bar-info{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#526357}.bar-track{height:8px;background:#edf1e9;border-radius:10px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,var(--leaf),var(--gold));border-radius:10px}.result-card{background:#f8f5ea}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-tile{padding:15px;background:white;border-radius:9px;border:1px solid #e7e2d4}.result-tile span{display:block;color:#69766c;font-size:11px}.result-tile strong{display:block;font:25px 'Playfair Display',Georgia,serif;color:#233b31}.result-tile.accent strong{color:#99732e}.alert{padding:10px 12px;border:1px solid #deb3a7;background:#fff0ec;border-radius:7px;color:#8c3326;font-size:12px}.bar-compare{display:grid;gap:8px;margin-top:17px}.bar-compare p{font-size:12px;margin:0}.bar-compare .bar-track{height:15px}.bar-compare .bar-fill.extra{background:var(--gold)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px;text-align:right}th,td{padding:10px;border-bottom:1px solid var(--border)}th:first-child,td:first-child{text-align:left}.sync-card .sync-icon{font-size:30px;color:var(--gold);margin-bottom:10px}.button-stack{display:grid;gap:9px;margin:15px 0}.setup-message{background:#f7f1e7;border:1px solid #ecdfc9;border-radius:8px;padding:11px;font-size:12px;color:#796140}.import-label{display:block;background:#f4f6f1;border:1px dashed #b9c5b8;padding:16px;font-weight:700;font-size:12px;border-radius:7px}.import-label input{max-width:100%;display:block;margin-top:10px}.danger-link{border:0;background:transparent;color:var(--red);text-decoration:underline;font-size:12px;padding:10px 0}.toast{position:fixed;bottom:23px;right:22px;background:var(--green);color:white;border-radius:8px;padding:13px 20px;box-shadow:0 10px 40px #18312845;z-index:10;max-width:min(350px,90vw);font-size:13px}.learning-intro{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:20px 0}.learn-metric{background:var(--deep);color:white;padding:22px;border-radius:10px;display:grid;gap:3px}.learn-metric span{color:#c3a572;font-size:12px}.learn-metric strong{font:24px 'Playfair Display',serif}.learn-metric small{color:#ccdcd0;font-size:12px}.learn-filters{display:grid;grid-template-columns:1.5fr .7fr;gap:13px;margin:13px 0 23px}.learn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.learn-item{border:1px solid #e4e8df;border-radius:10px;background:#fcfcfa;overflow:hidden}.learn-item summary{list-style:none;cursor:pointer;padding:16px 17px;display:flex;align-items:center;gap:8px}.learn-item summary::-webkit-details-marker{display:none}.learn-item summary::after{content:'+';color:var(--gold);font-size:22px;margin-left:auto}.learn-item[open] summary::after{content:'–'}.learn-item strong{font-size:13px;color:var(--deep)}.learn-item .term-badge{font-size:9px;border:1px solid #dedacb;background:#f6f0df;border-radius:50px;padding:3px 7px;flex-shrink:0;color:#75654a}.learn-item .def{padding:0 17px 17px;font-size:12px;color:#586b5f}.learn-item .def p{margin-bottom:8px}.learn-item .def small{display:block;color:#7d847d}.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.source-grid a{border:1px solid var(--border);border-radius:8px;padding:15px;text-decoration:none}.source-grid a strong{font-size:13px;display:block;color:var(--green)}.source-grid a span{font-size:11px;color:#657a6a}.bottom-cta{text-align:center;padding:55px 25px;background:#eaece3;margin:48px 0 0}.bottom-cta h2{margin:0 0 10px}.bottom-cta p{max-width:610px;margin:0 auto 20px;color:#617267}.app-footer{background:var(--deep);color:white;padding:40px 0 22px}.footer-layout{display:flex;justify-content:space-between;gap:25px}.footer-layout>div{display:grid;gap:6px}.footer-layout a{color:white;text-decoration:none;font-size:13px}.footer-layout span{color:#baa675;font-size:11px}.footer-layout>div:nth-child(2){display:flex;flex-wrap:wrap;gap:17px}.footer-disclaimer{max-width:1170px;margin:25px auto 0;padding:13px 25px;border-top:1px solid #ffffff30;color:#c5d2c6;font-size:11px}.site-note{padding:10px 15px;font-size:12px;border-left:3px solid var(--gold);background:#f7f1e4}.empty-message{color:#6a796e;font-size:12px}.day-event{font-size:11px;padding:4px 0}.day-event.bill:before{content:'●';color:var(--gold);margin-right:5px}.day-event.family:before{content:'●';color:#62866c;margin-right:5px}
@media(max-width:850px){.hero{grid-template-columns:1fr}.hero-side{display:none}.hero-text{padding:36px 28px}.stat-grid{grid-template-columns:repeat(2,1fr)}.panel-grid{grid-template-columns:1fr}.header-nav a:nth-child(2){display:none}.header-layout{min-height:74px}.brand strong{font-size:20px}.section-heading{align-items:start;flex-direction:column}.learn-grid,.source-grid{grid-template-columns:1fr}}@media(max-width:520px){.shell{padding:0 15px}.header-nav a:not(.header-book){display:none}.header-nav .header-book{padding:9px;font-size:11px}.brand-mark{width:37px;height:40px}.brand strong{font-size:16px}.brand small{font-size:7px;letter-spacing:1.4px}.hero{margin-top:15px}.hero-text{padding:30px 23px}h1{font-size:42px}.stat-grid{gap:8px}.stat{padding:14px}.stat strong{font-size:24px}.tabs{margin:16px 0 23px}.tab{padding:10px 12px}.panel{padding:17px}.form-row{grid-template-columns:1fr}.learning-intro{grid-template-columns:1fr;gap:7px}.learn-filters{grid-template-columns:1fr}.result-grid{grid-template-columns:1fr 1fr}.footer-layout{flex-direction:column}.hero-badges span{font-size:10px}.day{min-height:42px;padding:4px}.calendar-grid{gap:2px}.brand{gap:6px}}
/* Additional interactive planner controls */
.day{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left;background:#fff;border:1px solid #e6e4da;min-height:60px;border-radius:7px;padding:7px;color:var(--deep)}
.day:hover{border-color:var(--gold);background:#fffaf3}.day.day-active{background:#f5ede0;border:2px solid var(--gold)}.day>span{display:flex;gap:3px}.day-blank{background:transparent;border:0}
.dot{display:inline-block;width:7px;height:7px;border-radius:100%}.dot-gold{background:var(--gold)}.dot-green{background:#517e61}
.item{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:13px 0;border-top:1px solid var(--border)}.item:first-child{border-top:0}.item strong{font-weight:700}.item span,.item>div:first-child{flex:1;min-width:0}.item small{display:block;font-size:12px;color:var(--muted)}
.bill-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.paid-check{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}.paid-check input{width:auto}
.mini-remove,.mini-link{font-size:12px;text-decoration:none;background:transparent;border:1px solid var(--border);border-radius:5px;padding:5px 8px;color:var(--leaf)}.mini-remove:hover{color:var(--red)}
.bar-row{margin:13px 0}.bar-row>div:first-child{display:flex;justify-content:space-between;font-size:13px}.bar-track{background:#ecece5;border-radius:12px;height:8px;overflow:hidden;margin-top:7px}.bar-track span{display:block;height:100%;background:var(--gold);border-radius:12px}
.result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.result-grid>div{background:var(--cream);padding:18px;border-radius:8px}.result-grid span{display:block;font-size:12px;color:var(--muted)}.result-grid strong{display:block;font-size:20px;color:var(--deep);margin:6px 0}.result-grid small{font-size:11px;color:var(--muted)}
.learn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.learn-card{background:#fcfbf8;border:1px solid var(--border);padding:18px;border-radius:9px}.learn-card small{font-size:10px;letter-spacing:1.1px;color:#9b7c48;text-transform:uppercase;font-weight:700}.learn-card h4{font:21px 'Playfair Display',Georgia,serif;color:var(--deep);margin:7px 0}.learn-card p{font-size:13px;color:var(--muted);margin:0}
.learning-intro{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:20px}.learn-metric{background:var(--deep);color:white;border-radius:10px;padding:16px 20px;display:flex;flex-direction:column}.learn-metric span{font-size:11px;color:var(--gold)}.learn-metric strong{font:20px 'Playfair Display',Georgia,serif}.learn-metric small{color:#cbd5cf}.learn-filters{display:grid;grid-template-columns:2fr 1fr;gap:12px;margin-bottom:20px}.source-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.source-grid a{border:1px solid var(--border);text-decoration:none;padding:14px;border-radius:8px}.source-grid strong{display:block}.source-grid span{font-size:12px;color:var(--muted)}
@media(max-width:850px){.learn-grid,.source-grid{grid-template-columns:1fr}}@media(max-width:520px){.learning-intro,.learn-filters,.result-grid{grid-template-columns:1fr}.bill-item{align-items:flex-start;flex-wrap:wrap}.bill-actions{width:100%}.day{min-height:43px;padding:4px}}
