:root{--bg:#f5f6f8;--card:#fff;--text:#1b2430;--muted:#667085;--line:#dfe3e8;--accent:#2557d6;--accent-soft:#eaf0ff;--danger:#b42318;--warning:#9a6700;--success:#087443}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{height:64px;background:#172033;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1200px)/2))}.brand{color:#fff;text-decoration:none;font-weight:750;font-size:20px}.topbar-actions,.actions{display:flex;align-items:center;gap:14px}.topbar form{margin:0}.link-button{border:0;background:none;color:#dbe4ff;text-decoration:underline;cursor:pointer}.container{max-width:1200px;margin:0 auto;padding:32px 20px 64px}.narrow{max-width:720px;margin:0 auto}.auth-card{max-width:440px;margin:8vh auto}.page-heading,.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading h1{margin:6px 0}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:18px;box-shadow:0 2px 8px rgba(20,29,43,.04)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.project-card{color:inherit;text-decoration:none;transition:.15s}.project-card:hover{border-color:#9bb2ee;transform:translateY(-1px)}h1,h2{line-height:1.2}h1{font-size:30px}h2{font-size:20px}.muted,.back,small{color:var(--muted)}.back{display:inline-block;text-decoration:none;margin-bottom:6px}.code{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--accent);text-transform:uppercase}.status{display:inline-block;background:var(--accent-soft);color:#2448a8;padding:4px 9px;border-radius:999px}.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:9px;padding:10px 16px;background:var(--accent);color:#fff;text-decoration:none;font-weight:700;cursor:pointer}.button.secondary{background:#e9edf5;color:#24324b}.button:disabled{cursor:not-allowed;opacity:.45}.stack{display:grid;gap:16px}.stack label{display:grid;gap:6px;font-weight:650}input,select,textarea{width:100%;padding:10px 12px;border:1px solid #bcc4d0;border-radius:8px;background:#fff;font:inherit}input[type=checkbox]{width:auto}.errorlist{margin:4px 0;color:var(--danger)}.message,.notice,.issue{padding:12px 14px;border-radius:9px;margin-bottom:16px}.message.success,.ok{background:#eaf8f1;color:var(--success)}.message.info,.notice{background:#eef4ff;color:#284879}.issue.error{background:#fff0ee;color:var(--danger);border-left:4px solid var(--danger)}.issue.warning{background:#fff8e5;color:var(--warning);border-left:4px solid #e2a300}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:20px 0}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}.metric span,.metric strong{display:block}.metric span{color:var(--muted);font-size:13px}.metric strong{margin-top:6px;font-size:17px}.metric.total{background:#172033;color:#fff}.metric.total span{color:#c8d1e4}.table-scroll,.gantt-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase}td small{display:block}.gantt{display:grid;grid-template-columns:minmax(180px,280px) minmax(720px,1fr);gap:8px 14px;align-items:center;min-width:940px}.gantt-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gantt-track{height:24px;background:repeating-linear-gradient(90deg,#f2f4f7 0,#f2f4f7 9.8%,#e4e8ee 10%);position:relative;border-radius:5px}.gantt-bar{position:absolute;top:3px;height:18px;background:linear-gradient(90deg,#315fda,#6d8deb);border-radius:5px;min-width:3px}.stage summary{display:grid;grid-template-columns:80px minmax(220px,1fr) 190px 140px;gap:12px;align-items:center;cursor:pointer}.stage-body{padding-top:18px}.act{color:var(--accent);font-weight:800}.document-list{list-style:none;padding:0}.document-list li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.member-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.confirm-box ul{list-style:none;padding:0}.confirm-box li{margin-bottom:8px}.confirm-box label{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;font-weight:400}.empty-state{text-align:center;padding:46px}@media(max-width:720px){.container{padding:22px 14px}.page-heading{display:block}.actions{margin-top:14px;flex-wrap:wrap}.stage summary{grid-template-columns:70px 1fr}.stage summary span:nth-last-child(-n+2){grid-column:2}.member-grid{grid-template-columns:1fr}.topbar-actions span{display:none}}

.report-feed{display:grid;gap:16px}.report-card{display:block;color:inherit;text-decoration:none}.report-card:hover{border-color:#9bb2ee}.report-card-top,.report-meta{display:flex;justify-content:space-between;gap:14px;align-items:center}.report-card-top time{color:var(--muted);font-weight:700}.report-card h2{margin:18px 0 8px}.report-preview{color:#394456}.report-meta{justify-content:flex-start;flex-wrap:wrap;color:var(--muted);font-size:13px}.report-status.draft{background:#edf0f4;color:#4f5d73}.report-status.submitted{background:#fff3d6;color:#855d00}.report-status.changes_requested{background:#fff0ee;color:var(--danger)}.report-status.published{background:#e8f7ef;color:var(--success)}.report-date{font-weight:750;color:var(--accent);margin-top:8px}.form-field{display:grid;gap:6px}.form-field>label{font-weight:700}.checkbox-fieldset ul{list-style:none;padding:12px;margin:0;border:1px solid var(--line);border-radius:9px;display:grid;gap:7px}.checkbox-fieldset label{display:flex;grid-template-columns:auto 1fr;gap:8px;font-weight:400}.report-content{padding:30px}.report-facts{display:grid;grid-template-columns:2fr 1fr;gap:16px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:24px}.report-facts span,.report-facts strong{display:block}.report-facts span{color:var(--muted);font-size:13px;margin-bottom:5px}.report-text p{white-space:pre-wrap}.report-section{padding:18px;border-radius:10px;margin-top:22px}.report-section.problem{background:#fff8e5}.report-section.question{background:#eef4ff}.attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.attachment-card{padding:0;overflow:hidden}.attachment-card img{width:100%;height:210px;object-fit:cover;display:block;background:#edf0f4}.document-placeholder{height:160px;display:grid;place-items:center;background:#edf0f4;color:#4f5d73;font-size:18px;font-weight:750}.attachment-info{padding:15px;display:grid;gap:6px;overflow-wrap:anywhere}.attachment-card form{padding:0 15px 15px}.attachment-upload-form{max-width:720px;margin-top:18px}.checkbox-inline{display:flex;align-items:flex-start;gap:9px}.checkbox-inline label{font-weight:650}.link-button.dark{color:#304263;padding:0}.workflow-box form{margin:0}.review-actions{display:grid;grid-template-columns:1fr 2fr;gap:24px;align-items:start}.review-actions textarea{margin:6px 0}.report-heading .report-status{margin-top:28px}@media(max-width:720px){.report-card-top,.report-facts,.review-actions{grid-template-columns:1fr;display:grid}.report-meta{display:grid;gap:4px}.report-content{padding:20px}.attachment-grid{grid-template-columns:1fr}.report-heading .report-status{margin-top:10px}}

.eyebrow{color:var(--accent);font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.client-page-heading,.client-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.client-page-heading h1,.client-hero h1{font-size:38px;margin:8px 0}.client-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.client-project-card{display:block;position:relative;background:linear-gradient(145deg,#fff,#f5f8ff);border:1px solid #d8e1f5;border-radius:18px;padding:26px;color:inherit;text-decoration:none;min-height:230px}.client-project-card:hover{border-color:#8ca8ea;transform:translateY(-2px)}.client-project-card .status{position:absolute;right:20px;top:20px}.client-project-card h2{font-size:24px;margin:14px 0 8px}.client-project-card strong{display:block;margin-top:28px;color:var(--accent)}.client-gantt-details{margin-top:20px}.client-gantt-details summary{cursor:pointer;color:var(--accent);font-weight:750}.client-gantt-details .gantt-scroll{margin-top:18px}.client-document-chip{display:inline-block;padding:10px 12px;border-radius:8px;background:#edf1f7;color:#304263;text-decoration:none;white-space:nowrap}.read-more{display:inline-block;margin-top:14px;color:var(--accent);font-weight:750;text-decoration:none}.client-documents{margin-top:34px}.document-actions{display:flex;align-items:center;gap:14px}.document-actions form{margin:0}.invite-result{padding:20px}.copy-row{display:grid;grid-template-columns:1fr auto;gap:10px}.invite-list{list-style:none;padding:0;margin:0}.invite-list li{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.invite-list small{display:block}.invitation-card{max-width:580px}.invitation-card .helptext{font-size:12px;color:var(--muted)}

.client-nav{display:flex;gap:10px;overflow-x:auto;margin:-8px 0 24px;padding:5px 0 10px}.client-nav a{white-space:nowrap;border:1px solid var(--line);background:#fff;color:#304263;text-decoration:none;padding:10px 14px;border-radius:999px;font-weight:750}.client-nav a.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.client-dashboard-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;margin-bottom:42px;box-shadow:0 8px 30px rgba(20,29,43,.06)}.dashboard-head{display:flex;justify-content:space-between;gap:20px}.dashboard-head h2{font-size:28px;margin:8px 0}.dashboard-total{text-align:right}.dashboard-total span,.dashboard-total strong{display:block}.dashboard-total strong{font-size:21px;margin-top:5px}.current-stage-box{background:linear-gradient(135deg,#172033,#2e426b);color:#fff;border-radius:15px;padding:20px;margin:20px 0}.current-stage-box>span{display:block;color:#bfcbe2;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.current-stage{display:flex;align-items:center;gap:12px;padding:9px 0}.current-stage small{display:block;color:#d9e2f4}.progress-dot{width:13px;height:13px;border-radius:50%;flex:0 0 auto}.stage-roadmap{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin:22px 0}.roadmap-item{display:grid;grid-template-columns:32px 1fr;gap:9px;padding:12px;border:1px solid var(--line);border-left:4px solid #aab2bf;border-radius:10px;background:#fafbfc}.roadmap-item>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#e9edf5;font-weight:800}.roadmap-item strong,.roadmap-item small,.roadmap-item em{display:block}.roadmap-item strong{font-size:13px;line-height:1.25}.roadmap-item em{font-size:12px;font-style:normal;font-weight:750;margin-top:5px}.progress-badge{display:inline-block;margin:5px 0 0;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:750}.progress-form{display:grid;grid-template-columns:220px 1fr auto;gap:12px;align-items:end;padding:14px;background:#f6f8fb;border-radius:10px;margin-bottom:16px}.progress-form label{font-size:12px;font-weight:700}.progress-not_started{--progress-color:#98a2b3}.progress-preparing{--progress-color:#d79800}.progress-in_progress{--progress-color:#2557d6}.progress-awaiting_acceptance{--progress-color:#8b5cf6}.progress-completed{--progress-color:#087443}.progress-paused{--progress-color:#b42318}.gantt-bar.progress-not_started,.gantt-bar.progress-preparing,.gantt-bar.progress-in_progress,.gantt-bar.progress-awaiting_acceptance,.gantt-bar.progress-completed,.gantt-bar.progress-paused{background:var(--progress-color)}.roadmap-item.progress-not_started,.roadmap-item.progress-preparing,.roadmap-item.progress-in_progress,.roadmap-item.progress-awaiting_acceptance,.roadmap-item.progress-completed,.roadmap-item.progress-paused{border-left-color:var(--progress-color)}.progress-badge.progress-not_started,.progress-badge.progress-preparing,.progress-badge.progress-in_progress,.progress-badge.progress-awaiting_acceptance,.progress-badge.progress-completed,.progress-badge.progress-paused{background:color-mix(in srgb,var(--progress-color) 14%,white);color:var(--progress-color)}.progress-dot.progress-not_started,.progress-dot.progress-preparing,.progress-dot.progress-in_progress,.progress-dot.progress-awaiting_acceptance,.progress-dot.progress-completed,.progress-dot.progress-paused{background:var(--progress-color)}
.instagram-feed{max-width:760px;margin:0 auto 42px}.feed-post{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin-bottom:24px;box-shadow:0 5px 20px rgba(20,29,43,.05)}.feed-post header{display:flex;gap:11px;align-items:center;padding:15px}.feed-post header strong,.feed-post header small{display:block}.feed-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft)}.feed-photo{display:block;background:#e9edf5}.feed-photo img{display:block;width:100%;max-height:620px;object-fit:cover}.feed-no-photo{min-height:160px;display:grid;place-items:center;background:linear-gradient(135deg,#edf2ff,#f7f9fc);color:var(--muted)}.feed-body{padding:15px 18px 20px}.feed-body h3{font-size:20px;margin:14px 0 8px}.feed-body h3 a{color:inherit;text-decoration:none}.reaction-panel{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);padding:13px 17px;border-radius:12px;margin:0 0 18px}.reaction-buttons{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.reaction-buttons form{margin:0}.reaction-button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:18px;cursor:pointer}.reaction-button small{margin-left:3px;font-size:11px}.reaction-button.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px rgba(37,87,214,.12)}
.act-card{display:grid;gap:12px}.act-card form{margin:0}.act-response-form{border-top:1px solid var(--line);padding-top:14px}.act-response-form label{display:flex;align-items:center;gap:8px}.act-responses{display:grid;gap:5px;background:#f6f8fb;padding:12px;border-radius:9px}.request-list{display:grid;gap:12px}.request-card{display:flex;align-items:center;justify-content:space-between;color:inherit;text-decoration:none;margin:0}.request-card h2{margin:7px 0}.conversation{display:grid;gap:12px;margin:20px 0}.message-bubble{max-width:86%;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.message-bubble.own{justify-self:end;background:var(--accent-soft);border-color:#cbd9fb}.message-bubble p{margin:6px 0}.message-bubble small{display:block;text-align:right}
@media(max-width:720px){.client-page-heading,.client-hero{display:block}.client-page-heading h1,.client-hero h1{font-size:30px}.copy-row{grid-template-columns:1fr}.document-actions{display:grid;justify-items:end}.client-dashboard-card{padding:18px}.dashboard-head{display:block}.dashboard-total{text-align:left;margin-top:12px}.stage-roadmap{grid-template-columns:1fr}.progress-form{grid-template-columns:1fr}.reaction-panel{display:block}.reaction-panel>span{display:block;margin-bottom:10px}.feed-post{border-radius:12px}.request-card{align-items:flex-start}.client-nav{margin-top:0}}

/* Кабинет заказчика: отдельный мобильный визуальный слой в стиле «Виктор Строит». */
.client-body{--client-lime:#c4e315;--client-dark:#181a1e;--client-soft:#f1f2f3;--client-card:#fff;background:var(--client-soft);color:var(--client-dark);padding-bottom:86px}.client-body .topbar{height:70px;background:#fff;color:var(--client-dark);border-bottom:1px solid #e4e5e7;position:sticky;top:0;z-index:30}.client-body .brand{display:flex;align-items:center;gap:10px;color:var(--client-dark);font-size:12px;line-height:.92;letter-spacing:.08em}.brand-roof{position:relative;width:28px;height:25px;border-bottom:3px solid var(--client-dark)}.brand-roof:before{content:"";position:absolute;width:18px;height:18px;left:5px;top:1px;background:var(--client-lime);transform:rotate(45deg)}.brand-roof:after{content:"";position:absolute;width:13px;height:16px;left:10px;top:8px;background:#fff}.client-body .topbar-actions{color:#676c73;font-size:12px}.client-body .link-button{color:#676c73}.client-body>.container{max-width:760px;padding:18px 12px 118px}.client-dashboard-shell{display:grid;gap:18px}.client-plan-hero{background:var(--client-dark);color:#fff;border-radius:26px;padding:20px 17px 15px;overflow:hidden}.client-plan-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.client-plan-head h1{margin:4px 0;font-size:28px}.client-plan-head p{margin:0;color:#b7bbc0}.client-brand-label{color:var(--client-lime);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.client-progress-number{text-align:right;flex:0 0 auto}.client-progress-number strong,.client-progress-number small{display:block}.client-progress-number strong{font-size:36px;line-height:1;color:var(--client-lime)}.client-progress-number small{margin-top:4px;color:#aaafb5;font-size:9px;line-height:1.2}.repair-road{position:relative;display:flex;align-items:flex-start;gap:18px;overflow-x:auto;padding:24px 10px 18px;margin:0 -4px;scroll-snap-type:x proximity}.repair-road-line{position:absolute;left:28px;right:28px;top:44px;height:7px;border-radius:8px;background:#50545a}.repair-road-stop{position:relative;z-index:1;flex:0 0 64px;display:grid;justify-items:center;gap:5px;scroll-snap-align:center;text-align:center}.repair-road-stop>span{width:46px;height:46px;border:4px solid var(--client-dark);border-radius:50%;overflow:hidden;background:#565b61;box-shadow:0 0 0 2px #565b61}.repair-road-stop>span img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);opacity:.55}.repair-road-stop.progress-completed>span{box-shadow:0 0 0 3px var(--client-lime)}.repair-road-stop.progress-completed>span img,.repair-road-stop.current>span img{filter:none;opacity:1}.repair-road-stop.current>span{width:54px;height:54px;margin-top:-4px;box-shadow:0 0 0 5px rgba(196,227,21,.35)}.repair-road-stop small{color:#9ca1a7;font-size:9px}.repair-road-stop strong{width:100px;color:var(--client-lime);font-size:9px;line-height:1.15}.client-plan-caption{display:flex;justify-content:space-between;color:#8f949a;font-size:9px;padding:0 6px}.client-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 4px 10px}.client-section-title h2{font-size:22px;margin:0}.client-section-title span{color:#8a8f96;font-size:10px;text-align:right}.client-active-scroll{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 1px 5px}.client-active-stage{flex:0 0 min(92%,620px);scroll-snap-align:start;display:grid;grid-template-columns:145px 1fr;background:#fff;border-radius:23px;overflow:hidden}.client-active-stage>img{width:100%;height:100%;min-height:180px;object-fit:cover}.client-stage-content{padding:15px}.client-stage-content>small{font-size:9px}.client-stage-content h3{font-size:16px;line-height:1.2;margin:5px 0}.client-stage-content p{font-size:11px;color:#62676e;margin:5px 0}.client-four-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:15px}.client-four-steps span{position:relative;padding-top:13px;color:#92969c;text-align:center;font-size:8px;line-height:1.15}.client-four-steps span:before{content:"";position:absolute;left:0;right:0;top:0;height:6px;border-radius:7px;background:#e3e5e7}.client-four-steps span.passed:before{background:var(--client-lime)}.client-four-steps span.active{color:var(--client-dark);font-weight:800}.client-feed{max-width:680px;margin:4px auto 0}.client-feed-post{background:#fff;border-radius:24px;overflow:hidden;margin-bottom:16px;box-shadow:0 3px 16px rgba(18,21,25,.05)}.client-feed-post header{display:flex;align-items:center;gap:10px;padding:12px}.client-feed-post header>div:nth-child(2){min-width:0;flex:1}.client-feed-post header strong,.client-feed-post header small{display:block}.client-feed-post header strong{font-size:13px}.client-feed-post header small{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-feed-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--client-dark);color:var(--client-lime);font-size:11px;font-weight:850;border:3px solid var(--client-lime)}.client-feed-status{padding:6px 9px;border-radius:999px;background:#eef4c8;color:#363b0f;font-size:8px}.client-feed-status.neutral{background:#eef0f1;color:#5f646a}.client-carousel{position:relative;height:min(78vw,560px);min-height:330px;background:#dadcdd;overflow:hidden}.client-carousel-slide{display:none;width:100%;height:100%}.client-carousel-slide.active{display:block}.client-carousel-slide img{display:block;width:100%;height:100%;object-fit:cover}.client-carousel-slide.generated img{object-position:center}.client-carousel-count{position:absolute;right:11px;top:11px;padding:5px 8px;border-radius:999px;background:rgba(24,26,30,.78);color:#fff;font-size:9px}.carousel-prev,.carousel-next{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--client-dark);font-size:25px;cursor:pointer}.carousel-prev{left:9px}.carousel-next{right:9px}.client-carousel-dots{position:absolute;left:50%;bottom:11px;transform:translateX(-50%);display:flex;gap:5px}.client-carousel-dots i{display:block;width:7px;height:7px;border-radius:7px;background:rgba(255,255,255,.72)}.client-carousel-dots i.active{width:18px;background:var(--client-lime)}.client-feed-body{padding:13px 14px 17px}.client-feed-body h3{font-size:18px;margin:12px 0 5px}.client-feed-body h3 a{color:inherit;text-decoration:none}.client-feed-body p{margin:5px 0;color:#555a60}.client-feed-body .reaction-button{background:#f0f1f2;border:0}.client-feed-body .reaction-button.selected{background:var(--client-lime);box-shadow:none}.client-feed-body .read-more{color:#5b650a}.client-empty-feed{padding:20px;border-radius:18px;background:#fff;color:#696e75;margin-bottom:14px}.stage-story .client-carousel{height:min(72vw,500px)}.client-documents-panel{background:#fff;border-radius:23px;padding:18px;margin-top:2px}.client-file-row{display:grid;grid-template-columns:44px 1fr 24px;gap:10px;align-items:center;color:inherit;text-decoration:none;padding:12px 0;border-bottom:1px solid #eceeef}.client-file-row:last-child{border-bottom:0}.client-file-row>span{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#eef4c8}.client-file-row strong,.client-file-row small{display:block}.client-file-row small{overflow-wrap:anywhere}.client-bottom-nav{position:fixed;z-index:50;left:50%;bottom:10px;transform:translateX(-50%);width:min(calc(100% - 20px),720px);display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:7px;background:rgba(24,26,30,.96);border-radius:25px;box-shadow:0 9px 28px rgba(0,0,0,.26);backdrop-filter:blur(14px)}.client-bottom-nav a{height:58px;min-width:0;display:grid;place-items:center;align-content:center;gap:2px;border-radius:18px;color:#c5c8cc;text-decoration:none}.client-bottom-nav a.active,.client-bottom-nav a.nav-road{background:var(--client-lime);color:var(--client-dark)}.client-bottom-nav a span{font-size:21px;line-height:1}.client-bottom-nav a small{color:inherit;font-size:8px}.finance-heading h1{font-size:34px;margin:6px 0}.finance-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.finance-summary>div{background:#fff;border-radius:21px;padding:17px}.finance-summary span,.finance-summary strong{display:block}.finance-summary span{color:#7a7f86;font-size:11px}.finance-summary strong{font-size:19px;margin-top:5px}.finance-chart-card{background:var(--client-dark);color:#fff;border-radius:24px;padding:20px;margin-bottom:22px}.finance-chart-card .eyebrow{color:var(--client-lime)}.finance-chart-card .section-heading{margin-bottom:14px}.finance-chart{display:grid;gap:11px}.finance-chart-row{display:grid;grid-template-columns:54px 1fr;gap:9px;align-items:center}.finance-chart-row time{color:#aeb2b7;font-size:9px}.finance-chart-row>div{position:relative;height:34px}.finance-plan-bar,.finance-fact-bar{position:absolute;left:0;border-radius:0 8px 8px 0;min-width:2px}.finance-plan-bar{top:0;height:10px;background:#686d73}.finance-fact-bar{bottom:0;height:14px;background:var(--client-lime)}.finance-chart-row em{position:absolute;left:calc(100% + 6px);font-style:normal;font-size:8px;white-space:nowrap;color:#d8dadd}.finance-legend{display:flex;gap:16px;margin-top:14px;color:#b8bcc1;font-size:10px}.finance-legend i{display:inline-block;width:13px;height:5px;margin-right:5px;border-radius:5px}.finance-legend .plan{background:#686d73}.finance-legend .fact{background:var(--client-lime)}.finance-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.finance-entry{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;background:#fff;border-radius:17px;padding:14px;margin-bottom:9px}.finance-entry strong,.finance-entry small{display:block}.finance-entry small{margin-top:4px}.finance-entry b{white-space:nowrap}.finance-entry.received b{color:#617000}.finance-manage{margin-top:24px}.finance-manage details summary{cursor:pointer;font-weight:800}.finance-manage details form{margin-top:18px}
@media(max-width:620px){.client-body .topbar-actions>span{display:none}.client-body>.container{padding-inline:9px}.client-plan-head h1{font-size:24px}.client-active-stage{grid-template-columns:112px 1fr}.client-active-stage>img{min-height:190px}.client-stage-content{padding:13px 10px}.client-four-steps span{font-size:7px}.client-carousel{min-height:300px}.finance-columns{grid-template-columns:1fr}.finance-entry{align-items:center}.client-bottom-nav{bottom:6px}.client-bottom-nav a{height:55px}}
.client-plan-money{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #34383e}.client-plan-money span{color:#aeb2b7;font-size:10px}.client-plan-money strong{color:var(--client-lime);font-size:14px}
.finance-chart-row em{left:auto;right:6px}.finance-fact-bar em{color:#24280a}.finance-plan-bar em{color:#fff}
.repair-road-hint{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:14px 5px -8px;color:#aeb2b7;font-size:10px;font-weight:500}.repair-road-hint i{color:var(--client-lime);font-size:18px;font-style:normal;line-height:1;animation:road-hint-arrow 1.6s ease-in-out infinite}@keyframes road-hint-arrow{0%,100%{transform:translateX(0);opacity:.65}50%{transform:translateX(5px);opacity:1}}@media(prefers-reduced-motion:reduce){.repair-road-hint i{animation:none}}

/* Общая дизайн-система: рабочие кабинеты продолжают визуальный язык кабинета заказчика. */
.app-body{--brand-lime:#c4e315;--brand-lime-dark:#9db70e;--brand-dark:#181a1e;--brand-soft:#f1f2f3;--brand-card:#fff;--brand-border:#e1e3e5;--bg:var(--brand-soft);--card:var(--brand-card);--text:var(--brand-dark);--muted:#747980;--line:var(--brand-border);--accent:var(--brand-lime-dark);--accent-soft:#f1f7cf;background:var(--brand-soft);color:var(--brand-dark)}
.app-body .topbar{height:76px;background:#fff;color:var(--brand-dark);border-bottom:1px solid var(--brand-border);box-shadow:0 4px 18px rgba(24,26,30,.04);padding-inline:max(20px,calc((100vw - 1200px)/2));position:sticky;top:0;z-index:40}
.app-body .brand{display:flex;align-items:center;gap:10px;color:var(--brand-dark);font-size:12px;line-height:.92;letter-spacing:.07em;text-decoration:none}
.app-body .brand-name{font-weight:850}
.app-body .brand>small{margin-left:8px;padding-left:16px;border-left:1px solid #d8dadd;color:#858a90;font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1.25}
.app-body .brand-roof{flex:0 0 28px}
.app-body .topbar-actions{gap:10px;color:#555a60;font-size:12px}
.app-body .topbar-actions>span{padding:8px 12px;border-radius:999px;background:var(--brand-soft)}
.app-body .topbar-actions .link-button{padding:8px 13px;border-radius:999px;background:var(--brand-dark);color:#fff;text-decoration:none;font-weight:750}
.app-body>.container{width:100%;max-width:1240px;padding:32px 20px 80px}
.app-body h1,.app-body h2,.app-body h3{color:var(--brand-dark);letter-spacing:-.025em}
.app-body h1{font-size:clamp(28px,4vw,42px);font-weight:850;margin-block:8px 12px}
.app-body h2{font-weight:800}
.app-body .page-heading{align-items:center;margin-bottom:26px}
.app-body .page-heading p{color:#686d73;margin-block:6px}
.app-body .back{position:relative;margin-bottom:8px;padding-left:18px;color:#666c72;font-size:12px;font-weight:700;text-decoration:none}
.app-body .back:before{content:"←";position:absolute;left:0;color:var(--brand-lime-dark)}
.app-body .code,.app-body .eyebrow{color:var(--brand-lime-dark);font-size:10px;font-weight:850;letter-spacing:.14em}
.app-body .card{border:1px solid var(--brand-border);border-radius:22px;padding:24px;box-shadow:0 5px 22px rgba(24,26,30,.045)}
.app-body .project-card{position:relative;min-height:190px;overflow:hidden;background:linear-gradient(145deg,#fff 58%,#f3f6e2)}
.app-body .project-card:after{content:"↗";position:absolute;right:19px;bottom:15px;color:var(--brand-lime-dark);font-size:24px}
.app-body .project-card:hover{border-color:var(--brand-lime-dark);box-shadow:0 9px 25px rgba(88,102,8,.11);transform:translateY(-2px)}
.app-body .project-card h2{font-size:24px;margin:18px 0 8px}
.app-body .status{background:#eef3d0;color:#525f08;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:750}
.app-body .button{min-height:44px;border-radius:999px;padding:10px 19px;background:var(--brand-lime);color:var(--brand-dark);font-weight:800;box-shadow:none;transition:transform .15s,background .15s}
.app-body .button:hover{background:#d0ed23;transform:translateY(-1px)}
.app-body .button.secondary{background:var(--brand-dark);color:#fff}
.app-body .button.secondary:hover{background:#303339}
.app-body .actions{gap:8px}
.app-body input,.app-body select,.app-body textarea{border:1px solid #cfd2d5;border-radius:13px;padding:11px 13px;background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}
.app-body input:focus,.app-body select:focus,.app-body textarea:focus{border-color:var(--brand-lime-dark);box-shadow:0 0 0 3px rgba(196,227,21,.23)}
.app-body input[type=checkbox],.app-body input[type=radio]{accent-color:var(--brand-lime-dark);box-shadow:none}
.app-body .stack{gap:17px}
.app-body .stack>p{margin:0}.app-body .stack>p>label{display:block;margin-bottom:6px;font-size:12px;font-weight:750}
.app-body .notice{background:#f2f5df;color:#505910;border:0;border-left:4px solid var(--brand-lime);border-radius:13px}
.app-body .message.success,.app-body .ok{background:#edf6d0;color:#4d5a08}
.app-body .issue.warning{background:#fff8df;border-left-color:#dfb936}
.app-body .summary-grid{gap:10px}
.app-body .metric{border:0;border-radius:18px;padding:18px;background:#fff;box-shadow:0 3px 14px rgba(24,26,30,.04)}
.app-body .metric span{font-size:11px}.app-body .metric strong{font-size:18px}
.app-body .metric.total{background:var(--brand-dark)}
.app-body .metric.total strong{color:var(--brand-lime)}
.app-body .gantt-track{height:26px;background:repeating-linear-gradient(90deg,#f0f1f2 0,#f0f1f2 9.8%,#dfe1e3 10%);border-radius:999px;overflow:hidden}
.app-body .gantt-bar{top:4px;height:18px;border-radius:999px}
.app-body table{background:#fff;border-radius:16px;overflow:hidden}
.app-body th{background:#f5f6f1;color:#73786e;font-size:10px;letter-spacing:.06em}
.app-body th,.app-body td{padding:12px;border-bottom-color:#eceeed}
.app-body .stage summary{padding:2px}.app-body .stage[open]{border-color:#ccd89a}
.app-body .progress-form{border-radius:16px;background:#f4f5f2}
.app-body .document-list li{align-items:center;border-bottom-color:#eceeed}
.app-body .empty-state{background:linear-gradient(145deg,#fff,#f5f7e8)}
.app-body .auth-card{max-width:480px;margin:7vh auto;padding:30px}
.app-body .auth-card:before{content:"ВИКТОР СТРОИТ";display:block;margin-bottom:18px;color:var(--brand-lime-dark);font-size:10px;font-weight:850;letter-spacing:.14em}
.app-body .report-card,.app-body .act-card,.app-body .request-card{transition:transform .15s,border-color .15s}
.app-body .report-card:hover,.app-body .request-card:hover{border-color:var(--brand-lime-dark);transform:translateY(-2px)}
.app-body .report-status.published{background:#edf6d0;color:#4d5a08}
.app-body .reaction-button.selected{border-color:var(--brand-lime-dark);background:#eef4c7}
.app-body .link-button.dark{color:#596509;font-weight:750}
.app-body .copy-row .button{border-radius:13px}
.app-body .client-bottom-nav .active{background:var(--brand-lime);color:var(--brand-dark)}
@media(max-width:760px){.app-body .topbar{height:68px;padding-inline:13px}.app-body .brand>small{display:none}.app-body>.container{padding:22px 11px 92px}.app-body .topbar-actions>span{display:none}.app-body .page-heading{display:block}.app-body .actions{margin-top:15px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.app-body .actions .button{flex:0 0 auto}.app-body .card{border-radius:18px;padding:18px}.app-body .member-grid{grid-template-columns:1fr}.app-body .document-list li{align-items:flex-start;gap:12px}.app-body .document-actions{display:grid;justify-items:end}.app-body .auth-card{margin:3vh auto}.app-body .stage summary{grid-template-columns:68px 1fr}.app-body h1{font-size:30px}}

/* Явное отображение текущего этапа и его фактической стадии. */
.repair-road-stop em{max-width:78px;padding:3px 6px;border-radius:999px;background:#34383e;color:#aeb2b7;font-size:7px;font-style:normal;line-height:1.15;white-space:nowrap}
.repair-road-stop.current em{background:var(--client-lime);color:var(--client-dark);font-weight:850}
.repair-road-stop.current>span{animation:current-stage-glow 1.8s ease-in-out infinite}
.road-complete-check{position:absolute;z-index:3;top:-5px;right:4px;width:22px;height:22px;display:grid;place-items:center;border:3px solid var(--client-dark);border-radius:50%;background:var(--client-lime);color:var(--client-dark);font-size:12px;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.32)}
.repair-road-stop.progress-completed em{background:#eef4c8;color:#4d5909;font-weight:850}
@keyframes current-stage-glow{0%,100%{box-shadow:0 0 0 4px rgba(196,227,21,.30),0 0 12px rgba(196,227,21,.2)}50%{box-shadow:0 0 0 8px rgba(196,227,21,.18),0 0 24px rgba(196,227,21,.72)}}
.client-stage-now{display:inline-flex;align-items:center;gap:6px;margin-bottom:7px;padding:5px 9px;border-radius:999px;background:#eef4c8;color:#465208;font-size:9px;font-weight:850}
.client-stage-now i{width:7px;height:7px;border-radius:50%;background:var(--client-lime-dark,#9db70e);box-shadow:0 0 0 3px rgba(196,227,21,.25)}
.client-stage-empty{display:flex;align-items:center;gap:14px;padding:17px;border:1px dashed #c9cdcf;border-radius:20px;background:#fff}
.client-stage-empty>span{flex:0 0 46px;width:46px;height:46px;display:grid;place-items:center;border-radius:50%;background:#eef0f1;color:#80858b;font-size:25px}
.client-stage-empty strong{display:block;font-size:14px}.client-stage-empty p{margin:4px 0 0;color:#747980;font-size:10px;line-height:1.4}
@media(prefers-reduced-motion:reduce){.repair-road-stop.current>span{animation:none}}

/* Единый фирменный логотип по актуальному оригиналу. */
.app-body .brand-logo{display:block;width:136px;height:auto;flex:0 0 auto}
.app-body .brand-roof,.app-body .brand-name{display:none}
.app-body .auth-card:before{content:none}
@media(max-width:620px){.app-body .brand-logo{width:118px}.app-body .brand>small{display:none}}

/* Кабинет прораба и независимый план/факт. */
.foreman-shell{display:grid;gap:28px;max-width:900px;margin:auto}.foreman-hero{padding:25px;border-radius:26px;background:var(--brand-dark);color:#fff}.foreman-hero h1{color:#fff;margin-bottom:4px}.foreman-hero p{color:#b9bdc2}.foreman-hero .back{color:#c8ccd0}.foreman-period{display:inline-block;margin-top:12px;padding:8px 12px;border-radius:999px;background:#30343a;color:var(--brand-lime);font-size:12px;font-weight:800}.foreman-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.foreman-actions a{min-height:130px;display:flex;flex-direction:column;justify-content:space-between;padding:20px;border-radius:22px;background:#fff;color:var(--brand-dark);text-decoration:none;font-weight:850;box-shadow:0 5px 18px rgba(24,26,30,.06)}.foreman-actions b{width:46px;height:46px;display:grid;place-items:center;border-radius:15px;background:var(--brand-lime);font-size:23px}.foreman-task-list,.foreman-publications{display:grid;gap:9px}.foreman-task{display:flex;align-items:flex-start;gap:12px;padding:15px;border-radius:17px;background:#fff}.foreman-task>span,.task-check{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:0;border-radius:50%;background:#eef0f1;font-size:21px}.foreman-task.done>span,.foreman-task.done .task-check{background:var(--brand-lime)}.foreman-task small,.client-task-list small{display:block;width:max-content;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eef4c8;color:#535f0b;font-size:9px}.foreman-publications{grid-template-columns:repeat(2,1fr)}.foreman-publications article a{display:block;margin-top:10px}.form-narrow{max-width:650px;margin:auto}.form-narrow textarea,.form-narrow input[type=file]{width:100%}.mobile-form-actions,.quick-actions{display:flex;gap:10px;flex-wrap:wrap}.task-preview{padding:12px;border-radius:13px;background:#f3f4f1}.plan-period-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.period-card{color:inherit;text-decoration:none}.detailed .foreman-task{align-items:flex-start}.detailed .foreman-task>div{flex:1}.task-check{cursor:pointer}.task-photos{display:flex;gap:7px;overflow-x:auto;margin-top:9px}.task-photos img{display:block;width:76px;height:76px;border-radius:12px;object-fit:cover}.client-work-plan{margin-top:2px}.client-work-plan-card,.client-plan-archive{background:#fff;border-radius:23px;padding:17px}.client-work-plan-card header{display:flex;justify-content:space-between;margin-bottom:9px}.client-work-plan-card header small{color:#888d92}.client-task-list article{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid #eceeef}.client-task-list article:last-child{border:0}.client-task-list article>b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#eef0f1}.client-task-list article.done>b{background:var(--client-lime)}.client-plan-archive{margin-top:10px}.client-plan-archive summary{cursor:pointer;font-weight:800}
@media(max-width:620px){.foreman-actions{gap:7px}.foreman-actions a{min-height:118px;padding:14px;font-size:13px}.foreman-publications,.plan-period-grid{grid-template-columns:1fr}.mobile-form-actions{position:sticky;bottom:8px;padding:8px;border-radius:20px;background:rgba(255,255,255,.94)}.mobile-form-actions .button{flex:1;padding-inline:10px}.quick-actions .button{width:100%;text-align:center}.foreman-hero{padding:20px 17px}}
.foreman-task.canceled,.client-task-list article.canceled{opacity:.72}.foreman-task.canceled strong,.client-task-list article.canceled span{text-decoration:line-through}.cancel-task{margin-top:12px}.cancel-task form{display:flex;gap:8px;align-items:end}.cancel-task label{flex:1}.proposal-items{display:grid;gap:12px}.proposal-item{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.proposal-item p{margin:0}.proposal-item p:nth-child(3){grid-column:1/-1}.overview-filter{margin-bottom:22px}.overview-filter label{display:flex;gap:12px;align-items:center}.attention-panel{margin-bottom:26px}.attention-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.attention-grid a{display:grid;gap:8px;color:inherit;text-decoration:none}.overview-projects{display:grid;gap:13px}.overview-project summary{display:flex;justify-content:space-between;gap:18px;cursor:pointer}.overview-project summary h2{margin:8px 0}.overview-project summary>div:last-child{display:grid;gap:5px;justify-items:end}.overview-project-body{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding-top:20px;border-top:1px solid var(--line)}.overview-stage{display:flex;justify-content:space-between;gap:10px;padding:6px 0}.overview-project-body a{display:block;margin-bottom:7px}.client-estimate .period-card{display:grid;gap:7px}
@media(max-width:760px){.foreman-actions{grid-template-columns:repeat(2,1fr)}.proposal-item,.attention-grid,.overview-project-body{grid-template-columns:1fr}.overview-project summary{display:block}.overview-project summary>div:last-child{justify-items:start}.cancel-task form{display:grid}.overview-filter label{display:grid}}

/* Клиентский кабинет: тёмный hero и локальная горизонтальная прокрутка без расширения страницы. */
.app-body .client-plan-hero h1{color:#fff}
.client-dashboard-shell,.client-active-section,.client-active-scroll,.client-active-stage,.client-stage-content{min-width:0}
.client-active-scroll{max-width:100%}
.client-active-stage{width:min(92%,620px)}
.client-stage-content{overflow:hidden}
.client-four-steps span{min-width:0;overflow-wrap:anywhere}
