@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Space+Grotesk:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap";*{margin:0;padding:0;box-sizing:border-box}:root{--bg:#07111f;--surface:#101a31;--surface2:#16233f;--surface3:#1d2d4f;--accent:#7fe0cf;--accent2:#5ca9ff;--accent3:#af79ff;--gold:#f0ba61;--text:#eef5ff;--text2:#99a7c7;--text3:#66759a;--radius:14px;--danger:#E85050}html,body,#root{height:100%;font-family:Inter,system-ui,sans-serif;background:radial-gradient(circle at 14% 18%,rgba(67,184,255,.22),transparent 26%),radial-gradient(circle at 82% 16%,rgba(198,109,255,.2),transparent 28%),radial-gradient(circle at 72% 72%,rgba(255,120,168,.14),transparent 24%),radial-gradient(circle at 24% 80%,rgba(95,235,189,.16),transparent 26%),radial-gradient(circle at 52% 48%,rgba(255,186,92,.08),transparent 18%),linear-gradient(180deg,#07101f,#09162a 38%,#0a1222);color:var(--text);overflow:hidden}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}nav{position:fixed;top:0;left:0;right:0;height:56px;display:flex;align-items:center;padding:0 24px;background:linear-gradient(180deg,#080e1eb3,#080e1e26);border-bottom:1px solid rgba(255,255,255,.04);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:Space Grotesk,Noto Sans SC,system-ui,sans-serif}nav .logo{display:flex;align-items:center;gap:9px;font-weight:700;font-size:17px;font-family:Space Grotesk,Noto Sans SC,system-ui,sans-serif}nav .logo span{background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));background-size:200% auto;animation:shimmer 5s linear infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent}nav .logo-dot{width:22px;height:22px;border-radius:6px;background:linear-gradient(135deg,var(--accent),var(--accent2));position:relative}nav .logo-dot:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:var(--bg)}nav .tabs{display:flex;gap:2px;margin-left:44px;height:100%;align-items:center}nav .tab{position:relative;padding:6px 22px;border-radius:0;font-size:13.5px;font-weight:400;cursor:pointer;color:var(--text3);background:transparent;border:none;transition:color .3s ease,text-shadow .3s ease;letter-spacing:.5px;height:100%;display:flex;align-items:center;font-family:Space Grotesk,Noto Sans SC,system-ui,sans-serif}nav .tab:before{display:none}nav .tab:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:1px;transition:width .3s ease,box-shadow .3s ease;box-shadow:none}nav .tab:hover{color:var(--text2)}nav .tab:hover:after{width:20px;box-shadow:0 0 8px #7fe0cf33}nav .tab.active{color:#fff;font-weight:600;text-shadow:0 0 20px rgba(127,224,207,.35),0 0 40px rgba(92,169,255,.15)}nav .tab.active:after{width:60%;height:2px;background:linear-gradient(90deg,transparent,var(--accent),var(--accent2),transparent);box-shadow:0 0 12px #7fe0cf66,0 2px 20px #7fe0cf26}nav .right{margin-left:auto;display:flex;align-items:center;gap:14px}nav .btn-new{padding:7px 18px;border-radius:8px;background:transparent;color:var(--accent);font-size:12.5px;font-weight:500;cursor:pointer;border:1px solid rgba(127,224,207,.2);transition:all .25s ease;letter-spacing:.3px}nav .btn-new:hover{background:#7fe0cf0f;border-color:#7fe0cf66;color:#fff;text-shadow:0 0 12px rgba(127,224,207,.3)}.view{position:absolute;top:52px;left:0;right:0;bottom:0;opacity:0;pointer-events:none;transition:opacity .35s}.view.active{opacity:1;pointer-events:all}#universe-view{background:radial-gradient(circle at 22% 24%,rgba(65,146,255,.12),transparent 24%),radial-gradient(circle at 78% 22%,rgba(166,94,255,.12),transparent 24%),radial-gradient(circle at 50% 82%,rgba(85,224,180,.08),transparent 26%),linear-gradient(180deg,#07101d,#091527 55%,#0a1120)}#graph-container{width:100%;height:100%}.universe-overlay{position:absolute;top:20px;left:22px;pointer-events:none;animation:fadeUp .6s ease .1s both}.universe-overlay h2{font-size:28px;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.universe-overlay p{font-size:12px;color:var(--text3);margin-top:3px}.universe-stats{position:absolute;bottom:20px;left:22px;display:flex;gap:12px;animation:fadeUp .6s ease .4s both}.stat{background:#0c0c16cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:12px 16px;border-radius:10px;border:1px solid rgba(255,255,255,.04)}.stat .val{font-size:22px;font-weight:800;color:var(--accent)}.stat .label{font-size:9px;color:var(--text3);margin-top:2px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.universe-legend{position:absolute;top:20px;right:22px;display:flex;flex-direction:column;gap:4px;animation:fadeUp .6s ease .3s both}.legend-item{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--text2);font-weight:500;background:#0c0c16b3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:5px 12px;border-radius:6px;cursor:pointer;transition:all .2s}.legend-item:hover{transform:translate(-2px);color:var(--text)}.legend-item.active{background:#5ca9ff29;border:1px solid rgba(92,169,255,.24);color:#fff;box-shadow:0 0 24px #5ca9ff29}.legend-dot{width:8px;height:8px;border-radius:50%}.search-float{position:absolute;bottom:20px;right:22px;animation:fadeUp .6s ease .6s both}.search-float input{width:200px;padding:9px 14px 9px 32px;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:#0c0c16cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--text);font-size:12px;outline:none;font-family:inherit;transition:width .3s}.search-float input:focus{width:280px;border-color:#68c8a040}.search-float .si{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--text3)}.search-meta{margin-top:8px;min-height:18px;padding:0 4px;text-align:right;font-size:11px;color:var(--text2);text-shadow:0 0 18px rgba(92,169,255,.22)}#record-view{display:flex;flex-direction:column;align-items:center;padding:36px 20px;overflow-y:auto;background:radial-gradient(ellipse at 50% 0%,rgba(104,200,160,.02),transparent 50%)}.record-card{width:100%;max-width:560px;background:var(--surface);border-radius:18px;padding:32px;border:1px solid rgba(255,255,255,.04);animation:fadeUp .5s ease}.record-card h3{font-size:20px;font-weight:700;margin-bottom:20px}.input-group{margin-bottom:16px}.input-group label{display:block;font-size:10px;color:var(--text3);margin-bottom:6px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.input-group input,.input-group textarea,.input-group select{width:100%;padding:12px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.05);background:var(--surface2);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:all .2s}.input-group input:focus,.input-group textarea:focus{border-color:#68c8a059}.input-group textarea{min-height:100px;resize:vertical;line-height:1.6}.input-group select{cursor:pointer}.score-row{display:flex;gap:5px;margin-top:6px}.score-btn{width:36px;height:36px;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:var(--surface2);color:var(--text3);font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.score-btn.sel{background:var(--accent);color:#000;border-color:transparent}.tag-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.tag{padding:4px 12px;border-radius:16px;font-size:11px;font-weight:500;background:#68c8a014;color:var(--accent);border:1px solid rgba(104,200,160,.12);cursor:pointer}.tag.rm:after{content:" ×";opacity:.5}.price-wrap{display:flex;flex-direction:column;gap:8px}.price-mode-toggle{display:inline-flex;background:var(--surface2);border-radius:8px;padding:2px;gap:2px;width:fit-content}.price-mode{padding:5px 14px;border-radius:6px;font-size:11px;font-weight:600;color:var(--text3);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.price-mode.sel{background:var(--accent);color:#0a0e18}.price-inputs{position:relative}.price-inputs input[type=number]{padding:10px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.05);background:var(--surface2);color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:all .2s;width:100%}.price-inputs input[type=number]:focus{border-color:#7fe0cf66}.price-inputs input[type=number]::-webkit-inner-spin-button{opacity:.3}.price-unit{font-size:12px;color:var(--text3);margin-left:6px;white-space:nowrap}.price-avg-result{margin-top:6px;font-size:13px;font-weight:700;color:var(--accent);min-height:20px;transition:all .25s}#price-unit-group{display:flex;align-items:center}#price-unit-group input{flex:1}.record-actions{display:flex;gap:10px;margin-top:24px}.record-actions button{flex:1;padding:13px;border-radius:10px;border:none;font-size:13px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}.btn-p{background:var(--accent);color:#000}.btn-p:hover{box-shadow:0 4px 20px #68c8a040;transform:translateY(-1px)}.btn-s{background:var(--surface2);color:var(--text);border:1px solid rgba(255,255,255,.05)!important}.btn-danger{background:#e850501f;color:var(--danger);border:1px solid rgba(232,80,80,.15)!important}.btn-danger:hover{background:#e8505040}#chat-view{display:flex;flex-direction:column}.chat-area{flex:1;overflow-y:auto;padding:24px;display:flex;flex-direction:column;gap:12px}.msg{max-width:72%;padding:14px 18px;border-radius:16px;font-size:13px;line-height:1.7;animation:fadeUp .25s ease}.msg.ai{align-self:flex-start;background:var(--surface);border:1px solid rgba(255,255,255,.04);border-bottom-left-radius:4px}.msg.user{align-self:flex-end;background:#68c8a01a;border:1px solid rgba(104,200,160,.08);border-bottom-right-radius:4px}.msg .sender{font-size:9px;color:var(--text3);margin-bottom:5px;text-transform:uppercase;letter-spacing:1px;font-weight:600}.msg b{color:var(--accent);font-weight:600}.typing{align-self:flex-start;padding:14px 18px;background:var(--surface);border:1px solid rgba(255,255,255,.04);border-radius:16px 16px 16px 4px;display:none}.typing span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--text3);margin:0 2px;animation:tb .6s ease infinite}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}@keyframes tb{0%,to{transform:translateY(0);opacity:.3}50%{transform:translateY(-3px);opacity:1}}.chat-bar{padding:14px 24px;border-top:1px solid rgba(255,255,255,.03);display:flex;gap:10px;align-items:center;background:#000008d9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.chat-bar input{flex:1;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.05);background:var(--surface);color:var(--text);font-size:13px;outline:none;font-family:inherit}.chat-bar input:focus{border-color:#68c8a040}.chat-bar button{width:42px;height:42px;border-radius:12px;background:var(--accent);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center}.chat-bar button svg{width:16px;height:16px}#categories-view{padding:32px 24px;overflow-y:auto}.section-header{text-align:center;max-width:960px;margin:0 auto;animation:fadeUp .5s ease}.section-header h2{font-size:24px;font-weight:800}.section-header p{color:var(--text2);font-size:13px;margin-top:4px}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;max-width:960px;margin:24px auto 0}.cat-card{background:var(--surface);border-radius:14px;padding:22px;cursor:pointer;border:1px solid rgba(255,255,255,.04);transition:all .3s;position:relative}.cat-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #0000004d}.cat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:12px}.cat-card h4{font-size:15px;font-weight:700;margin-bottom:3px}.cat-card .cc{font-size:11px;color:var(--text2)}.cat-card .cb{height:3px;border-radius:2px;background:#ffffff08;margin-top:12px;overflow:hidden}.cat-card .cf{height:100%;border-radius:2px}.cat-card .ca{position:absolute;top:22px;right:22px;font-size:18px;font-weight:800;opacity:.2}.cat-card-actions{position:absolute;top:10px;right:10px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.cat-card:hover .cat-card-actions{opacity:1}.cat-action-btn{width:28px;height:28px;border-radius:6px;border:none;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.cat-action-btn.edit{background:#4898c826;color:var(--accent2)}.cat-action-btn.edit:hover{background:#4898c84d}.cat-action-btn.del{background:#e850501f;color:var(--danger)}.cat-action-btn.del:hover{background:#e8505040}.cat-detail-overlay{position:fixed;top:52px;left:0;right:0;bottom:0;background:#000008eb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:80;display:none;flex-direction:column;padding:32px;overflow-y:auto}.cat-detail-overlay.open{display:flex}.cat-detail-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.cat-detail-header .back-btn{width:36px;height:36px;border-radius:9px;background:var(--surface2);border:none;color:var(--text);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center}.cat-detail-header h3{font-size:22px;font-weight:800}.cat-detail-header .cnt{font-size:13px;color:var(--text2);margin-left:auto}.note-list{max-width:700px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:10px}.note-item{background:var(--surface);border-radius:12px;padding:18px 22px;border:1px solid rgba(255,255,255,.04);cursor:pointer;transition:all .25s;display:flex;gap:16px;align-items:flex-start;position:relative}.note-item:hover{border-color:#ffffff14;transform:translate(4px)}.note-item .ni-score{font-size:24px;font-weight:800;min-width:40px;text-align:center}.note-item .ni-body{flex:1}.note-item .ni-name{font-size:15px;font-weight:600;margin-bottom:4px}.note-item .ni-note{font-size:12px;color:var(--text2);line-height:1.5}.note-item .ni-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.note-item .ni-tag{padding:2px 8px;border-radius:10px;font-size:10px;background:#ffffff0a;color:var(--text3)}.note-item .ni-time{font-size:10px;color:var(--text3);margin-top:6px}.note-item .ni-actions{position:absolute;top:12px;right:12px;display:flex;gap:4px;opacity:0;transition:opacity .2s}.note-item:hover .ni-actions{opacity:1}.ni-act{width:26px;height:26px;border-radius:6px;border:none;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center}.ni-act.edit{background:#4898c826;color:var(--accent2)}.ni-act.del{background:#e850501f;color:var(--danger)}.detail-panel{position:fixed;top:52px;right:0;bottom:0;width:380px;background:var(--surface);border-left:1px solid rgba(255,255,255,.04);z-index:90;transform:translate(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;padding:28px}.detail-panel.open{transform:translate(0)}.detail-panel .close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:7px;background:var(--surface2);border:none;color:var(--text2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.detail-panel h3{font-size:20px;font-weight:700;margin-bottom:3px;padding-right:40px}.detail-panel .dp-cat{font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:1px;margin-bottom:14px}.detail-panel .dp-sc{font-size:42px;font-weight:800;margin-bottom:14px}.detail-panel .dp-tg{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:16px}.detail-panel .dp-t{padding:3px 10px;border-radius:14px;font-size:11px;background:#ffffff0a;color:var(--text2)}.detail-panel .dp-n{font-size:13px;line-height:1.8;color:var(--text2)}.detail-panel .dp-time{margin-top:16px;font-size:11px;color:var(--text3)}.detail-panel .dp-rel{margin-top:24px}.detail-panel .dp-rel h4{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.detail-panel .dp-ri{padding:8px 12px;border-radius:8px;background:var(--surface2);margin-bottom:6px;cursor:pointer;transition:all .2s}.detail-panel .dp-ri:hover{background:var(--surface3)}.detail-panel .dp-ri-n{font-size:13px;font-weight:600}.detail-panel .dp-ri-s{font-size:11px;color:var(--text2)}.detail-panel .dp-visits{margin-top:20px;border-top:1px solid rgba(255,255,255,.04);padding-top:16px}.detail-panel .dp-visits h4{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px}.detail-panel .dp-visit-item{padding:10px 12px;border-radius:8px;background:var(--surface2);margin-bottom:6px;font-size:12px;line-height:1.6;color:var(--text2)}.detail-panel .dp-visit-item .vi-score{font-weight:700;font-size:16px;margin-right:6px}.detail-panel .dp-visit-item .vi-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.detail-panel .dp-visit-item .vi-tag{padding:2px 7px;border-radius:10px;font-size:10px;background:#ffffff0a;color:var(--text3)}.btn-retaste{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:14px;padding:10px;border-radius:10px;background:linear-gradient(135deg,#ffffff0a,#ffffff14);border:1px dashed rgba(255,255,255,.12);color:var(--accent);font-size:13px;font-weight:600;cursor:pointer;transition:all .25s}.btn-retaste:hover{background:linear-gradient(135deg,#ffffff14,#ffffff24);border-color:var(--accent)}.retaste-form{margin-top:12px;padding:14px;border-radius:10px;background:var(--surface2);display:none}.retaste-form.open{display:block}.retaste-form label{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:4px;margin-top:10px}.retaste-form label:first-child{margin-top:0}.retaste-form textarea{width:100%;min-height:60px;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:var(--surface3);color:var(--text);font-size:12px;resize:vertical;font-family:inherit}.retaste-form .rt-score-row{display:flex;gap:4px;margin-top:4px}.retaste-form .rt-score-btn{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.06);background:var(--surface3);color:var(--text2);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.retaste-form .rt-score-btn.sel{background:var(--accent);color:#0a0e18;border-color:var(--accent)}.retaste-form .rt-actions{display:flex;gap:8px;margin-top:12px}.retaste-form .rt-btn{flex:1;padding:8px;border-radius:8px;border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}.retaste-form .rt-btn-save{background:var(--accent);color:#0a0e18}.retaste-form .rt-btn-cancel{background:var(--surface3);color:var(--text2)}.profile-panel{position:fixed;top:52px;right:0;bottom:0;width:380px;background:var(--surface);border-left:1px solid rgba(255,255,255,.04);z-index:95;transform:translate(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;padding:28px}.profile-panel.open{transform:translate(0)}.profile-panel .close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:7px;background:var(--surface2);border:none;color:var(--text2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.profile-panel h3{font-size:18px;font-weight:700;margin-bottom:20px}.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.profile-avatar-lg{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:#000;cursor:pointer;position:relative;overflow:hidden;transition:all .25s}.profile-avatar-lg:hover{box-shadow:0 0 24px #7fe0cf4d}.profile-avatar-lg img{width:100%;height:100%;object-fit:cover;border-radius:50%}.profile-avatar-lg .avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;font-size:12px;color:#fff;opacity:0;transition:opacity .2s}.profile-avatar-lg:hover .avatar-overlay{opacity:1}.profile-avatar-hint{font-size:10px;color:var(--text3);margin-top:6px}.profile-field{margin-bottom:16px}.profile-field label{display:block;font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:1.5px;font-weight:600;margin-bottom:5px}.profile-field input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.05);background:var(--surface2);color:var(--text);font-size:13px;font-family:inherit;outline:none;transition:all .2s}.profile-field input:focus{border-color:#7fe0cf66}.profile-field .pf-static{font-size:13px;color:var(--text2);padding:10px 0}.profile-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:20px 0}.profile-stat{text-align:center;padding:12px 8px;border-radius:10px;background:var(--surface2)}.profile-stat .ps-num{font-size:22px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.profile-stat .ps-label{font-size:10px;color:var(--text3);margin-top:2px}.profile-actions{margin-top:24px;display:flex;flex-direction:column;gap:8px}.profile-actions .btn-save-profile{padding:12px;border-radius:10px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#0a0e18;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}.profile-actions .btn-save-profile:hover{box-shadow:0 4px 20px #7fe0cf40}.profile-actions .btn-logout{padding:10px;border-radius:10px;border:1px solid rgba(200,80,104,.2);background:transparent;color:var(--danger);font-size:12px;cursor:pointer;font-family:inherit;transition:all .2s}.profile-actions .btn-logout:hover{background:#c8506814}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000008b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:none;align-items:center;justify-content:center}.modal-overlay.open{display:flex}.modal{background:var(--surface);border-radius:16px;padding:28px;border:1px solid rgba(255,255,255,.06);width:380px;max-width:90vw;animation:fadeUp .3s ease}.modal h3{font-size:17px;font-weight:700;margin-bottom:18px}.modal-actions{display:flex;gap:8px;margin-top:20px;justify-content:flex-end}.modal-actions button{padding:9px 20px;border-radius:8px;border:none;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}#error-banner{position:fixed;top:52px;left:0;right:0;background:#311;color:#f88;padding:10px 20px;font-size:12px;z-index:200;display:none}.cal-toggle{position:absolute;top:20px;left:22px;margin-top:62px;z-index:80;padding:8px 14px;border-radius:10px;background:#0c0c16cc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.06);color:var(--text2);font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s;animation:fadeUp .6s ease .3s both;font-family:inherit}.cal-toggle:hover{color:var(--accent);border-color:#68c8a033}.cal-toggle.active{color:var(--accent);background:#68c8a01f;border-color:#68c8a040}.cal-panel{position:fixed;top:52px;right:0;bottom:0;width:380px;background:var(--surface);border-left:1px solid rgba(255,255,255,.04);z-index:88;transform:translate(100%);transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;padding:24px}.cal-panel.open{transform:translate(0)}.cal-panel .close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:7px;background:var(--surface2);border:none;color:var(--text2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.cal-header h3{font-size:17px;font-weight:700}.cal-nav{display:flex;gap:6px}.cal-nav button{width:28px;height:28px;border-radius:7px;background:var(--surface2);border:1px solid rgba(255,255,255,.04);color:var(--text2);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.cal-nav button:hover{color:var(--accent);border-color:#68c8a033}.cal-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-wd{text-align:center;font-size:10px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:4px 0}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{aspect-ratio:1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--text2);cursor:pointer;transition:all .15s;position:relative;gap:3px}.cal-day:hover{background:#ffffff0a}.cal-day.today{background:#68c8a014;color:var(--accent);font-weight:700}.cal-day.other{opacity:.25;pointer-events:none}.cal-day.has-notes{font-weight:600;color:var(--text)}.cal-day.selected{background:#68c8a026;border:1px solid rgba(104,200,160,.3);color:var(--accent)}.cal-dots{display:flex;gap:2px;height:6px;align-items:center;justify-content:center}.cal-dot{width:5px;height:5px;border-radius:50%}.cal-day-detail{margin-top:20px;animation:fadeUp .3s ease}.cal-day-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:12px;display:flex;align-items:center;gap:8px}.cal-day-title .cdt-date{color:var(--accent)}.cal-note-item{padding:12px;border-radius:10px;background:var(--surface2);margin-bottom:8px;cursor:pointer;transition:all .2s;border:1px solid rgba(255,255,255,.03)}.cal-note-item:hover{border-color:#68c8a026;transform:translateY(-1px)}.cal-note-item .cni-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.cal-note-item .cni-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.cal-note-item .cni-name{font-size:13px;font-weight:600;color:var(--text)}.cal-note-item .cni-score{margin-left:auto;font-size:14px;font-weight:800}.cal-note-item .cni-cat{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}.cal-note-item .cni-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.cal-note-item .cni-tag{padding:2px 8px;border-radius:10px;font-size:10px;background:#ffffff0a;color:var(--text3)}.dup-hint{margin-top:8px;padding:10px 14px;border-radius:10px;background:#f0ba6114;border:1px solid rgba(240,186,97,.15);display:none;animation:fadeUp .25s ease}.dup-hint.show{display:block}.dup-hint-title{font-size:10px;color:var(--gold);font-weight:600;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.dup-hint-item{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.03)}.dup-hint-item:last-child{border-bottom:none}.dup-hint-name{font-size:12px;font-weight:600;color:var(--text)}.dup-hint-meta{font-size:10px;color:var(--text3)}.dup-hint-btn{padding:4px 12px;border-radius:6px;border:1px solid rgba(240,186,97,.25);background:#f0ba611a;color:var(--gold);font-size:10px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s}.dup-hint-btn:hover{background:#f0ba6133}.cal-mini-graph{width:100%;height:240px;border-radius:12px;overflow:hidden;margin-top:12px;background:radial-gradient(circle,#1e283c99,#080a12e6);border:1px solid rgba(255,255,255,.04)}#login-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#020205;transition:opacity .8s,visibility .8s;overflow:hidden}#login-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}#login-canvas{position:absolute;top:0;left:0;z-index:1}.login-card-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center}.login-box{width:400px;max-width:90vw;text-align:center;animation:fadeUp .6s ease;position:relative}.login-logo{font-size:52px;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent2),var(--accent3));-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:2px;letter-spacing:-1px;transition:none}.login-logo-en{font-size:13px;font-weight:600;color:var(--accent);opacity:.6;letter-spacing:4px;text-transform:uppercase;margin-bottom:6px;transition:none}.login-sub{font-size:13px;color:var(--text3);margin-bottom:32px;font-style:italic;letter-spacing:3px;transition:none}.login-card{background:#101014e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:18px;padding:32px;border:1px solid rgba(255,255,255,.06);text-align:left}.login-card h3{font-size:18px;font-weight:700;margin-bottom:20px;text-align:center}.login-card .input-group{margin-bottom:16px}.login-card .input-group label{display:block;font-size:10px;color:var(--text3);margin-bottom:6px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.login-card .input-group input{width:100%;padding:12px 14px;border-radius:9px;border:1px solid rgba(255,255,255,.05);background:var(--surface2);color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:all .2s}.login-card .input-group input:focus{border-color:var(--dyn-focus,rgba(127,224,207,.4))}.login-btn{width:100%;padding:14px;border-radius:10px;border:none;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#000;margin-top:4px}.login-btn:hover{box-shadow:var(--dyn-btn-shadow,0 6px 28px rgba(127,224,207,.25));transform:translateY(-1px)}.login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.login-msg{font-size:12px;color:var(--text3);margin-top:14px;text-align:center;min-height:18px}.login-msg.error{color:var(--danger)}.login-msg.success{color:var(--dyn-accent,var(--accent))}.login-footer{margin-top:24px;font-size:11px;color:var(--text3);text-align:center}.login-footer a{color:var(--accent2);text-decoration:none;cursor:pointer}.login-footer a:hover{text-decoration:underline}.user-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text2);cursor:pointer;padding:4px 10px;border-radius:6px;transition:all .2s}.user-badge:hover{background:#ffffff0d;color:var(--text)}.user-avatar{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#000}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text3);border-radius:2px}.sommelier-root{--bg:#060610;--panel:#0a0a18;--border:#14142a;--text:#e0e0e8;--sub:#6a6a8e;--accent:#64ffda;--topbar:48px;--dL:.4;--dR:.6}.sommelier-root{margin:0;padding:0;box-sizing:border-box;font-family:Noto Sans SC,sans-serif;background:var(--bg);color:var(--text);height:100vh;overflow:hidden;position:relative}.sommelier-root.sommelier-embedded{height:100%;width:100%;position:absolute;top:0;right:0;bottom:0;left:0}.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar);background:#060610f2;z-index:50;border-bottom:1px solid rgba(255,255,255,.04);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.stage{position:fixed;top:var(--topbar);left:0;right:0;bottom:0;background:var(--bg);overflow:hidden}.sommelier-embedded .stage{position:absolute;top:0;left:0;right:0;bottom:0}.view:not(.active) .stage{pointer-events:none;visibility:hidden}.zone{position:absolute;top:0;right:0;bottom:0;left:0}.zone-ul{background:var(--bg);z-index:6}.zone-mid{background:var(--panel);z-index:1;overflow:hidden}#midCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none}.zone-lr{background:var(--panel);z-index:6}.ul-hdr{position:absolute;top:16px;left:22px;font-size:15px;font-weight:400;color:var(--sub);letter-spacing:4px;z-index:5}.ul-hdr b{color:var(--accent);font-weight:600}#sC{display:block;width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.tip{position:fixed;pointer-events:none;opacity:0;transition:opacity .2s,transform .2s;background:#060610f7;border:1px solid rgba(100,255,218,.06);border-radius:16px;padding:16px 20px;min-width:220px;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 20px 60px #000c;z-index:20;transform:translateY(8px)}.tip.show{opacity:1;transform:translateY(0)}.tip .tc{font-size:10px;font-weight:700;letter-spacing:2px;margin-bottom:6px}.tip .tn{font-size:15px;font-weight:500;color:#fff;margin-bottom:4px}.tip .td{font-size:11px;color:var(--sub)}.tip .ts{font-size:12px;margin-top:8px}.tip .tf{margin-top:8px;display:flex;gap:4px;flex-wrap:wrap}.tip .tt{font-size:10px;padding:2px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.06);color:var(--sub)}.lgd{position:absolute;bottom:0;left:0;top:auto;display:flex;flex-direction:column;gap:6px;width:36px;max-height:60vh;overflow:hidden;z-index:14;pointer-events:auto;padding:10px 6px;background:#060610eb;border-right:1px solid rgba(255,255,255,.04);border-radius:0 12px 12px 0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:width .35s cubic-bezier(.4,0,.2,1),padding .35s cubic-bezier(.4,0,.2,1),opacity .3s;opacity:.6}.lgd:hover{width:180px;padding:12px 14px;opacity:1;overflow-y:auto}.lgd i{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--sub);padding:4px 0;font-style:normal;white-space:nowrap;overflow:hidden;min-height:22px}.lgd i b{width:7px;height:7px;border-radius:50%;display:block;flex-shrink:0}.lgd:not(:hover) i{font-size:0}.lgd:not(:hover) i b{width:8px;height:8px;margin:0 auto}.lgd:not(:hover) i span{display:none}.lgd-tab{position:absolute;bottom:4px;left:42px;font-size:10px;color:var(--sub);opacity:.5;pointer-events:none;white-space:nowrap;z-index:14;transition:opacity .3s}.lgd:hover~.lgd-tab{opacity:0}.chat-wrap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:8}.chat-wrap>*{pointer-events:auto}.rail{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.rail .msg{pointer-events:auto}.sommelier-root .msg{position:absolute;display:flex;gap:10px;align-items:flex-start;max-width:min(56vw,720px);min-width:220px;animation:mi .4s ease both;transition:opacity .3s;padding:0;background:none;border:none;border-radius:0;align-self:auto}@keyframes mi{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}.msg .mb{padding:10px 14px;border-radius:18px;font-size:13px;line-height:1.55;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.sommelier-root .msg.ai{transform-origin:top left;background:none;border:none}.sommelier-root .msg.ai .mb{background:#0e0e1cb8;border:1px solid rgba(255,255,255,.07);border-top-left-radius:6px;color:var(--text)}.sommelier-root .msg.user{flex-direction:row-reverse;transform-origin:bottom right;background:none;border:none}.sommelier-root .msg.user .mb{background:linear-gradient(135deg,#222c40c7,#141a2ac7);border:1px solid rgba(255,255,255,.06);border-bottom-right-radius:6px;color:#f2f4ff}.msg .mti{font-size:10px;color:var(--sub);margin-top:4px;letter-spacing:.5px}.msg.user .mti{text-align:right}.msg.faded{opacity:.45;filter:saturate(.7)}.turn-div{position:absolute;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.06) 15%,rgba(100,255,218,.08) 50%,rgba(255,255,255,.06) 85%,transparent 100%);box-shadow:0 0 6px #64ffda08}.page-scroller{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:4}.chat-page{position:absolute;left:0;width:100%;will-change:transform,opacity,filter;background:transparent}.chat-page.archived{pointer-events:none}.page-dots{position:fixed;bottom:14px;left:50%;transform:translate(-50%);display:flex;gap:6px;z-index:52}.page-dots .dot{width:6px;height:6px;border-radius:50%;background:#ffffff1f;transition:all .3s}.page-dots .dot.active{background:var(--accent);box-shadow:0 0 8px #64ffda4d}.mav{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;background:radial-gradient(circle at 35% 30%,#ffffff1f,#64ffda14 55%,#3a86ff0d);border:1px solid rgba(255,255,255,.08);color:var(--accent);box-shadow:inset 0 1px #ffffff1f,0 4px 12px #00000059}.uav{flex-shrink:0;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:linear-gradient(135deg,#2a3550,#1a2238);border:1px solid rgba(255,255,255,.08);color:#e0e0e8;box-shadow:inset 0 1px #ffffff1a,0 4px 12px #00000059}.rb{display:inline-flex;align-items:center;gap:3px;background:#ffffff0a;color:var(--accent);padding:2px 8px;border-radius:10px;font-size:11px;cursor:pointer;border:1px solid rgba(100,255,218,.14);margin:3px 3px 0 0}.rb:hover{background:#64ffda1f}.pc{margin-top:8px;padding:12px;border-radius:10px;background:#ffffff08;border:1px solid rgba(100,255,218,.12)}.pc h4{font-size:13px;color:var(--accent);margin-bottom:6px}.pc p{font-size:12px;color:var(--sub)}.pc .cb{margin-top:8px;padding:6px 16px;border-radius:8px;border:1px solid var(--accent);background:#64ffda0f;color:var(--accent);font-size:12px;cursor:pointer}.ciw{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(44vw,620px);display:flex;gap:10px;align-items:center;padding:10px 10px 10px 18px;background:#ffffff02;backdrop-filter:blur(12px) saturate(1.4);-webkit-backdrop-filter:blur(12px) saturate(1.4);border:1px solid rgba(255,255,255,.045);border-radius:40px;box-shadow:inset 0 1.6px #ffffff47,inset 2px 0 1px #ffffff24,inset -1.5px 0 1px #ffffff08,inset 0 -1.6px #ffffff0d,inset 0 -22px 40px #00000024,0 14px 44px #0000006b,0 0 0 1px #ffffff03,0 0 80px #ffffff03;z-index:10}.ciw:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,#ffffffad,#ffffff24 18%,#ffffff05 48%,#ffffff0f 72%,#ffffff80);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.ciw:after{content:"";position:absolute;left:7%;top:3px;width:26%;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.92) 45%,rgba(255,255,255,.28) 78%,transparent 100%);border-radius:50%;filter:blur(.6px);pointer-events:none}.cin{flex:1;padding:10px 4px;border-radius:12px;border:none;background:transparent;color:var(--text);font-size:13.5px;outline:none;font-family:inherit}.cin::placeholder{color:#c8d2e659}.atb{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#dce1f0a6;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.atb:hover{background:#ffffff14;color:#fff;border-color:#ffffff29}.sbtn{width:36px;height:36px;border-radius:50%;border:none;background:linear-gradient(135deg,#ffffff2e,#ffffff0f);color:#fff;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 1px #ffffff40,0 4px 12px #0000004d;transition:all .2s}.sbtn:hover{background:linear-gradient(135deg,#ffffff42,#ffffff1a)}.atch{position:absolute;left:50%;bottom:calc(50% + 40px);transform:translate(-50%);display:flex;gap:8px;pointer-events:auto;z-index:10}.atch .ap{position:relative;width:52px;height:52px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 20px #00000080}.atch .ap img{width:100%;height:100%;object-fit:cover}.atch .ap button{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:#000000b3;color:#fff;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center}#srcCanvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.rh{position:absolute;bottom:20px;right:30px;font-size:15px;font-weight:400;color:var(--sub);letter-spacing:4px;z-index:8}.rh b{color:var(--accent);font-weight:600}.src-tip{position:fixed;pointer-events:none;opacity:0;transition:opacity .25s,transform .25s;background:#060610f2;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px 18px;min-width:180px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 16px 48px #000000b3;z-index:20;transform:translateY(6px)}.src-tip.show{opacity:1;transform:translateY(0);pointer-events:auto}.src-tip .st-cat{font-size:10px;font-weight:700;letter-spacing:2px;margin-bottom:4px}.src-tip .st-name{font-size:14px;font-weight:500;color:#fff;margin-bottom:3px}.src-tip .st-meta{font-size:11px;color:var(--sub);margin-bottom:2px}.src-tip .st-score{font-size:12px;margin-top:4px}.src-tip .st-tags{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.src-tip .st-tag{font-size:9px;padding:2px 7px;border-radius:8px;border:1px solid rgba(255,255,255,.06);color:var(--sub)}.src-tip .st-fb{display:flex;gap:8px;margin-top:8px;pointer-events:auto}.src-tip .st-fb button{padding:4px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--sub);font-size:11px;cursor:pointer;transition:all .2s;font-family:inherit}.src-tip .st-fb button:hover{background:#ffffff1a}.src-tip .st-fb button.v-up{border-color:#64ffda66;color:var(--accent);background:#64ffda14}.src-tip .st-fb button.v-down{border-color:#ff505066;color:#ff5050;background:#ff505014}.mo{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:200;display:none;align-items:center;justify-content:center}.mo.show{display:flex}.mc{width:440px;max-height:80vh;background:var(--panel);border:1px solid var(--border);border-radius:16px;overflow:hidden;animation:su .3s ease;position:relative}@keyframes su{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.mcbn{height:5px;width:100%}.mbd{padding:28px;overflow-y:auto;max-height:calc(80vh - 5px)}.mbd h3{font-size:18px;font-weight:600;margin-bottom:4px}.mbd .mcc{font-size:11px;font-weight:700;letter-spacing:1px;margin-bottom:12px}.mbd .mr{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.03);font-size:13px}.mbd .mr span:first-child{color:var(--sub)}.mbd .mn{margin-top:12px;font-size:13px;line-height:1.8;color:var(--sub)}.mbd .mtags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.mbd .mtg{padding:3px 10px;border-radius:20px;font-size:11px;border:1px solid rgba(255,255,255,.06);color:var(--sub)}.mx{position:absolute;top:16px;right:16px;width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--sub);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:201}.mx:hover{border-color:var(--accent);color:var(--accent)}
