:root{--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-app:#f8fafc;--bg-surface:#fff;--bg-surface-hover:#f1f5f9;--bg-subtle:#f1f5f9;--border-light:#e2e8f0;--border-focus:#0284c7;--text-main:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-inverted:#fff;--primary:#0284c7;--primary-hover:#0369a1;--primary-subtle:#e0f2fe;--primary-border:#bae6fd;--success:#16a34a;--success-subtle:#dcfce7;--success-text:#15803d;--warning:#d97706;--warning-subtle:#fef3c7;--warning-text:#b45309;--danger:#e11d48;--danger-subtle:#ffe4e6;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #00000012;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--transition:all .2s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;line-height:1.5}.app-shell{flex-direction:column;min-height:100vh;display:flex}button,input,textarea,select{font-family:inherit}.app-header{background:var(--primary);z-index:40;border-bottom:1px solid #0369a1;flex-shrink:0;align-items:center;height:60px;display:flex;position:sticky;top:0;box-shadow:0 2px 4px #00000014}.header-inner{justify-content:space-between;align-items:center;width:100%;max-width:100%;margin:0;padding:0 28px;display:flex}.brand-logo{cursor:pointer;color:#fff;align-items:center;gap:12px;text-decoration:none;display:flex}.brand-title{letter-spacing:-.02em;color:#fff;flex-direction:column;font-size:1.15rem;font-weight:700;display:flex}.brand-subtitle{color:#ffffffd1;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:500}.header-actions{align-items:center;gap:10px;display:flex}.header-actions .btn-primary{color:var(--primary);background-color:#fff;border:1px solid #ffffff80;font-weight:700}.header-actions .btn-primary:hover{color:var(--primary-hover);background-color:#f0f9ff}.header-actions .btn-secondary{color:#fff;background-color:#ffffff29;border-color:#ffffff59}.header-actions .btn-secondary:hover{color:#fff;background-color:#ffffff47;border-color:#ffffff80}.btn-header-logout{border-radius:var(--radius-full);color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff1f;border:1px solid #ffffff47;align-items:center;gap:8px;padding:6px 14px;font-size:.825rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-header-logout:hover{color:#fff;background:#ef444433;border-color:#fca5a5;transform:translateY(-1px);box-shadow:0 3px 8px #00000026}.btn-header-logout:active{transform:translateY(0)}.logout-icon-wrapper{background:#ffffff29;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.btn-header-logout:hover .logout-icon-wrapper{color:#fff;background:#ef4444}.btn{border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border:1px solid #0000;outline:none;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:.875rem;font-weight:600;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background-color:var(--primary);color:var(--text-inverted)}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--bg-surface);border-color:var(--border-light);color:var(--text-main)}.btn-secondary:hover{background-color:var(--bg-surface-hover);border-color:#cbd5e1}.btn-success{background-color:var(--success);color:var(--text-inverted)}.btn-success:hover{background-color:#15803d}.btn-danger{background-color:var(--bg-surface);color:var(--danger);border-color:var(--danger-subtle)}.btn-danger:hover{background-color:var(--danger-subtle)}.btn-sm{padding:5px 10px;font-size:.8rem}.role-badge{border-radius:var(--radius-full);align-items:center;gap:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.role-badge.client{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.role-badge.worker{background:var(--primary-subtle);color:var(--primary-hover);border:1px solid var(--primary-border)}.search-section{flex-direction:column;gap:12px;margin:24px 0 20px;display:flex}.search-box-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:14px}.search-input{border:1px solid var(--border-light);border-radius:var(--radius-lg);background:var(--bg-surface);width:100%;color:var(--text-main);box-shadow:var(--shadow-sm);transition:var(--transition);outline:none;padding:12px 14px 12px 42px;font-size:.95rem}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0284c726}.clear-search{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;right:12px}.category-chips{scrollbar-width:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.category-chips::-webkit-scrollbar{display:none}.chip{border-radius:var(--radius-full);border:1px solid var(--border-light);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:var(--transition);padding:6px 14px;font-size:.825rem;font-weight:500}.chip:hover{background:var(--bg-surface-hover);color:var(--text-main)}.chip.active{background:var(--primary);color:var(--text-inverted);border-color:var(--primary)}.jobs-list{flex-direction:column;gap:14px;display:flex}.job-card{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);flex-direction:column;gap:12px;padding:20px;display:flex}.job-card:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1;transform:translateY(-1px)}.job-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.job-title{color:var(--text-main);font-size:1.1rem;font-weight:600;line-height:1.35}.job-budget{color:var(--success-text);background:var(--success-subtle);border-radius:var(--radius-md);white-space:nowrap;padding:4px 10px;font-size:1.15rem;font-weight:700}.job-meta-row{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:12px;font-size:.825rem;display:flex}.meta-item{align-items:center;gap:5px;display:inline-flex}.pill-urgency{border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem;font-weight:600}.pill-urgency.urgente{background:var(--warning-subtle);color:var(--warning-text)}.pill-urgency.normal{background:var(--bg-subtle);color:var(--text-secondary)}.pill-category{background:var(--primary-subtle);color:var(--primary-hover);border-radius:var(--radius-sm);padding:2px 8px;font-weight:600}.job-description{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.job-card-footer{border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding-top:10px;display:flex}.job-author{color:var(--text-muted);font-size:.8rem}.job-status-badge{border-radius:var(--radius-full);padding:3px 8px;font-size:.75rem;font-weight:600}.job-status-badge.open{color:#15803d;background:#dcfce7}.job-status-badge.assigned{color:#0369a1;background:#e0f2fe}.job-status-badge.completed{color:#64748b;background:#f1f5f9}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background-color:#0f172a66;justify-content:center;align-items:center;padding:16px;animation:.15s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-light);flex-direction:column;width:100%;max-width:500px;max-height:90vh;display:flex;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.modal-title{color:var(--text-main);font-size:1.15rem;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;display:flex}.modal-close:hover{background:var(--bg-surface-hover);color:var(--text-main)}.modal-body{flex-direction:column;gap:16px;padding:20px;display:flex}.modal-footer{border-top:1px solid var(--border-light);border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg);background:#fafafa;justify-content:flex-end;gap:10px;padding:14px 20px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-main);font-size:.85rem;font-weight:600}.form-input,.form-textarea,.form-select{border:1px solid var(--border-light);border-radius:var(--radius-md);width:100%;color:var(--text-main);background:var(--bg-surface);transition:var(--transition);outline:none;padding:10px 12px;font-size:.9rem}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #0284c726}.form-textarea{resize:vertical;min-height:90px}.role-selector-cards{grid-template-columns:1fr 1fr;gap:10px;display:grid}.role-card-opt{border:2px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:var(--transition);flex-direction:column;align-items:center;gap:6px;padding:12px;display:flex}.role-card-opt.selected{border-color:var(--primary);background:var(--primary-subtle)}.role-card-opt-title{color:var(--text-main);font-size:.85rem;font-weight:600}.role-card-opt-desc{color:var(--text-secondary);font-size:.72rem}.quick-fill-box{background:var(--bg-subtle);border:1px dashed var(--border-light);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:10px 12px;display:flex}.quick-fill-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.quick-fill-buttons{gap:8px;display:flex}.empty-state{text-align:center;background:var(--bg-surface);border:1px dashed var(--border-light);border-radius:var(--radius-lg);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 20px;display:flex}.empty-state-title{color:var(--text-main);font-size:1.1rem;font-weight:600}.empty-state-desc{color:var(--text-secondary);max-width:400px;font-size:.875rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.alert-error{background:var(--danger-subtle);color:#9f1239;border-radius:var(--radius-md);padding:10px 12px;font-size:.85rem;font-weight:500}.alert-success{background:var(--success-subtle);color:#14532d;border-radius:var(--radius-md);padding:10px 12px;font-size:.85rem;font-weight:500}.app-layout{align-items:flex-start;gap:24px;display:flex}.feed-column{flex-direction:column;flex:1;min-width:0;display:flex}.feed-column .empty-state{flex:1;min-height:calc(100vh - 160px)}.smart-sidebar{z-index:20;flex-shrink:0;width:290px;height:calc(100vh - 86px);position:sticky;top:72px}.mobile-sidebar-toggle{display:none}.sidebar-inner-panel{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);height:100%;box-shadow:var(--shadow-sm);flex-direction:column;display:flex;overflow:hidden}.sidebar-section{padding:14px 16px}.sidebar-section.user-section{border-bottom:1px solid var(--border-light);background:#fbfcfd;flex-shrink:0}.sidebar-section.filters-section{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;flex-direction:column;flex:1;gap:12px;display:flex;overflow-y:auto}.sidebar-section.filters-section::-webkit-scrollbar{width:4px}.sidebar-section.filters-section::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:4px}.sidebar-section.user-section-simple{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);padding:14px 16px}.sidebar-section.user-section-simple:hover{box-shadow:var(--shadow-md);border-color:#cbd5e1}.simple-profile-box{flex-direction:column;width:100%;display:flex}.profile-header-row{align-items:center;gap:10px;margin-bottom:12px;display:flex}.avatar-square-wrapper-sm{flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s;display:flex}.avatar-square-wrapper-sm:hover{transform:translateY(-1px)}.profile-info-col{flex-direction:column;flex:1;min-width:0;display:flex}.simple-profile-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.95rem;font-weight:700;line-height:1.25;overflow:hidden}.simple-profile-role{color:var(--primary);margin-top:2px;font-size:.72rem;font-weight:600}.profile-details-list{border-top:1px solid var(--border-light);flex-direction:column;gap:7px;width:100%;margin:10px 0 14px;padding-top:10px;display:flex}.profile-detail-item{color:var(--text-secondary);align-items:center;gap:8px;font-size:.78rem;line-height:1.35;display:flex}.profile-detail-item.text-muted{color:var(--text-muted);font-style:italic}.profile-detail-icon{color:var(--primary);flex-shrink:0}.profile-detail-text{white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.simple-profile-btn{border:1px solid var(--border-light);width:100%;transition:var(--transition);background:#fff;justify-content:center;padding:8px 12px;font-size:.85rem;font-weight:600}.simple-profile-btn:hover{background:var(--bg-subtle);border-color:var(--primary);color:var(--primary)}.sidebar-section.my-jobs-section{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition);margin-top:12px;padding:16px}.sidebar-section.my-jobs-section:hover{border-color:#cbd5e1}.my-jobs-title-row{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;display:flex}.my-jobs-title{color:var(--text-main);letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.my-jobs-counter{background:var(--primary-subtle);color:var(--primary-hover);border-radius:var(--radius-full);padding:2px 7px;font-size:.72rem;font-weight:700}.my-jobs-list{scrollbar-width:thin;flex-direction:column;gap:8px;max-height:320px;padding-right:2px;display:flex;overflow-y:auto}.my-jobs-mini-item{background:var(--bg-subtle);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);flex-direction:column;gap:4px;padding:9px 11px;display:flex}.my-jobs-mini-item:hover{border-color:var(--primary);box-shadow:var(--shadow-sm);background:#fff;transform:translateY(-1px)}.my-jobs-item-header{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.my-jobs-item-title{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.825rem;font-weight:600;overflow:hidden}.my-jobs-item-budget{color:var(--primary);flex-shrink:0;font-size:.78rem;font-weight:700}.my-jobs-item-meta{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:.72rem;display:flex}.my-jobs-item-location{white-space:nowrap;text-overflow:ellipsis;max-width:110px;overflow:hidden}.status-badge-sm{border-radius:var(--radius-full);padding:1px 6px;font-size:.68rem;font-weight:600}.status-badge-sm.open{color:#15803d;background:#dcfce7}.status-badge-sm.assigned{color:#b45309;background:#fef3c7}.status-badge-sm.completed{color:#475569;background:#f1f5f9}.my-jobs-empty{text-align:center;color:var(--text-muted);padding:14px 6px;font-size:.78rem}.btn-link-action{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.76rem;font-weight:600;text-decoration:underline}.btn-link-action:hover{color:var(--primary-hover)}.sidebar-section-title{color:var(--text-main);border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;font-size:.85rem;font-weight:700;display:flex}.btn-link-reset{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:3px;font-size:.75rem;font-weight:500;display:inline-flex}.btn-link-reset:hover{color:var(--danger)}.user-role-panel{border-color:#cbd5e1}.role-panel-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.role-avatar{border-radius:var(--radius-md);justify-content:center;align-items:center;width:34px;height:34px;display:flex}.role-avatar.client{color:#92400e;background:#fef3c7}.role-avatar.worker{background:var(--primary-subtle);color:var(--primary-hover)}.role-panel-name{color:var(--text-main);font-size:.95rem;font-weight:700}.role-tag{font-size:.72rem;font-weight:600}.role-tag.client{color:#b45309}.role-tag.worker{color:var(--primary)}.role-panel-subtext{color:var(--text-secondary);font-size:.8rem;line-height:1.45}.tech-availability{color:var(--success-text);align-items:center;gap:8px;margin-top:8px;font-size:.8rem;font-weight:500;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.online{background-color:var(--success);box-shadow:0 0 0 2px #16a34a33}.filter-group{flex-direction:column;gap:6px;display:flex}.filter-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;align-items:center;gap:5px;font-size:.75rem;font-weight:600;display:flex}.filter-pill-grid{flex-wrap:wrap;gap:6px;display:flex}.filter-pill{border-radius:var(--radius-sm);background:var(--bg-subtle);border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;transition:var(--transition);align-items:center;gap:4px;padding:5px 10px;font-size:.775rem;font-weight:500;display:inline-flex}.filter-pill:hover{color:var(--text-main);background:#e2e8f0}.filter-pill.active{background:var(--primary);color:var(--text-inverted);border-color:var(--primary);font-weight:600}.pill-counter{background:var(--warning);color:#fff;border-radius:var(--radius-full);padding:1px 5px;font-size:.68rem;font-weight:700}.market-insights{background:#f8fafc}.stats-metric-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.stat-metric-box{background:var(--bg-surface);border:1px solid var(--border-light);border-radius:var(--radius-md);text-align:center;padding:10px}.stat-metric-value{color:var(--text-main);font-size:1.15rem;font-weight:800;display:block}.stat-metric-label{color:var(--text-muted);font-size:.72rem;font-weight:500}.urgent-badge-notice{border-radius:var(--radius-md);color:#92400e;background:#fef3c7;border:1px solid #fde68a;align-items:center;gap:6px;margin-top:10px;padding:8px 10px;font-size:.775rem;line-height:1.35;display:flex}@media (width>=961px){html,body{overflow:hidden}.app-shell{height:100vh;overflow:hidden}.main-container{flex:1;width:100%;max-width:100%;height:calc(100vh - 60px);margin:0;padding:16px 28px 0;overflow:hidden}.app-layout{align-items:stretch;gap:24px;height:100%;display:flex;overflow:hidden}.smart-sidebar{flex-direction:column;flex-shrink:0;align-self:flex-start;width:270px;display:flex;position:static}.sidebar-inner-panel{flex-direction:column;display:flex}.feed-column{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;flex:1;height:100%;padding-bottom:80px;padding-right:14px;overflow-y:auto}.feed-column::-webkit-scrollbar{width:6px}.feed-column::-webkit-scrollbar-track{background:0 0}.feed-column::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:4px}.feed-column::-webkit-scrollbar-thumb:hover{background-color:#94a3b8}}@media (width<=960px){html,body{overflow:auto}.app-shell{min-height:100vh}.header-inner{padding:0 16px}.main-container{width:100%;padding:12px 16px 60px}.app-layout{flex-direction:column;gap:16px}.smart-sidebar{width:100%;height:auto;position:static}.mobile-sidebar-toggle{display:none}.sidebar-inner-panel{flex-direction:column;margin-bottom:12px;display:flex}.feed-column{width:100%;overflow:visible}}@media (width<=640px){.main-container{padding:10px 10px 60px}.header-inner{padding:10px 12px}.brand-subtitle{display:none}.header-actions{gap:5px}.header-actions .btn{padding:5px 8px;font-size:.78rem}.role-badge{padding:2px 6px;font-size:.68rem}.job-card{gap:10px;padding:14px}.job-title{font-size:.98rem}.job-budget{padding:2px 8px;font-size:.98rem}.job-card-footer{flex-direction:column;align-items:flex-start;gap:8px}.job-card-footer>div:last-child{justify-content:flex-end;width:100%}.modal-content{border-radius:var(--radius-md);width:100%;max-height:94vh}.modal-body{gap:12px;padding:16px}.role-selector-cards{grid-template-columns:1fr!important}}@media (width<=480px){.job-card-header{flex-direction:column;gap:8px}.job-meta-row{gap:8px;font-size:.78rem}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-icon{animation:1s linear infinite spin}
