:root {
  --bg: #101316; --panel: #171b1f; --panel-2: #1d2328; --line: #2b3338;
  --text: #f4f3ed; --muted: #8e999f; --lime: #d7f36b; --cyan: #7bdde0;
  --orange: #ff9f68; --red: #ff7272; --shadow: 0 18px 50px rgba(0,0,0,.2);
}
#splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000;overflow:hidden;animation:splash-out .7s ease forwards;animation-delay:2.1s;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box}
.splash-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(215,243,107,.16),transparent 55%);opacity:0;animation:splash-glow-pulse 2s ease forwards}
/* Single shared centering container for both lines (GENCHI + tagline). Centering comes from this
   flex column (align-items:center) plus text-align:center on each line, not from any fixed
   coordinate, manual margin, or per-string offset — so it stays correct regardless of string
   length, viewport size, orientation, or reload. */
.splash-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;width:100%;max-width:100%;padding:0 16px;box-sizing:border-box;text-align:center}
/* --ink-shift-x is computed at runtime (app.js alignSplashText()) from the actual rendered glyph
   ink bounds (CanvasRenderingContext2D.measureText().actualBoundingBoxLeft/Right), not a fixed or
   length-dependent constant, so the visual (ink) center — not just the layout-box center — lands
   on the container's horizontal center regardless of trailing punctuation or letter-spacing. */
.splash-logo{display:flex;justify-content:center;width:100%;font:900 clamp(42px,9vw,88px) 'DM Sans',sans-serif;letter-spacing:2px;color:var(--text);text-align:center;transform:translateX(var(--ink-shift-x,0px))}
.splash-logo span{display:inline-block;opacity:0;transform:translateY(24px) scale(.85);filter:blur(6px);text-shadow:0 0 24px rgba(215,243,107,.55),0 0 60px rgba(215,243,107,.25);animation:splash-letter .6s cubic-bezier(.16,1,.3,1) forwards}
.splash-logo span:nth-child(1){animation-delay:.05s}
.splash-logo span:nth-child(2){animation-delay:.12s}
.splash-logo span:nth-child(3){animation-delay:.19s}
.splash-logo span:nth-child(4){animation-delay:.26s}
.splash-logo span:nth-child(5){animation-delay:.33s}
.splash-logo span:nth-child(6){animation-delay:.4s}
.splash-tagline{width:100%;margin:0;font:700 13px 'Noto Sans JP',sans-serif;letter-spacing:3px;color:var(--muted);opacity:0;transform:translateX(var(--ink-shift-x,0px)) translateY(8px);animation:splash-tagline .6s ease forwards;animation-delay:1s;text-align:center}
/* On narrow portrait screens the full-screen canvas is much taller than the wordmark, so the
   desktop sizing makes the tagline look almost as wide as GENCHI and exaggerates the empty gap
   between the two lines. Keep the same centered composition, but match the banner artwork's
   hierarchy: a larger wordmark with a compact, readable tagline directly beneath it. */
