:root{--bg-primary: #0a0e17;--bg-secondary: #121826;--bg-card: rgba(22, 30, 46, .75);--bg-card-hover: rgba(30, 41, 64, .85);--bg-glass: rgba(255, 255, 255, .04);--border-color: rgba(255, 255, 255, .08);--border-highlight: rgba(79, 140, 255, .3);--primary-color: #3b82f6;--primary-glow: rgba(59, 130, 246, .4);--accent-color: #f59e0b;--accent-purple: #8b5cf6;--accent-teal: #14b8a6;--text-main: #f1f5f9;--text-muted: #94a3b8;--text-dim: #64748b;--status-active-bg: rgba(34, 197, 94, .15);--status-active-border: rgba(34, 197, 94, .35);--status-active-text: #4ade80;--status-progress-bg: rgba(245, 158, 11, .15);--status-progress-border: rgba(245, 158, 11, .35);--status-progress-text: #fbbf24;--status-paused-bg: rgba(100, 116, 139, .2);--status-paused-border: rgba(100, 116, 139, .4);--status-paused-text: #cbd5e1;--shadow-main: 0 10px 30px -5px rgba(0, 0, 0, .5);--radius-lg: 16px;--radius-md: 10px;--radius-sm: 6px;--font-sans: "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, Roboto, sans-serif;--font-mono: "JetBrains Mono", Consolas, monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);background-image:radial-gradient(circle at 15% 15%,rgba(59,130,246,.08) 0%,transparent 40%),radial-gradient(circle at 85% 85%,rgba(139,92,246,.08) 0%,transparent 40%);color:var(--text-main);line-height:1.5;min-height:100vh;padding:24px}.app-container{max-width:1440px;margin:0 auto}.header{display:flex;justify-content:space-between;align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:20px 28px;border-radius:var(--radius-lg);margin-bottom:24px;box-shadow:var(--shadow-main)}.logo-area{display:flex;align-items:center;gap:24px}.logo-badge{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .2s ease,opacity .2s ease}.logo-badge:hover{transform:scale(1.02);opacity:.95}.logo-icon{font-size:36px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);border-radius:12px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px var(--primary-glow)}.logo-title{font-size:24px;font-weight:800;letter-spacing:.5px;background:linear-gradient(135deg,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.logo-subtitle{font-size:12px;color:var(--text-muted);display:block;font-weight:500}.kodari-status-pill{display:flex;align-items:center;gap:10px;background:#3b82f61a;border:1px solid rgba(59,130,246,.25);padding:8px 16px;border-radius:30px}.kodari-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid #3b82f6}.kodari-text{display:flex;flex-direction:column;font-size:12px}.kodari-text strong{color:#60a5fa;font-size:13px}.kodari-text span{color:var(--text-muted)}.stats-overview{display:flex;gap:12px;align-items:center}.stat-card{display:flex;align-items:center;gap:10px;background:var(--bg-glass);border:1px solid var(--border-color);padding:8px 14px;border-radius:var(--radius-md);min-width:120px}.stat-icon{font-size:18px}.stat-info{display:flex;flex-direction:column}.stat-label{font-size:10px;color:var(--text-muted);font-weight:500}.stat-value{font-size:16px;font-weight:700;color:var(--text-main)}.filter-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:18px 24px;margin-bottom:24px}.account-tabs-wrapper{display:flex;align-items:center;gap:12px;margin-bottom:16px;border-bottom:1px solid var(--border-color);padding-bottom:14px}.tabs-label{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.account-tabs{display:flex;gap:8px;flex-wrap:wrap}.account-tab{background:var(--bg-glass);border:1px solid var(--border-color);color:var(--text-muted);padding:6px 14px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.account-tab:hover{background:#ffffff14;color:var(--text-main)}.account-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb);border-color:#60a5fa;color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.account-tab .tab-count{background:#00000040;padding:2px 6px;border-radius:10px;font-size:11px}.controls-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:280px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--text-muted)}.search-box input{width:100%;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-main);padding:10px 14px 10px 40px;border-radius:var(--radius-md);font-size:14px;outline:none;transition:border-color .2s}.search-box input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-glow)}.filter-dropdowns{display:flex;gap:10px}.filter-dropdowns select{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-main);padding:10px 14px;border-radius:var(--radius-md);font-size:13px;outline:none;cursor:pointer}.action-buttons{display:flex;gap:8px;flex-wrap:wrap}.btn{padding:9px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.primary-btn{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px var(--primary-glow)}.primary-btn:hover{background:linear-gradient(135deg,#60a5fa,#2563eb)}.secondary-btn{background:var(--bg-glass);border-color:var(--border-color);color:var(--text-main)}.secondary-btn:hover{background:#ffffff1a;border-color:#fff3}.danger-btn{background:#ef444426;border-color:#ef44444d;color:#f87171}.danger-btn:hover{background:#ef44444d}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:24px}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:24px;display:flex;flex-direction:column;gap:16px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease;box-shadow:var(--shadow-main)}.project-card:hover{transform:translateY(-2px);border-color:var(--border-highlight);box-shadow:0 12px 35px -5px #0009}.project-header{display:flex;flex-direction:column;gap:10px}.project-top-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%}.account-badge{display:inline-flex;align-items:center;gap:6px;background:#8b5cf626;border:1px solid rgba(139,92,246,.3);color:#c084fc;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;width:fit-content}.project-name{font-size:20px;font-weight:800;color:var(--text-main);display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;width:100%}.proj-title-text{font-size:20px;font-weight:800;line-height:1.3;color:#f8fafc;word-break:keep-all}.firebase-id-tag{font-family:var(--font-mono);font-size:11px;color:#38bdf8;background:#38bdf81f;border:1px solid rgba(56,189,248,.3);padding:3px 8px;border-radius:6px;font-weight:500;white-space:nowrap}.project-desc{font-size:13px;color:var(--text-muted)}.project-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.status-badge{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.status-badge.active{background:var(--status-active-bg);border:1px solid var(--status-active-border);color:var(--status-active-text);box-shadow:0 0 6px #22c55e33;animation:pulse-green 2.5s infinite ease-in-out}.status-badge.in-progress{background:var(--status-progress-bg);border:1px solid var(--status-progress-border);color:var(--status-progress-text)}.status-badge.paused{background:var(--status-paused-bg);border:1px solid var(--status-paused-border);color:var(--status-paused-text)}.icon-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.icon-btn:hover{background:#ffffff1a;color:var(--text-main);border-color:#ffffff4d}.firebase-console-btn{background:#f59e0b26!important;border-color:#f59e0b4d!important}.firebase-console-btn:hover{background:#f59e0b4d!important;border-color:#f59e0b99!important;box-shadow:0 0 10px #f59e0b80!important;transform:translateY(-1px)}.project-quick-links{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:10px}.link-row{display:flex;align-items:center;gap:8px;font-size:13px;width:100%}.link-label{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-weight:500;flex-shrink:0}.path-box{flex:1;min-width:0;display:block;background:#0000004d;border:1px solid var(--border-color);padding:4px 8px;border-radius:6px;font-family:var(--font-mono);font-size:11px;color:#a7f3d0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-btn{background:#3b82f626;border:1px solid rgba(59,130,246,.3);color:#60a5fa;padding:3px 8px;border-radius:4px;font-size:11px;cursor:pointer;font-weight:600;transition:background .2s;flex-shrink:0}.copy-btn:hover{background:#3b82f64d}.cd-copy-btn{background:#8b5cf626!important;border:1px solid rgba(139,92,246,.3)!important;color:#c084fc!important}.cd-copy-btn:hover{background:#8b5cf64d!important;box-shadow:0 0 8px #8b5cf666}.url-link{color:#38bdf8;text-decoration:none;display:inline-flex;align-items:center;gap:4px;font-weight:500}.url-link:hover{text-decoration:underline}.tags-row{display:flex;gap:6px;flex-wrap:wrap}.tech-tag{background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-muted);font-size:11px;padding:2px 8px;border-radius:4px}.apps-accordion{border-top:1px dashed var(--border-color);padding-top:14px}.apps-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.apps-title{font-size:13px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px}.app-count-pill{background:linear-gradient(135deg,#8b5cf6,#6d28d9);color:#fff;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:700}.toggle-arrow{transition:transform .2s ease;font-size:12px;color:var(--text-muted)}.apps-accordion.open .toggle-arrow{transform:rotate(180deg)}.apps-list{display:flex;flex-direction:column;gap:10px;margin-top:12px}.app-item-card{background:#0a0e17b3;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px;width:100%;box-sizing:border-box}.app-item-top-bar{display:flex;justify-content:space-between;align-items:center;width:100%}.app-item-badge-group{display:flex;align-items:center;gap:6px}.app-icon{font-size:14px}.app-type-badge{font-size:11px;padding:2px 8px;border-radius:4px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);color:#60a5fa;font-weight:600;text-transform:uppercase}.app-item-actions{display:flex;gap:4px;align-items:center}.app-name{font-size:15px;font-weight:700;color:#f8fafc;line-height:1.35;word-break:keep-all;width:100%;margin:2px 0}.app-notes{font-size:12px;color:var(--text-muted);background:#ffffff08;padding:4px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.05)}.app-item-links{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:2px}.app-path-row{display:flex;align-items:center;gap:6px;width:100%}.app-url-row{display:flex;gap:12px;flex-wrap:wrap;font-size:12px}.modal-backdrop,.modal-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;width:100vw!important;height:100vh!important;background:#000000d9!important;backdrop-filter:blur(10px)!important;-webkit-backdrop-filter:blur(10px)!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:999999!important;padding:20px!important;box-sizing:border-box!important;margin:0!important;transform:none!important}.modal-card,.modal-content{background:var(--bg-secondary)!important;border:1px solid var(--border-color)!important;border-radius:var(--radius-lg)!important;width:100%!important;max-width:880px!important;padding:28px!important;box-shadow:0 25px 70px #000c!important;max-height:90vh!important;overflow-y:auto!important;box-sizing:border-box!important;position:relative!important;color:var(--text-main)!important;animation:modalPopIn .25s cubic-bezier(.16,1,.3,1)!important;margin:auto!important}@keyframes modalPopIn{0%{opacity:0;transform:scale(.94) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:12px}.close-btn{background:transparent;border:none;color:var(--text-muted);font-size:24px;cursor:pointer}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-row{display:flex;gap:16px}.form-group.half{flex:1}.form-group label{font-size:13px;font-weight:600;color:var(--text-muted)}.required{color:#f87171}.form-group input,.form-group select,.form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-main);padding:10px 14px;border-radius:var(--radius-md);font-size:14px;font-family:inherit;outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color)}.modal-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.toast{position:fixed;bottom:30px;right:30px;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid var(--primary-color);color:#fff;padding:12px 20px;border-radius:30px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:0 10px 25px #00000080;z-index:2000;animation:slideUp .3s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse-green{0%{box-shadow:0 0 #22c55e66}70%{box-shadow:0 0 0 6px #22c55e00}to{box-shadow:0 0 #22c55e00}}.empty-state{text-align:center;padding:60px 20px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;gap:14px}.empty-img{width:90px;height:90px;border-radius:50%;object-fit:cover;border:2px solid var(--primary-color)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.scroll-nav-buttons{position:fixed;right:24px;bottom:30px;z-index:999;display:flex;flex-direction:column;gap:8px}.scroll-btn{background:#0f172ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#f8fafc;border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:8px 14px;font-size:11px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px #0006;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;gap:5px;letter-spacing:.5px}.scroll-btn:hover{background:#3b82f6e6;color:#fff;border-color:#93c5fd99;transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px #3b82f680}.scroll-btn:active{transform:translateY(0) scale(.98)}html,body{overflow-x:hidden;width:100%}@media (max-width: 1024px){body{padding:16px}.header{flex-direction:column;align-items:stretch;gap:16px}.logo-area,.stats-overview{width:100%;justify-content:space-between}}@media (max-width: 768px){body{padding:10px}.app-container{width:100%;max-width:100%;overflow-x:hidden}.header{padding:14px;border-radius:var(--radius-md);margin-bottom:16px;gap:14px}.logo-area{flex-direction:column;align-items:flex-start;gap:10px;width:100%}.logo-badge{gap:10px}.logo-icon{font-size:28px;width:40px;height:40px}.logo-title{font-size:20px}.logo-subtitle{font-size:11px}.kodari-status-pill{width:100%;padding:8px 12px;border-radius:12px;box-sizing:border-box}.kodari-avatar{width:32px;height:32px;flex-shrink:0}.kodari-text{flex:1;min-width:0;white-space:normal;word-break:keep-all;word-wrap:break-word}.kodari-text strong{font-size:12px;display:block}.kodari-text span{font-size:11px;display:block;line-height:1.3}.stats-overview{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.stat-card{min-width:0;width:100%;padding:8px 10px}.stat-label{font-size:9px}.stat-value{font-size:14px}.filter-section{padding:12px;border-radius:var(--radius-md);margin-bottom:16px}.account-tabs-wrapper{flex-direction:column;align-items:flex-start;gap:8px;padding-bottom:10px;margin-bottom:12px}.account-tabs{width:100%;gap:6px}.account-tab{font-size:11px;padding:5px 10px}.controls-row{flex-direction:column;align-items:stretch;gap:10px}.search-box{min-width:0;width:100%}.filter-dropdowns{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.filter-dropdowns select{width:100%;min-width:0;font-size:11px;padding:8px 6px}.action-buttons{width:100%;display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}.action-buttons .btn{justify-content:center;padding:7px 8px;font-size:11px}.projects-grid{grid-template-columns:1fr!important;gap:16px;width:100%}.project-card{padding:14px;gap:12px;width:100%;box-sizing:border-box;overflow-x:hidden}.project-header{flex-direction:column;align-items:flex-start;gap:8px;width:100%}.project-top-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;width:100%}.project-name{font-size:16px;flex-wrap:wrap;word-break:keep-all;width:100%}.proj-title-text{font-size:17px;line-height:1.3}.project-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;max-width:100%;margin-top:2px}.status-badge{font-size:10px;padding:3px 8px;white-space:nowrap}.project-quick-links{padding:10px;gap:8px}.link-row{flex-direction:column;align-items:flex-start;gap:4px;width:100%}.link-label{min-width:0;font-size:11px}.path-box{max-width:100%;width:100%;font-size:10px;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.url-link{font-size:12px;word-break:break-all}.modal-backdrop,.modal-overlay{padding:20px 10px 10px!important;align-items:flex-start!important}.modal-card,.modal-content{padding:16px!important;width:100%!important;max-width:100%!important;max-height:92vh!important;border-radius:var(--radius-md)!important;margin:0 auto!important}.form-row{flex-direction:column;gap:10px}.scroll-nav-buttons{right:8px;bottom:16px;gap:6px}.scroll-btn{padding:6px 10px;font-size:10px}}.portfolio-container{max-width:1400px;margin:0 auto;padding:10px 10px 60px;color:var(--text-main);animation:fadeIn .4s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.portfolio-hero{position:relative;background:linear-gradient(135deg,#121826f2,#1e2940cc);border:1px solid rgba(79,140,255,.25);border-radius:20px;padding:36px 40px;margin-bottom:32px;box-shadow:0 20px 50px #0006,inset 0 1px 1px #ffffff1a;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden}.portfolio-hero:before{content:"";position:absolute;top:-50%;right:-10%;width:450px;height:450px;background:radial-gradient(circle,rgba(59,130,246,.18) 0%,rgba(139,92,246,.05) 50%,transparent 70%);pointer-events:none;border-radius:50%}.portfolio-hero-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;flex-wrap:wrap}.portfolio-hero-title-group{display:flex;align-items:center;gap:16px}.portfolio-hero-badge{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;font-size:12px;font-weight:700;padding:6px 14px;border-radius:30px;letter-spacing:.5px;text-transform:uppercase;box-shadow:0 4px 12px #3b82f659}.portfolio-hero-title{font-size:28px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#fff 30%,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:6px}.portfolio-hero-desc{color:var(--text-muted);font-size:14px;line-height:1.6}.portfolio-kodari-badge{display:flex;align-items:center;gap:12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);padding:10px 18px;border-radius:40px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.portfolio-kodari-img{width:42px;height:42px;border-radius:50%;border:2px solid var(--primary-color);object-fit:cover}.portfolio-kodari-info{display:flex;flex-direction:column}.portfolio-kodari-name{font-weight:700;font-size:13px;color:#60a5fa}.portfolio-kodari-sub{font-size:11px;color:var(--text-muted)}.portfolio-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:24px}.portfolio-stat-card{background:#0a0e1799;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:18px 20px;display:flex;align-items:center;gap:16px;transition:transform .2s ease,border-color .2s ease}.portfolio-stat-card:hover{transform:translateY(-2px);border-color:#3b82f666}.portfolio-stat-icon{font-size:28px;width:48px;height:48px;border-radius:12px;background:#3b82f61f;display:flex;align-items:center;justify-content:center}.portfolio-stat-content{display:flex;flex-direction:column}.portfolio-stat-val{font-size:24px;font-weight:800;color:#fff;line-height:1.2}.portfolio-stat-lbl{font-size:12px;color:var(--text-muted);margin-top:2px}.portfolio-section-header{display:flex;justify-content:space-between;align-items:center;margin:36px 0 20px;flex-wrap:wrap;gap:16px}.portfolio-section-title{font-size:20px;font-weight:700;display:flex;align-items:center;gap:10px}.portfolio-category-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.portfolio-category-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);padding:10px 20px;border-radius:30px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:all .2s cubic-bezier(.16,1,.3,1)}.portfolio-category-btn:hover{background:#3b82f626;color:#fff;border-color:#3b82f64d}.portfolio-category-btn.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:#60a5fa;box-shadow:0 4px 14px #2563eb66}.category-count-badge{background:#fff3;color:#fff;font-size:11px;padding:2px 8px;border-radius:10px}.portfolio-timeline-wrapper{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:18px;padding:28px;margin-bottom:36px;box-shadow:var(--shadow-main)}.timeline-chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.timeline-chart-title{font-size:16px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:8px}.timeline-chart-subtitle{font-size:12px;color:var(--text-muted)}.gantt-release-list{display:flex;flex-direction:column;gap:12px;max-height:360px;overflow-y:auto;padding-right:6px}.gantt-item{display:grid;grid-template-columns:220px 1fr 110px;align-items:center;gap:16px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);padding:10px 16px;border-radius:10px;transition:background .2s ease}.gantt-item:hover{background:#3b82f60f;border-color:#3b82f633}.gantt-name{font-size:13px;font-weight:600;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track-bg{height:10px;background:#ffffff0f;border-radius:5px;position:relative;overflow:hidden}.gantt-track-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:5px;transition:width .5s ease}.gantt-duration-badge{font-size:11px;font-weight:700;color:#38bdf8;background:#38bdf81f;padding:4px 10px;border-radius:20px;text-align:center;border:1px solid rgba(56,189,248,.2)}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:24px}.portfolio-card{background:#121826d9;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:24px;display:flex;flex-direction:column;justify-content:space-between;position:relative;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 8px 24px #0000004d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.portfolio-card:hover{transform:translateY(-6px);border-color:#3b82f666;box-shadow:0 16px 40px #00000080,0 0 20px #3b82f626}.portfolio-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.portfolio-category-tag{font-size:11px;font-weight:700;padding:4px 12px;border-radius:20px;background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3)}.portfolio-duration-tag{font-size:11px;font-weight:600;color:#f59e0b;background:#f59e0b1f;padding:4px 10px;border-radius:20px;border:1px solid rgba(245,158,11,.25)}.portfolio-card-title{font-size:18px;font-weight:800;color:#fff;margin-bottom:8px;line-height:1.3}.portfolio-card-desc{font-size:13px;color:var(--text-muted);line-height:1.6;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.portfolio-tags-cloud{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}.portfolio-tag-chip{font-size:11px;color:var(--text-muted);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);padding:3px 8px;border-radius:6px}.portfolio-subapps-box{background:#00000040;border-radius:10px;padding:10px 12px;margin-bottom:18px;border:1px solid rgba(255,255,255,.04)}.portfolio-subapps-title{font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.portfolio-subapp-item{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 0;border-bottom:1px dashed rgba(255,255,255,.06)}.portfolio-subapp-item:last-child{border-bottom:none}.portfolio-subapp-name{color:#cbd5e1;font-weight:500}.portfolio-subapp-type{font-size:10px;color:#94a3b8;background:#ffffff0f;padding:1px 6px;border-radius:4px}.portfolio-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.portfolio-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:700;padding:10px 14px;border-radius:10px;cursor:pointer;transition:all .2s ease;text-decoration:none;border:none}.portfolio-btn-primary{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px #3b82f64d}.portfolio-btn-primary:hover{background:linear-gradient(135deg,#60a5fa,#2563eb);transform:translateY(-1px)}.portfolio-btn-secondary{background:#ffffff0f;color:#e2e8f0;border:1px solid rgba(255,255,255,.12)}.portfolio-btn-secondary:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.live-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .25s ease}.live-modal-container{background:#0f172a;border:1px solid rgba(79,140,255,.3);border-radius:20px;width:100%;max-width:1200px;height:90vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 60px #000c}.live-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#1e293b;border-bottom:1px solid rgba(255,255,255,.08)}.live-modal-title{font-size:16px;font-weight:700;color:#fff;display:flex;align-items:center;gap:10px}.live-modal-controls{display:flex;align-items:center;gap:12px}.device-toggle-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:var(--text-muted);padding:6px 12px;border-radius:8px;cursor:pointer;font-size:12px;display:flex;align-items:center;gap:6px}.device-toggle-btn.active{background:#3b82f6;color:#fff;border-color:#60a5fa}.live-modal-close{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s ease}.live-modal-close:hover{background:#ef4444;color:#fff}.live-modal-body{flex:1;background:#020617;display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.live-modal-iframe{width:100%;height:100%;border:none;transition:width .3s ease}.live-modal-iframe.mobile-view{width:414px;height:90%;border-radius:24px;border:8px solid #334155;box-shadow:0 20px 40px #000c}.worklog-modal-container{width:90%;max-width:1000px;height:85vh;display:flex;flex-direction:column}.worklog-date-badge{background:#3b82f626;color:#60a5fa;border:1px solid rgba(59,130,246,.3);font-size:11px;padding:4px 10px;border-radius:20px;font-weight:600;margin-left:8px}.worklog-modal-body{flex:1;background:#0b0f19;color:#e2e8f0;line-height:1.7;font-size:14px}.worklog-formatted-content{max-width:900px;margin:0 auto}.worklog-h1{font-size:24px;font-weight:800;color:#f8fafc;margin:20px 0 12px;padding-bottom:8px;border-bottom:2px solid #334155}.worklog-h2{font-size:20px;font-weight:700;color:#60a5fa;margin:24px 0 12px}.worklog-h3{font-size:16px;font-weight:700;color:#38bdf8;margin:16px 0 8px}.worklog-h4,.worklog-h5{font-size:14px;font-weight:600;color:#a7f3d0;margin:12px 0 6px}.worklog-quote{background:#1e293b99;border-left:4px solid #3b82f6;padding:10px 16px;margin:12px 0;border-radius:0 8px 8px 0;color:#94a3b8;font-size:13px}.worklog-task-item{display:flex;align-items:center;gap:10px;padding:8px 14px;margin:4px 0;border-radius:8px;background:#0f172a99;border:1px solid rgba(255,255,255,.05)}.worklog-task-item.completed{border-left:3px solid #10b981}.worklog-task-item.pending{border-left:3px solid #f59e0b}.task-checkbox{font-size:14px}.worklog-li{margin-left:20px;margin-bottom:4px}.worklog-hr{border:none;border-top:1px solid #1e293b;margin:24px 0}.worklog-p{margin-bottom:8px}.worklog-raw-pre{background:#020617;padding:16px;border-radius:12px;border:1px solid #1e293b;color:#38bdf8;font-family:JetBrains Mono,monospace;font-size:13px;white-space:pre-wrap;word-break:break-all}.worklog-empty-box{text-align:center;padding:48px 24px}.portfolio-btn-worklog{background:linear-gradient(135deg,#10b98126,#05966940);color:#34d399;border:1px solid rgba(16,185,129,.4)}.portfolio-btn-worklog:hover{background:linear-gradient(135deg,#10b981,#059669);color:#fff}
