@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800&family=Inter:wght@400;500;600;700&display=swap";:root{--bg-primary:#fcfaf7;--bg-secondary:#f5efe2;--bg-hover:#ebe2cf;--border-color:#dfd5c4;--text-primary:#2c2419;--text-secondary:#70624d;--text-muted:#a39580;--color-cost:#b91c1c;--color-cost-bg:#fdf2f2;--color-profit:#15803d;--color-profit-bg:#f0fdf4;--color-gold:#b45309;--color-gold-bg:#fffbeb;--color-link:#d97706;--transition-smooth:all .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-secondary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.6}a{color:var(--color-link);transition:var(--transition-smooth);font-weight:500;text-decoration:none}a:hover{color:var(--color-gold);text-decoration:underline}.icon{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;align-self:center;width:1.1em;height:1.1em;display:inline-flex}.brand-logo-icon{object-fit:contain;filter:drop-shadow(0 2px 4px #2c241938);width:32px;height:32px;margin-right:10px}.icon-sidebar{width:18px;height:18px;color:var(--text-secondary);transition:var(--transition-smooth);margin-right:12px}.category-item:hover .icon-sidebar,.category-item.active .icon-sidebar{color:var(--color-gold);transform:scale(1.08)}.icon-btn{width:15px;height:15px;margin-right:8px}.icon-meta{width:14px;height:14px;color:var(--text-muted);margin-right:6px}.icon-star{width:14px;height:14px;color:var(--color-gold);fill:currentColor}.icon-star.empty{fill:none;stroke:currentColor;stroke-width:1.5px}.icon-external{opacity:.8;width:12px;height:12px;margin-left:6px}.app-container{background-color:var(--bg-primary);border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);max-width:1440px;min-height:100vh;margin:0 auto;display:flex;box-shadow:0 0 40px #2c241914}.sidebar{background-color:var(--bg-secondary);border-right:1px solid var(--border-color);flex-direction:column;flex-shrink:0;width:230px;height:100vh;padding:0 18px 32px;display:flex;position:sticky;top:0}.logo-section{letter-spacing:.8px;height:64px;color:var(--text-primary);border-bottom:1px solid var(--border-color);box-sizing:border-box;align-items:center;margin:0 -18px 24px;padding:0 22px;font-family:Cinzel,serif;font-size:22px;font-weight:800;display:flex}.category-list{flex-direction:column;gap:8px;list-style:none;display:flex}.category-item{cursor:pointer;color:var(--text-secondary);transition:var(--transition-smooth);border:1px solid #0000;border-radius:6px;align-items:center;padding:11px 16px;font-weight:600;display:flex}.category-item:hover{background-color:var(--bg-hover);color:var(--text-primary);border-color:#dfd5c480;transform:translate(4px)}.category-item.active{background-color:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color);font-weight:700;box-shadow:0 2px 8px #2c241908}.main-content{flex-direction:column;flex:1;display:flex}.top-bar{z-index:100;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background-color:#fcfaf7f2;flex-shrink:0;justify-content:space-between;align-items:center;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.top-bar-title{color:var(--text-primary);align-items:center;font-family:Cinzel,serif;font-size:19px;font-weight:700;display:flex}.top-bar-actions{align-items:center;gap:12px;display:flex}.btn{cursor:pointer;transition:var(--transition-smooth);border:1px solid var(--border-color);background-color:var(--bg-primary);color:var(--text-primary);border-radius:6px;justify-content:center;align-items:center;padding:8px 16px;font-size:13.5px;font-weight:600;display:inline-flex;box-shadow:0 2px 4px #2c241908}.btn:hover{background-color:var(--bg-hover);border-color:#cfc1ab;transform:translateY(-1px);box-shadow:0 4px 8px #2c24190f}.btn:active{transform:translateY(0)}.btn-primary{background-color:var(--color-gold);color:#fff;border-color:var(--color-gold);box-shadow:0 2px 6px #b4530926}.btn-primary:hover{color:#fff;background-color:#9a4005;border-color:#9a4005;box-shadow:0 4px 12px #b4530940}.btn-danger{color:var(--color-cost);background-color:#fffafb;border-color:#fca5a5}.btn-danger:hover{background-color:var(--color-cost-bg);border-color:var(--color-cost);color:var(--color-cost);box-shadow:0 4px 10px #b91c1c1a}.view-container{flex:1;padding:28px}.strategy-table{border-collapse:separate;border-spacing:0;text-align:left;border:1px solid var(--border-color);background-color:var(--bg-primary);border-radius:8px;width:100%;overflow:hidden;box-shadow:0 6px 20px #2c241908}.strategy-table th,.strategy-table td{border-bottom:1px solid var(--border-color);transition:var(--transition-smooth);padding:16px 20px}.strategy-table tr:last-child td{border-bottom:none}.strategy-table th{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:2px solid var(--border-color);background-color:#f7f3eb;font-family:Inter,sans-serif;font-size:12.5px;font-weight:700}.strategy-table tr{cursor:pointer}.strategy-table tr:hover td{background-color:#fbf9f4}.cell-name{color:var(--text-primary);font-size:15px;font-weight:700}.cell-profit{color:var(--color-profit);font-size:15.5px;font-weight:700}.cell-profit.negative{color:var(--color-cost)}.sparkline-container{align-items:center;gap:12px;display:flex}.sparkline-svg{width:80px;height:24px}.pct-badge{border-radius:4px;padding:3px 8px;font-size:11.5px;font-weight:700;display:inline-block}.pct-badge.positive{background-color:var(--color-profit-bg);color:var(--color-profit);border:1px solid #15803d26}.pct-badge.negative{background-color:var(--color-cost-bg);color:var(--color-cost)}.cell-rating{color:var(--color-gold);font-weight:500}.cell-update{color:var(--text-secondary);font-size:13px}.detail-loading-card{min-height:280px;color:var(--text-secondary);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;justify-content:center;align-items:center;gap:12px;display:flex}.detail-loading-spinner{border:2px solid var(--border-color);border-top-color:var(--color-gold);border-radius:50%;width:20px;height:20px;animation:.75s linear infinite detail-loading-spin}@keyframes detail-loading-spin{to{transform:rotate(360deg)}}.detail-layout{flex-direction:column;gap:28px;display:flex}.detail-header-card{background-color:var(--bg-primary);border:1px solid var(--border-color);transition:var(--transition-smooth);border-radius:8px;grid-template-columns:1fr 380px;align-items:start;gap:28px;padding:28px;display:grid;box-shadow:0 6px 24px #2c241908}.detail-header-card:hover{border-color:#cfc1ab;box-shadow:0 10px 30px #2c24190d}.header-left{flex-direction:column;gap:18px;display:flex}.header-right{border-left:1px dashed var(--border-color);flex-direction:column;gap:16px;padding-left:28px;display:flex}.detail-title-section{justify-content:space-between;align-items:flex-start;display:flex}.detail-title{color:var(--text-primary);font-family:Cinzel,serif;font-size:26px;font-weight:800}.detail-meta-row{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:20px;font-size:13px;display:flex}.meta-item{align-items:center;display:inline-flex}.meta-item strong{color:var(--text-primary);margin-left:2px}.ref-links{gap:12px;display:flex}.ref-link-btn{border:1px solid var(--border-color);background-color:var(--bg-secondary);color:var(--text-primary);border-radius:6px;align-items:center;padding:6px 12px;font-size:13px;display:inline-flex;box-shadow:0 1px 3px #00000005}.ref-link-btn:hover{background-color:var(--bg-hover);color:var(--color-gold);border-color:#cfc1ab;text-decoration:none;transform:translateY(-1px)}.description-section{color:var(--text-primary);border:1px solid var(--border-color);background-color:#fbf9f4;border-radius:8px;padding:18px;font-size:14.5px;line-height:1.65}.description-text-container{position:relative}.description-text{line-height:1.65;position:relative;overflow:hidden}.description-text.truncated{max-height:120px}.description-text.truncated:after{content:"";pointer-events:none;background:linear-gradient(#0000,#fbf9f4);height:40px;position:absolute;bottom:0;left:0;right:0}.toggle-desc-btn{color:var(--color-gold);cursor:pointer;border:0;border-bottom:1px dashed var(--color-gold);background:0 0;margin-top:10px;padding:2px 0;font-size:13px;font-weight:700;display:block}.toggle-desc-btn:hover{color:var(--text-primary);border-bottom-color:var(--text-primary)}.detail-table-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:24px;box-shadow:0 6px 24px #2c241908}.section-title{color:var(--text-primary);align-items:center;margin-bottom:16px;font-family:Cinzel,serif;font-size:18px;font-weight:700;display:flex}.simple-table{border-collapse:collapse;table-layout:fixed;width:100%}.simple-table th.col-item,.simple-table td.col-item{width:32%}.simple-table th.col-qty,.simple-table td.col-qty{width:10%}.simple-table th.col-price,.simple-table td.col-price,.simple-table th.col-trend,.simple-table td.col-trend{width:14%}.simple-table th.col-update,.simple-table td.col-update{width:16%}.simple-table th.col-total,.simple-table td.col-total{width:14%}.simple-table th,.simple-table td{text-align:left;border-bottom:1px solid var(--border-color);text-overflow:ellipsis;white-space:nowrap;padding:14px 16px;overflow:hidden}.simple-table th{color:var(--text-secondary);background-color:#fbf9f4;font-size:13px;font-weight:700}.simple-table td{color:var(--text-primary);font-size:14px}.simple-table tr:hover td{background-color:#fcfcfc}.simple-table td.other-drops-cell{overflow:visible}.other-drops-trigger{cursor:help;outline:none;align-items:center;display:inline-flex;position:relative}.other-drops-help{width:16px;height:16px;color:var(--color-gold);vertical-align:text-bottom;border:1px solid;border-radius:50%;justify-content:center;align-items:center;margin-left:5px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.other-drops-trigger:hover .other-drops-help,.other-drops-trigger:focus-visible .other-drops-help{color:var(--text-primary)}.other-drops-tooltip{z-index:20;color:#fff;white-space:normal;visibility:hidden;opacity:0;pointer-events:none;background:#2f2922;border-radius:6px;width:max-content;max-width:320px;padding:9px 12px;font-size:12px;font-weight:500;line-height:1.5;position:absolute;bottom:calc(100% + 9px);left:0;box-shadow:0 8px 20px #2c24192e}.other-drops-tooltip:after{content:"";border:5px solid #0000;border-top-color:#2f2922;position:absolute;top:100%;left:20px}.other-drops-trigger:hover .other-drops-tooltip,.other-drops-trigger:focus-visible .other-drops-tooltip{visibility:visible;opacity:1}.simple-table tr.subtotal-row td{border-bottom:2px solid var(--border-color);font-size:14.5px;font-weight:700}.simple-table tr.subtotal-row.cost-subtotal td{background-color:var(--color-cost-bg);color:var(--color-cost)}.simple-table tr.subtotal-row.income-subtotal td{background-color:var(--color-profit-bg);color:var(--color-profit)}.chart-container{border:1px solid var(--border-color);background-color:#fffdfb;border-radius:6px;width:100%;height:160px;padding:8px;position:relative}.summary-banner{border:1px solid var(--border-color);background-color:#fbf9f4;border-radius:8px;flex-direction:column;gap:10px;margin-top:6px;padding:18px;display:flex}@media (width>=993px){.detail-header-card.description-balanced{align-items:stretch}.detail-header-card.description-balanced .header-left,.detail-header-card.description-balanced .header-right{height:100%}.detail-header-card.description-balanced .description-section{flex:1}.detail-header-card.description-balanced .chart-container{flex:160px;height:auto;min-height:160px}}.summary-item{justify-content:space-between;align-items:center;font-size:14px;display:flex}.summary-item .label{color:var(--text-secondary);font-weight:500}.summary-item .val{font-weight:700}.summary-item.cost .val{color:var(--color-cost)}.summary-item.income .val{color:var(--color-profit)}.summary-divider{background-color:var(--border-color);border-bottom:1px dashed var(--border-color);height:1px;margin:4px 0}.summary-item.profit{font-size:15.5px;font-weight:800}.summary-item.profit .val{color:var(--color-profit);font-size:20px}.summary-item.profit.negative .val{color:var(--color-cost)}.comments-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:28px;box-shadow:0 6px 24px #2c241908}.comment-form{border-bottom:1px solid var(--border-color);flex-direction:column;gap:14px;margin-bottom:28px;padding-bottom:28px;display:flex}.form-row{gap:20px;display:flex}.form-group{flex-direction:column;flex:1;gap:8px;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.input-text,.textarea-text{border:1px solid var(--border-color);color:var(--text-primary);transition:var(--transition-smooth);background-color:#fffdfb;border-radius:6px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px}.input-text:focus,.textarea-text:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #b4530914}.textarea-text{resize:none;height:90px}.rating-select{align-items:center;gap:4px;display:flex}.star-option{color:var(--text-muted);cursor:pointer;font-size:26px;transition:color .15s,transform .15s}.star-option:hover{transform:scale(1.15)}.comment-list{flex-direction:column;gap:20px;display:flex}.comment-item{border-bottom:1px solid #f1ece2;padding-bottom:20px}.comment-item:last-child{border-bottom:none;padding-bottom:0}.comment-header{justify-content:space-between;margin-bottom:8px;display:flex}.comment-user-rating{align-items:center;gap:10px;display:flex}.comment-username{color:var(--text-primary);font-size:14.5px;font-weight:700}.comment-stars{gap:2px;display:inline-flex}.comment-stars .icon-star{color:var(--color-gold)}.comment-time{color:var(--text-secondary);font-size:12.5px}.comment-content{color:var(--text-primary);white-space:pre-wrap;font-size:14.5px;line-height:1.6}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#2c241966;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;width:640px;max-width:92vw;max-height:88vh;display:flex;overflow-y:auto;box-shadow:0 20px 50px #2c241933}.modal-header{border-bottom:1px solid var(--border-color);background-color:var(--bg-secondary);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title{color:var(--text-primary);font-family:Cinzel,serif;font-size:18px;font-weight:700}.modal-body{flex-direction:column;gap:18px;padding:24px;display:flex}.modal-footer{border-top:1px solid var(--border-color);background-color:var(--bg-secondary);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.form-items-list{flex-direction:column;gap:10px;display:flex}.form-item-row{align-items:center;gap:10px;display:flex}.form-item-row .input-text{width:100%}.form-item-row .input-qty{flex:0 0 15%;margin-left:auto;width:100%!important}.form-item-row .input-price{flex:0 0 15%;width:100%!important}.form-item-row .input-source{flex:0 0 110px;min-width:90px;font-size:12px;width:110px!important;padding:6px 8px!important}.remove-row-btn{cursor:pointer;color:var(--color-cost);transition:var(--transition-smooth);padding:4px;font-size:20px}.remove-row-btn:hover{color:#991b1b;transform:scale(1.15)}.search-dropdown{flex:0 0 40%;min-width:0;position:relative}.search-dropdown-list{background:var(--bg-primary);border:1px solid var(--border-color);z-index:10;border-radius:6px;max-height:260px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 10px 25px #2c24191f}.search-dropdown-item{cursor:pointer;min-height:48px;color:var(--text-primary);transition:var(--transition-smooth);align-items:center;padding:10px 14px;font-size:13.5px;display:flex}.search-dropdown-item:hover{background-color:var(--bg-hover)}.search-dropdown-loading{cursor:default;color:var(--text-secondary);font-style:italic}.search-dropdown-loading:hover{background-color:#0000}.breadcrumb{color:var(--text-secondary);align-items:center;gap:8px;font-size:13.5px;display:flex}.breadcrumb-separator{color:var(--text-muted)}.breadcrumb-link{cursor:pointer;transition:var(--transition-smooth);align-items:center;display:inline-flex}.breadcrumb-link:hover{color:var(--color-gold)}.star-rating-display{align-items:center;gap:3px;display:inline-flex}.dropdown-btn-container{display:inline-block;position:relative}.dropdown-menu{background-color:var(--bg-primary);border:1px solid var(--border-color);z-index:100;border-radius:6px;width:100%;margin-top:4px;display:none;position:absolute;top:100%;left:0;right:0;overflow:visible;box-shadow:0 10px 25px #2c241926}.dropdown-menu:before{content:"";background-color:#0000;height:10px;position:absolute;top:-10px;left:0;right:0}.dropdown-btn-container:hover .dropdown-menu{display:block}.dropdown-item{color:var(--text-primary);cursor:pointer;transition:var(--transition-smooth);text-align:center;padding:10px 16px;font-size:13.5px;font-weight:600}.dropdown-item:hover{background-color:var(--bg-hover);color:var(--color-gold)}.strategy-form-card{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;flex-direction:column;padding:28px;display:flex;box-shadow:0 6px 24px #2c241908}.form-card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:18px;display:flex}.form-card-body{flex-direction:column;gap:20px;padding:24px 0;display:flex}.form-card-footer{border-top:1px solid var(--border-color);justify-content:flex-end;gap:12px;padding-top:18px;display:flex}@media (width<=992px){.detail-header-card{grid-template-columns:1fr;gap:24px}.header-right{border-left:none;border-top:1px dashed var(--border-color);padding-top:24px;padding-left:0}}@media (width<=768px){.app-container{box-shadow:none;border-left:none;border-right:none;flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border-color);width:100%;height:auto;padding:16px;position:relative}.logo-section{border-bottom:none;height:auto;margin:0 0 16px;padding:0}.category-list{white-space:nowrap;-ms-overflow-style:none;scrollbar-width:none;flex-direction:row;gap:12px;padding-bottom:4px;overflow-x:auto}.category-list::-webkit-scrollbar{display:none}.category-item{padding:8px 14px;font-size:13.5px;transform:none!important}.category-item:hover{transform:none}.top-bar{height:56px;padding:0 16px}.top-bar-title{font-size:16px}.view-container{padding:16px}.strategy-table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.strategy-table th,.strategy-table td{padding:12px 14px;font-size:13.5px}.form-row{flex-direction:column;gap:12px}.form-item-row{flex-wrap:wrap;gap:8px}.search-dropdown{flex:0 0 100%}.form-item-row .input-source{flex:0 0 100%;width:100%!important}.form-item-row .input-qty{flex:1;margin-left:0}.form-item-row .input-price{flex:1}.remove-row-btn{padding:8px}.strategy-form-card{padding:16px}}@media (width<=480px){.detail-title{font-size:20px}.ref-links{flex-direction:column;gap:8px}.ref-link-btn{justify-content:center;width:100%}}.crawler-monitor-view{flex-direction:column;gap:20px;width:100%;display:flex}.crawler-source-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.crawler-source-card,.crawler-history-card{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:10px;box-shadow:0 8px 24px #0000001f}.crawler-source-card{padding:18px}.crawler-card-header,.crawler-history-header,.crawler-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.crawler-card-header strong{color:var(--color-gold);font-size:17px}.crawler-card-body{gap:9px;margin-top:16px;display:grid}.crawler-card-body>div{color:var(--text-muted);justify-content:space-between;gap:12px;font-size:13px;display:flex}.crawler-card-body b{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crawler-last-success,.crawler-empty-card{color:var(--text-muted);margin-top:14px;font-size:12px}.crawler-error-text{color:#f87171;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 0;font-size:12px;display:-webkit-box;overflow:hidden}.crawler-status-badge{white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;min-width:58px;padding:3px 8px;font-size:11px;font-weight:700;line-height:1.4;display:inline-flex}.status-running,.status-pending{color:#60a5fa;background:#3b82f624}.status-success{color:#34d399;background:#10b98124}.status-warning,.status-partial{color:#fbbf24;background:#f59e0b24}.status-failed,.status-interrupted{color:#f87171;background:#ef444424}.status-empty{color:var(--text-muted);background:#94a3b81f}.crawler-history-card{overflow:hidden}.crawler-history-header{border-bottom:1px solid var(--border-color);padding:16px 18px}.crawler-history-header h3{color:var(--text-primary);margin:0;font-size:16px}.crawler-filters{gap:10px;display:flex}.crawler-filters .input-text{width:auto;min-width:130px;padding:7px 28px 7px 10px}.crawler-table-wrap{overflow-x:auto}.crawler-history-table{border-collapse:collapse;table-layout:fixed;width:100%}.crawler-history-table th,.crawler-history-table td{border-bottom:1px solid var(--border-color);color:var(--text-muted);text-align:left;padding:11px 10px;font-size:12px}.crawler-history-table th:first-child,.crawler-history-table td:first-child{text-align:center;width:26px}.crawler-history-table th:nth-child(2){width:110px}.crawler-history-table th:nth-child(3){width:85px}.crawler-history-table th:nth-child(4){width:125px}.crawler-history-table th:nth-child(5){width:90px}.crawler-history-table th:nth-child(6){width:60px}.crawler-history-table th:nth-child(7){width:75px}.crawler-run-row{cursor:pointer;transition:background .15s}.crawler-run-row:hover{background:#d4af370f}.crawler-result-cell,.crawler-child-message{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crawler-child-row td{background:#00000014;padding:8px 18px 14px 42px}.crawler-child-item{color:var(--text-muted);border-bottom:1px dashed #94a3b829;grid-template-columns:minmax(130px,1fr) 90px 80px 80px minmax(180px,2fr);align-items:center;gap:12px;padding:7px 0;font-size:12px;display:grid}.crawler-child-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.crawler-no-children,.crawler-empty-history{color:var(--text-muted);text-align:center!important;padding:28px!important}.crawler-pagination{color:var(--text-muted);justify-content:flex-end;padding:13px 18px;font-size:12px}.crawler-pagination .btn:disabled{cursor:not-allowed;opacity:.4}@media (width<=1100px){.crawler-source-grid{grid-template-columns:1fr}.crawler-history-header{flex-direction:column;align-items:flex-start}}.official-targets-view{width:100%;min-width:0}.official-toolbar{grid-template-columns:minmax(260px,1fr) minmax(150px,220px) minmax(150px,220px);align-items:center;gap:10px;margin-bottom:14px;display:grid}.official-toolbar .input-text{min-width:0}.official-alert{color:var(--color-cost);background:var(--color-cost-bg);border:1px solid #f3b7b7;border-radius:7px;margin-bottom:12px;padding:10px 12px}.official-table-wrap{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;width:100%;overflow-x:auto;box-shadow:0 6px 20px #2c241908}.official-table{border-collapse:collapse;table-layout:fixed;background:var(--bg-primary);width:100%;min-width:1120px}.official-table th{text-align:left;color:var(--text-secondary);border-bottom:2px solid var(--border-color);background:#f7f3eb;padding:12px 10px;font-size:12px;font-weight:700}.official-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;transition:var(--transition-smooth);padding:12px 10px;font-size:13px}.official-table tbody tr{cursor:pointer;transition:background .15s}.official-table tbody tr:hover td{background:#fbf9f4}.official-table th:first-child{width:19%}.official-table th:nth-child(2),.official-table th:nth-child(3){width:11%}.official-table th:nth-child(4){width:15%}.official-table th:nth-child(5){width:11%}.official-table th:nth-child(6){width:17%}.official-table th:nth-child(7){width:6%}.official-table th:nth-child(8){width:10%}.official-name-cell strong{color:var(--color-gold);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.official-name-cell div{color:var(--text-muted);gap:9px;margin-top:5px;font-size:11px;display:flex}.official-name-cell a{color:var(--color-link);text-decoration:none}.official-name-cell em{font-style:normal}.official-price-cell{color:var(--color-profit);font-weight:700}.official-mini-chart{align-items:flex-end;gap:3px;height:28px;display:flex}.official-mini-chart i{background:#b453098c;border-radius:2px 2px 0 0;width:8px;min-height:5px;max-height:26px;display:block}.official-muted{color:var(--text-muted);font-size:12px}.official-time-cell span{color:var(--text-muted);white-space:nowrap;line-height:1.65;display:block}.official-actions{gap:8px;display:flex}.official-actions button{color:var(--color-gold);cursor:pointer;background:0 0;border:0;padding:0}.official-actions button.danger{color:#f87171}.official-actions button:disabled{opacity:.35;cursor:not-allowed}.official-status{white-space:nowrap;background:var(--bg-hover);color:var(--text-secondary);border-radius:999px;align-items:center;padding:3px 7px;font-size:11px;display:inline-flex}.official-status.status-success{background:var(--color-profit-bg);color:var(--color-profit)}.official-status.status-running{color:#0369a1;background:#eff6ff}.official-status.status-warning,.official-status.status-pending{background:var(--color-gold-bg);color:var(--color-gold)}.official-status.status-failed,.official-status.status-degraded,.official-status.status-interrupted{background:var(--color-cost-bg);color:var(--color-cost)}.official-status.status-disabled{opacity:.65}.official-switch{width:38px;height:21px;display:inline-block;position:relative}.official-switch input{opacity:0;width:0;height:0}.official-switch span{background:#b8aa95;border-radius:21px;transition:all .2s;position:absolute;inset:0}.official-switch span:before{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:all .2s;position:absolute;top:3px;left:3px}.official-switch input:checked+span{background:#10b981}.official-switch input:checked+span:before{transform:translate(17px)}.official-switch input:disabled+span{opacity:.45}.official-pagination{color:var(--text-muted);justify-content:flex-end;align-items:center;gap:10px;padding:14px 0;display:flex}.official-pagination .input-text{width:auto}.official-pagination.compact{justify-content:center;padding-bottom:0}.official-detail-page{width:100%;min-width:0}.official-detail-header{border:1px solid var(--border-color);background:#f7f3eb;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;padding:20px 22px;display:flex;box-shadow:0 5px 16px #2c241909}.official-detail-heading{align-items:flex-start;gap:14px;min-width:0;display:flex}.official-detail-title-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.official-detail-title-line h2{color:var(--color-gold);overflow-wrap:anywhere;margin:0;font-size:22px}.official-detail-heading a{margin-top:5px;display:inline-block}.official-detail-actions{flex-shrink:0;gap:10px;display:flex}.official-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.official-stat-grid div{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:7px;padding:13px 14px}.official-stat-grid span,.official-stat-grid strong{display:block}.official-stat-grid span{color:var(--text-muted);margin-bottom:4px;font-size:11px}.official-stat-grid strong{color:var(--text-primary);font-size:14px}.official-detail-stats{margin-bottom:18px}.official-detail-columns{grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);align-items:start;gap:18px;display:grid}.official-detail-section{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;margin-bottom:18px;padding:18px 20px;box-shadow:0 5px 16px #2c241908}.official-detail-section h3{color:var(--text-primary);margin:0 0 12px;font-size:14px}.official-detail-section-title{justify-content:space-between;align-items:center;display:flex}.official-detail-section-title span{color:var(--text-muted);font-size:12px}.official-price-samples{align-items:flex-end;gap:8px;height:118px;display:flex;overflow-x:auto}.official-price-sample{text-align:center;min-width:46px;color:var(--text-muted);border-radius:5px;flex:1;padding:5px 3px}.official-price-sample span,.official-price-sample strong{font-size:10px;display:block}.official-price-sample i{background:#b4530973;border-radius:2px 2px 0 0;width:12px;margin:5px auto;display:block}.official-price-sample.selected{background:var(--color-gold-bg);color:var(--color-gold)}.official-price-sample.selected i{background:var(--color-gold)}.official-rule-result{color:var(--color-profit);margin-top:8px;font-size:12px;font-weight:600}.official-reference-list{flex-wrap:wrap;gap:7px;display:flex}.official-reference-list button{background:var(--color-gold-bg);color:var(--color-gold);cursor:pointer;border:1px solid #e7c89a;border-radius:5px;padding:6px 9px}.official-detail-note{color:var(--text-secondary);margin:10px 0 0;font-size:12px}.official-run-list article{border-bottom:1px solid var(--border-color);grid-template-columns:auto 120px minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;display:grid}.official-run-list article:last-child{border-bottom:none}.official-run-list article div strong,.official-run-list article div small{font-size:11px;display:block}.official-run-list article div small{color:var(--text-muted);margin-top:3px}.official-run-list article p{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);margin:0;font-size:11px;overflow:hidden}.official-empty{color:var(--text-muted);font-size:12px}.official-config-summary{grid-template-columns:95px minmax(0,1fr);gap:9px;font-size:12px;display:grid}.official-config-summary dt{color:var(--text-muted)}.official-config-summary dd{color:var(--text-primary);word-break:break-all;margin:0}.official-payload-details{margin:0}.official-payload-details summary{cursor:pointer;color:var(--color-link);font-weight:600}.official-payload-details pre{background:var(--bg-secondary);border:1px solid var(--border-color);max-height:520px;color:var(--text-primary);white-space:pre-wrap;word-break:break-all;border-radius:6px;margin-top:10px;padding:12px;font-size:11px;overflow:auto}.official-form-card{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:9px;width:100%;max-width:980px;margin:0 auto;overflow:hidden;box-shadow:0 8px 24px #2c24190d}.official-form-card>header{border-bottom:1px solid var(--border-color);background:#f7f3eb;padding:22px 24px}.official-form-card h2{color:var(--text-primary);margin:0 0 6px}.official-form-card header p{color:var(--text-secondary);margin:0;font-size:12px}.official-form-body{background:var(--bg-primary);padding:22px 24px}.official-form-card footer{border-top:1px solid var(--border-color);background:#f7f3eb;justify-content:flex-end;gap:10px;padding:15px 24px;display:flex}.official-form-card small{color:var(--text-muted);margin-top:5px;display:block}.official-interval-field{max-width:280px}.official-quick-values{gap:5px;margin-top:6px;display:flex}.official-quick-values button{border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);border-radius:4px;padding:3px 8px}.official-quick-values button:hover{background:var(--bg-hover);border-color:#cfc1ab}.official-quick-values button.active{color:var(--color-gold);border-color:var(--color-gold);background:var(--color-gold-bg);font-weight:700}.official-field-heading{justify-content:space-between;align-items:center;display:flex}.official-json-editor{height:330px;color:var(--text-primary);border-color:var(--border-color);background:#fffdf9;font:12px/1.55 Consolas,monospace}.official-json-editor:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px #b453091a}.field-error{color:var(--color-cost);background:var(--color-cost-bg);border-radius:4px;margin:6px 0 0;padding:5px 8px;font-size:12px}.field-preview{color:var(--color-profit);background:var(--color-profit-bg);border-radius:4px;margin:6px 0 0;padding:5px 8px;font-size:12px;font-weight:600}.official-empty-row{text-align:center;color:var(--text-muted);padding:45px!important}@media (width<=900px){.official-toolbar{grid-template-columns:1fr 1fr}.official-detail-header{flex-direction:column}.official-detail-actions{justify-content:flex-end;width:100%}.official-stat-grid{grid-template-columns:1fr 1fr}.official-detail-columns{grid-template-columns:1fr}.official-form-card .form-row{display:block}.official-interval-field{max-width:none;margin-top:14px}}.strategy-list-state,.detail-loading-card,.comments-state,.chart-state{min-height:140px;color:var(--text-muted);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;justify-content:center;align-items:center;gap:12px;display:flex}.error-state{color:var(--color-cost)}.truncated-name{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.trend-empty{color:var(--text-muted);font-size:12px}.profit-change-badge{white-space:nowrap;font-size:11px;font-weight:700}.profit-change-badge.positive{color:#059669}.profit-change-badge.negative{color:#dc2626}.chart-state{min-height:100%;font-size:13px}.detail-table-card{overflow-x:auto}.simple-table{min-width:760px}.strategy-description-field>label{margin-bottom:8px;display:block}.strategy-markdown-editor .md-editor,.strategy-markdown-preview.md-editor{--md-color:var(--text-primary);--md-hover-color:var(--color-gold);--md-bk-color:#fffdfb;--md-bk-color-outstand:var(--bg-secondary);--md-bk-hover-color:var(--bg-hover);--md-border-color:var(--border-color);--md-border-hover-color:#c6aa79;--md-border-active-color:var(--color-gold);border-radius:8px;overflow:hidden}.strategy-markdown-editor .md-editor{border:1px solid var(--border-color)}.strategy-markdown-editor .md-editor-toolbar-wrapper{background:var(--bg-secondary)}.strategy-editor-footer{color:var(--text-muted);justify-content:space-between;gap:12px;padding-top:7px;font-size:12px;display:flex}.strategy-editor-footer .limit-reached{color:var(--color-cost);font-weight:700}.strategy-editor-mobile-tabs{display:none}.strategy-markdown-preview{background:0 0!important}.strategy-markdown-preview .md-editor-preview-wrapper{padding:0}.strategy-markdown-preview img{border-radius:6px;max-width:100%;height:auto}.strategy-items-editor{flex-direction:column;display:flex}.crafting-items-editor .strategy-output-items{order:1}.crafting-items-editor .strategy-input-items{order:2}.crafting-description-field{margin-top:8px}.crafting-hero-card,.crafting-price-card,.crafting-description-card{border:1px solid var(--border-color);background:var(--bg-primary);border-radius:8px;padding:26px 28px;box-shadow:0 6px 24px #2c241908}.crafting-hero-card .detail-title{margin-bottom:16px}.crafting-meta-row{margin-bottom:0}.crafting-hero-card .ref-links{margin-top:16px}.crafting-price-grid{grid-template-columns:1fr;gap:20px;display:grid}.crafting-price-card{min-width:0}.crafting-price-card .section-title,.crafting-description-card .section-title{margin-bottom:16px}.crafting-price-table-wrap{overflow-x:auto}.crafting-price-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:560px}.crafting-price-table th,.crafting-price-table td{border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle;padding:13px 12px}.crafting-price-table th{color:var(--text-secondary);background:#fbf9f4;font-size:12px;font-weight:700}.crafting-price-table th:first-child{width:40%}.crafting-price-table th:nth-child(2){width:18%}.crafting-price-table th:nth-child(3){width:22%}.crafting-price-table th:nth-child(4){width:20%}.crafting-price-table tbody tr:last-child td{border-bottom:0}.crafting-price-table tbody tr:hover td{background:#fcfcfc}.crafting-item-name{align-items:center;gap:7px;min-width:0;display:flex}.crafting-price-value{color:var(--color-gold);white-space:nowrap;font-weight:700}.crafting-price-value>span{display:block}.crafting-price-chaos{color:var(--text-muted);margin-top:2px;font-size:.82em;font-weight:500}.trade-link-icon{color:#a45a12;background:#fff8e8;border:1px solid #d5a24b;border-radius:6px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;text-decoration:none;display:inline-flex;position:relative}.trade-link-icon svg{width:15px;height:15px}.trade-link-icon:hover,.trade-link-icon:focus-visible{color:#713c0c;background:#f7e6be;outline:none}.trade-link-icon:after{content:attr(data-tooltip);z-index:30;color:#fff;visibility:hidden;opacity:0;pointer-events:none;background:#2f2922;border-radius:5px;width:max-content;max-width:180px;padding:7px 9px;font-size:12px;font-weight:500;line-height:1.4;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.trade-link-icon:hover:after,.trade-link-icon:focus-visible:after{visibility:visible;opacity:1}.crafting-description-card{min-height:480px}.crafting-description-text.truncated{max-height:420px}@media (width<=768px){.crafting-hero-card,.crafting-price-card,.crafting-description-card{padding:20px 18px}.crafting-price-grid{grid-template-columns:1fr}.crafting-description-card{min-height:0}.crafting-description-text.truncated{max-height:320px}.trade-link-icon:after{top:calc(100% + 7px);left:auto;right:0;transform:none}}.comments-card{padding:28px}.comments-title{gap:8px}.comments-title .icon{color:var(--color-gold)}.comment-count{background:var(--bg-secondary);min-width:24px;height:22px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;display:inline-flex}.comment-composer{border:1px solid var(--border-color);background:#fbf9f4;border-radius:10px;margin:18px 0 28px;padding:20px}.comment-composer-top{align-items:flex-end;gap:24px;display:flex}.comment-field{flex-direction:column;flex:1;gap:7px;display:flex;position:relative}.comment-field label,.comment-rating-field label{color:var(--text-secondary);font-size:13px;font-weight:700}.comment-rating-field label span{color:var(--text-muted);font-weight:400}.comment-rating-field{flex-direction:column;gap:7px;min-width:230px;display:flex}.rating-select{align-items:center;gap:3px;min-height:40px;display:flex}.star-option{appearance:none;color:#cfc5b5;cursor:pointer;background:0 0;border:0;padding:0 1px;font-size:25px;line-height:1}.star-option.active{color:var(--color-gold)}.star-option:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.clear-rating{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:6px}.comment-message-field{margin-top:14px}.comment-textarea{resize:vertical;height:auto;min-height:110px;margin-top:0;padding-bottom:28px}.comment-character-count{color:var(--text-muted);font-size:11px;position:absolute;bottom:8px;right:10px}.comment-composer-actions{justify-content:flex-end;align-items:center;gap:14px;margin-top:14px;display:flex}.comment-error{color:var(--color-cost);margin:0;font-size:13px}.comment-list{gap:0}.comment-item{border-bottom:1px solid var(--border-color);grid-template-columns:38px minmax(0,1fr);gap:12px;padding:18px 0;display:grid}.comment-avatar{color:#7a4f1d;background:#eee4d1;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-weight:800;display:flex}.comment-body{min-width:0}.comment-header{align-items:center;margin-bottom:7px}.comment-user-rating{align-items:center;gap:10px;min-width:0;display:flex}.comment-username{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comment-stars{color:var(--color-gold);letter-spacing:1px;font-size:13px;display:inline-flex}.comment-stars .empty{color:#d7cebf}.comment-content{color:var(--text-primary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.65}.comments-load-more{text-align:center;padding-top:18px}.comments-load-more .comment-error{margin-top:8px}@media (width<=768px){.strategy-editor-mobile-tabs{border:1px solid var(--border-color);background:var(--bg-secondary);border-radius:7px;margin-bottom:8px;padding:3px;display:inline-flex}.strategy-editor-mobile-tabs button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:6px 18px}.strategy-editor-mobile-tabs button.active{background:var(--bg-primary);color:var(--color-gold);box-shadow:0 1px 4px #2c241914}.comment-composer-top{flex-direction:column;align-items:stretch;gap:14px}.comment-rating-field{min-width:0}.comments-card{padding:18px}.comment-composer{padding:16px}.comment-header{align-items:flex-start;gap:8px}.comment-user-rating{flex-direction:column;align-items:flex-start;gap:3px}}.sidebar-footer{border-top:1px solid var(--border-color);margin-top:auto;padding-top:18px}.admin-logout-btn{white-space:nowrap;width:100%;color:var(--text-secondary)}.admin-logout-btn:hover{color:var(--color-cost);background:var(--color-cost-bg);border-color:#b91c1c47}.admin-login-page{background:var(--bg-secondary);place-items:center;min-height:100vh;padding:24px;display:grid}.admin-login-card{background:var(--bg-primary);border:1px solid var(--border-color);width:min(420px,100%);box-shadow:var(--shadow-lg);border-radius:14px;gap:18px;padding:34px;display:grid}.admin-login-card h1{margin:0;font-size:24px}.admin-login-card label{color:var(--text-secondary);gap:7px;font-weight:700;display:grid}.admin-login-brand{color:var(--color-gold);letter-spacing:.04em;font-weight:800}.admin-back-link{text-align:center;color:var(--text-secondary);text-decoration:none}.admin-error{color:var(--color-cost);margin:0}.admin-comments-view{gap:18px;display:grid}.admin-filter-bar{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;grid-template-columns:minmax(220px,1fr) 160px auto;gap:10px;padding:16px;display:grid}.admin-comment-list{gap:12px;display:grid}.admin-comment-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;padding:18px}.admin-comment-card header{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:10px 16px;display:flex}.admin-comment-card header strong{color:var(--text-primary)}.admin-comment-card header time{margin-left:auto;font-size:12px}.admin-comment-card p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.admin-comment-card footer{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.comment-status{background:var(--bg-secondary);border-radius:999px;padding:3px 8px;font-size:12px}.comment-status.visible{color:var(--color-income)}.comment-status.hidden{color:var(--color-gold)}.comment-status.deleted{color:var(--color-cost)}.admin-pagination{justify-content:center;align-items:center;gap:12px;display:flex}@media (width<=720px){.admin-filter-bar{grid-template-columns:1fr}.admin-comment-card header time{width:100%;margin-left:0}}@media (width<=768px){.sidebar-footer{margin-top:12px;padding-top:12px}}
