/* Pinak — lavender task-manager theme */
:root{
  --bg:#F1ECFD; --bg2:#E6DEFA; --card:#FFFFFF; --card2:#F8F5FF;
  --ink:#1B1830; --ink2:#5F5A78; --ink3:#9A95B2; --line:#ECE6FA;
  --pri:#A58AF5; --pri-d:#7C5CEB; --pri-s:#EAE2FF;
  --yellow:#FFD45E; --pink:#EDA9F5; --green:#5BCB7C; --coral:#F48A6A;
  --dark:#15131F;
  --r:24px; --r-sm:18px;
  --sh:0 10px 30px rgba(84,58,170,.08); --sh-lg:0 24px 60px rgba(30,20,70,.25);
  --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:15px;
}
html.big{font-size:18px;}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
[hidden]{display:none !important;}
html,body{margin:0;background:var(--bg);color:var(--ink);overflow-x:hidden;}
body{min-height:100vh;min-height:100dvh;line-height:1.45;}
button{font-family:inherit;color:inherit;}
h1,h2,h3,h4{letter-spacing:-.01em;}
.ic{width:1.25em;height:1.25em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;vertical-align:middle;}
input,select,textarea{font:inherit;font-size:1rem;padding:.9rem 1.1rem;border-radius:var(--r-sm);border:1.5px solid transparent;background:var(--card);
  color:var(--ink);width:100%;min-height:54px;}
input::placeholder,textarea::placeholder{color:var(--ink3);}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 4px rgba(165,138,245,.2);}
textarea{resize:vertical;min-height:100px;}
.hint{font-size:.84rem;color:var(--ink2);margin:.4rem 0 .8rem;}
.center{text-align:center;}
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.9rem;}
.field label{font-size:.88rem;font-weight:500;color:var(--ink2);}
.lbl{display:block;font-weight:500;font-size:1rem;margin:1.3rem 0 .6rem;color:var(--ink);}