@media (max-width:480px){
  .splash-content{gap:10px;padding:0 12px}
  .splash-logo{font-size:clamp(52px,14.4vw,60px);line-height:1}
  .splash-tagline{font-size:clamp(13px,3.55vw,15px);line-height:1.4;letter-spacing:clamp(2px,.75vw,3px);white-space:nowrap}
}
@keyframes splash-letter{to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes splash-tagline{to{opacity:1;transform:translateX(var(--ink-shift-x,0px)) translateY(0)}}
@keyframes splash-glow-pulse{0%{opacity:0}45%{opacity:1}100%{opacity:.55}}
@keyframes splash-out{to{opacity:0;visibility:hidden}}
@media (prefers-reduced-motion: reduce){
  #splash-screen{animation:splash-out .3s ease forwards;animation-delay:.6s}
  .splash-glow{animation:none;opacity:.5}
  .splash-logo span{animation:none;opacity:1;transform:none;filter:none}
  .splash-tagline{animation:none;opacity:1;transform:translateX(var(--ink-shift-x,0px))}
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: 'Noto Sans JP', sans-serif; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
.app-shell { min-height: 100vh; background: radial-gradient(circle at 80% 0%, #253238 0, transparent 30%), var(--bg); }
.topbar { height: 72px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 max(28px, env(safe-area-inset-right)) 0 max(28px, env(safe-area-inset-left)); position: sticky; top: 0; z-index: 10; background: rgba(16,19,22,.9); backdrop-filter: blur(18px); }
.brand { display:flex; gap:10px; align-items:center; font: 900 16px 'DM Sans', sans-serif; letter-spacing: 2px; }
.brand-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:9px; color:var(--bg); background:var(--lime); font-size:17px; }
/* The "G" keeps its exact glyph, size, weight and position (still plain text, still the same
   font-size as the badge); only its fill switches from flat var(--bg) to a very subtle
   black->charcoal gradient plus a hairline highlight/shadow via text-shadow, for a softer, faintly
   dimensional app-icon feel. The gradient stays within near-black/charcoal stops so the glyph
   still reads unambiguously as solid black against the lime badge (no metallic/glossy look, no
   added blur that would soften the retina-crisp edges). */
/* Round 2 of the "G" texture pass: the badge (30x30, radius 9px, lime background, position, click
   target) and the glyph's own font/shape/basic black are all still untouched — only the glyph's
   own font-size grows a little (17px -> 19.5px, still with clear margin inside the 30px badge) and
   the existing gradient/text-shadow are nudged one notch stronger (a slightly lighter charcoal mid-
   stop, slightly more opaque highlight/shadow), so the difference reads clearly next to the round-1
   version without turning into metallic/glossy/3D. */
.brand-mark-glyph { font-size:19.5px; background-image:linear-gradient(155deg, #050505 0%, #3b4348 50%, #121518 100%); -webkit-background-clip:text; background-clip:text; color:var(--bg); text-shadow:0 0.75px 0 rgba(255,255,255,.26), 0 -0.75px 0.6px rgba(0,0,0,.5); }
@supports not (background-clip: text) { .brand-mark-glyph { background:none; color:var(--bg); text-shadow:none; } }
.top-actions { display:flex; align-items:center; gap:10px; }.icon-button { background:none; border:0; color:var(--text); font-size:27px; position:relative; }.notification-dot { position:absolute; width:6px; height:6px; border-radius:50%; background:var(--orange); right:4px; top:4px; }
/* .avatar is the tap target (>=44x44, per Apple HIG / the button's own clickable box) and stays
   transparent/borderless so it never changes the icon's visible size or position; .avatar-visual
   is the actual 32px circular badge (background/border/radius/overflow unchanged from before),
   centered inside that larger invisible tap area. */
.avatar { background:none; border:0; min-width:44px; min-height:44px; padding:0; display:grid; place-items:center; }
.avatar-visual { border:1px solid #596269; background:#394249; color:#fff; width:32px; height:32px; border-radius:50%; font-weight:700; overflow:hidden; display:grid; place-items:center; }
.avatar-visual img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-fallback-icon{width:100%;height:100%;display:block;fill:#b7c0c5}
.sidebar { position:fixed; top:72px; bottom:0; width:270px; padding:34px 22px; border-right:1px solid var(--line); display:flex; flex-direction:column; z-index:5; overflow-y:auto; }.nav-list { display:grid; gap:5px; }.nav-item { display:flex; align-items:center; gap:13px; padding:12px 12px; border:0; border-radius:10px; background:transparent; color:var(--muted); text-align:left; width:100%; transition:.2s; }.nav-item:not(:disabled):hover,.nav-item.active { background:#273034; color:var(--text); }.nav-item:disabled { cursor:not-allowed; opacity:.7; }.nav-item.active { box-shadow: inset 3px 0 var(--lime); }.nav-icon { width:22px; height:22px; font-size:18px; display:inline-flex; align-items:center; justify-content:center; flex:none; }.nav-icon svg{width:20px;height:20px;display:block}.nav-label { font-size:13px; font-weight:700; }.nav-item-logout { margin-top:10px; border-top:1px solid var(--line); padding-top:16px; border-radius:0; color:var(--red); }.nav-item-logout .nav-icon { color:var(--red); }.nav-item-logout:hover { background:#2a1c1c; color:var(--red); }
.main-content { margin-left:270px; max-width:1030px; padding:44px 44px 90px; }.page-header { display:flex; justify-content:space-between; gap:20px; align-items:end; margin-bottom:28px; }.kicker { color:var(--lime); font:700 11px 'DM Sans'; letter-spacing:1.5px; margin:0 0 9px; }.page-header h1 { margin:0; font-size:clamp(25px,3.2vw,40px); line-height:1.25; letter-spacing:0; }.page-header p { color:var(--muted); margin:10px 0 0; font-size:15px; line-height:1.6; }
/* マイプラン's page-header subtitle only: sized (via vw-based clamp, not a fixed px) so the exact
   Japanese sentence stays on one line at 320-430px phone widths without ever exceeding the
   available page-header width (so it can't force horizontal scroll) and without truncating or
   relying on overflow:hidden. At >=768px there's ample room, so it settles at a normal, non-
   stretched 15px instead of continuing to scale with viewport width. */
.page-header .learn-page-subtitle { white-space:nowrap; overflow-wrap:normal; word-break:keep-all; font-size:clamp(11px, 3.6vw, 15px); letter-spacing:-0.01em; }
@media (min-width:768px){ .page-header .learn-page-subtitle { font-size:15px; letter-spacing:normal; } }.section-title { font-size:18px; margin:32px 0 14px; }.btn { border:0; border-radius:8px; background:var(--lime); color:#172017; font-weight:800; padding:12px 17px; font-size:14px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; }.btn.secondary { background:var(--panel-2); color:var(--text); border:1px solid var(--line); }.btn.small { padding:8px 12px; font-size:12px; min-height:36px; }.filter-row { display:flex; gap:8px; overflow:auto; padding-bottom:3px; }.filter-row-sub { margin-top:8px; }.chip { border:1px solid var(--line); color:var(--muted); background:transparent; border-radius:30px; padding:8px 13px; white-space:nowrap; font-size:11px; }.chip.active,.chip:hover { border-color:var(--lime); color:var(--lime); }
.card { background:var(--panel); border:1px solid var(--line); border-radius:12px; }.composer { padding:17px; display:flex; gap:12px; align-items:center; margin-bottom:16px; }.composer input { flex:1; color:var(--muted); background:transparent; border:0; outline:0; font-size:13px; }.post { padding:20px; margin-bottom:12px; animation: rise .35s ease both; }.post-head,.event-head,.meta-row { display:flex; justify-content:space-between; align-items:center; gap:10px; }.user { display:flex; gap:10px; align-items:center; }.user-avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:900; background:#394d52; color:var(--cyan); overflow:hidden; }.user-avatar img { width:100%; height:100%; object-fit:cover; display:block; }.user strong { display:block; font-size:12px; }.user small,.post small,.event-meta { color:var(--muted); font-size:10px; }.area-tag { color:var(--cyan); font-size:11px; }.post p { color:#d7dcda; font-size:13px; line-height:1.8; margin:17px 0; }.post-image { max-height:420px; border-radius:8px; margin:0 0 14px; overflow:hidden; background:#171b1e; }.post-image img { width:100%; max-height:420px; object-fit:cover; display:block; }.post-actions { border-top:1px solid var(--line); padding-top:13px; display:flex; gap:20px; }.action { background:none; border:0; color:var(--muted); font-size:11px; }.action:hover,.action.liked { color:var(--lime); }
.pulse-search{display:flex;align-items:center;gap:8px;background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:10px 16px;margin:14px 0 4px;transition:border-color .15s}.pulse-search:focus-within{border-color:var(--lime)}.pulse-search-icon{display:flex;color:var(--muted);flex:none}.pulse-search-input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--text);font-size:13px}.pulse-search-input::placeholder{color:var(--muted)}.pulse-search-clear{flex:none;background:none;border:0;color:var(--muted);font-size:13px;line-height:1;padding:4px;border-radius:50%}.pulse-search-clear:hover{color:var(--text)}
.post-feed-load-state{display:grid;justify-items:center;gap:12px;padding:28px 18px;text-align:center}.post-feed-load-state .empty{margin:0}
.x-composer { display:flex; gap:12px; align-items:flex-start; padding:16px 4px; border-bottom:1px solid var(--line); }.x-composer-body { flex:1; min-width:0; }.x-composer-input { width:100%; background:transparent; border:0; outline:0; resize:none; color:var(--text); font-size:15px; line-height:1.5; padding:8px 0; overflow:hidden; min-height:28px; max-height:45vh; }.x-composer-input::placeholder { color:var(--muted); }.x-composer-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--line); padding-top:10px; margin-top:6px; }.x-composer-attach { color:var(--cyan); display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; cursor:pointer; transition:background .15s; }.x-composer-attach:hover { background:#1c3a3b; }.x-composer-submit { border-radius:999px !important; padding:8px 20px !important; }.x-composer-submit:disabled { cursor:not-allowed; }
.x-char-meta { display:flex; align-items:center; gap:8px; margin-left:auto; }.x-char-count { color:var(--orange); font-size:11px; font-weight:700; }.x-char-ring-progress { transition:stroke-dashoffset .15s ease,stroke .15s ease; }
.x-media-preview { position:relative; display:inline-block; margin:6px 0 4px; }.x-media-preview img { max-width:260px; max-height:220px; border-radius:14px; display:block; border:1px solid var(--line); }.x-media-processing{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:12px;color:var(--muted);font-size:13px}.x-media-remove { position:absolute; top:8px; right:8px; width:26px; height:26px; border-radius:50%; background:rgba(0,0,0,.75); color:#fff; border:0; display:grid; place-items:center; font-size:13px; line-height:1; }.x-media-remove:hover { background:rgba(0,0,0,.9); }
.x-compose-topbar { display:flex; align-items:center; justify-content:space-between; padding:6px 4px 16px; }.x-compose-cancel { background:none; border:0; color:var(--text); font-size:13px; padding:8px 4px; }.x-compose-cancel:hover { color:var(--cyan); }.x-compose-topbar-area { color:var(--cyan); font-size:12px; font-weight:700; }
.x-composer-modal { border-bottom:0; align-items:flex-start; }.x-composer-modal .x-composer-input { font-size:17px; min-height:120px; }
.x-post { display:flex; gap:12px; padding:14px 4px; border-bottom:1px solid var(--line); animation: rise .35s ease both; }.x-post-avatar { flex:none; }.x-post-body { flex:1; min-width:0; }.x-post-head { display:flex; align-items:center; gap:6px; min-width:0; }.x-post-head strong { font-size:13px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.x-post-meta { color:var(--muted); font-size:11px; display:flex; align-items:center; gap:4px; flex:none; white-space:nowrap; }.x-post-meta .area-tag { color:var(--cyan); font-size:11px; }.x-post-head .post-menu { margin-left:auto; flex:none; }.x-follow-btn { border:1px solid var(--line); background:transparent; color:var(--text); font-size:11px; font-weight:700; padding:3px 12px; border-radius:999px; flex:none; white-space:nowrap; }.x-follow-btn:hover { border-color:var(--red); color:var(--red); }.x-follow-btn.following { background:var(--text); color:#101316; border-color:var(--text); }.x-follow-btn.following:hover { background:transparent; color:var(--red); border-color:var(--red); }.x-post-text { color:#d7dcda; font-size:13px; line-height:1.7; margin:8px 0 10px; white-space:pre-wrap; overflow-wrap:anywhere; }.x-post-actions { display:flex; gap:8px; margin-top:8px; }
.x-icon-btn { display:inline-flex; align-items:center; gap:6px; background:none; border:0; color:var(--muted); font-size:12px; padding:6px 10px; border-radius:999px; transition:background .15s,color .15s; list-style:none; }.x-icon-btn::-webkit-details-marker { display:none; }.x-action-comment:hover { color:var(--cyan); background:#1c3a3b; }.x-action-like:hover { color:var(--red); background:#3a2222; }.x-action-like.liked { color:var(--red); }.x-action-save:hover,.x-action-save.liked { color:var(--lime); background:#2a3322; }
.post-menu { position:relative; }.post-menu-dropdown { position:absolute; right:0; top:calc(100% + 4px); background:var(--panel-2); border:1px solid var(--line); border-radius:10px; box-shadow:var(--shadow); min-width:140px; overflow:hidden; z-index:8; }.menu-item { display:block; width:100%; text-align:left; background:none; border:0; color:var(--text); font-size:12px; padding:11px 14px; }.menu-item:hover { background:#273034; }
.grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }.event-card { padding:20px; }.event-card[data-view] { color:var(--text); border-color:#3b484b; text-decoration:none; transition:background .2s,border-color .2s,transform .2s; }.event-card[data-view] h3 { color:var(--text); }.event-card[data-view] p { color:#b8c2c2; }.event-card[data-view]::after { content:'↗'; display:block; color:var(--lime); font:700 16px 'DM Sans'; margin-top:12px; transition:transform .2s; }.event-card[data-view]:hover { background:#222b2d; border-color:var(--lime); transform:translateY(-2px); }.event-card[data-view]:hover::after { transform:translateX(4px); }.event-card[data-view]:active { background:#2b382b; transform:translateY(0); }.event-date { color:var(--orange); font:700 12px 'DM Sans'; letter-spacing:1px; }.event-card h3 { font-size:17px; margin:19px 0 8px; }.event-card p { color:var(--muted); font-size:12px; line-height:1.7; min-height:40px; }.event-footer { border-top:1px solid var(--line); padding-top:14px; margin-top:17px; display:flex; justify-content:space-between; align-items:center; }.count { color:var(--lime); font-size:11px; }.form-card { padding:22px; max-width:680px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.field { display:grid; gap:7px; }.field.full { grid-column:1/-1; }.field[hidden] { display:none; }.field label { color:var(--muted); font-size:11px; }.field input,.field textarea,.field select { width:100%; background:#111518; border:1px solid var(--line); border-radius:7px; color:var(--text); padding:11px; outline:2px solid transparent; outline-offset:1px; }.field textarea { min-height:115px; resize:vertical; }.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--cyan); }.field input[readonly] { color:var(--muted); background:#171b1e; cursor:default; }.field input[type="time"] { color-scheme:dark; min-height:44px; font-size:15px; }.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible { outline-color:var(--cyan); }.form-actions { margin-top:16px; display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }.form-error { color:#ffb3b3; background:#2d1a1a; border:1px solid #4a2626; border-radius:7px; padding:10px 12px; font-size:11px; line-height:1.6; margin-top:14px; }.btn:disabled { opacity:.6; cursor:wait; }
.profile-hero { padding:24px; background:linear-gradient(115deg,#1b2a2c,#192021); border-radius:12px; border:1px solid #314247; }.profile-hero h2 { margin:0 0 6px; font-size:22px; }.profile-hero p { color:var(--muted); font-size:12px; }.answer-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin:20px 0; }.answer { padding:15px; border:1px solid var(--line); border-radius:9px; background:var(--panel); text-align:left; color:var(--text); font-size:12px; }.answer.selected { border-color:var(--lime); background:#293322; }.result-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:18px; }.result-item { padding:16px; background:var(--panel); border-radius:9px; border-left:3px solid var(--lime); }.result-item strong { font-size:13px; }.result-item p { color:var(--muted); font-size:11px; line-height:1.6; margin:8px 0 0; }
.step-sync-card{padding:22px;text-align:center}.step-sync-header{display:flex;justify-content:space-between;align-items:center;font-size:13px}.step-sync-status{color:var(--muted);font-size:11px;font-weight:700}.step-sync-status.active{color:var(--lime)}.step-sync-count{font:900 44px 'DM Sans',sans-serif;margin:14px 0 4px}.step-sync-hint{color:var(--muted);font-size:11px;margin:0}
.activity-top { display:grid; grid-template-columns:1.1fr 1fr; gap:14px; }.ring-card { min-height:300px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:26px; }.ring-goal { margin:0; color:var(--muted); font-size:12px; text-align:center; }.ring-goal-done { color:var(--lime); font-weight:700; }.ring { width:190px; height:190px; border-radius:50%; background:conic-gradient(var(--lime) 0 72%, #2a3431 72% 100%); display:grid; place-items:center; position:relative; }.ring::after { content:''; position:absolute; inset:12px; background:var(--panel); border-radius:50%; }.ring-content { position:relative; z-index:1; text-align:center; }.ring-content strong { display:block; font:700 35px 'DM Sans'; }.ring-content span { color:var(--muted); font-size:11px; }.stats-card { padding:22px; display:grid; gap:13px; align-content:center; }.stat-line { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:12px; border-bottom:1px solid var(--line); }.stat-line span { color:var(--muted); font-size:11px; }.stat-line strong { font:600 20px 'DM Sans'; }.bar-chart { padding:23px; display:flex; height:240px; align-items:end; gap:12px; }.bar-column { flex:1; height:100%; display:flex; flex-direction:column; justify-content:end; align-items:center; gap:8px; }.bar { width:100%; max-width:30px; height:2%; background:linear-gradient(var(--cyan),#3d7779); border-radius:5px 5px 2px 2px; transition:height .3s ease; }.bar-column small { color:var(--muted); font-size:10px; }.record-list { padding:0 20px; }.record { display:grid; grid-template-columns:35px 1fr auto; align-items:center; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }.rank { color:var(--lime); font:700 18px 'DM Sans'; }.record strong { font:700 16px 'DM Sans'; }.record small { display:block; color:var(--muted); font-size:10px; margin-top:3px; }.record > span:last-child { color:var(--muted); font-size:11px; }
.bar-h-0{height:0%}.bar-h-5{height:5%}.bar-h-10{height:10%}.bar-h-15{height:15%}.bar-h-20{height:20%}.bar-h-25{height:25%}.bar-h-30{height:30%}.bar-h-35{height:35%}.bar-h-40{height:40%}.bar-h-45{height:45%}.bar-h-50{height:50%}.bar-h-55{height:55%}.bar-h-60{height:60%}.bar-h-65{height:65%}.bar-h-70{height:70%}.bar-h-75{height:75%}.bar-h-80{height:80%}.bar-h-85{height:85%}.bar-h-90{height:90%}.bar-h-95{height:95%}.bar-h-100{height:100%}
.mb-20{margin-bottom:20px}.mt-16{margin-top:16px}.mt-18{margin-top:18px}.mt-20{margin-top:20px}.ml-8{margin-left:8px}.text-left{text-align:left}.title-sm{font-size:15px;margin:14px 0}.auth-switch-note{color:var(--muted);font-size:12px;margin-top:18px}.question-heading{font-size:20px;line-height:1.6;margin:25px 0}.answer-arrow{float:right;color:var(--muted)}.stat-highlight{color:var(--lime)}.section-header-spacing{margin-top:32px;margin-bottom:14px}.section-title-flat{margin:0}.card-pad-20{padding:20px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:0;row-gap:2px;margin-top:20px}.calendar-day-label{color:var(--muted);text-align:center;padding:6px 0}.calendar-cell{height:100px;padding:5px;border-radius:0;border:0;border-bottom:1px solid var(--line);font-size:11px;background:transparent;overflow:hidden}.calendar-cell-steps{display:block;font-size:8px;margin-top:9px}.calendar-cell-steps.has-data{color:var(--lime)}.calendar-cell-steps.no-data{color:var(--muted)}

/* ---- 公開トップ・公開情報 ---- */
.service-intro{max-width:820px;margin:0 0 18px;padding:clamp(16px,2.6vw,22px);border:1px solid #3a4530;border-radius:14px;background:radial-gradient(circle at 90% 10%,rgba(215,243,107,.13),transparent 38%),linear-gradient(135deg,#1a2321,#171b1f 68%)}
.service-intro-eyebrow{margin:0 0 8px;color:var(--lime);font:800 10px 'DM Sans',sans-serif;letter-spacing:1px}.service-intro-concept{margin:0;color:var(--text);font-size:clamp(22px,3.2vw,32px);font-weight:900;line-height:1.42}.service-intro-copy{max-width:720px;margin:10px 0 0;color:#dce2df;font-size:clamp(13px,1.55vw,15px);font-weight:700;line-height:1.75}.service-intro-cycle{display:block;margin:9px 0 0;color:var(--lime);font-size:13px;font-weight:900;letter-spacing:.4px}.service-intro-detail{max-width:730px;margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.65}.service-intro-roadmap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:12px}.service-intro-roadmap span{display:grid;gap:2px;padding:8px 10px;border:1px solid rgba(143,154,154,.25);border-radius:8px;background:rgba(11,16,15,.3);color:#d5dbd8;font-size:10px;line-height:1.4}.service-intro-roadmap strong{color:var(--lime);font:800 9px 'DM Sans',sans-serif;letter-spacing:.5px}.service-intro-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.service-intro-actions .btn{min-height:40px;padding:9px 13px;font-size:11px}.service-intro-status{margin:8px 0 0;color:var(--muted);font-size:10.5px;line-height:1.55}
.service-intro-actions span{align-self:center;color:#c8d0cc;font-size:11px;line-height:1.5}.line-consultation-link{background:#719219;color:#fff;text-decoration:none}.line-consultation-link:hover{background:#87a92c;color:#fff}
.public-info-links{display:flex;flex-wrap:wrap;gap:4px 16px;margin:12px 0 0;padding-top:8px;border-top:1px solid rgba(143,154,154,.2)}
.public-info-links a{display:inline-flex;align-items:center;min-height:44px;color:#bdc7c5;font-size:12px;font-weight:700;text-decoration:underline;text-decoration-color:rgba(189,199,197,.45);text-underline-offset:4px}
.public-info-links a:hover,.public-info-links a[aria-current="page"]{color:var(--lime);text-decoration-color:var(--lime)}
.public-document{max-width:820px;padding:clamp(22px,4vw,34px)}.public-document-date{margin:0 0 24px;color:var(--muted);font-size:12px}.public-document section+section{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}.public-document h2{margin:0 0 10px;font-size:17px}.public-document p{margin:0;color:#d7dcda;font-size:14px;line-height:1.9}.public-document-note{margin-top:26px!important;padding-top:20px;border-top:1px solid var(--line);color:var(--muted)!important;font-size:12px!important}
.operator-information{margin:0}.operator-information>div{display:grid;grid-template-columns:minmax(110px,160px) 1fr;gap:18px;padding:17px 0;border-bottom:1px solid var(--line)}.operator-information>div:first-child{padding-top:0}.operator-information>div:last-child{border-bottom:0;padding-bottom:0}.operator-information dt{color:var(--muted);font-size:12px;font-weight:700}.operator-information dd{margin:0;color:var(--text);font-size:14px;line-height:1.8}.operator-information a{color:var(--lime);text-decoration:underline;text-underline-offset:3px}
.public-contact-summary{max-width:680px;padding:18px 22px;margin-bottom:24px;border-color:#3a4530}.public-contact-summary strong{display:block;color:var(--lime);font-size:14px}.public-contact-summary p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.7}
.line-consultation-card{display:grid;justify-items:start;gap:10px;max-width:680px;margin-bottom:16px;padding:22px;border-color:#52643b;background:linear-gradient(135deg,#1b2419,#171c1d)}.line-consultation-card .eyebrow,.line-consultation-card h2,.line-consultation-card p{margin:0}.line-consultation-card h2{font-size:21px}.line-consultation-card p{max-width:600px;color:#d9dfdc;font-size:13px;line-height:1.75}.line-consultation-card .btn{margin-top:3px}
.program-page{display:grid;gap:14px;max-width:920px}.program-hero{padding:clamp(22px,4vw,34px);border-color:#4e5d37;background:radial-gradient(circle at 90% 10%,rgba(215,243,107,.13),transparent 35%),var(--panel)}.program-eyebrow{margin:0;color:var(--lime);font:800 11px 'DM Sans',sans-serif;letter-spacing:1px}.program-hero h2{max-width:720px;margin:8px 0 12px;font-size:clamp(24px,3.5vw,36px);line-height:1.4}.program-hero p:last-child{max-width:760px;margin:0;color:#d9dfdc;font-size:14px;line-height:1.85}.program-phase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.program-phase{height:100%;padding:20px}.program-phase>span{color:var(--lime);font:800 10px 'DM Sans',sans-serif;letter-spacing:1px}.program-phase h2{margin:8px 0 10px;font-size:17px}.program-phase p{margin:0;color:var(--muted);font-size:12px;line-height:1.75}.program-phase ul{display:grid;gap:6px;margin:15px 0 0;padding-left:19px;color:#d9dfdc;font-size:11px;line-height:1.6}.program-phase li::marker,.program-safety li::marker{color:var(--lime)}.program-channel-strategy,.program-safety,.program-cta{padding:clamp(20px,3vw,28px)}.program-channel-strategy h2,.program-safety h2,.program-cta h2{margin:0 0 11px;font-size:19px}.program-channel-strategy>p,.program-cta>p{margin:0;color:#d9dfdc;font-size:13px;line-height:1.85}.program-channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.program-channel-grid>div{display:grid;gap:5px;padding:15px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.program-channel-grid strong{color:var(--lime);font-size:13px}.program-channel-grid span{color:var(--muted);font-size:11px;line-height:1.65}.program-safety{border-left:3px solid var(--lime)}.program-safety ul{display:grid;gap:8px;margin:0;padding-left:21px;color:#d9dfdc;font-size:12px;line-height:1.75}.program-cta small{display:block;margin-top:13px;color:var(--muted);font-size:10px;line-height:1.6}.program-page+.public-info-links{max-width:920px}
@media (max-width:720px){.program-phase-grid,.program-channel-grid{grid-template-columns:1fr}.program-phase{height:auto}.program-hero h2{font-size:24px}.program-cta .btn{width:100%}}
@media (max-width:560px){.service-intro{padding:14px;margin-bottom:14px}.service-intro-concept{font-size:18px}.service-intro-copy{margin-top:7px;font-size:12px;line-height:1.65}.service-intro-detail{margin-top:5px;font-size:10px;line-height:1.6}.service-intro-roadmap{gap:5px;margin-top:10px}.service-intro-roadmap span{padding:7px 6px;font-size:9px}.service-intro-actions{display:grid;grid-template-columns:1fr;margin-top:10px}.service-intro-actions .btn,.line-consultation-card .btn{width:100%}.service-intro-status{margin-top:6px;font-size:10px;line-height:1.5}.service-intro .public-info-links{flex-wrap:nowrap;justify-content:space-between;gap:6px;margin-top:8px;padding-top:6px}.service-intro .public-info-links a{min-width:0;font-size:10px;white-space:nowrap}.operator-information>div{grid-template-columns:1fr;gap:6px}.public-document{padding:20px 18px}}
@media (max-width:560px){.service-intro{padding:16px;margin-bottom:14px}.service-intro-eyebrow{font-size:9px}.service-intro-concept{font-size:22px}.service-intro-copy{margin-top:8px;font-size:12px;line-height:1.7}.service-intro-cycle{font-size:11px}.service-intro-detail{margin-top:5px;font-size:10px;line-height:1.6}.service-intro-roadmap{gap:5px;margin-top:10px}.service-intro-roadmap span{padding:7px 6px;font-size:9px}.service-intro-actions{display:grid;grid-template-columns:1fr;margin-top:10px}.service-intro-actions .btn,.line-consultation-card .btn{width:100%}.service-intro-status{margin-top:8px;font-size:10px;line-height:1.55}.service-intro .public-info-links{flex-wrap:nowrap;justify-content:space-between;gap:6px;margin-top:8px;padding-top:6px}.service-intro .public-info-links a{min-width:0;font-size:10px;white-space:nowrap}.operator-information>div{grid-template-columns:1fr;gap:6px}.public-document{padding:20px 18px}}
.calendar-cell-day{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:700;margin-bottom:3px}
.calendar-cell-event{display:block;font-size:10px;line-height:1.7;margin-top:2px;padding:2px 6px;border-radius:3px;background:#2b3a22;color:var(--lime);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.calendar-cell-event-more{background:transparent;color:var(--muted);padding:1px 0}
.calendar-cell-activity{font-size:8px;color:var(--cyan);white-space:nowrap}
button.calendar-cell{appearance:none;-webkit-appearance:none;color:var(--text);text-align:left;width:100%;transition:background .15s}button.calendar-cell:hover{background:#1c2226}.calendar-cell.today .calendar-cell-day{color:var(--cyan)}.calendar-cell.selected{background:#1c2226;box-shadow:inset 0 0 0 1px var(--lime)}.calendar-cell-empty{border:0;background:transparent}
button.calendar-cell.calendar-cell-red{color:var(--red)}button.calendar-cell.calendar-cell-blue{color:var(--cyan)}small.calendar-day-label.calendar-cell-red{color:var(--red)}small.calendar-day-label.calendar-cell-blue{color:var(--cyan)}
button.calendar-cell{touch-action:manipulation}
@media (max-width:720px){.calendar-month-card{padding:14px}.calendar-month-card .meta-row{gap:8px}.calendar-month-card .meta-row .btn{min-height:40px;padding:8px 10px}.calendar-grid{margin-top:12px}.calendar-cell{height:76px;padding:4px 3px}.calendar-cell-day{font-size:11px}.calendar-cell-event{font-size:9px;line-height:1.45;padding:2px 3px}}
.page-header-slim{display:flex;justify-content:flex-end;margin-bottom:18px}
/* Restores a 投稿 entry point at the top of 速報 (round 18 removed a duplicate "＋投稿する" button
   here in favor of the always-visible inline composer further down, but that composer only appears
   once a concrete leaf area is already selected -- leaving no way to reach the composer at all while
   browsing "全て" or a broad region). "エリア選択" and 投稿 share one flex row (never fixed/absolute
   coordinates) so they stay on one line at any width down to 320px; the button opens the existing
   #pulse-form composer (renderPulseCompose()), not a second posting surface. */
.pulse-area-heading-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
.pulse-area-heading{font-size:18px;font-weight:800;margin:0;text-align:left}
.pulse-post-btn{flex:none;padding:10px 16px}
.pulse-compose-area-hint{color:var(--muted);font-size:12px;line-height:1.6;margin:0 0 12px}
/* Scoped to 速報's own area picker only (not the shared .chip class used elsewhere, e.g. マイプラン's
   category chips or 合流's area chips) so this round's 44px minimum tap-target requirement doesn't
   change layout on screens outside today's scope. Rows keep the existing .filter-row behavior
   (a single line that scrolls horizontally *within its own row* via overflow:auto) rather than
   wrapping, so this never causes page-level horizontal scroll at any width, same as the other chip
   rows already on this screen and elsewhere in the app. */
.pulse-area-picker .chip{min-height:44px;display:inline-flex;align-items:center;justify-content:center;touch-action:manipulation}
.schedule-list{display:grid;gap:10px;margin-bottom:4px}
.admin-main{margin-left:0;max-width:900px;margin-inline:auto}
.loading-state{color:var(--muted);padding:40px 20px;text-align:center;font-size:12px}
.whoo-page{background:linear-gradient(160deg,#ffd9ec 0%,#d9c3ff 45%,#c3d9ff 100%);border-radius:20px;padding:20px}.whoo-notice{background:rgba(255,255,255,.6);border-radius:14px;padding:12px 16px;font-size:12px;color:#4a3a5c;line-height:1.6;margin-bottom:16px}.whoo-grid{display:grid;gap:14px}
.join-form-area{margin:0;padding:11px;background:#111518;border:1px solid var(--line);border-radius:7px;color:var(--text);font-size:14px}
.whoo-card{background:#fff;border-radius:20px;padding:16px;box-shadow:0 6px 20px rgba(120,80,160,.18)}.whoo-card-top{display:flex;align-items:center;gap:12px}.whoo-avatar-wrap{width:58px;height:58px;border-radius:50%;padding:3px;background:linear-gradient(135deg,#ff9fd6,#b18aff,#8ecbff);flex:none;position:relative}.whoo-avatar{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:18px;color:#fff;background:linear-gradient(135deg,#ff8fc7,#a98bff);border:2px solid #fff;overflow:hidden}.whoo-avatar img{width:100%;height:100%;object-fit:cover;display:block}.whoo-avatar .avatar-fallback-icon{fill:#fff}.whoo-mood-badge{position:absolute;bottom:-2px;right:-2px;width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:14px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.whoo-card-head{flex:1;min-width:0;display:flex;flex-direction:column}.whoo-card-head strong{color:#3a2a4a;font-size:14px}.whoo-time{color:#8a7a9c;font-size:11px}.whoo-area{color:#b06bd6;font-weight:700}
.whoo-follow-btn{border:0;background:linear-gradient(135deg,#ff9fd6,#b18aff);color:#fff;font-size:11px;font-weight:700;padding:7px 14px;border-radius:999px;flex:none}.whoo-follow-btn.following{background:#eee0ff;color:#8a5cc9}
.whoo-location{margin-top:12px;padding:10px 14px;border-radius:12px;font-size:12px}.whoo-location-visible{background:#fff0f7;color:#c0508a;font-weight:700}.whoo-location-locked{background:#f2f0f8;color:#8a7a9c}
.whoo-comment{color:#6a5a7c;font-size:12px;line-height:1.7;margin:10px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.whoo-card .action{color:#c0508a}.whoo-card .action:hover{color:#ff4fa3}
.whoo-mood-picker{display:flex;gap:8px}.whoo-mood-option{width:42px;height:42px;border-radius:50%;border:2px solid var(--line);background:var(--panel-2);font-size:18px;display:grid;place-items:center}.whoo-mood-option.selected{border-color:#b18aff;background:linear-gradient(135deg,#ff9fd6,#b18aff)}
.whoo-location-toggle{display:flex;align-items:flex-start;gap:10px;color:var(--muted);font-size:12px;line-height:1.6;cursor:pointer}.whoo-location-toggle input{margin-top:3px;flex:none;width:auto}.whoo-location-toggle-text{flex:1;min-width:0}
.whoo-live{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:10px;padding:8px 12px;border-radius:10px;background:#e8fbe9;color:#2a8a3a;font-size:11px;font-weight:700}.whoo-live-dot{width:8px;height:8px;border-radius:50%;background:#3ecb52;box-shadow:0 0 0 3px rgba(62,203,82,.25);animation:whoo-pulse 1.6s ease-in-out infinite}.whoo-live-stop{margin-left:auto;border:0;background:none;color:#2a8a3a;text-decoration:underline;font-size:11px;font-weight:700}
.whoo-map{height:180px;border-radius:12px;margin-top:10px;overflow:hidden;background:#1b2023;border:1px solid var(--line)}
.notice-warn{border-left-color:var(--red);background:#2d2020;color:#f0b8b8}
.legal-supervision-line{margin:-4px 0 16px;padding:8px 14px;border-radius:8px;background:#1c2418;color:var(--lime);font-size:13px;font-weight:700;display:inline-block}
.face-guide-privacy-list{margin:16px 0;padding-left:20px;color:var(--muted);font-size:12px;line-height:1.9}
.face-guide-consent{display:flex;align-items:flex-start;gap:10px;font-size:12px;color:var(--text);cursor:pointer;margin-top:6px}.face-guide-consent input{margin-top:3px;flex:none}
.face-guide-option-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.face-guide-upload-label{cursor:pointer;display:inline-flex;align-items:center}
.face-guide-video-wrap{position:relative;margin-top:16px;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:4/3;max-width:480px}
.face-guide-video-wrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.face-guide-camera-actions{display:flex;gap:10px}
.face-guide-shape-badge{display:inline-block;margin-top:14px;padding:8px 16px;border-radius:999px;background:#242a1c;border:1px solid #3a4530;color:var(--lime);font-weight:900;font-size:14px}
.face-guide-suggestions{display:grid;gap:10px}
.face-guide-suggestion{padding:12px 14px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line)}.face-guide-suggestion strong{display:block;font-size:11px;color:var(--cyan);margin-bottom:4px}.face-guide-suggestion p{margin:0;font-size:12px;line-height:1.7;color:#d7dcda}
.face-guide-result-actions,.face-guide-error-actions{display:flex;gap:10px;flex-wrap:wrap}
/* フェイススタイル分析レポート: レポート・カルテ風の白基調カード。アプリ全体は黒基調だが、
   このレポート本体だけは「保存した画像でも文字が潰れない」ことを優先し白地・濃色文字にする。 */
.face-guide-result{background:#ffffff;color:#171b1f;border:1px solid #e7e9e2;border-radius:16px;padding:24px 20px}
.face-guide-result .section-title{color:#171b1f}
.face-guide-report-header{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.face-guide-report-thumb{width:88px;height:88px;border-radius:50%;object-fit:cover;border:3px solid var(--lime);flex:none}
.face-guide-report-meta{min-width:0}
.face-guide-report-line{margin:2px 0;font-size:12px;color:#5a6268}
.face-guide-score-block{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:18px;padding:16px;border-radius:12px;background:#f7f9ee;border:1px solid #e7e9e2}
.face-guide-score-ring{display:flex;flex-direction:column;gap:6px;flex:none}
.face-guide-score-caption{font-size:11px;font-weight:800;color:#5a6268;letter-spacing:.02em}
.face-guide-score-ring div{display:flex;align-items:baseline;gap:4px}
.face-guide-score-ring strong{font-size:44px;font-weight:900;color:#171b1f;line-height:1}
.face-guide-score-ring>div>span{font-size:13px;color:#5a6268}
.face-guide-score-comment{min-width:0;font-size:13px;color:#33393e;line-height:1.7}
.face-guide-result .face-guide-shape-badge{background:#eef7c9;border-color:#c9e05a;color:#5b6b12;margin-top:0}
.face-guide-pattern-code{margin:12px 0 2px;font-size:13px;font-weight:800;color:#4a5258}
.face-guide-pattern-note{margin:0;font-size:11px;line-height:1.6;color:#7a828a}
.face-guide-traits{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.face-guide-traits span{display:flex;gap:5px;align-items:center;padding:7px 9px;border-radius:999px;background:#f7f9ee;border:1px solid #e2e5df;font-size:11px;color:#4a5258}.face-guide-traits strong{color:#171b1f}
.face-guide-section-heading{font-size:15px;font-weight:800;color:#171b1f;margin:0 0 10px}
.face-guide-radar{width:100%;max-width:280px;display:block;margin:0 auto}
.face-guide-radar-ring{fill:none;stroke:#e2e5df;stroke-width:1}
.face-guide-radar-data{fill:rgba(199,224,90,.35);stroke:#8fa32a;stroke-width:2}
.face-guide-radar-label{font-size:9px;fill:#5a6268}
.face-guide-parts-list{display:grid;gap:14px;margin-top:14px}
.face-guide-part-row{padding:12px 14px;border-radius:10px;background:#f7f9ee;border:1px solid #e7e9e2}
.face-guide-part-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:13px;color:#171b1f}
.face-guide-part-score{color:#5b6b12;font-weight:900}
.face-guide-part-pending{color:#8a6d1a;font-weight:800;font-size:12px}
.face-guide-part-bar{display:flex;gap:4px;margin:8px 0}
.face-guide-part-bar-seg{flex:1;height:8px;border-radius:4px;background:#e2e5df}
.face-guide-part-bar-seg.filled{background:#c9e05a}
.face-guide-part-note{margin:0;font-size:12px;color:#4a5258;line-height:1.6}
.face-guide-top3-list{margin:0;padding-left:0;list-style:none;display:grid;gap:8px}
.face-guide-top3-list li{padding:10px 12px;border-radius:8px;background:#f7f9ee;border:1px solid #e7e9e2;font-size:13px;color:#33393e;line-height:1.6}
.face-guide-top3-list li strong{display:block;color:#171b1f;font-size:12px;margin-bottom:2px}
.face-guide-advice-list{margin:0;padding-left:0;list-style:none;display:grid;gap:8px}
.face-guide-advice-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:8px;background:#f7f9ee;border:1px solid #e7e9e2;font-size:13px;color:#33393e;line-height:1.6}
.face-guide-advice-priority{flex:none;width:22px;height:22px;border-radius:50%;background:var(--lime);color:#101316;font-weight:900;font-size:12px;display:grid;place-items:center}
.face-guide-result .notice{background:#fff6e9;border-left-color:#e0a83b;color:#5a4212}
.face-guide-limits{font-size:11px;color:#7a828a;line-height:1.7;margin-top:10px}
.face-guide-result-actions-row{display:flex;gap:10px;flex-wrap:wrap}
@media print {
  body.face-guide-print-mode > *:not(.app-shell){display:none}
  body.face-guide-print-mode .topbar,body.face-guide-print-mode .sidebar,body.face-guide-print-mode .bottom-nav,body.face-guide-print-mode .nav-drawer{display:none!important}
  body.face-guide-print-mode .main-content{margin:0;padding:0}
  body.face-guide-print-mode .face-guide-result-actions-row,body.face-guide-print-mode .face-guide-result-actions{display:none!important}
  body.face-guide-print-mode .face-guide-result{border:0}
}
@keyframes whoo-pulse{0%,100%{opacity:1}50%{opacity:.4}}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}
#main-content:focus-visible{outline:none}
.empty { color:var(--muted); padding:25px; text-align:center; font-size:15px; line-height:1.6; }.notice { padding:14px 16px; border-left:3px solid var(--orange); background:#2d2520; color:#e5c0a8; font-size:14px; line-height:1.6; border-radius:5px; }.community-price { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px 12px; margin-top:14px; padding:12px 15px; border-radius:8px; background:#242a1c; border:1px solid #3a4530; }.community-price span { color:var(--lime); font-size:12px; font-weight:700; }.community-price .btn { white-space:nowrap; }.toast { position:fixed; bottom:28px; left:50%; transform:translate(-50%,20px); opacity:0; pointer-events:none; background:var(--lime); color:#142014; padding:11px 17px; border-radius:8px; font-size:12px; font-weight:700; z-index:20; transition:.25s; }.toast.show { opacity:1; transform:translate(-50%,0); }
.bottom-nav { display:none; } @keyframes rise { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.nav-drawer{position:fixed;inset:0;z-index:30}
.nav-drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.nav-drawer-panel{position:absolute;top:0;left:0;bottom:0;width:82%;max-width:320px;background:var(--panel);border-right:1px solid var(--line);padding:26px 20px;overflow-y:auto;animation:nav-drawer-slide-in .22s ease}
@keyframes nav-drawer-slide-in{from{transform:translateX(-100%)}to{transform:translateX(0)}}
.nav-drawer-header{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:12px}
.nav-drawer-avatar{width:56px;height:56px;border-radius:50%;overflow:hidden;border:0;padding:0;background:#394249;color:#fff;display:grid;place-items:center;font-size:22px;font-weight:900;margin-bottom:8px;cursor:pointer}
.nav-drawer-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.nav-drawer-name{font-size:16px}
.nav-drawer-handle{color:var(--muted);font-size:12px}
.nav-drawer-stats{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--muted)}
.nav-drawer-stat-btn{appearance:none;-webkit-appearance:none;background:none;border:0;padding:4px 0;margin:-4px 0;font:inherit;color:var(--muted);cursor:pointer}
.following-list-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border:0;border-bottom:1px solid var(--line);background:none;color:var(--text);text-align:left;font-size:14px;font-weight:700;cursor:pointer}.following-list-item:last-child{border-bottom:0}.following-list-item:hover{background:#1c2226}
.nav-drawer-stats strong{color:var(--text)}
.nav-drawer-guest{color:var(--muted);font-size:12px;margin:0 0 12px;line-height:1.7}
.nav-drawer-list{display:grid;gap:2px}
.nav-drawer-item{display:flex;align-items:center;gap:16px;padding:13px 8px;border:0;background:none;color:var(--text);border-radius:8px;font-size:15px;font-weight:700;text-align:left;width:100%}
.nav-drawer-item:not(:disabled):hover{background:#1c2226}
.nav-drawer-item:disabled{cursor:not-allowed;opacity:.7}
.nav-drawer-icon{width:22px;height:22px;font-size:18px;color:var(--muted);flex:none;display:inline-flex;align-items:center;justify-content:center}.nav-drawer-icon svg{width:20px;height:20px;display:block}
.nav-drawer-logout{margin-top:10px;border-top:1px solid var(--line);padding-top:16px;color:var(--red)}
.nav-drawer-logout .nav-drawer-icon{color:var(--red)}
.avatar-upload{display:flex;flex-direction:column;align-items:center;gap:6px}
.avatar-upload-preview{position:relative;width:84px;height:84px}
.avatar-upload-preview img,.avatar-upload-fallback{width:84px;height:84px;border-radius:50%;object-fit:cover;display:grid;place-items:center}
.avatar-upload-fallback{background:#394d52;color:var(--cyan);font-size:30px;font-weight:900}
.avatar-upload-edit{position:absolute;right:-2px;bottom:-2px;width:28px;height:28px;border-radius:50%;background:var(--lime);color:#172017;display:grid;place-items:center;cursor:pointer;border:2px solid var(--panel)}
.avatar-upload-edit svg{width:14px;height:14px}
.avatar-upload-remove{background:none;border:0;color:var(--muted);font-size:11px;text-decoration:underline;padding:2px;cursor:pointer}
.public-profile-avatar{width:72px;height:72px}.public-profile-avatar img,.public-profile-avatar .avatar-upload-fallback{width:72px;height:72px;font-size:26px}
.advisor-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:#242a1c;border:1px solid #3a4530;color:var(--lime);font-size:10px;font-weight:700;vertical-align:middle}
.x-post-avatar[data-view],.whoo-avatar-wrap[data-view],.user-avatar[data-view]{cursor:pointer}.x-post-head strong[data-view],.whoo-card-head strong[data-view],.meta-row strong[data-view]{cursor:pointer}
/* ---- マイプラン: 共通トークン・ホームカード ---- */
.nav-item-featured:not(.active) .nav-icon{color:var(--lime);opacity:.85}
.bottom-nav .nav-item.active{background:#212b19;border-radius:14px}
.home-learn-card{padding:22px;margin-bottom:22px;border-color:#3a4530}
.home-learn-card .kicker{margin:0 0 8px}
.home-learn-card h2{margin:0 0 8px;font-size:19px;line-height:1.35}
.home-learn-sub{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 16px}
.home-learn-cta{width:100%;font-size:14px;padding:14px}
.home-learn-items{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.home-learn-item{display:flex;flex-direction:column;gap:4px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);cursor:pointer}
.home-learn-item-category{color:var(--cyan);font-size:12px;font-weight:700}
.home-learn-item-title{font-size:15px;line-height:1.4}

/* ---- マイプラン トップ ---- */
.learn-search{margin:16px 0 12px}
.learn-ask-btn{display:block;width:100%;padding:15px;font-size:15px;margin:0 0 18px}
.learn-main-tabs{display:flex;gap:6px;padding:4px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
.learn-main-tab{flex:1;border:0;background:transparent;color:var(--muted);border-radius:9px;padding:11px 8px;font-size:14px;font-weight:700;cursor:pointer;min-height:44px}
.learn-main-tab.active{background:var(--lime);color:#172017}
.learn-shortcuts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.learn-filter-btn{border:1px solid var(--line);background:transparent;color:var(--text);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;min-height:44px}
.learn-shortcut{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:10px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;min-height:44px}
.learn-shortcut.active{border-color:var(--lime);color:var(--lime);background:#171e17}
.learn-active-filter{display:inline-flex;align-items:center;gap:8px;background:#171e17;border:1px solid #3a4530;color:var(--lime);border-radius:999px;padding:7px 8px 7px 14px;font-size:13px;font-weight:700;margin-bottom:16px}
.learn-active-filter button{border:0;background:rgba(215,243,107,.16);color:var(--lime);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:12px;display:grid;place-items:center}
.learn-result-count{color:var(--muted);font-size:14px;margin:0 0 14px}
.learn-safety-note{margin:36px 0 2px;padding-top:14px;border-top:1px solid rgba(143,154,154,.18);color:#798383;font-size:11px;line-height:1.65}
.learn-safety-note p{margin:0}
.learn-safety-note strong{color:#969f9f;font-weight:700}
.learn-safety-note-link{display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:5px 0;border:0;background:transparent;color:#8d9c9c;font:inherit;text-align:left;text-decoration:underline;text-decoration-color:rgba(141,156,156,.55);text-underline-offset:3px;cursor:pointer}
.learn-safety-note-link:hover{color:var(--cyan)}
.learn-safety-note-link:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:4px}
.learn-horizontal-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;margin-bottom:4px;scroll-snap-type:x proximity}
.learn-mini-card{flex:0 0 auto;width:220px;scroll-snap-align:start;display:flex;flex-direction:column;gap:10px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);cursor:pointer}
.learn-mini-card-title{font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ---- カテゴリ ボトムシート/モーダル ---- */
.category-sheet{position:fixed;inset:0;z-index:30}
.category-sheet:not([hidden]){display:flex;align-items:flex-end;justify-content:center}
.category-sheet-backdrop{position:absolute;inset:0;background:rgba(6,8,9,.6)}
.category-sheet-panel{position:relative;width:100%;max-width:480px;max-height:80vh;background:var(--panel);border:1px solid var(--line);border-radius:20px 20px 0 0;padding:10px 18px 24px;overflow-y:auto;animation:sheet-up .22s ease}
.category-sheet-handle{width:40px;height:4px;border-radius:2px;background:var(--line);margin:6px auto 14px}
.category-sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.category-sheet-head h2{margin:0;font-size:17px}
.category-sheet-close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--text);font-size:14px;cursor:pointer}
.category-sheet-list{display:flex;flex-direction:column;gap:4px}
.category-sheet-item{text-align:left;padding:14px 12px;border:0;border-radius:10px;background:transparent;color:var(--text);font-size:15px;font-weight:700;cursor:pointer;min-height:44px}
.category-sheet-item.active{background:#171e17;color:var(--lime)}
.category-sheet-item:hover{background:var(--panel-2)}
@keyframes sheet-up{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}
@media (min-width: 640px){.category-sheet{align-items:center}.category-sheet-panel{border-radius:20px;max-height:70vh}}

/* ---- 質問カード ---- */
.learn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.badge-official{display:inline-block;padding:3px 10px;border-radius:999px;background:#242a1c;border:1px solid #3a4530;color:var(--lime);font-size:12px;font-weight:700}
.learn-card-category,.question-card-category{display:inline-block;padding:3px 10px;border-radius:999px;background:#16232a;border:1px solid #22343d;color:var(--cyan);font-size:12px;font-weight:700}
.question-card-type{display:inline-block;padding:3px 10px;border-radius:999px;background:#241d33;border:1px solid #382a4d;color:#c6a9ff;font-size:12px;font-weight:700}
.question-type-filter-row{margin-bottom:14px}
/* Two equal-width buttons that must never wrap their label vertically. Root cause of the old bug:
   with flex-wrap + no flex-basis, a flex item's default min-width:auto lets it shrink toward its
   min-content width, and CJK text (no spaces) is allowed to break between *any* two characters by
   default — so a narrow viewport could shrink each button down to ~1 character wide, stacking the
   whole label vertically. Fixed by giving each option a fixed 50/50 share (flex:1 1 0, min-width:0
   so it can actually reach that width instead of resisting), disabling flex-wrap on the row so the
   two buttons can never drop to separate lines, and word-break:keep-all + white-space:nowrap on the
   label so a CJK run is treated as one unbreakable unit — combined with a responsive clamp() font
   size, this keeps 「マッチングアプリ攻略」 on a single line at any viewport width instead of ever
   wrapping. */
.question-type-choice{display:flex;flex-wrap:nowrap;gap:8px}
.question-type-option{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:8px 4px;border:1px solid var(--line);border-radius:10px;cursor:pointer;min-height:56px;text-align:center}
.question-type-option:has(input:checked){border-color:var(--lime);color:var(--lime);background:#1c2418}
.question-type-option input{accent-color:var(--lime);flex:0 0 auto;width:13px;height:13px;margin:0}
.question-type-option span{min-width:0;font-size:clamp(8.5px,2.8vw,13px);font-weight:700;line-height:1.25;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;overflow:hidden;text-overflow:clip}
.learn-card-lock{display:inline-block;padding:3px 10px;border-radius:999px;background:#2d2520;border:1px solid #4a3a2a;color:var(--orange);font-size:12px;font-weight:700}
.question-card-video-badge{display:inline-block;padding:3px 10px;border-radius:999px;background:#241c14;border:1px solid #4a3a22;color:var(--orange);font-size:12px;font-weight:700}
.learn-card-save{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:rgba(10,13,15,.72);border:0;color:#fff;display:grid;place-items:center;cursor:pointer}
.learn-card-save.active{color:var(--lime)}
.learn-eyecatch-trigger{display:inline-block;cursor:pointer;margin:8px 0}
.learn-consult-cta{padding:18px;text-align:center;border-color:#3a4530}
.learn-consult-cta p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 12px}
.field-hint{color:var(--muted);font-size:13px;line-height:1.5;margin:2px 0 8px}
.field-required{display:inline-block;margin-left:6px;color:var(--orange);font-size:11px;font-weight:700;vertical-align:middle}
.field-counter{color:var(--muted);font-size:12px;margin:4px 0 0;text-align:right}
.link-inline{background:none;border:0;color:var(--lime);font-size:inherit;font-weight:700;text-decoration:underline;padding:0;cursor:pointer}
.question-status{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);color:var(--muted)}
.question-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
.question-status.status-open{color:var(--cyan);border-color:#22343d}
.question-status.status-official{color:var(--lime);border-color:#3a4530}
.question-status.status-solved{color:#8fd694;border-color:#2e4a32;background:#182219}
.question-status.status-duplicate,.question-status.status-closed{color:var(--muted);border-color:var(--line)}
.question-status.status-unread{color:var(--red);border-color:#4a2626;background:#241616;font-weight:800}
.question-status.status-confirmed{color:var(--lime);border-color:#3a4530}
.question-card{position:relative;padding:0;overflow:hidden;transition:transform .15s ease,border-color .15s ease}
.question-card:hover{border-color:#3a4530}
.question-card.question-card-official{border-left:3px solid var(--lime)}
.question-card.question-card-unread{border-left:3px solid var(--red)}
.question-card-link{display:block;padding:18px 44px 18px 18px;color:inherit;text-decoration:none;cursor:pointer;touch-action:manipulation}
.question-card-link:active{background:#1d2426}
.question-card-top{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.question-card-title{margin:0 0 8px;font-size:17px;font-weight:700;color:var(--text);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.question-card-summary{color:#b7bfbd;font-size:14px;line-height:1.6;margin:0 0 14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.question-card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:12px}
.question-card-arrow{position:absolute;right:44px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:22px;line-height:1;pointer-events:none}
.user-avatar.small{width:24px;height:24px;font-size:11px}
.empty-questions{padding:32px 20px;text-align:center}
.empty-questions .empty{padding:0 0 18px;font-size:15px}
.empty-questions-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:4px}
.question-examples{list-style:none;margin:0 0 20px;padding:0;text-align:left;max-width:440px;margin-left:auto;margin-right:auto;display:flex;flex-direction:column;gap:8px}
.question-examples li{font-size:14px;line-height:1.5;color:var(--text);padding:12px 14px;border:1px solid var(--line);border-radius:10px}
.question-example-category{display:block;color:var(--cyan);font-size:12px;font-weight:700;margin-bottom:4px}

/* ---- 質問詳細 ---- */
.question-detail{padding:22px}
.question-detail-title{font-size:clamp(21px,3.4vw,28px);font-weight:800;line-height:1.4;margin:8px 0 16px}
.question-detail-section{margin-bottom:18px}
.question-detail-section h3{font-size:13px;color:var(--muted);letter-spacing:.4px;margin:0 0 8px;font-weight:700}
.question-detail-section p{color:#e2e6e3;font-size:16px;line-height:1.7;margin:0;white-space:pre-wrap}
.question-detail-author{display:flex;align-items:center;gap:10px;padding-top:16px;margin-top:4px;border-top:1px solid var(--line)}
.question-detail-author strong{display:block;font-size:14px;cursor:pointer}
.question-detail-author small{color:var(--muted);font-size:12px}
.question-detail-image{margin-top:16px;border-radius:12px;overflow:hidden;max-height:420px;background:#171b1e}
.question-detail-image img{width:100%;max-height:420px;object-fit:cover;display:block}
.question-detail-actions{display:flex;flex-wrap:wrap;gap:10px}
.answer-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;margin-bottom:14px}
.answer-card.answer-official{border-left:3px solid var(--lime)}
.answer-card.answer-accepted{border-color:#2e4a32;background:#151d16}
.answer-card-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.answer-card-head strong{font-size:14px}
.answer-card-head small{color:var(--muted);font-size:12px}
.answer-card p{color:#e2e6e3;font-size:15px;line-height:1.7;margin:0 0 14px;white-space:pre-wrap}
.answer-card-actions{display:flex;flex-wrap:wrap;gap:18px;border-top:1px solid var(--line);padding-top:12px}
.badge-accepted{display:inline-block;padding:3px 10px;border-radius:999px;background:#182219;border:1px solid #2e4a32;color:#8fd694;font-size:12px;font-weight:700}
.action{min-height:36px;display:inline-flex;align-items:center}

/* ---- 動画回答 ---- */
.video-answer{background:var(--panel);border:1px solid #3a4530;border-radius:14px;overflow:hidden;margin-top:14px}
.video-embed-wrap{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.video-embed-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-embed-fallback{display:block}
.video-embed-fallback img{width:100%;height:100%;object-fit:cover;display:block}
.video-answer-body{padding:18px}
.video-answer-title{margin:0 0 6px;font-size:16px;line-height:1.5}
.video-answer-duration{color:var(--muted);font-size:13px;margin:0 0 10px}
.video-answer-summary{color:#e2e6e3;font-size:15px;line-height:1.7;margin:0 0 14px;white-space:pre-wrap}
.video-chapters{margin:0 0 14px}
.video-chapters h4{font-size:12px;color:var(--muted);margin:0 0 8px;letter-spacing:.4px}
.video-chapters ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.video-chapters li{font-size:14px;color:#e2e6e3;padding:8px 10px;background:var(--panel-2);border-radius:8px}
.video-transcript{margin:0 0 14px;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.video-transcript summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--text)}
.video-transcript p{margin:10px 0 0;font-size:14px;line-height:1.7;color:#c7cdcb;white-space:pre-wrap}
.video-answer-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;border-top:1px solid var(--line);padding-top:12px}

/* ---- 通知 ---- */
.notification-card{padding:16px;margin-bottom:10px}
.notification-card p{margin:0 0 8px;font-size:15px;line-height:1.6;color:var(--text)}
.notification-card.unread{border-color:var(--lime)}
/* Distinguishes 公式回答 vs 速報コメント notifications in the shared notifications list (same
   visual language as .advisor-badge/.badge-official elsewhere in the app). */
.notification-type-tag{display:inline-block;padding:2px 9px;border-radius:999px;background:#242a1c;border:1px solid #3a4530;color:var(--lime);font-size:10px;font-weight:700;margin-bottom:8px}
/* 速報投稿の詳細画面(#pulse-post-<id>)のコメントスレッド。 */
.pulse-comment-item{display:flex;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}
.pulse-comment-item:last-child{border-bottom:0}
.pulse-comment-avatar{flex:none}
.pulse-comment-body{flex:1;min-width:0}
.pulse-comment-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.pulse-comment-head strong{font-size:13px}
.pulse-comment-time{color:var(--muted);font-size:11px}
.pulse-comment-text{color:#d7dcda;font-size:13px;line-height:1.7;margin:6px 0 4px;white-space:pre-wrap;overflow-wrap:anywhere}
.pulse-comment-link{color:var(--lime);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.pulse-comment-link:visited{color:var(--lime)}
.pulse-comment-delete{font-size:11px}
.notification-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}

/* ---- ホーム: マイプランセクション(見出しはカード外、本日の予定と統一) ---- */
.home-learn-card{padding:20px;margin-bottom:20px}
.home-learn-sub{color:var(--muted);font-size:15px;line-height:1.7;margin:0 0 16px}
.home-learn-cta{display:block;width:100%;min-height:44px;padding:15px;font-size:15px}
.home-learn-see-all{display:block;width:100%;min-height:44px;padding:13px;font-size:14px;margin-top:10px}
.home-learn-tap{display:block;width:100%;text-align:left;padding:0;margin:0 0 12px;border:0;background:none;cursor:pointer;font:inherit;color:inherit;min-height:44px}
.home-featured-title{margin:0 0 8px;font-size:17px;font-weight:700;color:var(--text);line-height:1.45}
.home-featured-excerpt{color:#c7cdcb;font-size:14px;line-height:1.6;margin:0 0 12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home-featured-status{color:var(--muted);font-size:14px;margin:0 0 14px}
.home-featured-alert{display:flex;align-items:center;gap:8px;color:var(--red);font-size:14px;font-weight:800;margin:0 0 10px}
.home-featured-alert::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--red);flex:none}
.home-learn-tap .btn{pointer-events:none}
.home-learn-card-waiting{border-color:#3a4530}
.home-learn-card-unread{border:2px solid var(--red);background:#241616;box-shadow:0 0 0 4px rgba(255,114,114,.12)}
.home-learn-card-unread .home-featured-title{color:#ffe3e3}
.home-learn-cta-alert{background:var(--red);color:#2a0d0d}

/* ---- v1 継続体験: ホームの4本柱(今週のマイプラン/今日の実践/振り返り/継続・相談) ---- */
.home-pillar-card{padding:20px;margin-bottom:20px;border-color:var(--line)}
.home-pillar-primary{border-color:var(--lime);box-shadow:0 0 0 3px rgba(215,243,107,.14)}
/* "悩みを解決" theme picker (renderHomeThemeSelect()): reuses the same card-grid pattern as
   elsewhere (.answer-grid/.result-grid), collapsed to 1 column on narrow widths below. */
.home-theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.home-theme-card{min-height:44px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2);color:var(--text);font-size:13px;font-weight:700;text-align:left}
.home-theme-card:hover{border-color:var(--lime);color:var(--lime)}
.home-theme-card-wide{grid-column:1/-1}
.home-pillar-secondary{opacity:.92}
.home-pillar-secondary .home-featured-title{font-size:15px}
.home-command-center{display:grid;gap:26px;max-width:920px}.home-command-center section{min-width:0}.home-section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 12px}.home-section-heading .kicker{margin:0 0 3px}.home-section-heading h2{margin:0;font-size:19px;line-height:1.45}.home-section-heading .link-inline{flex:none}.home-journey-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.home-journey-step{position:relative;display:grid;align-content:start;gap:5px;min-height:128px;padding:17px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left}.home-journey-step:hover,.home-journey-step:focus-visible{border-color:var(--lime);background:#20291d}.home-journey-step>span{color:var(--lime);font:800 10px 'DM Sans',sans-serif;letter-spacing:1px}.home-journey-step strong{font-size:14px;line-height:1.5}.home-journey-step small{color:var(--muted);font-size:10.5px;line-height:1.6}.home-action-card{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:22px;border-color:#45503d}.home-action-card-primary{border-color:var(--lime);box-shadow:0 0 0 3px rgba(215,243,107,.1)}.home-action-card>div:first-child{min-width:0}.home-action-card h3{margin:6px 0 6px;font-size:18px;line-height:1.5}.home-action-card p{max-width:650px;margin:0;color:var(--muted);font-size:12px;line-height:1.75}.home-action-state{display:inline-flex;padding:4px 9px;border-radius:999px;background:#2a331f;color:var(--lime);font-size:10px;font-weight:800}.home-action-state-done{background:#20352b;color:#78ddb4}.home-action-buttons{display:flex;flex-wrap:wrap;gap:8px;flex:none}.home-action-card>.btn{flex:none}.home-proof-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.home-proof-grid>div{display:grid;gap:3px;padding:17px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}.home-proof-grid strong{color:var(--lime);font:800 25px 'DM Sans',sans-serif}.home-proof-grid span{color:var(--muted);font-size:10.5px}.home-support-card{display:grid;justify-items:start;gap:10px;padding:24px;border-color:#52643b;background:linear-gradient(135deg,#1b2419,#171c1d)}.home-support-card .kicker,.home-support-card h2,.home-support-card p{margin:0}.home-support-card h2{margin-top:4px;font-size:20px;line-height:1.5}.home-support-card p{max-width:680px;color:#d9dfdc;font-size:12px;line-height:1.75}.home-support-card small{color:var(--muted);font-size:10px}.practice-summary .home-proof{margin-bottom:24px}.practice-summary .home-section-heading{display:none}.practice-history-heading{margin-top:30px}.practice-history-list{display:grid;gap:9px}.practice-history-item{padding:17px}.practice-history-item>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-history-item time{color:var(--muted);font:700 10px 'DM Sans',sans-serif}.practice-history-status{padding:3px 8px;border-radius:999px;background:#302b22;color:#f2b767;font-size:9px;font-weight:800}.practice-history-status.done{background:#20352b;color:#78ddb4}.practice-history-item h3{margin:8px 0 4px;font-size:14px;line-height:1.55}.practice-history-item p,.practice-history-empty p{margin:0;color:var(--muted);font-size:11px;line-height:1.65}.practice-history-empty{padding:20px}
@media (max-width:820px){.home-journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.home-command-center{gap:22px}.home-section-heading{align-items:center}.home-section-heading h2{font-size:17px}.home-journey-grid{gap:8px}.home-journey-step{min-height:116px;padding:14px}.home-journey-step strong{font-size:13px}.home-action-card{display:grid;gap:15px;padding:18px}.home-action-card>.btn,.home-action-buttons,.home-action-buttons .btn,.home-action-buttons .line-consultation-link{width:100%}.home-action-buttons{display:grid}.home-proof-grid{gap:7px}.home-proof-grid>div{padding:14px 10px}.home-proof-grid strong{font-size:22px}.home-proof-grid span{font-size:9px}.home-support-card{padding:19px}.home-support-card h2{font-size:18px}}
.home-featured-status-done{color:var(--lime);font-weight:700}
.home-practice-form,.home-reflection-form{margin-top:10px}
.home-practice-input{width:100%;background:#111518;border:1px solid var(--line);border-radius:7px;color:var(--text);padding:12px;font-size:15px;min-height:44px}
.home-practice-input:focus{border-color:var(--cyan);outline:2px solid var(--cyan);outline-offset:1px}
.home-streak-note{color:var(--lime);font-size:14px;line-height:1.6;margin:0 0 14px;font-weight:700}
.home-daily-reset-note{color:var(--muted);font-size:12px;line-height:1.55;margin:14px 0 0}
.home-connect-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

/* ---- ホーム上部タブ(ホーム/タイムライン) ---- */
.home-tabbar-wrap{position:sticky;top:72px;z-index:9;margin:-44px -44px 0;background:rgba(16,19,22,.94);backdrop-filter:blur(18px)}
.service-intro+.home-tabbar-wrap{margin-top:-18px}
.home-tabbar{display:flex;position:relative;border-bottom:1px solid var(--line)}
.home-tab{flex:1 1 50%;background:none;border:0;padding:15px 8px;min-height:48px;text-align:center;font:700 15px 'Noto Sans JP',sans-serif;color:var(--muted);line-height:1.3}
.home-tab.active{color:var(--text);font-weight:800}
.home-tab-underline{position:absolute;bottom:-1px;height:3px;border-radius:2px;background:var(--lime);transform:translateX(-50%);transition:left .2s ease}
.home-tab-underline-timeline{left:25%;width:104px}
.home-tab-underline-learn{left:75%;width:90px}
.home-tab-panel{padding-top:18px}
.home-tab-panel>.section-title:first-child{margin-top:0}
@media (max-width:720px){.home-tabbar-wrap{top:62px;margin:-28px -16px 0}.service-intro+.home-tabbar-wrap{margin-top:-14px}}
@media (prefers-reduced-motion: reduce){.home-tab-underline{transition:none}}

/* ---- v1 継続体験: マイプラン内の顔型スタイルガイド導線 ---- */
.learn-face-guide-entry{padding:16px;margin:0 0 16px;border-color:#3a4530}

/* ---- v1 継続体験: リアルタイム速報の補助的な位置づけ表示 ---- */
.pulse-intro-note{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 14px}

/* ---- v1 継続体験: 合流のGPS無効時の表示 ---- */
.whoo-location-disabled{color:var(--muted);font-size:13px;line-height:1.6;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:12px 14px}

/* ---- v1 継続体験: ナビの準備中バッジ ---- */
.nav-item-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:#2d2520;border:1px solid #4a3a2a;color:var(--orange);font-size:10px;font-weight:800;letter-spacing:.3px;margin-left:auto}
.nav-drawer-item{position:relative}
.nav-drawer-item .nav-item-badge{margin-left:auto}

/* ---- v1 継続体験: 紹介プログラム準備中画面 ---- */
.referral-preview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0}
.referral-preview-item{padding:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;gap:6px}
.referral-preview-label{color:var(--muted);font-size:12px}
.referral-preview-value{color:var(--muted);font-size:14px;font-weight:700}
.referral-preview-note{color:var(--muted);font-size:13px;line-height:1.7;margin:14px 0 0}
@media (max-width:520px){.referral-preview-grid{grid-template-columns:1fr}}

/* ---- ホーム: 新着回答の手紙アイコン ---- */
.icon-button.notification-bell{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;transition:color .15s}
.icon-button.notification-bell.has-unread-answers{color:var(--red)}
.icon-button.notification-bell .notification-dot{position:absolute;min-width:16px;height:16px;padding:0 3px;border-radius:999px;background:var(--red);color:#fff;font:800 10px/16px 'DM Sans',sans-serif;text-align:center;right:0;top:0;box-shadow:0 0 0 2px var(--bg)}

/* ---- マイプラン: ログイン誘導・詳細戻る ---- */
.learn-login-notice{padding:24px 18px;text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.learn-login-notice p{color:var(--text);font-size:15px;line-height:1.7;margin:0 0 16px}
.learn-login-notice-actions{display:flex;flex-direction:column;gap:10px}
.learn-detail-back-link{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px;font-weight:700;text-decoration:none;margin-bottom:14px;min-height:44px}
.learn-detail-back-link:hover{color:var(--lime)}
.answer-official-body{color:#e2e6e3;font-size:15px;line-height:1.8}
.answer-official-body h3{font-size:16px;margin:16px 0 8px;color:var(--text)}
.answer-official-body h3:first-child{margin-top:0}
.answer-official-body p{margin:0 0 12px;white-space:normal}
.answer-official-body ul{margin:0 0 12px;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.answer-official-body a{color:var(--cyan)}

/* ---- 管理画面 ---- */
.admin-main{max-width:960px}
.admin-login-screen{min-height:100vh;padding:24px;background:var(--bg)}
.admin-login-screen:not([hidden]){display:flex;align-items:center;justify-content:center}
.admin-login-card{width:100%;max-width:400px;padding:32px 28px}
.admin-login-card h1{margin:8px 0 10px;font-size:24px}
.admin-login-card>p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 22px}
.admin-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.admin-topbar-actions{display:flex;align-items:center;gap:12px}
.admin-current-email{color:var(--muted);font-size:13px}
/* Jump-to-section index at the top of the (long, single-scroll) admin page, so a specific
   management feature (e.g. 速報投稿管理) doesn't require scrolling through every section above it. */
.admin-toc{display:flex;flex-wrap:wrap;gap:8px 10px;margin:18px 0 4px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.admin-toc a{color:var(--muted);font-size:12px;font-weight:700;text-decoration:none;padding:6px 10px;border-radius:999px;border:1px solid transparent}
.admin-toc a:hover{color:var(--lime);border-color:var(--line)}
.admin-pulse-post-card{padding:16px}
.admin-pulse-post-card-head{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin-bottom:8px;color:var(--muted);font-size:11px}
.admin-pulse-post-card-body{color:#d7dcda;font-size:13px;line-height:1.7;margin:8px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}
.admin-pulse-post-card-stats{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:11px;margin-bottom:12px}
.admin-pulse-post-card-stats .is-reported{color:var(--red);font-weight:700}
.admin-question-card{padding:16px;margin-bottom:12px}
.admin-question-card-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}
.admin-question-card h3{margin:0 0 8px;font-size:16px;line-height:1.5}
.admin-question-card p{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 10px}
.admin-flag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--line);color:var(--muted)}
.admin-flag-warn{color:var(--orange);border-color:#4a3a2a;background:#2d2520}
.admin-flag-ok{color:var(--lime);border-color:#3a4530;background:#171e17}
.admin-question-detail{padding:16px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;margin-bottom:16px}
.admin-question-detail h3{margin:0 0 10px;font-size:17px}
.admin-question-detail p{color:#d7dcda;font-size:14px;line-height:1.7;margin:0 0 10px;white-space:pre-wrap}
.admin-meta-line{color:var(--muted);font-size:12px;margin:0}
.admin-scroll-dialog{display:flex;flex-direction:column;width:100%;max-width:680px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:0;overflow:hidden}
.admin-scroll-dialog>.category-sheet-head{flex:0 0 auto;margin:0;padding:10px 18px 12px;border-bottom:1px solid var(--line);background:var(--panel);z-index:2}
.admin-scroll-dialog-body{flex:1 1 auto;min-height:0;padding:14px 18px 24px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.admin-scroll-dialog-actions{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(27,32,35,.98);box-shadow:0 -8px 20px rgba(6,8,9,.3);z-index:3}
.admin-editor-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.admin-editor-status{margin-top:12px;padding:10px 12px;border-radius:8px;background:var(--panel-2);border:1px solid var(--line);font-size:13px;color:var(--text)}
.admin-preview-frame{display:flex;justify-content:center;padding:20px 0}
.admin-preview-screen{width:100%;max-width:340px;background:var(--bg);border:8px solid #2b3338;border-radius:28px;padding:16px;max-height:70vh;overflow-y:auto}
.admin-video-placeholder{color:var(--muted);font-size:13px;padding:12px;border:1px dashed var(--line);border-radius:8px;text-align:center}
.admin-revision-item{padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px;font-size:12px;color:var(--muted)}
.admin-revision-item strong{color:var(--text);display:block;margin-bottom:4px;font-size:13px}
@media (max-width: 720px) { .topbar { height:62px; padding:0 max(17px, env(safe-area-inset-right)) 0 max(17px, env(safe-area-inset-left)); }.sidebar { display:none; }.main-content { margin-left:0; padding:28px 16px 100px; }.page-header { align-items:flex-start; flex-direction:column; gap:16px; margin-bottom:22px; }.page-header .btn { width:100%; }.grid:not(.calendar-grid),.activity-top { grid-template-columns:1fr; }.form-grid,.answer-grid,.result-grid,.home-theme-grid { grid-template-columns:1fr; }.field.full { grid-column:auto; }.bottom-nav { display:flex; position:fixed; z-index:9; bottom:0; left:0; right:0; height:67px; border-top:1px solid var(--line); background:rgba(20,24,27,.96); backdrop-filter:blur(16px); justify-content:space-around; padding:7px 4px calc(7px + env(safe-area-inset-bottom)); }.bottom-nav .nav-item { width:auto; min-width:52px; min-height:52px; display:grid; place-items:center; gap:2px; padding:5px 8px; border-radius:8px; }.bottom-nav .nav-icon { line-height:1; }.bottom-nav .nav-label { font-size:10px; line-height:1.2; white-space:nowrap; }.bottom-nav .nav-item.active { color:var(--lime); }.bar-chart { gap:6px; padding:15px; }.ring-card { min-height:265px; } }

/* ==================== 管理コンソール (第23回再設計) ==================== */
/* Desktop: fixed left sidebar + content area. Mobile (<=900px): the sidebar becomes an off-canvas
   drawer (translateX, toggled via .open) with a backdrop, matching the general app's own
   desktop-sidebar/mobile-drawer split rather than introducing a new pattern. */
.admin-shell{display:flex;min-height:100vh;align-items:stretch}
.admin-sidebar{position:fixed;top:0;bottom:0;left:0;width:250px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;overflow-y:auto;transition:transform .2s ease}
.admin-sidebar-brand{display:flex;align-items:center;justify-content:space-between;padding:22px 20px 14px}
.admin-menu-close{display:none;background:none;border:0;color:var(--text);font-size:15px;width:32px;height:32px;border-radius:50%;cursor:pointer}
.admin-menu-close:hover{background:#273034}
.admin-nav{display:grid;gap:4px;padding:6px 14px;flex:1}
.admin-nav-item{display:block;width:100%;text-align:left;padding:12px 14px;border:0;border-radius:10px;background:transparent;color:var(--muted);font:700 13px 'DM Sans',sans-serif;cursor:pointer;transition:background .15s,color .15s;min-height:44px}
.admin-nav-item:hover{background:#273034;color:var(--text)}
.admin-nav-item.active{background:#273034;color:var(--lime);box-shadow:inset 3px 0 var(--lime)}
.admin-nav-item:focus-visible,.admin-menu-toggle:focus-visible,.admin-menu-close:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.admin-sidebar-foot{padding:14px 20px;border-top:1px solid var(--line)}
.admin-content-wrap{margin-left:250px;flex:1;min-width:0;padding:28px 36px 90px;max-width:1160px}
.admin-menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:8px;color:var(--text);width:42px;height:42px;font-size:17px;cursor:pointer;flex:none}
.admin-topbar-titles{min-width:0}
.admin-topbar-titles h1{margin:2px 0 0;font-size:clamp(19px,2.6vw,26px)}
.admin-nav-backdrop{position:fixed;inset:0;background:rgba(6,8,9,.55);z-index:25}
.admin-page-content{margin-top:18px}
.admin-page-lead{color:var(--muted);font-size:13px;line-height:1.7;margin:0 0 18px}
.admin-page[hidden]{display:none}

/* ---- マイプラン管理: ユーザー画面と同じ名前で3つの管理対象を横断 ---- */
.admin-my-plan-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
.admin-my-plan-nav-item{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:72px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--text);text-align:left;cursor:pointer}
.admin-my-plan-nav-item strong{font-size:13px;line-height:1.45}.admin-my-plan-nav-item span{color:var(--muted);font-size:11px;line-height:1.45}
.admin-my-plan-nav-item:hover{border-color:#586348}.admin-my-plan-nav-item.active{border-color:var(--lime);background:#1e281b;box-shadow:inset 0 0 0 1px rgba(205,255,78,.12)}
.admin-my-plan-nav-item.active strong{color:var(--lime)}.admin-my-plan-nav-item:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.admin-guidance-card{max-width:680px;padding:16px 18px;margin-bottom:18px;border-left:3px solid var(--cyan)}
.admin-guidance-card strong{display:block;font-size:13px;margin-bottom:5px}.admin-guidance-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}
#questions-list{display:grid;gap:12px}
.admin-question-card{padding:18px}
.admin-question-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.admin-question-card-head small{color:var(--muted);font-size:11px;white-space:nowrap}
.admin-source-badge{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border-radius:999px;background:#202b2d;border:1px solid #355158;color:var(--cyan);font-size:11px;font-weight:800}
.admin-question-card h3{font-size:17px;line-height:1.55;margin:0 0 7px;overflow-wrap:anywhere}.admin-question-card-body{color:#d7dcda;font-size:13px;line-height:1.7;margin:0 0 8px;white-space:pre-wrap;overflow-wrap:anywhere}
.admin-question-flags{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:12px}
.admin-list-search{max-width:680px;margin:0 0 12px}

/* ---- 公式コンテンツ編集 ---- */
.official-content-toolbar{align-items:flex-end;margin-bottom:14px}
.official-content-layout{display:grid;grid-template-columns:minmax(0,680px) minmax(280px,1fr);gap:18px;align-items:start}
.official-content-form{max-width:none}
.admin-form-step{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.admin-form-step:last-of-type{margin-bottom:0}
.admin-form-step>h3,.admin-editor-section>h3{font-size:15px;line-height:1.5;margin:0 0 4px;color:var(--text)}.admin-form-step>p,.admin-editor-help{color:var(--muted);font-size:12px;line-height:1.65;margin:0 0 14px}
.official-content-preview{position:sticky;top:18px;padding:18px;min-width:0}
.official-content-preview h3{font-size:20px;line-height:1.5;margin:14px 0 10px;overflow-wrap:anywhere}
.official-content-preview-question{color:#d7dcda;line-height:1.7;font-size:13px;overflow-wrap:anywhere}
.official-content-preview-answer{margin-top:16px;padding:15px;border-left:3px solid var(--lime);border-radius:9px;background:var(--panel-2);font-size:13px;line-height:1.75;overflow-wrap:anywhere}
.official-content-preview-answer>strong{display:block;color:var(--lime);margin-bottom:8px}
.official-content-preview-answer p,.official-content-preview-answer ul{margin:8px 0}.official-content-preview-answer h3{font-size:15px;margin:12px 0 6px}
.official-content-recommended-field label{display:flex;align-items:center;gap:9px;min-height:44px;color:var(--text);font-size:13px}.official-content-recommended-field input{width:auto}
@media (max-width:1050px){.official-content-layout{grid-template-columns:1fr}.official-content-preview{position:static;max-width:680px}}

/* ---- 質問・公式回答編集モーダル ---- */
.admin-editor-section{padding:16px;margin-bottom:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.admin-helpful-voter-list{display:grid;gap:8px}
.admin-helpful-voter-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#151a1d}
.admin-helpful-voter-identity{display:flex;flex-direction:column;gap:3px;min-width:0}
.admin-helpful-voter-identity strong{color:var(--text);font-size:13px;overflow-wrap:anywhere}.admin-helpful-voter-identity span{color:var(--lime);font-size:11px;font-weight:800}.admin-helpful-voter-identity small{color:var(--muted);font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.admin-editor-details{margin:14px 0;border:1px solid var(--line);border-radius:10px;background:#151a1d}.admin-editor-details>summary{padding:13px 15px;color:var(--text);font-size:13px;font-weight:800;cursor:pointer}.admin-editor-details[open]>summary{border-bottom:1px solid var(--line)}.admin-editor-details>.form-grid,.admin-editor-details>.form-actions,.admin-editor-details>.admin-danger-zone{margin-left:15px;margin-right:15px}.admin-advanced-tools{margin-top:18px}
.admin-author-editor-body{display:grid;gap:13px;padding:15px}.admin-author-editor-body .admin-editor-help{margin:0}.admin-author-lookup-row{display:flex;align-items:flex-end;gap:10px}.admin-author-lookup-row .field{flex:1;margin:0}.admin-author-candidate{display:flex;flex-direction:column;gap:3px;padding:11px 12px;border:1px solid #586348;border-radius:9px;background:#1e281b}.admin-author-candidate strong{color:var(--text);font-size:13px}.admin-author-candidate span{color:var(--lime);font-size:11px;font-weight:800;overflow-wrap:anywhere}.admin-author-candidate small{color:var(--muted);font-size:11px}.admin-author-candidate .admin-author-unavailable{color:var(--red);font-weight:800}.admin-author-confirm{display:flex;align-items:flex-start;gap:9px;color:var(--text);font-size:12px;line-height:1.6;cursor:pointer}.admin-author-confirm input{width:auto;margin-top:3px;flex:none}.admin-author-editor-body>.form-actions{margin:0}
.admin-danger-zone{margin-top:18px;margin-bottom:15px;padding:14px;border:1px solid #4a2626;border-radius:9px;background:#241919}.admin-danger-zone>strong{color:var(--red);font-size:12px}.admin-danger-zone>p{margin:4px 0;color:#d6aaaa;font-size:11px}.admin-danger-zone .form-actions{margin-top:10px}

@media (max-width:900px){
  .admin-sidebar{transform:translateX(-100%);width:82%;max-width:300px}
  .admin-sidebar.open{transform:translateX(0);box-shadow:8px 0 30px rgba(0,0,0,.35)}
  .admin-menu-close{display:grid;place-items:center}
  .admin-content-wrap{margin-left:0;padding:18px 16px 90px}
  .admin-menu-toggle{display:grid;place-items:center}
  .admin-topbar{flex-wrap:nowrap;align-items:center}
  .admin-my-plan-nav{grid-template-columns:1fr}.admin-my-plan-nav-item{min-height:0}
  .admin-helpful-voter-row{align-items:flex-start;flex-direction:column}.admin-helpful-voter-row .btn{width:100%}
  .admin-author-lookup-row{align-items:stretch;flex-direction:column}.admin-author-lookup-row .btn{width:100%}
}

/* ---- ダッシュボード ---- */
.admin-stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.admin-stat-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:6px;text-align:left;color:var(--text);min-height:44px}
button.admin-stat-card{cursor:pointer}
button.admin-stat-card:hover{border-color:var(--lime)}
button.admin-stat-card:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.admin-stat-value{font:900 26px 'DM Sans',sans-serif;word-break:break-word}
.admin-stat-label{color:var(--muted);font-size:12px;line-height:1.5}
@media (max-width:900px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.admin-stat-grid{grid-template-columns:1fr}}

/* ---- 汎用の一覧行カード (利用者管理/コメント管理/監査ログなど) ---- */
.admin-list-plain{display:grid;gap:12px}
.admin-row-card{padding:16px}
.admin-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px}
.admin-row-head strong{font-size:14px}
.admin-row-body{color:#d7dcda;font-size:13px;line-height:1.7;margin:6px 0;white-space:pre-wrap;overflow-wrap:anywhere}
.admin-row-stats{display:flex;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:11px;margin:6px 0}
.admin-meta-line{color:var(--muted);font-size:11px}
.admin-row-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.admin-flag-warn{color:var(--red);font-size:11px;font-weight:700;background:#2d1a1a;border:1px solid #4a2626;border-radius:999px;padding:2px 9px}

/* ---- 問い合わせ・通報の対応状況 (状態+メモ+保存) ---- */
.admin-status-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:12px 0}
.admin-status-row label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}
.admin-status-select{background:#111518;border:1px solid var(--line);border-radius:7px;color:var(--text);padding:8px 10px;min-height:38px}
.admin-memo-input{background:#111518;border:1px solid var(--line);border-radius:7px;color:var(--text);padding:8px 10px;min-height:38px;flex:1;min-width:160px}
.admin-status-select:focus-visible,.admin-memo-input:focus-visible{outline:2px solid var(--cyan);outline-offset:1px}
@media (max-width:480px){.admin-status-row{flex-direction:column;align-items:stretch}.admin-status-row label{width:100%}}

/* ---- 危険操作 (削除) は通常操作と色・位置を分ける ---- */
.btn.danger{background:transparent;border:1px solid var(--red);color:var(--red)}
.btn.danger:hover{background:#2d1a1a}
.btn.danger:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ---- 利用者詳細モーダル (第24回: 状態管理・荒らし対策・退会/匿名化・テストアカウント削除) ---- */
.admin-detail-summary{display:grid;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:8px 0}
.admin-detail-summary p{margin:0;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
.admin-stat-grid-detail{grid-template-columns:repeat(4,1fr);margin:8px 0 4px}
.admin-stat-grid-detail .admin-stat-value{font-size:20px}
@media (max-width:900px){.admin-stat-grid-detail{grid-template-columns:repeat(3,1fr)}}
@media (max-width:480px){.admin-stat-grid-detail{grid-template-columns:repeat(2,1fr)}}

/* ==================== ユーザー間DM (第25回・第2回分) ==================== */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.dm-search-form{padding:18px}
.dm-search-control{display:flex;gap:10px;align-items:center}
.dm-search-control input{min-width:0;flex:1}
.dm-search-results,.dm-conversation-list{display:grid;margin-top:12px;border-top:1px solid var(--line)}
.dm-user-row,.dm-conversation-row{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);text-align:left;cursor:pointer;min-height:72px}
.dm-user-row:hover,.dm-conversation-row:hover{background:rgba(205,255,82,.04)}
.dm-user-row:focus-visible,.dm-conversation-row:focus-visible,.dm-participant:focus-visible,.dm-report-button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.dm-user-row .user-avatar,.dm-conversation-row .user-avatar,.dm-participant .user-avatar{width:44px;height:44px;flex:none}
.dm-user-row span:nth-child(2),.dm-conversation-copy{min-width:0;display:grid;gap:3px}
.dm-user-row small,.dm-conversation-copy small{color:var(--muted);font-size:11px}
.dm-conversation-copy>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c5cdca;font-size:13px}
.dm-conversation-row.unread strong{color:var(--lime)}
.dm-unread-badge{min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:grid;place-items:center;background:var(--lime);color:#0b1009;font-size:11px;font-weight:900}
.dm-search-empty{margin-top:12px}
.dm-conversation-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0 16px;border-bottom:1px solid var(--line)}
.dm-participant{border:0;background:transparent;color:var(--text);display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;cursor:pointer}
.dm-participant strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-safety-note{margin:12px 0;color:var(--muted);font-size:12px;line-height:1.6}
.dm-message-list{display:flex;flex-direction:column;gap:12px;min-height:240px;padding:16px 0 20px}
.dm-message{display:flex;flex-direction:column;max-width:min(78%,560px);gap:4px}
.dm-message.outgoing{align-self:flex-end;align-items:flex-end}
.dm-message.incoming{align-self:flex-start;align-items:flex-start}
.dm-message-bubble{border:1px solid var(--line);background:var(--panel);border-radius:16px;padding:10px 13px;overflow-wrap:anywhere}
.dm-message.outgoing .dm-message-bubble{background:#24301d;border-color:#46582c}
.dm-message-bubble p{margin:0;white-space:pre-wrap;line-height:1.6}
.dm-message-bubble small{display:block;margin-top:5px;color:var(--muted);font-size:10px;text-align:right}
.dm-report-button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:2px 6px;cursor:pointer}
.dm-report-button:hover{color:var(--red)}
.dm-composer{position:sticky;bottom:0;z-index:6;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(13,17,19,0),var(--bg) 18%)}
.dm-composer textarea{min-height:52px;max-height:160px;resize:vertical}
.dm-composer .form-error{grid-column:1/-1;grid-row:2}
@media (max-width:720px){
  .dm-search-control{align-items:stretch}.dm-search-control .btn{width:auto}
  .dm-conversation-header{grid-template-columns:auto minmax(0,1fr)}
  .dm-conversation-header>.btn{grid-column:1/-1;width:100%}
  .dm-message{max-width:88%}
  .dm-composer{bottom:67px;padding-bottom:12px}
}

/* ==================== SNS型プロフィール・相互フォロー表示 ==================== */
.social-profile-card{max-width:760px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel);margin-bottom:18px}
.social-profile-cover{height:220px;position:relative;overflow:hidden;background:radial-gradient(circle at 82% 24%,rgba(215,243,107,.28),transparent 26%),linear-gradient(135deg,#1f3a3e,#161d20 62%,#26351c)}
.social-profile-cover img{width:100%;height:100%;display:block;object-fit:cover}
.social-profile-cover-mark{position:absolute;right:28px;bottom:12px;color:rgba(215,243,107,.16);font:900 118px/1 'DM Sans',sans-serif}
.social-profile-body{padding:0 24px 24px}
.social-profile-avatar-row{min-height:66px;display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.social-profile-avatar{width:116px;height:116px;border:5px solid var(--panel);border-radius:50%;overflow:hidden;background:#394d52;display:grid;place-items:center;transform:translateY(-55px);margin-bottom:-55px;flex:none}
.social-profile-avatar img,.social-profile-avatar .avatar-upload-fallback,.social-profile-avatar .avatar-fallback-icon{width:100%;height:100%;object-fit:cover}
.social-profile-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;padding-top:12px}
.social-profile-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.social-profile-name-row h1{font-size:23px;line-height:1.35;margin:0}
.social-profile-handle{margin:2px 0 17px;color:var(--muted);font:500 13px 'DM Sans',sans-serif}
.social-profile-bio{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:0 0 14px;color:#e1e5e2;font-size:14px}
.social-profile-empty{color:var(--muted)}
.social-profile-meta,.social-profile-stats{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:12px;line-height:1.6}
.social-profile-stats{margin-top:11px}.social-profile-stats button{appearance:none;border:0;background:none;color:inherit;font:inherit;padding:9px 0;min-height:44px;cursor:pointer}.social-profile-stats button:hover,.social-profile-stats button:focus-visible{text-decoration:underline;color:var(--text)}.social-profile-stats strong{color:var(--text);font-size:14px}
.social-profile-dm-note{margin:12px 0 0}
.mutual-follow-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border:1px solid #566a37;border-radius:999px;color:var(--lime);background:#242d1d;font-size:10px;font-weight:800;white-space:nowrap}
.social-profile-feed{max-width:760px;margin-top:26px}.social-profile-feed .x-post{border-left:1px solid var(--line);border-right:1px solid var(--line)}
.social-profile-edit,.account-settings-card{max-width:760px;margin:18px 0}
.profile-following-link{margin:0 0 18px}
.admin-consultation-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;margin:12px 0;color:var(--text)}
.consultation-history-card{margin-bottom:16px}.consultation-history-card h3{margin:14px 0 8px}.consultation-user-body{white-space:pre-wrap;overflow-wrap:anywhere}.consultation-admin-response{margin-top:18px;padding:16px;border-left:3px solid var(--lime);border-radius:10px;background:rgba(210,255,73,.06)}.consultation-admin-response>strong{display:block;color:var(--lime);margin-bottom:8px}.consultation-admin-response p{margin:0 0 8px;white-space:pre-wrap}.consultation-admin-response small{display:block;color:var(--muted);margin-top:10px}.consultation-waiting{margin-top:16px;color:var(--muted)}
.consultation-image,.admin-consultation-image{max-width:520px;margin:16px 0}.consultation-image img,.admin-consultation-image img{display:block;width:100%;max-height:520px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#0d1113}.consultation-image figcaption,.admin-consultation-image figcaption{margin-top:7px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}
.coaching-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:820px;margin-bottom:16px}.coaching-service-card{position:relative;display:block;min-height:128px;padding:18px;border:1px solid var(--line);border-radius:13px;background:var(--panel);cursor:pointer}.coaching-service-card:hover,.coaching-service-card:has(input:focus-visible){border-color:#63734a}.coaching-service-card:has(input:checked){border-color:var(--lime);background:linear-gradient(135deg,#20291d,var(--panel))}.coaching-service-card input{position:absolute;opacity:0;pointer-events:none}.coaching-service-card span{display:grid;gap:8px}.coaching-service-card strong{font-size:15px;line-height:1.5}.coaching-service-card small{color:var(--muted);font-size:11px;line-height:1.7}.coaching-service-card:has(input:checked)::after{content:'✓';position:absolute;right:13px;top:13px;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--lime);color:#10150d;font-weight:900}.coaching-safety-note{display:grid;gap:5px;max-width:820px;margin-bottom:18px}.coaching-safety-note strong{color:var(--text);font-size:12px}.coaching-safety-note span{line-height:1.7}.coaching-support-form,.coaching-login-card{max-width:820px}.coaching-login-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px}.coaching-login-card p{margin:0;color:#d9dfdc;font-size:13px;line-height:1.7}.coaching-support-form .section-title{margin-bottom:18px}
.profile-header-upload{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;margin:14px 0 20px}
.profile-header-preview{grid-column:1/-1;height:150px;border:1px dashed var(--line);border-radius:10px;background:linear-gradient(135deg,#1f3a3e,#26351c);display:grid;place-items:center;color:var(--muted);overflow:hidden}
.profile-header-preview img{width:100%;height:100%;object-fit:cover}
.profile-header-upload .action{justify-self:start}
.account-settings-card>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:800;color:var(--text)}
.account-settings-card[open]>summary{margin-bottom:18px}
.following-list-copy{display:grid;gap:2px;flex:1;min-width:0}.following-list-copy small{color:var(--muted);font-weight:500}
.home-practice-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}

@media (max-width:720px){
  .social-profile-cover{height:142px}
  .social-profile-body{padding:0 16px 20px}
  .social-profile-avatar{width:92px;height:92px;border-width:4px;transform:translateY(-43px);margin-bottom:-43px}
  .social-profile-avatar-row{min-height:54px}
  .social-profile-actions{max-width:70%;padding-top:9px}
  .social-profile-actions .btn{width:auto;min-height:40px;padding:9px 12px}
  .social-profile-name-row h1{font-size:20px}
  .profile-header-upload{grid-template-columns:1fr}.profile-header-upload .btn,.profile-header-upload .action{width:100%;justify-self:stretch;text-align:center}
  .profile-header-preview{height:118px}
  .home-practice-actions{align-items:stretch}.home-practice-actions .btn{flex:1 1 150px}
  .coaching-service-grid{grid-template-columns:1fr}.coaching-service-card{min-height:0;padding:16px 48px 16px 16px}.coaching-login-card{align-items:stretch;flex-direction:column}.coaching-login-card .btn,.coaching-support-form .form-actions .btn{width:100%}.consultation-image img,.admin-consultation-image img{max-height:380px}
}

/* ==================== 出会い改善診断 ==================== */
.bottleneck-intro,.bottleneck-form{max-width:760px;padding:clamp(22px,4vw,36px)}
.bottleneck-intro h2,.bottleneck-form h2,.bottleneck-result-hero h2{margin:5px 0 12px;font-size:clamp(23px,3.4vw,34px);line-height:1.35}
.bottleneck-eyebrow,.bottleneck-step-label{margin:0;color:var(--lime);font:800 11px 'DM Sans',sans-serif;letter-spacing:1.2px;text-transform:uppercase}
.bottleneck-lead{max-width:650px;margin:0;color:#d9dfdc;font-size:15px;line-height:1.85}
.bottleneck-positioning{display:grid;gap:5px;margin-top:18px;padding:14px 15px;border-left:3px solid var(--lime);border-radius:9px;background:#182018}.bottleneck-positioning strong{color:var(--text);font-size:13px;line-height:1.6}.bottleneck-positioning span{color:var(--muted);font-size:11px;line-height:1.7}
.bottleneck-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px}
.bottleneck-principles>div{display:grid;gap:6px;align-content:start;min-height:112px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.bottleneck-principles strong{font-size:13px;color:var(--text)}.bottleneck-principles span{color:var(--muted);font-size:11px;line-height:1.65}
.bottleneck-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 28px}
.bottleneck-progress span{position:relative;padding-top:11px;border-top:3px solid var(--line);color:var(--muted);font-size:10px;font-weight:800}
.bottleneck-progress span.active{border-color:var(--lime);color:var(--lime)}
.bottleneck-form>p:not(.bottleneck-step-label){color:var(--muted);font-size:13px;line-height:1.75}
.bottleneck-form fieldset{min-width:0;margin:24px 0 0;padding:0;border:0}.bottleneck-form legend{margin-bottom:11px;color:var(--text);font-size:13px;font-weight:800}
.bottleneck-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.bottleneck-choice{position:relative;display:flex;align-items:center;min-height:56px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#13181b;color:#d9dfdc;cursor:pointer;transition:border-color .15s,background .15s}
.bottleneck-choice:hover,.bottleneck-choice:has(input:focus-visible){border-color:#65734b}.bottleneck-choice:has(input:checked),.bottleneck-choice.selected{border-color:var(--lime);background:#20291d;color:var(--text);box-shadow:inset 0 0 0 1px rgba(215,243,107,.12)}
.bottleneck-choice input{position:absolute;opacity:0;pointer-events:none}.bottleneck-choice span{font-size:12px;line-height:1.55;font-weight:700}
.bottleneck-choice:has(input:checked)::after{content:'✓';display:grid;place-items:center;width:20px;height:20px;margin-left:auto;border-radius:50%;background:var(--lime);color:#11180f;font-size:11px;font-weight:900;flex:none}
.bottleneck-readiness-fields{display:grid;gap:18px;margin-top:20px}.bottleneck-form fieldset.bottleneck-readiness-item{margin-top:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#111619}.bottleneck-readiness-item legend{display:flex;align-items:center;gap:9px;padding:0 4px}.bottleneck-readiness-item legend span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#26301f;color:var(--lime);font:800 11px 'DM Sans';flex:none}.bottleneck-readiness-item .bottleneck-choice-grid{grid-template-columns:1fr 1fr}.bottleneck-readiness-item .bottleneck-choice{min-height:50px}
.bottleneck-funnel-fields{display:grid;gap:8px;margin-top:20px}
.bottleneck-number-field{display:grid;grid-template-columns:minmax(0,1fr) 110px 24px;gap:10px;align-items:center;min-height:62px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:#13181b}
.bottleneck-number-field>span{display:flex;align-items:center;gap:10px;min-width:0;color:#d9dfdc;font-size:12px;line-height:1.5}.bottleneck-number-field>span strong{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--panel-2);color:var(--lime);font:800 11px 'DM Sans';flex:none}
.bottleneck-number-field input{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#0f1315;color:var(--text);font-size:16px;text-align:right;outline:2px solid transparent}.bottleneck-number-field input:focus-visible{border-color:var(--cyan);outline-color:rgba(123,221,224,.25)}.bottleneck-number-field small{color:var(--muted);font-size:11px}
.bottleneck-error{margin-top:18px}.bottleneck-result-page{display:grid;gap:14px;max-width:820px}.bottleneck-result-page>.bottleneck-progress{margin-bottom:2px}
.bottleneck-result-hero{padding:clamp(22px,4vw,34px);border-color:#4e5d37;background:radial-gradient(circle at 90% 10%,rgba(215,243,107,.13),transparent 35%),var(--panel)}
.bottleneck-result-category{display:inline-flex;margin-top:14px;padding:5px 10px;border:1px solid #64734b;border-radius:999px;background:#242e20;color:var(--lime);font-size:11px;font-weight:800}
.bottleneck-result-hero>p:last-of-type{max-width:650px;margin:0;color:#d9dfdc;font-size:15px;line-height:1.8}
.bottleneck-confidence{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px;padding-top:15px;border-top:1px solid var(--line)}.bottleneck-confidence span{font-size:12px}.bottleneck-confidence strong{color:var(--lime)}.bottleneck-confidence .bottleneck-confidence-score{color:var(--muted);font-size:10px}.bottleneck-confidence small{width:100%;color:var(--muted);font-size:11px;line-height:1.6}.bottleneck-confidence-meter{width:min(190px,42%);height:7px;border-radius:999px;background:#0f1315;overflow:hidden}.bottleneck-confidence-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#708439,var(--lime))}
.bottleneck-result-section{padding:20px}.bottleneck-result-section h3{margin:0 0 12px;font-size:16px}.bottleneck-result-section ul,.bottleneck-result-section ol{display:grid;gap:9px;margin:0;padding-left:21px;color:#d9dfdc;font-size:13px;line-height:1.7}.bottleneck-result-section li::marker{color:var(--lime);font-weight:900}
.bottleneck-result-section details{margin-top:16px;border-top:1px solid var(--line);padding-top:13px}.bottleneck-result-section summary{min-height:44px;display:flex;align-items:center;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer}
.bottleneck-secondary{margin-top:16px;padding:14px;border:1px solid #46503a;border-radius:9px;background:#171d17}.bottleneck-secondary strong{color:var(--lime);font-size:11px;letter-spacing:.6px}.bottleneck-secondary p{margin:5px 0 0;color:#d9dfdc;font-size:12px;line-height:1.7}
.bottleneck-plan{border-left:3px solid var(--lime);background:#182018}.bottleneck-plan .bottleneck-eyebrow{margin-bottom:6px}
.bottleneck-result-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px}.bottleneck-result-columns>.card{height:100%}
.bottleneck-profile{display:grid;gap:11px}.bottleneck-profile-row>div:first-child{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.bottleneck-profile-row span{color:#d9dfdc;font-size:11px;line-height:1.45}.bottleneck-profile-row strong{max-width:48%;color:var(--muted);font-size:10px;line-height:1.45;text-align:right}.bottleneck-profile-bar{height:7px;margin-top:6px;border-radius:999px;background:#0f1315;overflow:hidden}.bottleneck-profile-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--lime))}
.bottleneck-result-funnel{display:grid;gap:10px;padding:5px 0 2px}.bottleneck-result-row>div:first-child{display:flex;justify-content:space-between;gap:12px;align-items:center}.bottleneck-result-row span{color:var(--muted);font-size:11px}.bottleneck-result-row strong{font-size:11px}.bottleneck-result-bar{height:7px;margin-top:5px;border-radius:999px;background:#0f1315;overflow:hidden}.bottleneck-result-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lime),var(--cyan))}
.bottleneck-interview-cta{display:grid;justify-items:start;gap:9px;border-color:#52643b;background:linear-gradient(135deg,#1b2419,#171c1d)}.bottleneck-interview-cta h3,.bottleneck-interview-cta p{margin:0}.bottleneck-interview-cta>p:not(.bottleneck-eyebrow){max-width:600px;color:#d9dfdc;font-size:13px;line-height:1.7}.bottleneck-interview-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}.bottleneck-interview-cta .btn{margin-top:0}
.bottleneck-interview-summary,.bottleneck-interview-empty,.bottleneck-interview-form{max-width:680px}.bottleneck-interview-summary{display:grid;gap:8px;margin-bottom:14px;padding:20px;border-color:#52643b;background:#192019}.bottleneck-interview-summary strong{font-size:17px}.bottleneck-interview-summary span,.bottleneck-interview-empty p{color:#d9dfdc;font-size:13px;line-height:1.7}.bottleneck-interview-empty{display:grid;justify-items:start;gap:15px;padding:22px}.bottleneck-interview-form textarea{min-height:96px}
.bottleneck-result-actions{margin-top:2px}.bottleneck-result-actions .btn{flex:1 1 160px}.bottleneck-intro .notice,.bottleneck-result-page>.notice{font-size:11px;line-height:1.7}
@media (max-width:720px){
  .bottleneck-principles,.bottleneck-choice-grid,.bottleneck-result-columns,.bottleneck-readiness-item .bottleneck-choice-grid{grid-template-columns:1fr}
  .bottleneck-principles>div{min-height:0}.bottleneck-number-field{grid-template-columns:minmax(0,1fr) 82px 20px;padding:9px 10px}.bottleneck-number-field>span{font-size:11px}.bottleneck-number-field>span strong{width:22px;height:22px}
  .bottleneck-form .form-actions,.bottleneck-result-actions{display:grid;grid-template-columns:1fr}.bottleneck-form .form-actions .btn,.bottleneck-result-actions .btn{width:100%}
  .bottleneck-interview-actions{display:grid;width:100%}.bottleneck-interview-cta .btn,.bottleneck-interview-form .form-actions .btn{width:100%}
}
@media (max-width:380px){.bottleneck-number-field{grid-template-columns:minmax(0,1fr) 68px 16px;gap:6px}.bottleneck-number-field>span{gap:7px}.bottleneck-intro,.bottleneck-form{padding:18px}}

/* ==================== 2026-09-04 Home clarity pass ==================== */
/* Home is an action surface, not a marketing brochure. Timeline, 速報 and legal/safety remain
   separate destinations so their different purposes are visible before the user enters them. */
@media (min-width:721px){
  .main-content{width:calc(100% - 270px);max-width:1380px;padding:52px 56px 110px}
  .nav-label{font-size:14px}.nav-item{padding:12px 14px}
}
.home-dashboard{display:grid;gap:46px;width:100%;max-width:1120px;margin:0 auto}
.home-welcome{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:44px;min-height:250px;padding:48px;border:1px solid #343d34;border-radius:24px;overflow:hidden;background:radial-gradient(circle at 84% 18%,rgba(215,243,107,.20),transparent 32%),linear-gradient(135deg,#151b19 0%,#101416 72%)}
.home-welcome::after{content:'G';position:absolute;right:34px;top:-52px;color:rgba(215,243,107,.045);font:900 260px/1 'DM Sans',sans-serif;pointer-events:none}
.home-welcome>div{position:relative;z-index:1}.home-welcome>div:first-child{max-width:720px}
.home-welcome-label{margin:0 0 14px;color:var(--lime);font:800 12px 'DM Sans','Noto Sans JP',sans-serif;letter-spacing:1.1px}
.home-welcome h1{max-width:760px;margin:0;color:var(--text);font-size:clamp(34px,4.6vw,58px);font-weight:900;line-height:1.22;letter-spacing:-.035em}
.home-welcome>div:first-child>p:last-child{max-width:690px;margin:18px 0 0;color:#c5ceca;font-size:16px;line-height:1.85}
.home-welcome-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;flex:none}.home-welcome-actions .btn{min-height:48px;padding:13px 19px}
.home-focus-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,.72fr);gap:20px;align-items:stretch}
.home-focus-main>section,.home-focus-progress,.home-focus-progress>section{height:100%}.home-focus-main .home-section-heading,.home-focus-progress .home-section-heading{margin-bottom:14px}
.home-focus-main .home-action-card,.home-focus-main .home-pillar-card{height:calc(100% - 46px);min-height:245px;margin:0;padding:30px;border-radius:18px;background:linear-gradient(145deg,#1a211a,#151a1c 70%)}
.home-focus-main .home-action-card{align-items:flex-end}.home-focus-main .home-action-card h3{font-size:26px;line-height:1.35}.home-focus-main .home-action-card p{font-size:14px;line-height:1.8}
.home-focus-main .home-action-state{padding:6px 11px;font-size:11px}
.home-focus-progress{padding:24px;border:1px solid var(--line);border-radius:18px;background:#14191b}.home-focus-progress .home-proof-grid{grid-template-columns:1fr;gap:0}.home-focus-progress .home-proof-grid>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:18px 4px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.home-focus-progress .home-proof-grid>div:last-child{border-bottom:0}.home-focus-progress .home-proof-grid strong{font-size:34px}.home-focus-progress .home-proof-grid span{font-size:12px}
.home-dashboard .home-section-heading{margin-bottom:16px}.home-dashboard .home-section-heading h2{font-size:24px}.home-dashboard .home-section-heading .kicker{margin-bottom:6px;font-size:11px}
.home-dashboard .home-journey-grid{gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#14191b}.home-dashboard .home-journey-step{min-height:158px;padding:25px 24px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent}.home-dashboard .home-journey-step:last-child{border-right:0}.home-dashboard .home-journey-step:hover,.home-dashboard .home-journey-step:focus-visible{background:#1d261b}.home-dashboard .home-journey-step>span{font-size:12px}.home-dashboard .home-journey-step strong{margin-top:5px;font-size:17px}.home-dashboard .home-journey-step small{font-size:12px;line-height:1.65}
.home-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.home-channel-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:138px;padding:24px;border:1px solid var(--line);border-radius:18px;background:#14191b;color:var(--text);text-align:left;overflow:hidden;transition:transform .18s,border-color .18s,background .18s}.home-channel-card:hover,.home-channel-card:focus-visible{transform:translateY(-2px);border-color:#5c6c42;background:#1a211b}.home-channel-card::after{content:'';position:absolute;right:-38px;bottom:-52px;width:135px;height:135px;border:1px solid rgba(215,243,107,.09);border-radius:50%}.home-channel-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#232c1d;color:var(--lime)}.home-channel-icon svg{width:24px;height:24px}.home-channel-card>span:nth-child(2){display:grid;gap:6px}.home-channel-card strong{font-size:17px;line-height:1.35}.home-channel-card small{color:var(--muted);font-size:11px;line-height:1.6}.home-channel-card>b{position:relative;z-index:1;color:var(--lime);font-size:20px}.home-channel-pulse .home-channel-icon{background:#183033;color:var(--cyan)}.home-channel-safety .home-channel-icon{background:#2a2620;color:#f2c078}
.home-dashboard .home-support-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;justify-items:stretch;gap:18px 28px;padding:32px;border-radius:18px;background:linear-gradient(135deg,#1a2218,#14191b)}.home-dashboard .home-support-card h2{font-size:24px}.home-dashboard .home-support-card p{font-size:14px}.home-dashboard .home-support-card small{grid-column:1/-1;font-size:11px}.home-dashboard .public-info-links{margin-top:-18px}
.timeline-page{width:100%;max-width:760px}.timeline-page .empty-questions,.timeline-page .home-pillar-card{padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}

@media (max-width:980px){
  .home-welcome{align-items:flex-start;flex-direction:column;min-height:0}.home-welcome-actions{justify-content:flex-start}
  .home-focus-layout{grid-template-columns:1fr}.home-focus-progress .home-proof-grid{grid-template-columns:repeat(3,1fr);gap:10px}.home-focus-progress .home-proof-grid>div{display:grid;justify-content:start;padding:12px;border:0}.home-channel-grid{grid-template-columns:1fr 1fr}.home-channel-safety{grid-column:1/-1}
}
@media (max-width:720px){
  .home-dashboard{gap:32px}.home-welcome{margin:-28px -16px 0;padding:34px 20px 31px;border-width:0 0 1px;border-radius:0}.home-welcome::after{right:-10px;top:-22px;font-size:170px}.home-welcome-label{margin-bottom:11px;font-size:10px}.home-welcome h1{font-size:34px;line-height:1.25}.home-welcome>div:first-child>p:last-child{margin-top:14px;font-size:14px;line-height:1.75}.home-welcome-actions{display:grid;width:100%}.home-welcome-actions .btn{width:100%}
  .home-focus-layout{gap:16px}.home-focus-main .home-section-heading,.home-focus-progress .home-section-heading{margin-bottom:11px}.home-focus-main .home-action-card,.home-focus-main .home-pillar-card{height:auto;min-height:0;padding:22px;border-radius:15px}.home-focus-main .home-action-card h3{font-size:21px}.home-focus-main .home-action-card p{font-size:13px}.home-focus-progress{padding:18px;border-radius:15px}.home-focus-progress .home-proof-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.home-focus-progress .home-proof-grid>div{padding:8px 5px}.home-focus-progress .home-proof-grid strong{font-size:27px}.home-focus-progress .home-proof-grid span{font-size:10px;line-height:1.45}
  .home-dashboard .home-section-heading h2{font-size:20px}.home-dashboard .home-section-heading .link-inline{font-size:11px}.home-dashboard .home-journey-grid{grid-template-columns:1fr 1fr;border-radius:15px}.home-dashboard .home-journey-step{min-height:132px;padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.home-dashboard .home-journey-step:nth-child(2n){border-right:0}.home-dashboard .home-journey-step:nth-last-child(-n+2){border-bottom:0}.home-dashboard .home-journey-step strong{font-size:15px}.home-dashboard .home-journey-step small{font-size:10.5px}
  .home-channel-grid{grid-template-columns:1fr;gap:10px}.home-channel-safety{grid-column:auto}.home-channel-card{min-height:104px;padding:18px;border-radius:15px}.home-channel-card strong{font-size:16px}.home-channel-card small{font-size:11px}
  .home-dashboard .home-support-card{grid-template-columns:1fr;padding:23px;border-radius:15px}.home-dashboard .home-support-card h2{font-size:20px}.home-dashboard .home-support-card p{font-size:13px}.home-dashboard .home-support-card small{grid-column:auto}.home-dashboard .public-info-links{margin-top:-10px}
  .timeline-page{max-width:none}.timeline-page .empty-questions,.timeline-page .home-pillar-card{padding:22px;border-radius:14px}
}

/* ==================== 2026-09-04 Community hub home ==================== */
/* Circle-inspired information architecture: one community area and a quiet support rail. */
.home-hub{display:grid;gap:30px;width:100%;max-width:1080px;margin:0 auto}
.home-hub-header{padding:4px 0 24px;border-bottom:1px solid #303538}
.home-hub-header h1{margin:0;color:var(--text);font-size:32px;font-weight:800;line-height:1.25;letter-spacing:-.025em}
.home-hub-header p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.7}
.home-hub-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.82fr);gap:24px;align-items:start}
.home-hub-side{display:grid;gap:18px}
.home-hub-panel{overflow:hidden;border:1px solid #30373a;border-radius:14px;background:#14181a}
.home-hub-panel-header{min-height:68px;padding:19px 22px;border-bottom:1px solid #30373a}
.home-hub-panel-header h2{margin:0;color:var(--text);font-size:15px;font-weight:800;line-height:1.4;letter-spacing:-.01em}
.home-hub-panel-header p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.home-directory-list{border:0}
.home-directory-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto 18px;align-items:center;gap:15px;width:100%;min-height:82px;padding:15px 20px;border:0;border-bottom:1px solid #282e31;background:transparent;color:var(--text);text-align:left;text-decoration:none;transition:background-color .14s,color .14s}
.home-directory-row:last-child{border-bottom:0}
.home-directory-row:hover,.home-directory-row:focus-visible{background:#1b2022;outline:none}
.home-directory-row:focus-visible{box-shadow:inset 3px 0 0 var(--lime)}
.home-directory-icon{display:grid;place-items:center;width:30px;height:30px;color:#89928e}
.home-directory-icon svg{width:19px;height:19px}
.home-directory-copy{display:grid;gap:4px;min-width:0}
.home-directory-copy strong{font-size:15px;font-weight:750;line-height:1.4}
.home-directory-copy small{color:var(--muted);font-size:12px;line-height:1.55}
.home-directory-meta{color:#858e89;font-size:11px;white-space:nowrap}
.home-directory-arrow{color:#69716d;font-size:23px;font-weight:300;line-height:1}
.home-directory-row.is-primary .home-directory-icon,.home-directory-row.is-primary .home-directory-arrow{color:var(--lime)}
.home-directory-row.is-line .home-directory-icon{color:#4bd66d}
.home-hub-community .home-directory-row:first-child{min-height:96px}
.home-hub-consultation .home-directory-row,.home-hub-knowledge .home-directory-row{grid-template-columns:27px minmax(0,1fr) auto 14px;gap:11px;min-height:74px;padding:13px 16px}
.home-hub-consultation .home-directory-icon,.home-hub-knowledge .home-directory-icon{width:27px;height:27px}
.home-hub-consultation .home-directory-icon svg,.home-hub-knowledge .home-directory-icon svg{width:18px;height:18px}
.home-hub-consultation .home-directory-copy strong,.home-hub-knowledge .home-directory-copy strong{font-size:13px}
.home-hub-consultation .home-directory-copy small,.home-hub-knowledge .home-directory-copy small{font-size:10.5px}
.home-hub .public-info-links{margin-top:-6px}

@media (max-width:720px){
  .home-hub{gap:24px;margin-top:-4px}
  .home-hub-header{padding:0 0 20px}
  .home-hub-header h1{font-size:27px}
  .home-hub-header p{font-size:13px}
  .home-hub-layout{display:flex;flex-direction:column;gap:14px}
  .home-hub-side{display:contents}
  .home-hub-community{order:2;width:100%}.home-hub-consultation{order:1;width:100%}.home-hub-knowledge{order:3;width:100%}
  .home-hub-panel{border-radius:12px}
  .home-hub-panel-header{min-height:0;padding:16px 17px}.home-hub-panel-header h2{font-size:14px}.home-hub-panel-header p{font-size:10.5px}
  .home-directory-row,.home-hub-consultation .home-directory-row,.home-hub-knowledge .home-directory-row{grid-template-columns:27px minmax(0,1fr) auto 14px;gap:12px;min-height:70px;padding:12px 14px}
  .home-directory-icon{width:27px;height:27px}.home-directory-icon svg{width:18px;height:18px}
  .home-directory-copy strong{font-size:14px}.home-directory-copy small{font-size:11px;line-height:1.5}
  .home-directory-meta{font-size:10px}.home-directory-arrow{font-size:20px}
  .home-hub-community .home-directory-row:first-child{min-height:76px}
  .home-hub-consultation .home-directory-copy strong,.home-hub-knowledge .home-directory-copy strong{font-size:14px}
  .home-hub-consultation .home-directory-copy small,.home-hub-knowledge .home-directory-copy small{font-size:11px}
}
