.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 5px color-mix(in srgb,var(--green) 14%,transparent),0 0 18px color-mix(in srgb,var(--green) 55%,transparent)}
.icon-btn{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text-soft);transition:.2s var(--ease)}
.icon-btn:hover{color:var(--accent);border-color:var(--line-strong);transform:translateY(-2px)}
.icon-btn svg{width:19px;height:19px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:48px;padding:0 20px;border:1px solid var(--line);border-radius:10px;font-weight:700;font-size:.92rem;transition:.22s var(--ease)}
.btn svg{width:18px;height:18px;transition:transform .22s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#03101a;box-shadow:0 12px 34px rgba(var(--accent-rgb),.18)}
html[data-theme="light"] .btn.primary{color:white}
.btn.primary:hover{filter:brightness(1.08);transform:translateY(-2px)}
.btn.secondary{background:var(--surface);color:var(--text)}
.btn.secondary:hover{border-color:var(--line-strong);background:var(--surface-2)}
.tag{display:inline-flex;align-items:center;min-height:27px;padding:4px 9px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--text-soft);font:500 .7rem/1 var(--mono)}
.status-badge{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:6px;background:var(--surface-2);color:var(--text-soft);font:600 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.status-badge.active{color:var(--green)}.status-badge.completed{color:var(--accent)}.status-badge.concept{color:var(--warning)}
.modal-overlay,.palette,.terminal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:20px;background:rgba(1,7,14,.72);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:.25s}
.modal-overlay.open,.palette.open,.terminal.open{opacity:1;visibility:visible}
.modal{width:min(100%,500px);padding:28px;border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);transform:translateY(18px) scale(.98);transition:.25s var(--ease)}
.modal-overlay.open .modal{transform:none}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-head h2{margin-top:10px;font-size:1.65rem}
.modal-links{display:grid;gap:10px}.modal-links>a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);transition:.2s}.modal-links>a:hover{border-color:var(--line-strong);transform:translateX(3px)}.modal-links>a>svg:first-child{padding:9px;width:42px;height:42px;border-radius:9px;background:rgba(var(--accent-rgb),.1);color:var(--accent)}.modal-links strong,.modal-links small{display:block}.modal-links small{margin-top:2px;color:var(--muted);font:400 .72rem/1.35 var(--mono);word-break:break-all}.modal-links>a>svg:last-child{width:18px}
.palette{place-items:start center;padding-top:16vh}.palette-box{width:min(100%,580px);overflow:hidden;border:1px solid var(--line-strong);border-radius:16px;background:var(--surface);box-shadow:var(--shadow);transform:translateY(-15px);transition:.25s var(--ease)}.palette.open .palette-box{transform:none}.palette-search{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--line)}.palette-search svg{color:var(--muted)}.palette-input{width:100%;border:0;outline:0;background:none;font-size:1rem}.palette-results{max-height:360px;overflow:auto;padding:8px}.palette-result{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:9px;color:var(--text-soft);text-align:left}.palette-result:hover,.palette-result.selected{background:var(--surface-2);color:var(--text)}.palette-result-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:8px;color:var(--accent)}.palette-result-icon svg{width:17px;height:17px}.palette-result-name{flex:1;font-weight:600}.palette-result-hint{font-family:var(--mono);color:var(--muted)}.palette-empty{padding:24px;text-align:center;color:var(--muted)}.palette-foot{display:flex;gap:20px;padding:12px 18px;border-top:1px solid var(--line);color:var(--muted);font-size:.72rem}.palette-foot kbd,.hero-command kbd{padding:3px 6px;border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;background:var(--surface-2);font:500 .68rem var(--mono)}
.terminal-box{width:min(100%,690px);overflow:hidden;border:1px solid var(--line-strong);border-radius:15px;background:#06101a;box-shadow:var(--shadow);color:#d8e8f4}.terminal-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.1);background:#0b1723}.terminal-head>span{display:flex;gap:6px}.terminal-head i{width:9px;height:9px;border-radius:50%;background:#ff6577}.terminal-head i:nth-child(2){background:#f5ba55}.terminal-head i:nth-child(3){background:#4de0a4}.terminal-head strong{font:500 .72rem var(--mono);color:#91a6b9}.terminal-close{justify-self:end;color:#91a6b9}.terminal-close svg{width:18px;height:18px}.terminal-body{min-height:300px;max-height:48vh;overflow:auto;padding:20px;font:400 .82rem/1.75 var(--mono);white-space:pre-wrap}.terminal-body .c{color:#70879a}.terminal-body .g{color:#4de0a4}.terminal-body .a{color:#50c9ff}.terminal-body .y{color:#f5ba55}.terminal-body .r{color:#ff6b81}.terminal-body .b{color:#f2f8fc;font-weight:600}.terminal-input-row{display:flex;gap:10px;padding:13px 20px;border-top:1px solid rgba(255,255,255,.1);font:400 .82rem var(--mono)}.terminal-prompt{color:#4de0a4;white-space:nowrap}.terminal-input{min-width:0;flex:1;border:0;outline:0;background:none}.terminal-note{padding:9px 20px;background:#0b1723;text-align:center;color:#637b8f;font:400 .65rem var(--mono)}
.form-group{display:grid;gap:7px;margin-bottom:17px}.form-group label{font:600 .72rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--text-soft)}.form-input,.form-textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);padding:12px 13px;outline:0;transition:.2s}.form-textarea{resize:vertical;min-height:140px}.form-input:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.1)}.form-group.has-error .form-input,.form-group.has-error .form-textarea{border-color:var(--danger)}.form-error{color:var(--danger);font-size:.75rem}.form-status{display:none;margin-top:12px;font-size:.82rem}.form-status.error{display:block;color:var(--danger)}.form-status.info{display:block;color:var(--accent)}
