@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/mona-sans-vietnamese-400-normal-Bnau2CLm.woff2)format("woff2"),url(/assets/mona-sans-vietnamese-400-normal-CqhFJi2d.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/mona-sans-latin-ext-400-normal-BwhSUGox.woff2)format("woff2"),url(/assets/mona-sans-latin-ext-400-normal-CDNMqcO0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/mona-sans-latin-400-normal-CwTt76Nb.woff2)format("woff2"),url(/assets/mona-sans-latin-400-normal-DbL9V62D.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/mona-sans-vietnamese-500-normal-D5uyRgRh.woff2)format("woff2"),url(/assets/mona-sans-vietnamese-500-normal-CEBkARC3.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/mona-sans-latin-ext-500-normal-Cxyf1Dy_.woff2)format("woff2"),url(/assets/mona-sans-latin-ext-500-normal-C8wyNoyf.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/mona-sans-latin-500-normal-D4gjcAEH.woff2)format("woff2"),url(/assets/mona-sans-latin-500-normal-B6hf8f-Q.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/mona-sans-vietnamese-600-normal-H15QO8_e.woff2)format("woff2"),url(/assets/mona-sans-vietnamese-600-normal-CSUGlkn-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/mona-sans-latin-ext-600-normal-BQP2yqCw.woff2)format("woff2"),url(/assets/mona-sans-latin-ext-600-normal-zG757KrV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/mona-sans-latin-600-normal-D3kMOEdx.woff2)format("woff2"),url(/assets/mona-sans-latin-600-normal-DrhsX45A.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/mona-sans-vietnamese-700-normal-W-GorIPQ.woff2)format("woff2"),url(/assets/mona-sans-vietnamese-700-normal-BZbN4BnZ.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/mona-sans-latin-ext-700-normal-D6dAc81M.woff2)format("woff2"),url(/assets/mona-sans-latin-ext-700-normal-ClZsQsLm.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mona Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/mona-sans-latin-700-normal-8_gKyUBn.woff2)format("woff2"),url(/assets/mona-sans-latin-700-normal-Cfm70JW0.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#14110f;--bg-raised:#1c1814;--bg-raised-2:#241f1a;--ink:#ede6da;--ink-soft:#b3a896;--ink-faint:#847a6b;--accent:#e0794b;--accent-ink:#f2a87e;--accent-soft:#e0794b24;--ok:#8fb996;--warn:#d9a05b;--err:#d9776b;--line:#ede6da1a;--line-strong:#ede6da2e;--font-display:"Fraunces Variable", Georgia, "Times New Roman", serif;--font-body:"Mona Sans", system-ui, -apple-system, sans-serif;--r:16px;--r-sm:10px;--r-pill:999px;--shadow:0 1px 2px #0006, 0 16px 40px -24px #000000b3;--maxw:880px}html[data-theme=light]{--bg:#f3eee3;--bg-raised:#fcf9f2;--bg-raised-2:#fff;--ink:#2a241e;--ink-soft:#6b6253;--ink-faint:#978c7b;--accent:#d2682f;--accent-ink:#b0451f;--accent-soft:#d2682f1f;--ok:#4e7c57;--warn:#b07a2e;--err:#b23b2e;--line:#2a241e1a;--line-strong:#2a241e29;--shadow:0 1px 2px #3c28140f, 0 18px 40px -28px #3c281447}html[data-theme=light] body:before{mix-blend-mode:multiply;opacity:.05}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-image:radial-gradient(120% 80% at 50% -10%,#e0794b14,#0000 60%);background-attachment:fixed;min-height:100vh;font-size:16px;line-height:1.55}body:before{content:"";z-index:0;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#root{z-index:1;position:relative}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.01em;font-weight:500;line-height:1.1}a{color:var(--ink);text-decoration:none}::selection{background:var(--accent);color:#1a120c}button{cursor:pointer;font-family:inherit}input{font-family:inherit}.app{min-height:100vh}.header{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:1.5rem;padding:1rem clamp(1rem,5vw,2.5rem);display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);align-items:baseline;gap:.5ch;font-size:1.4rem;font-weight:500;display:inline-flex}.brand .dot{background:var(--accent);width:.42em;height:.42em;box-shadow:0 0 16px var(--accent);border-radius:50%;align-self:center}.nav{gap:.25rem;margin-left:.5rem;display:flex}.nav a{border-radius:var(--r-sm);color:var(--ink-soft);padding:.4rem .75rem;font-size:.94rem;font-weight:500;transition:color .18s,background .18s;position:relative}.nav a:hover{color:var(--ink);background:var(--bg-raised)}.nav a.active{color:var(--accent-ink)}.nav a.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:-.15rem;left:.75rem;right:.75rem}.spacer{flex:1}.userchip{border:1px solid var(--line);border-radius:var(--r-pill);color:var(--ink-soft);align-items:center;gap:.55rem;padding:.3rem .3rem .3rem .85rem;font-size:.88rem;display:inline-flex}.userchip .avatar{background:var(--accent-soft);width:1.9rem;height:1.9rem;color:var(--accent-ink);font-family:var(--font-display);border-radius:50%;place-items:center;font-size:.9rem;font-weight:600;display:grid}main.page{max-width:var(--maxw);margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(1rem,5vw,2.5rem) 5rem}.page-head{margin-bottom:2rem}.page-head h1{font-size:clamp(2rem,5vw,2.9rem);font-weight:480}.page-head .sub{color:var(--ink-faint);margin-top:.4rem;font-size:1rem}.btn{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--bg-raised);color:var(--ink);justify-content:center;align-items:center;gap:.5ch;padding:.6rem 1.1rem;font-size:.94rem;font-weight:500;transition:transform .12s,background .18s,border-color .18s;display:inline-flex}.btn:hover{background:var(--bg-raised-2)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-accent{background:var(--accent);color:#1a120c;border-color:#0000;font-weight:600}.btn-accent:hover{background:var(--accent-ink)}.btn-ghost{color:var(--ink-soft);background:0 0;border-color:#0000;padding:.45rem .7rem}.btn-ghost:hover{background:var(--bg-raised);color:var(--ink)}.icon-btn{width:2.3rem;height:2.3rem;padding:0}.icon-btn svg{width:1.15rem;height:1.15rem}body,.header,.card,.input,.pill,.form-card,.userchip{transition:background-color .3s,border-color .3s,color .3s}.input{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r-sm);min-width:0;color:var(--ink);flex:1;padding:.7rem .95rem;font-size:.96rem;transition:border-color .18s,box-shadow .18s}.input::placeholder{color:var(--ink-faint)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.add-bar{gap:.6rem;margin-bottom:2.25rem;display:flex}.cards{flex-direction:column;gap:1rem;display:flex}.card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1.35rem 1.5rem;transition:transform .18s,border-color .18s,background .18s;animation:.5s cubic-bezier(.2,.7,.2,1) backwards rise;position:relative}.card:hover{border-color:var(--line-strong);background:var(--bg-raised-2);transform:translateY(-2px)}.card__top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.card__meta{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card__actions{align-items:center;gap:.5rem;display:flex}.card__tag{font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);font-size:.72rem;font-weight:700}.card__title{font-family:var(--font-display);color:var(--ink);word-break:break-word;font-size:1.18rem;font-weight:500;transition:color .18s;display:block}.card__title:hover{color:var(--accent-ink)}.card__summary{color:var(--ink-soft);margin-top:.5rem;font-size:.98rem;line-height:1.6}.card__ideas{flex-direction:column;gap:.3rem;margin:.85rem 0 0;padding:0;list-style:none;display:flex}.card__ideas li{color:var(--ink-soft);padding-left:1.1rem;font-size:.9rem;position:relative}.card__ideas li:before{content:"—";color:var(--accent);position:absolute;left:0}.card__foot{color:var(--ink-faint);align-items:center;gap:.75rem;margin-top:.9rem;font-size:.8rem;display:flex}.card__date{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.78rem}.chip{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink-soft);background:#ede6da0a;align-items:center;padding:.2rem .6rem;font-size:.74rem;font-weight:600;display:inline-flex}.chip--cat{appearance:none;cursor:pointer;background-color:var(--accent-soft);color:var(--accent-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a8917d' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;border-color:#0000;padding-right:1.5rem}.chip--cat:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chip--cat option{color:#1a120c;background:#fff}.card--leido{opacity:.5}.card--leido:hover{opacity:.85}.card--leido .card__title{color:var(--ink-soft)}.tabs{gap:.4rem;margin-bottom:1.5rem;display:flex}.tab{border-radius:var(--r-pill);border:1px solid var(--line);color:var(--ink-soft);background:0 0;padding:.4rem .9rem;font-size:.88rem;font-weight:500;transition:background .15s,color .15s}.tab:hover{background:var(--bg-raised);color:var(--ink)}.tab--active{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.viewbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.viewbar .tabs{margin-bottom:1.5rem}.lane{margin-bottom:2rem;animation:.5s cubic-bezier(.2,.7,.2,1) backwards rise}.lane__head{align-items:baseline;gap:.6rem;margin-bottom:.9rem;display:flex}.lane__head h2{font-family:var(--font-display,inherit);letter-spacing:-.01em;text-transform:capitalize;font-size:1.15rem;font-weight:600}.lane__count{color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--r-pill);padding:.1rem .55rem;font-size:.8rem;font-weight:600}.lane--proceso .lane__head h2{color:var(--ink-soft)}.lane__track{scroll-snap-type:x proximity;gap:1rem;margin:0 -.25rem;padding-bottom:.6rem;padding-left:.25rem;padding-right:.25rem;display:flex;overflow-x:auto}.lane__track::-webkit-scrollbar{height:8px}.lane__track::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px}.lane__track .card{scroll-snap-align:start;flex:0 0 360px;max-width:360px}@media (width<=560px){.lane__track .card{flex-basis:84vw;max-width:84vw}}.star{color:var(--ink-faint);background:0 0;border:none;padding:0 .15rem;font-size:1.2rem;line-height:1;transition:color .15s,transform .15s}.star:hover{color:var(--accent-ink);transform:scale(1.18)}.star--on{color:var(--accent)}.card--fav{border-color:color-mix(in srgb, var(--accent) 35%, var(--line));box-shadow:var(--shadow), inset 3px 0 0 0 var(--accent)}.btn-danger{background:color-mix(in srgb, var(--err) 16%, transparent);color:var(--err);border-color:#0000;font-weight:600}.btn-danger:hover{background:color-mix(in srgb, var(--err) 28%, transparent)}.confirm{color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}.table-wrap{border:1px solid var(--line);border-radius:var(--r);background:var(--bg-raised);overflow:hidden}.table{border-collapse:collapse;width:100%;font-size:.92rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:.75rem 1rem}.table thead th{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);font-size:.74rem;font-weight:700}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--bg-raised-2)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .muted{color:var(--ink-soft)}.tag-admin{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);text-transform:uppercase;letter-spacing:.04em;margin-left:.5rem;padding:.1rem .45rem;font-size:.68rem;font-weight:700}.admin{gap:2rem;max-width:1140px;margin:0 auto;padding:clamp(1.5rem,5vw,3rem) clamp(1rem,5vw,2.5rem) 5rem;display:flex}.admin__side{flex-direction:column;flex-shrink:0;align-self:flex-start;gap:.2rem;width:180px;display:flex;position:sticky;top:5rem}.admin__title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.5rem;padding:0 .75rem;font-size:.72rem;font-weight:700}.admin__side a{border-radius:var(--r-sm);color:var(--ink-soft);padding:.5rem .75rem;font-size:.95rem;font-weight:500;transition:background .15s,color .15s}.admin__side a:hover{background:var(--bg-raised);color:var(--ink)}.admin__side a.active{background:var(--accent-soft);color:var(--accent-ink)}.admin__main{flex:1;min-width:0}.admin__h{margin-bottom:1.5rem;font-size:1.8rem}.admin__sub{color:var(--ink-soft);margin:2rem 0 .85rem;font-size:1.05rem;font-weight:500}.admin__count{font-family:var(--font-body);color:var(--ink-faint);font-size:.85rem;font-weight:500}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.stat{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);padding:1.4rem 1.5rem}.stat__n{font-family:var(--font-display);color:var(--accent-ink);font-size:2.4rem;font-weight:500;line-height:1}.stat__label{color:var(--ink-faint);margin-top:.5rem;font-size:.85rem}.bars{flex-direction:column;gap:.45rem;display:flex}.bar{grid-template-columns:11rem 1fr 2.5rem;align-items:center;gap:.75rem;font-size:.85rem;display:grid}.bar__label{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar__track{background:var(--bg-raised-2);border-radius:var(--r-pill);height:.65rem;overflow:hidden}.bar__fill{background:var(--accent);border-radius:var(--r-pill);height:100%;display:block}.bar__n{text-align:right;color:var(--ink-faint);font-variant-numeric:tabular-nums}@media (width<=640px){.admin{flex-direction:column;gap:1rem}.admin__side{flex-flow:wrap;width:auto;position:static}.bar{grid-template-columns:7rem 1fr 2rem}}.badge{border-radius:var(--r-pill);letter-spacing:.01em;border:1px solid #0000;align-items:center;gap:.45ch;padding:.22rem .6rem;font-size:.76rem;font-weight:600;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:.5rem;height:.5rem}.badge--done{color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent)}.badge--processing{color:var(--accent-ink);background:var(--accent-soft)}.badge--processing .dot{animation:1.3s ease-in-out infinite pulse}.badge--pending{color:var(--ink-faint);background:#ede6da0f}.badge--error{color:var(--err);background:color-mix(in srgb, var(--err) 14%, transparent)}.pills{flex-wrap:wrap;gap:.6rem;margin-bottom:2rem;display:flex}.pill{border-radius:var(--r-pill);background:var(--accent-soft);color:var(--accent-ink);align-items:center;gap:.5ch;padding:.4rem .45rem .4rem .9rem;font-size:.9rem;font-weight:500;display:inline-flex}.pill button{width:1.35rem;height:1.35rem;color:var(--accent-ink);background:0 0;border:none;border-radius:50%;place-items:center;font-size:1rem;line-height:1;transition:background .15s;display:grid}.pill button:hover{background:#e0794b40}.muted{color:var(--ink-soft);font-size:.85rem}.form-error{color:var(--err);margin-bottom:1rem;font-size:.9rem}.cat-list{flex-direction:column;gap:.5rem;margin-bottom:2rem;list-style:none;display:flex}.cat-row{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);align-items:center;gap:.7rem;padding:.7rem 1rem;transition:border-color .15s,background .15s;display:flex}.cat-row:hover{border-color:var(--line-strong)}.cat-name{text-transform:capitalize;font-weight:600}.cat-tag{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:var(--bg-raised-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:.05rem .45rem;font-size:.68rem;font-weight:600}.cat-n{color:var(--accent-ink);background:var(--accent-soft);border-radius:var(--r-pill);text-align:center;min-width:1.6rem;padding:.05rem .4rem;font-size:.8rem;font-weight:600}.cat-actions{gap:.2rem;display:flex}.cat-actions .btn,.cat-merge .btn{padding:.35rem .7rem;font-size:.85rem}.cat-edit,.cat-merge{flex-wrap:wrap;flex:1;align-items:center;gap:.5rem;display:flex}.cat-edit .input{flex:1;min-width:12rem}.form-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--r);max-width:460px;padding:1.75rem}.field{flex-direction:column;gap:.4rem;margin-bottom:1.25rem;display:flex}.field label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);font-size:.8rem;font-weight:600}.field .readonly{color:var(--ink-soft);font-size:1rem}.empty{text-align:center;color:var(--ink-faint);padding:4rem 1rem}.empty h3{color:var(--ink-soft);margin-bottom:.5rem;font-size:1.4rem}.center-screen{place-items:center;min-height:100vh;padding:2rem;display:grid}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:1.1rem;height:1.1rem;animation:.7s linear infinite spin}.login{text-align:center;place-items:center;min-height:100vh;padding:2rem;display:grid}.login__inner{max-width:420px;animation:.7s cubic-bezier(.2,.7,.2,1) backwards rise}.login .brand{margin-bottom:1.5rem;font-size:2rem}.login h1{font-size:clamp(2.4rem,8vw,3.4rem);font-weight:460;line-height:1.05}.login h1 em{color:var(--accent-ink);font-style:italic}.login p{color:var(--ink-faint);margin:1rem 0 2rem;font-size:1.05rem;line-height:1.6}.login .btn-accent{padding:.8rem 1.6rem;font-size:1rem}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
