/* Shared SVG library and native-size line icons. */
.svg-library{position:absolute;width:0;height:0;overflow:hidden}
.icon{display:inline-block;flex-shrink:0;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.icon.small{width:16px;height:16px}
.icon.tiny{width:14px;height:14px}
/* Reusable controls. Legacy names are aliases, not separate implementations. */
:is(.ui-button,.gold-button,.secondary-button,.close-dialog){font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;min-height:var(--ui-control);min-width:var(--ui-control)}
:is(.ui-button,.gold-button,.secondary-button,.close-dialog):focus-visible{outline:3px solid var(--ui-focus);outline-offset:3px}
:is(.ui-button,.gold-button,.secondary-button,.close-dialog):disabled{cursor:default}
.ui-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;line-height:1.35;text-align:center;text-decoration:none;border-radius:var(--ui-radius);font-size:var(--ui-text-action);font-weight:800;overflow-wrap:anywhere}
.ui-button>.icon{width:20px;height:20px}
:is(.ui-button--primary,.gold-button){width:100%;min-height:51px;position:relative;display:flex;align-items:center;justify-content:center;gap:13px;padding:10px 16px;border:2px solid #8e5429;border-top-color:#ffdf82;border-radius:9px;background:linear-gradient(#ffd372,#f2b749 70%,#e7a338);color:#4b2c22;box-shadow:0 3px 0 #6c432c,0 0 0 1px #152e3c,inset 0 0 0 1px #ffe8a4;font-size:20px;font-weight:800;text-shadow:0 1px #ffdf90;transition:filter .15s}
:is(.ui-button--primary,.gold-button):hover:not(:disabled){filter:brightness(1.08)}
:is(.ui-button--primary,.gold-button)>.icon{width:18px;height:18px;color:#b57b2b;fill:#f7da82;stroke-width:1.4}
:is(.ui-button--primary,.gold-button):disabled{background:#355465;border-color:#5a7580;color:#c0ced0;text-shadow:none;box-shadow:0 2px 0 #163346,inset 0 0 0 1px #526a74;font-size:16px}
:is(.ui-button--primary,.gold-button):disabled>.icon{color:#7e969a;fill:none}
:is(.ui-button--secondary,.secondary-button){width:100%;padding:12px;border:1px solid #8d9b94;border-radius:7px;background:var(--ui-surface-raised);color:#f7e6c3;font-weight:700;margin-top:12px}
:is(.ui-button--secondary,.secondary-button):hover:not(:disabled){background:#3a6072}
:is(.ui-button--secondary,.secondary-button):disabled{opacity:.65}
:is(.ui-button--icon,.close-dialog){display:grid;place-items:center;width:var(--ui-control);height:var(--ui-control);flex-shrink:0;padding:5px;border:1px solid var(--ui-border);background:var(--ui-surface-inset);border-radius:7px;color:#e3d9bd}
:is(.ui-button--icon,.close-dialog) .icon{width:19px;height:19px}
.ui-button--quiet{border:1px solid var(--ui-border);background:var(--ui-surface-inset);color:var(--ui-text)}
.ui-button--fit{width:auto}
.ui-button--danger{border:1px solid #d48c7b;background:#523f47;color:#ffe3d5}
:is(.ui-button--quiet,.ui-button--danger):disabled{opacity:.6}
:is(.ui-button--quiet,.ui-button--danger):hover:not(:disabled){filter:brightness(1.12)}
.ui-panel{min-width:0;padding:var(--ui-space-4);border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface)}
.ui-panel--inset{background:var(--ui-surface-inset)}
.ui-panel--success{border-color:#8cad77;background:#304f48}
.ui-panel--warning{border-color:var(--ui-gold);background:#3c514e}
.ui-panel>h3{font-family:var(--ui-font-heading);font-size:var(--ui-text-heading);margin:0 0 12px;color:var(--ui-gold-light)}
.ui-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:8px}
:is(.ui-tab,.camp-tabs>button,.camp-topics>button,.hero-tabs>button,.collection-regions>button,.workspace-chapters>button){min-height:var(--ui-control);min-width:0;padding:8px;border:1px solid var(--ui-border);border-radius:var(--ui-radius-small);background:var(--ui-surface-inset);color:var(--ui-text);font:inherit;font-size:13px;font-weight:700}
:is(.ui-tab,.camp-tabs>button,.camp-topics>button,.hero-tabs>button,.collection-regions>button,.workspace-chapters>button):is([aria-pressed='true'],[aria-selected='true']){background:#46584e;border-color:var(--ui-gold);color:#ffe2a2;box-shadow:inset 0 -2px var(--ui-gold)}
.ui-resource{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--ui-text);font-variant-numeric:tabular-nums}
.ui-resource img{width:24px;height:24px;object-fit:contain;mix-blend-mode:lighten;flex:none}
.ui-resource small{font-size:var(--ui-text-small);color:var(--ui-text-muted)}
.ui-progress{display:block;height:8px;overflow:hidden;border:1px solid var(--ui-border);border-radius:6px;background:#163649}
.ui-progress>span{display:block;height:100%;max-width:100%;border-radius:inherit;background:var(--ui-gold)}
.ui-item-art{display:inline-grid;place-items:center;flex:none;overflow:hidden;background:var(--ui-text);border:1px solid #bda36a;border-radius:var(--ui-radius-small)}
.ui-item-art img{object-fit:contain;max-height:100%;mix-blend-mode:multiply}
.ui-notice{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:var(--ui-surface-inset);color:var(--ui-text-muted);font-size:13px;line-height:1.5}
.ui-notice>.icon{width:20px;height:20px}
.ui-notice--success{border-color:#8cad77;color:#def1bd;background:#304f48}.ui-notice--warning{border-color:var(--ui-gold);color:var(--ui-gold-light);background:#3c514e}.ui-notice--error{border-color:#d48c7b;color:#ffe3d5;background:#523f47}
.ui-empty{display:grid;justify-items:center;gap:12px;padding:24px;text-align:center;color:var(--ui-text-muted);line-height:1.6}.ui-empty>.icon{width:32px;height:32px;color:var(--ui-gold)}.ui-empty h3{color:var(--ui-text);font-size:20px}.ui-empty .ui-button{max-width:320px}
