:root{--paper:#f7f4ee;--card:#fffdf9;--ink:#1c1a17;--ink-soft:#8a8276;--hairline:#e3ddd2;--hairline-dark:#c9c1b2;--seal:#c8401f;--seal-soft:#c8401f14;--t-lockchip:#7d5ba6;--t-blade:#c8401f;--t-overblade:#b3822d;--t-assistblade:#2e7d6b;--t-ratchet:#4a6fa5;--t-bit:#b04a6e;--font-display:"Fraunces", "Georgia", serif;--font-mono:"IBM Plex Mono", "Courier New", monospace}*{box-sizing:border-box;margin:0}html,body,#root{overscroll-behavior:none;height:100%;overflow:hidden}body{font-family:var(--font-display);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;touch-action:manipulation}button{cursor:pointer;font:inherit;color:inherit}.app{background-image:radial-gradient(var(--hairline) 1px, transparent 1px);background-size:22px 22px;flex-direction:column;height:100dvh;display:flex}.navbar{z-index:2;background:var(--paper);border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;min-height:58px;padding:8px 16px;display:flex;position:sticky;top:0}.navbar h1{letter-spacing:-.01em;font-size:24px;font-style:italic;font-weight:600}.btn-inventory{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;border:1px solid var(--ink);background:0 0;border-radius:999px;min-height:44px;padding:0 14px;font-size:11px;font-weight:600;transition:background .15s}.btn-inventory:active{background:var(--seal-soft)}.list{flex-direction:column;flex:1;gap:10px;padding:14px 14px 96px;display:flex;overflow-y:auto}.row{text-align:left;background:var(--card);border:1px solid var(--hairline-dark);border-radius:8px;flex-direction:column;width:100%;padding:12px 14px;transition:background .15s;animation:.3s backwards rise;display:flex;box-shadow:0 1px #1c1a170f}.row:first-child{animation-delay:30ms}.row:nth-child(2){animation-delay:60ms}.row:nth-child(3){animation-delay:90ms}.row:nth-child(4){animation-delay:.12s}.row:nth-child(5){animation-delay:.15s}.row:nth-child(6){animation-delay:.18s}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.row:active{background:var(--seal-soft)}.row-name{font-family:var(--font-display);color:var(--ink);font-size:18px;font-weight:600;line-height:1.15}.row-dots{align-items:center;gap:6px;margin-top:8px;display:flex}.dot{background:var(--ink-soft);border-radius:50%;flex:none;width:9px;height:9px}.row-count{font-family:var(--font-mono);color:var(--ink-soft);margin-left:auto;font-size:10px}.dot[data-type=lockchip]{background:var(--t-lockchip)}.dot[data-type=blade]{background:var(--t-blade)}.dot[data-type=overblade]{background:var(--t-overblade)}.dot[data-type=assistblade]{background:var(--t-assistblade)}.dot[data-type=ratchet]{background:var(--t-ratchet)}.dot[data-type=bit]{background:var(--t-bit)}.filterbar{z-index:2;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--ink);position:sticky;bottom:0}.filter-counts{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);flex-wrap:wrap;gap:4px 14px;padding:2px 4px 6px;font-size:11px;display:flex}.filter-counts strong{color:var(--seal);font-weight:600}.filterbar input{width:100%;min-height:44px;font-family:var(--font-mono);color:var(--ink);border:none;border-bottom:1px solid var(--hairline-dark);background:0 0;border-radius:0;outline:none;padding:0 4px;font-size:14px;transition:border-color .15s}.filterbar input::placeholder{color:var(--ink-soft)}.filterbar input:focus{border-bottom-color:var(--seal)}.fab{right:16px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:3;background:var(--seal);width:58px;height:58px;color:var(--paper);border:none;border-radius:50%;font-size:30px;line-height:1;transition:transform .12s,box-shadow .12s;position:fixed;box-shadow:0 6px 18px #c8401f61}.fab:active{transform:scale(.92);box-shadow:0 3px 8px #c8401f4d}.modal-backdrop{z-index:4;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1c1a1773;align-items:flex-end;animation:.2s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--paper);width:100%;max-height:85dvh;padding:10px 18px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;flex-direction:column;gap:14px;animation:.25s slide-up;display:flex;overflow-y:auto}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}}.modal:before{content:"";background:var(--hairline-dark);border-radius:999px;align-self:center;width:36px;height:4px}.modal h2{border-bottom:1px solid var(--ink);padding-bottom:8px;font-size:21px;font-style:italic;font-weight:600}.fields{flex-direction:column;gap:10px;display:flex}.field{align-items:center;gap:6px;display:flex}.field select,.field input{height:48px;color:var(--ink);background-color:var(--card);border:1px solid var(--hairline-dark);border-radius:6px;outline:none}.field select{width:31%;font-family:var(--font-mono);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a8276' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;flex:none;padding:0 24px 0 10px;font-size:12px}.field input{min-width:0;font-family:var(--font-display);flex:1;padding:0 10px;font-size:16px}.field input:focus,.field select:focus{border-color:var(--seal)}.field button{min-height:44px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);background:0 0;border:none;flex:none;padding:0 8px;font-size:10px;font-weight:600}.field button:last-child{color:var(--seal)}.field-detach,.field-delete{opacity:.45}.field-delete input{text-decoration:line-through}.btn-add-field,.adopt{min-height:44px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--ink);border:1px dashed var(--hairline-dark);background:0 0;border-radius:6px;padding:0 12px;font-size:11px;font-weight:600}.adopt{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238a8276' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;height:44px;padding:0 32px 0 12px}.modal-actions{border-top:1px solid var(--hairline);justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.modal-actions button{min-height:46px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);background:0 0;border:none;padding:0 18px;font-size:11px;font-weight:600}.modal-actions .btn-primary{color:var(--paper);background:var(--ink);border-radius:999px}.modal-actions .btn-primary:disabled{opacity:.35;cursor:default}.inventory{padding:0;list-style:none}.inventory li{min-height:44px;font-family:var(--font-mono);align-items:baseline;gap:10px;padding:10px 0;font-size:14px;display:flex}.inventory .leader{border-bottom:1px dotted var(--hairline-dark);flex:1;transform:translateY(-4px)}.inventory strong{color:var(--seal);font-weight:600}.empty{text-align:center;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);padding:48px 24px;font-size:12px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.navbar-actions{gap:8px;display:flex}.splash{height:100dvh;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-soft);justify-content:center;align-items:center;font-size:12px;display:flex}.auth{background-image:radial-gradient(var(--hairline) 1px, transparent 1px);background-size:22px 22px;justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card{background:var(--card);border:1px solid var(--ink);border-radius:12px;flex-direction:column;gap:12px;width:100%;max-width:360px;padding:28px 22px;display:flex;box-shadow:0 8px 30px #1c1a171f}.auth-card h1{font-size:26px;font-style:italic;font-weight:600}.auth-sub{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:4px;font-size:11px}.auth-card input{height:48px;font-family:var(--font-display);color:var(--ink);background:var(--paper);border:1px solid var(--hairline-dark);border-radius:6px;outline:none;padding:0 12px;font-size:16px}.auth-card input:focus{border-color:var(--seal)}.auth-card .btn-primary{height:48px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--paper);background:var(--ink);border:none;border-radius:999px;margin-top:4px;font-size:12px;font-weight:600}.auth-card .btn-primary:disabled{opacity:.35}.auth-error{font-family:var(--font-mono);color:var(--seal);font-size:12px}.auth-notice{font-family:var(--font-mono);color:var(--t-assistblade);font-size:12px}.auth-links{border-top:1px solid var(--hairline);flex-wrap:wrap;gap:14px;padding-top:6px;display:flex}.auth-links button{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);background:0 0;border:none;padding:0;font-size:11px}
