*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#1a1d1f;background:#f5f6f7}body{margin:0}.topbar{position:sticky;top:0;z-index:20;height:68px;padding:0 28px;display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid #e4e7e9;background:rgba(255,255,255,.9);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none;width:max-content}.mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#202427;color:#fff;font-weight:800}.switcher{display:flex;gap:4px;padding:4px;background:#eef0f1;border-radius:14px}.view-switch,.tab{border:0;background:transparent;color:#73797e;font-weight:700;border-radius:10px;padding:8px 12px}.view-switch.active,.tab.active{background:#fff;color:#1a1d1f;box-shadow:0 1px 3px #00000010}.user-chip{justify-self:end;display:flex;align-items:center;gap:8px;border:1px solid #e2e5e7;background:#fff;border-radius:99px;padding:4px 10px 4px 4px;font-size:12px;font-weight:700}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eceeef;font-size:11px}.avatar.large{width:42px;height:42px}main{max-width:1180px;margin:auto;padding:48px 24px 90px}.view{display:none}.view.active{display:block}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-head h1{font-size:42px;line-height:1;margin:0;letter-spacing:-.05em}.page-head p:last-child{color:#6f7579;margin:10px 0 0}.eyebrow,.label{margin:0 0 5px;font-size:13px;font-weight:800;letter-spacing:.12em;color:#8d9398}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1.5fr .75fr;margin-bottom:18px}.grid.content{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr)}.stack{display:grid;gap:18px;align-content:start}.card{background:#fff;border:1px solid #e3e6e8;border-radius:20px;padding:24px;box-shadow:0 14px 40px #16191b0d}.row{display:flex;align-items:center;gap:14px}.between{justify-content:space-between}.end{justify-content:flex-end}.card h2{margin:0;letter-spacing:-.035em}.badge,.admin-badge,.type{display:inline-flex;width:max-content;padding:5px 8px;border-radius:99px;background:#eceeef;font-size:10px;font-weight:800}.admin-badge{background:#202427;color:white}.usage-copy{display:grid;gap:3px;margin:28px 0 14px}.usage-copy strong{font-size:18px}.usage-copy span{font-size:12px;color:#73797e}.meter{height:8px;background:#eef0f1;border-radius:99px;margin-bottom:20px}.meter span{display:block;width:0;height:100%;background:#202427}.actions{display:flex;gap:10px;flex-wrap:wrap}button{cursor:pointer}.primary,.secondary,.ghost{min-height:42px;padding:0 15px;border-radius:12px;font:inherit;font-size:13px;font-weight:800}.primary{border:1px solid #202427;background:#202427;color:#fff}.secondary{border:1px solid #cfd4d7;background:#fff;color:#1a1d1f}.ghost{border:1px solid #e2e5e7;background:transparent}.small{min-height:36px}.full{width:100%}.primary small,.secondary small{margin-left:8px;opacity:.65}.micro{font-size:12px!important;color:#90969a!important}.quick-list{display:grid;gap:10px;margin-top:12px}.quick{min-height:70px;padding:11px;border:1px solid #e2e5e7;background:#fff;border-radius:14px;display:flex;align-items:center;gap:12px;text-align:left}.quick>span:nth-child(2){display:grid;flex:1}.quick small{color:#73797e}.quick em{font-style:normal;font-size:11px;font-weight:900;background:#eceeef;border-radius:99px;padding:4px 6px}.qicon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#202427;color:#fff;font-weight:900}.qicon.muted{background:#eceeef;color:#1a1d1f}.section-title{margin-bottom:16px}.tabs{display:flex;gap:5px;overflow:auto;padding-bottom:10px;border-bottom:1px solid #e4e7e9;margin-bottom:12px}.tab{white-space:nowrap}.tab span{color:#a0a5a9}.list{display:grid;gap:8px}.message{width:100%;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:13px;border:1px solid transparent;background:transparent;border-radius:14px;text-align:left}.message:hover,.message.unread{background:#f7f8f9;border-color:#eef0f1}.symbol{width:34px;height:34px;border-radius:10px;background:#eceeef;display:grid;place-items:center;font-weight:900}.message .body{min-width:0}.message .title{display:flex;align-items:center;gap:7px}.message p{margin:4px 0 0;color:#73797e;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-size:11px;color:#9da2a6;text-align:right}.type.direct{background:#e8eef8;color:#426087}.type.ticket{background:#edf3e8;color:#56703f}.type.announcement{background:#f7eee1;color:#8b6528}.empty{min-height:145px;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;color:#73797e}.empty>span{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef0f1;color:#1a1d1f}.empty small{font-size:12px}.account-box{display:flex;align-items:center;gap:10px;margin:16px 0}.account-box div{display:grid}.account-box small{color:#73797e}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stats>div{padding:16px 18px;background:#fff;border:1px solid #e2e5e7;border-radius:16px}.stats span,.stats small{display:block;color:#73797e;font-size:12px}.stats b{display:block;font-size:25px;letter-spacing:-.04em}.admin-grid{display:grid;grid-template-columns:310px 1fr;gap:18px}.search,input,select,textarea{width:100%;border:1px solid #e0e4e6;border-radius:12px;padding:11px 12px;background:#fff;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:#8d959a;box-shadow:0 0 0 3px #2024270f}.search{margin:14px 0}.member-list{display:grid;gap:6px;max-height:590px;overflow:auto}.member{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid transparent;background:transparent;border-radius:12px;padding:10px;text-align:left}.member:hover,.member.active{background:#f6f7f8;border-color:#eceeef}.member .main{display:grid;min-width:0}.member .main strong{font-size:11px;overflow:hidden;text-overflow:ellipsis}.member .main small{font-size:12px;color:#73797e}.member .pass{font-size:11px;font-weight:800}.admin-main{min-height:650px}.panel{display:none}.panel.active{display:block}.selected{align-items:flex-start;margin:18px 0}.selected p:last-child{font-size:12px;color:#73797e}.conversation{min-height:240px;max-height:330px;overflow:auto;padding:14px;background:#f7f8f9;border-radius:16px;display:grid;gap:8px;margin-bottom:16px}.bubble{max-width:78%;padding:10px 12px;border-radius:14px;font-size:12px;white-space:pre-wrap}.bubble.admin{justify-self:end;background:#202427;color:#fff;border-bottom-right-radius:5px}.bubble.member{background:#fff;border:1px solid #e2e5e7;border-bottom-left-radius:5px}.bubble small{display:block;margin-top:5px;opacity:.55}.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-size:10px;font-weight:800;color:#73797e}.inquiry{border:1px solid #e2e5e7;border-radius:14px;padding:14px}.inquiry h3{margin:8px 0 4px;font-size:13px}.inquiry p{margin:0;color:#73797e;font-size:12px}.inquiry .row{margin-top:10px}.announcement-grid{display:grid;grid-template-columns:1fr .8fr;gap:22px}.preview{padding:18px;background:#f7f8f9;border-radius:16px;align-self:start}.preview-card{margin-top:10px;background:#fff;border:1px solid #e2e5e7;border-radius:14px;padding:18px}.preview-card h3{font-size:15px}.preview-card p{font-size:12px;color:#73797e;white-space:pre-wrap}.modal-wrap{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:20px;background:#171b1d66;backdrop-filter:blur(5px)}.modal-wrap.open{display:grid}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 24px 70px #11151933}.modal.small{width:min(460px,100%)}.x{width:36px;height:36px;border:1px solid #e2e5e7;background:#fff;border-radius:10px}.note,.info-body{padding:12px;background:#f5f6f7;border-radius:12px;color:#73797e;font-size:11px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;z-index:120;background:#202427;color:#fff;border-radius:99px;padding:9px 14px;font-size:11px;font-weight:800;transition:.18s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:900px){.topbar{grid-template-columns:1fr auto;padding:0 16px}.switcher{position:fixed;bottom:14px;left:50%;transform:translateX(-50%);box-shadow:0 8px 30px #11151922}.user-chip span:last-child{display:none}main{padding:34px 16px 90px}.grid.two,.grid.content,.admin-grid,.announcement-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}}@media(max-width:600px){.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:34px}.card{padding:18px}.actions{display:grid}.primary,.secondary{width:100%}.row.end{align-items:stretch;flex-direction:column}.stats{grid-template-columns:1fr 1fr}}
/* Light-only product presentation and v2 readability + access adjustments */
html { color-scheme: only light; }
body { background: #f5f6f7; color: #1a1d1f; }
input, select, textarea { color: #1a1d1f; }
body { font-size: 15px; }
.label, .eyebrow { font-size: 12px; }
.micro { font-size: 12px !important; line-height: 1.6; }
.message p, .inquiry p, .selected p:last-child, .preview-card p,
.account-box small, .stats span, .stats small, .member .main small {
  font-size: 12px;
}
.meta, .member .pass, .type { font-size: 11px; }
.avatar { flex: 0 0 auto; aspect-ratio: 1 / 1; }
.account-box .avatar { flex: 0 0 42px; width: 42px; height: 42px; }
.account-actions { display: grid; gap: 9px; }
.modal-intro { color: #6f7579; font-size: 13px; line-height: 1.7; margin: 6px 0 18px; }

.admin-entry {
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 35;
  border: 0;
  background: transparent;
  color: #a2a7ab;
  font-size: 11px;
  padding: 6px 8px;
  opacity: .55;
}
.admin-entry:hover { opacity: 1; color: #666d72; }
body.admin-open .admin-entry::after { content: "を閉じる"; }

@media(max-width:900px){
  .topbar{grid-template-columns:1fr auto}
}

/* v3 typography scale — minimum readable size around 14px */
body {
  font-size: 16px;
  line-height: 1.65;
}

.page-head h1 {
  font-size: clamp(40px, 5vw, 50px);
}

.card h2,
.selected h2 {
  font-size: 24px;
}

.hero-card h2 {
  font-size: 32px;
}

.preview-card h3,
.inquiry h3 {
  font-size: 16px;
}

.label,
.eyebrow {
  font-size: 14px;
  line-height: 1.4;
}

.page-head p:last-child,
.usage-copy span,
.quick small,
.message p,
.inquiry p,
.selected p:last-child,
.preview-card p,
.account-box small,
.stats span,
.stats small,
.member .main small,
.modal-intro,
.info-body,
.note,
.form label,
.micro {
  font-size: 14px !important;
  line-height: 1.65;
}

.type,
.meta,
.member .pass,
.quick em {
  font-size: 12px;
}

.primary,
.secondary,
.ghost,
.view-switch,
.tab {
  font-size: 14px;
}

.user-chip {
  font-size: 14px;
}

.usage-copy strong {
  font-size: 20px;
}

.member .main strong {
  font-size: 14px;
}

.bubble {
  font-size: 14px;
  line-height: 1.6;
}

.bubble small {
  font-size: 12px;
}

.stats b {
  font-size: 30px;
}

.admin-badge,
.badge {
  font-size: 12px;
}

input,
select,
textarea {
  font-size: 14px;
  line-height: 1.55;
}

@media(max-width:600px){
  body { font-size: 15px; }
  .page-head h1 { font-size: 38px; }
  .card h2, .selected h2 { font-size: 22px; }
  .hero-card h2 { font-size: 29px; }
}

/* v4 visual tuning from actual 1440px screenshot */
:root {
  --text-body: 15px;
  --text-small: 14px;
  --text-label: 13px;
  --text-title: 16px;
}

body {
  font-size: var(--text-body);
  line-height: 1.65;
}

/* Header */
.brand strong {
  font-size: 16px;
}
.user-chip {
  font-size: 14px;
}
.mark {
  width: 36px;
  height: 36px;
  font-size: 16px;
}

/* Page heading */
.page-head h1 {
  font-size: clamp(44px, 4vw, 52px);
  line-height: 1.05;
}
.page-head p:last-child {
  font-size: 15px !important;
}
.eyebrow {
  font-size: 13px;
  letter-spacing: .13em;
}

/* Card hierarchy */
.card {
  padding: 28px;
}
.card h2,
.selected h2 {
  font-size: 24px;
  line-height: 1.25;
}
.hero-card h2 {
  font-size: 34px;
}
.label {
  font-size: 13px;
  letter-spacing: .11em;
}
.usage-copy strong {
  font-size: 19px;
}
.usage-copy span {
  font-size: 14px !important;
}

/* Buttons / tabs / form controls */
.primary,
.secondary,
.ghost {
  font-size: 14px;
  min-height: 44px;
}
.tab {
  font-size: 14px;
  padding: 9px 11px;
}
input,
select,
textarea {
  font-size: 15px;
}

/* Quick actions */
.quick {
  min-height: 76px;
}
.quick b {
  font-size: 16px;
}
.quick small {
  font-size: 14px !important;
}
.quick em {
  font-size: 12px;
}

/* Message list */
.message {
  padding: 16px 14px;
  gap: 13px;
}
.message .title strong {
  font-size: 16px;
  line-height: 1.35;
}
.message p {
  font-size: 14px !important;
  line-height: 1.55;
  margin-top: 6px;
}
.type {
  font-size: 12px;
  padding: 4px 8px;
}
.meta {
  font-size: 12px;
  line-height: 1.45;
}
.symbol {
  width: 38px;
  height: 38px;
  font-size: 15px;
}

/* Purchase/account side cards */
.empty b {
  font-size: 15px;
}
.empty small,
.account-box small {
  font-size: 14px !important;
  line-height: 1.55;
}
.account-box b {
  font-size: 16px;
}
.avatar.large {
  width: 46px;
  height: 46px;
  flex-basis: 46px;
  font-size: 14px;
}

/* Admin */
.stats span,
.stats small,
.member .main small,
.selected p:last-child,
.inquiry p,
.preview-card p,
.micro,
.note,
.info-body,
.modal-intro,
.form label {
  font-size: 14px !important;
}
.stats b {
  font-size: 30px;
}
.member .main strong {
  font-size: 15px;
}
.member .pass {
  font-size: 12px;
}
.bubble {
  font-size: 14px;
}

/* Slightly more breathing room between sections */
.grid.two,
.grid.content,
.admin-grid {
  gap: 20px;
}
.stack {
  gap: 20px;
}

/* Responsive: keep readable rather than shrinking hard */
@media (max-width: 900px) {
  .card { padding: 24px; }
  .page-head h1 { font-size: 42px; }
}
@media (max-width: 600px) {
  body { font-size: 15px; }
  .page-head h1 { font-size: 38px; }
  .card { padding: 20px; }
  .card h2, .selected h2 { font-size: 22px; }
  .hero-card h2 { font-size: 31px; }
  .message .title strong { font-size: 15px; }
}

/* Production inquiry path */
.account-priority{margin-bottom:28px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:18px;align-items:start}
.account-priority>.stack{grid-template-columns:minmax(0,1fr);align-items:start}
.saved-document-list{max-height:65vh;min-height:250px;overflow-y:auto;overflow-wrap:anywhere;display:grid;gap:8px;align-content:start}
.saved-document-row{width:100%;text-align:left;padding:14px;border:1px solid #e2e5e7;border-radius:12px;background:#f7f8f9;font:inherit;overflow-wrap:anywhere}
#savedDocumentActions{max-width:min(560px,90vw);overflow-wrap:anywhere}
#savedDocumentActions a{display:inline-flex;align-items:center;text-decoration:none}
.account-priority .card{border-top:4px solid #34483d}
.support-details{margin:24px 0;color:#626b65}
.support-details>summary{cursor:pointer;padding:14px 0;font-size:14px}
.support-details .card{box-shadow:none;background:#fafbf9}
.support-details h2{font-size:18px}
#sample-contributions{box-shadow:none;margin-top:24px}
#sample-contributions h2{font-size:18px}
.registration-dialog{width:min(480px,calc(100% - 32px));max-height:90dvh;overflow:auto;border:1px solid #d8dcd4;border-radius:20px;padding:24px;color:#1a1d1f}
.registration-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}
.registration-heading h2{font-size:22px;margin:0}
.registration-dialog p{line-height:1.8}
.registration-dialog::backdrop{background:#171b1d66;backdrop-filter:blur(5px)}
.registration-dialog .link-account-form{margin-top:16px}
.registration-dialog #linkAccountPurpose{display:none}
[hidden]#registrationHome,[hidden]#openRegistration{display:none}
@media(max-width:700px){.account-priority{grid-template-columns:minmax(0,1fr)}.account-priority>.stack{grid-row:1}.saved-document-list{max-height:50vh}}
.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}
.session-notice{margin:0 0 14px;padding:12px 14px;border:1px solid #e2e5e7;border-radius:12px;background:#fff;color:#6f7579}
.session-warning{margin-bottom:20px;background:#fffaf0;border:1px solid #efe2c7;color:#6f6655}
.special-request-notice{display:grid;gap:3px;margin:-2px 0 16px;padding:12px 14px;border:1px solid #dfe4df;border-radius:12px;background:#f7f9f7;color:#59625b;font-size:12px;line-height:1.55}
.special-request-notice[hidden]{display:none}
.special-request-notice strong{color:#303732;font-size:13px}
.requester-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.requester-fields[hidden]{display:none}
.requester-email-help{grid-column:1 / -1;margin:-5px 0 0}
.requester-fields input[readonly]{background:#f5f6f7;color:#596067}
.inquiry-layout{margin-bottom:20px;align-items:start}
.section-copy,.unavailable-card p{margin:8px 0 0;color:#73797e;font-size:14px}
.faq-link{display:inline-block;margin-top:8px;color:#485b70;font-size:13px;text-decoration:underline;text-underline-offset:3px}
.faq-link:focus-visible{outline:2px solid #485b70;outline-offset:3px;border-radius:2px}
.form-footer{align-items:center}
.form-status{min-height:1.6em;margin:0;color:#596067;font-size:14px}
.history-card{margin-top:20px}
.detail-meta{margin:8px 0 18px;color:#73797e;font-size:14px}
#detailMessages{min-height:120px;max-height:55vh}
#detailMessages .bubble span{white-space:pre-wrap;overflow-wrap:anywhere}
button:disabled{cursor:not-allowed;opacity:.5}
@media(max-width:600px){.requester-fields{grid-template-columns:1fr}.form-footer{align-items:stretch;flex-direction:column}.button-link{width:100%}}

/* Paid-access foundation: status is read-only and server-resolved. */
.link-account-form{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e8ea}
.link-account-form[hidden]{display:none}
.link-account-form label{display:grid;gap:6px;color:#73797e;font-size:13px;font-weight:700}
.link-account-form label[hidden]{display:none}
.pass-state{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 12px}
.pass-state>div{display:grid;gap:3px;padding:12px;border-radius:12px;background:#f5f6f7}
.pass-state span{color:#73797e;font-size:12px}
.pass-state b{font-size:14px;overflow-wrap:anywhere}
.capability-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.capability-list span{padding:6px 9px;border-radius:99px;background:#eceeef;color:#5d6367;font-size:12px;font-weight:800}
.capability-list span.enabled{background:#e9f2e5;color:#49633b}
.purchase-rewrite-quality{padding:12px 14px;border:1px solid #efe2c7;border-radius:12px;background:#fffaf0;color:#6f6655;font-size:12px;line-height:1.65}
.purchase-rewrite-quality p{margin:6px 0 0}
.purchase-options{display:grid;gap:9px;margin:14px 0}
.purchase-options[hidden]{display:none}
.purchase-options button:disabled{cursor:not-allowed;opacity:.55}
.purchase-options button[data-pass-code]{display:flex;flex-direction:column;gap:4px;padding:12px 10px;white-space:normal;text-align:center}
.purchase-options button[data-pass-code="pass_24h"]{--pass-accent:#3f64c9;background:var(--pass-accent);border-color:var(--pass-accent);color:#fff}
.purchase-options button[data-pass-code="pass_72h"]{--pass-accent:#a96118;background:var(--pass-accent);border-color:var(--pass-accent);color:#fff}
.purchase-options button[data-pass-code]:hover:not(:disabled){filter:brightness(.98)}
.purchase-options button[data-pass-code]:focus-visible{outline:3px solid var(--pass-accent);outline-offset:3px}
.purchase-options .purchase-description{display:block;max-width:100%;font-size:12px;font-weight:500;line-height:1.5}
.purchase-options .micro[hidden]{display:none}
.purchase-confirm-copy{white-space:pre-line;line-height:1.75;color:#4f575b;margin:14px 0 22px}
.purchase-confirm-actions{display:flex;gap:10px;flex-wrap:wrap}
#purchaseStatus.checkout-error{padding:10px 12px;border-radius:10px;background:#fff3f2;color:#8d2925;font-weight:700}
@media(max-width:600px){.pass-state{grid-template-columns:1fr}}

/* Inquiry response visibility and bounded proposal editing. */
.message.status-answered {
  padding-left: 10px;
  border-color: #eed7ba;
  border-left: 4px solid #c77a24;
  background: #fff9f1;
}
.type.status-answered {
  background: #fbefe0;
  color: #854b0b;
  font-weight: 900;
}
#ticketForm { min-width: 0; }
#ticketBody {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  min-height: 180px;
  max-height: 70vh;
  box-sizing: border-box;
  resize: vertical;
  overflow-y: auto;
}
