@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{font-family:'DM Sans',Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#2B2938;background:#FAF8F7;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.57}a{color:inherit}
h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.25}h1{font-size:clamp(1.45rem,2.4vw,2rem);letter-spacing:-.9px}h2{font-size:1.21rem;letter-spacing:-.4px}h3{font-size:1.08rem}p{line-height:1.65}
:focus-visible{outline:3px solid #BD7597;outline-offset:3px}
:root{--rose:#BD7597;--rose-deep:#9D5778;--light-rose:#F8EAF2;--lilac:#EEE8FC;--beige:#FAF5F0;--text:#2B2938;--muted:#898494;--border:#F0E8EC;--shadow:0 10px 30px rgba(83,50,77,.045)}
.muted{color:var(--muted)}.small{font-size:.83rem}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.btn{display:inline-flex;gap:9px;justify-content:center;align-items:center;padding:11px 18px;border-radius:12px;border:1px solid transparent;font-weight:700;font-size:.86rem;transition:transform .18s,background .18s,box-shadow .18s;white-space:nowrap}
.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 15px #bd75971e}
.btn-primary{background:var(--rose);color:white}.btn-primary:hover{background:var(--rose-deep)}
.btn-secondary{border-color:#EDD5E2;background:#FFF;color:var(--rose-deep)}
.btn-soft{background:var(--light-rose);color:var(--rose-deep)}
.btn-ghost{background:transparent;color:var(--muted)}
.btn-white{background:white;color:#9b5078}
.btn-danger{background:#fff0f0;color:#b2485e;border-color:#f1d3d9}
.icon-btn{background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:0 0 32px;color:#8E8190;border-radius:10px}
.icon-btn:hover{background:var(--light-rose);color:var(--rose-deep)}
.fullwidth{width:100%}
.text-link,.back-link{background:transparent;border:0;color:var(--rose-deep);padding:0;font-size:.82rem;font-weight:700}
.text-link:hover{text-decoration:underline}.back-link{align-self:flex-start}
.tag{display:inline-flex;align-items:center;padding:3px 9px;border-radius:15px;font-size:.69rem;font-weight:700;white-space:nowrap}
.tag-soft{background:#f8eff4;color:#9c6581}.tag-warning{background:#fff4e7;color:#b77d37}.tag-success{background:#eaf6f0;color:#548e74}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}.field>label{font-size:.77rem;color:#696172;font-weight:700}
.field input,.field textarea,.field select,.search-input,.month-input{width:100%;background:#fff;border:1px solid #e9e1e7;border-radius:11px;min-height:42px;padding:10px 12px;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus,.field select:focus,.search-input:focus,.month-input:focus{border-color:var(--rose);box-shadow:0 0 0 3px #BD75971a}
.field textarea{resize:vertical;line-height:1.5}.field input[type=range]{accent-color:var(--rose);padding:0;border:0}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.inline-check{display:inline-flex;align-items:center;gap:6px;color:#6d6473;font-size:.76rem}
input[type=checkbox]{accent-color:var(--rose);width:16px;height:16px}
.panel{border-radius:20px;border:1px solid #f3edf0;background:#fff;box-shadow:var(--shadow);padding:22px;min-width:0;position:relative}
.panel>h3{margin-bottom:20px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}
.section-header h2,.section-header h3{margin:0}.section-header p{margin:6px 0 0;font-size:.83rem}.section-header .btn{flex-shrink:0}
.eyebrow,.section-eyebrow{display:flex;align-items:center;gap:7px;letter-spacing:1.1px;text-transform:uppercase;font-size:.65rem;font-weight:800;color:var(--rose)}
.empty{min-height:115px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--muted);font-size:.82rem;padding:18px}
.empty p{margin:0}.empty-icon{height:45px;width:45px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fbf0f6;color:var(--rose)}
.simple-line{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #f7f1f4}
.simple-line:last-child{border-bottom:none}
.simple-line>div:nth-child(2){min-width:0;flex:1}
.simple-line strong{display:block;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.simple-line small{display:block;color:var(--muted);font-size:.71rem;margin-top:4px}
.line-icon{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:11px;color:#a380bf}
.line-icon.blush{background:var(--light-rose);color:var(--rose)}.line-icon.lilac{background:var(--lilac)}
.line-price{font-size:.82rem;font-weight:800;margin-left:auto;white-space:nowrap}
.app-shell{min-height:100vh;display:flex}
.sidebar{position:fixed;z-index:30;left:0;top:0;bottom:0;width:250px;padding:27px 16px 20px 20px;display:flex;flex-direction:column;background:white;border-right:1px solid #f1e9ec}
.sidebar-logo{display:flex;align-items:center;gap:10px;margin-bottom:42px;padding:0 6px}
.sidebar-logo-mark{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px;border-radius:15px;background:var(--rose);color:#fff;font-family:Georgia,serif;font-size:30px;box-shadow:0 5px 13px #BD759734}
.sidebar-logo strong{font-size:1.05rem;white-space:nowrap;font-family:Georgia,serif;letter-spacing:-.5px}
.sidebar-logo strong i{color:var(--rose);font-style:normal}
.sidebar-logo small{font-size:.54rem;color:#aaa1ad;white-space:nowrap;display:block;margin-top:6px}
.nav-caption{font-size:.62rem;letter-spacing:1.7px;font-weight:800;color:#b8adb8;margin:0 0 14px 16px}
.nav-menu{display:flex;flex-direction:column;gap:4px;overflow-y:auto;min-height:0}
.nav-item{display:flex;align-items:center;gap:13px;text-align:left;width:100%;min-height:43px;padding:10px 12px;border-radius:12px;border:0;background:transparent;color:#706776;font-weight:600;font-size:.83rem;transition:background .2s,color .2s}
.nav-item svg{color:#9e91a0}.nav-item:hover{background:#fbf5f8}
.nav-selected{background:#f8eaf2;color:#a4537d;font-weight:800}.nav-selected svg{color:var(--rose)}
.nav-dot{width:5px;height:5px;background:var(--rose);border-radius:50%;margin-left:auto}
.sidebar-bottom{margin-top:auto;padding-top:15px}
.sidebar-quote{border-radius:16px;background:linear-gradient(140deg,#F9E8F0,#F4EEFA);padding:15px;color:#ad708e;font-size:.77rem}
.sidebar-quote p{margin:7px 0 0;line-height:1.45}
.sidebar-logout{margin-top:14px;color:#9b8090}
.close-drawer{display:none}
.main{margin-left:250px;width:calc(100% - 250px);min-height:100vh}
.topbar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px;border-bottom:1px solid #f2ebee}
.topbar-left,.top-actions{display:flex;align-items:center;gap:17px}
.breadcrumbs{display:flex;align-items:center;gap:8px;color:#ada1ac;font-size:.8rem}.breadcrumbs strong{color:#5d4b5c;font-weight:700}
.language-picker{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #eee4e9;border-radius:10px;color:var(--rose-deep);background:#fff;max-width:220px}
.language-picker select{appearance:none;min-width:0;max-width:160px;background:transparent;border:0;color:inherit;font-weight:700;font-size:.75rem;outline:none;cursor:pointer}
.avatar{width:37px;height:37px;border-radius:50%;background:linear-gradient(140deg,#d2a0bb,#ba7198);color:white;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:Georgia,serif}
.mobile-menu{display:none}
.page-content{max-width:1400px;margin:0 auto;padding:34px 38px 90px}
.page-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.page-intro h1{font-family:Georgia,'Playfair Display',serif;font-size:clamp(1.6rem,3vw,2.16rem);margin:8px 0 5px;font-weight:600}
.page-intro p{color:var(--muted);font-size:.85rem;margin:5px 0 0}
.date-display{display:flex;align-items:center;gap:9px;color:#8c7e8a;font-size:.75rem;background:white;padding:11px 14px;border-radius:12px;border:1px solid #f0e8ee;white-space:nowrap}
.hero-card{border-radius:23px;background:linear-gradient(112deg,#B66C95 0%,#C785A8 57%,#D6ACC1 100%);color:white;padding:32px 36px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;min-height:215px;position:relative;margin-bottom:22px}
.hero-card>div:first-child{z-index:1}.hero-card h2{font-family:Georgia,'Playfair Display',serif;font-size:clamp(1.35rem,3vw,2rem);max-width:390px;font-weight:600;margin:15px 0 8px}
.hero-card p{font-size:.83rem;opacity:.86;margin:0 0 22px}
.hero-eyebrow{color:#ffe4f3}.hero-illustration{position:absolute;right:55px;top:30px;border:1px solid #ffffff50;height:185px;width:185px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#ffffff18;color:#fff;transform:rotate(-8deg)}
.sunburst{position:absolute;right:-10px;top:4px;font-size:55px;font-weight:200;opacity:.6}.hero-heart{position:absolute;font-size:54px;top:78px;left:70px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}
.stat-card{border:1px solid #f5eaf0;text-align:left;border-radius:18px;background:#fff;min-width:0;padding:19px 17px;display:flex;align-items:center;gap:13px;box-shadow:var(--shadow);transition:transform .2s}
.stat-card:hover{transform:translateY(-2px)}
.stat-symbol{width:43px;height:43px;flex:0 0 43px;display:flex;align-items:center;justify-content:center;color:var(--rose);background:#F8EAF2;border-radius:13px}
.stat-lilac .stat-symbol{color:#a482c0;background:var(--lilac)}
.stat-beige .stat-symbol{color:#be9679;background:var(--beige)}
.stat-value{display:block;font-size:1.36rem;letter-spacing:-.5px;font-weight:800;white-space:nowrap}
.stat-label{display:block;font-size:.68rem;color:var(--muted);margin-top:4px}
.dashboard-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel-full{grid-column:1/-1}
.panel-footer{display:flex;justify-content:flex-end;margin-top:20px}
.progress-number{font-size:3.45rem;font-weight:700;font-family:Georgia,serif;color:var(--rose-deep);padding:15px 0 5px}
.progress-number span{font-size:1.6rem;font-family:inherit}
.progress-track,.room-progress{height:9px;background:#f7eaf1;border-radius:99px;display:block;overflow:hidden}
.progress-track span,.room-progress i{display:block;background:linear-gradient(90deg,#BD7597,#DEACC6);border-radius:99px;height:100%}
.progress-decoration{position:absolute;right:25px;bottom:3px;font-family:Georgia,serif;font-size:88px;color:#f8eaf2;z-index:0;pointer-events:none}
.task-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #f6f0f3;min-width:0}
.task-row:last-child{border-bottom:0}
.task-check{width:22px;height:22px;flex:0 0 22px;border:1.8px solid #d8bfce;border-radius:7px;background:white;color:transparent;display:flex;align-items:center;justify-content:center;padding:0}
.task-check:hover{border-color:var(--rose)}.task-check.checked{background:var(--rose);color:white;border-color:var(--rose)}
.task-copy{min-width:0;flex:1}.task-copy strong{font-size:.84rem;font-weight:700;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.is-completed .task-copy strong{text-decoration:line-through;color:#a7a0aa}
.task-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;color:var(--muted);font-size:.7rem;margin-top:5px}
.task-meta span:not(.tag){display:inline-flex;align-items:center;gap:4px}
.row-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}
.danger-text{color:#c45f64!important}
.list-chips{display:flex;gap:10px;flex-wrap:wrap}.list-chip{display:flex;align-items:center;gap:10px;min-height:45px;padding:10px 15px;background:#fbf5f8;border:1px solid #f5e8ee;border-radius:11px;color:#956981;font-size:.78rem;font-weight:700}
.list-chip:hover{background:#f8e7f0}
.rooms-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}
.room-card{min-height:153px;text-align:left;background:#fff;border:1px solid #f1e9ee;border-radius:18px;padding:18px 19px;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:border-color .2s,transform .2s}
.room-card:hover{transform:translateY(-2px)}.room-card.room-selected{border-color:#d7a9c2;box-shadow:0 7px 18px #bd75971a}
.room-symbol{background:#faf0f5;color:var(--rose);border-radius:12px;height:36px;width:36px;display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin-bottom:8px;font-family:Georgia,serif}
.room-card:nth-child(2n) .room-symbol{background:var(--lilac);color:#a27cbd}
.room-card strong{font-size:.86rem}.room-card small{font-size:.68rem;color:var(--muted);margin:5px 0 12px}
.room-progress{height:5px;margin-top:auto}
.roomy-panel{min-height:185px}.room-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}
.room-header h3{font-family:Georgia,serif;font-size:1.4rem;margin:5px 0}
.room-header .row-actions{gap:4px}
.filterbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid #f8f1f4}
.segmented{display:flex;gap:3px;flex-wrap:wrap;background:#f9f5f7;border:1px solid #f1e9ed;border-radius:12px;padding:4px}
.segmented button{border:0;background:transparent;padding:8px 12px;border-radius:9px;color:#918491;font-size:.76rem;font-weight:700;white-space:nowrap}
.segmented button.active{background:white;color:var(--rose-deep);box-shadow:0 1px 5px #75406118}
.segmented button span{color:#b2a7b1;font-size:.66rem;margin-left:3px}
.search-input{max-width:210px;min-height:36px;font-size:.79rem}
.calendar-panel{margin-bottom:18px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px}
.cal-switch{display:flex;align-items:center;gap:6px}.cal-switch h3{min-width:145px;text-align:center;margin:0;text-transform:capitalize;font-size:1rem}
.today-button{background:white;border:1px solid #e8dce5;border-radius:8px;padding:8px 11px;color:var(--rose-deep);font-size:.72rem;font-weight:700}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.cal-grid.day-grid{grid-template-columns:1fr}
.cal-label{text-align:center;font-size:.73rem;font-weight:700;color:#aca0ad;padding-bottom:8px}
.cal-day{min-height:70px;background:#fcfafb;border:1px solid transparent;border-radius:12px;color:#594958;text-align:left;padding:11px;display:flex;flex-direction:column;justify-content:space-between}
.cal-day:hover{border-color:#eacada}.cal-day.chosen{background:var(--light-rose);border-color:#dfa8c5;color:var(--rose-deep);font-weight:800}
.cal-day.cal-today>span{background:var(--rose);color:white;display:flex;width:27px;height:27px;border-radius:50%;align-items:center;justify-content:center}
.cal-day i{width:6px;height:6px;border-radius:50%;background:var(--rose)}.cal-day.muted-day{opacity:.43}
.shopping-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:17px}
.lists-sidebar{padding:12px;align-self:start}.shopping-list-link{display:flex;align-items:center;gap:9px;width:100%;text-align:left;border:0;background:white;border-radius:11px;padding:12px 9px}
.shopping-list-link.selected{background:#fcf0f6}.shopping-list-link>span:nth-child(2){flex:1;min-width:0}.shopping-list-link strong{display:block;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.shopping-list-link small{color:#aa9da7;font-size:.65rem}.shopping-list-link>svg{color:#b99bb0}
.shopping-detail{min-width:0}.shopping-total{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(90deg,#F9EAF2,#F9F4FC);padding:18px 22px;border-radius:14px;margin:17px 0}
.shopping-total small{display:block;color:#9f8699;margin-bottom:5px}.shopping-total strong{font-size:1.6rem;color:var(--rose-deep)}
.shopping-total>span{font-size:.7rem;color:#986c86}
.two-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.month-input{width:auto;min-width:165px}.bill-row .tag{flex-shrink:0}
.habits-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.habit-card h3{margin:14px 0 7px}.habit-head{display:flex;align-items:flex-start;justify-content:space-between}
.habit-bubble{display:flex;align-items:center;justify-content:center;background:#fbedf4;color:var(--rose);width:47px;height:47px;border-radius:15px;font-family:Georgia,serif;font-size:1.8rem}
.habit-progress{display:flex;gap:8px;margin:18px 0}.habit-progress span{height:9px;border-radius:99px;flex:1;background:#f6eaf0}.habit-progress span.filled{background:var(--rose)}
.suggestions{justify-content:center;padding:0 0 20px}
.assistant-banner{background:linear-gradient(120deg,#F9E9F2,#f0e8fb);border-radius:22px;padding:27px 29px;margin-bottom:19px}
.assistant-banner h2{font-family:Georgia,serif;font-size:1.45rem;margin:9px 0}.assistant-banner p{font-size:.84rem;color:#9b7693;margin:0}
.assistant-symbol{font-size:25px;color:var(--rose)}
.assistant-layout{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}
.assistant-layout .panel>h3{margin-bottom:19px}.assistant-layout .field{margin-bottom:20px}
.day-pills{display:flex;gap:5px;flex-wrap:wrap}.day-pills button{border:1px solid #f1e3eb;color:#a49aa4;background:white;border-radius:9px;padding:8px 10px;font-size:.7rem;font-weight:700}
.day-pills button.active{background:var(--rose);color:white;border-color:var(--rose)}
.assistant-task{display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #f3eaef;padding:14px 0}
.assistant-task:last-child{border:0}.assistant-task strong{font-size:.82rem}.assistant-task small{color:var(--muted);font-size:.7rem;display:flex;align-items:center;gap:5px;margin-top:6px}
.assistant-task .btn{padding:8px;font-size:.69rem}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.settings-grid .field{margin-bottom:14px}.settings-grid .panel>h3{margin-bottom:19px}
.subheading{margin-top:22px;padding-top:20px;border-top:1px solid #f7eef3}
.toggle-line{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 0;border-bottom:1px solid #f5eef2;font-size:.81rem}
.toggle-line span{display:flex;align-items:center;gap:10px}.toggle-line svg{color:var(--rose)}
.settings-separator{height:1px;background:#f4eef1;margin:22px 0}
.danger-zone{grid-column:1/-1;background:#fffafa;border-color:#f6e4e7}
.danger-zone>h3{color:#bd6370}
.modal-backdrop{position:fixed;z-index:80;inset:0;background:#2B293864;display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(3px)}
.modal{width:100%;max-width:530px;max-height:min(92dvh,850px);display:flex;flex-direction:column;background:white;border-radius:22px;box-shadow:0 20px 85px #21132430;animation:pop .2s ease}
.modal-wide{max-width:750px}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #f4edf0}
.modal-header h2{font-family:Georgia,serif;font-size:1.3rem;margin:0}
.editor-form{padding:23px 24px 26px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}
.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:10px}
.loading-screen,.setup-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--rose-deep);padding:24px;text-align:center;background:var(--beige)}
.loading-heart{font-family:Georgia,serif;font-size:70px;animation:breathe 2s infinite}
.setup-screen>span{font-size:54px}.setup-screen h1{font-family:Georgia,serif}.setup-screen h2{margin:0}
.setup-screen p{max-width:540px;color:#806c7b}
.loading-panel{text-align:center;padding:100px;color:var(--rose)}
.error-banner,.offline-banner{display:flex;gap:12px;align-items:center;border:1px solid #f1c7cc;border-radius:12px;background:#fff4f4;color:#a54956;padding:12px 15px;margin-bottom:20px;font-size:.81rem}
.error-banner button{border:0;text-decoration:underline;background:transparent;color:inherit;font-weight:700}
.error-banner small{color:#ba8f96}.offline-banner{border-radius:0;margin:0;padding-left:38px}
.offline-pill{display:inline-flex;align-items:center;gap:6px;color:#c36e5c;font-size:.71rem}
.toast{position:fixed;z-index:90;bottom:24px;right:25px;display:flex;align-items:center;gap:11px;max-width:390px;box-shadow:0 10px 40px #5d385c22;background:#fff;border:1px solid #ecdce6;color:#725267;padding:11px 13px 11px 17px;border-radius:12px;font-size:.82rem}
.toast>svg{color:var(--rose)}
.drawer-screen,.mobile-bottom{display:none}
.auth-shell{min-height:100vh;overflow:hidden;position:relative;background:radial-gradient(circle at 85% 18%,#f3e6f7 0,transparent 35%),radial-gradient(circle at 16% 82%,#fae6ef 0,transparent 36%),#faf7f5}
.auth-blob{position:absolute;pointer-events:none;border-radius:50%;filter:blur(3px)}
.auth-blob-one{width:390px;height:390px;background:#ffe5f01f;top:-100px;left:-100px;border:1px solid #fff6}
.auth-blob-two{width:400px;height:400px;background:#ede3f760;right:-190px;bottom:-200px}
.auth-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:auto;padding:30px 32px}
.mini-brand{font-family:Georgia,serif;font-size:1.2rem;font-weight:700;color:#ae6a8d}
.mini-brand span{background:#bd7597;border-radius:9px;color:#fff;display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;margin-right:7px;font-size:20px}
.auth-layout{max-width:1140px;margin:0 auto;min-height:calc(100vh - 120px);position:relative;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;padding:24px 34px 80px}
.auth-story{text-align:left;position:relative}
.auth-story .eyebrow{color:var(--rose);letter-spacing:2px}
.brand-heart{font-family:Georgia,serif;color:#dfa7c2;font-size:35px;margin-top:20px}
.auth-story h1{font-family:Georgia,'Playfair Display',serif;font-size:clamp(3.5rem,7vw,5.9rem);line-height:1.05;letter-spacing:-3px;color:#503b4d;font-weight:600;margin:7px 0 12px;white-space:nowrap}
.auth-story h1 span{color:var(--rose)}
.auth-slogan{font-size:1.2rem;color:#a56c8a;font-family:Georgia,serif;font-style:italic}
.auth-intro{color:#8a7d88;line-height:1.85;max-width:380px;font-size:.87rem}
.decor-home{height:180px;position:relative;margin-top:14px}
.decor-halo{position:absolute;width:210px;height:170px;border-radius:50%;background:#f2dae7a8;left:50px;top:7px}
.decor-house{position:absolute;left:95px;top:24px;color:#bd7597;transform:rotate(-8deg)}
.decor-house-heart{position:absolute;left:41px;top:43px}
.decor-star{position:absolute;font-size:30px;color:#d1a2c0}.decor-star.a{left:40px;top:10px}.decor-star.b{left:270px;top:45px}.decor-star.c{left:300px;top:132px}
.auth-trust{font-size:.75rem;color:#ad8da1;display:flex;align-items:center;gap:7px}
.auth-card{border:1px solid #fff;box-shadow:0 23px 80px #87567b1f;background:#ffffffeb;border-radius:27px;padding:37px 35px;display:flex;flex-direction:column;gap:19px;min-height:350px;z-index:2}
.auth-card-symbol{font-family:Georgia,serif;color:var(--rose);font-size:43px;text-align:center;line-height:1}
.auth-card h2{font-family:Georgia,serif;font-size:1.5rem;color:#614a5e;text-align:center;font-weight:600;margin:0}
.auth-card>.muted{text-align:center;font-size:.85rem;margin:0}
.auth-language{margin-top:4px;padding-top:15px;border-top:1px solid #f4ecf0;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.73rem;color:#8c7d8a}
.auth-card>.btn{width:100%}.form-stack{display:flex;flex-direction:column;gap:15px}
.password-wrap{display:flex;border:1px solid #e9e1e7;border-radius:11px;min-height:42px}
.password-wrap:focus-within{border-color:var(--rose);box-shadow:0 0 0 3px #BD75971a}
.password-wrap input{border:0!important;box-shadow:none!important;min-width:0;flex:1}
.auth-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}
.auth-toggle{text-align:center;font-size:.78rem;color:#958792;margin:0}
.feedback{background:#fcf1f5;color:#ae6382;padding:10px 12px;border-radius:10px;font-size:.77rem;margin:0}
@keyframes breathe{50%{transform:scale(1.1)}}@keyframes pop{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
@media(max-width:1100px){
  .sidebar{width:219px}.main{margin-left:219px;width:calc(100% - 219px)}
  .sidebar-logo strong{font-size:.92rem}.sidebar-logo small{font-size:.49rem}
  .page-content{padding:30px 25px 85px}.topbar{padding:0 25px}
  .stats-grid{gap:10px}.stat-card{padding:15px 11px;gap:9px}.stat-symbol{width:36px;height:36px;flex-basis:36px}
  .stat-label{font-size:.62rem}.rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .sidebar{transform:translateX(-110%);transition:transform .22s;width:280px;box-shadow:0 0 30px #321d2b11}.sidebar.sidebar-open{transform:none}
  .close-drawer{display:inline-flex;margin-left:auto}
  .drawer-screen{display:block;position:fixed;inset:0;background:#20142155;z-index:25}
  .main{margin-left:0;width:100%}
  .mobile-menu{display:inline-flex}.topbar{height:65px;padding:0 18px}
  .page-content{padding:25px 18px 100px}
  .mobile-bottom{z-index:20;position:fixed;display:grid;grid-template-columns:repeat(5,1fr);bottom:0;left:0;right:0;min-height:75px;padding:8px 5px calc(9px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #f1e7ec;box-shadow:0 -6px 20px #42273b09}
  .mobile-bottom button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;gap:5px;justify-content:center;color:#a698a4;font-size:.57rem;font-weight:700;min-width:0}
  .mobile-bottom button.active{color:var(--rose)}.mobile-bottom span{max-width:95%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  .toast{bottom:90px;right:12px;left:12px;max-width:none}
  .auth-layout{gap:25px}.auth-story h1{font-size:3.6rem}
  .auth-card{padding:26px 23px}
}
@media(max-width:650px){
  .breadcrumbs{font-size:.7rem}.breadcrumbs>svg,.breadcrumbs>strong{display:none}
  .topbar .language-picker{max-width:125px}.topbar .language-picker select{max-width:85px}
  .top-actions{gap:8px}.offline-pill{display:none}
  .page-intro{align-items:flex-start;gap:8px}.page-intro .date-display{display:none}
  .page-intro h1{font-size:1.62rem}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .stat-card{padding:15px}.stat-value{font-size:1.25rem}
  .dashboard-grid,.assistant-layout,.settings-grid{grid-template-columns:1fr}.panel-full,.danger-zone{grid-column:auto}
  .hero-card{min-height:190px;padding:26px 22px}.hero-illustration{right:-55px;top:13px;opacity:.38}.hero-card h2{font-size:1.5rem;max-width:250px}
  .hero-card p{max-width:260px}.hero-eyebrow{font-size:.59rem}
  .panel{padding:17px 15px}.room-card{padding:15px}.rooms-grid{gap:9px}
  .room-header{align-items:flex-start}.room-header .row-actions{flex-wrap:wrap;justify-content:flex-end}
  .filterbar,.calendar-toolbar{flex-direction:column;align-items:stretch}
  .filterbar .segmented{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
  .filterbar .segmented button{padding:8px 3px;font-size:.62rem}
  .search-input{max-width:none}
  .calendar-toolbar .segmented{align-self:flex-start}
  .cal-day{min-height:50px;padding:8px;font-size:.77rem}
  .shopping-layout{grid-template-columns:1fr}
  .lists-sidebar{display:flex;gap:5px;overflow-x:auto;padding:9px}.shopping-list-link{min-width:155px}
  .shopping-list-link>svg{display:none}.shopping-detail .task-row{gap:7px}
  .bill-row{flex-wrap:wrap}.bill-row .task-copy{flex-basis:50%}.bill-row .line-price{font-size:.77rem}
  .habits-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .habit-card .btn{font-size:.71rem;padding:9px 5px}
  .assistant-task{align-items:flex-start;flex-direction:column}
  .auth-layout{display:flex;flex-direction:column;align-items:stretch;padding:12px 20px 60px;gap:25px}
  .auth-story{text-align:center}.auth-story .eyebrow,.auth-trust{justify-content:center}
  .auth-story h1{font-size:3.4rem;white-space:normal;margin:0}
  .auth-slogan{font-size:1.1rem}.auth-intro{margin:0 auto}
  .decor-home{display:none}.brand-heart{margin:0}
  .auth-top{padding:19px 20px}.auth-card{padding:28px 24px}.mini-brand{font-size:.89rem}
  .auth-top .language-picker{max-width:150px}.auth-top select{max-width:100px}
  .two-col{grid-template-columns:1fr}.modal{max-height:90dvh}
  .offline-banner{padding-left:15px}
}
@media(max-width:380px){
  .rooms-grid,.habits-grid{grid-template-columns:1fr}
  .room-card{min-height:120px}
  .auth-story h1{font-size:2.7rem}
  .topbar .language-picker{max-width:100px}.topbar .language-picker select{max-width:61px}
}
