@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap";:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100%}:root{--ink: #183b35;--muted: #71817d;--line: #dde3df;--paper: #f4f5ef;--lime: #dfff72;--white: #fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:DM Sans,Noto Sans JP,sans-serif}button,input,select{font:inherit}button{color:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh;overflow:hidden}.topbar{height:76px;padding:0 max(28px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:#f4f5efe6;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.logo{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:21px;font-weight:800;letter-spacing:-.7px}.logo>span:last-child>span{color:#749a31}.logo-mark{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:var(--lime);transform:rotate(-5deg)}.nav{display:flex;align-items:center;gap:6px}.nav a,.nav button{display:flex;align-items:center;gap:7px;padding:10px 14px;border:0;border-radius:10px;color:#64736f;background:transparent;text-decoration:none;font-size:13px;font-weight:600;cursor:pointer}.nav .active{color:var(--ink);background:#e8ebe3}.top-actions{display:flex;align-items:center;gap:8px}.sync-pill{display:flex;align-items:center;gap:6px;padding:8px 11px;border:1px solid var(--line);border-radius:20px;background:#fff;color:#63726e;font-size:11px;font-weight:700;cursor:pointer}.avatar{width:36px;height:36px;border:0;border-radius:50%;background:var(--lime);display:grid;place-items:center;font-weight:800;cursor:pointer}.menu-button{display:none;border:0;background:transparent}main{width:min(1180px,calc(100% - 44px));margin:auto}.hero{min-height:290px;padding:62px 10px 44px;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.eyebrow,.kicker{margin:0 0 12px;color:#80926e;font-size:10px;font-weight:800;letter-spacing:2.2px}.eyebrow{display:flex;align-items:center;gap:7px}.hero h1{margin:0;font-family:Noto Sans JP,sans-serif;font-size:clamp(34px,4.2vw,56px);line-height:1.24;letter-spacing:-3px}.hero h1 em{color:#668728;font-style:normal;position:relative}.hero h1 em:after{content:"";position:absolute;left:1%;right:0;bottom:-5px;height:9px;background:var(--lime);z-index:-1;transform:rotate(-1deg)}.lead{margin:23px 0 0;color:var(--muted);font-size:14px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;font-weight:700;cursor:pointer}.primary-button{padding:13px 20px;color:#fff;background:var(--ink);border:0;box-shadow:0 8px 18px #173c3525}.primary-button:hover{background:#24534a;transform:translateY(-1px)}.hero-button{margin-bottom:8px;white-space:nowrap}.secondary-button{padding:10px 15px;background:#fff;border:1px solid var(--line)}.notice{width:100%;display:flex;justify-content:space-between;padding:11px 14px;margin-bottom:14px;border:1px solid #e7bd91;border-radius:10px;background:#fff4e7;color:#8a5325;cursor:pointer}.summary-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:15px}.summary-card{min-height:188px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#ffffffa8;position:relative;overflow:hidden}.summary-card.featured{color:#fff;background:var(--ink);border-color:var(--ink)}.summary-icon{width:40px;height:40px;display:grid;place-items:center;margin-bottom:16px;border-radius:11px;background:var(--lime);color:var(--ink)}.summary-icon svg{width:20px}.summary-icon.coral{background:#ffe4dd;color:#dc6d58}.summary-icon.lavender{background:#e9e4f6;color:#7c6cb2}.summary-card p{margin:0 0 4px;color:#73827e;font-size:12px;font-weight:600}.summary-card.featured p,.summary-card.featured>span{color:#b9c8c4}.summary-card>strong{display:block;font-size:clamp(26px,3vw,37px);letter-spacing:-1.8px}.summary-card>strong small{margin-left:6px;font-size:14px;letter-spacing:0}.summary-card>span{display:block;margin-top:7px;color:#87948f;font-size:11px}.mini-wave{position:absolute;right:-20px;bottom:-55px;width:210px;height:120px;border:24px solid #dfff7222;border-radius:50%;transform:rotate(-10deg)}.insight-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:15px;margin-top:15px}.panel{padding:25px;border:1px solid var(--line);border-radius:18px;background:#ffffffb3}.panel-title,.section-heading{display:flex;align-items:center;justify-content:space-between}.kicker{margin-bottom:5px}.panel h2,.section-heading h2,.modal h2{margin:0;font-family:Noto Sans JP,sans-serif;font-size:19px;letter-spacing:-.6px}.month-label{padding:6px 10px;border-radius:8px;background:#eef0ea;color:#71817c;font-size:11px}.breakdown-total{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:22px;margin-top:26px}.donut{width:128px;height:128px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#ff7358 0,#ff7358 48%,#5575e7 48%,#5575e7 81%,#56ad98 81%,#56ad98);position:relative}.donut:after{content:"";position:absolute;width:79px;height:79px;border-radius:50%;background:#fafbf8}.donut span{z-index:1;font-size:24px;font-weight:800;text-align:center}.donut small{display:block;color:var(--muted);font-size:9px;font-weight:600}.category-list{display:grid;gap:13px}.category-row{display:grid;grid-template-columns:8px 86px 1fr 65px;align-items:center;gap:8px;font-size:11px}.dot{width:7px;height:7px;border-radius:50%}.bar{height:5px;overflow:hidden;border-radius:5px;background:#e8ebe6}.bar i{display:block;height:100%;border-radius:inherit}.category-row strong{text-align:right;font-size:11px}.upcoming-list{margin-top:15px;display:grid}.upcoming-list>button{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:10px 0;border:0;border-bottom:1px solid #e7eae6;background:transparent;text-align:left;cursor:pointer}.upcoming-list>button:last-child{border:0}.upcoming-list>button>span{min-width:0}.upcoming-list strong,.service-cell strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.upcoming-list small,.service-cell small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.upcoming-list b{font-size:11px}.brand-icon{width:40px;height:40px;display:grid;place-items:center;border:1px solid #e4e7e2;border-radius:11px;overflow:hidden;font-weight:800}.brand-icon img{width:21px;height:21px;object-fit:contain}.subscriptions-section{padding:58px 0 80px}.section-heading{margin-bottom:22px}.filters{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}.search{width:230px;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#87948f}.search input{width:100%;border:0;outline:0;color:var(--ink);background:transparent;font-size:12px}.filter-tabs{display:flex;gap:3px;overflow-x:auto}.filter-tabs button{padding:8px 11px;white-space:nowrap;border:0;border-radius:8px;background:transparent;color:#7a8884;font-size:10px;font-weight:700;cursor:pointer}.filter-tabs button.active{background:var(--ink);color:#fff}.subscription-list{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#ffffffb8}.list-header,.subscription-row{display:grid;grid-template-columns:2.2fr 1.15fr 1fr 1fr .8fr 70px;align-items:center;gap:14px}.list-header{padding:11px 18px;color:#84918e;background:#eef0ea;font-size:9px;font-weight:800;letter-spacing:.5px}.subscription-row{min-height:74px;padding:11px 18px;border-top:1px solid #e6e9e5;font-size:11px}.service-cell{min-width:0;display:flex;align-items:center;gap:12px}.service-cell>div:last-child{min-width:0}.category-chip{display:flex;align-items:center;gap:7px;color:#65736f}.category-chip i{width:6px;height:6px;border-radius:50%}.cycle{width:fit-content;padding:5px 8px;border-radius:7px;background:#e8f1ee;color:#4a8778;font-size:9px;font-weight:700}.cycle.annual{background:#f0eafa;color:#8065aa}.row-actions{display:flex;justify-content:flex-end;gap:3px}.row-actions button,.modal-header>button{width:31px;height:31px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#82908d;cursor:pointer}.row-actions button:hover{background:#edf0eb;color:var(--ink)}.empty-state{padding:40px;text-align:center;color:var(--muted);font-size:13px}footer{min-height:110px;display:flex;align-items:center;gap:25px;padding:0 max(28px,calc((100vw - 1180px)/2));color:#b7c5c1;background:var(--ink)}footer span{color:#fff;font-size:16px;font-weight:800}footer p{font-size:11px}footer small{margin-left:auto;font-size:9px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:#0e2621a8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal{width:min(520px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:28px;border-radius:20px;background:#fbfcf8;box-shadow:0 28px 80px #10251f55;animation:pop .18s ease-out}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.modal form{display:grid;gap:16px}.modal label{display:grid;gap:7px;color:#52625e;font-size:11px;font-weight:700}.modal input,.modal select{width:100%;height:44px;padding:0 12px;border:1px solid #d8ded9;border-radius:9px;outline:none;background:#fff;color:var(--ink);font-size:13px}.modal input:focus,.modal select:focus{border-color:#779746;box-shadow:0 0 0 3px #dfff7240}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.conversion{display:flex;justify-content:space-between;padding:11px 13px;border-radius:9px;background:#eef2e8;color:var(--muted);font-size:11px}.conversion strong{color:var(--ink)}.optional{color:#98a39f;font-weight:400}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:7px;padding-top:17px;border-top:1px solid var(--line)}.modal-actions>button:first-child{padding:11px 16px;border:0;background:transparent;cursor:pointer}.account-message{padding:16px 8px 8px;text-align:center}.account-message>svg{width:44px;height:44px;padding:10px;border-radius:50%;background:#eaf1e2;color:#6f913d}.account-message h3{margin:14px 0 6px;font-size:16px}.account-message p,.form-intro{margin:0 auto 20px;max-width:370px;color:var(--muted);font-size:12px;line-height:1.8}.danger-button{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border:1px solid #edc9c3;border-radius:9px;background:#fff5f3;color:#b45345;cursor:pointer}.full-button{width:100%}.auth-screen{min-height:100svh;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:clamp(40px,8vw,120px);padding:70px max(30px,calc((100vw - 1060px)/2));position:relative;overflow:hidden}.auth-screen:before{content:"";position:absolute;width:500px;height:500px;left:-180px;bottom:-260px;border:80px solid #dfff7245;border-radius:50%;z-index:-1}.auth-brand .logo{width:fit-content;margin-bottom:80px}.auth-brand h1{margin:0;font-family:Noto Sans JP,sans-serif;font-size:clamp(38px,5vw,62px);line-height:1.3;letter-spacing:-3px}.auth-brand h1 em{color:#668728;font-style:normal}.auth-brand>p:last-child{margin-top:22px;color:var(--muted);font-size:14px}.auth-card{padding:clamp(28px,4vw,45px);border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 25px 70px #173c3514}.auth-card form{display:grid;gap:17px}.auth-card h2{margin:0;font-family:Noto Sans JP,sans-serif;font-size:25px}.auth-card label{display:grid;gap:8px;color:#52625e;font-size:11px;font-weight:700}.auth-card input{width:100%;height:48px;padding:0 13px;border:1px solid #d8ded9;border-radius:10px;outline:none;color:var(--ink);font-size:14px}.auth-card input:focus{border-color:#779746;box-shadow:0 0 0 3px #dfff7240}.auth-card .form-intro{margin:2px 0 8px}.auth-security{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);color:#83908d;font-size:10px}.auth-error{margin:0;color:#ad4d42;font-size:11px;text-align:center}.auth-footer{position:absolute;bottom:24px;left:50%;transform:translate(-50%);color:#99a39f;font-size:9px;letter-spacing:.5px}.auth-loading{grid-column:1 / -1;display:grid;justify-items:center;gap:12px;color:var(--muted);font-size:12px}@media (max-width: 800px){.topbar{height:66px;padding:0 18px}.sync-pill{display:none}.menu-button{display:block}.nav{display:none;position:absolute;top:66px;left:12px;right:12px;padding:10px;flex-direction:column;align-items:stretch;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 30px #15342d20}.nav.open{display:flex}main{width:min(100% - 28px,620px)}.hero{min-height:auto;padding:44px 2px 32px;display:block}.hero h1{letter-spacing:-2px}.hero-button{margin-top:25px}.summary-grid,.insight-grid{grid-template-columns:1fr}.summary-card{min-height:165px}.breakdown-total{grid-template-columns:115px 1fr;gap:10px}.donut{width:105px;height:105px}.donut:after{width:65px;height:65px}.category-row{grid-template-columns:7px 72px 1fr 61px}.subscriptions-section{padding-top:44px}.filters{display:block}.search{width:100%;margin-bottom:10px}.filter-tabs{padding-bottom:5px}.subscription-list{overflow:visible;border:0;background:transparent}.list-header{display:none}.subscription-row{margin-bottom:8px;padding:15px;grid-template-columns:1fr auto;gap:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.subscription-row>*:nth-child(2),.subscription-row>*:nth-child(3){display:none}.subscription-row>*:nth-child(4):before{content:"月額換算  ";color:var(--muted);font-size:9px;font-weight:400}.subscription-row>*:nth-child(5){padding-left:52px;color:var(--muted)}.row-actions{grid-column:2;grid-row:2}footer{padding:25px 20px;flex-wrap:wrap;gap:8px 18px}footer small{width:100%;margin:0}.auth-screen{grid-template-columns:1fr;align-content:center;gap:38px;padding:40px 22px 70px}.auth-brand .logo{margin-bottom:45px}.auth-brand h1{font-size:38px;letter-spacing:-2px}.auth-brand>p:last-child{margin-top:13px}.auth-card{padding:27px 22px}}@media (max-width: 480px){.logo{font-size:18px}.logo-mark{width:34px;height:34px}.hero h1{font-size:34px}.lead{line-height:1.8}.section-heading{align-items:flex-end}.section-heading h2{font-size:17px}.secondary-button{padding:9px 11px;font-size:11px}.panel{padding:20px 17px}.breakdown-total{display:block}.donut{margin:8px auto 25px}.form-grid{grid-template-columns:1fr}.modal{padding:22px 18px}}
