:root{--color-bg:#f8f6fa;--color-panel:#ffffff;--color-ink:#292531;--color-muted:#686071;--color-primary:#74448f;--color-primary-ink:#ffffff;--color-selected-bg:#f0e6f7;--color-border:#e6dfec;--color-error:#a3293c;--color-done:#296b54;--color-warning:#8a5a00;--font-sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","YuGothic","Noto Sans JP","Meiryo",sans-serif;--font-size-body:15px;--font-size-body-public:16px;--tap-target:44px;--radius:9px}*{box-sizing:border-box}body,html{padding:0;margin:0}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--font-size-body);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:var(--color-primary)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}h1,h2,h3{font-weight:500;line-height:1.4}.container{max-width:1080px;margin:0 auto;padding:24px}.container--public{max-width:680px;font-size:var(--font-size-body-public)}.panel{background:var(--color-panel);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px 22px}.muted{color:var(--color-muted)}.notice{background:var(--color-selected-bg);border-radius:7px;padding:12px 16px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--tap-target);padding:10px 16px;font:inherit;border:1px solid var(--color-border);border-radius:7px;background:var(--color-panel);color:var(--color-ink);cursor:pointer;text-decoration:none}.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-ink)}.site-header{background:var(--color-panel);border-bottom:1px solid var(--color-border);padding:16px 24px}.site-header .brand{font-size:16px;font-weight:500}.site-header .brand .accent{color:var(--color-primary)}.demo-banner{background:#fff8e6;border:1px solid #e7d9a8;border-radius:8px;padding:10px 14px;font-size:14px;color:#6b5b1f}.site-demo-banner{background:#fbeaec;border-bottom:2px solid var(--color-error);color:#5b1622;padding:10px 24px;font-size:14px;line-height:1.6;display:flex;flex-wrap:wrap;gap:4px 10px}.site-demo-banner strong{font-weight:700}