/* Shared controls. Theme tokens live in styles.css; page files only compose them. */
.ui-panel { min-width:0; padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--panel); }
.ui-toolbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ui-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 16px; border:1px solid var(--line); border-radius:10px; background:var(--panel-2); color:var(--text); font:inherit; font-size:13px; text-decoration:none; cursor:pointer; }
.ui-button:hover { background:var(--panel-3); border-color:var(--accent); }
.ui-button.is-primary { background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.ui-button:focus-visible,.ui-disclosure>summary:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.ui-button svg { width:18px; height:18px; flex:none; }
.ui-disclosure { border:1px solid var(--line); border-radius:12px; background:var(--panel); min-width:0; }
.ui-disclosure>summary { padding:14px 16px; min-height:44px; cursor:pointer; font-size:13px; color:var(--text); }
.ui-disclosure>div { padding:0 16px 16px; }
.ui-notice { border:1px solid var(--line); border-radius:12px; background:var(--panel-2); color:var(--muted); padding:14px 16px; font-size:13px; line-height:1.65; }
.ui-meta { display:flex; flex-wrap:wrap; gap:8px 20px; color:var(--muted); font-size:13px; line-height:1.6; }
.ui-subtle { color:var(--muted); font-size:13px; line-height:1.65; }
.ui-section-title { font-size:clamp(23px,3vw,32px); letter-spacing:-.03em; margin:0 0 16px; }
.ui-panel[hidden],.ui-disclosure[hidden],.ui-button[hidden] { display:none; }
@media(max-width:700px) { .ui-panel { padding:20px; } .ui-toolbar { gap:8px; } }
