/* Die Luckys — reference UI 2026-09-29 */
:root{
 --lk-bg:#f3f1eb;
 --lk-bg-deep:#ece9e1;
 --lk-surface:#fffdf9;
 --lk-surface-2:#faf8f3;
 --lk-text:#17212d;
 --lk-muted:#738078;
 --lk-line:rgba(38,50,43,.08);
 --lk-green:#5f947d;
 --lk-green-dark:#3f725f;
 --lk-green-soft:#dfece5;
 --lk-sage:#91a184;
 --lk-sage-soft:#e6eadf;
 --lk-orange:#e9855e;
 --lk-orange-soft:#f9e3d7;
 --lk-blue:#7198c9;
 --lk-blue-soft:#e3edf8;
 --lk-rose:#dc7880;
 --lk-rose-soft:#f8e0e2;
 --lk-violet:#8a80ce;
 --lk-violet-soft:#ebe8fa;
 --lk-beige:#c9af8d;
 --lk-beige-soft:#f2e8da;
 --lk-danger:#b9545d;
 --lk-shadow:0 10px 30px rgba(48,53,47,.055);
 --lk-shadow-soft:0 4px 16px rgba(48,53,47,.045);
 --lk-radius:22px;
 --lk-radius-sm:15px;
 --lk-sidebar:190px;
 --lk-topbar:76px;
 color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--lk-bg);scroll-behavior:smooth}
