:root{--color-primary: #4f46e5;--color-primary-light: #6366f1;--color-primary-dark: #4338ca;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.06);--shadow-lg: 0 10px 15px rgba(0,0,0,.1), 0 4px 6px rgba(0,0,0,.05);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:0 20px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .2s ease;line-height:1.5;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-border)}.btn-outline:hover:not(:disabled){background:var(--color-bg)}.btn-sm{padding:6px 12px;font-size:13px;border-radius:var(--radius-xs)}.btn-lg{padding:14px 28px;font-size:16px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:14px;font-weight:500;color:var(--color-text);margin-bottom:6px}.form-input,.form-textarea,.form-select{width:100%;padding:10px 14px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);transition:border-color .2s;font-family:var(--font-sans)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51a}.form-textarea{min-height:120px;resize:vertical}.form-hint{font-size:12px;color:var(--color-text-muted);margin-top:4px}.form-error{font-size:12px;color:var(--color-danger);margin-top:4px}.badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:12px;font-weight:500;border-radius:20px;line-height:1.4}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-info{background:#dbeafe;color:#1e40af}.badge-danger{background:#fee2e2;color:#991b1b}.badge-neutral{background:#f1f5f9;color:#475569}.badge-primary{background:#e0e7ff;color:#3730a3}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--color-border);font-size:14px}th{font-weight:600;color:var(--color-text-secondary);background:var(--color-bg);white-space:nowrap}tr:hover td{background:#f8fafc}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}.modal{background:var(--color-surface);border-radius:var(--radius);padding:32px;max-width:520px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s ease}.modal h2{font-size:18px;font-weight:600;margin-bottom:20px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}.toast{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:var(--radius-sm);color:#fff;font-size:14px;font-weight:500;z-index:2000;animation:slideUp .3s ease;box-shadow:var(--shadow-lg)}.toast-success{background:var(--color-success)}.toast-error{background:var(--color-danger)}.toast-info{background:var(--color-primary)}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;flex-direction:column;gap:16px;color:var(--color-text-secondary)}.empty-state{text-align:center;padding:60px 20px;color:var(--color-text-muted)}.empty-state h3{font-size:16px;color:var(--color-text-secondary);margin-bottom:8px}.empty-state p{font-size:14px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-header h1{font-size:24px;font-weight:700}.page-header-actions{display:flex;gap:8px}.project-page{max-width:800px;margin:0 auto;padding:24px 20px 80px}.project-hero{margin-bottom:32px}.project-hero h1{font-size:28px;font-weight:700;margin-bottom:8px}.project-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:14px;color:var(--color-text-secondary)}.requirements-section{margin-bottom:32px}.requirements-content{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;font-size:15px;line-height:1.8}.requirements-content h1,.requirements-content h2,.requirements-content h3{margin-top:16px;margin-bottom:8px}.requirements-content p{margin-bottom:12px}.requirements-content code{background:#e2e8f0;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:13px}.requirements-content pre{background:#1e293b;color:#e2e8f0;padding:16px;border-radius:var(--radius-sm);overflow-x:auto;margin:12px 0}.requirements-content pre code{background:none;color:inherit}.confirm-block{margin-top:24px;padding:20px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius)}.confirm-block.confirmed{background:var(--color-bg);border-color:var(--color-border)}.confirm-block h3{font-size:16px;margin-bottom:12px;color:#166534}.confirm-block.confirmed h3{color:var(--color-text-secondary)}.confirm-row{display:flex;gap:12px;align-items:flex-end}.confirm-row .form-group{flex:1;margin-bottom:0}.milestones-section{margin-bottom:32px}.milestones-section h2{font-size:20px;font-weight:600;margin-bottom:16px}.milestone-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:20px;margin-bottom:12px;transition:box-shadow .2s}.milestone-card:hover{box-shadow:var(--shadow-md)}.milestone-card.active{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.milestone-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:12px}.milestone-header h3{font-size:16px;font-weight:600}.milestone-badges{display:flex;gap:6px;flex-wrap:wrap}.milestone-body{font-size:14px;color:var(--color-text-secondary)}.milestone-detail-row{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid #f1f5f9}.milestone-detail-row:last-child{border-bottom:none}.milestone-deliverables{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.milestone-deliverables h4{font-size:14px;font-weight:600;margin-bottom:12px}.deliverable-item{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:14px}.deliverable-item img{max-width:200px;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.copy-btn{background:none;border:1px solid var(--color-border);padding:4px 10px;border-radius:var(--radius-xs);font-size:12px;cursor:pointer;color:var(--color-text-secondary);transition:all .2s}.copy-btn:hover{background:var(--color-bg);color:var(--color-primary);border-color:var(--color-primary)}.milestone-approve{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border);display:flex;justify-content:flex-end}.payment-section{margin-bottom:32px}.payment-section h2{font-size:20px;font-weight:600;margin-bottom:16px}.payment-guide{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:var(--radius);padding:24px}.payment-guide p{font-size:14px;color:var(--color-text-secondary);margin-bottom:12px}.timeline-section{margin-bottom:32px}.timeline-section h2{font-size:20px;font-weight:600;margin-bottom:16px}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:8px;top:4px;bottom:4px;width:2px;background:var(--color-border)}.timeline-item{position:relative;padding-bottom:20px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-24px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--color-primary);border:3px solid var(--color-surface);z-index:1}.timeline-content{font-size:14px}.timeline-time{font-size:12px;color:var(--color-text-muted);margin-bottom:2px}.password-gate{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.password-gate .card{width:100%;max-width:400px;text-align:center}.password-gate h1{font-size:22px;margin-bottom:8px}.password-gate p{font-size:14px;color:var(--color-text-secondary);margin-bottom:20px}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:240px;background:var(--color-surface);border-right:1px solid var(--color-border);padding:20px 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-brand{padding:0 20px 20px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.sidebar-brand h2{font-size:18px;font-weight:700;color:var(--color-primary)}.sidebar-nav{flex:1;padding:8px 12px}.sidebar-nav a{display:flex;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;color:var(--color-text-secondary);border-radius:var(--radius-sm);transition:all .2s;text-decoration:none}.sidebar-nav a:hover{background:var(--color-bg);color:var(--color-text)}.sidebar-nav a.active{background:#e0e7ff;color:var(--color-primary)}.sidebar-footer{padding:12px 20px;border-top:1px solid var(--color-border)}.admin-main{flex:1;margin-left:240px;padding:32px;min-height:100vh}.admin-login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.admin-login-page .card{width:100%;max-width:380px}.admin-login-page h1{font-size:22px;text-align:center;margin-bottom:24px}.project-list-card{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:8px;transition:box-shadow .2s}.project-list-card:hover{box-shadow:var(--shadow-md)}.project-list-info{display:flex;flex-direction:column;gap:4px}.project-list-info h3{font-size:15px;font-weight:600}.project-list-meta{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--color-text-secondary)}.project-list-actions{display:flex;gap:8px}.inline-edit-row{display:flex;align-items:center;gap:8px;padding:4px 0}.inline-edit-row input{flex:1;min-width:0}@media (max-width: 768px){.admin-sidebar{width:100%;height:auto;position:static;flex-direction:row;padding:12px;border-right:none;border-bottom:1px solid var(--color-border);overflow-x:auto}.sidebar-brand{display:none}.sidebar-nav{display:flex;padding:0;gap:4px}.sidebar-nav a{font-size:13px;padding:8px 12px;white-space:nowrap}.sidebar-footer{display:none}.admin-main{margin-left:0;padding:20px 16px}.admin-layout{flex-direction:column}.page-header{flex-direction:column;align-items:flex-start}.project-hero h1{font-size:22px}.modal{margin:16px;padding:20px}.confirm-row{flex-direction:column}.table-container td,.table-container th{padding:8px 10px;font-size:13px}}
