@charset "UTF-8";:root{--navy: #1d3a5f;--navy-light: #2a5285;--navy-dark: #142844;--accent: #2a5fc4;--bg: #f0f2f5;--card-bg: #ffffff;--border: #d0d7e2;--text: #1a1a2e;--text-muted: #6b7280;--radius: 8px;--radius-sm: 4px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05);--shadow-md: 0 4px 12px rgba(0,0,0,.12), 0 2px 4px rgba(0,0,0,.07);--shadow-lg: 0 8px 24px rgba(0,0,0,.15), 0 4px 8px rgba(0,0,0,.08);--transition: .18s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;min-height:100dvh}.app-header{position:sticky;top:0;z-index:10;background:var(--card-bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);padding:.65rem .75rem .5rem}.header-top{display:flex;align-items:center;gap:.5rem}.app-title{font-size:14px;font-weight:700;color:var(--navy);white-space:nowrap;flex-shrink:0;letter-spacing:.02em}.header-search{display:flex;flex:1;gap:.4rem;align-items:center;min-width:0}.keyword-input{flex:1;min-width:0;height:36px;padding:0 .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;color:var(--text);background:var(--bg);outline:none;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition)}.keyword-input:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 3px #2a5fc426}.btn-filter{position:relative;flex-shrink:0;height:36px;padding:0 .7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;outline:none;white-space:nowrap;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.btn-filter:hover{background:#e4e8ef;border-color:#b0bad0}.btn-filter:focus-visible{box-shadow:0 0 0 3px #2a5fc440}.btn-filter.has-badge:after{content:attr(data-badge);position:absolute;top:-6px;right:-6px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 3px}.filter-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.45rem}.chip{display:inline-flex;align-items:center;gap:.2rem;height:24px;padding:0 .55rem;background:var(--navy);color:#fff;border:none;border-radius:12px;font-size:11px;font-family:inherit;cursor:pointer;outline:none;transition:background var(--transition)}.chip:hover{background:var(--navy-light)}.chip:focus-visible{box-shadow:0 0 0 3px #2a5fc44d}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0003;z-index:100;animation:fade-in .2s ease both}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:200;background:var(--card-bg);border-radius:16px 16px 0 0;box-shadow:0 -4px 24px #00000024;transform:translateY(100%);transition:transform .25s ease;max-height:90vh;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column}.sheet.is-open{transform:translateY(0)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}.sheet-title{font-size:15px;font-weight:700;color:var(--text)}.btn-icon{width:32px;height:32px;border:none;border-radius:50%;background:var(--bg);color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--transition)}.btn-icon:hover{background:var(--border)}.sheet-body{padding:1rem;overflow-y:auto;flex:1}.sheet-footer{display:flex;gap:.6rem;padding:.75rem 1rem;border-top:1px solid var(--border);flex-shrink:0;background:var(--card-bg)}.filter-body{display:grid;grid-template-columns:1fr 1fr;gap:1rem .75rem}.filter-item{display:flex;flex-direction:column;gap:.3rem}.filter-item.full-width{grid-column:1 / -1}.filter-label{font-size:11px;font-weight:600;color:var(--text-muted);letter-spacing:.04em}.filter-row{display:flex;align-items:center;gap:.4rem}.filter-sep{color:var(--text-muted);font-size:13px;flex-shrink:0}.filter-body select,.filter-body input[type=number]{height:36px;padding:0 .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);font-size:13px;font-family:inherit;outline:none;width:100%;transition:border-color var(--transition),box-shadow var(--transition)}.filter-body select:focus,.filter-body input[type=number]:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2a5fc426}.filter-row input[type=number]{width:80px;flex:1}.color-swatch{display:inline-block;width:24px;height:24px;border-radius:50%;border:1.5px solid rgba(0,0,0,.12);flex-shrink:0;transition:background-color .2s ease}.print-body{display:flex;flex-direction:column;gap:1.25rem}.segment{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.segment-btn{flex:1;height:42px;border:none;border-right:1px solid var(--border);background:#fff;color:var(--text);font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;outline:none;transition:background var(--transition),color var(--transition)}.segment-btn:last-child{border-right:none}.segment-btn.is-active{background:var(--navy);color:#fff}.segment-btn:hover:not(.is-active){background:var(--bg)}.segment-btn:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.page-hint{font-size:14px;color:var(--text-muted);text-align:center;padding:.25rem 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;height:40px;padding:0 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:var(--text);font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;outline:none;text-decoration:none;white-space:nowrap;flex-shrink:0;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition),opacity var(--transition),color var(--transition)}.btn:hover:not(:disabled){background:var(--bg)}.btn:focus-visible{box-shadow:0 0 0 3px #2a5fc440}.btn:active:not(:disabled){transform:translateY(1px)}.btn-secondary{background:var(--bg);flex:1}.btn-secondary:hover{background:#e4e8ef}.btn-primary{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700;flex:1}.btn-primary:hover:not(:disabled){background:var(--navy-light);border-color:var(--navy-light)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-open-pdf{background:#fff;border-color:var(--accent);color:var(--accent);font-weight:600;flex:1}.btn-open-pdf:hover{background:var(--accent);color:#fff}.btn-text{background:none;border:none;color:var(--navy);font-size:12px;font-family:inherit;font-weight:600;cursor:pointer;padding:.3rem .5rem;border-radius:var(--radius-sm);outline:none;transition:background var(--transition);white-space:nowrap}.btn-text:hover{background:#1d3a5f14}.btn-text:focus-visible{box-shadow:0 0 0 3px #2a5fc440}.btn-pdf{height:44px;padding:0 1.5rem;font-size:15px;border-radius:var(--radius);flex:0 0 auto}.list-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem .3rem}.list-count{font-size:12px;color:var(--text-muted);font-weight:600}.list-actions{display:flex;gap:0}.panel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;padding:0 .75rem .75rem}@media (min-width: 480px){.panel-grid{grid-template-columns:repeat(3,1fr);gap:.7rem;padding:0 1rem 1rem}}@media (min-width: 768px){.panel-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1200px){.panel-grid{grid-template-columns:repeat(5,1fr)}}.card{position:relative;background:var(--card-bg);border-radius:var(--radius);border:2.5px solid transparent;box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;transition:border-color var(--transition),box-shadow var(--transition),transform var(--transition);animation:card-appear .22s ease both}@media (hover: hover){.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}}.card.is-selected{border-color:var(--navy);box-shadow:0 0 0 1px var(--navy),var(--shadow-md)}.card-check{position:absolute;top:5px;right:5px;width:20px;height:20px;background:var(--navy);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;opacity:0;transform:scale(.5);transition:opacity .15s ease,transform .15s ease;pointer-events:none;z-index:1}.card.is-selected .card-check{opacity:1;transform:scale(1);animation:check-pop .2s cubic-bezier(.34,1.56,.64,1) both}.card-img-wrap{position:relative;width:100%;aspect-ratio:1 / 1;background:#e8eaed;overflow:hidden}.card-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#e0e3e9 25%,#edf0f5,#e0e3e9 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;opacity:1;transition:opacity .3s ease}.card-skeleton.is-hidden{opacity:0;pointer-events:none}.card-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .35s ease}.card-img.is-loaded{opacity:1}.card-body{padding:.4rem .5rem .5rem}.card-code{font-size:11px;font-weight:700;color:var(--text);line-height:1.4}.card-title{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.card-size{font-size:10px;color:var(--text-muted);margin-top:1px;line-height:1.4}.bottom-bar{position:sticky;bottom:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;background:var(--card-bg);border-top:1px solid var(--border);box-shadow:0 -2px 12px #00000014;min-height:60px;margin-top:auto}.selected-count{font-size:13px;font-weight:600;color:var(--navy);flex:1;min-width:0}.selected-count.no-selection{color:var(--text-muted);font-weight:400}.selected-count.is-pulsing{animation:count-pulse .35s ease both}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@media (min-width: 768px){.btn-filter,.overlay{display:none!important}.filter-sheet{position:static!important;transform:none!important;transition:none!important;border-radius:0;max-height:none;box-shadow:none;border-bottom:1px solid var(--border);display:flex!important;flex-direction:row;align-items:flex-end;gap:.75rem;padding:.65rem 1rem;overflow:visible}.filter-sheet .sheet-header{display:none}.filter-sheet .sheet-body{padding:0;overflow:visible;flex:1}.filter-body{display:flex!important;flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:.5rem .75rem}.filter-item{flex-direction:column}.filter-item.full-width{width:auto}.filter-body select{width:130px}.filter-row input[type=number]{width:72px;flex:0 0 72px}.filter-label{font-size:10px}.filter-sheet .sheet-footer{position:static;border-top:none;padding:0;flex:0 0 auto;background:transparent}.filter-sheet .sheet-footer .btn-primary{display:none}.filter-sheet .sheet-footer .btn-secondary{flex:0 0 auto}.panel-grid{padding:0 1rem 1rem}.list-header{padding:.5rem 1rem .3rem}.bottom-bar{padding:.65rem 1rem}.app-header{padding:.75rem 1rem .6rem}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes check-pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes card-appear{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes count-pulse{0%{transform:scale(1)}40%{transform:scale(1.05);color:var(--accent)}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tag-chips{display:flex;flex-wrap:wrap;gap:.4rem}.chip.is-active{background:var(--navy);color:#fff;border-color:var(--navy)}
