/* 画面の形だけを書く。色（--bg など）とフォント（--display / --body / --mono）は
   ブランド設定から /brand.css で配られる（app/routers/brand_assets.py） */
*{box-sizing:border-box}
[hidden]{display:none !important}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.75}
a{color:var(--me)}
.wrap{max-width:480px;margin:0 auto;padding:20px 16px 48px;display:flex;flex-direction:column;gap:16px}
.brand a{font-family:var(--display);font-weight:700;font-size:1.25rem;color:var(--fg);text-decoration:none}
.brand span{color:var(--me)}
h1,h2{font-family:var(--display);font-weight:700;line-height:1.4;margin:0;text-wrap:balance}
h1{font-size:1.35rem}
h2{font-size:1.1rem}
h3{font-size:.82rem;font-weight:500;color:var(--muted);margin:0}

.panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.stack{display:flex;flex-direction:column;gap:8px}
.prose ol{margin:0;padding-left:1.4em}
.hint{font-size:.86rem;color:var(--muted);margin:0}

label{font-size:.82rem;color:var(--muted)}
.check-row{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--fg)}
.check-row input{width:18px;height:18px;accent-color:var(--me)}
input[type=email],input[type=text],textarea{width:100%;font-family:var(--body);font-size:1rem;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--me);outline-offset:1px}

button,.btn-link{font-family:var(--body);font-size:.95rem;font-weight:500;padding:11px 16px;border-radius:999px;border:1px solid transparent;cursor:pointer;text-align:center;text-decoration:none;display:inline-block}
button:focus-visible,.btn-link:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
button:disabled{opacity:.35;cursor:not-allowed}
.b-me{background:var(--me);color:var(--surface)}
.b-fr{background:var(--friend);color:var(--surface)}
.b-soft{background:var(--bg);border-color:var(--line);color:var(--fg);font-size:.88rem;padding:9px 14px}

.msg{font-size:.86rem;border-radius:14px;padding:9px 12px;margin:0}
.msg.ok{background:var(--ok-soft);color:var(--ok)}
.msg.ng{background:var(--ng-soft);color:var(--ng)}
.msg.info{background:var(--box-soft);color:var(--fg)}

.shelf{display:flex;flex-direction:column;gap:8px}
.item{display:flex;justify-content:space-between;gap:10px;align-items:center;background:var(--box-soft);border-radius:12px;padding:8px 12px;font-size:.88rem}
.item b{font-weight:500}
.item span{color:var(--muted);font-size:.8rem;text-align:right}

.item-right{display:flex;align-items:center;gap:8px}
.b-mini{background:var(--surface);border-color:var(--line);color:var(--muted);font-size:.75rem;padding:4px 10px}
.bubble{background:var(--friend-soft);color:var(--fg);border-radius:16px 16px 16px 4px;padding:12px 14px;margin:0}
.recovery-code{font-family:var(--mono);font-size:1.15rem;letter-spacing:.04em;text-align:center;word-break:break-all;background:var(--box-soft);border-radius:14px;padding:14px 10px;margin:0;user-select:all}
.tail-input{font-family:var(--mono);font-size:1.4rem !important;letter-spacing:.3em;text-align:center;text-transform:uppercase}
.option{border-top:1px dashed var(--line);padding-top:12px}
.code-input{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--me-soft);color:var(--me);font-size:.8rem;padding:6px 12px}
.memo-text{min-height:220px;resize:vertical;line-height:1.7}
.count{text-align:right}
.b-open{background:var(--friend);border-color:transparent;color:var(--surface);font-weight:700}
.opened{white-space:pre-wrap;word-break:break-word;background:var(--friend-soft);border-radius:14px;padding:14px;margin:0}
.qr{display:block;margin:0 auto;width:min(280px,100%);height:auto;image-rendering:pixelated;border-radius:12px}
.count-center{text-align:center}
.camera{width:100%;border-radius:14px;background:#000;aspect-ratio:1/1;object-fit:cover}
.file-btn{position:relative}
.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.stack-page{display:flex;flex-direction:column;gap:16px}
.lock-gate{margin-top:12vh;text-align:center}
.select{width:100%;font-family:var(--body);font-size:1rem;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