/* colour helpers (match COLORS in pinak-data.js) */
.c0{--c:#9C7CF4;--t:#fff;--s:#EEE7FF;--d:#6A4BD6;}
.c1{--c:#FFD45E;--t:#2A2340;--s:#FFF5D6;--d:#A87A00;}
.c2{--c:#EDA9F5;--t:#2A2340;--s:#FBEAFD;--d:#9C3FAF;}
.c3{--c:#5BCB7C;--t:#fff;--s:#E1F6E7;--d:#1F7F44;}
.c4{--c:#F48A6A;--t:#fff;--s:#FFE8E0;--d:#B9482A;}
.c5{--c:#7EA8F8;--t:#fff;--s:#E5EEFF;--d:#3460BF;}
.c6{--c:#5CC8C0;--t:#fff;--s:#DFF6F4;--d:#1D7C76;}
.c7{--c:#8B87A8;--t:#fff;--s:#EEEDF5;--d:#4F4B68;}

/* ───── Buttons ───── */
.btn{border:none;border-radius:999px;padding:.8rem 1.3rem;font-size:1rem;font-weight:500;cursor:pointer;min-height:50px;
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:transform .12s ease,background .15s;}
.btn:active{transform:scale(.96);}
.btn-primary{background:var(--pri);color:#fff;}
.btn-primary:hover{background:var(--pri-d);}
.btn-dark{background:var(--dark);color:#fff;}
.btn-soft{background:var(--pri-s);color:var(--pri-d);}
.btn-ghost{background:transparent;color:var(--ink2);}
.btn.danger,.danger{color:#D04A3A;}
.btn-soft.danger{background:#FFE8E3;}
.btn-sm{min-height:42px;padding:.5rem 1rem;font-size:.9rem;}
.btn-xs{min-height:34px;padding:.35rem .85rem;font-size:.8rem;}
.btn-lg{min-height:60px;font-size:1.08rem;}
.btn-block{width:100%;}
.btn-row{display:flex;gap:.6rem;}
.btn-row .btn{flex:1;}
.link{border:none;background:none;color:var(--ink);font-weight:500;cursor:pointer;font-size:.95rem;padding:.3rem 0;}
.round{width:52px;height:52px;border-radius:50%;border:none;background:var(--card);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;position:relative;flex-shrink:0;transition:transform .12s;color:var(--ink);}
.round:active{transform:scale(.92);}
.round .ic{width:22px;height:22px;}
.round.primary{background:var(--pri);color:#fff;}
.round.ghost{background:rgba(255,255,255,.22);color:inherit;}
.dot-alert{position:absolute;top:12px;right:13px;width:9px;height:9px;border-radius:50%;background:var(--coral);border:2px solid #fff;}

/* ───── Auth ───── */
#auth{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:calc(24px + var(--safe-t)) 16px 30px;}
.auth-art{text-align:center;width:100%;max-width:440px;animation:rise .5s ease both;}
.art-card{position:relative;height:210px;border-radius:30px;background:linear-gradient(150deg,#C2AEFB,#A58AF5 60%,#8D6FF0);
  display:flex;align-items:center;justify-content:center;overflow:hidden;}
.art-card::before{content:'';position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.14);top:-90px;right:-70px;}
.art-clock{width:112px;height:112px;border-radius:34px;background:#fff;color:var(--pri-d);display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 30px rgba(30,20,70,.18);}
.art-clock .ic{width:56px;height:56px;stroke-width:1.8;}
.float{position:absolute;width:50px;height:50px;border-radius:16px;display:flex;align-items:center;justify-content:center;animation:float 5s ease-in-out infinite;}
.float .ic{width:23px;height:23px;}
.f1{background:var(--yellow);color:#2A2340;left:26px;top:30px;}
.f2{background:var(--green);color:#fff;right:30px;top:40px;animation-delay:1s;}
.f3{background:var(--pink);color:#2A2340;left:44px;bottom:26px;animation-delay:.5s;}
.f4{background:var(--dark);color:#fff;right:46px;bottom:30px;animation-delay:1.6s;}
.auth-art h1{font-size:2.3rem;margin:1.1rem 0 0;font-weight:600;}
.lead{margin:.2rem 0 0;color:var(--ink2);}
.lead span{font-size:.9rem;}
.price-tag{display:inline-flex;align-items:center;gap:.4rem;margin-top:.8rem;background:var(--yellow);color:#2A2340;border-radius:999px;padding:.4rem 1rem;font-weight:500;font-size:.85rem;}
.auth-card{background:var(--card2);border-radius:30px;margin-top:20px;padding:20px;width:100%;max-width:440px;animation:rise .5s .1s ease both;}
.auth-card input{background:#fff;border-color:var(--line);}
.form-err{background:#FFE8E3;color:#B9482A;border-radius:14px;padding:.6rem .9rem;font-size:.88rem;}
.seg{display:flex;background:var(--bg2);border-radius:999px;padding:5px;gap:4px;margin-bottom:1.1rem;}
.seg button{flex:1;border:none;background:none;border-radius:999px;padding:.65rem;font-weight:500;cursor:pointer;color:var(--ink2);}
.seg button.on{background:var(--pri);color:#fff;}

/* ───── App shell ───── */
#app{padding:0 0 calc(110px + var(--safe-b));}
.view{max-width:720px;margin:0 auto;padding:calc(18px + var(--safe-t)) 18px 0;animation:rise .35s ease both;}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;min-height:56px;}
.hdr-actions{display:flex;align-items:center;gap:10px;}
.me{display:flex;align-items:center;gap:12px;cursor:pointer;min-width:0;}
.hello{display:flex;flex-direction:column;line-height:1.25;min-width:0;}
.hello span{font-size:1rem;}
.hello b{font-size:1.05rem;font-weight:600;}
.ttl{font-size:1.75rem;margin:0;font-weight:500;}

.avatar{width:40px;height:40px;border-radius:50%;background:var(--c,#9C7CF4);color:var(--t,#fff);display:inline-flex;align-items:center;justify-content:center;
  font-weight:600;font-size:1rem;flex-shrink:0;border:2.5px solid #fff;}
.avatar.lg{width:56px;height:56px;font-size:1.3rem;border:none;}
.avatar.sm{width:32px;height:32px;font-size:.8rem;border-width:2px;}
.avatar .ic{width:55%;height:55%;}
.avatar.more-n{background:var(--pri);color:#fff;font-size:.72rem;}
.avatars{display:flex;flex-shrink:0;}
.avatars .avatar+.avatar{margin-left:-10px;}

.banner{display:flex;align-items:center;gap:12px;border-radius:var(--r-sm);padding:12px 14px;margin-bottom:14px;background:#FFF5D6;color:#6B5200;font-size:.88rem;}
.banner span{flex:1;}
.banner small{display:block;opacity:.8;}
.banner.bad{background:#FFE8E3;color:#8A2E17;}
.banner.soft{background:var(--pri-s);color:#4A3399;}

/* ───── Folder-tab stat tiles ───── */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:46px 12px;margin:38px 0 22px;}
.tile{position:relative;border:none;background:var(--c);color:var(--t);border-radius:0 0 22px 22px;padding:12px 18px 18px;text-align:left;
  font-family:inherit;cursor:pointer;min-height:76px;transition:transform .15s;}
.tile:active{transform:scale(.97);}
.tile .ico{position:absolute;top:-30px;left:0;width:46px;height:46px;border-radius:15px;background:var(--c);display:flex;align-items:center;justify-content:center;}
.tile .ico span{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.35);display:flex;align-items:center;justify-content:center;}
.tile .ico .ic{width:18px;height:18px;}
.tile .tab{position:absolute;top:-30px;left:52px;right:0;height:46px;background:var(--c);border-radius:20px 20px 0 0;display:flex;align-items:center;
  padding:0 14px;font-size:.95rem;font-weight:400;white-space:nowrap;overflow:hidden;}
.tile .tab::after{content:'';position:absolute;left:-52px;bottom:-1px;width:52px;height:18px;background:var(--c);}
.tile .num{position:relative;font-size:1.45rem;font-weight:500;line-height:1.2;}
.tile.on{box-shadow:0 0 0 3px var(--dark);}
.tile:nth-child(2),.tile:nth-child(4){margin-top:-10px;}
.tile:nth-child(3){margin-top:-6px;}

/* ───── Cards with the corner notch ("…" button) ───── */
.card{background:var(--card);border-radius:var(--r);padding:18px;margin-bottom:14px;}
.card h3{margin:0 0 .4rem;font-size:1.05rem;font-weight:500;}
.notch-card{position:relative;}
.notch{position:absolute;top:0;right:0;background:var(--bg);padding:0 0 8px 8px;border-bottom-left-radius:22px;z-index:1;}
.notch::before,.notch::after{content:'';position:absolute;width:22px;height:22px;background:radial-gradient(circle at 0 100%,transparent 21.5px,var(--bg) 22px);}
.notch::before{top:0;left:-22px;}
.notch::after{bottom:-22px;right:0;}
.more{width:50px;height:38px;border-radius:14px;border:none;background:var(--card);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;}
.card-ttl{font-size:1.2rem !important;margin:2px 0 6px !important;padding-right:60px;}

/* Line chart */
.chart-card{padding-bottom:12px;}
.chart svg{width:100%;height:auto;display:block;overflow:visible;}
.chart .grid{stroke:#EEE9FA;stroke-width:1;}
.chart .axis{fill:#4E4A66;font-size:11px;font-family:inherit;}
.chart .ln{fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;}
.legend{display:flex;justify-content:center;gap:16px;font-size:.82rem;color:var(--ink2);margin-top:8px;flex-wrap:wrap;}
.legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px;}

.sec-h{display:flex;align-items:center;justify-content:space-between;margin:24px 0 12px;}
.sec-h h2{font-size:1.25rem;margin:0;font-weight:500;}

/* Task cards (like the reference "To do list") */
.tcard{background:var(--card);border-radius:var(--r);padding:18px 18px 16px;margin-bottom:14px;position:relative;animation:rise .3s ease both;cursor:pointer;}
.tcard h4{margin:0;font-size:1.1rem;font-weight:500;padding-right:64px;overflow-wrap:anywhere;}
.tcard.hl{background:var(--pri);color:#fff;}
.tcard.hl .more{background:#C3B0FA;color:#fff;}
.tcard.is-done{opacity:.55;}
.tcard.is-done h4{text-decoration:line-through;}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;}
.tag{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:.35rem .9rem;font-size:.8rem;background:#E3D8FF;color:#6A4BD6;}
.tag .ic{width:14px;height:14px;}
.tag.pink{background:#F6CFFA;color:#8E2FA4;}
.tag.missed{background:#FFDCD3;color:#B9482A;}
.tag.done{background:#D5F3DF;color:#1F7F44;}
.tag.soon{background:#FFEFC2;color:#8A6500;}
.tcard.hl .tag{background:#fff;color:var(--ink);}
.tcard.hl .tag.pink{background:#F3C8FA;color:#6A2A7E;}
.tcard .meta{display:flex;align-items:center;gap:14px;margin-top:14px;font-size:.92rem;}
.tcard .meta > span:not(.avatars){display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.tcard .meta .ic{width:18px;height:18px;}
.tcard .meta .avatars{margin-left:auto;}
.mini-items{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.mini-items li{background:var(--bg);border-radius:10px;padding:.2rem .6rem;font-size:.82rem;}
.tcard.hl .mini-items li{background:rgba(255,255,255,.25);}
.mini-items li.got{text-decoration:line-through;opacity:.55;}
.filter-note{display:flex;align-items:center;justify-content:space-between;background:var(--pri-s);color:var(--pri-d);border-radius:14px;padding:.6rem 1rem;margin-bottom:14px;font-size:.9rem;}

.empty{text-align:center;padding:34px 20px;color:var(--ink2);background:var(--card);border-radius:var(--r);}
.empty .sq{width:64px;height:64px;border-radius:22px;margin-bottom:8px;}
.empty .sq .ic{width:30px;height:30px;}
.empty h3{margin:.3rem 0 0;font-weight:500;color:var(--ink);}
.empty p{margin:.3rem 0 1rem;}
.sq{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--s);color:var(--d);flex-shrink:0;}
.sq .ic{width:19px;height:19px;}

/* Shopping lists */
.slist{background:var(--card);border-radius:var(--r);margin-bottom:14px;position:relative;animation:rise .3s ease both;}
.slist-h{padding:18px 18px 10px;}
.slist-h h4{margin:0;font-size:1.1rem;font-weight:500;padding-right:64px;}
.slist-h .tags{margin-top:10px;}
.slist ul{list-style:none;margin:0;padding:0 10px;}
.slist li{display:flex;align-items:center;gap:12px;padding:12px 8px;border-top:1px solid var(--line);font-size:1rem;cursor:pointer;}
.slist li .box{width:28px;height:28px;border-radius:9px;border:2px solid #CFC7EA;display:flex;align-items:center;justify-content:center;color:transparent;flex-shrink:0;transition:all .15s;}
.slist li .box .ic{width:17px;height:17px;stroke-width:3;}
.slist li.got .box{background:var(--green);border-color:var(--green);color:#fff;}
.slist li.got span{text-decoration:line-through;color:var(--ink3);}
.slist .foot{display:flex;gap:8px;padding:10px 18px 18px;flex-wrap:wrap;}

/* Settings */
.members{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 12px;margin-bottom:6px;scrollbar-width:none;}
.members::-webkit-scrollbar{display:none;}
.member{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;width:74px;flex-shrink:0;font-family:inherit;}
.member .avatar{width:62px;height:62px;font-size:1.4rem;border:none;}
.member .nm{font-size:.84rem;font-weight:500;text-align:center;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.member .rl{font-size:.74rem;color:var(--ink3);margin-top:-4px;}
.member.add .avatar{background:var(--pri);color:#fff;}
.list-card{padding:6px 18px;}
.row-set{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.row-set:last-child{border-bottom:none;}
.row-set.plain{cursor:default;border:none;padding:4px 0;margin-top:.8rem;}
.rs-text{flex:1;font-size:.98rem;}
.rs-text small{display:block;color:var(--ink3);font-size:.8rem;}
.chev{color:var(--ink3);}
.ok-t{color:#1F7F44 !important;} .bad-t{color:#B9482A !important;}
.switch{position:relative;width:56px;height:32px;flex-shrink:0;}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:1;min-height:0;}
.switch i{position:absolute;inset:0;border-radius:999px;background:#DCD6EE;transition:background .2s;}
.switch i::after{content:'';position:absolute;top:4px;left:4px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.15);transition:left .2s;}
.switch input:checked + i{background:var(--pri);}
.switch input:checked + i::after{left:28px;}
.plan-card{background:linear-gradient(150deg,#C2AEFB,#A58AF5 60%,#8D6FF0);color:#fff;position:relative;overflow:hidden;}
.plan-card::before{content:'';position:absolute;width:200px;height:200px;border-radius:50%;background:rgba(255,255,255,.12);top:-80px;right:-60px;}
.plan-card > *{position:relative;}
.plan-card h3{display:flex;align-items:center;gap:.5rem;}
.plan-card .price{font-size:2.1rem;font-weight:600;}
.plan-card .price small{font-size:.9rem;font-weight:400;opacity:.85;}
.plan-card p{margin:.2rem 0 .6rem;opacity:.92;font-size:.9rem;}
.plan-card .btn{background:#fff;color:var(--pri-d);margin-top:.6rem;}
.feat{list-style:none;padding:0;margin:.4rem 0 0;font-size:.9rem;}
.feat li{display:flex;align-items:center;gap:.5rem;margin-top:.35rem;}
.feat li .ic{width:16px;height:16px;}
.soon{font-size:.7rem;background:rgba(255,255,255,.3);border-radius:999px;padding:.1rem .5rem;margin-left:.2rem;}

/* ───── Bottom pill nav ───── */
.dock{position:fixed;left:0;right:0;bottom:calc(16px + var(--safe-b));z-index:30;display:flex;justify-content:center;pointer-events:none;}
.pill-nav{pointer-events:auto;background:var(--dark);border-radius:999px;padding:8px;display:flex;gap:8px;box-shadow:0 16px 34px rgba(21,19,31,.3);}
.pill-nav button{width:56px;height:56px;border-radius:50%;border:1.5px solid rgba(255,255,255,.16);background:transparent;color:#E4E0F2;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s,transform .12s;}
.pill-nav button .ic{width:22px;height:22px;}
.pill-nav button.on{background:var(--pri);border-color:var(--pri);color:#fff;}
.pill-nav button:active{transform:scale(.92);}

/* ───── Add / edit page ───── */
.page{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column;animation:slideIn .28s cubic-bezier(.2,.9,.3,1) both;}
.page-hdr{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(14px + var(--safe-t)) 18px 6px;max-width:720px;width:100%;margin:0 auto;}
.page-hdr h2{flex:1;margin:0;font-size:1.15rem;font-weight:500;}
.page-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 18px 24px;max-width:720px;width:100%;margin:0 auto;-webkit-overflow-scrolling:touch;}
.page-foot{padding:10px 18px calc(16px + var(--safe-b));max-width:720px;width:100%;margin:0 auto;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chips.scroll-x{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none;}
.chips.scroll-x::-webkit-scrollbar{display:none;}
.chip{border:none;background:var(--card);border-radius:999px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;white-space:nowrap;
  display:inline-flex;align-items:center;gap:.45rem;min-height:44px;transition:background .15s,transform .1s;color:var(--ink);}
.chip:active{transform:scale(.95);}
.chip .ic{width:18px;height:18px;color:var(--d,var(--pri-d));}
.chip.on{background:var(--pri);color:#fff;}
.chip.on .ic{color:#fff;}
.chip .avatar{width:30px;height:30px;font-size:.75rem;border:none;margin-left:-.5rem;}
.chips.ideas{margin-top:10px;}
.chips.ideas .chip{background:var(--pri-s);color:var(--pri-d);min-height:36px;padding:.35rem .85rem;font-size:.84rem;}
.people{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none;align-items:flex-start;}
.people::-webkit-scrollbar{display:none;}
.person{border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:5px;width:66px;flex-shrink:0;font-family:inherit;}
.person .avatar{width:56px;height:56px;font-size:1.2rem;border:3px solid transparent;transition:border-color .15s;}
.person span{font-size:.78rem;color:var(--ink2);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.person.sel .avatar{border-color:var(--pri-d);box-shadow:0 0 0 2px #fff inset;}
.person.sel span{color:var(--ink);font-weight:500;}
.person.add .avatar{background:var(--pri);color:#fff;}
.box-input{position:relative;display:flex;align-items:center;background:var(--card);border-radius:var(--r-sm);min-height:56px;padding:0 14px;gap:10px;}
.box-input input,.box-input select{border:none;background:transparent;padding:.8rem 0;min-height:52px;flex:1;min-width:0;-webkit-appearance:none;appearance:none;box-shadow:none !important;}
.box-input .ic{color:var(--ink2);}
.box-input .chev{pointer-events:none;}
.box-input.grow{flex:1;}
.times{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px;}
.tbox{position:relative;min-width:0;display:flex;align-items:center;gap:8px;background:var(--card);border-radius:var(--r-sm);padding:0 10px 0 14px;min-height:56px;}
.tbox input{border:none;background:transparent;padding:.6rem 0;min-height:50px;min-width:0;flex:1;box-shadow:none !important;}
.tbox .ic{color:var(--ink2);}
.tbox .x{border:none;background:var(--bg);width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink2);}
.tbox .x .ic{width:14px;height:14px;}
.tbox.add{border:2px dashed #CFC4F3;background:transparent;color:var(--pri-d);cursor:pointer;justify-content:center;font-weight:500;font-family:inherit;font-size:.95rem;}
.tbox.add .ic{color:var(--pri-d);}
.repeat-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:1.4rem 0 .4rem;}
.repeat-row b{display:block;font-weight:500;font-size:1rem;}
.repeat-row span:not(.switch){font-size:1rem;color:var(--ink);}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;}
.pill{border:none;border-radius:999px;background:var(--card);color:var(--ink);padding:.7rem 1.2rem;font-size:.95rem;cursor:pointer;min-height:46px;
  display:inline-flex;align-items:center;gap:.4rem;transition:background .15s,transform .1s;font-family:inherit;}
.pill:active{transform:scale(.95);}
.pill.on{background:var(--pri);color:#fff;}
.pills.days .pill{min-width:56px;justify-content:center;}
.add-row{display:flex;gap:10px;align-items:center;}
.add-row input{flex:1;}
.items-edit{list-style:none;margin:10px 0 0;padding:0;}
.items-edit li{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:14px;padding:.6rem .7rem .6rem 1rem;margin-bottom:8px;}
.items-edit li span{flex:1;}
.items-edit li button{border:none;background:var(--bg);width:32px;height:32px;border-radius:50%;cursor:pointer;color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;}
.items-edit li button .ic{width:15px;height:15px;}

/* ───── Bottom sheets ───── */
.sheet-wrap{position:fixed;inset:0;z-index:70;background:rgba(21,19,31,.45);display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease both;}
.sheet{background:var(--card2);width:100%;max-width:560px;max-height:92vh;max-height:92dvh;border-radius:30px 30px 0 0;display:flex;flex-direction:column;
  padding:8px 18px calc(16px + var(--safe-b));animation:slideUp .28s cubic-bezier(.2,.9,.3,1) both;}
@media (min-width:640px){.sheet-wrap{align-items:center;}.sheet{border-radius:30px;}}
.grab{width:44px;height:5px;border-radius:5px;background:#D7D0EC;margin:4px auto 10px;}
.sheet h2{font-size:1.15rem;margin:0 0 4px;font-weight:500;}
.sheet-body{overflow-y:auto;flex:1;padding-bottom:6px;}
.sheet-body .lbl{margin-top:1rem;}
.sheet-body input{background:#fff;border-color:var(--line);}
.sheet-foot{display:flex;gap:8px;padding-top:12px;}
.sheet-foot .btn{flex:1;}
.sheet-foot .btn-ghost{flex:.6;}
.swatches{display:flex;gap:10px;flex-wrap:wrap;}
.swatch{width:42px;height:42px;border-radius:50%;cursor:pointer;border:3px solid #fff;background:var(--c);}
.swatch.sel{box-shadow:0 0 0 2.5px var(--dark);}
.icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:8px;}
.icon-grid button{height:48px;border-radius:14px;border:none;background:#fff;cursor:pointer;color:var(--ink2);display:flex;align-items:center;justify-content:center;}
.icon-grid button.sel{background:var(--pri);color:#fff;}
.menu-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.menu-list button,.menu-list a{display:flex;align-items:center;gap:12px;border:none;background:#fff;border-radius:16px;padding:13px 14px;font-size:1rem;
  cursor:pointer;text-decoration:none;color:var(--ink);font-family:inherit;text-align:left;}
.menu-list button.on{background:var(--pri);color:#fff;}
.menu-list button:disabled{cursor:default;color:var(--ink3);}
.menu-list .danger{color:#C2412D;}
.menu-list .rt{margin-left:auto;font-size:.75rem;background:var(--pri-s);color:var(--pri-d);border-radius:999px;padding:.15rem .6rem;}

/* ───── Modals ───── */
.overlay{position:fixed;inset:0;z-index:80;background:rgba(21,19,31,.5);display:flex;align-items:center;justify-content:center;padding:20px;animation:fade .18s ease both;}
.modal{background:var(--card2);border-radius:30px;max-width:400px;width:100%;padding:26px 22px 20px;box-shadow:var(--sh-lg);text-align:center;
  animation:pop .28s cubic-bezier(.2,1.3,.4,1) both;max-height:92vh;overflow-y:auto;}
.modal h3{margin:.7rem 0 .3rem;font-size:1.35rem;font-weight:500;}
.modal p{color:var(--ink2);font-size:.92rem;margin:0 0 1rem;}
.modal .btn-block{margin-top:.4rem;}
.modal-ic{width:76px;height:76px;border-radius:26px;background:var(--c);color:var(--t);display:inline-flex;align-items:center;justify-content:center;}
.modal-ic .ic{width:36px;height:36px;}
.summary{background:#fff;border-radius:20px;padding:14px;text-align:left;display:flex;gap:12px;align-items:center;margin:0 0 16px;}
.summary strong{display:block;font-size:1rem;font-weight:500;}
.summary span{display:block;font-size:.84rem;color:var(--ink2);}
.upi{display:flex;flex-direction:column;gap:.6rem;margin-top:.6rem;}
.upi input{background:#fff;border-color:var(--line);}
.plan-mini{background:linear-gradient(150deg,#C2AEFB,#A58AF5);color:#fff;border-radius:22px;padding:16px;margin:12px 0 14px;text-align:left;}
.plan-mini .price{font-size:2rem;font-weight:600;}
.plan-mini .price small{font-size:.9rem;opacity:.85;}

/* ───── Alarm (full screen) ───── */
.alarm{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;background:linear-gradient(165deg,#B9A2FA,#8D6FF0 70%);color:#fff;
  padding:calc(16px + var(--safe-t)) 20px calc(18px + var(--safe-b));overflow-y:auto;animation:fade .2s ease both;}
.alarm::before{content:'';position:fixed;width:420px;height:420px;border-radius:50%;background:rgba(255,255,255,.1);top:-160px;right:-160px;pointer-events:none;}
.alarm-top{display:flex;justify-content:space-between;align-items:center;max-width:480px;width:100%;margin:0 auto;}
.alarm-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.22);border-radius:999px;padding:.45rem .9rem;font-size:.85rem;font-weight:500;}
.alarm-tag .ic{animation:wobble 1s ease-in-out infinite;}
.alarm-mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;max-width:480px;width:100%;margin:0 auto;padding:16px 0;}
.ring{width:150px;height:150px;border-radius:50%;background:#fff;color:var(--pri-d);display:flex;align-items:center;justify-content:center;position:relative;}
.ring::before,.ring::after{content:'';position:absolute;inset:0;border-radius:50%;border:3px solid rgba(255,255,255,.7);animation:ripple 1.8s infinite;}
.ring::after{animation-delay:.9s;}
.ring .ic{width:66px;height:66px;stroke-width:1.8;animation:wobble 1s ease-in-out infinite;}
.alarm.muted .ring::before,.alarm.muted .ring::after,.alarm.muted .ring .ic,.alarm.muted .alarm-tag .ic{animation:none;}
.alarm-time{font-size:3.2rem;font-weight:600;margin-top:22px;line-height:1;}
.alarm h2{font-size:1.6rem;margin:.5rem 0;font-weight:500;}
.alarm-who{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.22);border-radius:999px;padding:.3rem .9rem .3rem .3rem;}
.alarm-who .avatar{width:32px;height:32px;font-size:.85rem;border-width:2px;}
.alarm-msg{font-size:1.15rem;line-height:1.5;margin:1rem 0 .2rem;}
.alarm-items{list-style:none;padding:0;margin:.9rem 0 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;}
.alarm-items li{background:#fff;color:var(--ink);border-radius:999px;padding:.45rem 1rem;}
.alarm-notes{font-size:.9rem;opacity:.85;margin:.8rem 0 0;}
.alarm-btns{max-width:480px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:10px;}
.alarm-done{background:var(--dark);color:#fff;min-height:66px;font-size:1.1rem;justify-content:space-between;padding:0 10px 0 26px;}
.alarm-done .tick{width:48px;height:48px;border-radius:50%;background:var(--green);display:inline-flex;align-items:center;justify-content:center;}
.alarm-done .tick .ic{width:24px;height:24px;stroke-width:3;}
.alarm-row{display:flex;gap:10px;}
.alarm-soft{flex:1;background:rgba(255,255,255,.22);color:#fff;min-height:54px;font-size:.95rem;}
.link.light{color:#fff;text-decoration:underline;align-self:center;}

.credit{text-align:center;font-size:.78rem;color:var(--ink3);opacity:.8;padding:22px 16px 6px;letter-spacing:.01em;}
#auth .credit{padding-top:4px;}
.msg{background:#fff;border-radius:16px;padding:12px 14px;text-align:left;}
.msg b{display:block;font-weight:500;}
.msg p{margin:.2rem 0 .3rem;color:var(--ink2);font-size:.92rem;white-space:pre-line;}
.msg small{color:var(--ink3);font-size:.76rem;}
.msg.unread{box-shadow:inset 3px 0 0 var(--pri);}
.empty-msg{text-align:center;color:var(--ink3);}
.empty-msg .ic{width:28px;height:28px;}

.toast{position:fixed;left:50%;bottom:calc(104px + var(--safe-b));transform:translateX(-50%);z-index:120;background:var(--dark);color:#fff;
  padding:.8rem 1.2rem;border-radius:18px;font-size:.92rem;box-shadow:var(--sh-lg);max-width:calc(100% - 32px);text-align:center;
  display:flex;align-items:center;gap:.5rem;animation:pop .22s ease both;}

@keyframes rise{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
@keyframes pop{from{opacity:0;transform:scale(.92) translateY(10px);}to{opacity:1;transform:none;}}
@keyframes slideUp{from{transform:translateY(100%);}to{transform:none;}}
@keyframes slideIn{from{transform:translateY(40px);opacity:0;}to{transform:none;opacity:1;}}
@keyframes float{0%,100%{translate:0 0;}50%{translate:0 -10px;}}
@keyframes wobble{0%,100%{transform:rotate(0);}15%{transform:rotate(12deg);}30%{transform:rotate(-10deg);}45%{transform:rotate(6deg);}60%{transform:rotate(-3deg);}}
@keyframes ripple{from{transform:scale(1);opacity:1;}to{transform:scale(1.6);opacity:0;}}
@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}
