:root{--orange:#ff570e;--orange-bright:#ff9500;--text:#1a1a1a;--text-sub:#6b7280;--placeholder:#9ca3af;--border:#e5e7eb;--bg:#f7f8fa;--card:#ffffff;--radius-card:16px;--radius-field:10px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:游ゴシック,Yu Gothic,YuGothic,Hiragino Kaku Gothic ProN,Noto Sans JP,Hiragino Sans,Meiryo,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}.header{position:-webkit-sticky;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:18px 40px;background:var(--card);border-bottom:1px solid var(--border)}.header>*{flex:none}.header .sub{font-size:14px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.header .sub-strong{font-weight:700;color:var(--text)}.header-nav{display:flex;align-items:center;gap:20px;margin-left:24px}.header-nav a{font-family:Zen Old Mincho Subset,serif;font-weight:900;font-size:15px;letter-spacing:.04em;color:var(--text-sub);text-decoration:none;white-space:nowrap;padding:4px 0;border-bottom:2px solid transparent}.header-nav a:hover{color:var(--text)}.header-nav a.is-current{color:var(--text);border-bottom-color:var(--orange)}.header-spacer{flex:1 1}.user-badge{display:flex;gap:10px}.user-badge,.user-badge-email{align-items:center;min-width:0}.user-badge-email{display:inline-flex;gap:6px;font-size:13px;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-badge-email svg{flex:none;width:15px;height:15px}.user-badge-logout{flex:none;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text-sub);font-family:inherit;font-size:12px;font-weight:600;padding:6px 12px;cursor:pointer}.user-badge-logout:hover{background:var(--bg);color:var(--text)}.client-logo{height:28px;width:auto;display:block}.provider-logo{height:24px;width:auto;display:block}@media (max-width:1100px){.header{padding:18px 24px}.header .sub{display:none}}@media (max-width:760px){.header-nav{margin-left:8px;gap:14px}.header-nav a{font-size:14px}}@media (max-width:520px){.header{padding:14px 20px}.header .sub{display:none}.client-logo{height:22px}.provider-logo{height:20px}.user-badge-email{display:none}}.container{max-width:760px;margin:0 auto;padding:40px 20px 80px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:36px}h1.title{font-size:25px;font-weight:700;margin:0 0 6px}.lead{color:var(--text-sub);font-size:15px;margin:0 0 28px}.field{margin-bottom:20px}.field>label{display:block;font-size:14px;font-weight:600;margin-bottom:8px}.field .helper{font-size:12px;color:var(--text-sub);margin-top:6px}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:var(--radius-field);padding:14px 16px;font-size:15px;font-family:inherit;color:var(--text);background:var(--card)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(255,87,14,.12)}input::placeholder{color:var(--placeholder)}textarea{resize:vertical;min-height:80px;line-height:1.6}textarea::placeholder{color:var(--placeholder)}.time-row{display:flex;gap:16px}.time-row>div{flex:1 1}.time-row .tag{font-size:13px;color:var(--text-sub);margin-bottom:6px}.btn-primary{width:100%;border:none;border-radius:var(--radius-field);background:var(--orange);color:#fff;font-size:16px;font-weight:700;padding:16px;cursor:pointer;font-family:inherit;margin-top:8px}.btn-primary:hover{background:#e94e0a}.btn-primary:disabled{background:#f0a884;cursor:not-allowed}.actions{display:flex;gap:12px;margin-top:24px}.btn-outline{flex:1 1;border:1px solid var(--border);border-radius:var(--radius-field);background:var(--card);color:var(--text-sub);font-size:15px;font-weight:600;padding:14px;cursor:pointer;font-family:inherit}.btn-outline.accent{background:var(--orange);color:#fff;border-color:var(--orange)}.btn-outline:hover{background:#f3f4f6}.btn-outline.accent:hover{background:#e94e0a}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 20px;gap:20px}.spinner{width:56px;height:56px;border:5px solid var(--border);border-top-color:var(--orange);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.loading .msg{font-size:20px;font-weight:700}.loading .msg-sub{font-size:14px;color:var(--text-sub)}.plan{font-size:16px;line-height:1.95;color:#2b2b2b;overflow-wrap:break-word}.plan h2{font-size:18px;font-weight:700;color:#b8430c;margin:44px 0 16px;padding:12px 16px;background:#fff5f0;border-left:5px solid var(--orange);border-radius:0 8px 8px 0;scroll-margin-top:12px}.plan h2:first-child{margin-top:0}.plan h3{font-size:16px;font-weight:700;margin:26px 0 10px;color:#111}.plan p{margin:0 0 16px}.plan ol,.plan ul{margin:0 0 18px;padding-left:24px}.plan li{margin-bottom:10px;line-height:1.85;padding-left:4px}.plan li::marker{color:var(--orange)}.table-wrap{overflow-x:auto;margin:18px 0 22px;border:1px solid var(--border);border-radius:10px}.plan table{width:100%;border-collapse:separate;border-spacing:0;margin:0;font-size:14px;overflow:hidden}.plan td,.plan th{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:10px 12px;text-align:left;vertical-align:top;line-height:1.7}.plan tr td:last-child,.plan tr th:last-child{border-right:none}.plan tr:last-child td{border-bottom:none}.plan th{background:#fff5f0;color:#b8430c;font-weight:700;white-space:nowrap}.plan tbody tr:nth-child(2n) td{background:#fafafa}.plan strong{font-weight:700;color:#111}.plan .phase-card{border:1px solid var(--border);border-radius:12px;margin:18px 0 22px;padding:0 18px 16px;background:#fff;overflow:hidden}.plan .phase-card h3{margin:0 -18px 14px;padding:13px 18px;background:var(--orange);color:#fff;font-size:15px;font-weight:700}.plan .phase-card>:last-child{margin-bottom:0}.plan .phase-card .table-wrap{border:none;border-radius:0;margin:0;overflow-x:visible}.plan .phase-card table{font-size:14.5px}.plan .phase-card thead{display:none}.plan .phase-card td{border-right:none;border-bottom:1px solid var(--border);padding:11px 12px}.plan .phase-card tr:last-child td{border-bottom:none}.plan .phase-card td:first-child{width:8.5em;white-space:nowrap;font-weight:700;color:var(--orange);background:#fff7f3;vertical-align:top}.plan .phase-card tbody tr td{background:#fff}.plan .phase-card tbody tr td:first-child{background:#fff7f3}.books{margin:36px 0 48px}.books-title{font-size:18px;font-weight:700;margin:0 0 14px;padding-left:12px;border-left:4px solid var(--orange)}.book-grid{display:flex;flex-wrap:wrap;gap:16px}.book-card{width:116px;text-decoration:none;color:var(--text);font-size:12px}.book-card img{width:116px;height:164px;object-fit:contain;border:1px solid var(--border);border-radius:6px;background:#fff;display:block}.book-card .ph,.book-card.no-img img{display:none}.book-card.no-img .ph{width:116px;height:164px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed var(--border);border-radius:6px;color:var(--text-sub);font-size:11px;padding:8px;box-sizing:border-box}.book-card .cap{display:block;margin-top:6px;line-height:1.4}.book-card:hover .cap{color:var(--orange)}@font-face{font-family:Zen Old Mincho Subset;font-style:normal;font-weight:900;font-display:block;src:url(/fonts/zen-old-mincho-900-subset.woff2) format("woff2")}.splash{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#fff;padding:20px;opacity:1;transition:opacity .5s ease}.splash.is-leaving{opacity:0}.splash-row{display:flex;align-items:center;justify-content:center;width:100%;max-width:1400px}.splash-word{margin:0;font-family:Zen Old Mincho Subset,serif;font-size:min(36px,3.1vw);font-weight:900;letter-spacing:.06em;white-space:nowrap;flex:none;animation:splash-word .7s ease-out both}.splash-client{width:26%;animation:splash-from-left .7s ease-out both}.splash-client,.splash-provider{height:auto;flex:none;display:block}.splash-provider{width:27%;animation:splash-from-right .7s ease-out both}@keyframes splash-word{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes splash-from-left{0%{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}@keyframes splash-from-right{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@media (max-width:640px){.splash-row{flex-direction:column;gap:22px}.splash-word{font-size:20px}}.auth-shell{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 66px);padding:32px 20px 64px}.auth-card{width:100%;max-width:424px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:40px 32px 32px;box-shadow:0 1px 2px rgba(16,24,40,.04),0 16px 36px -14px rgba(16,24,40,.14);text-align:center}.auth-mark{width:56px;height:56px;margin:0 auto 20px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--orange),var(--orange-bright));color:#fff}.auth-mark svg{width:27px;height:27px;display:block}h1.auth-title{font-size:21px;font-weight:700;margin:0 0 8px;letter-spacing:.01em}.auth-lead{color:var(--text-sub);font-size:14px;line-height:1.75;margin:0 0 26px}.auth-form{text-align:left}.auth-input-wrap{position:relative}.auth-input-wrap svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--placeholder);pointer-events:none}.auth-input-wrap input{padding-left:42px}.auth-email{display:block;font-size:15px;font-weight:700;word-break:break-all;background:#fff5f0;border:1px solid #ffd9c7;padding:13px 16px;margin:0 0 22px}.auth-email,.auth-hint{border-radius:var(--radius-field)}.auth-hint{display:flex;gap:10px;text-align:left;font-size:13px;line-height:1.7;color:var(--text-sub);background:var(--bg);padding:14px 16px;margin:0 0 8px}.auth-hint svg{flex:none;width:16px;height:16px;margin-top:3px}.auth-foot{font-size:12px;text-align:center;margin:16px 0 0}.auth-foot,.btn-text{color:var(--text-sub)}.btn-text{width:100%;border:none;background:none;font-size:14px;font-weight:600;font-family:inherit;padding:12px;margin-top:4px;cursor:pointer;border-radius:var(--radius-field)}.btn-text:hover{background:var(--bg);color:var(--text)}.history{list-style:none;margin:0;padding:0}.history li+li{margin-top:10px}.history-item{display:block;border:1px solid var(--border);border-radius:var(--radius-field);padding:16px 18px;text-decoration:none;color:var(--text)}.history-item:hover{border-color:var(--orange);background:#fffaf7}.history-date{display:block;font-size:12px;color:var(--text-sub)}.history-purpose{display:block;margin-top:4px;font-size:15px;font-weight:700;line-height:1.6;overflow-wrap:anywhere}.history-meta{display:block;margin-top:6px;font-size:12px;color:var(--text-sub)}.history-failed{margin-left:8px;color:#b91c1c}.history-cta{display:inline-block;width:auto;padding:14px 24px;text-decoration:none;text-align:center}.error{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:var(--radius-field);padding:16px;margin-top:16px;font-size:14px}@media print{.actions,.header,.no-print{display:none!important}body,html{background:#fff}.container{max-width:none;padding:0}.card{border:none;padding:0}.plan h2{border-left-color:#000}}