:root{--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--sp-2xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-pill: 50px;--transition: .2s ease;--header-h: 60px}:root,:root[data-theme=dark]{--color-bg: #0d1117;--color-surface: rgba(20, 38, 68, .85);--color-card: rgba(30, 55, 105, .65);--color-card-hover: rgba(40, 70, 130, .75);--color-border: rgba(130, 210, 255, .15);--color-border-focus: rgba(130, 210, 255, .45);--color-accent: #0a96fa;--color-accent-2: #00d4ff;--color-glow: rgba(10, 150, 250, .25);--color-text: #e8f4ff;--color-text-muted: #7aadcc;--color-text-dim: rgba(232, 244, 255, .4);--color-success: #4caf50;--color-reward: #eaab00;--color-danger: #f44336;--color-header-bg: rgba(8, 18, 32, .97);--color-header-text: #e8f4ff;--color-header-tab: rgba(255, 255, 255, .06);--color-header-active:rgba(10, 150, 250, .25);--shadow-card: 0 4px 24px rgba(0, 0, 0, .45);--shadow-glow: 0 0 20px var(--color-glow);--gradient-progress: linear-gradient(90deg, #00ffe7, var(--color-accent));--gradient-accent: linear-gradient(135deg, var(--color-accent), var(--color-accent-2))}:root[data-theme=light]{--color-bg: #f0f4f8;--color-surface: rgba(255, 255, 255, .95);--color-card: rgba(255, 255, 255, .9);--color-card-hover: rgba(240, 248, 255, 1);--color-border: rgba(0, 0, 0, .08);--color-border-focus: rgba(10, 150, 250, .4);--color-accent: #0a78e0;--color-accent-2: #0099cc;--color-glow: rgba(10, 120, 224, .15);--color-text: #1a2332;--color-text-muted: #5a7090;--color-text-dim: rgba(26, 35, 50, .4);--color-success: #2e7d32;--color-reward: #b8860b;--color-danger: #c62828;--color-header-bg: rgba(255, 255, 255, .97);--color-header-text: #1a2332;--color-header-tab: rgba(0, 0, 0, .04);--color-header-active:rgba(10, 120, 224, .12);--shadow-card: 0 4px 24px rgba(0, 0, 0, .08);--shadow-glow: 0 0 15px var(--color-glow);--gradient-progress: linear-gradient(90deg, var(--color-accent-2), var(--color-accent));--gradient-accent: linear-gradient(135deg, var(--color-accent), var(--color-accent-2))}*,*:before,*:after{box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--transition),color var(--transition)}.btn{display:inline-flex;align-items:center;gap:var(--sp-sm);padding:10px 22px;border:none;border-radius:var(--radius-pill);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition);text-decoration:none}.btn-primary{background:var(--gradient-accent);color:#fff;box-shadow:0 2px 12px var(--color-glow)}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-secondary{background:var(--color-card);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-card-hover)}.btn-subtle{background:transparent;color:var(--color-text-muted);padding:8px 16px}.btn-subtle:hover{color:var(--color-text)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background var(--transition),box-shadow var(--transition)}.card:hover{background:var(--color-card-hover)}.progress-track{width:100%;height:8px;background:#ffffff14;border-radius:var(--radius-pill);overflow:hidden}.progress-fill{height:100%;background:var(--gradient-progress);border-radius:var(--radius-pill);transition:width 1s ease}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:3px;opacity:.6}.fn-card{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;background:linear-gradient(135deg,#6e37a5c7,#41146ec7);box-shadow:0 2px 8px #00000040;transition:transform .15s ease,box-shadow .15s ease}.fn-card:hover{transform:scale(1.01);box-shadow:0 4px 16px #00000059}.fn-card:active{transform:scale(.99)}.fn-icon-box{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff12;border-radius:var(--radius-sm);color:var(--color-accent)}.fn-icon-box svg{width:26px;height:26px}.lib-fun-icon{width:28px;height:28px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--color-accent);opacity:.85}.lib-fun-icon svg{width:20px;height:20px}.fn-info{flex:1;min-width:0}.fn-name{font-size:16px;font-weight:700;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fn-desc{font-size:12px;color:#d2afffcc;margin-top:2px}.fn-price{display:flex;align-items:center;gap:4px;font-size:18px;font-weight:700;color:var(--color-reward);flex-shrink:0}.fn-coin{width:22px;height:22px;object-fit:contain}.lib-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:var(--radius-md);margin-bottom:8px;cursor:pointer;background:#ffffff0d;border:1px solid var(--color-border);transition:transform .15s ease,background .15s ease,border-color .15s ease}.lib-card:hover{transform:scale(1.01);background:#ffffff1a;border-color:var(--color-accent)}.lib-card:active{transform:scale(.99)}.lib-add{width:32px;height:32px;border-radius:50%;background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.lib-name{flex:1;font-size:16px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-price{display:flex;align-items:center;gap:4px;font-size:18px;font-weight:700;color:var(--color-reward);flex-shrink:0}.lib-coin{width:22px;height:22px;object-fit:contain}.modal-overlay{position:fixed;inset:0;background:#0000009e;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:10000;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .25s ease}.modal-overlay--show{opacity:1}.modal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px 20px 14px 14px;padding:32px 24px 24px;width:calc(100% - 16px);max-width:440px;text-align:center;box-shadow:0 -8px 48px #00000080;transform:translateY(80px);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.modal-overlay--show .modal-card{transform:translateY(0)}@media (min-width: 520px){.modal-overlay{align-items:center}.modal-card{border-radius:20px;transform:scale(.85) translateY(16px);box-shadow:0 24px 60px #0000008c}.modal-overlay--show .modal-card{transform:scale(1) translateY(0)}}.modal-icon{font-size:54px;line-height:1;margin-bottom:14px;display:block}.modal-title{font-size:20px;font-weight:700;color:var(--color-text);margin-bottom:6px}.modal-subtitle{font-size:13px;color:var(--color-text-muted);margin-bottom:12px}.modal-meta{font-size:17px;color:var(--color-text);margin-bottom:20px;padding:10px 18px;background:#ffffff0f;border-radius:var(--radius-md);display:inline-block}.modal-reward-num{color:var(--color-reward);font-weight:700}.modal-actions{display:flex;gap:10px;margin-top:4px}.modal-actions .btn{flex:1;justify-content:center}.modal-card--skill{border-color:#0a96fa73}.modal-card--fun{border-color:#8c3cdc73}.modal-card--danger{border-color:#f4433673}.modal-card--library-skill{border-color:#00d4ff59}.modal-card--library-fun{border-color:#a050f059}.modal-card--fun .modal-confirm,.modal-card--library-fun .modal-confirm{background:linear-gradient(135deg,#7b35d4,#b066ff)!important;box-shadow:0 2px 12px #8c3cdc66!important}.modal-card--danger .modal-confirm{background:var(--color-danger)!important;box-shadow:0 2px 12px #f4433659!important}.modal-card--library-skill .modal-confirm{background:linear-gradient(135deg,var(--color-accent-2),var(--color-accent))!important}.modal-card--library-fun .modal-icon{filter:drop-shadow(0 0 12px rgba(160,80,240,.5))}.modal-card--skill .modal-icon{filter:drop-shadow(0 0 12px rgba(10,150,250,.5))}.modal-card--library-skill .modal-icon{filter:drop-shadow(0 0 10px rgba(0,212,255,.5))}.app-toast{padding:10px 20px;border-radius:var(--radius-md);background:var(--color-surface, rgba(20,38,68,.95));border:1px solid var(--color-border);color:var(--color-text);font-size:14px;font-weight:600;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-card);white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(20px);transition:opacity .25s ease,transform .25s ease}.app-toast--show{opacity:1;transform:translateY(0)}.app-toast--success{border-color:var(--color-success, #4caf50)}.app-toast--error{border-color:var(--color-danger, #f44336);color:var(--color-danger, #f44336)}.app-toast--info{border-color:var(--color-accent, #0a96fa)}.search-wrap{position:sticky;top:0;z-index:10;width:100%;padding:10px 0 12px;background:transparent;margin-bottom:8px}.search-input{width:100%;padding:10px 16px 10px 40px;border-radius:var(--radius-pill);border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);font-size:14px;outline:none;transition:border-color var(--transition),box-shadow var(--transition);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237aadcc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:14px center}.search-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-glow)}.search-input::placeholder{color:var(--color-text-dim)}.form-fields{display:flex;flex-direction:column;gap:12px;margin-top:16px;text-align:left}.form-field{display:flex;flex-direction:column;gap:4px}.form-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.form-input{width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text);font-size:14px;font-family:inherit;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.form-input:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-glow)}.form-input--error{border-color:var(--color-danger)!important;box-shadow:0 0 0 3px #f4433633!important}.form-textarea{min-height:80px;resize:vertical}select.form-input{cursor:pointer;appearance:auto}.create-modal{min-width:320px;max-width:480px}.modal-sub{font-size:13px;color:var(--color-text-muted, #7aadcc);margin-top:-8px;margin-bottom:18px;text-align:center}.create-picker{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.type-card{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(0,180,255,.18);background:#0a193c8c;cursor:pointer;transition:border-color .18s,background .18s,transform .13s}.type-card:hover{border-color:#00b4ff80;background:#0a285ab3;transform:translate(3px)}.type-card:active{transform:translate(2px) scale(.99)}.type-card--locked{opacity:.4;cursor:not-allowed;pointer-events:none}.type-card-icon{font-size:26px;flex-shrink:0;width:40px;text-align:center}.type-card-body{flex:1;min-width:0}.type-card-title{font-size:15px;font-weight:700;color:var(--color-text, #e8f4ff);margin-bottom:3px}.type-card-desc{font-size:12px;color:var(--color-text-muted, #7aadcc);line-height:1.4}.type-card-soon{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#78aad299;border:1px solid rgba(120,170,210,.25);border-radius:4px;padding:1px 6px}.type-card-arrow{font-size:16px;color:var(--color-text-muted, #7aadcc);flex-shrink:0;opacity:.6}.create-back{background:none;border:none;color:var(--color-text-muted, #7aadcc);font-size:13px;cursor:pointer;padding:0 0 12px;display:flex;align-items:center;gap:4px;transition:color .15s}.create-back:hover{color:var(--color-text, #e8f4ff)}.sk-energy-cost{font-size:11px;font-weight:700;color:#00d4ff;flex-shrink:0;opacity:.85;white-space:nowrap}.sk-energy-restore{font-size:11px;font-weight:700;color:#4caf50;flex-shrink:0;opacity:.9;white-space:nowrap}.lib-energy-cost,.lib-energy-restore{font-size:11px;font-weight:700;color:#00d4ff;flex-shrink:0;white-space:nowrap;opacity:.85}.fn-energy-tag{display:inline-block;margin-top:3px;font-size:11px;font-weight:700;color:#00d4ff;opacity:.9}.fn-card--custom{background:linear-gradient(135deg,#1e5032d1,#0f321ed1);border-left:3px solid rgba(80,200,120,.55)}.fn-card--custom:hover{box-shadow:0 4px 18px #3cb45a40}.fn-custom-badge{display:inline-block;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#4ade80;background:#4ade801f;border:1px solid rgba(74,222,128,.35);border-radius:4px;padding:1px 5px;vertical-align:middle;margin-left:6px}.fn-group-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#d2afff8c;margin-top:1px;margin-bottom:1px}.lib-crystal-ico{display:inline-flex;width:22px;height:22px;flex-shrink:0;vertical-align:middle}.lib-crystal-ico svg{width:100%;height:100%}.fn-del{background:#ff50501f;border:1px solid rgba(255,80,80,.28);color:#ff7878b3;width:28px;height:28px;border-radius:6px;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:6px;transition:background .15s,color .15s}.fn-del:hover{background:#ff3c3c4d;color:#f55}.group-title{font-size:18px;font-weight:600;color:var(--color-accent-2);margin:20px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--color-border)}
