*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.status-bar{display:flex;align-items:center;gap:0;margin-bottom:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.status-item{animation:slideUp .3s ease-out backwards}.status-item:nth-child(1){animation-delay:.02s}.status-item:nth-child(2){animation-delay:.04s}.status-item:nth-child(3){animation-delay:.06s}.status-item:nth-child(4){animation-delay:.08s}.status-item:nth-child(5){animation-delay:.1s}.status-item{display:flex;align-items:center;gap:6px;padding:8px 16px;background:none;border:none;border-right:1px solid var(--border);cursor:pointer;transition:all .2s;font-size:13px;color:var(--text-muted);white-space:nowrap}.status-item:last-child{border-right:none}.status-item:hover{background:var(--bg-elevated)}.status-value{font-weight:800;font-size:15px;min-width:18px;text-align:center}.status-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.status-bar-spacer{flex:1}.status-save-btn{font-weight:700;color:var(--text)}.status-save-btn.has-dirty{color:var(--warning)}.status-save-btn:hover{background:var(--bg-elevated)}.quicksave-panel{background:var(--bg-card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);padding:16px;margin-top:-1px;margin-bottom:20px;animation:slideUp .2s ease-out;box-shadow:var(--shadow)}.quicksave-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.quicksave-title{font-size:14px;font-weight:700}.quicksave-empty{font-size:13px;color:var(--text-muted);padding:8px 0;text-align:center}.quicksave-projects{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.quicksave-project{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-elevated);border-radius:6px;font-size:13px}.quicksave-results{display:flex;flex-direction:column;gap:4px}.quicksave-result{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-elevated);border-radius:6px;font-size:13px}.quicksave-result.ok{border-left:3px solid var(--success)}.quicksave-result.err{border-left:3px solid var(--danger)}:root{--bg: #0b0d14;--bg-card: #131620;--bg-elevated: #1c1f2e;--border: #252837;--border-glow: #3b3f5c;--text: #e8ebf5;--text-muted: #7a7f99;--primary: #7c7ff7;--primary-hover: #6a6de5;--primary-glow: rgba(124,127,247,.25);--success: #2dd46b;--success-glow: rgba(45,212,107,.2);--warning: #f0c929;--warning-glow: rgba(240,201,41,.2);--danger: #f85a5a;--danger-glow: rgba(248,90,90,.2);--info: #5b9cf6;--info-glow: rgba(91,156,246,.2);--radius: 10px;--shadow: 0 4px 24px rgba(0,0,0,.4)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);background-image:radial-gradient(ellipse at 20% 50%,rgba(99,102,241,.04) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(34,197,94,.03) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(248,90,90,.02) 0%,transparent 50%);color:var(--text);line-height:1.5}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(ellipse at center,rgba(124,127,247,.06) 0%,transparent 70%)}.login-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 40px #00000080,0 0 60px var(--primary-glow)}.login-header{text-align:center;margin-bottom:32px}.login-logo{font-size:48px;margin-bottom:8px}.login-header h1{font-size:24px;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:14px}.app-layout{display:flex;min-height:100vh}.sidebar{width:240px;background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0}.sidebar-header{padding:24px 20px 20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(124,127,247,.08) 0%,transparent 100%)}.sidebar-header h2{font-size:20px;font-weight:800;background:linear-gradient(135deg,var(--primary) 0%,#a78bfa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.3px}.sidebar-subtitle{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.sidebar-nav{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:2px}.nav-btn{display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;color:var(--text-muted);font-size:14px;border-radius:6px;cursor:pointer;transition:all .15s;text-align:left;width:100%}.nav-btn:hover{background:var(--bg-elevated);color:var(--text)}.nav-btn.active{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);color:#fff;box-shadow:0 0 20px var(--primary-glow)}.nav-icon{font-size:16px}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.user-info{font-size:13px;color:var(--text-muted)}.logout-btn{padding:8px 12px;background:none;border:1px solid var(--border);color:var(--danger);border-radius:6px;cursor:pointer;font-size:13px;transition:all .15s}.logout-btn:hover{background:#ef44441a}.main-content{margin-left:240px;flex:1;padding:32px}.page-title{font-size:22px;font-weight:800;margin-bottom:24px;background:linear-gradient(135deg,var(--text) 0%,var(--primary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header .page-title{margin-bottom:0}.page-loading,.loading-screen{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;text-align:center;transition:all .2s;box-shadow:var(--shadow)}.stat-card:hover{border-color:var(--border-glow);transform:translateY(-2px)}.stat-value{font-size:32px;font-weight:800;margin-bottom:4px;letter-spacing:-1px}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;font-weight:600}.stat-success .stat-value{color:var(--success);text-shadow:0 0 20px var(--success-glow)}.stat-danger .stat-value{color:var(--danger);text-shadow:0 0 20px var(--danger-glow)}.stat-info .stat-value{color:var(--info);text-shadow:0 0 20px var(--info-glow)}.section{margin-bottom:32px}.section h2{font-size:13px;font-weight:700;margin-bottom:14px;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.section h2:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border) 0%,transparent 100%)}.project-list{display:flex;flex-direction:column;gap:12px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.project-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.project-header h3{font-size:16px;font-weight:600}.project-stats{display:flex;flex-wrap:wrap;gap:6px}.mini-container{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--bg-elevated);border-radius:4px;font-size:12px}.mini-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px var(--success-glow)}50%{box-shadow:0 0 12px var(--success-glow),0 0 24px var(--success-glow)}}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{opacity:.6}50%{opacity:1}}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;position:relative}.status-dot.running{background:var(--success);animation:pulse-dot 2s ease-in-out infinite;box-shadow:0 0 6px var(--success-glow)}.status-dot.exited,.status-dot.stopped{background:var(--danger);box-shadow:0 0 4px var(--danger-glow)}.status-dot.paused{background:var(--warning);box-shadow:0 0 4px var(--warning-glow)}.status-dot.created{background:var(--info);box-shadow:0 0 4px var(--info-glow)}.status-badge{display:inline-block;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-badge.running{background:#2dd46b1f;color:var(--success);box-shadow:inset 0 0 12px var(--success-glow)}.status-badge.exited,.status-badge.stopped{background:#f85a5a1f;color:var(--danger);box-shadow:inset 0 0 12px var(--danger-glow)}.status-badge.paused{background:#f0c9291f;color:var(--warning);box-shadow:inset 0 0 12px var(--warning-glow)}.status-badge.created{background:#5b9cf61f;color:var(--info);box-shadow:inset 0 0 12px var(--info-glow)}.table-wrapper{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto;box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:12px 16px;font-size:14px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}.container-row:hover{background:var(--bg-elevated)}.container-name{margin-left:8px;font-weight:500}.port-badge{display:inline-block;padding:1px 6px;background:var(--bg-elevated);border-radius:3px;font-size:12px;font-family:monospace;margin-right:4px}.actions{display:flex;gap:6px;flex-wrap:wrap}.url-table code{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.badge-ssl{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:#22c55e26;color:var(--success)}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;background:var(--bg-elevated);color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);text-decoration:none;position:relative;letter-spacing:.3px}.btn:disabled{opacity:.4;cursor:not-allowed;filter:grayscale(.5)}.btn-sm{padding:5px 12px;font-size:11px;border-radius:6px}.btn-full{width:100%}.btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#7c3aed 100%);color:#fff;box-shadow:0 2px 12px var(--primary-glow)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover) 0%,#6d28d9 100%);box-shadow:0 4px 20px var(--primary-glow);transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--success) 0%,#16a34a 100%);color:#fff;box-shadow:0 2px 12px var(--success-glow)}.btn-success:hover:not(:disabled){box-shadow:0 4px 20px var(--success-glow);transform:translateY(-1px)}.btn-warning{background:linear-gradient(135deg,var(--warning) 0%,#ca8a04 100%);color:#000;box-shadow:0 2px 12px var(--warning-glow)}.btn-warning:hover:not(:disabled){box-shadow:0 4px 20px var(--warning-glow);transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--danger) 0%,#dc2626 100%);color:#fff;box-shadow:0 2px 12px var(--danger-glow)}.btn-danger:hover:not(:disabled){box-shadow:0 4px 20px var(--danger-glow);transform:translateY(-1px)}.btn-info{background:linear-gradient(135deg,var(--info) 0%,#2563eb 100%);color:#fff;box-shadow:0 2px 12px var(--info-glow)}.btn-info:hover:not(:disabled){box-shadow:0 4px 20px var(--info-glow);transform:translateY(-1px)}.btn-outline{background:none;border:1px solid var(--border);color:var(--text)}.btn-outline:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-glow)}.btn-ghost{background:none;border:none;color:var(--text-muted)}.btn-ghost:hover:not(:disabled){color:var(--text)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;margin-bottom:6px;color:var(--text-muted)}.form-group input,.form-select{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;outline:none;transition:border .15s}.form-group input:focus,.form-select:focus{border-color:var(--primary)}.form-hint{display:block;font-size:12px;color:var(--text-muted);margin-top:4px}.form-hint code{font-family:monospace;background:var(--bg);padding:1px 4px;border-radius:3px}.form-select{max-width:300px;cursor:pointer}.error-msg{padding:10px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:var(--danger);font-size:13px;margin-bottom:16px}.form-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:24px}.form-card h3{font-size:16px;font-weight:600;margin-bottom:16px}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.text-muted{color:var(--text-muted);font-size:13px}.logs-controls{display:flex;gap:12px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.connection-status{font-size:13px;font-weight:500}.connection-status.connected{color:var(--success)}.connection-status.disconnected{color:var(--danger)}.logs-container{background:#000;border:1px solid var(--border);border-radius:var(--radius);position:relative}.logs-loading{position:absolute;top:12px;left:16px;font-size:12px;color:var(--text-muted)}.logs-output{padding:16px;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:12px;line-height:1.6;color:#a8b2d1;overflow:auto;max-height:70vh;white-space:pre-wrap;word-break:break-all}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.project-card{background:var(--bg-card);border:1px solid var(--border);border-top:2px solid var(--border);border-radius:var(--radius);padding:20px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:0;transition:opacity .3s}.project-card:hover{border-color:var(--primary);border-top-color:var(--primary);box-shadow:0 0 30px var(--primary-glow),var(--shadow);transform:translateY(-3px)}.project-card:hover:before{opacity:1}.project-card.dirty{border-left:3px solid var(--warning)}.card-top{display:flex;flex-direction:column;gap:8px}.card-title-row{display:flex;align-items:center;gap:8px}.card-title-row h3{font-size:16px;font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis}.branch-tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:10px;font-weight:700;background:#7c7ff71f;color:var(--primary);font-family:JetBrains Mono,monospace;white-space:nowrap;letter-spacing:.3px;box-shadow:inset 0 0 8px var(--primary-glow)}.branch-tag-lg{font-size:13px;padding:3px 10px}.card-meta{display:flex;gap:6px;flex-wrap:wrap}.tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.tag-warning{background:#f0c9291f;color:var(--warning);box-shadow:inset 0 0 8px var(--warning-glow)}.tag-ok{background:#2dd46b1f;color:var(--success);box-shadow:inset 0 0 8px var(--success-glow)}.tag-ahead{background:#5b9cf61f;color:var(--info);box-shadow:inset 0 0 8px var(--info-glow)}.tag-behind{background:#f85a5a1f;color:var(--danger);box-shadow:inset 0 0 8px var(--danger-glow)}.card-commit{font-size:12px;color:var(--text-muted);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card-commit code{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--info);margin-right:6px}.commit-subj{overflow:hidden;text-overflow:ellipsis}.card-actions{display:flex;gap:6px}.detail-view{animation:slideUp .3s ease-out}.detail-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.detail-header .btn{margin-top:4px}.detail-title{font-size:22px;font-weight:700;margin:0 0 4px}.detail-toolbar{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.msg{padding:10px 14px;border-radius:6px;font-size:13px;font-family:JetBrains Mono,monospace;margin-bottom:16px;white-space:pre-wrap;word-break:break-word}.msg-success{background:#2dd46b14;color:var(--success);border:1px solid rgba(45,212,107,.2);box-shadow:inset 0 0 20px var(--success-glow)}.msg-error{background:#f85a5a14;color:var(--danger);border:1px solid rgba(248,90,90,.2);box-shadow:inset 0 0 20px var(--danger-glow)}.tabs{display:flex;gap:3px;margin-bottom:20px;background:var(--bg-elevated);border-radius:10px;padding:4px;width:fit-content;border:1px solid var(--border)}.tab{padding:8px 18px;background:none;border:none;color:var(--text-muted);font-size:12px;font-weight:600;border-radius:7px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);letter-spacing:.3px}.tab.active{background:var(--bg-card);color:var(--text);box-shadow:0 2px 12px #0000004d,inset 0 0 20px var(--primary-glow);border:1px solid var(--border-glow)}.tab:hover:not(.active){color:var(--text)}.tab-content{animation:fadeIn .15s}.action-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.action-card h4{font-size:14px;font-weight:700;margin-bottom:8px}.commit-bar{display:flex;gap:6px;flex-wrap:wrap}.fi{flex:1;min-width:180px;padding:9px 12px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;outline:none}.fi:focus{border-color:var(--primary)}.section-title{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-weight:600;margin:16px 0 8px}.file-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.file-item{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);font-size:13px}.file-item:last-child{border-bottom:none}.file-code{display:inline-block;width:24px;text-align:center;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;padding:1px 4px;border-radius:3px}.file-code.M{background:#eab30826;color:var(--warning)}.file-code.A{background:#22c55e26;color:var(--success)}.file-code.D{background:#ef444426;color:var(--danger)}.file-code.\?{background:#6366f126;color:var(--primary)}.file-path{font-family:JetBrains Mono,monospace;font-size:12px}.diff-box{background:#000;border:1px solid var(--border);border-radius:var(--radius);padding:14px;font-family:JetBrains Mono,monospace;font-size:12px;color:#a8b2d1;overflow:auto;max-height:200px;white-space:pre-wrap;margin-top:8px}.status-box{max-height:250px;margin-top:8px}.branch-list{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.branch-item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);font-size:13px}.branch-item:last-child{border-bottom:none}.branch-item.current{background:#6366f10d}.branch-indicator{width:12px;font-size:10px;color:var(--primary)}.branch-name{flex:1;font-family:JetBrains Mono,monospace;font-weight:500}.branch-actions{display:flex;gap:4px}.btn-xs{padding:3px 10px;font-size:10px;border-radius:5px}.commit-log{position:relative;padding-left:20px}.commit-log:before{content:"";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--border)}.commit-row{position:relative;padding-bottom:16px}.commit-dot{position:absolute;left:-16px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid var(--bg);box-shadow:0 0 8px var(--primary-glow)}.commit-body{padding-left:4px}.commit-msg{font-size:14px;font-weight:500}.commit-meta{display:flex;gap:12px;font-size:12px;color:var(--text-muted);margin-top:2px}.commit-meta code{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--info)}.text-muted{color:var(--text-muted)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:28px;max-width:480px;width:90%;box-shadow:0 12px 48px #0009,0 0 40px var(--primary-glow)}.confirm-dialog h3{font-size:18px;font-weight:700;margin-bottom:12px}.confirm-dialog p{font-size:14px;color:var(--text-muted);line-height:1.6;margin-bottom:12px}.confirm-dialog .confirm-extra{font-size:13px;color:var(--text-muted);line-height:1.5;margin-bottom:20px;padding:12px;background:var(--bg);border-radius:6px}.confirm-buttons{display:flex;gap:8px;justify-content:flex-end}.help-text{font-size:13px;color:var(--text-muted);line-height:1.5;margin-bottom:12px}.tooltip-text{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}.toolbar-group{display:flex;flex-direction:column;align-items:center}.dashboard .stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.stat-icon{font-size:24px;margin-bottom:8px}.system-bar{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;box-shadow:var(--shadow)}.system-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.system-badge.ok{background:#2dd46b1a;color:var(--success);box-shadow:inset 0 0 12px var(--success-glow)}.system-badge.err{background:#f85a5a1a;color:var(--danger);box-shadow:inset 0 0 12px var(--danger-glow)}.system-dot{width:7px;height:7px;border-radius:50%;background:currentColor}.system-badge.ok .system-dot{animation:pulse-glow 2s ease-in-out infinite}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-header h2{margin-bottom:0}.dashboard-container-row{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}.dash-container-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 4px;background:var(--bg-elevated);border-radius:4px;font-size:11px}.dash-container-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.url-summary-list{display:flex;flex-direction:column;gap:6px}.url-summary-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font-size:13px;transition:border-color .15s}.url-summary-item:hover{border-color:var(--primary)}.project-urls-row{display:flex;flex-wrap:wrap;gap:4px;margin:2px 0}.project-url-chip{padding:1px 6px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);border-radius:4px;font-size:10px}.project-url-chip code{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--primary)}.action-card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.action-card-title h4{margin-bottom:0}.url-link{display:inline-flex;align-items:center;gap:4px;color:var(--primary);text-decoration:none;font-family:JetBrains Mono,monospace;font-size:13px;transition:color .15s}.url-link:hover{color:var(--primary-hover);text-decoration:underline}.url-external-icon{font-size:11px;opacity:.6}.container-url{font-size:12px;color:var(--text-muted)}.project-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-elevated);border-radius:4px;font-size:12px;cursor:pointer;transition:all .15s;color:var(--text)}.project-badge:hover{background:var(--primary);color:#fff}.btn-danger-outline{background:none;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.btn-danger-outline:hover:not(:disabled){background:#ef44441a;border-color:var(--danger)}.compose-bar{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;box-shadow:var(--shadow)}.compose-bar-label{font-size:13px;font-weight:600;color:var(--text-muted);margin-right:4px}@media (max-width: 768px){.sidebar{width:100%;position:static}.main-content{margin-left:0;padding:16px}.app-layout{flex-direction:column}.stats-grid{grid-template-columns:repeat(2,1fr)}}.journal-page{position:relative}.achievement-toast{position:fixed;top:24px;right:24px;z-index:1000;display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(135deg,#1a1a3e,#2a1a3e);border:1px solid var(--warning);border-radius:12px;box-shadow:0 0 40px #f0c9294d,0 8px 32px #00000080;animation:slideDown .4s cubic-bezier(.34,1.56,.64,1);cursor:pointer;min-width:280px}@keyframes slideDown{0%{transform:translateY(-120%);opacity:0}to{transform:translateY(0);opacity:1}}.achievement-toast-icon{font-size:36px;animation:glowPulse 2s infinite}.achievement-toast-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--warning);font-weight:700}.achievement-toast-name{font-size:16px;font-weight:700;color:#fff;margin:2px 0}.achievement-toast-desc{font-size:12px;color:var(--text-muted)}.xp-section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;margin-bottom:16px;box-shadow:var(--shadow)}.xp-header{display:flex;align-items:center;gap:16px}.xp-level-badge{display:flex;align-items:center;gap:4px;padding:6px 14px;background:linear-gradient(135deg,#f0c92926,#ffc8000d);border:1px solid rgba(240,201,41,.3);border-radius:20px;flex-shrink:0}.xp-level-icon{font-size:20px}.xp-level-num{font-size:22px;font-weight:800;color:var(--warning)}.xp-info{flex:1}.xp-bar-track{height:12px;background:var(--bg-elevated);border-radius:20px;overflow:hidden;position:relative}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--warning) 0%,#f5a623 100%);border-radius:20px;transition:width .6s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 12px #f0c92966}.xp-bar-shine{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:barShine 3s ease-in-out infinite}@keyframes barShine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.xp-text{display:flex;justify-content:space-between;margin-top:4px;font-size:12px;color:var(--text-muted)}.xp-total{font-weight:600;color:var(--text)}.xp-stats-mini{display:flex;gap:12px;font-size:13px;color:var(--text-muted);flex-shrink:0}.journal-actions{display:flex;align-items:center;gap:8px;margin-bottom:16px;flex-wrap:wrap}.journal-tabs{display:flex;gap:4px;margin-left:auto;background:var(--bg-elevated);border-radius:8px;padding:3px}.tab-btn{padding:6px 14px;background:none;border:none;color:var(--text-muted);font-size:13px;border-radius:6px;cursor:pointer;transition:all .15s;font-weight:600}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:var(--bg-card);color:var(--text);box-shadow:0 0 12px var(--primary-glow)}.journal-form{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px;animation:slideUp .2s ease-out}.form-row{display:flex;gap:8px;margin-bottom:8px}.form-row .fi{flex:1}.task-board{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media (max-width: 900px){.task-board{grid-template-columns:1fr}}.task-column{background:var(--bg-card);border:1px solid var(--border);border-top:3px solid;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:200px}.task-column-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.task-column-body{padding:8px;flex:1;display:flex;flex-direction:column;gap:8px}.task-column-empty{color:var(--text-muted);font-size:12px;text-align:center;padding:24px;font-style:italic}.task-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:all .15s;animation:slideUp .2s ease-out backwards}.task-card:hover{border-color:var(--border-glow)}.task-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}.task-card-title{font-size:13px;font-weight:700;color:var(--text);word-break:break-word}.task-card-delete{background:none;border:none;cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s;padding:2px;flex-shrink:0}.task-card:hover .task-card-delete{opacity:.6}.task-card:hover .task-card-delete:hover{opacity:1}.task-card-desc{font-size:12px;color:var(--text-muted);margin-bottom:6px;line-height:1.4}.task-card-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.task-card-meta .tag{font-size:10px;padding:2px 8px}.task-date{font-size:10px;color:var(--text-muted)}.task-card-actions{display:flex;gap:4px;flex-wrap:wrap}.btn-sm{padding:4px 10px;font-size:11px;border-radius:6px;font-weight:600}.task-card-edit{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.timeline{margin-bottom:24px}.timeline-empty{text-align:center;padding:40px;color:var(--text-muted);font-style:italic}.timeline-item{position:relative;padding-left:32px;padding-bottom:20px;cursor:pointer}.timeline-line{position:absolute;left:10px;top:20px;bottom:0;width:2px;background:var(--border)}.timeline-item:last-child .timeline-line{display:none}.timeline-dot{position:absolute;left:4px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--primary);border:3px solid var(--bg);box-shadow:0 0 8px var(--primary-glow)}.timeline-item.debug .timeline-dot{background:var(--danger);box-shadow:0 0 8px var(--danger-glow)}.timeline-item.plan .timeline-dot{background:var(--success);box-shadow:0 0 8px var(--success-glow)}.timeline-content{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;transition:all .15s}.timeline-content:hover{border-color:var(--border-glow)}.timeline-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.timeline-type{font-size:11px;color:var(--primary);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.timeline-item.debug .timeline-type{color:var(--danger)}.timeline-item.plan .timeline-type{color:var(--success)}.timeline-date{font-size:11px;color:var(--text-muted);margin-left:auto}.timeline-delete{background:none;border:none;cursor:pointer;font-size:12px;opacity:0;transition:opacity .15s;padding:2px}.timeline-content:hover .timeline-delete{opacity:.5}.timeline-content:hover .timeline-delete:hover{opacity:1}.timeline-title{font-size:14px;font-weight:700;margin-bottom:4px}.timeline-text{font-size:13px;color:var(--text-muted);line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.timeline-text.collapsed{max-height:3em;overflow:hidden;position:relative}.timeline-text.collapsed:after{content:"...";position:absolute;bottom:0;right:0;background:var(--bg-card);padding:0 4px;color:var(--text-muted)}.achievements-section{margin-bottom:24px}.achievements-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.achievement-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;text-align:center;transition:all .2s;box-shadow:var(--shadow)}.achievement-card.unlocked{border-color:var(--warning);box-shadow:0 0 20px #f0c92926}.achievement-card.locked{opacity:.5;filter:grayscale(.6)}.achievement-icon{font-size:36px;margin-bottom:8px}.achievement-card.unlocked .achievement-icon{animation:glowPulse 3s infinite}.achievement-name{font-size:13px;font-weight:700;margin-bottom:4px}.achievement-desc{font-size:11px;color:var(--text-muted)}
