@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}:root{--bg:#08090e;--surface:#0f1017;--surface-hover:#171923;--border:#babeff21;--text:#eeeef4;--text-muted:#9598ac;--accent:#eeeef4;--accent-contrast:#08090e;--danger:#ea5a5f;--danger-fill:#c1272c;--surface-raised:#1c1d29;--overlay:#05040cad;--text-xs:.75rem;--text-sm:.8125rem;--text-md:.875rem;--text-lg:1.125rem;--shadow:0 10px 30px #04030a99}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;min-height:100vh;margin:0;font-family:Google Sans,system-ui,-apple-system,sans-serif;line-height:1.5}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.surface-raised{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}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%;color:var(--text);font:inherit;padding:10px 12px}input:focus,textarea:focus,select:focus{outline:2px solid var(--text);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:var(--accent);border-radius:var(--radius-chip);color:var(--accent-contrast);border:none;margin-top:18px;padding:10px 18px;font-weight:600}button.primary:hover{background:#fff}button.primary:disabled{opacity:.5;cursor:default;transform:none}button.btn{border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-muted);font-weight:600;font-size:var(--text-md);background:0 0;align-items:center;gap:6px;padding:6px 14px;display:inline-flex}button.btn:hover{color:var(--text);background:var(--surface-hover);border-color:var(--text)}button.btn.danger:hover{color:var(--danger);border-color:var(--danger);background:#ea5a5f24}.status{color:var(--text-muted);min-height:1.4em;margin-top:14px}.status.error{color:var(--danger)}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)}.ui-dialog::backdrop{background:var(--overlay)}.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-actions{margin-top:var(--space);justify-content:flex-end;gap:8px;display:flex}button.btn.danger-solid{background:var(--danger-fill);border-color:var(--danger-fill);color:#fff}button.btn.danger-solid:hover{color:#fff;background:#d32d33;border-color:#d32d33}button.btn.confirm{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}#toast-container{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:100;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.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%, #262636 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);border-radius:999px;height:6px;margin-top:14px;overflow:hidden}.progress-bar{background:var(--accent);width:0%;height:100%;transition:width var(--speed) ease;border-radius:999px}
