*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#000;--bg-secondary:#0a0a0a;--bg-tertiary:#111;--bg-card:rgba(17,17,17,.7);--bg-card-hover:rgba(26,26,26,.9);--border-subtle:hsla(0,0%,100%,.08);--border-medium:hsla(0,0%,100%,.15);--border-accent:hsla(0,0%,100%,.25);--text-primary:#ededed;--text-secondary:#a1a1aa;--text-tertiary:#71717a;--accent-primary:#fff;--accent-secondary:#3b82f6;--accent-success:#10b981;--accent-danger:#ef4444;--accent-warning:#f59e0b;--font-primary:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;--font-display:"Inter",sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--z-header:50;--z-overlay:150;--z-modal:200;--z-command:300;--shadow-sm:0 1px 2px rgba(0,0,0,.5);--shadow-md:0 4px 12px rgba(0,0,0,.5);--shadow-lg:0 10px 30px rgba(0,0,0,.8);--shadow-xl:0 20px 50px rgba(0,0,0,.9)}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-primary);letter-spacing:-.01em;line-height:1.5;min-height:100vh}a{color:inherit;text-decoration:none}button{background:none;border:none;cursor:pointer}button,input,select,textarea{color:inherit;font-family:inherit}img{display:block;max-width:100%}ol,ul{list-style:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-medium)}.cosmic-bg{background:radial-gradient(circle at 50% 0,hsla(0,0%,100%,.03) 0,transparent 60%);height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%;z-index:-1}.glass-card{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.glass-card:hover{background:var(--bg-card-hover);border-color:var(--border-medium);box-shadow:var(--shadow-md)}.btn{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:var(--text-sm);font-weight:500;gap:var(--space-2);height:36px;justify-content:center;padding:0 var(--space-4);transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--text-primary);color:var(--bg-primary)}.btn-primary:hover{background:#fff;transform:translateY(-1px)}.btn-primary:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed;transform:none}.btn-secondary{background:transparent;border:1px solid var(--border-subtle);color:var(--text-secondary)}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-medium);color:var(--text-primary)}.btn-ghost{color:var(--text-secondary);height:36px;padding:0 var(--space-3)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:transparent;border:1px solid rgba(239,68,68,.3);color:var(--accent-danger)}.btn-danger:hover{background:#ef44441a;border-color:var(--accent-danger)}.btn-lg{font-size:var(--text-base);height:44px;padding:0 var(--space-6)}.btn-sm{font-size:var(--text-xs);height:28px;padding:0 var(--space-3)}.btn-icon{padding:0;width:36px}.btn-icon.sm{height:28px;width:28px}.input{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-sm);height:40px;outline:none;padding:0 var(--space-3);transition:border-color var(--transition-fast);width:100%}.input:focus{border-color:var(--text-secondary)}.input::-moz-placeholder{color:var(--text-tertiary)}.input::placeholder{color:var(--text-tertiary)}.textarea{height:auto;min-height:80px;padding:var(--space-3);resize:vertical}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{color:var(--text-secondary);font-size:.8rem;font-weight:500}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bg-primary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;font-size:var(--text-sm);height:40px;outline:none;padding:0 var(--space-8) 0 var(--space-3);transition:border-color var(--transition-fast);width:100%}.select:focus{border-color:var(--text-secondary)}.select option{background:var(--bg-secondary);color:var(--text-primary)}.badge{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);letter-spacing:.02em;padding:2px 8px}.badge,.chip{align-items:center;background:var(--bg-tertiary);color:var(--text-secondary);display:inline-flex;font-size:.7rem;font-weight:500}.chip{border:1px solid var(--border-subtle);border-radius:var(--radius-full);gap:4px;padding:3px 10px}.chip,.chip .chip-remove{transition:all var(--transition-fast)}.chip .chip-remove{align-items:center;border-radius:50%;color:var(--text-tertiary);cursor:pointer;display:flex;height:14px;justify-content:center;width:14px}.chip .chip-remove:hover{background:#ef444426;color:var(--accent-danger)}.chip-input-wrap,.chips-container{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip-input-wrap{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:text;min-height:40px;padding:var(--space-2) var(--space-3);transition:border-color var(--transition-fast)}.chip-input-wrap:focus-within{border-color:var(--text-secondary)}.chip-input-wrap input{background:none;border:none;color:var(--text-primary);flex:1;font-size:var(--text-sm);min-width:100px;outline:none}.chip-input-wrap input::-moz-placeholder{color:var(--text-tertiary)}.chip-input-wrap input::placeholder{color:var(--text-tertiary)}.filter-bar{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-3) var(--space-4)}.filter-bar::-webkit-scrollbar{height:0}.filter-chip{align-items:center;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:500;gap:4px;padding:4px 12px;transition:all var(--transition-fast);white-space:nowrap}.filter-chip:hover{border-color:var(--border-medium);color:var(--text-primary)}.filter-chip.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--bg-primary)}.filter-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bg-primary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;font-size:.75rem;font-weight:500;height:30px;outline:none;padding:0 var(--space-6) 0 var(--space-3)}.filter-select option{background:var(--bg-secondary)}.star-rating{display:flex;gap:2px}.star-rating .star{color:var(--text-tertiary);cursor:pointer;font-size:16px;transition:transform var(--transition-fast)}.star-rating .star.filled{color:var(--accent-warning)}.star-rating .star:hover{transform:scale(1.2)}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5);transition:all var(--transition-base)}.stat-card:hover{border-color:var(--border-medium)}.stat-card .stat-icon{align-items:center;border-radius:var(--radius-md);display:flex;font-size:18px;height:36px;justify-content:center;margin-bottom:var(--space-1);width:36px}.stat-card .stat-number{color:var(--text-primary);font-size:var(--text-3xl);font-weight:700;letter-spacing:-.03em;line-height:1}.stat-card .stat-desc{color:var(--text-secondary);font-size:var(--text-sm)}.modal-overlay{align-items:center;animation:fadeIn var(--transition-fast);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;display:flex;inset:0;justify-content:center;padding:var(--space-4);position:fixed;z-index:var(--z-modal)}.modal-content{animation:slideUp .3s cubic-bezier(.16,1,.3,1);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;padding:var(--space-5)}.modal-header h2{font-size:var(--text-lg);font-weight:600}.modal-body{flex-direction:column;gap:var(--space-5)}.modal-body,.modal-footer{display:flex;padding:var(--space-5)}.modal-footer{border-top:1px solid var(--border-subtle);gap:var(--space-3);justify-content:flex-end}.modal-content.detail-modal{max-width:800px;overflow:hidden}.command-overlay{align-items:flex-start;animation:fadeIn var(--transition-fast);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b3;display:flex;inset:0;justify-content:center;padding-top:20vh;position:fixed;z-index:var(--z-command)}.command-palette{animation:slideDown .2s cubic-bezier(.16,1,.3,1);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:560px;overflow:hidden;width:100%}.command-input-wrap{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-3);padding:var(--space-4)}.command-input-wrap svg{color:var(--text-tertiary);flex-shrink:0}.command-input{background:none;border:none;color:var(--text-primary);flex:1;font-size:var(--text-base);outline:none}.command-input::-moz-placeholder{color:var(--text-tertiary)}.command-input::placeholder{color:var(--text-tertiary)}.command-results{max-height:340px;overflow-y:auto;padding:var(--space-2)}.command-results:empty{display:none}.command-group-label{color:var(--text-tertiary);font-size:.65rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.command-group-label,.command-item{padding:var(--space-2) var(--space-3)}.command-item{align-items:center;border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--space-3);transition:background var(--transition-fast)}.command-item.active,.command-item:hover{background:var(--bg-tertiary)}.command-item-icon{font-size:18px;text-align:center;width:28px}.command-item-info{flex:1;min-width:0}.command-item-title{color:var(--text-primary);font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-footer,.command-item-desc{color:var(--text-tertiary);font-size:.7rem}.command-footer{align-items:center;border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-4);padding:var(--space-3) var(--space-4)}.command-footer kbd{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:3px;font-family:inherit;font-size:.65rem;padding:1px 6px}.confirm-dialog{max-width:400px}.confirm-dialog .modal-body{gap:var(--space-3);text-align:center}.confirm-dialog .confirm-icon{align-items:center;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-full);color:var(--accent-danger);display:flex;height:48px;justify-content:center;margin:0 auto var(--space-2);width:48px}.confirm-dialog .modal-footer{justify-content:center}.container{margin:0 auto;max-width:1200px;padding:0 var(--space-6);width:100%}@media(max-width:768px){.container{padding:0 var(--space-4)}}.spinner{animation:spin .8s linear infinite;border:2px solid var(--border-subtle);border-radius:50%;border-top-color:var(--text-primary);height:16px;width:16px}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0;white-space:nowrap}[data-tooltip]{position:relative}[data-tooltip]:after{background:var(--bg-tertiary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);bottom:calc(100% + 6px);color:var(--text-primary);content:attr(data-tooltip);font-size:.65rem;left:50%;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;transform:translate(-50%);transition:opacity var(--transition-fast);white-space:nowrap;z-index:10}[data-tooltip]:hover:after{opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{animation:shimmer 1.5s ease infinite;background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;border-radius:var(--radius-sm)}@media(max-width:640px){.modal-content{margin:var(--space-4);max-height:calc(100vh - var(--space-8));max-width:100%!important;overflow-y:auto}.modal-body,.modal-footer{padding:var(--space-4)!important}.modal-footer{flex-direction:column;gap:var(--space-2)}.modal-footer .btn{justify-content:center;width:100%}.filter-bar{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2);scrollbar-width:none}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0}.btn{font-size:var(--text-sm);min-height:44px}}
