:root{--bg:#f6f3eb;--surface:#fffdf8;--text:#24231f;--muted:#6f6b61;--line:#d8d2c5;--accent:#425b4a;--accent-text:#fff;--code-bg:#ece9e1;--font-size:19px}
:root[data-theme="dark"]{--bg:#171816;--surface:#222420;--text:#eeeeea;--muted:#b8b7ae;--line:#41443e;--accent:#9ec7aa;--accent-text:#172019;--code-bg:#2d302b}
*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",Meiryo,sans-serif}
body{margin:0;min-height:100vh;background:var(--bg)}button,.primary-button{font:inherit;touch-action:manipulation}
.app-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--bg);border-bottom:1px solid var(--line)}
h1{margin:0;font-size:1.2rem}.file-name{margin:3px 0 0;max-width:72vw;overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}
main{width:min(100%,820px);margin:0 auto;padding:16px}.controls{display:grid;gap:12px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px}
#fileInput{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.primary-button{display:block;width:100%;padding:13px 16px;color:var(--accent-text);font-weight:700;text-align:center;background:var(--accent);border-radius:10px;cursor:pointer}
.button-row,.font-controls{display:flex;align-items:center;gap:8px}.font-controls{justify-content:flex-end;color:var(--muted)}
.small-button,.icon-button{min-height:42px;padding:8px 13px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:9px}.small-button.active{color:var(--accent-text);background:var(--accent);border-color:var(--accent)}
.notice{margin:16px 0;padding:14px 16px;color:var(--muted);background:var(--surface);border-left:4px solid var(--accent);border-radius:8px}.notice p{margin:6px 0 0}
.markdown-body,.source-viewer{min-height:38vh;padding:18px;font-size:var(--font-size);line-height:1.85;overflow-wrap:anywhere;background:var(--surface);border:1px solid var(--line);border-radius:14px}.markdown-body:empty{display:none}
.markdown-body h1,.markdown-body h2,.markdown-body h3{line-height:1.45}.markdown-body h1{margin-top:0;padding-bottom:.35em;font-size:1.55em;border-bottom:1px solid var(--line)}.markdown-body h2{margin-top:1.8em;font-size:1.3em}.markdown-body h3{margin-top:1.5em;font-size:1.15em}
.markdown-body p{margin:.9em 0}.markdown-body ul,.markdown-body ol{padding-left:1.5em}.markdown-body li{margin:.35em 0}.markdown-body blockquote{margin:1em 0;padding:.15em 1em;color:var(--muted);border-left:4px solid var(--line)}
.markdown-body code,.source-viewer{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.markdown-body code{padding:.12em .35em;background:var(--code-bg);border-radius:5px}.markdown-body pre{padding:14px;overflow-x:auto;background:var(--code-bg);border-radius:8px}.markdown-body pre code{padding:0;background:transparent}
.markdown-body a{color:var(--accent)}.markdown-body img{display:block;max-width:100%;height:auto;margin:1em auto;border-radius:8px}.source-viewer{margin:0;white-space:pre-wrap}
footer{padding:8px 16px calc(18px + env(safe-area-inset-bottom));color:var(--muted);font-size:.78rem;text-align:center}
@media(min-width:650px){.controls{grid-template-columns:minmax(190px,1fr) auto auto;align-items:center}.primary-button{width:auto}}
