:root{--blue:#1672f3;--blue2:#2c86ff;--blue-soft:#edf5ff;--ink:#0e2340;--muted:#6b7c93;--line:#dfe7f1;--bg:#f5f8fc;--card:#fff;--green:#23a566;--shadow:0 10px 30px rgba(34,66,110,.06)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:220px;background:#fff;border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;gap:10px;align-items:center;font-size:21px;padding:0 8px 20px}.brand-mark{width:38px;height:38px;border-radius:10px;background:linear-gradient(145deg,var(--blue),#5ba6ff);color:#fff;display:grid;place-items:center;font-size:25px;font-weight:700}.sidebar nav{display:grid;gap:5px}.nav-item{display:flex;gap:12px;align-items:center;text-decoration:none;color:#30425e;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:650}.nav-item span{width:18px;text-align:center}.nav-item:hover,.nav-item.active{background:var(--blue-soft);color:var(--blue)}.side-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:16px}.user-row{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e6f1ff;color:var(--blue);font-weight:700}.user-row strong,.user-row small{display:block}.user-row strong{font-size:13px}.user-row small{font-size:11px;color:var(--muted);margin-top:2px}.logout{display:block;margin-top:15px;text-decoration:none;color:#506177;font-size:12px}.main{margin-left:220px;width:calc(100% - 220px)}.topbar{height:92px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:16px 28px;position:sticky;top:0;z-index:15}.topbar h1{font-size:26px;margin:0 0 4px}.topbar p{margin:0;color:var(--muted);font-size:13px}.stats{display:flex;gap:10px}.stat{min-width:132px;height:64px;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;gap:10px;padding:10px;background:#fff}.stat>span{width:35px;height:35px;border-radius:8px;background:var(--blue-soft);display:grid;place-items:center;color:var(--blue);font-weight:800}.stat small,.stat b{display:block}.stat small{color:var(--muted);font-size:11px}.stat b{font-size:18px;margin-top:2px}.workspace{padding:0 20px 32px}.tabs{height:48px;display:flex;align-items:end;gap:22px;border-bottom:1px solid var(--line);background:#fff;margin:0 -20px 12px;padding-left:32px}.tab{border:0;background:transparent;padding:14px 4px 12px;color:#607086;font-weight:650;cursor:pointer;position:relative}.tab.active{color:var(--blue)}.tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;background:var(--blue);border-radius:3px}.tab-panel{display:none}.tab-panel.active{display:block}.hero-grid{display:grid;grid-template-columns:1fr 1.08fr;gap:14px}.card,.filter-card{background:var(--card);border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow)}.card{padding:14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.card-head h2,.filter-card h2,.results-head h2{font-size:15px;margin:0}.text-btn{background:none;border:0;color:#6f7f94;font-size:12px;cursor:pointer}.muted{color:var(--muted);font-size:11px}.info-dot{display:inline-grid;place-items:center;border:1px solid #a9b7c8;width:16px;height:16px;border-radius:50%;font-size:10px;color:#6e7e92}.source-preview{border:1px solid var(--line);border-radius:8px;padding:8px;display:flex;gap:18px;align-items:center;min-height:132px}.source-preview img{width:205px;height:115px;object-fit:cover;border:1px solid #d8e0ea;border-radius:4px;background:#fff}.source-meta h3{margin:0 0 6px;font-size:16px}.source-meta p{margin:0 0 8px;color:var(--muted);font-size:12px}.ok{color:var(--green);font-size:12px;font-weight:650}.source-actions{display:grid;grid-template-columns:.9fr 1.15fr;gap:10px;margin-top:10px}.btn{border-radius:7px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 15px;font-weight:700;cursor:pointer;text-decoration:none}.btn.primary{background:linear-gradient(180deg,var(--blue2),var(--blue));color:#fff}.btn.primary:hover{filter:brightness(.97)}.btn.secondary{background:#fff;border-color:#cfdbea;color:var(--blue)}.btn.compact{height:36px;white-space:nowrap}.file-picker input{display:none}.ai-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ai-item{min-height:54px;border-radius:7px;background:linear-gradient(90deg,#f0f7ff,#f8fbff);display:flex;align-items:center;gap:12px;padding:9px 12px}.ai-item>span{color:var(--blue);font-size:20px}.ai-item small,.ai-item b{display:block}.ai-item small{font-size:11px;color:#6e7f95}.ai-item b{margin-top:2px;font-size:14px}.chip-row{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:11px;flex-wrap:wrap}.chip-row button{border:1px solid #cfd9e6;background:#fff;border-radius:6px;padding:7px 11px;color:#58687f;cursor:pointer}.switch{position:relative;width:34px;height:19px;display:inline-block}.switch input{display:none}.switch span{position:absolute;inset:0;border-radius:20px;background:#c7d2df}.switch span:after{content:"";position:absolute;width:15px;height:15px;top:2px;left:2px;border-radius:50%;background:#fff;transition:.2s}.switch input:checked+span{background:var(--blue)}.switch input:checked+span:after{left:17px}.condition-intro{display:flex;justify-content:space-between;align-items:center;min-height:170px;padding:28px}.condition-intro h2{margin:0 0 8px}.condition-intro p{margin:0;color:var(--muted)}.condition-visual{font-size:70px;color:#b6d6ff}.filter-card{margin-top:14px;padding:12px 14px}.filter-card h2{margin-bottom:10px}.filters{display:grid;grid-template-columns:1.45fr .75fr .8fr .65fr .8fr 1.1fr auto auto;gap:9px;align-items:end}.field span{display:block;font-size:11px;margin-bottom:5px;font-weight:700}.field input,.field select{width:100%;height:36px;border:1px solid #ccd8e6;border-radius:6px;background:#fff;padding:0 10px;color:#30425d;outline:none}.field input:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 2px rgba(22,114,243,.09)}.input-icon{display:flex;align-items:center;gap:5px;border:1px solid #ccd8e6;border-radius:6px;padding-left:9px;color:#789}.input-icon input{border:0;padding-left:4px}.range{display:flex;align-items:center;gap:7px}.range em{font-style:normal}.results-section{margin-top:16px}.results-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:10px}.results-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.count-badge{font-size:11px;background:#edf3f9;border-radius:20px;padding:3px 7px;color:#475b73}.view-actions{display:flex;gap:7px;align-items:center}.view-actions select,.icon-btn{height:32px;border:1px solid #cfd9e5;border-radius:6px;background:#fff;color:#51647d}.view-actions select{padding:0 28px 0 10px}.icon-btn{width:34px;cursor:pointer}.icon-btn.active{background:var(--blue);color:#fff;border-color:var(--blue)}.results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.result-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;box-shadow:var(--shadow);min-width:0}.result-thumb{position:relative;height:185px;border:1px solid #dbe3ed;border-radius:6px;overflow:hidden;background:#fff}.result-thumb img{width:100%;height:100%;object-fit:contain}.score{position:absolute;right:8px;top:8px;background:var(--blue);color:#fff;border-radius:20px;padding:6px 10px;font-size:12px;font-weight:800;box-shadow:0 4px 12px rgba(22,114,243,.25)}.result-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-top:9px}.result-title h3{font-size:14px;margin:0}.star{border:0;background:none;color:#6c7d93;font-size:19px;cursor:pointer}.meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;font-size:11px;color:#53647b;margin:10px 0}.meta-grid div{display:flex;gap:6px}.meta-grid b{font-weight:700;color:#32465f}.reason{background:#f6f9fd;border-radius:6px;padding:8px;font-size:11px;color:#54677f;line-height:1.55}.tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.tag{font-size:10px;background:#edf5ff;color:#2c6dbd;border-radius:20px;padding:3px 7px}.card-actions{display:grid;grid-template-columns:1fr 1fr auto;gap:7px;margin-top:10px}.card-actions .btn{height:34px;font-size:11px}.compare{border:0;background:#fff;color:var(--blue);font-weight:700;cursor:pointer;padding:0 4px}.empty-state{text-align:center;padding:50px;background:#fff;border:1px dashed #cbd8e6;border-radius:8px;color:#56687f}.modal{position:fixed;inset:0;z-index:100;display:none}.modal.open{display:block}.modal-backdrop{position:absolute;inset:0;background:rgba(7,21,41,.46)}.modal-dialog{position:relative;width:min(940px,92vw);max-height:88vh;overflow:auto;background:#fff;border-radius:12px;margin:6vh auto;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.25)}.modal-close{position:absolute;right:14px;top:10px;border:0;background:#eef3f8;width:34px;height:34px;border-radius:50%;font-size:22px;cursor:pointer}.modal-content-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.modal-content-grid img{width:100%;height:420px;object-fit:contain;border:1px solid var(--line)}.modal-content-grid h2{margin-top:0}.detail-list{display:grid;gap:10px}.detail-list div{border-bottom:1px solid var(--line);padding-bottom:8px}.detail-list small{display:block;color:var(--muted);margin-bottom:3px}.toast{position:fixed;right:24px;bottom:24px;background:#142d50;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.15);transform:translateY(80px);opacity:0;transition:.25s;z-index:200;font-size:13px}.toast.show{transform:translateY(0);opacity:1}@media(max-width:1180px){.stats{display:none}.filters{grid-template-columns:repeat(4,1fr)}.results-grid{grid-template-columns:1fr 1fr}.hero-grid{grid-template-columns:1fr}}@media(max-width:800px){.sidebar{width:72px;padding:14px 8px}.brand strong,.nav-item:not(.active){font-size:0}.brand{padding-left:8px}.brand-mark{width:38px}.nav-item{justify-content:center}.nav-item.active{font-size:0}.nav-item span{font-size:18px}.side-footer{display:none}.main{margin-left:72px;width:calc(100% - 72px)}.topbar{padding:14px 18px}.filters{grid-template-columns:1fr 1fr}.results-grid{grid-template-columns:1fr}.source-preview{flex-direction:column;align-items:flex-start}.source-preview img{width:100%;height:180px}.source-actions{grid-template-columns:1fr}.modal-content-grid{grid-template-columns:1fr}}