body.luckys-app{
 margin:0;
 min-height:100vh;
 background:
  radial-gradient(circle at 15% 0,rgba(255,255,255,.96),transparent 34rem),
  linear-gradient(135deg,#f5f3ee 0%,#efede7 100%);
 color:var(--lk-text);
 font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
 font-size:15px;
 line-height:1.5;
 -webkit-font-smoothing:antialiased;
}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{color:inherit}
a{color:inherit}
[x-cloak]{display:none!important}
.luckys-icon{
 display:block;
 flex:0 0 auto;
 stroke:currentColor;
 stroke-width:1.8;
 stroke-linecap:round;
 stroke-linejoin:round;
 overflow:visible;
}

/* Shell */
.luckys-shell{min-height:100vh;display:grid;grid-template-columns:var(--lk-sidebar) minmax(0,1fr)}
.luckys-sidebar{
 position:fixed;inset:0 auto 0 0;width:var(--lk-sidebar);
 padding:26px 18px 24px;
 display:flex;flex-direction:column;
 border-right:1px solid rgba(45,54,49,.065);
 background:rgba(255,253,249,.88);
 backdrop-filter:blur(18px) saturate(115%);
 z-index:60;
}
.luckys-stage{grid-column:2;min-width:0;min-height:100vh}
.luckys-brand{display:flex;align-items:center;text-decoration:none}
.luckys-brand-desktop{gap:10px;padding:0 8px 23px}
.luckys-brand-heart{color:#d6786b;display:grid;place-items:center}
.luckys-brand-copy{display:grid;line-height:1.1}
.luckys-brand-copy strong{font-size:18px;letter-spacing:-.02em;font-weight:780}
.luckys-brand-copy small{margin-top:4px;font-size:10.5px;color:#7c817e;white-space:nowrap}
.luckys-brand-mobile{display:none}

.luckys-side-nav{display:grid;gap:4px}
.luckys-side-nav a{
 min-height:42px;padding:0 12px;
 display:flex;align-items:center;gap:13px;
 color:#39443f;text-decoration:none;
 border-radius:11px;
 font-size:14px;font-weight:570;
 transition:background .16s ease,color .16s ease,transform .16s ease;
}
.luckys-side-nav a:hover{background:#f1f4ef}
.luckys-side-nav a.active{background:#dceae3;color:#365f50;font-weight:690}
.luckys-side-nav a.active .luckys-icon{stroke-width:2.05}
.luckys-sidebar-story{margin-top:auto;padding:18px 9px 2px;color:#718176}
.luckys-house-scene{
 height:72px;display:grid;place-items:center;
 color:#8fa899;
 background:linear-gradient(180deg,transparent,#f3efe6);
 border-radius:18px;
}
.luckys-sidebar-story p{margin:12px 0 4px;font-family:"Segoe Print","Bradley Hand",cursive;font-size:13px;line-height:1.75;color:#698075}
.luckys-story-heart{display:inline-grid;color:#ce7d72;margin-left:43px}

/* Top bar */
.luckys-topbar{
 position:sticky;top:0;z-index:55;
 height:var(--lk-topbar);
 padding:12px 24px;
 display:flex;align-items:center;gap:20px;
 background:rgba(255,253,249,.84);
 border-bottom:1px solid rgba(44,50,47,.045);
 backdrop-filter:blur(18px) saturate(130%);
}
.family-search{position:relative;flex:1 1 auto;max-width:520px;margin:0 auto 0 8px}
.family-search>input{
 width:100%;height:43px;padding:0 18px 0 43px;
 border:0;outline:0;border-radius:24px;
 background:#f0ede7;color:var(--lk-text);
 box-shadow:inset 0 0 0 1px rgba(63,68,64,.025);
 font-size:13px;
}
.family-search>input::placeholder{color:#9a9a96}
.family-search-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);z-index:1;color:#707875}
.family-search-results{
 position:absolute;left:0;right:0;top:50px;
 padding:7px;
 background:var(--lk-surface);
 border:1px solid var(--lk-line);
 border-radius:17px;
 box-shadow:0 20px 55px rgba(51,55,50,.15);
 z-index:90;
}
.family-search-results a{display:grid;gap:2px;padding:10px 12px;text-decoration:none;border-radius:11px}
.family-search-results a:hover{background:#f5f2ed}
.family-search-results small{font-size:11px;color:var(--lk-muted)}
.family-search-results strong{font-size:13px}
.family-search-empty{padding:12px;color:var(--lk-muted);font-size:13px}
.luckys-top-actions{margin-left:auto;display:flex;align-items:center;gap:11px}
.luckys-icon-button{
 width:42px;height:42px;padding:0;border:0;border-radius:50%;
 display:grid;place-items:center;background:transparent;color:#33413b;cursor:pointer;
}
.luckys-icon-button:hover{background:#f0eee8}
.luckys-bell{position:relative}
.luckys-bell>b{
 position:absolute;top:5px;right:4px;min-width:17px;height:17px;padding:0 4px;
 border-radius:999px;background:#cf655f;color:white;
 display:grid;place-items:center;font-size:9px;line-height:1;
}
.family-notifications{position:relative}
.family-notification-popover{
 position:absolute;right:-70px;top:50px;width:min(390px,calc(100vw - 30px));
 padding:8px;background:var(--lk-surface);
 border:1px solid var(--lk-line);border-radius:18px;
 box-shadow:0 20px 60px rgba(49,54,49,.16);z-index:110;
}
.family-notification-popover>header{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 7px}
.family-notification-popover>header strong{font-size:15px}
.family-notification-popover>header button{border:0;background:none;color:var(--lk-green-dark);font-size:12px;cursor:pointer}
.family-notification-list{display:grid;max-height:390px;overflow:auto}
.family-notification{
 width:100%;border:0;background:transparent;text-align:left;padding:11px 10px;
 display:grid;grid-template-columns:8px 1fr;gap:10px;border-radius:12px;cursor:pointer;
}
.family-notification:hover{background:#f6f3ee}
.notification-dot{width:7px;height:7px;border-radius:50%;background:#c9cbc8;margin-top:7px}
.family-notification.unread .notification-dot{background:var(--lk-orange)}
.family-notification>span:last-child{display:grid;gap:2px}
.family-notification strong{font-size:13px}
.family-notification span span{font-size:12px;color:#66726c}
.family-notification small{font-size:10px;color:#959a96}
.luckys-profile-menu{position:relative}
.luckys-profile-menu summary{
 list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;
 min-height:44px;padding:3px 5px 3px 3px;border-radius:23px;font-size:13px;font-weight:650;
}
.luckys-profile-menu summary::-webkit-details-marker{display:none}
.luckys-profile-menu summary:hover{background:#f2efe9}
.luckys-profile-menu[open] summary{background:#f2efe9}
.luckys-avatar{
 width:38px;height:38px;border-radius:50%;
 display:grid;place-items:center;overflow:hidden;
 background:linear-gradient(145deg,#f1d7c7,#d8e7de);
 color:#435b50;font-size:13px;font-weight:800;flex:0 0 auto;
 border:2px solid rgba(255,255,255,.8);
 box-shadow:0 1px 5px rgba(36,44,39,.08);
}
.luckys-avatar-sm{width:38px;height:38px}
.luckys-avatar-xs{width:29px;height:29px;font-size:10px}
.luckys-avatar-xxs{width:23px;height:23px;font-size:8px;border-width:1px}
.luckys-avatar-lg{width:54px;height:54px;font-size:17px}
.luckys-avatar-xl{width:72px;height:72px;font-size:22px}
.luckys-profile-name{white-space:nowrap}
.luckys-profile-popover{
 position:absolute;right:0;top:52px;width:250px;padding:9px;
 background:var(--lk-surface);border:1px solid var(--lk-line);border-radius:17px;
 box-shadow:0 20px 58px rgba(49,54,49,.16);z-index:110;
}
.luckys-profile-popover-head{display:flex;align-items:center;gap:10px;padding:7px 8px 11px;border-bottom:1px solid var(--lk-line);margin-bottom:5px}
.luckys-profile-popover-head>span:last-child{display:grid;min-width:0}
.luckys-profile-popover-head strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.luckys-profile-popover-head small{font-size:10px;color:var(--lk-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.luckys-profile-popover>a,.luckys-profile-popover form button{
 width:100%;min-height:38px;padding:0 9px;border:0;background:none;border-radius:10px;
 display:flex;align-items:center;gap:9px;text-decoration:none;text-align:left;font-size:13px;cursor:pointer;
}
.luckys-profile-popover>a:hover,.luckys-profile-popover form button:hover{background:#f5f2ed}

/* Main */
.luckys-content{width:min(1120px,calc(100% - 48px));margin:0 auto;padding:26px 0 100px}
.luckys-flash{margin:0 0 15px;padding:12px 16px;border-radius:14px;background:var(--lk-green-soft);color:var(--lk-green-dark);font-weight:650}
.luckys-flash.is-error{background:var(--lk-rose-soft);color:#9e4650}
.luckys-page{display:grid;gap:18px}
.luckys-page-head,.luckys-page-head.simple{
 display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:3px 0 17px;
}
.luckys-page-head h1,.family-module-head h1,.calendar-page-head h1{
 margin:0;color:var(--lk-text);font-size:29px;line-height:1.12;letter-spacing:-.035em;font-weight:780;
}
.luckys-page-head p,.family-module-head p,.calendar-page-head p{margin:6px 0 0;color:var(--lk-muted);font-size:14px}
.luckys-eyebrow{display:block;margin-bottom:4px;color:#8a938d;font-size:11px;font-weight:760;text-transform:uppercase;letter-spacing:.08em}

/* Buttons */
.luckys-button,.luckys-primary-action{
 min-height:42px;padding:0 17px;border:0;border-radius:12px;
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 background:var(--lk-green);color:#fff;text-decoration:none;
 font-size:13px;font-weight:720;cursor:pointer;box-shadow:0 5px 13px rgba(65,112,91,.13);
}
.luckys-button:hover,.luckys-primary-action:hover{background:var(--lk-green-dark)}
.luckys-button.compact{min-height:35px;padding:0 14px;border-radius:10px;font-size:12px}
.luckys-secondary-button{
 min-height:42px;padding:0 16px;border:1px solid var(--lk-line);border-radius:12px;
 background:#fff;color:#4e5a54;font-weight:650;cursor:pointer;
}
.luckys-text-button{border:0;background:none;color:var(--lk-green-dark);font-size:12px;font-weight:650;cursor:pointer}
.luckys-text-link{display:inline-flex;align-items:center;gap:8px;color:var(--lk-green-dark);font-size:12px;font-weight:680;text-decoration:none}
.luckys-row-icon{
 width:34px;height:34px;padding:0;border:0;border-radius:10px;background:transparent;
 display:grid;place-items:center;color:#829088;cursor:pointer;
}
.luckys-row-icon:hover{background:#f2f0ea;color:#4d5a54}
.luckys-row-icon.danger:hover{background:var(--lk-rose-soft);color:var(--lk-danger)}

/* Home */
.luckys-home{display:grid;gap:13px}
.luckys-welcome{display:flex;align-items:center;justify-content:space-between;gap:20px}
.luckys-welcome h1{margin:0;font-size:28px;line-height:1.1;letter-spacing:-.035em;font-weight:800}
.luckys-welcome h1 span{font-size:.85em}
.luckys-welcome p{margin:5px 0 0;color:var(--lk-muted);font-size:13px}
.luckys-weather-card{
 min-width:190px;height:58px;padding:8px 12px;
 display:flex;align-items:center;gap:10px;
 background:rgba(255,253,249,.78);border:1px solid rgba(55,61,57,.045);
 border-radius:18px;box-shadow:var(--lk-shadow-soft);
}
.weather-symbol{color:#e5a035}
.luckys-weather-card>strong{font-size:19px}
.luckys-weather-card>span:nth-of-type(2){display:grid;line-height:1.15;min-width:70px}
.luckys-weather-card>span:nth-of-type(2) b{font-size:10px;font-weight:580;color:#59665f}
.luckys-weather-card>span:nth-of-type(2) small{font-size:9px;color:#8d938f;margin-top:3px}
.luckys-weather-card>.luckys-icon{margin-left:auto;color:#78817c}

.luckys-hero{
 position:relative;height:150px;overflow:hidden;border-radius:22px;
 background:linear-gradient(110deg,#e5d8c8 0%,#eddcc7 45%,#d8d4c2 100%);
 box-shadow:var(--lk-shadow-soft);
 isolation:isolate;
}
.luckys-hero.has-photo{background-size:cover;background-position:center 44%}
.luckys-hero.has-photo .luckys-hero-fallback{display:none}
.luckys-hero-fallback{position:absolute;inset:0;overflow:hidden}
.luckys-hero-fallback:before{
 content:"";position:absolute;left:14%;bottom:22px;width:56%;height:48px;border-radius:50%;
 background:rgba(104,126,103,.28);transform:rotate(-3deg) scale(1.7)
}
.luckys-hero-fallback:after{
 content:"";position:absolute;left:-12%;bottom:-30px;width:75%;height:78px;border-radius:50%;
 background:rgba(110,135,110,.22);transform:rotate(4deg) scale(1.5)
}
.luckys-hero .sunset{position:absolute;width:52px;height:52px;border-radius:50%;right:23%;top:22px;background:rgba(241,175,111,.65);box-shadow:0 0 45px rgba(240,176,111,.5)}
.luckys-hero blockquote{
 position:absolute;right:26px;top:34px;z-index:3;margin:0;
 color:#3e4e46;text-align:right;font-family:"Segoe Print","Bradley Hand",cursive;
 font-size:18px;line-height:1.55;text-shadow:0 1px rgba(255,255,255,.5);
}
.luckys-hero.has-photo blockquote{color:#31423a;background:rgba(250,246,237,.65);padding:8px 12px;border-radius:13px;backdrop-filter:blur(4px)}
.luckys-hero blockquote .luckys-icon{display:inline-block;vertical-align:-2px;color:#9b7770}

.luckys-home-grid{display:grid;gap:10px}
.luckys-home-grid-top{grid-template-columns:1fr 1.05fr .9fr}
.luckys-home-grid-bottom{grid-template-columns:1.08fr 1.08fr .9fr}
.luckys-card{
 min-width:0;padding:14px 15px 13px;background:rgba(255,253,249,.92);
 border:1px solid rgba(55,62,57,.05);border-radius:19px;box-shadow:var(--lk-shadow-soft);
}
.luckys-card-head{min-height:32px;margin-bottom:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.luckys-card-head>div{display:flex;align-items:center;gap:9px;min-width:0}
.luckys-card-head>div>span:last-child{display:grid;line-height:1.2;min-width:0}
.luckys-card-head strong{font-size:13.5px;font-weight:760}
.luckys-card-head small{margin-top:2px;color:#7b8580;font-size:9.5px}
.luckys-card-icon{
 width:31px;height:31px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;
}
.luckys-card-icon.orange{background:var(--lk-orange-soft);color:var(--lk-orange)}
.luckys-card-icon.green{background:var(--lk-green-soft);color:var(--lk-green)}
.luckys-card-icon.sage{background:var(--lk-sage-soft);color:#748569}
.luckys-card-icon.blue{background:var(--lk-blue-soft);color:var(--lk-blue)}
.luckys-card-icon.rose{background:var(--lk-rose-soft);color:var(--lk-rose)}
.luckys-card-icon.violet{background:var(--lk-violet-soft);color:var(--lk-violet)}
.luckys-card-icon.beige{background:var(--lk-beige-soft);color:#a88b68}
.luckys-card-menu{width:28px;height:28px;display:grid;place-items:center;color:#7e8882;text-decoration:none;border-radius:8px}
.luckys-card-menu:hover{background:#f3f1ec}
.luckys-event-time{margin:6px 0 2px;color:#5b665f;font-size:11px}
.luckys-next-card h2{margin:0 0 9px;font-size:18px;line-height:1.25;letter-spacing:-.02em}
.luckys-person-row,.luckys-location{display:flex;align-items:center;gap:8px;margin:7px 0;color:#66736c;font-size:11px}
.luckys-next-card .luckys-button{margin-top:7px}
.luckys-check-list{display:grid;gap:2px;margin-bottom:8px}
.luckys-check-row{
 width:100%;min-height:28px;padding:2px 0;border:0;background:none;
 display:flex;align-items:center;gap:9px;text-align:left;cursor:pointer;color:#36423c;font-size:11px;
}
.luckys-check-row:hover{color:#17212d}
.luckys-checkbox,.luckys-large-check{
 width:19px;height:19px;border:1.5px solid #9aa39e;border-radius:6px;display:grid;place-items:center;flex:0 0 auto;background:#fff;
}
.luckys-checkbox.checked,.luckys-large-check.checked{background:var(--lk-green);border-color:var(--lk-green);color:#fff}
.luckys-check-row .done{text-decoration:line-through;color:#99a09c}
.luckys-day-list{display:grid;margin-bottom:7px}
.luckys-day-row{
 min-height:36px;display:grid;grid-template-columns:42px 5px auto 1fr;align-items:center;gap:7px;
 border-bottom:1px solid rgba(50,58,53,.06);text-decoration:none;font-size:10.5px;
}
.luckys-day-row:last-child{border-bottom:0}
.luckys-day-row time{color:#66736c}
.luckys-day-dot{width:4px;height:17px;border-radius:99px;background:var(--lk-blue)}
.luckys-day-row:nth-child(2n) .luckys-day-dot{background:var(--lk-green)}
.luckys-day-row:nth-child(3n) .luckys-day-dot{background:var(--lk-orange)}
.luckys-day-row strong{font-size:10.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luckys-mini-week{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:2px 0 10px;padding:8px;background:#f6f4ef;border-radius:13px}
.luckys-mini-week>a{
 min-width:0;min-height:55px;border-radius:10px;display:grid;place-items:center;align-content:center;gap:2px;text-decoration:none;color:#505d56;
}
.luckys-mini-week>a.today{background:var(--lk-green);color:white}
.luckys-mini-week small{font-size:8px}
.luckys-mini-week strong{font-size:11px}
.luckys-mini-week>a>span{height:5px;display:flex;gap:2px}
.luckys-mini-week i{width:4px;height:4px;border-radius:50%;background:var(--lk-orange)}
.luckys-mini-week>a.today i{background:#fff}
.luckys-week-events{display:grid;margin-bottom:8px}
.luckys-week-events>a{
 min-height:31px;padding:4px 0;display:grid;grid-template-columns:62px auto 1fr;align-items:center;gap:7px;
 border-bottom:1px solid rgba(50,58,53,.055);text-decoration:none;font-size:9.5px;
}
.luckys-week-events>a:last-child{border-bottom:0}
.luckys-week-events time{color:#67726c}
.luckys-week-events>a>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luckys-family-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 6px}
.luckys-family-person{display:grid;justify-items:center;align-content:start;text-align:center;text-decoration:none;min-width:0}
.luckys-family-person strong{margin-top:3px;font-size:10.5px}
.luckys-family-person small{max-width:92px;color:#718078;font-size:8.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luckys-family-person.add .luckys-avatar{border:1px dashed #8f9b95;background:#f5f3ef;color:#6f8178}
.luckys-family-card blockquote{
 margin:11px -3px -2px;padding:10px 9px;border-radius:11px;background:#f7ecdf;
 font-family:"Segoe Print","Bradley Hand",cursive;font-size:9px;line-height:1.5;color:#6c6258;
}
.luckys-family-card blockquote .luckys-icon{display:inline-block;vertical-align:-2px;color:#ca786f}
.luckys-empty{padding:26px 18px;display:grid;justify-items:center;text-align:center;gap:6px;color:#758079}
.luckys-empty.compact{padding:10px 2px;justify-items:start;text-align:left}
.luckys-empty.inline{padding:8px 0;display:block;text-align:left;font-size:11px}
.luckys-empty strong{font-size:13px;color:#48534d}
.luckys-empty p,.luckys-empty span{margin:0;font-size:11px}

/* Filters, lists, forms */
.luckys-filter-row{display:flex;gap:7px;overflow-x:auto;padding:0 0 12px;scrollbar-width:none}
.luckys-filter-row::-webkit-scrollbar{display:none}
.luckys-filter-row button{
 min-height:34px;padding:0 14px;border:1px solid rgba(52,63,56,.06);border-radius:999px;
 background:#f0efea;color:#68736d;font-size:12px;font-weight:650;white-space:nowrap;cursor:pointer;
}
.luckys-filter-row button.active{background:var(--lk-green);color:white;border-color:var(--lk-green)}
.luckys-list-card{
 background:var(--lk-surface);border:1px solid var(--lk-line);border-radius:20px;
 box-shadow:var(--lk-shadow-soft);overflow:hidden;
}
.luckys-list-heading{
 margin:0;padding:17px 19px 8px;color:#4a5750;font-size:12px;text-transform:uppercase;letter-spacing:.055em;font-weight:780;
}
.luckys-task-list{display:grid}
.luckys-task-item{
 min-height:64px;padding:10px 18px;display:flex;align-items:center;gap:12px;
 border-bottom:1px solid rgba(48,57,51,.06);
}
.luckys-task-item:last-child{border-bottom:0}
.luckys-task-item.is-done{background:#fbfaf7}
.luckys-large-check{width:22px;height:22px;padding:0;border-radius:7px;cursor:pointer}
.luckys-task-copy{display:grid;gap:2px;min-width:0;flex:1}
.luckys-task-copy strong{font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luckys-task-item.is-done .luckys-task-copy strong{text-decoration:line-through;color:#8c948f}
.luckys-task-copy span{font-size:10.5px;color:#85908a}
.luckys-assignee{display:flex;align-items:center;gap:5px;min-width:80px;color:#66736c}
.luckys-assignee small{font-size:10px}
.luckys-priority{padding:4px 7px;border-radius:999px;font-size:9px;font-weight:740}
.luckys-priority.high{background:var(--lk-orange-soft);color:#a75d3f}
.luckys-priority.urgent{background:var(--lk-rose-soft);color:#aa4651}
.luckys-page-fab{
 position:fixed;right:28px;bottom:28px;z-index:45;width:54px;height:54px;padding:0;border:0;border-radius:50%;
 display:grid;place-items:center;background:linear-gradient(145deg,#e78569,#dc7369);color:white;
 box-shadow:0 9px 24px rgba(191,96,83,.28);cursor:pointer;
}
.luckys-page-fab:hover{transform:translateY(-1px)}
.luckys-modal{position:fixed;inset:0;z-index:140;display:grid;place-items:center;padding:20px}
.luckys-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(30,35,32,.32);backdrop-filter:blur(3px)}
.luckys-modal-card{
 position:relative;width:min(610px,100%);max-height:min(90vh,760px);overflow:auto;
 padding:20px;background:var(--lk-surface);border-radius:22px;box-shadow:0 28px 90px rgba(35,40,36,.24);
}
.luckys-modal-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.luckys-modal-card>header h2{margin:0;font-size:20px;letter-spacing:-.02em}
.luckys-modal-card>header p{margin:3px 0 0;color:var(--lk-muted);font-size:12px}
.luckys-modal-card>header>button{width:36px;height:36px;border:0;border-radius:50%;background:#f1efea;display:grid;place-items:center;cursor:pointer}
.luckys-form{display:grid;gap:13px}
.luckys-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.luckys-form label{display:grid;gap:6px;color:#5f6b64;font-size:11px;font-weight:650}
.luckys-form input,.luckys-form select,.luckys-form textarea,.luckys-inline-form input,.luckys-inline-form select{
 width:100%;min-height:43px;padding:10px 12px;border:1px solid rgba(53,63,56,.12);border-radius:12px;
 background:#fff;color:var(--lk-text);outline:0;
}
.luckys-form textarea{resize:vertical;min-height:94px}
.luckys-form input:focus,.luckys-form select:focus,.luckys-form textarea:focus,.luckys-inline-form input:focus,.luckys-inline-form select:focus{border-color:#93b4a5;box-shadow:0 0 0 3px rgba(95,148,125,.10)}
.luckys-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}
.luckys-check-label{display:flex!important;align-items:center;gap:9px!important;align-self:end;min-height:43px}
.luckys-check-label>input{display:none}
.luckys-check-label b{font-size:12px}

/* Shopping */
.luckys-list-card-head{
 min-height:62px;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;
 border-bottom:1px solid var(--lk-line);
}
.luckys-list-card-head>div{display:flex;align-items:center;gap:10px}
.luckys-list-card-head>div>span:last-child{display:grid}
.luckys-list-card-head strong{font-size:15px}
.luckys-list-card-head small{font-size:10px;color:var(--lk-muted)}
.luckys-shopping-group h2{margin:0;padding:13px 18px 7px;color:#7c8781;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.luckys-shopping-item{
 min-height:55px;padding:8px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(48,57,51,.055);
}
.luckys-shopping-item>div{display:grid;gap:1px;flex:1}
.luckys-shopping-item strong{font-size:14px;font-weight:620}
.luckys-shopping-item>div span{font-size:10px;color:var(--lk-muted)}
.luckys-shopping-item.is-done{background:#fbfaf7}
.luckys-shopping-item.is-done strong{text-decoration:line-through;color:#909792}
.luckys-completed-group{border-top:1px solid var(--lk-line)}
.luckys-completed-group summary{
 list-style:none;min-height:44px;padding:0 18px;display:flex;align-items:center;gap:7px;cursor:pointer;color:#69756f;font-size:12px;font-weight:680;
}
.luckys-completed-group summary::-webkit-details-marker{display:none}
.luckys-completed-group summary span{padding:2px 6px;border-radius:99px;background:#efede8;font-size:9px}
.luckys-suggestions-card{margin-top:12px;padding:13px 15px;border-radius:18px;background:rgba(255,253,249,.74);border:1px solid var(--lk-line)}
.luckys-suggestions-card>span{display:block;margin-bottom:8px;color:#7c8781;font-size:10px;font-weight:740;text-transform:uppercase;letter-spacing:.06em}
.luckys-suggestions-card>div{display:flex;gap:7px;flex-wrap:wrap}
.luckys-suggestions-card button{min-height:32px;padding:0 11px;border:0;border-radius:999px;background:#eeeae3;color:#59655e;display:flex;align-items:center;gap:5px;font-size:11px;cursor:pointer}
.luckys-routine-card{margin-top:12px;border:1px solid var(--lk-line);border-radius:18px;background:var(--lk-surface);overflow:hidden}
.luckys-routine-card>summary{
 list-style:none;min-height:56px;padding:0 17px;display:flex;align-items:center;gap:9px;cursor:pointer;
}
.luckys-routine-card>summary::-webkit-details-marker{display:none}
.luckys-routine-card>summary>span{display:flex;align-items:center;gap:8px;font-weight:700}
.luckys-routine-card>summary>small{margin-left:auto;color:var(--lk-muted);font-size:10px}
.luckys-routine-body{padding:0 16px 16px;border-top:1px solid var(--lk-line)}
.luckys-inline-form{padding:14px 0;display:grid;grid-template-columns:1.35fr .6fr .6fr 1fr .8fr 1fr auto;gap:7px}
.luckys-inline-form input,.luckys-inline-form select{min-width:0;min-height:38px;padding:8px 9px;border-radius:10px;font-size:11px}
.luckys-routine-list{display:grid}
.luckys-routine-list>div{min-height:51px;display:flex;align-items:center;gap:10px;border-top:1px solid rgba(48,57,51,.05)}
.luckys-routine-list>div>span:nth-child(2){display:grid;flex:1}
.luckys-routine-list strong{font-size:12px}
.luckys-routine-list small{font-size:9px;color:var(--lk-muted)}

/* Family */
.luckys-family-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.luckys-member-card,.luckys-member-add-card{
 min-height:210px;padding:18px;border:1px solid var(--lk-line);border-radius:20px;background:var(--lk-surface);box-shadow:var(--lk-shadow-soft);
}
.luckys-member-main{display:flex;align-items:center;gap:14px}
.luckys-member-main h2{margin:0;font-size:17px;letter-spacing:-.02em}
.luckys-member-main p{margin:3px 0 1px;color:var(--lk-green-dark);font-size:12px;font-weight:650}
.luckys-member-main>div>span{font-size:10px;color:var(--lk-muted)}
.luckys-member-event{
 min-height:54px;margin-top:15px;padding:8px 10px;border-radius:13px;background:#f6f4ef;
 display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;text-decoration:none;color:#55625b;
}
.luckys-member-event.soft{grid-template-columns:auto 1fr}
.luckys-member-event>span{display:grid}
.luckys-member-event strong{font-size:11px}
.luckys-member-event small{font-size:9px;color:#879089}
.luckys-permissions{margin-top:11px}
.luckys-permissions summary{list-style:none;display:flex;align-items:center;justify-content:space-between;cursor:pointer;color:#738078;font-size:10px;font-weight:650}
.luckys-permissions summary::-webkit-details-marker{display:none}
.luckys-permissions>div{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}
.luckys-permissions button{min-height:35px;padding:0 9px;border:0;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;text-align:left;cursor:pointer}
.luckys-permissions button.on{background:var(--lk-green-soft);color:#456d5c}
.luckys-permissions button.off{background:#f1efeb;color:#858d88}
.luckys-permissions b{font-size:8px}
.luckys-member-add-card{border-style:dashed;display:grid;place-items:center;align-content:center;text-align:center;cursor:pointer;color:#65736b}
.luckys-member-add-card>span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--lk-green-soft);color:var(--lk-green)}
.luckys-member-add-card strong{margin-top:10px;font-size:14px}
.luckys-member-add-card small{margin-top:3px;max-width:250px;color:var(--lk-muted);font-size:10px}

/* Photos */
.luckys-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.luckys-photo-card{margin:0;overflow:hidden;border-radius:17px;background:var(--lk-surface);border:1px solid var(--lk-line);box-shadow:var(--lk-shadow-soft)}
.luckys-photo-card>a{display:block;aspect-ratio:4/3;overflow:hidden;background:#eeeae3}
.luckys-photo-card img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s ease}
.luckys-photo-card:hover img{transform:scale(1.018)}
.luckys-photo-card figcaption{min-height:55px;padding:9px 10px;display:flex;align-items:center;gap:8px}
.luckys-photo-card figcaption>div{display:grid;min-width:0;flex:1}
.luckys-photo-card figcaption strong{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.luckys-photo-card figcaption span{font-size:8.5px;color:var(--lk-muted)}
.luckys-photo-card figcaption button{width:31px;height:31px;border:0;border-radius:9px;background:transparent;display:grid;place-items:center;color:#8a948e;cursor:pointer}
.luckys-photo-empty{grid-column:1/-1;min-height:330px;border:1px dashed rgba(65,75,68,.15);border-radius:21px;background:rgba(255,253,249,.7);display:grid;place-items:center;align-content:center;text-align:center;padding:28px}
.luckys-photo-empty>span{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:var(--lk-rose-soft);color:var(--lk-rose)}
.luckys-photo-empty h2{margin:11px 0 1px;font-size:18px}
.luckys-photo-empty p{margin:0 0 13px;color:var(--lk-muted);font-size:12px}
.luckys-upload-drop{
 min-height:140px;border:1px dashed #aeb8b2!important;border-radius:16px!important;background:#f8f6f1;
 display:grid!important;place-items:center!important;align-content:center!important;text-align:center;cursor:pointer;
}
.luckys-upload-drop input{position:absolute;opacity:0;pointer-events:none}
.luckys-upload-drop strong{margin-top:6px;color:#46544c}
.luckys-upload-drop>span{font-size:9px;color:var(--lk-muted)}

/* More */
.luckys-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.luckys-more-grid>a{
 min-height:96px;padding:14px;border:1px solid var(--lk-line);border-radius:18px;background:var(--lk-surface);
 box-shadow:var(--lk-shadow-soft);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;text-decoration:none;
}
.luckys-more-grid>a:hover{transform:translateY(-1px);box-shadow:var(--lk-shadow)}
.luckys-more-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center}
.luckys-more-icon.orange{background:var(--lk-orange-soft);color:var(--lk-orange)}
.luckys-more-icon.blue{background:var(--lk-blue-soft);color:var(--lk-blue)}
.luckys-more-icon.rose{background:var(--lk-rose-soft);color:var(--lk-rose)}
.luckys-more-icon.violet{background:var(--lk-violet-soft);color:var(--lk-violet)}
.luckys-more-icon.green{background:var(--lk-green-soft);color:var(--lk-green)}
.luckys-more-icon.sage{background:var(--lk-sage-soft);color:var(--lk-sage)}
.luckys-more-icon.beige{background:var(--lk-beige-soft);color:#a38665}
.luckys-more-icon.gray{background:#eeeef0;color:#747b80}
.luckys-more-grid>a>span:nth-child(2){display:grid;min-width:0}
.luckys-more-grid strong{font-size:13px}
.luckys-more-grid small{margin-top:2px;color:var(--lk-muted);font-size:9.5px}

/* Generic legacy modules: retain function, replace backend look */
.family-module-head{margin:2px 0 18px}
.family-module-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:13px}
.family-panel,.family-wide-panel,.f-card{
 background:var(--lk-surface)!important;border:1px solid var(--lk-line)!important;border-radius:20px!important;box-shadow:var(--lk-shadow-soft)!important;
 padding:17px!important;
}
.family-panel h2{margin:0 0 13px;font-size:16px;letter-spacing:-.015em}
.family-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.family-panel-head p{margin:3px 0 0;color:var(--lk-muted);font-size:11px}
.family-form{display:grid;gap:11px}
.family-form label{display:grid;gap:5px;color:#607069;font-size:11px;font-weight:650}
.family-form input,.family-form select,.family-form textarea{
 width:100%;min-height:42px;padding:9px 11px;border:1px solid rgba(53,63,56,.12)!important;border-radius:11px!important;background:white!important;color:var(--lk-text)!important;
}
.family-form button[type=submit],.family-btn{
 min-height:40px;padding:0 15px;border:0!important;border-radius:11px!important;background:var(--lk-green)!important;color:#fff!important;font-weight:680!important;
}
.family-list{display:grid}
.family-list-row{min-height:58px!important;padding:9px 5px!important;display:flex!important;align-items:center!important;gap:11px!important;border-bottom:1px solid rgba(48,57,51,.06)!important}
.family-list-row:last-child{border-bottom:0!important}
.family-list-row>div:not(.row-actions){display:grid;gap:2px;min-width:0;flex:1}
.family-list-row strong{font-size:13px!important}
.family-list-row span{font-size:10px;color:var(--lk-muted)}
.family-soft-btn{border:0!important;border-radius:10px!important;background:#f0eee9!important;color:#5c6962!important;padding:8px 11px!important;font-size:11px!important}
.row-actions{display:flex;align-items:center;gap:5px;margin-left:auto}
.row-actions button,.row-actions a,.row-icon-btn{
 min-width:33px;height:33px;border:0!important;border-radius:10px!important;background:#f4f2ed!important;color:#748079!important;display:grid!important;place-items:center!important;text-decoration:none!important;
}
.family-empty{padding:22px;color:var(--lk-muted);text-align:center;font-size:12px}

/* Calendar reference override */
.calendar-page{display:grid!important;gap:12px!important}
.calendar-page-head{margin:2px 0 3px!important;display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:18px!important}
.calendar-new-wrap{display:flex;gap:6px}
.calendar-primary{
 min-height:40px!important;padding:0 14px!important;border:0!important;border-radius:11px!important;
 background:var(--lk-green)!important;color:#fff!important;font-size:12px!important;font-weight:720!important;display:flex;align-items:center;gap:7px;cursor:pointer;
}
.calendar-primary.split{min-width:40px!important;padding:0!important;justify-content:center}
.calendar-toolbar-ref{
 display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:12px!important;
 padding:10px 12px!important;background:var(--lk-surface)!important;border:1px solid var(--lk-line)!important;border-radius:16px!important;box-shadow:var(--lk-shadow-soft)!important;
}
.calendar-nav-ref{display:flex!important;align-items:center!important;gap:6px!important}
.calendar-nav-ref button{
 height:36px!important;min-width:36px!important;padding:0 10px!important;border:1px solid rgba(54,64,57,.08)!important;border-radius:10px!important;background:#f8f6f2!important;color:#4e5a54!important;display:grid;place-items:center;cursor:pointer;
}
.calendar-nav-ref button.today{display:block!important;font-size:11px!important;font-weight:680!important}
.calendar-nav-ref strong{font-size:13px!important;margin-left:4px!important}
.period-icon{color:#7e8b84;display:grid}
.calendar-view-switch{display:flex!important;gap:3px!important;padding:3px!important;background:#efeee9!important;border-radius:11px!important}
.calendar-view-switch button{height:32px!important;padding:0 12px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#66736c!important;font-size:11px!important;font-weight:680!important;cursor:pointer}
.calendar-view-switch button.active{background:#fff!important;color:var(--lk-green-dark)!important;box-shadow:0 1px 4px rgba(47,55,50,.08)!important}
.calendar-member-filters{display:flex!important;gap:7px!important;padding:0!important;overflow-x:auto!important;scrollbar-width:none}
.calendar-member-filters::-webkit-scrollbar{display:none}
.member-chip,.member-add{
 height:36px!important;border:1px solid rgba(54,64,57,.08)!important;border-radius:999px!important;background:#fff!important;color:#68746e!important;display:flex!important;align-items:center!important;gap:6px!important;padding:0 10px!important;font-size:10px!important;font-weight:680!important;white-space:nowrap;cursor:pointer;
}
.member-chip.active{background:var(--lk-green-soft)!important;border-color:#b6d0c2!important;color:var(--lk-green-dark)!important}
.member-fallback,.member-all-icon{width:24px!important;height:24px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#f0ede8!important;font-size:9px!important}
.member-add{width:36px!important;padding:0!important;justify-content:center!important}
.calendar-layout{display:grid!important;grid-template-columns:minmax(0,1fr) 224px!important;gap:12px!important}
.calendar-week-ref,.calendar-day-ref,.calendar-month-ref,.calendar-list-ref{
 background:var(--lk-surface)!important;border:1px solid var(--lk-line)!important;border-radius:18px!important;overflow:hidden!important;box-shadow:var(--lk-shadow-soft)!important;
}
.week-head-row{background:#faf8f4!important;border-bottom:1px solid var(--lk-line)!important}
.week-day-ref{height:62px!important;border-color:rgba(51,61,54,.055)!important}
.week-day-ref strong{font-size:11px!important}
.week-day-ref span{font-size:9px!important;color:#7b8680!important}
.week-day-ref.today{background:var(--lk-green-soft)!important;color:var(--lk-green-dark)!important}
.week-all-day{border-color:var(--lk-line)!important}
.week-all-day-label{font-size:9px!important;color:#7f8a84!important}
.week-timed{min-height:720px!important}
.week-time-axis{background:#faf9f6!important;border-color:rgba(51,61,54,.055)!important}
.week-time-axis span{font-size:9px!important;color:#87908b!important}
.week-day-column{border-color:rgba(51,61,54,.05)!important}
.week-day-column>i{border-color:rgba(51,61,54,.05)!important}
.week-day-column.today{background:#f9fbf9!important}
.calendar-event-card.timed{
 border-radius:8px!important;padding:5px 6px!important;border-left-width:3px!important;
 box-shadow:0 2px 6px rgba(51,57,53,.04)!important;
}
.calendar-event-card.timed strong{font-size:9px!important}
.calendar-event-card.timed b{font-size:10px!important}
.calendar-event-card.timed small{font-size:8.5px!important}
.calendar-event-card.blue,.month-event-ref.blue,.calendar-list-event.blue{background:#e7eef7!important;color:#456b99!important}
.calendar-event-card.green,.month-event-ref.green,.calendar-list-event.green{background:#e4efe9!important;color:#47755f!important}
.calendar-event-card.red,.month-event-ref.red,.calendar-list-event.red{background:#f7e3e5!important;color:#a34e58!important}
.calendar-event-card.purple,.month-event-ref.purple,.calendar-list-event.purple{background:#ece8f8!important;color:#6d63a6!important}
.calendar-event-card.orange,.month-event-ref.orange,.calendar-list-event.orange{background:#f8e8d9!important;color:#a46b42!important}
.calendar-event-card.gray,.month-event-ref.gray,.calendar-list-event.gray{background:#eceeec!important;color:#646f69!important}
.calendar-event-card.sky,.month-event-ref.sky,.calendar-list-event.sky{background:#e1efeb!important;color:#4e8072!important}
.calendar-event-card.yellow,.month-event-ref.yellow,.calendar-list-event.yellow{background:#f4ecd6!important;color:#8e7739!important}
.calendar-event-card.pink,.month-event-ref.pink,.calendar-list-event.pink{background:#f8e2e8!important;color:#a55872!important}
.month-weekdays{background:#faf8f4!important;border-color:var(--lk-line)!important}
.month-weekdays span{font-size:10px!important;color:#75817b!important}
.month-cell-ref{min-height:116px!important;padding:8px!important;border-color:rgba(51,61,54,.055)!important;background:#fffdf9!important}
.month-cell-ref.today{background:#f3f8f5!important}
.month-cell-ref>b{font-size:11px!important}
.month-event-ref{font-size:9px!important;border-radius:6px!important;padding:4px 5px!important}
.calendar-day-title{background:#faf8f4!important;border-color:var(--lk-line)!important}
.calendar-day-title strong{font-size:17px!important}
.calendar-day-title span{font-size:11px!important}
.calendar-day-list{padding:6px 16px!important}
.calendar-list-event{min-height:64px!important;border-color:rgba(51,61,54,.055)!important}
.calendar-list-event time{font-size:11px!important}
.calendar-list-event strong{font-size:13px!important}
.calendar-list-event span{font-size:10px!important}
.calendar-side-ref{display:grid!important;gap:10px!important;position:sticky!important;top:90px!important}
.calendar-side-card{background:var(--lk-surface)!important;border:1px solid var(--lk-line)!important;border-radius:16px!important;padding:12px!important;box-shadow:var(--lk-shadow-soft)!important}
.side-card-head strong{font-size:12px!important}
.side-card-head button{border:0!important;border-radius:8px!important;background:#f1efea!important}
.mini-weekdays span{font-size:8px!important}
.mini-days button{font-size:9px!important}
.mini-days button.selected{background:var(--lk-green)!important;color:#fff!important}
.calendar-toggle-list label{font-size:10px!important;min-height:32px!important}
.cal-check{border-radius:5px!important}
.calendar-toggle-list input:checked+.cal-check{background:var(--lk-green)!important;border-color:var(--lk-green)!important}
.quick-actions-card>button,.quick-actions-card>a,.calendar-template-row>button:first-child{font-size:10px!important;min-height:36px!important;border-radius:9px!important}
.quick-icon{border-radius:8px!important}
.calendar-modal-card{border-radius:20px!important}
.calendar-mobile-agenda{display:none}

/* Quick add + mobile nav */
.luckys-bottom-nav{display:none}
.luckys-quickadd{display:contents}
.luckys-mobile-add{
 width:52px;height:52px;padding:0;border:0;border-radius:50%;
 display:grid;place-items:center;background:var(--lk-green);color:#fff;box-shadow:0 7px 18px rgba(69,112,92,.24);cursor:pointer;
}
.fh-sheet-backdrop{position:fixed;inset:0;z-index:170;background:rgba(31,36,33,.28);backdrop-filter:blur(2px)}
.fh-bottom-sheet.luckys-sheet{
 position:fixed;z-index:180;left:50%;bottom:20px;transform:translateX(-50%);
 width:min(470px,calc(100vw - 28px));padding:11px 16px 16px;background:var(--lk-surface);border-radius:22px;box-shadow:0 24px 70px rgba(36,42,38,.25);
}
.fh-sheet-handle{width:42px;height:4px;border-radius:99px;background:#d6d4cf;margin:0 auto 12px}
.luckys-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.luckys-sheet-head h2{margin:0;font-size:18px}
.luckys-sheet-head p{margin:3px 0 0;color:var(--lk-muted);font-size:11px}
.luckys-sheet-head>button{width:34px;height:34px;border:0;border-radius:50%;background:#f1efea;display:grid;place-items:center}
.luckys-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.luckys-quick-grid a{min-height:84px;padding:8px 4px;border-radius:14px;background:#f6f4ef;display:grid;place-items:center;align-content:center;gap:6px;text-decoration:none;font-size:10px;font-weight:650}
.quick-add-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center}
.quick-add-icon.green{background:var(--lk-green-soft);color:var(--lk-green)}
.quick-add-icon.orange{background:var(--lk-orange-soft);color:var(--lk-orange)}
.quick-add-icon.sage{background:var(--lk-sage-soft);color:var(--lk-sage)}
.quick-add-icon.blue{background:var(--lk-blue-soft);color:var(--lk-blue)}

/* Responsive */
@media(max-width:1150px){
 :root{--lk-sidebar:176px}
 .luckys-content{width:min(100%,calc(100% - 34px))}
 .luckys-home-grid-top{grid-template-columns:1fr 1fr}
 .luckys-shopping-card{grid-column:1/-1}
 .luckys-home-grid-bottom{grid-template-columns:1fr 1fr}
 .luckys-family-card{grid-column:1/-1}
 .luckys-family-grid{grid-template-columns:repeat(4,1fr)}
 .calendar-layout{grid-template-columns:minmax(0,1fr) 200px!important}
 .luckys-more-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
 :root{--lk-topbar:64px}
 body.luckys-app{background:#f7f5f0}
 .luckys-shell{display:block}
 .luckys-sidebar{display:none}
 .luckys-stage{min-height:100vh}
 .luckys-topbar{height:var(--lk-topbar);padding:8px 14px;background:rgba(255,253,249,.92)}
 .luckys-brand-mobile{display:flex;gap:7px;min-width:max-content}
 .luckys-brand-mobile strong{font-size:14px;letter-spacing:-.02em}
 .family-search{display:none}
 .luckys-profile-name,.luckys-profile-menu summary>.luckys-icon{display:none}
 .luckys-profile-menu summary{padding:0}
 .luckys-profile-popover{position:fixed;top:60px;right:12px}
 .family-notification-popover{position:fixed;top:60px;right:12px;left:12px;width:auto}
 .luckys-content{width:100%;padding:18px 14px calc(105px + env(safe-area-inset-bottom))}
 .luckys-bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:100;
  height:calc(70px + env(safe-area-inset-bottom));padding:7px 10px env(safe-area-inset-bottom);
  display:grid;grid-template-columns:repeat(5,1fr);align-items:center;
  background:rgba(255,253,249,.95);border-top:1px solid rgba(49,57,52,.07);backdrop-filter:blur(18px) saturate(130%);
  box-shadow:0 -8px 30px rgba(45,51,47,.05);
 }
 .luckys-bottom-nav>a{height:54px;display:grid;justify-items:center;align-content:center;gap:3px;text-decoration:none;color:#747e78;font-size:9px;font-weight:650}
 .luckys-bottom-nav>a.active{color:var(--lk-green-dark)}
 .luckys-bottom-nav .luckys-quickadd{display:grid;place-items:center}
 .luckys-mobile-add{transform:translateY(-8px)}
 .luckys-welcome{align-items:flex-start;display:grid;grid-template-columns:1fr auto}
 .luckys-welcome h1{font-size:24px}
 .luckys-welcome p{font-size:12px}
 .luckys-weather-card{grid-column:1/-1;width:100%;min-width:0;height:50px;margin-top:2px;border-radius:15px}
 .luckys-hero{height:138px;border-radius:18px}
 .luckys-hero blockquote{right:16px;top:33px;font-size:15px}
 .luckys-home-grid-top,.luckys-home-grid-bottom{grid-template-columns:1fr}
 .luckys-shopping-card,.luckys-family-card{grid-column:auto}
 .luckys-card{border-radius:18px;padding:14px}
 .luckys-family-grid{grid-template-columns:repeat(4,1fr)}
 .luckys-page-head,.luckys-page-head.simple,.calendar-page-head{align-items:flex-start!important;margin-bottom:13px!important}
 .luckys-page-head h1,.family-module-head h1,.calendar-page-head h1{font-size:25px!important}
 .luckys-page-head p,.family-module-head p,.calendar-page-head p{font-size:12px}
 .luckys-primary-action{display:none}
 .luckys-page-fab{right:18px;bottom:88px;width:51px;height:51px}
 .luckys-family-overview{grid-template-columns:1fr}
 .luckys-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .luckys-more-grid{grid-template-columns:1fr}
 .family-module-grid{grid-template-columns:1fr}
 .calendar-page-head{display:flex!important;flex-direction:column!important;gap:12px!important}
 .calendar-new-wrap{width:100%}
 .calendar-primary:first-child{flex:1}
 .calendar-toolbar-ref{grid-template-columns:1fr!important;padding:9px!important}
 .calendar-nav-ref{display:grid!important;grid-template-columns:36px auto 36px 1fr;gap:5px!important}
 .calendar-nav-ref strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .period-icon{display:none}
 .calendar-view-switch{width:100%;display:grid!important;grid-template-columns:repeat(4,1fr)!important}
 .calendar-view-switch button{padding:0 6px!important}
 .calendar-layout{grid-template-columns:1fr!important}
 .calendar-side-ref{display:none!important}
 .calendar-week-ref{display:none!important}
 .calendar-mobile-agenda{display:none!important;background:var(--lk-surface);border:1px solid var(--lk-line);border-radius:17px;box-shadow:var(--lk-shadow-soft);overflow:hidden}
 .calendar-page.view-week .calendar-mobile-agenda{display:block!important}
 .calendar-mobile-agenda .mobile-agenda-head{padding:13px 14px;background:#faf8f4;border-bottom:1px solid var(--lk-line);display:flex;align-items:center;justify-content:space-between}
 .calendar-mobile-agenda .mobile-agenda-head strong{font-size:14px}
 .calendar-mobile-agenda .mobile-agenda-head span{font-size:10px;color:var(--lk-muted)}
 .calendar-mobile-agenda .calendar-list-event{padding:10px 14px!important}
 .mobile-agenda-add{width:34px;height:34px;padding:0;border:0;border-radius:50%;display:grid;place-items:center;background:var(--lk-green-soft);color:var(--lk-green-dark);cursor:pointer}
 .calendar-main>.calendar-day-ref,.calendar-main>.calendar-month-ref,.calendar-main>.calendar-list-ref{border-radius:17px!important}
 .calendar-modal-card{width:100%!important;max-height:92vh!important;border-radius:20px 20px 0 0!important}
 .calendar-event-modal{align-items:end!important;padding:0!important}
 .luckys-inline-form{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
 .luckys-content{padding-left:12px;padding-right:12px}
 .luckys-top-actions{gap:2px}
 .luckys-profile-menu .luckys-avatar-sm{width:34px;height:34px}
 .luckys-icon-button{width:38px;height:38px}
 .luckys-welcome{display:block}
 .luckys-weather-card{margin-top:12px}
 .luckys-hero{height:128px}
 .luckys-hero blockquote{top:auto;bottom:15px;right:13px;font-size:13px}
 .luckys-home{gap:10px}
 .luckys-card-head strong{font-size:13px}
 .luckys-next-card h2{font-size:17px}
 .luckys-family-grid{grid-template-columns:repeat(4,1fr);gap:5px}
 .luckys-family-person .luckys-avatar-lg{width:47px;height:47px}
 .luckys-family-person small{max-width:68px}
 .luckys-task-item{padding:10px 12px;gap:10px}
 .luckys-assignee small{display:none}
 .luckys-assignee{min-width:auto}
 .luckys-priority{display:none}
 .luckys-form-grid{grid-template-columns:1fr}
 .luckys-modal{align-items:end;padding:0}
 .luckys-modal-card{width:100%;max-height:90vh;border-radius:22px 22px 0 0;padding:18px 15px calc(18px + env(safe-area-inset-bottom))}
 .luckys-filter-row{margin-right:-12px;padding-right:12px}
 .luckys-photo-grid{grid-template-columns:1fr 1fr;gap:7px}
 .luckys-photo-card figcaption{display:none}
 .luckys-photo-card{border-radius:13px}
 .luckys-more-grid>a{min-height:82px;padding:12px}
 .luckys-member-card,.luckys-member-add-card{padding:15px}
 .luckys-member-main .luckys-avatar-xl{width:62px;height:62px}
 .luckys-permissions>div{grid-template-columns:1fr}
 .luckys-inline-form{grid-template-columns:1fr}
 .luckys-quick-grid{grid-template-columns:repeat(2,1fr)}
 .fh-bottom-sheet.luckys-sheet{bottom:calc(79px + env(safe-area-inset-bottom))}
 .month-cell-ref{min-height:83px!important;padding:5px!important}
 .month-event-ref{font-size:8px!important;padding:3px 4px!important}
 .calendar-member-filters{margin-right:-12px!important;padding-right:12px!important}
}
@media(max-width:390px){
 .luckys-welcome h1{font-size:22px}
 .luckys-family-grid{grid-template-columns:repeat(2,1fr)}
 .luckys-family-person small{max-width:120px}
 .luckys-photo-grid{grid-template-columns:1fr 1fr}
}

/* print */
@media print{
 .luckys-sidebar,.luckys-topbar,.luckys-bottom-nav,.luckys-page-fab{display:none!important}
 .luckys-shell{display:block}
 .luckys-content{width:100%;padding:0}
 body.luckys-app{background:white}
}
