@font-face{font-family:Google Sans;src:url(/fonts/googlesans/GoogleSans-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/googlesans/GoogleSans-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/googlesans/GoogleSans-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Google Sans;src:url(/fonts/googlesans/GoogleSans-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Sour Gummy;src:url(/fonts/SourGummy-VariableFont.woff2)format("woff2");font-weight:100 900;font-display:swap}:root{--bg:#0e0e0e;--surface:#171717;--surface-hover:#202020;--border:#6464641f;--text:#fff;--text-muted:#9ca3af;--accent:#fff;--accent-contrast:#0e0e0e;--danger:#ea5a5f;--danger-fill:#c1272c;--surface-raised:#1e1e1e;--overlay:#05040cad;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-lg:1.125rem;--highlight:#ffffff0d;--shadow-card:0 10px 22px #0006;--shadow:0 16px 34px #00000080;--glow:#7c8cff59;--accent-brand:#1c84ec;--accent-brand-bright:#4da3ff;--accent-brand-contrast:#fff;--glow-brand:#1c84ec66;--chip-fill-from:#fff;--chip-fill-to:#d8dae8;--skeleton-highlight:#262636;--shadow-inset:#00000059;--shadow-inset-strong:#0006;--surface-raised-from:#292929;--shadow-chip:0 4px 10px #0000004d;--shadow-chip-hover:0 6px 16px #0006;--box-gradient:linear-gradient(180deg, #171717 0%, #121212 100%);--box-gradient-hover:linear-gradient(180deg, #292929 0%, #1e1e1e 100%);--box-border:#202020}html:root{--radius-lg:0;--radius:0;--radius-chip:0}:root[data-theme=light]{--bg:#eee;--surface:#f8f8f8;--surface-hover:#f0f0f0;--surface-raised:#f8f8f8;--border:#0000001f;--text:#4a4237;--text-muted:#6f6353;--accent:#4a4237;--accent-contrast:#fff;--danger:#c1272c;--danger-fill:#ea5a5f;--overlay:#14162859;--highlight:#1416280f;--shadow-card:0 6px 16px #1e223c1a;--shadow:0 12px 28px #1e223c24;--glow:#1c84ec38;--glow-brand:#1c84ec47;--accent-brand:#1c84ec;--accent-brand-bright:#0a6cd6;--accent-brand-contrast:#fff;--chip-fill-from:#23252f;--chip-fill-to:#15161f;--skeleton-highlight:#e4e6f2;--shadow-inset:#1e223c1f;--shadow-inset-strong:#1e223c29;--surface-raised-from:#fff;--shadow-chip:0 3px 8px #1e223c1f;--shadow-chip-hover:0 5px 14px #1e223c29;--box-gradient:linear-gradient(180deg, #f8f8f8 0%, #f2f2f2 100%);--box-gradient-hover:linear-gradient(180deg, #f0f0f0 0%, #e8e8e8 100%);--box-border:#dfdfdf}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;min-height:100vh;transition:background-color var(--speed-slow) ease, color var(--speed-slow) ease;margin:0;font-family:Google Sans,system-ui,-apple-system,sans-serif;line-height:1.5}.surface{background-image:var(--box-gradient);border:2px solid var(--box-border);border-radius:var(--radius);box-shadow:var(--shadow-card);transition:background-color var(--speed-slow) ease, border-color var(--speed-slow) ease, box-shadow var(--speed-slow) ease}.surface-raised{background-image:var(--box-gradient-hover);border:2px solid var(--box-border);border-radius:var(--radius);box-shadow:var(--shadow);transition:background-color var(--speed-slow) ease, border-color var(--speed-slow) ease, box-shadow var(--speed-slow) ease}main>h1:first-child{margin-bottom:var(--space)}.panel{padding:var(--space-lg)}.panel+.panel{margin-top:var(--space-lg)}@media (width<=640px){.panel{padding:var(--space);border-radius:var(--radius-chip)}.panel+.panel{margin-top:var(--space)}}h1,h2,h3{margin:0 0 .5em;font-weight:700}h1{letter-spacing:-.01em}label{font-weight:600;font-size:var(--text-md);margin:14px 0 6px;display:block}input[type=text],input[type=email],input[type=password],input[type=date],input[type=search],textarea,select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-chip);width:100%;box-shadow:0 2px 4px var(--shadow-inset) inset;color:var(--text);font:inherit;transition:background-color var(--speed-slow) ease, border-color var(--speed-slow) ease, box-shadow var(--speed-slow) ease, color var(--speed-slow) ease;padding:10px 12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-brand-bright);outline-offset:1px}textarea{resize:vertical;min-height:240px;font-family:ui-monospace,monospace}button{font:inherit;cursor:pointer;transition:transform var(--speed-slow) var(--ease-spring)}button:active{transform:scale(.95)}button.primary{background:linear-gradient(180deg, var(--chip-fill-from), var(--chip-fill-to));border-radius:var(--radius-chip);color:var(--accent-contrast);box-shadow:0 6px 20px var(--glow);transition:box-shadow var(--speed) ease, transform var(--speed-slow) var(--ease-spring), background var(--speed-slow) ease, color var(--speed-slow) ease;border:none;margin-top:18px;padding:10px 18px;font-weight:600}button.primary:hover{box-shadow:0 8px 26px var(--glow)}button.primary:disabled{opacity:.5;cursor:default;box-shadow:none;transform:none}.btn{background:linear-gradient(180deg, var(--surface-hover), var(--surface));border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-muted);font-weight:600;font-size:var(--text-md);box-shadow:0 1px 0 var(--highlight) inset, var(--shadow-chip);transition:color var(--speed) ease, border-color var(--speed) ease, box-shadow var(--speed) ease, background var(--speed-slow) ease;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.btn:hover{color:var(--text);border-color:var(--text);background:linear-gradient(180deg, var(--surface-raised-from), var(--surface-hover));box-shadow:0 1px 0 var(--highlight) inset, var(--shadow-chip-hover)}.btn.danger:hover{color:var(--danger);border-color:var(--danger);background:linear-gradient(180deg, color-mix(in srgb, var(--danger) 16%, transparent), color-mix(in srgb, var(--danger) 8%, transparent))}@media (width<=640px){.btn{padding:9px 16px}.cat-tab{padding:8px 16px}.list .actions a.card-link{padding:8px 2px}}.status{color:var(--text-muted);min-height:1.4em;margin-top:14px}.status.error{color:var(--danger)}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-bottom:14px;display:flex}.panel-head h2{font-size:var(--text-lg);margin:0}.panel-head input[type=search]{width:220px;margin:0}.panel-head-actions{align-items:center;gap:14px;display:flex}.row{gap:var(--space);align-items:flex-end;display:flex}.row .grow{flex:1;min-width:0}.row .date-field{flex-shrink:0}@media (width<=640px){.row{flex-direction:column;align-items:stretch;gap:0}}.type-chip{border-radius:var(--radius-chip);letter-spacing:.4px;text-transform:uppercase;color:#141414;padding:1px 7px;font-size:.72em;font-weight:600}.type-fighting,.type-poison,.type-ghost,.type-dragon,.type-dark{color:#fff}.type-normal{background:#a8a77a}.type-fire{background:#ee8130}.type-water{background:#6390f0}.type-electric{background:#f7d02c}.type-grass{background:#7ac74c}.type-ice{background:#96d9d6}.type-fighting{background:#c22e28}.type-poison{background:#a33ea1}.type-ground{background:#e2bf65}.type-flying{background:#a98ff3}.type-psychic{background:#f95587}.type-bug{background:#a6b91a}.type-rock{background:#b6a136}.type-ghost{background:#735797}.type-dragon{background:#6f35fc}.type-dark{background:#705746}.type-steel{background:#b7b7ce}.type-fairy{background:#d685ad}.cat-tabs{flex-wrap:wrap;gap:6px;display:flex}.cat-tab{background:linear-gradient(180deg, var(--surface-hover), var(--surface));border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-sm);box-shadow:0 1px 0 var(--highlight) inset;transition:color var(--speed) ease, background var(--speed-slow) ease, border-color var(--speed) ease, box-shadow var(--speed) ease;border-radius:0;padding:5px 14px;font-weight:600}.cat-tab:hover{color:var(--text)}.cat-tab[aria-selected=true]{color:var(--accent-contrast);background:linear-gradient(180deg, var(--chip-fill-from), var(--chip-fill-to));box-shadow:0 1px 0 var(--highlight) inset, 0 4px 12px var(--glow);border-color:#0000}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:12px 0;display:flex}.list li:last-child{border-bottom:none}.list .actions{align-items:center;gap:14px;margin-left:auto;display:flex}@media (width<=480px){.panel-head-actions{flex-wrap:wrap;width:100%}.panel-head input[type=search]{width:100%}}.list .empty,.empty{color:var(--text-muted);padding:8px 0}.meta{font-size:var(--text-sm);color:var(--text-muted)}.badge{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;border:1px solid var(--text-muted);color:var(--text-muted);vertical-align:middle;background:0 0;border-radius:0;padding:2px 8px;font-weight:700}.badge-brand{border-color:var(--accent-brand-bright);color:var(--accent-brand-bright)}a.card-link{color:var(--text);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px}a.card-link:hover{text-decoration-color:var(--text)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ui-dialog{max-width:380px;padding:var(--space);color:var(--text);border:1px solid var(--border);animation:.35s cubic-bezier(.34,1.56,.64,1) dialog-bounce-in}.ui-dialog::backdrop{background:var(--overlay)}@keyframes dialog-bounce-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.ui-dialog{animation:none}}.ui-dialog-title{font-size:var(--text-lg);margin:0 0 8px}.ui-dialog-body{color:var(--text-muted);font-size:var(--text-md);margin:0}.ui-dialog-input{margin:12px 0 0}.ui-dialog-actions{margin-top:var(--space);justify-content:flex-end;gap:8px;display:flex}button.btn.danger-solid{background:linear-gradient(180deg, color-mix(in srgb, var(--danger-fill) 85%, white), var(--danger-fill));border-color:var(--danger-fill);color:#fff;box-shadow:0 1px 0 var(--highlight) inset, 0 6px 18px color-mix(in srgb, var(--danger-fill) 35%, transparent)}button.btn.danger-solid:hover{background:linear-gradient(180deg, color-mix(in srgb, var(--danger-fill) 70%, white), color-mix(in srgb, var(--danger-fill) 85%, black));border-color:color-mix(in srgb, var(--danger-fill) 85%, black);color:#fff}button.btn.confirm{background:linear-gradient(180deg, var(--chip-fill-from), var(--chip-fill-to));color:var(--accent-contrast);box-shadow:0 1px 0 var(--highlight) inset, 0 6px 18px var(--glow);border-color:#0000}#toast-container{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:110;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;transform:translate(-50%)}@media (width<=900px){#toast-container{bottom:calc(64px + 14px + 14px + env(safe-area-inset-bottom))}}.toast{font-size:var(--text-md);pointer-events:auto;animation:toast-enter var(--speed) var(--ease-spring);align-items:center;gap:12px;padding:10px 14px;display:flex}.toast-error{border-color:var(--danger);color:var(--danger)}.toast-undo{font-size:var(--text-sm);padding:4px 10px}.toast-leaving{opacity:0;transition:opacity .2s}@keyframes toast-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.skeleton{background:linear-gradient(90deg, var(--surface-hover) 25%, var(--skeleton-highlight) 50%, var(--surface-hover) 75%);border-radius:var(--radius-chip);background-size:200% 100%;animation:1.4s linear infinite skeleton-sweep;display:block}.skeleton-row{padding:14px 0;list-style:none}.skeleton-row .skeleton{width:60%;height:18px}.skeleton-tile{aspect-ratio:1;border-radius:var(--radius-chip);width:100%}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}.empty-state{padding:var(--space-lg) var(--space);text-align:center;color:var(--text-muted);font-size:var(--text-md);flex-direction:column;align-items:center;gap:8px;display:flex}.empty-state p{margin:0}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.photo-tile.dragging{opacity:.65;cursor:grabbing;z-index:2;position:relative;transform:scale(1.04)}.photo-tile{touch-action:manipulation}.progress{background:var(--surface-hover);height:6px;box-shadow:0 1px 3px var(--shadow-inset-strong) inset;border-radius:0;margin-top:14px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent-brand-bright), var(--accent-brand));width:0%;height:100%;box-shadow:0 0 8px var(--glow-brand);transition:width var(--speed) ease;border-radius:0}
