.comp-backdrop{position:fixed;inset:0;z-index:10009;background:color-mix(in srgb,var(--background) 85%,transparent);opacity:0;transition:opacity .25s}.comp-backdrop.comp-visible{opacity:1}.comp-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)scale(.95);z-index:10010;max-width:560px;width:calc(100% - 32px);max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--background);color:var(--foreground);border:1px solid color-mix(in srgb,var(--foreground) 30%,transparent);box-shadow:0 4px 24px rgba(0,0,0,.3);padding:20px;box-sizing:border-box;opacity:0;transition:opacity .25s,transform .25s}.comp-modal.comp-visible{opacity:1;transform:translate(-50%,-50%)scale(1)}.comp-header{margin:0 0 12px}.comp-title-row{display:flex;justify-content:space-between;align-items:center}.comp-title{font-size:18px;font-weight:700;letter-spacing:2px}.comp-close{background:0 0;border:1px solid color-mix(in srgb,var(--foreground) 30%,transparent);color:var(--foreground);font-size:16px;cursor:pointer;padding:4px 8px;line-height:1}.comp-close:hover{border-color:var(--accent);color:var(--accent)}.comp-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;margin-bottom:14px;background:color-mix(in srgb,var(--foreground) 5%,transparent);border:1px solid color-mix(in srgb,var(--foreground) 15%,transparent)}.comp-stat-item{display:flex;align-items:center;gap:6px;font-size:12px;color:color-mix(in srgb,var(--foreground) 75%,transparent)}.comp-stat-icon{flex-shrink:0;font-size:13px}.comp-stat-value{font-weight:700;color:var(--foreground)}.comp-tabs{display:flex;flex-wrap:wrap;gap:0;margin-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--foreground) 20%,transparent)}.comp-tab{background:0 0;border:none;border-bottom:2px solid transparent;color:color-mix(in srgb,var(--foreground) 55%,transparent);font-size:12px;padding:6px 12px;cursor:pointer;font-family:inherit;transition:color .15s,border-color .15s}.comp-tab:hover{color:var(--foreground)}.comp-tab-active{border-bottom-color:var(--accent);color:var(--accent);font-weight:700}.comp-content{display:flex;flex-direction:column;gap:8px;padding-bottom:8px}.comp-crop-card{display:flex;align-items:center;gap:12px;border:1px solid color-mix(in srgb,var(--foreground) 15%,transparent);border-left:3px solid color-mix(in srgb,var(--foreground) 15%,transparent);padding:10px 12px;transition:border-color .15s}.comp-crop-card:hover{border-color:color-mix(in srgb,var(--foreground) 35%,transparent);border-left-color:color-mix(in srgb,var(--foreground) 35%,transparent)}.comp-crop-card:not(.comp-crop-locked):not(.comp-crop-rare){border-left-color:var(--accent)}.comp-crop-rare{border-left-color:gold;border-color:color-mix(in srgb,#FFD700 25%,transparent)}.comp-crop-rare:hover{border-color:color-mix(in srgb,#FFD700 50%,transparent);border-left-color:gold}.comp-crop-locked{opacity:.6}.comp-crop-sprite{width:32px;height:32px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.comp-crop-icon-text{font-size:20px;color:color-mix(in srgb,var(--foreground) 40%,transparent)}.comp-crop-info{flex:1;min-width:0}.comp-crop-name{font-size:14px;font-weight:700;color:var(--foreground)}.comp-crop-rare .comp-crop-name{color:gold}.comp-crop-locked .comp-crop-name{color:color-mix(in srgb,var(--foreground) 50%,transparent)}.comp-crop-stats{font-size:11px;color:color-mix(in srgb,var(--foreground) 60%,transparent);margin-top:2px}.comp-crop-harvested{font-size:11px;color:color-mix(in srgb,var(--foreground) 50%,transparent);margin-top:2px}.comp-crop-hint{font-size:11px;font-style:italic;color:color-mix(in srgb,var(--foreground) 40%,transparent);margin-top:2px}.comp-crop-status{font-size:16px;flex-shrink:0;width:24px;text-align:center}.comp-ach-card{display:flex;align-items:flex-start;gap:10px;border:1px solid color-mix(in srgb,var(--foreground) 15%,transparent);border-left:3px solid color-mix(in srgb,var(--foreground) 15%,transparent);padding:10px 12px;transition:border-color .15s}.comp-ach-card:hover{border-color:color-mix(in srgb,var(--foreground) 35%,transparent);border-left-color:color-mix(in srgb,var(--foreground) 35%,transparent)}.comp-ach-card:not(.comp-ach-locked){border-left-color:initial}.comp-ach-locked{opacity:.55}.comp-ach-icon{font-size:18px;flex-shrink:0;width:28px;text-align:center;padding-top:2px}.comp-ach-info{flex:1;min-width:0}.comp-ach-name{font-size:13px;font-weight:700;color:var(--foreground)}.comp-ach-desc{font-size:11px;color:color-mix(in srgb,var(--foreground) 60%,transparent);margin-top:2px}.comp-ach-date{font-size:10px;color:color-mix(in srgb,var(--foreground) 40%,transparent);margin-top:4px}.comp-ach-tier{font-size:10px;text-transform:uppercase;letter-spacing:1px;flex-shrink:0;padding-top:2px}.comp-ach-bar{position:relative;height:12px;background:color-mix(in srgb,var(--foreground) 10%,transparent);margin-top:4px;overflow:hidden}.comp-ach-bar-fill{height:100%;background:color-mix(in srgb,var(--accent) 60%,transparent);transition:width .3s}.comp-ach-bar-label{position:absolute;top:0;left:0;right:0;text-align:center;font-size:9px;line-height:12px;color:var(--foreground)}.comp-toast{position:fixed;right:12px;z-index:10020;background:var(--background);border:2px solid var(--accent);padding:10px 14px;display:flex;align-items:center;gap:10px;width:260px;box-sizing:border-box;opacity:0;transform:translateX(100%);transition:opacity .3s,transform .3s,top .3s;pointer-events:none}.comp-toast-show{opacity:1;transform:translateX(0)}.comp-toast-hide{opacity:0;transform:translateX(100%)}.comp-toast-icon{font-size:22px;flex-shrink:0}.comp-toast-text{flex:1;min-width:0}.comp-toast-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:color-mix(in srgb,var(--foreground) 60%,transparent)}.comp-toast-name{font-size:13px;font-weight:700;margin-top:2px}.comp-toast-desc{font-size:11px;color:color-mix(in srgb,var(--foreground) 60%,transparent);margin-top:2px}@media(max-width:480px){.comp-modal{width:calc(100% - 16px);max-height:90vh;padding:14px}.comp-title{font-size:15px}.comp-stats{padding:8px 10px;gap:6px}.comp-stat-item{font-size:11px}.comp-tab{font-size:11px;padding:5px 8px}.comp-crop-card{padding:8px 10px;gap:8px}.comp-toast{right:8px;width:230px}}