:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang TC","Microsoft JhengHei",sans-serif;color:#182744;background:#f5f8fb;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{margin:0;min-height:100%;}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:inherit}svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.svg-sprites{position:absolute;width:0;height:0;overflow:hidden} :focus-visible{outline:3px solid #51af9a;outline-offset:3px}.app-shell{min-height:100vh;display:grid;grid-template-columns:256px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid #edf0f5;padding:34px 20px 24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.brand-lockup{display:flex;gap:12px;align-items:center;padding:0 14px 42px}.logo-mark{height:43px;width:43px;display:grid;place-items:center;border-radius:15px;background:#172b4d;color:#a2f0d9;font-size:30px;font-weight:600;box-shadow:0 7px 18px #142e4c20}.logo-mark span{transform:rotate(-10deg)}.brand-lockup strong{font-size:19px;letter-spacing:-.8px;display:block;color:#1b2a47}.brand-lockup small{font-size:9px;letter-spacing:1.9px;color:#96a1b2;font-weight:800}.nav-caption{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:#a3adba;font-weight:800;padding:0 15px 14px}.desktop-nav{display:grid;gap:8px}.nav-button{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:13px;color:#728097;font-size:14px;font-weight:650;text-align:left}.nav-button.active{background:#e7f6f1;color:#16876e}.nav-button:hover:not(.active){background:#f4f6f9;color:#1c304f}.nav-button svg{width:20px;height:20px}.sidebar-bottom{margin-top:auto}.sidebar-tip{border-radius:18px;padding:18px 18px 20px;background:#f2f6fb}.sidebar-tip .tip-icon{display:grid;place-items:center;width:34px;height:34px;color:#1f9d81;background:#e0f4ed;border-radius:10px;margin-bottom:15px}.sidebar-tip strong{display:block;font-size:13px;line-height:1.5}.sidebar-tip p{font-size:12px;color:#8190a6;line-height:1.75;margin:7px 0 0}.sidebar-sign{text-align:center;font-size:11px;color:#a8b1be;padding:25px 0 0}.main-column{min-width:0}.topbar{height:86px;padding:0 46px;border-bottom:1px solid #edf0f4;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.topbar-caption{margin-right:auto;color:#9ba8b8;font-size:12px;font-weight:600}.mobile-logo{display:none}.topbar-add,.btn-primary{border:0;color:#fff;background:#183051;border-radius:12px;padding:12px 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:700;font-size:13px;box-shadow:0 5px 15px #1830511c}.topbar-add:hover,.btn-primary:hover{background:#29476d}.topbar-add svg{width:17px;height:17px}.screen{max-width:1180px;margin:auto;padding:43px 45px 75px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.5px;color:#24a98b;text-transform:uppercase}.screen-heading h1{font-size:clamp(25px,3.1vw,34px);letter-spacing:-1.5px;margin:10px 0 10px;font-weight:800}.muted{color:#8492a5;font-size:13px;line-height:1.7}.screen-heading{margin-bottom:31px}.hero{background:#172c4d;border-radius:24px;min-height:240px;display:flex;justify-content:space-between;position:relative;overflow:hidden;color:#fff;box-shadow:0 18px 35px #1528471e;padding:31px 35px}.hero:before{content:"";height:310px;width:310px;border:1px solid #ffffff19;border-radius:100%;position:absolute;right:-39px;top:-73px;box-shadow:0 0 0 42px #ffffff06,0 0 0 95px #ffffff05}.hero-left{position:relative;z-index:1}.hero-eyebrow{font-size:12px;font-weight:650;color:#a9c6dc;letter-spacing:.4px}.hero-number{font-size:clamp(40px,4.8vw,56px);line-height:1.2;font-weight:800;letter-spacing:-2px;margin:19px 0 7px}.hero-number small{font-size:18px;letter-spacing:0;font-weight:600;margin-right:5px;color:#afc6d8}.hero-sub{font-size:13px;color:#b6c5d7;line-height:1.7}.hero-pill{display:inline-flex;align-items:center;gap:7px;border:1px solid #ffffff38;background:#ffffff14;border-radius:99px;font-size:11px;padding:8px 12px;margin-top:24px;color:#e6f2ff}.hero-orb{z-index:1;margin:20px 20px 0 10px;border:1px solid #73dac05e;background:#43a99316;border-radius:50%;height:154px;width:154px;display:grid;place-items:center;position:relative}.hero-orb:after{content:"";position:absolute;inset:15px;border:1px solid #64caaf48;border-radius:50%}.hero-orb svg{height:67px;width:67px;color:#80e1c3;stroke-width:1.1}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:20px 0 33px}.stat-card{background:#fff;border:1px solid #edf1f5;border-radius:18px;padding:23px 22px;box-shadow:0 8px 21px #18305105}.stat-top{display:flex;align-items:center;justify-content:space-between;color:#8997aa;font-size:12px;font-weight:650}.stat-icon{height:35px;width:35px;border-radius:11px;display:grid;place-items:center}.stat-icon svg{height:19px;width:19px}.stat-icon.green{color:#36a78e;background:#e5f8f1}.stat-icon.purple{color:#7c72d5;background:#eeebff}.stat-icon.amber{color:#d8a45c;background:#fff4e4}.stat-value{font-size:26px;font-weight:800;letter-spacing:-.5px;margin:15px 0 4px}.stat-note{font-size:11px;color:#a6afbc}.section-titlebar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 17px}.section-titlebar h2{margin:0;font-size:18px;letter-spacing:-.6px}.text-link{border:0;background:transparent;color:#2ba386;font-weight:750;font-size:12px;display:flex;align-items:center;gap:3px}.text-link svg{width:14px;height:14px}.subscription-list{background:#fff;border:1px solid #edf0f4;box-shadow:0 7px 24px #20304d04;border-radius:20px;overflow:hidden}.subscription-row{display:flex;align-items:center;gap:16px;min-height:98px;padding:16px 22px;border-bottom:1px solid #f1f3f6}.subscription-row:last-child{border-bottom:0}.service-logo{width:52px;height:52px;border-radius:15px;flex:none;overflow:hidden;background:linear-gradient(140deg,#c9f3e7,#e4edf9);display:grid;place-items:center;color:#276c76;font-weight:800;font-size:23px;box-shadow:0 3px 9px #182f4210}.service-logo img{height:100%;width:100%;object-fit:cover;display:block}.service-meta{flex:1;min-width:0}.service-name{font-size:14px;font-weight:800;margin-bottom:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.service-detail{font-size:12px;color:#99a5b5;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.service-price{text-align:right;min-width:108px}.service-price strong{font-size:15px;display:block;white-space:nowrap}.service-price small{font-size:11px;color:#9aa7b8}.due-pill{padding:7px 11px;border-radius:9px;background:#f1f5fa;font-size:11px;font-weight:750;color:#7890a6;white-space:nowrap}.due-pill.soon{background:#e6f7ed;color:#239b72}.due-pill.today{background:#fff3db;color:#c2863b}.row-edit{border:0;background:#f7f9fb;border-radius:10px;width:34px;height:34px;color:#8492a5;display:grid;place-items:center}.row-edit:hover{background:#e5f3ee;color:#258e74}.row-edit svg{width:17px;height:17px}.empty{padding:66px 25px;text-align:center;background:#fff;border-radius:18px;color:#8693a5}.empty-symbol{width:67px;height:67px;border-radius:20px;background:#e9f6f1;display:grid;place-items:center;margin:0 auto 18px;color:#3aa78c}.empty-symbol svg{height:32px;width:32px}.empty h3{color:#1d3150;font-size:17px;margin:0 0 7px}.empty p{line-height:1.7;font-size:13px;margin:0 0 18px}.empty .btn-primary{padding:12px 22px}.utility-bar{display:flex;gap:12px;justify-content:space-between;margin-bottom:17px;align-items:center}.search-wrap{border:1px solid #e7edf4;border-radius:12px;display:flex;align-items:center;gap:10px;max-width:440px;flex:1;background:#fff;padding:0 14px;color:#a2adbd}.search-wrap input{border:0;outline:0;background:transparent;width:100%;height:44px;font-size:13px;color:#172943}.search-wrap svg{width:17px;height:17px}.filter-count{font-size:12px;color:#8998aa}.note-strip{display:flex;align-items:flex-start;gap:12px;background:#eaf5f3;border-radius:14px;color:#477e73;padding:16px 18px;font-size:12px;line-height:1.7;margin-top:24px}.note-strip svg{width:19px;height:19px;color:#37a289}.schedule-date{font-size:11px;font-weight:800;color:#6f8e9c;letter-spacing:1px;padding:20px 6px 9px}.schedule-group{margin:9px 0 18px}.schedule-item{background:#fff;border:1px solid #edf0f4;display:flex;align-items:center;gap:15px;padding:17px;border-radius:14px;margin-bottom:9px}.schedule-dot{width:11px;height:11px;background:#4bbb9b;border:3px solid #d7f5e8;border-radius:99px;box-sizing:content-box}.schedule-item .service-meta{flex:1}.settings-grid{display:grid;grid-template-columns:1fr;gap:19px}.settings-panel{background:#fff;border-radius:18px;border:1px solid #e9eff4;padding:24px 26px}.settings-panel h3{font-size:16px;margin:0 0 7px}.settings-panel p{font-size:12px;color:#8996a9;line-height:1.8;margin:0 0 19px}.settings-actions{display:flex;flex-wrap:wrap;gap:9px}.btn-secondary{border:1px solid #dce5ed;background:#fff;color:#254360;border-radius:10px;padding:11px 16px;font-size:12px;font-weight:750;display:inline-flex;align-items:center;gap:7px}.btn-secondary svg{width:16px;height:16px}.btn-secondary:hover{background:#f0f5f8}.settings-status{display:inline-flex;padding:7px 12px;border-radius:99px;background:#e9f6ef;color:#2a967b;font-size:11px;font-weight:750;margin:4px 0 15px}.settings-status.off{background:#fff2e6;color:#ba8857}.field-inline{display:flex;gap:10px;flex-wrap:wrap}.field-inline input{min-width:220px;flex:1}.install-steps{margin:0;padding-left:22px;color:#63778e;font-size:13px;line-height:2.2}.install-steps strong{color:#284762}.loading{text-align:center;padding:70px 0;font-size:13px;color:#8a98ab}.spinner{display:inline-block;vertical-align:middle;height:20px;width:20px;border:2px solid #d1dbe6;border-top-color:#35b198;border-radius:50%;animation:spin .9s linear infinite;margin-right:9px}@keyframes spin{to{transform:rotate(360deg)}}.bottom-nav{display:none}.mobile-logo{display:none}.overlay{position:fixed;z-index:100;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#101e329c;backdrop-filter:blur(6px)}.modal{width:min(100%,600px);max-height:min(90vh,840px);overflow:auto;background:#fff;border-radius:24px;box-shadow:0 18px 75px #080d215c;padding:27px 30px 29px}.modal-titlebar{display:flex;justify-content:space-between;align-items:start;gap:15px}.modal-titlebar h2{margin:4px 0 7px;font-size:22px;letter-spacing:-.8px}.modal-titlebar p{margin:0;color:#95a2b4;font-size:12px}.icon-button{border:0;border-radius:11px;width:37px;height:37px;display:grid;place-items:center;background:#f2f5f9;color:#76879a}.modal-body{margin-top:23px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 15px}.field{min-width:0}.field.wide{grid-column:1/-1}.field label{display:block;color:#566781;font-size:12px;font-weight:750;margin-bottom:8px}.field input,.field select,.field textarea,.input{width:100%;background:#f9fbfd;border:1px solid #e1e8ef;border-radius:11px;padding:11px 12px;min-height:45px;color:#233855;outline:0;font-size:14px;appearance:auto}.field textarea{resize:vertical;min-height:74px}.field input:focus,.field select:focus,.field textarea:focus,.input:focus{border-color:#46bb9b;box-shadow:0 0 0 3px #46bb9b1c}.hint{font-size:11px;color:#a0acbb;margin-top:6px;line-height:1.5}.icon-selection{display:flex;align-items:center;gap:13px;background:#f6f9fc;padding:12px;border:1px solid #edf1f4;border-radius:12px;margin:13px 0 0}.icon-selection .service-logo{width:45px;height:45px;border-radius:12px}.icon-selection div{min-width:0}.icon-selection strong{font-size:12px;display:block}.icon-selection a,.icon-selection small{font-size:11px;color:#76a4a7;text-decoration:none}.brand-results{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;max-height:210px;overflow-y:auto}.brand-choice{border:1px solid #eaf0f3;border-radius:10px;background:#fff;display:flex;gap:9px;align-items:center;padding:9px;text-align:left;min-width:0}.brand-choice:hover{border-color:#50b79e;background:#f5fbf9}.brand-choice img{width:36px;height:36px;border-radius:10px;object-fit:cover}.brand-choice span{min-width:0}.brand-choice b{font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-choice small{display:block;font-size:10px;color:#a0abba;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid #edf0f3}.footer-buttons{margin-left:auto;display:flex;gap:9px}.btn-danger{border:0;color:#d56363;background:#fff3f3;padding:10px 12px;border-radius:10px;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:750}.btn-danger svg{width:16px;height:16px}.switch-line{display:flex;align-items:center;gap:10px;font-size:12px;color:#586c84;font-weight:700;margin-top:2px}.switch-line input{appearance:auto;accent-color:#37b196;width:17px;height:17px}.toast{position:fixed;z-index:200;left:50%;bottom:34px;transform:translate(-50%,30px);background:#183051;color:white;border-radius:12px;padding:13px 20px;box-shadow:0 15px 36px #1a325943;font-size:13px;font-weight:650;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 30px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.toast.error{background:#b34f56}.minor-line{font-size:11px;color:#93a3b4;margin-top:14px;line-height:1.65}.store-link{font-size:11px;color:#32a085;text-decoration:underline;text-underline-offset:2px}.offline-banner{padding:12px 15px;background:#fff4e3;border-radius:13px;color:#ad7f44;margin-bottom:16px;font-size:12px}.small-divider{height:1px;background:#edf1f4;margin:18px 0}
@media(max-width:1120px){.app-shell{grid-template-columns:215px 1fr}.sidebar{padding:28px 15px}.screen{padding:38px 28px 70px}.topbar{padding:0 28px}.hero-orb{width:130px;height:130px}.stats-grid{gap:11px}.stat-card{padding:19px 16px}}
@media(max-width:780px){.app-shell{display:block}.sidebar{display:none}.topbar{height:72px;padding:env(safe-area-inset-top) 19px 0;min-height:calc(65px + env(safe-area-inset-top))}.mobile-logo{display:flex;align-items:center;gap:9px;font-size:16px;letter-spacing:-.5px}.logo-mark.mini{width:34px;height:34px;border-radius:10px;font-size:23px}.topbar-caption{display:none}.topbar-add{margin-left:auto;padding:10px 12px;font-size:12px;border-radius:10px}.topbar-add svg{height:16px;width:16px}.screen{padding:28px 17px calc(112px + env(safe-area-inset-bottom))}.screen-heading{margin-bottom:24px}.screen-heading h1{font-size:27px}.hero{padding:24px 23px;border-radius:20px;min-height:204px}.hero-number{font-size:41px;margin:15px 0 8px}.hero-orb{width:103px;height:103px;margin:30px 1px 0 8px}.hero-orb svg{width:48px;height:48px}.hero-pill{margin-top:17px}.stats-grid{gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0 31px}.stat-card{padding:15px 12px;border-radius:15px}.stat-top{display:block}.stat-icon{margin:0 0 9px;height:30px;width:30px}.stat-top span{font-size:11px}.stat-value{font-size:22px;margin:12px 0 3px}.stat-note{font-size:10px}.bottom-nav{position:fixed;z-index:50;display:flex;bottom:0;left:0;right:0;justify-content:space-around;background:#ffffffee;border-top:1px solid #e5e9ef;padding:9px 7px calc(7px + env(safe-area-inset-bottom));backdrop-filter:blur(15px);box-shadow:0 -5px 25px #15233c09}.bottom-nav button{background:none;border:0;display:grid;place-items:center;gap:3px;color:#99a5b3;min-width:65px;padding:3px 7px;font-size:10px;font-weight:750}.bottom-nav button svg{width:22px;height:22px}.bottom-nav button.active{color:#1fa486}.subscription-row{gap:11px;padding:14px 13px;min-height:84px}.service-logo{height:44px;width:44px;border-radius:13px}.service-name{font-size:13px}.service-detail{font-size:11px}.service-price{min-width:70px}.service-price strong{font-size:13px}.service-price small{font-size:10px}.due-pill{font-size:10px;padding:6px}.row-edit{width:29px;height:32px}.row-edit svg{height:14px;width:14px}.toast{bottom:calc(86px + env(safe-area-inset-bottom))}.overlay{padding:0;align-items:end}.modal{border-radius:24px 24px 0 0;max-height:calc(95dvh - env(safe-area-inset-top));padding:25px 20px calc(22px + env(safe-area-inset-bottom))}.settings-panel{padding:21px 18px}}
@media(max-width:460px){.hero-orb{display:none}.hero{min-height:200px}.stat-value{font-size:20px}.stat-note{letter-spacing:-.3px}.due-pill{display:none}.brand-results{grid-template-columns:1fr}.form-grid{gap:14px 10px}.modal-titlebar h2{font-size:21px}.filter-count{display:none}}

/* v3 – mobile quick add, free trial, clear expiry status, and a bounded edit form */
[hidden]{display:none!important}
.due-pill.soon,.due-pill.today{background:#ffeded;color:#c72b3d;border:1px solid #ffd5dc}
.due-pill.expired{background:#f2f3f5;color:#8793a2}
.trial-free{color:#238f74}
.plan-type-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:7px}
.plan-type-tabs label{cursor:pointer;position:relative;display:block}
.plan-type-tabs input{position:absolute;opacity:0;pointer-events:none}
.plan-type-tabs span{display:block;text-align:center;padding:13px 8px;background:#f5f8fb;color:#68798e;border-radius:12px;border:1px solid #dce5ee;font-size:13px;font-weight:750}
.plan-type-tabs input:checked + span{background:#eaf8f3;border-color:#39ac91;color:#157e66;box-shadow:inset 0 0 0 1px #39ac91}
.plan-type-tabs input:focus-visible + span{outline:3px solid #39ac9180;outline-offset:2px}
.trial-preview{background:#eaf8f3;border-radius:11px;border:1px solid #d0eddf;color:#237d66;padding:11px 13px;font-size:12px;font-weight:700}
.trial-preview.invalid{background:#fff1f0;border-color:#ffd5dc;color:#b42b42}
.modal{display:flex;flex-direction:column;overflow:hidden;height:min(850px,92dvh);max-height:92dvh}
.modal-titlebar{flex:0 0 auto}
.modal-body{min-height:0;display:flex;flex:1;flex-direction:column;margin-top:12px}
.form-scroll{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:4px 3px 18px;margin:0 -3px}
.form-footer{flex:0 0 auto;margin-top:0;padding-top:13px;flex-wrap:wrap;background:#fff}
.footer-buttons{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:780px){
 .topbar-add{display:none}
 .bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center;justify-items:center;gap:0;padding:9px 7px calc(7px + env(safe-area-inset-bottom))}
 .bottom-nav button{min-width:0;width:100%;padding:4px 1px;justify-self:center}
 .bottom-nav .bottom-add{width:53px;height:53px;display:grid;place-items:center;margin-top:-27px;padding:0;border-radius:50%;border:4px solid #fff;background:#183051;color:#fff;box-shadow:0 5px 18px #18305136}
 .bottom-nav .bottom-add svg{width:26px;height:26px;stroke-width:2.5}
 .overlay{position:fixed;top:var(--modal-offset-top,0px);bottom:auto;left:0;right:0;height:var(--modal-visible-height,100dvh);display:flex;align-items:stretch;padding:0;background:#fff;backdrop-filter:none}
 .modal{border-radius:0;width:100%;height:100%;min-height:0;max-height:100%;padding:calc(14px + env(safe-area-inset-top)) 18px calc(10px + env(safe-area-inset-bottom));box-shadow:none}
 .modal-titlebar h2{font-size:21px}
 .modal-titlebar p{font-size:11px}
 .modal-body{margin-top:10px}
 .modal .form-footer{padding-bottom:2px}
 .footer-buttons{gap:7px}
 .form-footer .btn-primary,.form-footer .btn-secondary,.form-footer .btn-danger{padding:11px 12px;font-size:12px;white-space:nowrap}
 .form-footer .cancel-button{display:none}
}
@media(max-width:460px){
 .subscription-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;row-gap:8px}
 .subscription-row .service-logo{grid-column:1;grid-row:1 / 3}
 .subscription-row .service-meta{grid-column:2;grid-row:1;min-width:0}
 .subscription-row .due-pill{display:inline-flex;grid-column:2;grid-row:2;justify-self:start;font-size:11px;padding:5px 8px}
 .subscription-row .service-price{grid-column:3;grid-row:2;text-align:right;min-width:0}
 .subscription-row .row-edit{grid-column:3;grid-row:1;justify-self:end}
 .form-grid{gap:13px 9px}
 .modal{padding-left:15px;padding-right:15px}
 .field input,.field select,.field textarea{font-size:16px}
}
@media(max-width:460px){.schedule-item .service-name .due-pill{display:inline-flex;vertical-align:middle;margin-left:5px;font-size:10px;padding:4px 6px}}

/* v4: 可複選的提前提醒天數，iPhone 橫向／窄版均不會擠壓按鈕。 */
.reminder-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:10px}
.reminder-choice{display:flex!important;align-items:center;gap:9px;margin:0!important;padding:13px 12px;border-radius:12px;background:#f7fafc;border:1px solid #e4ebef;color:#3f5872!important;cursor:pointer;font-size:13px!important;line-height:1.25}
.reminder-choice:has(input:checked){border-color:#39af96;background:#eaf8f2;color:#137b67!important}
.reminder-choice input[type=checkbox]{appearance:auto!important;width:18px!important;min-height:18px!important;height:18px!important;flex:0 0 18px;accent-color:#209c7d;margin:0!important;padding:0!important;box-shadow:none!important}
.reminder-choice span{flex:1}
.reminder-custom{display:flex;align-items:center;gap:12px;margin:12px 0}.reminder-custom[hidden]{display:none!important}
.reminder-custom label{margin:0!important;white-space:nowrap}.reminder-custom input{max-width:200px}
@media (max-width:360px){.reminder-options{gap:7px}.reminder-choice{padding:11px 9px;gap:6px;font-size:12px!important}}

/* v5: renewal switch in full-screen iPhone subscription editor. */
.renew-toggle{display:flex!important;align-items:center;gap:13px;margin:0!important;padding:14px 13px;border:1px solid #dce8e7;border-radius:13px;background:#f4faf7;cursor:pointer}
.renew-toggle input[type=checkbox]{appearance:auto!important;width:20px!important;height:20px!important;min-height:20px!important;flex:0 0 20px;padding:0!important;margin:0!important;accent-color:#20a385;box-shadow:none!important}
.renew-toggle span{display:grid;gap:5px;min-width:0}
.renew-toggle strong{font-size:14px;color:#25475a}
.renew-toggle small{font-size:12px;font-weight:500;color:#647c8a;line-height:1.45}
.renew-preview{margin-top:10px;padding:9px 12px;background:#f6f9fb;color:#506981;font-size:12px;line-height:1.6;border-radius:9px}

/* Bounded grid tracks and native inputs keep narrow iPhone views within the viewport. */
html,body{width:100%;max-width:100%;overflow-x:clip;-webkit-text-size-adjust:100%}
.screen,.settings-grid,.settings-panel,.form-scroll,.form-grid,.modal-body{min-width:0;max-width:100%}
.form-grid,.brand-results{grid-template-columns:repeat(2,minmax(0,1fr))}
.field input,.field select,.field textarea,.input,.search-wrap input{min-width:0;max-width:100%}
.field-inline input{min-width:0;flex:1 1 180px}
.settings-status,.minor-line,.hint,.settings-panel p,.icon-selection strong,.icon-selection small{max-width:100%;overflow-wrap:anywhere}
.settings-actions>*{max-width:100%;white-space:normal;text-align:left}
.search-wrap,.hero-left,.stat-card,.brand-result,.reminder-custom input{min-width:0}
.stat-value,.hero-number{overflow-wrap:anywhere}
.form-scroll{overflow-x:hidden}
@media(display-mode:standalone){html,body{touch-action:pan-y}}
@media(max-width:780px){
 .field input,.field select,.field textarea,.input,.search-wrap input{font-size:16px}
 input[type=date],input[type=time]{display:block;min-width:0;width:100%;max-width:100%;min-inline-size:0}
 input::-webkit-date-and-time-value{text-align:left;min-width:0}
 .schedule-item{display:grid;grid-template-columns:44px minmax(0,1fr) 29px;gap:8px 10px}
 .schedule-dot{display:none}
 .schedule-item .service-logo{grid-column:1;grid-row:1 / 3}
 .schedule-item .service-meta{grid-column:2;grid-row:1}
 .schedule-item .service-price{grid-column:2;grid-row:2;min-width:0;text-align:left}
 .schedule-item .service-price strong{white-space:normal;overflow-wrap:anywhere}
 .schedule-item .row-edit{grid-column:3;grid-row:1 / 3}
 .schedule-item .service-name{white-space:normal;overflow-wrap:anywhere}
 .subscription-row .service-price{max-width:110px}
 .subscription-row .service-price strong{white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:460px){.brand-results{grid-template-columns:minmax(0,1fr)}}

/* Installed app content behaves like native UI; editable fields retain copy/paste. */
.installed-app body,.installed-app body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.installed-app input,.installed-app textarea,.installed-app [contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
@media(display-mode:standalone){
 body,body *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
 input,textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
}
.time-field{display:grid;grid-template-columns:minmax(0,1fr)}
.time-field input[type=time]{-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%}
.time-field input::-webkit-date-and-time-value{min-width:0;text-align:left}

/* All editor inputs share one full-width track, including price and cycle fields. */
.form-grid,.brand-results{grid-template-columns:minmax(0,1fr)}
.field,.field.wide,.field input,.field select,.field textarea,.input{width:100%;min-width:0;max-width:100%}
.service-account{font-size:12px;font-weight:650;color:#597087;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 4px}
.subscription-row[role=button],.schedule-item[role=button]{cursor:pointer}
.subscription-row[role=button]:hover,.schedule-item[role=button]:hover{background:#f8fcfb}
.subscription-row[role=button]:focus-visible,.schedule-item[role=button]:focus-visible{outline:3px solid #51af9a;outline-offset:-3px}
.app-version{text-align:center;color:#96a2b1;font-size:12px;padding:8px 0 0}
/* Keep iOS date pickers the same width as the other editor fields. */
#subscriptionForm .field input[type=date]{display:block;-webkit-appearance:none;appearance:none;box-sizing:border-box;width:100%;min-width:0;max-width:100%;inline-size:100%;min-inline-size:0;max-inline-size:100%}
#subscriptionForm .field input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:left}
#subscriptionForm .field input[type=date]::-webkit-datetime-edit{min-width:0}

/* Only the requested editor pairs use two columns; all other fields keep their order and full width. */
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-grid .trial-duration{grid-column:1/-1}
.brand-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start}
.brand-search,.brand-icon-col{min-width:0}
.brand-icon-col .field-label{display:block;color:#566781;font-size:12px;font-weight:750;margin-bottom:8px}
.brand-icon-col .icon-selection{margin:0;height:45px;min-height:45px;padding:5px 7px;gap:7px;overflow:hidden}
.brand-icon-col .service-logo{width:32px;height:32px;min-width:32px;border-radius:8px;font-size:17px}
.brand-icon-col .icon-selection strong{font-size:11px;overflow-wrap:anywhere}
.brand-icon-col .icon-selection small{display:none}
.brand-hint{display:block;margin-top:6px}
@media(max-width:780px){
 .subscription-row{grid-template-columns:44px minmax(0,1fr) auto}
 .subscription-row .service-logo{grid-column:1;grid-row:1 / 3}
 .subscription-row .service-meta{grid-column:2;grid-row:1 / 3}
 .subscription-row .due-pill{grid-column:3;grid-row:1;justify-self:end}
 .subscription-row .service-price{grid-column:3;grid-row:2;justify-self:end}
 .schedule-item{grid-template-columns:44px minmax(0,1fr) auto}
 .schedule-item .service-logo{grid-column:1;grid-row:1 / 3}
 .schedule-item .service-meta{grid-column:2;grid-row:1 / 3}
 .schedule-item .service-price{grid-column:3;grid-row:1 / 3;text-align:right}
}

/* Related editor controls are grouped in rounded cards. */
.form-card{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px;min-width:0;padding:16px;border:1px solid #e4edf2;border-radius:16px;background:#f8fbfd}
.form-card[hidden]{display:none}
.form-card h3{grid-column:1/-1;margin:0;color:#34536a;font-size:13px;font-weight:800}
.form-card .field.wide{grid-column:1/-1}
.form-card .trial-duration{grid-column:1/-1}
#subscriptionForm .time-field input[type=time]{width:min(180px,100%);max-width:180px;inline-size:min(180px,100%);max-inline-size:180px}
.form-card .switch-line input[type=checkbox]{width:18px;min-width:18px;max-width:18px;height:18px;min-height:18px;padding:0;flex:0 0 18px}
@media(max-width:460px){.form-card{padding:12px;border-radius:14px}}

/* Read-only subscription details and its explicit edit/delete menu. */
.detail-modal{height:auto;max-height:min(850px,92dvh)}
.detail-titlebar{align-items:center}
.detail-heading{display:flex;align-items:center;gap:13px;min-width:0}
.detail-heading>div:last-child{min-width:0}
.detail-heading h2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;margin-bottom:0}
.detail-title-actions{display:flex;align-items:center;gap:8px;flex:none}
.detail-actions{position:relative}
.detail-menu{position:absolute;z-index:2;top:calc(100% + 7px);right:0;width:132px;padding:6px;background:#fff;border:1px solid #e5ebf0;border-radius:12px;box-shadow:0 14px 34px #18305125}
.detail-menu[hidden]{display:none}
.detail-menu button{display:block;width:100%;border:0;background:transparent;border-radius:8px;padding:11px 12px;text-align:left;font-size:13px;font-weight:750;color:#314760}
.detail-menu button:hover,.detail-menu button:focus-visible{background:#f0f6f5;outline:0}
.detail-menu button[data-action=delete]{color:#bd4f58}
.detail-scroll{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:8px 3px 12px;margin:16px -3px 0}
.detail-note{display:grid;gap:5px;padding:15px 16px;margin-bottom:14px;border-radius:14px;background:#edf8f5;overflow-wrap:anywhere}
.detail-note span,.detail-field dt{font-size:11px;font-weight:700;color:#8899a8}
.detail-note strong{font-size:14px;color:#24495a}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.detail-field{min-width:0;padding:14px 15px;border-radius:13px;border:1px solid #e4edf2;background:#f8fbfd}
.detail-field dt{margin-bottom:7px}
.detail-field dd{margin:0;font-size:14px;font-weight:750;color:#223b50;line-height:1.45;overflow-wrap:anywhere}
@media(max-width:780px){.detail-modal{height:100%;max-height:100%}}
@media(max-width:460px){.detail-heading .service-logo{width:40px;height:40px}.detail-grid{gap:8px}.detail-field{padding:12px}.detail-field dd{font-size:13px}}
