:root{color-scheme:light;--ink:#111e35;--muted:#728097;--line:#e3e8ef;--blue:#182c4d;--teal:#078c76;--bg:#f3f6fa;--shadow:0 22px 65px rgba(22,35,60,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;font-size:15px;line-height:1.6}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(280px,38%) minmax(0,1fr)}.side{background:linear-gradient(155deg,#102540 0%,#0b3244 55%,#11655c 130%);padding:50px clamp(24px,4.6vw,84px) 45px;color:white;min-height:100vh;display:flex;flex-direction:column}.brand{display:flex;gap:13px;align-items:center}.brand-mark{width:40px;height:40px;border:1px solid #aacdc5;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:22px;color:#fff}.brand strong{font-size:20px;letter-spacing:.15em;display:block;line-height:1.2}.brand span{display:block;font-size:9px;letter-spacing:.2em;color:#a9caca}.side-divider{height:1px;background:rgba(255,255,255,.18);margin:60px 0 44px}.side-label,.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:750;color:#88cbbb}.side h1{font-weight:700;letter-spacing:-.04em;line-height:1.45;font-size:clamp(27px,2.75vw,43px);margin:17px 0 12px}.side>p{font-size:14px;color:#c4d8de;max-width:320px;line-height:2}.side-note{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:16px;padding:16px;margin-top:38px;display:flex;align-items:start;gap:12px}.pulse{width:9px;height:9px;border-radius:100%;background:#f1c47f;margin-top:7px;flex:none}.side-note b{display:block;font-size:13px}.side-note small{display:block;color:#bad0d6;font-size:12px;margin-top:3px}.side-foot{font-size:11px;color:#9eb5c2;margin-top:auto;padding-top:60px;line-height:2}.main{padding:46px clamp(20px,5vw,82px) 24px;max-width:1050px;width:100%;margin:0 auto;display:flex;flex-direction:column}.top{display:flex;justify-content:space-between;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:21px}.top .eyebrow{color:#478b81}.top h2{font-size:clamp(18px,2vw,25px);margin:7px 0 0;letter-spacing:-.04em}.lock{font-size:11px;color:#256d60;background:#dceee8;padding:8px 12px;border-radius:30px;white-space:nowrap}.lock span{font-size:8px;margin-right:4px}.notice{font-size:12px;color:#54637a;padding:12px 15px;margin:24px 0 0;background:#e8edf5;border-radius:10px}.notice.error{background:#fff0f0;color:#a43939}.notice.success{background:#e2f5ee;color:#1a7463}.panel{background:#fff;border:1px solid #e2e7ee;border-radius:21px;box-shadow:var(--shadow);padding:30px}.login{max-width:520px;margin:32px auto 0;width:100%}.panel-icon{width:44px;height:44px;background:#e7f4f2;border-radius:13px;display:grid;place-items:center;color:#19876f;font-size:22px}.login h3{font-size:24px;letter-spacing:-.05em;margin:19px 0 7px}.login>p{color:#69788a;font-size:13px;line-height:1.9;margin:0 0 23px}form{display:flex;flex-direction:column;gap:10px}label{font-weight:650;font-size:13px}input{height:50px;border:1px solid #c8d3dd;background:#fbfcfe;border-radius:9px;padding:0 15px;font:inherit;width:100%;color:var(--ink)}input:focus{outline:3px solid #b6e9d9;border-color:#159277}button{background:#087e70;border:0;color:#fff;font:inherit;cursor:pointer;padding:12px 18px;min-height:47px;border-radius:10px;font-weight:650;transition:opacity .15s}button:hover:not(:disabled){opacity:.86}button:disabled{opacity:.45;cursor:not-allowed}button span{float:right}form button{margin-top:7px}.fine{font-size:11px!important;color:#748397!important;line-height:1.8!important;margin-top:15px!important}.hidden{display:none!important}.subtle{background:transparent;color:#587082;margin:0!important}.dash-head{display:flex;justify-content:space-between;align-items:start;gap:15px;margin:35px 0 17px}.dash-head h3{font-size:24px;letter-spacing:-.04em;margin:5px 0 2px}.dash-head p{color:#728097;font-size:13px;margin:0}.ghost{background:white;color:#274256;border:1px solid #cbd5df;font-size:12px;padding:8px 14px;min-height:38px}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:17px}.stat{background:#fff;border:1px solid #e2e7ee;border-radius:15px;padding:17px 18px}.stat>span{display:block;color:#6a798d;font-size:12px}.stat strong{display:block;font-size:25px;margin:6px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat small{font-size:11px;color:#7d8ba0}.referral-card{box-shadow:none;margin-bottom:15px}.panel h4{font-size:18px;margin:5px 0 5px}.panel>p{font-size:13px;color:#6a788a}.link-row{display:flex;gap:10px;margin-top:17px}.link-row code{flex:1;min-width:0;overflow-wrap:anywhere;background:#f0f4f8;border-radius:8px;padding:12px;color:#566982;font:12px/1.8 ui-monospace,Consolas,monospace}.link-row button{font-size:12px;flex:none}.compact{box-shadow:none}.compact h4{margin-top:8px}.main footer{color:#8c9bad;font-size:11px;text-align:center;margin-top:auto;padding-top:35px}@media(max-width:850px){.shell{grid-template-columns:1fr}.side{min-height:auto;padding:22px 25px}.side-divider,.side>h1,.side>p,.side-note,.side-foot,.side-label{display:none}.main{padding:20px 16px 28px}.top{padding-bottom:16px}.lock{font-size:10px;padding:7px}.login{margin:22px auto 0;padding:22px}.summary{gap:8px}.stat{padding:12px}.stat strong{font-size:19px}.stat small{font-size:9px}}@media(max-width:850px){.top{align-items:start;flex-direction:column;}.summary{grid-template-columns:1fr}.link-row{flex-direction:column}.stat{display:grid;grid-template-columns:1fr auto;gap:3px;align-items:center}.stat strong{grid-column:2;grid-row:1 / span 2}.stat small{grid-column:1}.lock{max-width:100%;white-space:normal}}@media(max-width:470px){.top{align-items:start;flex-direction:column;gap:10px}.summary{grid-template-columns:1fr}.stat{display:grid;grid-template-columns:1fr auto;gap:3px;align-items:center}.stat strong{grid-column:2;grid-row:1 / span 2}.stat small{grid-column:1}.link-row{flex-direction:column}.link-row button{align-self:flex-end}}
/* Added secure banking and restricted management forms */
.bank-section,.terms-section{margin-bottom:15px;box-shadow:none}
.bank-section fieldset{border:0;margin:14px 0 0;padding:0}
.bank-section fieldset:disabled{opacity:.58}
.bank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.bank-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px}
.bank-grid .wide{grid-column:1/-1}
.bank-grid input,.bank-grid select{height:43px;border:1px solid #cbd5df;background:#fbfcff;border-radius:8px;padding:8px 10px;color:var(--ink);font:inherit;width:100%}
.bank-section button{margin-top:16px}
.data-table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}
.data-table th{color:#6a788b;background:#f3f6fa;font-weight:650}
.data-table td,.data-table th{padding:11px 12px;border-bottom:1px solid #e3e7ee}
.table-wrap{overflow-x:auto;max-width:100%}
@media(max-width:620px){.bank-grid{grid-template-columns:1fr}.bank-grid .wide{grid-column:auto}.data-table{font-size:11px}}

@media(max-width:620px){.dash-head{flex-direction:column;align-items:stretch}.dash-head h3{font-size:21px}.dash-head .ghost{align-self:flex-end;white-space:nowrap}.data-table{min-width:540px}}

/* Grid intrinsic width must not allow the operator table to expand the mobile viewport. */
.main,.panel,.summary,.table-wrap{min-width:0}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden}
@media(max-width:850px){.shell{grid-template-columns:minmax(0,1fr)}.main{min-width:0}}

/* Mandatory legal consent precedes bank form; opt-in controls are borderless. */
.campaign-section,.terms-section,.bank-section{margin-bottom:15px}
.campaign-section fieldset{border:0;padding:0;margin:13px 0 0;min-width:0}
.campaign-section fieldset:disabled{opacity:.62}
.campaign-section fieldset p{margin:10px 0}
.consent-check{display:flex;align-items:flex-start;gap:10px;margin:12px 0;font-size:13px;line-height:1.7}
.consent-check input[type=checkbox]{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin:4px 0 0}
.campaign-section a{overflow-wrap:anywhere}

/* 規約ビューア（別ウィンドウ表示） */
body.terms-view{margin:0;background:#fff;color:#1b1f24;font:16px/1.85 system-ui,"Hiragino Sans","Yu Gothic",sans-serif}
.tv-bar,.tv-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:#f4f6f8;border-bottom:1px solid #d8dde3}
.tv-bar{position:sticky;top:0;z-index:2}
.tv-foot{border-top:1px solid #d8dde3;border-bottom:0;justify-content:center;margin-top:32px;padding:20px 16px}
.tv-main{max-width:820px;margin:0 auto;padding:16px}
.tv-main h1{font-size:1.4rem;line-height:1.4}
.tv-draft{padding:10px 12px;background:#fff4d6;border:1px solid #e0b84a;border-radius:6px;font-weight:700}
.tv-meta{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;margin:12px 0;font-size:.9rem}
.tv-meta dt{font-weight:700}.tv-meta dd{margin:0;overflow-wrap:anywhere}
.tv-mono{font-family:ui-monospace,Consolas,monospace;font-size:.8rem}
.tv-note{color:#4a5560;font-size:.9rem}
.tv-body{overflow-wrap:anywhere}.tv-body h1,.tv-body h2,.tv-body h3{line-height:1.4}.tv-body p,.tv-body li{max-width:42em}
.tv-error{color:#b00020;font-weight:700}
a.tv-back{white-space:nowrap}
a.tv-back{display:inline-block;background:#087e70;color:#fff;text-decoration:none;padding:10px 18px;min-height:44px;line-height:24px;border-radius:10px;font-weight:650}

.ff-list{display:grid;gap:8px;margin:10px 0}.ff-row{border:1px solid #e3e8ef;border-radius:12px;padding:10px 12px;background:#fbfcfe}.ff-line{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:13px;padding:2px 0}.ff-line small{color:#6a788b;font-size:11px;flex:none}.ff-line span{text-align:right;overflow-wrap:anywhere;min-width:0}.ff-line button{white-space:normal;text-align:left}

/* SUGO紹介キット・メニュー・口座 */
.partner-menu{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px;padding:0}
.partner-menu a{display:inline-block;padding:8px 14px;border:1px solid #cbd5df;border-radius:30px;background:#fff;color:#274256;font-size:12px;text-decoration:none}
.partner-menu a:hover,.partner-menu a:focus{background:#e7f4f2;border-color:#159277}
.kit-card{border:1px solid #e2e7ee;border-radius:14px;padding:14px;margin:10px 0;background:#fbfcfe}
.kit-card h5,.kit-group{margin:0 0 8px;font-size:14px}
.kit-group{margin-top:16px;color:#478b81}
.kit-card textarea{width:100%;min-height:90px;border:1px solid #c8d3dd;border-radius:9px;padding:10px;font:13px/1.8 inherit;color:var(--ink);background:#fff;resize:vertical}
.kit-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.kit-row .fine{margin:0!important}
.kit-preview{max-width:520px;border-radius:12px;overflow:hidden;border:1px solid #e2e7ee}
.kit-banner{display:block;width:100%;height:auto}
.kit-memo{margin-top:18px;padding:14px;border-radius:14px;background:#f0f4f8}
.kit-memo li{font-size:13px;margin:6px 0}
a.ghost{display:inline-block;text-decoration:none;white-space:nowrap}
.bank-state{display:inline-block;padding:3px 12px;border-radius:30px;font-size:12px;font-weight:650;background:#e8edf5;color:#54637a}
.bank-state.pending{background:#fff4d6;color:#8a6410}
.bank-state.verified{background:#e2f5ee;color:#1a7463}
.bank-state.rejected{background:#fff0f0;color:#a43939}
.bank-grid select,.bank-grid input{min-width:0}
.guide-choose{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}
.guide-choose button[aria-pressed="true"]{background:#e7f4f2;border-color:#159277;font-weight:700}
.guide-alert{margin:10px 0;padding:10px 12px;border-left:4px solid #c2410c;background:#fff7ed;border-radius:6px;font-weight:700}
.guide-panel,.guide-video,.guide-withdraw{margin:12px 0}
.guide-player{display:block;width:100%;max-width:520px;border-radius:12px;background:#000}
.kit-image{margin:10px 0}
.kit-photo{display:block;width:100%;max-width:360px;height:auto;border:1px solid #e2e7ee;border-radius:10px;margin-bottom:8px}
.kit-images{margin-top:12px;border-top:1px dashed #cbd5df;padding-top:8px}
.partner-menu a[aria-current=page]{background:#087e70;border-color:#087e70;color:#fff}
.page-toc{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;padding:12px;background:#f0f4f8;border-radius:12px}.page-toc strong{flex-basis:100%;font-size:13px}.back-menu{margin:14px 0 4px;text-align:right}.guide-free{margin:10px 0;padding:10px 12px;border-left:4px solid #078c76;background:#e2f5ee;border-radius:6px;font-weight:700}

/* mainmenu.js 用（ページの安全設定でインラインのstyleが使えない画面向け） */
.main-menu{background:#fff;border:2px solid #7a4b1f;border-radius:10px;padding:10px 12px;margin:12px 0}
.main-menu-title{font-weight:700;margin:0 0 6px}
.main-menu ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.main-menu a{display:block;padding:9px 10px;border-radius:8px;background:#f4ece1;color:#4a2c0f;text-decoration:none;font-size:.95rem;line-height:1.35}
.main-menu a:hover,.main-menu a:focus{background:#e9dac4}
.back-to-menu{text-align:right;margin:10px 0 0;font-size:.9rem}
.back-to-menu a{color:#7a4b1f}
#menu-fab{position:fixed;right:14px;bottom:14px;z-index:50;background:#7a4b1f;color:#fff;padding:10px 14px;border-radius:24px;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.25);font-size:.95rem;display:none}
#menu-fab.show{display:block}
section,.card,.panel{scroll-margin-top:12px}
#main-menu,#partner-menu{scroll-margin-top:12px}
.earn{background:#fff;border:2px solid #078c76;border-radius:16px;padding:16px 18px;margin:0 0 18px}.earn-title{font-size:19px!important;font-weight:750;color:#0b3244!important;margin:0 0 8px!important;line-height:1.5!important}.earn-steps{margin:0 0 10px;padding-left:1.3em;font-size:14px}.earn-steps li{margin:3px 0}.earn-amounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:8px 0}.earn-amounts div{background:#e7f4f2;border-radius:12px;padding:10px;text-align:center}.earn-amounts span{display:block;font-size:12px;color:#4f6273}.earn-amounts b{display:block;font-size:26px;color:#087e70;line-height:1.3}.earn-amounts small{display:block;font-size:11px;color:#6a788a}.earn-note{font-size:12px!important;color:#5b6b7d!important;margin:6px 0 0!important}.earn-join{text-align:center;font-size:14px!important;margin:0 0 16px!important}.earn-join a{color:#087e70;font-weight:700}
