:root {
  --bg:#f4f5f7; --surface:#fff; --border:#e2e5ea; --text:#1a1d23; --muted:#6b7280;
  --accent:#2563eb; --accent-soft:#eff6ff; --green:#059669; --green-soft:#ecfdf5;
  --amber:#d97706; --amber-soft:#fffbeb; --red:#dc2626; --red-soft:#fef2f2;
  --radius:10px; --shadow:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.04);
  --font:'Segoe UI',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0} body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}
a{color:var(--accent);text-decoration:none}.small-muted,.muted-line{color:var(--muted);font-size:.86rem}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:10px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow);flex-wrap:wrap}.logo{font-weight:700;font-size:1.05rem;letter-spacing:-.02em}.logo span{color:var(--accent)}.badge-free{font-size:.7rem;background:var(--green-soft);color:var(--green);padding:3px 8px;border-radius:99px;font-weight:600;margin-left:8px}nav.tabs{display:flex;gap:4px;flex-wrap:wrap}nav.tabs button{background:none;border:none;padding:8px 10px;font-size:.82rem;color:var(--muted);cursor:pointer;border-radius:8px;font-family:inherit}nav.tabs button:hover{background:var(--bg);color:var(--text)}nav.tabs button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.header-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.main{max-width:1340px;margin:0 auto;padding:24px}.view{display:none}.view.active{display:block}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.kpi,.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}.kpi{padding:18px 20px}.kpi .label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.kpi .value{font-size:1.75rem;font-weight:700;margin-top:4px}.card-header,.section-toolbar{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.section-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.card-header h2,.section-toolbar h2{font-size:.98rem;font-weight:600}.card-body{padding:16px 18px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.86rem}th{text-align:left;padding:10px 12px;background:var(--bg);color:var(--muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}td{padding:11px 12px;border-top:1px solid var(--border);vertical-align:middle}tr:hover td{background:#fafbfc}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:.84rem;font-weight:500;border:none;cursor:pointer;font-family:inherit;transition:.15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{background:var(--border)}.btn-sm{padding:5px 10px;font-size:.78rem}.status{display:inline-block;padding:3px 9px;border-radius:99px;font-size:.72rem;font-weight:600;background:#f3f4f6;color:#374151}.status-new,.status-not-started,.status-pending{background:#f3f4f6;color:#374151}.status-consultation,.status-progress,.status-in-progress{background:var(--accent-soft);color:var(--accent)}.status-proposal{background:#f5f3ff;color:#7c3aed}.status-negotiation,.status-at-risk,.status-failed{background:var(--amber-soft);color:var(--amber)}.status-won,.status-on-track,.status-done,.status-approved,.status-sent{background:var(--green-soft);color:var(--green)}.status-lost,.status-delayed,.status-blocked,.status-disabled{background:var(--red-soft);color:var(--red)}.progress-bar{height:6px;background:var(--border);border-radius:99px;overflow:hidden;min-width:80px}.progress-fill{height:100%;background:var(--accent);border-radius:99px;transition:width .3s}.progress-bar.inline{width:100px;display:inline-block;vertical-align:middle}.pipeline-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.pipeline-col{min-width:240px;flex:1;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border);padding:10px}.pipeline-col h3{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:10px;padding:0 4px}.pipeline-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:8px;cursor:pointer;transition:.15s}.pipeline-card:hover{border-color:var(--accent);box-shadow:var(--shadow)}.pipeline-card .name{font-weight:600;font-size:.88rem}.pipeline-card .meta{font-size:.76rem;color:var(--muted);margin-top:4px}.phase-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.phase-tab{padding:6px 12px;border-radius:99px;font-size:.78rem;border:1px solid var(--border);background:var(--surface);cursor:pointer}.phase-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:200;align-items:center;justify-content:center;padding:20px}.modal-overlay.open{display:flex}.modal{background:var(--surface);border-radius:12px;width:100%;max-width:620px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.2)}.modal-head{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.modal-head h3{font-size:1rem}.modal-body{padding:20px}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:.8rem;font-weight:500;margin-bottom:5px;color:var(--muted)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:9px 11px;border:1px solid var(--border);border-radius:8px;font-size:.88rem;font-family:inherit}.form-group textarea{min-height:72px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.activity-item{padding:8px 0;border-bottom:1px solid var(--border);font-size:.82rem}.activity-item .time,.time{color:var(--muted);font-size:.74rem}.alert{padding:10px 12px;border-radius:8px;margin:12px 0;font-size:.86rem}.alert.error{background:var(--red-soft);color:var(--red);border:1px solid #fecaca}.alert.warn{background:var(--amber-soft);color:var(--amber);border:1px solid #fde68a}.client-link{margin-top:12px;font-size:.82rem;color:var(--muted);word-break:break-word}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:10px 14px;border-radius:8px;opacity:0;transform:translateY(10px);transition:.2s;z-index:300;font-size:.86rem}.toast.show{opacity:1;transform:translateY(0)}.empty{text-align:center;padding:34px;color:var(--muted);font-size:.9rem}.login-page{display:grid;place-items:center;min-height:100vh;background:linear-gradient(180deg,#f4f5f7,#e9edf3)}.login-card{width:min(430px,92vw);background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.10);padding:28px}.logo.big{font-size:1.45rem;margin-bottom:4px}.login-muted{color:var(--muted);margin-bottom:18px}.login-help{color:var(--muted);font-size:.78rem;margin-top:14px}code{background:var(--bg);border:1px solid var(--border);padding:1px 5px;border-radius:5px}.client-portal{max-width:760px;margin:0 auto;padding:32px 20px}.client-portal .hero{text-align:center;margin-bottom:32px}.client-portal h1{font-size:1.5rem}.client-portal .phase-step{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.client-portal .phase-step span{padding:6px 12px;border-radius:99px;font-size:.78rem;background:var(--bg);border:1px solid var(--border)}.client-portal .phase-step span.current{background:var(--accent);color:#fff;border-color:var(--accent)}.client-portal .phase-step span.done{background:var(--green-soft);color:var(--green)}.big-progress{font-size:2.5rem;font-weight:700;color:var(--accent)}.project-stats{display:flex;gap:24px;flex-wrap:wrap;font-size:.86rem}.gantt-row{display:grid;grid-template-columns:240px 1fr 90px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.gantt-track{height:14px;background:var(--bg);border:1px solid var(--border);border-radius:99px;overflow:hidden}.gantt-bar{height:100%;background:var(--accent);border-radius:99px}.file-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);align-items:center}.file-row .meta{font-size:.76rem;color:var(--muted)}
@media (max-width:900px){.grid-two{grid-template-columns:1fr}.header-actions{justify-content:center}.gantt-row{grid-template-columns:1fr}.app-header{justify-content:center}.form-row{grid-template-columns:1fr}}

.workspace-tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 18px;padding:5px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.workspace-tabs button{border:0;background:transparent;padding:9px 14px;border-radius:8px;color:var(--muted);cursor:pointer;white-space:nowrap}.workspace-tabs button.active{background:var(--accent);color:#fff;font-weight:600}.workspace-panel{display:none}.workspace-panel.active{display:block}.project-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.detail-grid div{display:flex;flex-direction:column;gap:3px}.detail-grid span{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.detail-grid strong{font-size:.9rem}.health-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border)}.prewrap{white-space:pre-wrap}.note-card{padding:14px 0;border-bottom:1px solid var(--border)}.note-card .prewrap{margin-top:8px}.priority{font-size:.72rem;font-weight:700}.priority-high,.priority-critical{color:var(--red)}.priority-medium{color:var(--amber)}.priority-low{color:var(--green)}.text-danger{color:var(--red)}.small-value{font-size:1.25rem!important}@media(max-width:700px){.detail-grid{grid-template-columns:1fr}.project-hero-top{flex-direction:column}.main{padding:14px}.workspace-tabs{position:sticky;top:72px;z-index:50}}
