:root{--color-canvas:#111315;--color-surface:#191c20;--color-surface-raised:#20242a;--color-surface-hover:#292e35;--color-text:#f0eee9;--color-muted:#a6aaac;--color-border:#5b5f61;--color-accent:#8aa8ff;--color-danger:#f0aaa4;--color-success:#9dcaac;--motion-fast:.12s;color:var(--color-text);background:var(--color-canvas);font-family:Inter,ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--color-canvas);min-width:0;margin:0}button,input,select{border:1px solid var(--color-border);min-height:2.75rem;color:var(--color-text);background:var(--color-surface-raised);font:inherit;border-radius:.55rem}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (hover:hover){button:not(:disabled):hover,.has-source:hover{border-color:var(--color-accent);background:var(--color-surface-hover)}}button:not(:disabled):active{transform:translateY(1px)}.app-shell{width:min(1440px,100%);min-height:100dvh;padding:1rem max(1rem,env(safe-area-inset-right)) 7.5rem max(1rem,env(safe-area-inset-left));margin:auto}.utility-bar{grid-template-columns:auto auto 1fr auto;align-items:center;gap:.75rem;margin-bottom:.75rem;display:grid}.utility-bar h1{margin:0;font-size:1.6rem}.settings-menu,.sync-lane{position:relative}.add-button,.primary-button{border-color:var(--color-accent);color:#101624;background:var(--color-accent);font-weight:700}.control-button,.sync-control,.text-button{padding:.55rem .75rem}.sync-error{max-width:20rem;color:var(--color-danger);margin:.35rem 0 0;font-size:.82rem}.sync-error button{min-height:auto;color:inherit;margin-left:.25rem;padding:.15rem .35rem}.settings-popover,.card-menu{z-index:20;border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:.7rem;min-width:13rem;padding:.35rem;display:grid;position:absolute;box-shadow:0 12px 28px #0008}.settings-popover{top:calc(100% + .4rem);left:0}.settings-popover button,.card-menu button{text-align:left;background:0 0;border:0;min-height:2.6rem}.version-info{color:var(--color-muted);padding:.4rem .7rem;font-size:.75rem}.library-toolbar{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.7rem;grid-template-columns:minmax(12rem,1fr) auto minmax(9rem,auto) auto auto;align-items:center;gap:.75rem;padding:.75rem;display:grid}.library-toolbar input,.category-filter select{width:100%}.library-count{color:var(--color-muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem;display:grid}.media-card{border:1px solid var(--color-border);background:var(--color-surface-raised);min-width:0;min-height:13rem;transition:background var(--motion-fast),border-color var(--motion-fast);border-radius:.7rem;grid-template-rows:auto minmax(4.25rem,1fr) auto;padding:1rem;display:grid}.has-source{cursor:pointer}.no-source{cursor:default}.card-topline{color:var(--color-muted);grid-template-columns:1fr auto 1fr;gap:.3rem;font-size:.75rem;display:grid}.card-topline span:nth-child(2){text-align:center}.card-title-region{text-align:center;place-content:center;min-width:0;display:grid}.card-title-region h2{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1rem;line-height:1.4;display:-webkit-box;overflow:hidden}.source-domain{color:var(--color-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.card-conflict,.form-error{color:var(--color-danger);font-size:.8rem}.card-action-region{min-width:0;position:relative}.card-actions{align-items:center;gap:.4rem;display:flex}.more-button,.paste-button,.progress-actions button,.progress-actions input{min-width:2.75rem;min-height:2.75rem;padding:.45rem}.progress-actions{gap:.3rem;margin-left:auto;display:flex}.progress-actions input{text-align:center;width:3.4rem}.card-menu{bottom:calc(100% + .4rem);right:0}.card-error{border:1px solid var(--color-danger);background:var(--color-surface);z-index:5;border-radius:.4rem;max-width:15rem;margin:0;padding:.4rem .55rem;position:absolute;bottom:calc(100% + .4rem);right:0}.danger-button{color:var(--color-danger)}.empty-state,.library-loading{border:1px dashed var(--color-border);color:var(--color-muted);text-align:center;border-radius:.7rem;grid-column:1/-1;justify-items:center;gap:.7rem;padding:3rem 1rem;display:grid}.empty-state p{margin:0}.sheet-backdrop{z-index:50;background:#000a;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet-dialog{border-left:1px solid var(--color-border);background:var(--color-surface-raised);width:min(32rem,100%);height:100dvh;padding:2.5rem 1.5rem 1.5rem;overflow:auto;box-shadow:-12px 0 30px #0008}.close-button{float:right;background:0 0;border:0;min-width:2.5rem;min-height:2.5rem;font-size:1.4rem}.sheet-dialog h2{margin:.2rem 0 1.25rem;font-size:1.35rem}.sheet-dialog form,.edit-form{gap:.75rem;display:grid}.sheet-dialog label{color:var(--color-muted);gap:.35rem;display:grid}.form-actions{gap:.6rem;display:flex}.detail-category{color:var(--color-accent)}.exact-progress{max-width:12rem}.destructive-zone{border-top:1px solid var(--color-border);margin:1.5rem 0;padding-top:1rem}.activity-log{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.activity-entry{color:var(--color-muted);grid-template-columns:1fr auto auto;gap:.5rem;padding:.45rem 0;font-size:.85rem;display:grid}.activity-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.canonical-activity-list,.snapshot-list{gap:.6rem;padding:0;list-style:none;display:grid}.canonical-activity-list li,.snapshot-list li,.snapshot-preview,.import-preview,.restore-confirmation{border:1px solid var(--color-border);background:var(--color-surface);border-radius:.55rem;padding:.75rem}.data-panel section{border-top:1px solid var(--color-border);padding:1rem 0}.data-panel section:first-of-type{border:0}.recovery-row{color:var(--color-muted);grid-template-columns:1fr auto;gap:.4rem;padding:.45rem 0;display:grid}.fixed-update-lane{z-index:45;right:1rem;bottom:max(5.25rem,calc(1rem + env(safe-area-inset-bottom)));border:1px solid var(--color-border);background:var(--color-surface-raised);border-radius:.7rem;width:min(23rem,100vw - 2rem);padding:1rem;position:fixed;box-shadow:0 12px 28px #0008}.update-toast p{margin:0 0 .75rem}.update-toast-actions{justify-content:flex-end;gap:.5rem;display:flex}.fixed-local-save-lane{z-index:44;left:50%;bottom:max(1rem,env(safe-area-inset-bottom));border:1px solid var(--color-success);max-width:calc(100vw - 2rem);color:var(--color-success);background:var(--color-surface-raised);pointer-events:none;border-radius:999px;padding:.6rem .85rem;font-size:.875rem;position:fixed;transform:translate(-50%)}.mobile-add{z-index:46;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));border-color:var(--color-accent);color:#101624;background:var(--color-accent);border-radius:999px;min-width:2.75rem;min-height:2.75rem;font-weight:700;display:none;position:fixed}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=1199px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=767px){.app-shell{padding-bottom:13rem}.utility-bar{grid-template-columns:auto 1fr}.utility-bar h1{grid-column:1/-1}.add-button{display:none}.mobile-add{display:block}.library-toolbar{grid-template-columns:1fr 1fr}.library-toolbar input{grid-column:1/-1}.library-count{justify-self:end}.card-grid{grid-template-columns:1fr}.sheet-backdrop{align-items:flex-end}.sheet-dialog{border-top:1px solid var(--color-border);border-left:0;border-radius:1rem 1rem 0 0;width:100%;height:auto;max-height:calc(100dvh - 1rem)}.activity-filters{grid-template-columns:1fr}.fixed-local-save-lane{bottom:max(5.25rem,calc(4rem + env(safe-area-inset-bottom)))}.has-stacked-statuses .fixed-update-lane{bottom:max(10.5rem,calc(9rem + env(safe-area-inset-bottom)))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto;scroll-behavior:auto;transition-duration:1ms;animation-duration:1ms;animation-iteration-count:1}.media-card{transition-duration:1ms}}
