:root{--bg: #faf8f5;--bg-gradient: linear-gradient(145deg, #faf8f5 0%, #f0ebe3 100%);--surface: #ffffff;--surface-warm: #fdf9f4;--surface-hover: #f7f3ed;--text: #2d2a26;--text-secondary: #7a7267;--text-tertiary: #b0a899;--accent: #e07850;--accent-hover: #c96840;--accent-light: rgba(224, 120, 80, .1);--accent-glow: rgba(224, 120, 80, .2);--accent2: #5b8a72;--accent2-light: rgba(91, 138, 114, .1);--accent3: #7c6bb5;--accent3-light: rgba(124, 107, 181, .1);--danger: #d45454;--danger-light: rgba(212, 84, 84, .08);--success: #5b8a72;--success-light: rgba(91, 138, 114, .1);--border: #e8e2d9;--border-light: #f2ece4;--radius: 20px;--radius-sm: 12px;--radius-xs: 8px;--shadow-sm: 0 1px 3px rgba(45, 42, 38, .04), 0 1px 2px rgba(45, 42, 38, .02);--shadow: 0 4px 16px rgba(45, 42, 38, .06), 0 1px 3px rgba(45, 42, 38, .04);--shadow-lg: 0 12px 40px rgba(45, 42, 38, .1), 0 4px 12px rgba(45, 42, 38, .04);--shadow-glow: 0 8px 32px rgba(224, 120, 80, .2);--transition: .25s cubic-bezier(.4, 0, .2, 1);--bounce: .4s cubic-bezier(.34, 1.56, .64, 1)}@media (prefers-color-scheme: dark){:root{--bg: #1a1816;--bg-gradient: linear-gradient(145deg, #1a1816 0%, #221f1b 100%);--surface: #262320;--surface-warm: #2c2824;--surface-hover: #332f2a;--text: #ede8e0;--text-secondary: #a09686;--text-tertiary: #6e6459;--accent: #e8956e;--accent-hover: #f0a880;--accent-light: rgba(232, 149, 110, .12);--accent-glow: rgba(232, 149, 110, .2);--accent2: #7db895;--accent2-light: rgba(125, 184, 149, .12);--accent3: #a396d3;--accent3-light: rgba(163, 150, 211, .12);--danger: #e07070;--danger-light: rgba(224, 112, 112, .12);--success-light: rgba(125, 184, 149, .12);--border: #3a3530;--border-light: #2e2a26;--shadow-sm: 0 1px 3px rgba(0,0,0,.15);--shadow: 0 4px 16px rgba(0,0,0,.2);--shadow-lg: 0 12px 40px rgba(0,0,0,.3);--shadow-glow: 0 8px 32px rgba(232, 149, 110, .15)}}*{margin:0;padding:0;box-sizing:border-box}html{background:var(--bg)}body{font-family:SF Pro Rounded,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-gradient);background-attachment:fixed;color:var(--text);min-height:100dvh;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.app-title{font-family:Righteous,cursive;font-size:2.4rem;font-weight:700;display:inline-block;background:linear-gradient(135deg,var(--accent) 0%,var(--accent3) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page{max-width:640px;margin:0 auto;padding:0 20px 120px;min-height:100dvh}.header{display:flex;align-items:center;gap:14px;padding:20px 0 12px;margin-bottom:8px}.header h1{font-size:1.75rem;font-weight:800;flex:1;letter-spacing:-.03em;background:linear-gradient(135deg,var(--text) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.back-btn{background:var(--surface);border:1px solid var(--border);font-size:1.2rem;color:var(--text);cursor:pointer;text-decoration:none;padding:0;border-radius:14px;transition:all var(--transition);display:flex;align-items:center;justify-content:center;width:42px;height:42px;box-shadow:var(--shadow-sm)}@media (hover: hover){.back-btn:hover{background:var(--surface-hover);transform:scale(1.05)}}.back-btn:active{transform:scale(.95)}.item-count{background:var(--accent-light);color:var(--accent);padding:6px 14px;border-radius:999px;font-size:.82rem;font-weight:700;letter-spacing:.02em}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media (min-width: 480px){.type-grid{grid-template-columns:repeat(3,1fr)}}.type-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px 16px 22px;text-align:center;text-decoration:none;color:var(--text);display:flex;flex-direction:column;align-items:center;gap:10px;position:relative;transition:all var(--bounce);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden}.type-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 0%,var(--accent-light) 0%,transparent 70%);opacity:0;transition:opacity var(--transition)}.type-card:active{transform:scale(.96)}@media (hover: hover){.type-card:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-lg);border-color:var(--accent)}.type-card:hover:before{opacity:1}.type-card:hover .type-icon{transform:scale(1.15) rotate(-3deg)}.type-card:hover .edit-btn,.type-card:hover .delete-btn{opacity:1}}.type-icon{font-size:3rem;line-height:1;position:relative;z-index:1;transition:transform var(--bounce)}.type-name{font-weight:700;font-size:.95rem;letter-spacing:-.01em;position:relative;z-index:1}.type-count{font-size:.78rem;color:var(--text-tertiary);font-weight:500;position:relative;z-index:1}.add-card{border:2px dashed var(--border);background:transparent;opacity:.45;box-shadow:none}.add-card:before{display:none}@media (hover: hover){.add-card:hover{opacity:1;border-color:var(--accent)}}.add-card .type-icon{opacity:.5;font-size:2.2rem}.type-card .delete-btn{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text-tertiary);font-size:1rem;cursor:pointer;padding:4px 6px;line-height:1;opacity:0;transition:all var(--transition);border-radius:var(--radius-xs);z-index:2}.type-card .edit-btn{position:absolute;top:8px;left:8px;background:none;border:none;color:var(--text-tertiary);font-size:1rem;cursor:pointer;padding:4px 6px;line-height:1;opacity:0;transition:all var(--transition);border-radius:var(--radius-xs);z-index:2}@media (hover: hover){.type-card .edit-btn:hover{color:var(--accent);background:var(--accent-light)}.type-card .delete-btn:hover{color:var(--danger);background:var(--danger-light)}}.search-bar{position:relative;margin-bottom:20px}.search-bar .search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-tertiary);font-size:.95rem;pointer-events:none}.search-bar input{width:100%;padding:16px 18px 16px 46px;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem;background:var(--surface);color:var(--text);outline:none;transition:all var(--transition);box-shadow:var(--shadow-sm)}.search-bar input:focus{border-color:var(--accent);box-shadow:var(--shadow),0 0 0 4px var(--accent-glow);background:var(--surface-warm)}.search-bar input::placeholder{color:var(--text-tertiary)}.spinner{position:absolute;right:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.item-list{display:flex;flex-direction:column;gap:10px}.item-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:14px;box-shadow:var(--shadow-sm);transition:all var(--transition);position:relative;overflow:hidden}.item-card:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);opacity:0;transition:opacity var(--transition);border-radius:0 4px 4px 0}@media (hover: hover){.item-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translate(4px)}.item-card:hover:after{opacity:1}}.item-card:active{transform:scale(.99)}.item-info{flex:1;cursor:pointer;display:flex;flex-direction:column;gap:4px;min-width:0}.item-info strong{font-size:1rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.item-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.item-artist{color:var(--text-secondary);font-size:.88rem}.item-year,.item-lang,.item-edition{font-size:.72rem;padding:2px 10px;border-radius:999px;font-weight:600;white-space:nowrap}.item-year{color:var(--accent);background:var(--accent-light)}.item-lang{color:var(--accent2);background:var(--accent2-light)}.item-edition{color:var(--accent3);background:var(--accent3-light)}.item-card .delete-btn{background:none;border:none;color:var(--text-tertiary);font-size:1.1rem;cursor:pointer;padding:8px;line-height:1;opacity:0;transition:all var(--transition);flex-shrink:0;border-radius:var(--radius-xs)}@media (hover: hover){.item-card:hover .delete-btn{opacity:1}.item-card .delete-btn:hover{color:var(--danger);background:var(--danger-light)}}.empty{text-align:center;color:var(--text-tertiary);padding:60px 20px;font-size:1.05rem;line-height:1.6}.empty-icon{font-size:3.5rem;display:block;margin-bottom:14px;opacity:.35;animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.fab-group{position:fixed;bottom:28px;right:28px;display:flex;flex-direction:column-reverse;gap:12px;align-items:center;z-index:90}.fab{width:60px;height:60px;border-radius:20px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:#fff;font-size:1.7rem;display:flex;align-items:center;justify-content:center;text-decoration:none;border:none;cursor:pointer;box-shadow:var(--shadow-glow);transition:all var(--bounce)}@media (hover: hover){.fab:hover{transform:scale(1.1);box-shadow:0 12px 40px #e0785059}}.fab:active{transform:scale(.92)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2d2a2666;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:20px;animation:fadeIn .25s ease}@media (min-width: 480px){.modal-overlay{align-items:center}}.modal{background:var(--surface);border-radius:var(--radius) var(--radius) 8px 8px;padding:32px 28px;width:100%;max-width:440px;display:flex;flex-direction:column;gap:20px;animation:slideUp .35s cubic-bezier(.34,1.56,.64,1);box-shadow:var(--shadow-lg)}@media (min-width: 480px){.modal{border-radius:var(--radius);animation:popIn .3s cubic-bezier(.34,1.56,.64,1)}}.modal h2{font-size:1.3rem;font-weight:800;letter-spacing:-.03em}.modal-actions{display:flex;gap:10px;justify-content:flex-end}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.form{display:flex;flex-direction:column;gap:20px}.form label{display:flex;flex-direction:column;gap:8px;font-size:.78rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.form-type-hint{font-size:1.15rem;padding:10px 0 4px;font-weight:600}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-section{display:flex;flex-direction:column;gap:18px;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.form-section-title{font-size:.72rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:-4px}input,select,textarea{padding:14px 18px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:1rem;background:var(--surface-warm);color:var(--text);outline:none;font-family:inherit;transition:all var(--transition);width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:var(--surface)}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%237a7267' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px}textarea{resize:vertical;min-height:80px}button{padding:14px 24px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:.95rem;cursor:pointer;font-family:inherit;font-weight:600;transition:all var(--transition)}button:active{transform:scale(.97)}button.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-hover) 100%);color:#fff;border-color:transparent;font-weight:700;box-shadow:var(--shadow),0 4px 16px #e0785033}@media (hover: hover){button.primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}}button.primary:active{transform:translateY(0) scale(.98)}.full-width{width:100%}.scanner-container{border-radius:var(--radius);overflow:hidden;background:#000;position:relative;box-shadow:var(--shadow-lg)}.scanner-container #scanner-video{width:100%}.scanner-container video{width:100%!important;max-height:50vh;object-fit:cover;display:block}.scanner-status{text-align:center;padding:18px;color:var(--text-secondary);font-size:.92rem;font-weight:500}.scanner-duplicate-info{padding:16px 20px;background:var(--danger-light);border:1.5px solid var(--danger);border-radius:var(--radius-sm);color:var(--text);border-left:4px solid var(--danger)}.scanner-duplicate-info strong{display:block;margin-bottom:6px;color:var(--danger);font-weight:700}.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:14px 28px;border-radius:var(--radius-sm);font-size:.92rem;font-weight:600;box-shadow:var(--shadow-lg);z-index:200;animation:toastIn .35s cubic-bezier(.34,1.56,.64,1),toastOut .3s ease 2.7s forwards;white-space:nowrap}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes toastOut{to{opacity:0;transform:translate(-50%) translateY(-10px) scale(.95)}}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--accent);color:#fff;text-align:center;padding:6px 16px;font-size:.82rem;font-weight:600;z-index:999;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@supports (padding: env(safe-area-inset-top)){.page{padding-top:env(safe-area-inset-top)}.offline-banner{padding-top:calc(6px + env(safe-area-inset-top))}}@supports (padding: env(safe-area-inset-bottom)){.page{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.fab-group{bottom:calc(28px + env(safe-area-inset-bottom))}.toast{bottom:calc(110px + env(safe-area-inset-bottom))}}@media (pointer: coarse){.type-card .delete-btn{opacity:.5}.desktop-only{display:none!important}input,select,textarea{font-size:16px}.lend-action-btn{width:52px;height:52px;font-size:1.5rem}.item-info{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.sort-toggle{display:flex;gap:0;margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;box-shadow:var(--shadow-sm)}.sort-toggle button{flex:1;padding:8px 16px;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all var(--transition)}.sort-toggle button.active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #e0785040}.export-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);text-decoration:none;font-size:1.2rem;font-weight:700;box-shadow:var(--shadow-sm);transition:all var(--transition)}@media (hover: hover){.export-btn:hover{color:var(--accent);border-color:var(--accent)}}.total-count{font-size:.82rem;color:var(--text-tertiary);font-weight:500;margin-bottom:16px;padding-left:2px}.home-search,.search-results{margin-bottom:24px}.search-results-title{font-size:.78rem;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}.search-result-type{font-size:.72rem;color:var(--accent);background:var(--accent-light);padding:3px 10px;border-radius:999px;font-weight:700;white-space:nowrap}.filter-tabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}.filter-tabs button{padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition)}.filter-tabs button.active{background:var(--accent-light);color:var(--accent);border-color:var(--accent)}.filter-tabs button.active.wishlist{background:var(--accent3-light);color:var(--accent3);border-color:var(--accent3)}.filter-tabs button.active.lent{background:var(--accent2-light);color:var(--accent2);border-color:var(--accent2)}.sort-toggle button.active.wishlist{background:var(--accent3);box-shadow:0 2px 8px #7c6bb540}.item-wishlist{opacity:.7;border-style:dashed}.item-lent{border-left:4px solid var(--accent2)}.badge{font-size:.65rem;padding:1px 8px;border-radius:999px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.badge-wishlist{background:var(--accent3-light);color:var(--accent3)}.lent-info{font-size:.82rem;color:var(--accent2);margin-top:2px}.lent-weeks{color:var(--text-tertiary)}.lent-overdue{color:var(--danger);font-weight:600}.item-card-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.lend-action-btn{background:var(--surface-warm);border:1px solid var(--border);font-size:1.4rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:12px;transition:all .15s;line-height:1;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.lend-action-btn.return{background:var(--accent2-light);border-color:var(--accent2)}@media (hover: hover){.lend-action-btn:hover{background:var(--accent-light);border-color:var(--accent)}.lend-action-btn.return:hover{background:var(--accent2)}}.lend-inline{display:flex;gap:8px;padding:8px 0 4px;width:100%}.lend-inline input{flex:1;font-size:1rem;padding:10px 12px}.lend-inline button{padding:10px 18px;font-size:.95rem}.insights-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:20px;animation:popIn .25s ease}.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.insight-card{text-align:center;padding:14px 8px;background:var(--surface-warm);border-radius:var(--radius-sm)}.insight-value{display:block;font-size:1.6rem;font-weight:800;color:var(--accent);letter-spacing:-.02em}.insight-label{font-size:.72rem;color:var(--text-tertiary);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.insight-section{display:flex;flex-direction:column;gap:8px}.insight-section-title{font-size:.72rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}.insight-row{display:flex;align-items:center;gap:10px;padding:4px 0}.insight-rank{color:var(--text-tertiary);font-size:.8rem;font-weight:700;width:24px}.insight-name{flex:1;font-size:.9rem}.insight-count{font-size:.8rem;font-weight:700;color:var(--accent);background:var(--accent-light);padding:2px 10px;border-radius:999px}.decade-bars{display:flex;flex-direction:column;gap:6px}.decade-bar{display:flex;align-items:center;gap:8px}.decade-label{font-size:.78rem;color:var(--text-secondary);font-weight:600;width:42px;flex-shrink:0}.decade-fill{height:20px;background:linear-gradient(90deg,var(--accent) 0%,var(--accent-hover) 100%);border-radius:4px;min-width:4px;transition:width .5s ease}.decade-count{font-size:.75rem;color:var(--text-tertiary);font-weight:600}.insight-tags{display:flex;flex-wrap:wrap;gap:6px}.insight-tag{font-size:.78rem;padding:4px 12px;border-radius:999px;background:var(--accent2-light);color:var(--accent2);font-weight:600}.insight-highlight{font-size:.92rem;color:var(--text);font-weight:500}
