:root{--text:13px;--caption:12px;--section:16px;--title:28px;--bg:#eff1f4;--card:#fff;--ink:#1a1d21;--muted:#69717c;--line:#dee2e8;--red:#d6232e;--chip:#f2f3f6;--shadow:0 2px 12px #18203008;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-size:var(--text);line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,.button{border:0;border-radius:9px;background:var(--ink);color:#fff;padding:10px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}button:hover,.button:hover{filter:brightness(.92)}button:disabled{opacity:.45;cursor:default}.secondary{background:var(--chip);color:var(--ink)}.quiet{background:transparent;color:var(--muted);padding:6px 10px}.danger{color:var(--red)}.sidebar{position:fixed;inset:0 auto auto 0;height:100vh;height:100dvh;overflow-y:auto;overscroll-behavior:contain;width:216px;background:var(--card);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:27px 18px;z-index:30;gap:5px}.logo{font-size:20px;letter-spacing:-.6px;font-weight:700;margin:0 8px 30px;display:block}.logo i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--red);margin-left:5px}.studio-name{font-size:var(--caption);color:var(--muted);font-weight:400;letter-spacing:0}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:11px 14px;border-radius:8px;color:var(--muted)}.sidebar nav a.active{background:var(--chip);color:var(--ink);font-weight:500}.sidebar nav a.active:before{content:"";display:inline-block;width:5px;height:5px;background:var(--red);border-radius:50%;margin-right:9px}.sidebar-bottom{margin-top:auto;padding-top:30px}.plan-card{padding:14px 12px;background:var(--chip);border-radius:10px}.plan-card strong{display:block;font-size:14px}.plan-card a{display:block;margin-top:8px;color:var(--red)}.workspace{margin-left:216px;padding:35px 40px 70px;max-width:1600px;min-height:100vh;min-height:100dvh;min-width:0}header{display:flex;align-items:center;gap:18px;margin-bottom:24px}header h1{font-size:var(--title);line-height:1.15;letter-spacing:-.9px;margin:0;font-weight:500}header .heading{flex:1}.eyebrow{font-size:var(--caption);color:var(--muted);margin:0 0 7px}.muted{color:var(--muted)}.small{font-size:var(--caption)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.row-between{justify-content:space-between}.stack{display:grid;gap:12px}.banner{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px 20px;margin-bottom:14px}.banner .body{flex:1;min-width:180px}.banner strong{font-size:14px;font-weight:500}.banner p{margin:3px 0 0;font-size:var(--caption);color:var(--muted)}.banner-icon{background:var(--chip);padding:10px;border-radius:10px;color:var(--red);font-size:20px}.ref-link{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--caption);color:var(--muted)}.filters{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:26px 0 20px}.search{flex:1;min-width:200px;max-width:460px}.segments{display:flex;gap:3px;background:var(--card);border:1px solid var(--line);padding:4px;border-radius:25px}.segments button{background:transparent;color:var(--muted);padding:7px 16px;border-radius:20px}.segments .selected{background:var(--ink);color:#fff}input,select,textarea{border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);padding:10px 12px;width:100%;min-width:0}input[type=checkbox]{width:auto;accent-color:var(--red)}textarea{min-height:110px;resize:vertical}label{display:block;color:var(--muted);font-size:var(--caption);margin:0 0 5px}.field{margin:0 0 14px}form .grid-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px}.project-card{background:var(--card);border:1px solid var(--line);border-radius:15px;overflow:hidden;box-shadow:var(--shadow)}.project-card .cover{height:145px;background:linear-gradient(135deg,#d9dde4,#9da6b2);position:relative;display:block}.project-card img{width:100%;height:100%;object-fit:cover}.cover .type{position:absolute;bottom:14px;left:18px;background:#fffd;border-radius:20px;padding:4px 11px;font-size:var(--caption)}.project-card .body{padding:18px}.project-card h2{font-size:var(--section);margin:0 0 2px;font-weight:500;letter-spacing:-.4px}.progress{height:5px;background:var(--chip);border-radius:5px;margin:9px 0 14px;overflow:hidden}.progress span{display:block;height:100%;background:var(--red)}.chip{background:var(--chip);border-radius:20px;padding:4px 10px;font-size:var(--caption);display:inline-flex;gap:5px;align-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px;box-shadow:var(--shadow)}h2{font-size:var(--section);letter-spacing:-.3px;margin:0 0 16px;font-weight:500}h3{font-size:var(--section);margin:0 0 10px;font-weight:500}p{margin:0 0 12px}.empty{padding:30px 20px;background:var(--card);border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.project-tabs::-webkit-scrollbar{display:none}.project-tabs{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;border-bottom:1px solid var(--line);margin-bottom:24px;white-space:nowrap}.project-tabs:empty{display:none}.project-tabs a{padding:12px 0;border-bottom:2px solid transparent;color:var(--muted)}.project-tabs a.active{border-color:var(--red);color:var(--ink);font-weight:500}.stages-layout{display:grid;grid-template-columns:236px minmax(0,1fr);gap:24px}.stage-list{display:grid;gap:5px;align-content:start}.stage-list button{text-align:left;justify-content:flex-start;background:transparent;color:var(--ink);padding:12px;gap:12px;line-height:1.35}.stage-list .selected{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.stage-num{background:#dce0e6;border-radius:50%;width:25px;height:25px;flex:none;display:grid;place-items:center;font-size:var(--caption)}.stage-list .selected .stage-num{background:var(--red);color:white}.stage-list small{display:block;color:var(--muted);font-size:var(--caption);margin-top:4px}.stage-info{display:flex;gap:12px;margin-bottom:20px}.material-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:14px 0}.material{padding:13px;background:var(--chip);border-radius:9px;overflow-wrap:anywhere}.material img{width:100%;height:120px;object-fit:cover;border-radius:5px;margin-bottom:7px}.round{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.final-frame{border:0;width:100%;height:1100px;border-radius:12px;background:white}.table-wrap{overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:var(--caption);color:var(--muted);font-weight:500;background:var(--chip)}td,th{padding:13px 16px;border-bottom:1px solid var(--line)}td:last-child{text-align:right}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stat{background:var(--card);padding:20px;border:1px solid var(--line);border-radius:12px}.stat strong{font-size:20px;display:block;margin-top:6px;font-weight:500;letter-spacing:-.5px}.task-row{display:flex;gap:12px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}.task-row:last-child{border:0}.task-row input{margin-top:5px}.task-main{flex:1}.task-main.done{text-decoration:line-through;color:var(--muted)}.pricing-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.pricing-card ul{padding:0;margin:20px 0;list-style:none}.pricing-card li{margin-bottom:11px;font-size:var(--caption)}.pricing-card li:before{content:'✓';color:var(--muted);margin-right:8px}.price{font-size:24px;font-weight:500;letter-spacing:-.6px}.price span{font-size:var(--caption);font-weight:400;letter-spacing:0;color:var(--muted)}dialog{border:0;border-radius:16px;max-width:min(620px,94vw);width:100%;padding:0;box-shadow:0 10px 60px #0003}dialog::backdrop{background:#18203077;backdrop-filter:blur(3px)}.modal-inner{padding:28px}.modal-inner h2{font-size:var(--section)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:12px 18px;display:none;z-index:100;max-width:90vw}.mobile-menu{display:none}.help-link{font-size:var(--caption);margin:16px 6px;display:block}.status-review{color:var(--red)}.visit-photo{max-width:140px;border-radius:8px}.file-link{color:var(--ink)}.notice{background:var(--chip);padding:14px 17px;border-radius:9px;font-size:var(--caption);margin:16px 0}.notification-unread{position:relative}.notification-unread:before{content:"";position:absolute;left:-1px;top:11px;bottom:11px;width:3px;background:var(--red);border-radius:3px}.upgrade-callout{background:white;border:1px solid var(--line);border-radius:12px;padding:28px}.updating{opacity:.6;pointer-events:none}
@media(min-width:1700px){.workspace{margin-right:auto}}@media(max-width:1100px){.workspace{padding:28px 24px}.pricing-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:190px}.workspace{margin-left:190px}.stages-layout{grid-template-columns:210px minmax(0,1fr)}}@media(max-width:760px){.mobile-menu{display:flex;position:fixed;top:12px;left:12px;z-index:50;width:36px;height:36px;padding:0}.sidebar{transform:translateX(-100%);transition:transform .15s;width:230px;padding-top:60px;box-shadow:0 0 40px #0002}.sidebar.open{transform:none}.workspace{margin:0;padding:66px 16px 40px}header h1{font-size:var(--title)}header{flex-wrap:wrap;margin-bottom:20px}.banner{padding:15px;gap:10px;flex-wrap:wrap}.banner .body{min-width:180px}.banner-icon{display:none}.ref-link{max-width:200px}.banner .quiet{margin-left:auto}.filters{gap:12px}.segments{width:100%;overflow:auto}.segments button{padding:7px 12px;font-size:var(--caption);flex:1}.stages-layout{display:block}.stage-list{display:flex;overflow-x:auto;margin-bottom:18px;padding-bottom:8px}.stage-list button{min-width:190px;max-width:220px;flex-shrink:0}.stage-list .quiet{min-width:130px}.card{padding:18px}.stats{grid-template-columns:1fr}.stats .stat{padding:14px;display:flex;align-items:center;justify-content:space-between}.stat strong{font-size:20px;margin:0}.pricing-grid{grid-template-columns:1fr}form .grid-two{grid-template-columns:1fr}.project-tabs{gap:22px;margin:0 -16px 20px;padding:0 16px}.modal-inner{padding:22px}.stage-info{flex-wrap:wrap}.final-frame{height:1000px}}

.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.cal-dow{padding:10px;color:var(--muted);text-align:center;font-size:var(--caption)}.cal-day{display:block;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line);padding:11px 9px;min-height:120px;border-radius:8px;overflow:hidden}.cal-day>span{display:block;margin-bottom:8px}.cal-day.has-events>span{color:var(--red);font-weight:500}.cal-event{display:block;background:var(--chip);padding:4px 5px;margin:3px 0;font-size:var(--caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;border-radius:4px}.cal-event.done{opacity:.5;text-decoration:line-through}@media(max-width:760px){.calendar-grid{gap:3px}.cal-day{min-height:82px;padding:6px 3px}.cal-event{font-size:8px;padding:2px}.cal-dow{padding:6px 2px}}

.tariff-panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 12px}.tariff-panel-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:19px;color:var(--muted);font-size:var(--caption)}.tariff-panel-title strong{font-size:var(--caption);font-weight:500;color:var(--ink)}.tariff-metric{margin:0 0 13px}.tariff-metric-label{display:flex;justify-content:space-between;gap:6px;font-size:var(--caption);color:var(--muted);margin-bottom:6px;font-variant-numeric:tabular-nums}.tariff-meter{height:5px;border-radius:5px;background:var(--chip);overflow:hidden}.tariff-meter span{display:block;height:100%;border-radius:5px;background:#8c949e}.tariff-meter.full span{background:var(--red)}.tariff-upgrade{display:block;font-size:var(--caption);color:var(--red);margin-top:17px}

.finance-kind{width:max-content;margin-bottom:23px}.finance-years{margin-bottom:23px}.finance-years button{border-radius:22px;padding:7px 15px}.finance-years .quiet{border:1px dashed var(--line)}.finance-summary{display:grid;grid-template-columns:repeat(2,minmax(200px,300px));gap:15px;margin-bottom:24px}.finance-average{background:#e9ecf0}.finance-wrap{max-width:100%;box-shadow:var(--shadow)}.finance-grid{min-width:1250px;table-layout:fixed;font-variant-numeric:tabular-nums}.finance-grid th:first-child,.finance-grid td:first-child{width:250px;text-align:left;position:sticky;left:0;background:var(--card);z-index:1}.finance-grid thead th{font-size:var(--caption);padding:12px 13px;background:var(--card);text-align:center}.finance-grid thead th:first-child{text-align:left}.finance-grid td{padding:0;text-align:right;height:39px}.finance-grid tbody th{padding:10px 16px;font-weight:400;background:white}.finance-grid .finance-group th{background:#eef0f3;color:var(--muted);font-size:var(--caption);font-weight:500;padding:8px 18px}.finance-grid .finance-add td{height:37px;text-align:left;background:var(--card);padding:3px 8px}.finance-grid .finance-add button{font-size:var(--caption);padding:5px 10px}.finance-row-name{padding:0;background:none;color:var(--ink);text-align:left;display:block;width:100%;border-radius:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--caption);font-weight:400}.finance-cell{display:block;min-height:39px;width:100%;padding:9px 10px;background:none;color:var(--ink);text-align:right;border-radius:0;font-size:var(--caption)}.finance-cell:hover,.finance-row-name:hover{background:var(--chip);filter:none}.finance-total td,.finance-total th{background:#f4f5f7!important;padding:12px 13px!important;font-size:var(--caption);font-weight:500!important}.finance-total.profit td,.finance-total.profit th{color:#68815b;background:#f1f5ee!important}@media(max-width:760px){.finance-summary{grid-template-columns:1fr}.finance-grid th:first-child,.finance-grid td:first-child{width:180px}.finance-grid{min-width:1160px}.finance-kind{max-width:100%}}

.mobile-header,.mobile-navigation{display:none}
@media(max-width:760px){
.sidebar{display:none}.workspace{padding:88px 16px calc(92px + env(safe-area-inset-bottom));width:100%;max-width:100%}
.mobile-header{display:flex;position:fixed;inset:0 0 auto;height:64px;padding:12px 18px;align-items:center;justify-content:space-between;background:var(--card);border-bottom:1px solid var(--line);z-index:30}
.mobile-header .logo{margin:0;font-size:20px}.mobile-profile{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:var(--chip);font-size:var(--caption)}
.mobile-navigation{display:flex;position:fixed;inset:auto 0 0;min-height:68px;padding:7px 5px calc(7px + env(safe-area-inset-bottom));background:var(--card);border-top:1px solid var(--line);z-index:30}
.mobile-navigation a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:9px;line-height:1.2;position:relative;min-height:48px}
.mobile-navigation a.active{color:var(--ink);font-weight:500}.mobile-navigation a.active svg{background:var(--chip);border-radius:8px;outline:5px solid var(--chip)}.mobile-unread{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--red);top:2px;right:calc(50% - 15px)}
.finance-grid{min-width:1160px}.finance-grid th:first-child,.finance-grid td:first-child{width:150px}.finance-summary{gap:12px;margin-bottom:20px}.finance-summary .stat{padding:16px}.finance-summary .stat strong{margin-top:7px}
.project-grid{grid-template-columns:minmax(0,1fr)}.banner .body{min-width:0;flex-basis:calc(100% - 32px)}.ref-link{max-width:100%}.stage-list{max-width:100%}.card{min-width:0}header{gap:12px}
}

.finance-mobile{display:none}
@media(max-width:760px){
.finance-wrap{display:none}.finance-mobile{display:block}.finance-months{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-x:contain;padding:4px 0 10px;margin:0 -16px 10px;scroll-padding:16px}.finance-months button{flex-shrink:0;background:var(--card);color:var(--muted);border:1px solid var(--line);border-radius:22px;padding:7px 14px;font-size:var(--caption)}.finance-months button.selected{color:white;background:var(--ink);border-color:var(--ink)}
.finance-month-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}.finance-month-totals>div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 9px}.finance-month-totals span{display:block;color:var(--muted);font-size:var(--caption);margin-bottom:5px}.finance-month-totals strong{font-weight:500;font-size:var(--caption);white-space:normal;overflow-wrap:anywhere}.finance-month-totals .profit{color:#68815b;background:#f1f5ee}.finance-month-groups{display:grid;gap:16px}.finance-month-group{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.finance-month-group h2{font-size:var(--caption);color:var(--muted);font-weight:500;margin:0;padding:12px 15px;border-bottom:1px solid var(--line);letter-spacing:0}.finance-month-group>.quiet{padding:12px 15px;font-size:var(--caption)}.finance-month-row{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line)}.finance-month-row .finance-row-name{flex:1;white-space:normal;overflow-wrap:anywhere;min-height:40px}.finance-month-amount{background:transparent;color:var(--ink);font-size:var(--caption);padding:9px 5px;flex-shrink:0;min-height:40px}
}

.finance-grid .finance-annual{font-weight:500;padding:10px 13px;background:#f7f8fa}.finance-grid{min-width:1250px}

.round-material-selection{display:grid;gap:10px;margin:16px 0}.round-material-selection label{color:var(--ink);display:flex;align-items:center;gap:9px}
@media(max-width:760px){.stage-list{display:grid;overflow:visible;gap:4px}.stage-list button{min-width:0;max-width:none;width:100%}}

.profile-billing .tariff-panel{padding:0;border:0;border-radius:0;background:transparent;margin:20px 0}.profile-billing .quiet{padding-left:0;padding-right:0;margin-right:16px;min-height:40px}.profile-billing .tariff-upgrade{width:max-content;max-width:100%}
/* Shared left text alignment in desktop navigation. Active state keeps its label in place. */
.sidebar .logo{margin-left:14px;margin-right:14px}.sidebar nav a{position:relative}.sidebar nav a.active:before{position:absolute;left:4px;top:50%;transform:translateY(-50%);margin:0}.sidebar .help-link{margin-left:14px}.sidebar-bottom>.quiet{padding-left:14px}.sidebar .tariff-panel{padding-left:14px;padding-right:14px}
.sidebar>p{margin-left:14px;margin-right:14px}.material-entry .row{padding:0 13px}.material-entry .quiet{padding-left:0;padding-right:0;margin-right:12px}

/* Keep labels on the same axis across active states and finance rows. */
.stage-list button:not(.quiet){border:1px solid transparent}.stage-list button.selected{border-color:var(--line)}
.finance-grid thead th:first-child,.finance-grid tbody th:first-child{padding-left:18px}
.finance-grid .finance-total th:first-child{padding-left:18px!important}
@media(max-width:760px){.finance-month-row{padding-left:15px;padding-right:15px}}

.profile-logo{margin:16px 0}.profile-logo img{display:block;max-width:180px;max-height:80px;object-fit:contain;margin-bottom:12px}.profile-logo .quiet{padding-left:0;margin-left:12px}.task-row .quiet{flex-shrink:0}
@media(max-width:760px){.task-row{flex-wrap:wrap}.task-row .task-main{min-width:180px}.profile-logo .quiet{margin-left:0}}

.card>.help-link{margin-left:0;margin-right:0}

.final-frame.gallery-open{position:fixed;inset:0;width:100%;height:100vh!important;height:100dvh!important;z-index:100;border-radius:0}.final-view-open{overflow:hidden;position:fixed;width:100%;inset:0}

/* Profile uses one body size for copy, quota labels, dates and actions. */
.profile-content .small,.profile-content .help-link,.profile-content .tariff-panel-title,.profile-content .tariff-panel-title strong,.profile-content .tariff-metric-label,.profile-content .tariff-upgrade{font-size:var(--text);font-weight:400}
.profile-content .tariff-panel-title strong{color:var(--muted)}
@media(max-width:760px){.mobile-navigation a{font-size:11px;font-weight:400}.mobile-navigation a.active{font-weight:500}.cal-event{font-size:10px}.finance-month-totals span{font-size:var(--caption)}}

.stage-settings-row{padding:16px 0;border-bottom:1px solid var(--line);margin-bottom:16px}.stage-settings-row .row{justify-content:flex-end}.stage-settings-row .field{min-width:0}.stage-settings-removed{margin-top:20px}.stage-settings-removed .row{padding:8px 0}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.task-composer{margin-bottom:28px}.task-composer>:is(input,textarea){border:0;background:transparent;padding:4px 0 18px;border-radius:0}.task-composer-fields{display:grid;grid-template-columns:minmax(130px,1fr) minmax(160px,1.4fr) minmax(130px,1fr) 38px;gap:12px;align-items:end}.task-composer-fields .field{margin:0;min-width:0}.task-composer-fields label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.task-composer-fields select,.task-composer-fields input{background:var(--chip)}.task-composer-fields>button{border-radius:50%;width:38px;height:38px;padding:0;font-size:20px}.task-composer-fields>button:disabled{opacity:.3;cursor:default}.task-group{margin-bottom:28px}.task-group>h2{margin-bottom:14px}.task-empty{border-style:dashed;box-shadow:none;background:transparent;min-height:110px;display:grid;place-items:center}.person-tasks{margin-bottom:36px}.person-tasks>h2{margin-bottom:20px}.person-tasks .task-group>h2{font-size:var(--text);font-weight:400;color:var(--muted)}
@media(max-width:760px){.task-composer-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.task-composer-fields>button{justify-self:end}.task-composer>:is(input,textarea){padding-bottom:20px}}
/* Plan/fact: enter amounts directly, preserve a common axis for articles and totals. */
.finance-controls{align-items:center;justify-content:space-between;margin:24px 0}.finance-controls .finance-years{margin:0}.finance-period{display:flex;align-items:center;gap:10px;margin:0}.finance-period select{width:170px}.finance-grid{min-width:2130px;table-layout:fixed}.finance-grid.single-month{min-width:790px}.finance-grid th:first-child,.finance-grid td:first-child{width:230px}.finance-grid th:not(:first-child){width:140px}.finance-pair{display:grid;grid-template-columns:1fr;gap:4px;text-align:right;padding:5px 7px}.finance-pair-label{display:flex;justify-content:space-between;margin-top:5px;color:var(--muted);font-weight:400}.finance-pair-label span:last-child{color:var(--ink)}.finance-grid thead .finance-pair-label{display:grid;grid-template-columns:1fr;gap:3px;text-align:right}.finance-value{font-size:var(--caption);padding:6px 8px;text-align:right;height:31px;border:1px solid #e2e5ea;border-radius:7px;background:white}.finance-pair .finance-value:first-child{color:var(--muted);background:#fafbfc}.finance-grid td{padding:4px 7px}.finance-name{font-size:var(--caption);padding:6px 0;border-color:transparent;background:transparent;min-height:34px;border-radius:6px}.finance-name:focus{padding-left:7px;border-color:var(--line);background:white}.finance-new-row{display:flex;gap:8px;max-width:370px;align-items:center}.finance-new-row input{padding:7px 10px}.finance-new-row button{padding:7px 12px}.finance-draft td{padding:9px 18px!important;text-align:left!important}.finance-grid .finance-total td,.finance-grid .finance-total th{background:#e2e6ec!important;color:var(--ink);border-top:2px solid #cbd1da;border-bottom:2px solid #cbd1da;font-weight:500!important}.finance-grid .finance-total.profit td,.finance-grid .finance-total.profit th{background:#edf4e8!important;color:#557644;border-color:#d4dfcc}.finance-total .finance-pair{padding:0;gap:7px}.finance-total .finance-pair span:first-child{color:var(--muted);font-weight:400}.finance-total.profit .finance-pair span{color:#557644}.finance-invalid{border-color:var(--red)}.finance-hint{margin-top:12px;max-width:760px}.finance-mobile-values{display:grid;grid-template-columns:1fr 1fr;gap:12px}.finance-mobile-values label{margin:0}.finance-mobile-values>div{font-size:var(--caption);color:var(--muted)}.finance-mobile-values>div span{display:block;color:var(--ink);margin-top:8px}.finance-month-group .finance-new-row{padding:10px 15px}.finance-month-row{display:block}.finance-month-row>.finance-name{margin-bottom:9px;width:100%}.finance-mobile-values .finance-value{margin-top:5px;height:36px}.finance-average .small:last-child{display:block;margin-top:6px}
@media(max-width:760px){.finance-controls{align-items:flex-start}.finance-period{width:100%;justify-content:space-between}.finance-period select{width:190px}.finance-month-totals>div{background:#e2e6ec}.finance-month-totals .profit{background:#edf4e8}.finance-summary{grid-template-columns:1fr 1fr}.finance-summary .stat strong{font-size:16px}.finance-grid{min-width:2130px}}
/* Match the original month grid: one compact row, plan / fact side by side. */
.finance-wrap{display:block}.finance-mobile{display:none!important}.finance-grid{min-width:2130px}.finance-grid th:not(:first-child){width:158px}.finance-grid th:first-child,.finance-grid td:first-child{width:230px}.finance-pair{display:grid;grid-template-columns:minmax(0,1fr) 9px minmax(0,1fr);gap:3px;align-items:center;padding:0;white-space:nowrap;min-height:32px}.finance-value{padding:5px 4px;height:30px;min-width:0;border-color:transparent;background:transparent}.finance-pair .finance-value:first-child{background:transparent}.finance-value:hover,.finance-value:focus{border-color:var(--line);background:#f7f8fa}.finance-divider{color:#a1a8b2;text-align:center;font-weight:400}.finance-grid td{height:39px;padding:4px 6px}.finance-grid tbody th{padding-top:4px;padding-bottom:4px}.finance-total .finance-pair{gap:3px;min-height:30px}.finance-total .finance-pair span:first-child{font-weight:400}.finance-total td{padding:8px 6px!important}.finance-legend{margin-bottom:8px}.finance-selected-month{background:#e2e6ec!important;color:var(--ink)}.finance-grid thead th{height:41px}.finance-summary .stat strong{font-size:20px}
@media(max-width:760px){.finance-wrap{display:block}.finance-grid{min-width:2080px}.finance-grid th:first-child,.finance-grid td:first-child{width:180px}.finance-summary .stat strong{font-size:16px}}

/* Material links form complete cards, including files without previews. */
.material-grid{grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));align-items:start}.material{display:flex;flex-direction:column;gap:5px;min-width:0;width:100%}.material>span{display:block;line-height:1.4}.material img{display:block;margin:0 0 5px;height:150px}.material-entry{min-width:0}.material-entry>.row{padding-top:5px;gap:16px}

.voice-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 16px}.voice-control p{flex-basis:100%;margin:0;line-height:1.4}.voice-button{min-height:44px}.voice-button.recording{color:var(--red);background:#fff1f2}.voice-status{flex:1 1 180px;min-width:0;overflow-wrap:anywhere}.voice-status:empty{display:none}
.voice-status[data-tone="attention"]{flex:1 1 100%;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:7px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;line-height:1.4}
.voice-status[data-tone="saved"]{flex:1 1 100%;padding:8px 10px;border:1px solid var(--line);border-left:3px solid var(--ink);border-radius:7px;background:#fff;color:var(--ink);font-size:13px;font-weight:600;line-height:1.4}
.voice-status[data-tone="success"]{color:var(--ink);font-weight:600}
.voice-recording{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:5px 9px;border-radius:8px;background:#f3f4f6;color:var(--muted);font-size:13px;line-height:20px;white-space:nowrap}
.voice-recording[hidden]{display:none}.voice-recording.is-recording{background:#fff1f2;color:var(--red)}
.voice-retry[hidden],.voice-download[hidden]{display:none}
.voice-processing{display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:5px 9px;border-radius:8px;background:#f3f4f6;color:var(--muted);font-size:13px;white-space:nowrap}.voice-processing[hidden],.voice-cancel-upload[hidden]{display:none}.voice-processing-elapsed{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}
.voice-recording-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}.voice-recording.is-recording .voice-recording-dot{animation:voice-recording-pulse 1.4s ease-in-out infinite}
.voice-elapsed{font-variant-numeric:tabular-nums;font-weight:600;min-width:5ch;text-align:right}
@keyframes voice-recording-pulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.voice-recording.is-recording .voice-recording-dot{animation:none}}


/* Stages: direct controls, reference layout and semantic status colours. */
.stages-layout{grid-template-columns:285px minmax(0,1fr)}
.stage-list-heading{display:flex;align-items:center;justify-content:space-between;padding:0 10px 8px;color:var(--muted)}
.stage-list .stage-list-title{flex:1;min-width:0}.stage-list .stage-state-label{font-size:var(--caption);white-space:nowrap;border-radius:20px;padding:3px 8px;background:var(--chip);color:var(--muted)}
.stage-list button{border-radius:10px;gap:10px}.stage-list .stage-num{width:27px;height:27px}
.stage-list .stage-state-done .stage-num,.stage-list .stage-state-done .stage-state-label{background:#e5f1e8;color:#33754b}
.stage-list .stage-state-work .stage-num,.stage-list .stage-state-work .stage-state-label{background:#fff1cf;color:#946000}
.stage-list .stage-state-review .stage-num,.stage-list .stage-state-review .stage-state-label{background:#fce5e8;color:var(--red)}
.stage-list .stage-state-planned .stage-num{background:#e5e8ed;color:var(--muted)}
.stage-card{padding:26px;min-height:440px}.stage-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.stage-card h2{margin-bottom:0}.stage-statuses{flex-wrap:wrap;max-width:100%;border-radius:22px}.stage-statuses button{font-size:var(--caption);padding:7px 10px}
.stage-deadline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 24px}.stage-deadline label{margin:0}.stage-deadline input{width:160px;font-size:var(--caption)}
.stage-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 14px}.stage-section-heading h3{margin:0;font-size:var(--body);color:var(--muted)}
.stage-drop-zone{text-align:center;margin:14px 0;padding:26px 14px}.stage-card.drag-over{outline:2px dashed var(--red);outline-offset:-6px}.stage-card .material-history{margin-top:24px}
@media(max-width:1100px){.stages-layout{grid-template-columns:240px minmax(0,1fr)}.stage-list button{flex-wrap:wrap}.stage-list .stage-state-label{margin-left:37px}}
@media(max-width:760px){.stages-layout{display:block}.stage-list-heading{padding-left:0}.stage-list button{flex-wrap:nowrap}.stage-list .stage-state-label{margin-left:0}.stage-card{padding:18px}.stage-statuses{width:100%}.stage-statuses button{flex:1;white-space:nowrap;padding:8px 7px}.stage-section-heading .row{gap:8px}}

@media(max-width:760px){.stage-statuses{display:grid;grid-template-columns:1fr 1fr;border-radius:15px}.stage-statuses button{width:100%;min-width:0}.stage-section-heading h3{font-size:14px}}

.ai-dictation-preview{width:100%;flex-basis:100%;margin-top:10px}.ai-draft-row{background:white;border:1px solid var(--line);border-radius:10px;padding:14px;margin:10px 0}.ai-draft-row label{margin-bottom:10px}.ai-include{display:flex;gap:8px;align-items:center;color:var(--ink)}.ai-draft-fields{display:grid;grid-template-columns:1fr 1fr 160px;gap:10px}.task-composer:has(.ai-draft-row) .task-composer-fields button{width:auto;border-radius:10px;padding:10px 16px;font-size:14px}.voice-control{flex-wrap:wrap}@media(max-width:760px){.ai-draft-fields{grid-template-columns:1fr}.ai-draft-row{padding:12px}}

.task-composer:has(.ai-draft-row) .task-composer-fields>.field{display:none}
.task-composer:has(.ai-draft-row) .task-composer-fields{grid-template-columns:1fr}
.task-composer:has(.ai-draft-row) .task-composer-fields>button{justify-self:end}

.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-bottom:14px}.calendar-legend>span{display:flex;align-items:center;gap:6px}.calendar-state-dot{display:inline-block;flex:none;width:7px;height:7px;border-radius:50%;background:#949ca6}.calendar-state-dot.done,.done .calendar-state-dot{background:#4c825b}.calendar-state-dot.overdue,.overdue .calendar-state-dot{background:var(--red)}.cal-event.done{background:#edf5ef;color:#427650;opacity:1;text-decoration:none}.cal-event.overdue{background:#fcecef;color:#b92834}.cal-day{min-height:100px}.cal-day.selected{border-color:var(--ink)}.cal-day.cal-drop-target{outline:2px solid var(--red);outline-offset:-2px;background:#fff5f6}.cal-event[draggable=true]{cursor:grab}.calendar-details{margin-top:18px}.calendar-details[hidden]{display:none}.calendar-detail-event{display:flex;gap:10px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}.calendar-detail-event strong{font-weight:500}.calendar-detail-event .calendar-state-dot{margin-top:7px}.calendar-detail-event.done strong{color:#427650}.calendar-detail-event.overdue strong{color:#b92834}.calendar-week{margin-bottom:26px}.calendar-week>h2{margin:0 0 12px}.calendar-list-day{margin-bottom:10px}.calendar-list-day>h3{margin-bottom:12px;font-size:16px;font-weight:500}@media(max-width:760px){.cal-day{min-height:78px}.calendar-legend{gap:12px}.calendar-list-day{padding:16px}}

.visit-composer{margin-bottom:20px}.visit-composer-fields{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px}.visit-composer textarea{min-height:100px}.visit-composer .row{margin-top:16px}@media(max-width:640px){.visit-composer-fields{grid-template-columns:1fr;gap:8px}}

/* Task categories share the same list, completion controls and editing forms. */
.task-main{min-width:0;overflow-wrap:anywhere}.task-main.done{text-decoration:none}.task-main.done .task-title{text-decoration:line-through}.task-details{margin-top:3px}.task-result{margin-top:6px;color:var(--ink);white-space:pre-wrap}.task-actions{flex:none;gap:6px;justify-content:flex-end}.task-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.task-editor-grid .field{margin:0;min-width:0}.task-editor-grid :is(input[type=date],input[type=time]){min-inline-size:0;-webkit-appearance:none;appearance:none}.task-result-input{min-height:68px}.ai-draft-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.ai-visit-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-draft-row label:last-child{margin-bottom:0}.ai-draft-row>.ai-draft-fields{margin-bottom:10px}.ai-assignee-name{margin-top:10px}.ai-assignee-name[hidden]{display:none}.ai-draft-fields :is(input,select){min-inline-size:0}.task-filter-bar{align-items:center}.task-type-filter{display:flex;align-items:center;gap:8px;margin:0 0 0 auto;white-space:nowrap}.task-type-filter select{width:190px;padding:6px 10px;font-size:var(--caption)}
@media(max-width:760px){.ai-draft-fields,.ai-visit-fields{grid-template-columns:1fr}.task-actions{justify-content:flex-start}.task-type-filter{width:100%;margin:4px 0 0;justify-content:space-between}.task-type-filter select{flex:1;max-width:240px}.visit-task-row{flex-wrap:wrap}.visit-task-row>button{margin-left:27px}.task-editor-grid{gap:12px 10px}}

/* Compact stage card: direct controls and quiet supporting details. */
.stage-card{padding:22px;min-height:0}.stage-card-heading{gap:16px}.stage-card h2{font-size:18px;font-weight:500}.stage-card .stage-statuses{padding:3px}.stage-card .stage-statuses button{padding:6px 9px}.stage-card .stage-deadline{margin:12px 0 16px}.stage-card .stage-deadline input{padding:7px 10px;width:148px}.stage-notes{font-size:12px;color:var(--muted);margin-bottom:0}.stage-section-heading{margin:20px 0 10px}.stage-card .stage-section-heading h3{font-size:13px;font-weight:500;color:var(--ink)}.stage-card .stage-section-heading button{padding:7px 11px}.stage-card>.small{font-size:11px}.stage-card>.material-grid{margin:12px 0 16px;gap:12px}.stage-file{flex-direction:row;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);padding:10px 12px}.stage-file-icon{width:23px;flex:none;color:var(--muted)}.stage-file-icon svg{width:23px;height:27px;display:block}.stage-file-name{flex:1;min-width:0}.stage-file-name>.small{display:block;margin-top:2px}.stage-card .material-entry>.row{padding:3px 0 0;gap:16px}.stage-card .material-entry .quiet{font-size:11px;padding:3px 0;margin:0}.stage-review-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.stage-review-controls .stage-deadline{margin:0}.stage-review-controls button{padding:8px 12px}.stage-review-repeat{margin-top:20px;color:var(--muted);font-size:12px}.stage-review-repeat summary{cursor:pointer}.stage-card .material-history{margin-top:16px}.stage-review-repeat .stage-review-controls{margin-top:10px}@media(max-width:760px){.stage-card{padding:18px}.stage-review-controls{align-items:flex-start}.stage-card h2{font-size:16px}}

.task-filter-bar{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 20px}.task-filter-bar button{background:var(--card);border:1px solid var(--line);color:var(--muted);padding:6px 11px;border-radius:20px;font-size:12px}.task-filter-bar .selected{background:var(--ink);color:white;border-color:var(--ink)}.task-row .task-check{width:24px;height:24px;flex:none;min-width:24px;border:1.5px solid #aab0b9;border-radius:50%;padding:0;background:transparent;color:transparent;margin-top:1px}.task-check.checked,.task-completing .task-check{background:#33754b;color:white;border-color:#33754b}.task-row.task-completing .task-main{color:var(--muted);text-decoration:line-through}.task-row.task-completing{animation:taskComplete .42s ease forwards}@keyframes taskComplete{0%{opacity:1;transform:translateY(0)}55%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(12px)}}@media(prefers-reduced-motion:reduce){.task-row.task-completing{animation:none}}@media(max-width:760px){.finance-grid th:first-child,.finance-grid td:first-child{width:112px;min-width:112px;max-width:112px}.finance-grid tbody th:first-child,.finance-grid thead th:first-child,.finance-grid .finance-total th:first-child{padding-left:9px!important;padding-right:7px!important}.finance-grid .finance-name{font-size:11px}.finance-grid .finance-group th{white-space:normal}.finance-grid{min-width:2012px}.task-row .task-main{min-width:0;flex:1}.task-row>.row{width:100%;padding-left:36px}.task-row{gap:10px}}

/* Calendar: dates align at the top; phone month matches the compact reference. */
.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;flex-wrap:wrap}.calendar-month-controls,.calendar-view-controls{display:flex;align-items:center;gap:10px}.cal-day{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.cal-date{flex:none}.cal-dots{display:none!important}.calendar-event-main{flex:1;min-width:0}.calendar-event-main strong{display:block;overflow-wrap:anywhere}.calendar-event-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.calendar-event-actions button{min-height:40px;font-size:13px}.calendar-check{width:20px;height:20px;border:1px solid currentColor;border-radius:50%;display:inline-grid;place-items:center}.calendar-no-events{text-align:center;padding:25px 0;color:var(--muted)}.cal-day.today .cal-date{color:var(--red)}
@media(max-width:760px){
.calendar-toolbar{gap:10px;align-items:flex-start}.calendar-month-controls{gap:6px;flex:1}.calendar-month-controls h2{font-size:25px;font-weight:600;letter-spacing:-.6px;text-transform:capitalize}.calendar-month-controls button{padding:4px;width:30px;min-height:44px;background:transparent;color:var(--ink);font-size:25px}.calendar-view-controls{gap:2px}.calendar-view-controls button{font-size:12px;min-height:44px;padding:6px 9px}.calendar-grid{gap:0;background:var(--card);border-radius:12px;overflow:hidden}.cal-dow{font-size:12px;font-weight:500;padding:8px 0;border-bottom:1px solid var(--line)}.cal-day,.cal-empty{height:64px;min-height:64px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--card);padding:7px 0 5px;align-items:center;justify-content:flex-start;gap:3px}.cal-day>span.cal-date{display:grid;place-items:center;width:34px;height:34px;margin:0;font-size:20px;line-height:1;font-weight:400;color:var(--ink)}.cal-day.weekend>span.cal-date{color:#92979e}.cal-day.today>span.cal-date{color:var(--red);font-weight:500}.cal-day.selected{border-color:var(--line)}.cal-day.selected>span.cal-date{background:var(--ink);color:white;border-radius:50%}.cal-day>span.cal-dots{display:flex!important;justify-content:center;align-items:center;gap:3px;margin:0;height:8px}.cal-dots i{width:5px;height:5px}.cal-day .cal-event,.cal-day>small{display:none}.calendar-details{box-shadow:none;padding:16px;margin-top:12px}.calendar-details h2{font-size:17px;margin-bottom:10px}.calendar-detail-event{padding:14px 0}.calendar-event-actions button{min-height:44px;font-size:14px}.calendar-legend{font-size:11px;margin-bottom:10px}.calendar-week>h2{font-size:17px}.calendar-list-day>h3{font-size:17px}
}

@media(max-width:760px){.calendar-month-controls h2{white-space:nowrap;font-size:24px;line-height:1.25}.calendar-year{display:block;font-size:12px;font-weight:400;color:var(--muted);letter-spacing:0}.calendar-month-controls{gap:4px}.calendar-view-controls button{padding:6px 7px}}

/* Keep the native iPhone date control inside the visit form. */
.visit-composer-fields>.field{min-width:0}.visit-composer input[type="date"]{display:block;width:100%;max-width:100%;min-width:0;min-inline-size:0;box-sizing:border-box;-webkit-appearance:none;appearance:none;text-align:left;min-height:44px}.visit-composer input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0}.visit-composer input[type="date"]::-webkit-datetime-edit{min-width:0;padding:0}@media(max-width:640px){.visit-composer-fields{grid-template-columns:minmax(0,1fr)}.visit-composer{min-width:0}.visit-composer input[type="date"]{font-size:16px}}

@media(max-width:760px){.finance-grid th:first-child,.finance-grid td:first-child{width:80px;min-width:80px;max-width:80px}.finance-grid{min-width:1976px}.finance-grid tbody th:first-child,.finance-grid thead th:first-child,.finance-grid .finance-total th:first-child{padding-left:6px!important;padding-right:5px!important}.finance-grid .finance-total th:first-child{white-space:normal;line-height:1.25}.finance-grid .finance-name{padding-left:0;padding-right:0}.finance-grid .finance-group th{overflow-wrap:anywhere}.finance-grid .finance-add button{padding-left:0;padding-right:0}}

.document-switch{width:max-content;margin:0 0 20px}.document-section{margin-bottom:24px}.document-section>h2{font-size:18px;margin:0 0 10px}.document-grid{display:flex;flex-direction:column;gap:10px}.document-card{display:grid;grid-template-columns:minmax(0,1fr) 180px 286px;gap:24px;align-items:start;min-width:0;padding:18px 20px;border-radius:12px;box-shadow:none}.document-description,.document-controls,.document-facts{min-width:0}.document-card h3{font-size:15px;line-height:1.45;font-weight:500;margin:3px 0 6px;overflow-wrap:anywhere}.document-kind{color:var(--muted);font-size:12px}.document-summary{font-size:13px;line-height:1.5;margin:0;overflow-wrap:anywhere}.document-facts{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted);padding-top:3px;overflow-wrap:anywhere}.document-facts strong{font-size:18px;line-height:1.4;font-weight:500;color:var(--ink);margin-top:4px;font-variant-numeric:tabular-nums}.document-decision{font-size:12px;color:var(--muted);margin:0 0 4px}.document-decision.approved{color:#33754b}.document-decision.changes{color:var(--red)}.document-decisions,.document-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}.document-decisions button,.document-actions button,.document-actions a,.document-tools summary{font-size:12px;min-height:36px;padding:7px 10px}.document-actions{border:0;padding:0}.selected-approved{background:#edf5ef;color:#33754b}.selected-changes{background:#fcecef;color:var(--red)}.document-note{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:13px}.document-tools{position:relative}.document-tools summary{display:flex;align-items:center;cursor:pointer;color:var(--muted);list-style:none;border-radius:8px}.document-tools summary::-webkit-details-marker{display:none}.document-tools summary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.document-tools[open] summary,.document-tools summary:hover{background:var(--chip)}.document-tools-menu{position:absolute;top:calc(100% + 4px);right:0;z-index:5;display:flex;flex-direction:column;width:max-content;min-width:160px;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 20px #10182018}.document-tools-menu button{width:100%;text-align:left;white-space:nowrap}.document-tools-menu button:hover{background:var(--chip)}@media(max-width:1100px){.document-card{grid-template-columns:minmax(0,1fr) 160px;gap:12px 20px}.document-controls{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.document-decision,.document-controls>.small{margin:0}.document-decisions,.document-actions{margin-top:0}.document-actions{margin-left:auto}}@media(max-width:760px){.document-card{grid-template-columns:minmax(0,1fr);padding:16px;gap:12px}.document-facts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px 12px;padding:0}.document-facts strong{grid-column:1/-1;font-size:18px;margin:0}.document-controls{display:block}.document-decisions,.document-actions{margin-top:8px}.document-decisions button,.document-actions button,.document-actions a,.document-tools summary{min-height:44px;font-size:13px}.document-tools-menu{right:auto;left:0}.document-controls>.small{margin:3px 0 0}}


.project-cover{position:relative}.project-cover-setting{display:flex;align-items:center;gap:12px;margin:16px 0 20px}.project-cover-setting img{width:96px;height:64px;object-fit:cover;border-radius:8px}.project-cover-setting img[hidden]{display:none}.project-cover-setting button{font-size:13px;min-height:44px}

.document-upload{margin-bottom:24px;padding:20px}.document-upload h2{font-size:18px;font-weight:500;margin:0 0 10px}.document-upload p{margin:0 0 8px;font-size:13px;line-height:1.6}.document-upload-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}.document-upload-actions button{min-height:44px}@media(max-width:760px){.document-upload{padding:16px}.document-upload-actions{align-items:stretch}.document-upload-actions button{font-size:13px}}

.document-title-link{color:inherit;text-decoration:none;border-radius:3px}
.document-title-link:hover{text-decoration:underline;text-underline-offset:3px}
.document-title-link:focus-visible{outline:2px solid #1a1d20;outline-offset:3px}
@media(max-width:760px){.document-title-link{pointer-events:none;cursor:default}.document-title-link:hover{text-decoration:none}}

@media(min-width:761px){
 .document-card{row-gap:12px}
 .document-tools{display:contents}
 .document-tools-menu{display:flex;flex-direction:row;gap:8px;position:static;width:auto;min-width:0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}
 .document-tools summary{display:none}
 .document-controls{justify-self:end}
 .document-decisions button{min-height:32px;padding:5px 9px;border-radius:6px;background:transparent;border:1px solid var(--line);font-weight:400}
 .document-decisions .selected-approved{border-color:#c7ddce;background:#f3f8f4;color:#33754b}
 .document-decisions .selected-changes{border-color:#f0c5cc;background:#fff4f5;color:var(--red)}
 .document-actions{grid-column:1/-1;justify-self:stretch;margin:0;padding-top:12px;border-top:1px solid var(--line);gap:8px}
 .document-actions a,.document-actions button{width:auto;min-height:34px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:400;line-height:1.4}
 .document-actions>.button{background:transparent;border:1px solid var(--line)}
 .document-tools-menu button:hover{background:var(--chip)}
}
@media(max-width:760px){.document-actions{grid-column:1/-1;margin-left:0;margin-top:0}.document-actions .document-tools-menu{display:flex}}

/* Единый спокойный формат действий документов. */
.document-actions>.button,.document-actions button[data-action="document-analyze"],.document-actions button[data-action="document-edit"],.document-actions button[data-action="document-archive"]{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:6px;font-weight:400;box-shadow:none}
.document-actions>.button:hover,.document-actions button[data-action="document-analyze"]:hover,.document-actions button[data-action="document-edit"]:hover,.document-actions button[data-action="document-archive"]:hover{background:var(--chip);color:var(--ink)}
/* One month of studio finances, with separate plan and actual columns. */
.finance-month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:22px 0}.finance-month-nav{display:flex;gap:8px;align-items:center}.finance-month-nav button{width:40px;height:40px;padding:0;font-size:24px;font-weight:400}.finance-month-nav select{width:auto;min-width:90px;text-transform:capitalize;height:40px;padding:7px 10px}.finance-month-nav #financePeriod{min-width:130px}.finance-month-toolbar>.row{gap:8px}.finance-month-toolbar>.row button{font-size:13px;padding:9px 12px}.finance-month-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,330px);gap:24px;align-items:start}.finance-month-table{min-width:0;background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden}.finance-grid.monthly{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}.finance-grid.monthly col{width:24%}.finance-grid.monthly col.finance-article-column{width:52%}.finance-grid.monthly th:first-child,.finance-grid.monthly td:first-child{position:static;width:auto;min-width:0;max-width:none;white-space:normal}.finance-grid.monthly th:not(:first-child){width:auto}.finance-grid.monthly thead th{background:#f6f7f9;padding:14px;text-align:right;font-size:13px;font-weight:400;height:auto}.finance-grid.monthly thead th:first-child{text-align:left}.finance-grid.monthly tbody th{padding:6px 14px}.finance-grid.monthly td{height:auto;padding:6px 10px}.finance-grid.monthly .finance-direction th{padding:18px 14px 10px;background:white;font-size:17px;font-weight:500;color:var(--ink);text-align:left}.finance-grid.monthly .finance-group th{padding:9px 14px;background:#f6f7f9;font-size:13px;text-align:left;letter-spacing:0}.finance-grid.monthly .finance-name{display:block;min-width:0;width:100%;min-height:36px;resize:none;overflow:hidden;line-height:1.4;font-family:inherit;font-size:13px;color:var(--ink);padding:8px 0;margin:0;border:1px solid transparent;box-sizing:border-box}.finance-grid.monthly .finance-name:focus{background:#fafbfc;border-color:var(--line)}.finance-grid.monthly .finance-value{font-family:inherit;font-size:13px;line-height:1.4;width:100%;height:36px;padding:7px 4px;color:var(--ink);font-weight:400}.finance-grid.monthly .finance-value::placeholder{color:#a7adb7}.finance-grid.monthly .finance-add td{padding:3px 14px;text-align:left}.finance-grid.monthly .finance-add button{font-size:12px;padding:8px 0;color:var(--muted);background:transparent}.finance-grid.monthly .finance-total th,.finance-grid.monthly .finance-total td{padding:13px 14px!important;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f0f2f5!important;font-size:13px;overflow-wrap:anywhere}.finance-grid.monthly .finance-total.profit th,.finance-grid.monthly .finance-total.profit td{background:#f0f5f2!important;color:#33754b}.finance-grid.monthly .finance-draft td{padding:10px 14px!important}.finance-grid.monthly .finance-new-row{max-width:100%;flex-wrap:wrap}.finance-new-row input{flex:1;min-width:100px}.finance-month-summary{background:#f0f5f2;border:1px solid #e1e9e4;border-radius:14px;padding:28px;position:sticky;top:24px;color:#33754b}.finance-month-summary>strong{display:block;font-size:32px;font-weight:500;line-height:1.2;margin:20px 0 28px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.finance-summary-breakdown{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #dce5df;padding-top:20px;color:var(--ink)}.finance-summary-breakdown>div{min-width:0}.finance-summary-breakdown strong{font-size:14px;font-weight:500;overflow-wrap:anywhere}.finance-summary-breakdown span{display:block;font-size:12px;color:var(--muted);margin-top:5px}.finance-summary-plan{font-size:12px;color:var(--muted);border-top:1px solid #dce5df;margin-top:18px;padding-top:14px;display:flex;justify-content:space-between;gap:12px}.finance-month-summary.negative{color:var(--red);background:#faf1f2;border-color:#f0dfe2}.finance-hint{font-size:12px}
@media(max-width:1000px){.finance-month-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.finance-month-summary{padding:20px}.finance-month-summary>strong{font-size:27px}}
/* Portrait tablets need the full content width for editable amounts. */
@media(min-width:761px) and (max-width:1000px){
 .finance-month-layout{grid-template-columns:minmax(0,1fr)}
 .finance-month-summary{grid-row:1;position:static;padding:16px 20px;display:grid;grid-template-columns:minmax(120px,1fr) minmax(240px,1fr);column-gap:24px}
 .finance-month-summary>span{grid-column:1}
 .finance-month-summary>strong{grid-column:1;grid-row:2;margin:6px 0 0}
 .finance-month-summary .finance-summary-breakdown{grid-column:2;grid-row:1/3;border-top:0;padding-top:0;align-self:center}
 .finance-month-summary .finance-summary-plan{grid-column:1/-1;margin-top:12px;padding-top:12px}
}
@media(max-width:760px){.finance-month-toolbar{gap:12px;margin:18px 0}.finance-month-nav{width:100%;justify-content:space-between;gap:5px}.finance-month-nav button{width:36px;min-width:36px;height:40px}.finance-month-nav select{font-size:16px;min-width:0;padding:7px 8px}.finance-month-nav #financePeriod{min-width:0;flex:1}.finance-month-nav #financeYear{width:86px}.finance-month-toolbar>.row{width:100%;justify-content:space-between}.finance-month-layout{display:flex;flex-direction:column;gap:16px}.finance-month-summary{order:-1;width:100%;position:static;padding:16px;box-sizing:border-box}.finance-month-summary>strong{font-size:28px;margin:10px 0 14px}.finance-summary-breakdown{padding-top:12px}.finance-summary-plan{margin-top:12px;padding-top:10px}.finance-month-table{width:100%;border-radius:12px}.finance-grid.monthly col{width:28%}.finance-grid.monthly col.finance-article-column{width:44%}.finance-grid.monthly thead th{padding:12px 8px;font-size:12px}.finance-grid.monthly tbody th:first-child,.finance-grid.monthly thead th:first-child{padding-left:10px!important;padding-right:6px!important}.finance-grid.monthly td{padding:4px}.finance-grid.monthly .finance-name,.finance-grid.monthly .finance-value{font-size:16px}.finance-grid.monthly .finance-name{line-height:1.35}.finance-grid.monthly .finance-value{padding:7px 2px}.finance-grid.monthly .finance-group th,.finance-grid.monthly .finance-direction th{padding:10px!important}.finance-grid.monthly .finance-total th,.finance-grid.monthly .finance-total td{padding:12px 8px!important;font-size:12px}.finance-grid.monthly .finance-total th:first-child{padding-left:10px!important}.finance-grid.monthly .finance-add td{padding-left:10px}.finance-new-row input{font-size:16px}}
.notification-settings{padding:0;margin-bottom:20px}.notification-settings summary{display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;font-size:14px;list-style:none;font-weight:500}.notification-settings summary::-webkit-details-marker{display:none}.notification-settings summary::after{content:"";width:6px;height:6px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:rotate(45deg);margin-left:4px;flex:none}.notification-settings[open] summary::after{transform:rotate(225deg)}.notification-settings summary:focus-visible{outline:2px solid var(--red);outline-offset:2px}.notification-settings-count{margin-left:auto;font-size:12px;color:var(--muted);font-weight:400}.notification-settings form{padding:0 20px 18px}.notification-settings form>p{margin:0 0 14px}.notification-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;max-width:850px}.notification-type{display:flex;align-items:center;gap:10px;min-height:40px;margin:0;font-size:13px;color:var(--ink);cursor:pointer}.notification-type input{appearance:auto;flex:none;width:17px;height:17px;margin:0;accent-color:var(--ink);cursor:pointer}.notification-type span{line-height:1.4}.notification-settings-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);margin-top:16px;padding-top:14px}.notification-settings-actions .row{gap:12px}.notification-settings-actions button{font-size:13px;padding:8px 12px}.notification-settings-actions .quiet{padding:8px 0}.notification-list>.card{padding:20px}.notification-meta{display:flex;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;color:var(--muted);font-size:12px}.notification-list p{font-size:14px;line-height:1.5;margin:8px 0 0;overflow-wrap:anywhere}.notification-settings-actions button:disabled{opacity:.45}
@media(max-width:760px){.notification-settings summary{padding:16px;font-size:14px;gap:8px}.notification-settings form{padding:0 16px 16px}.notification-type-grid{grid-template-columns:1fr;gap:0}.notification-type{min-height:44px;font-size:14px}.notification-type input{width:19px;height:19px}.notification-settings-actions{flex-wrap:wrap;gap:10px}.notification-settings-actions .row{gap:16px}.notification-settings-actions button{min-height:40px}.notification-list>.card{padding:16px}.notification-meta{font-size:11px}}


.document-description{display:flex;align-items:flex-start;gap:14px}
.document-copy{min-width:0;flex:1}
.document-preview{position:relative;display:flex;flex:none;align-items:center;justify-content:center;width:80px;height:104px;background:#f5f6f8;border:1px solid var(--line);border-radius:7px;overflow:hidden;text-decoration:none;color:var(--muted)}
.document-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.document-preview-placeholder{display:flex;align-items:center;flex-direction:column;gap:6px;max-width:100%;padding:6px;font-size:10px;line-height:1.25;text-align:center;overflow-wrap:anywhere}
.document-preview-placeholder svg{width:28px;height:34px}
.document-preview.has-preview .document-preview-placeholder{display:none}
.document-preview:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(hover:hover) and (pointer:fine){.document-preview:hover{border-color:#9ca3ad;box-shadow:0 2px 7px #11182712}}
@media(max-width:760px){.document-description{gap:10px}.document-preview{width:56px;height:74px;pointer-events:none}.document-preview-placeholder{font-size:9px;gap:3px}.document-preview-placeholder svg{width:22px;height:28px}}

.client-message-composer h2,.client-message h2{font-size:16px}.client-message-composer .row{flex-wrap:wrap}.client-message-photos{display:flex;gap:10px;flex-wrap:wrap}.client-photo-preview{position:relative;width:84px;height:84px;margin-top:12px}.client-photo-preview img{width:100%;height:100%;object-fit:cover;border-radius:8px}.client-photo-preview button{position:absolute;right:-7px;top:-7px;min-width:32px;min-height:32px;padding:0;border:1px solid var(--line)}.client-message .row{flex-wrap:wrap}.client-message p.pre{overflow-wrap:anywhere}.client-message-composer textarea{max-width:100%;font:inherit}@media(max-width:760px){.client-message-composer textarea{font-size:16px}.client-message-composer .row>button{min-height:44px}.client-message .material-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-message .material{min-width:0}.client-message .material span{overflow-wrap:anywhere}}

/* Portrait previews keep both portrait and landscape stage images fully visible. */
.stage-card .material img{height:auto;aspect-ratio:3/4;object-fit:cover}

/* A stage-list heading keeps its settings button at its natural width. */
.stage-list .stage-list-heading .quiet{width:auto;min-width:0;max-width:100%;flex:none}
@media(max-width:760px){.stage-list .stage-list-heading .quiet{min-height:44px}}
@media(min-width:761px) and (max-width:1000px), (min-width:1001px) and (max-width:1300px) and (any-pointer:coarse){
 .stages-layout{display:block}
 .stage-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(54px,auto);gap:16px 24px;margin-bottom:20px}
 .stage-list-heading{grid-column:1/-1;padding-left:0}
 .stage-list>button{position:relative;grid-column:var(--stage-col);grid-row:var(--stage-row);width:100%;min-width:0;max-width:none}
 .stage-list .stage-flow-arrow{display:block;position:absolute;color:#dce1e7;width:10px;height:14px;pointer-events:none}
 .stage-list .stage-flow-arrow svg{display:block;width:100%;height:100%}
 .stage-flow-down .stage-flow-arrow{left:25.5px;bottom:-15px;transform:translateX(-50%)}
 .stage-flow-end .stage-flow-arrow{display:none}
}
.stage-flow-arrow{display:none}
.task-filter-bar>.field{display:flex;align-items:center;gap:8px;margin:0;min-width:190px}
.task-filter-bar>.field label{margin:0;white-space:nowrap}
.task-filter-bar>.field select{min-width:128px;width:auto;max-width:220px;padding:6px 10px;font-size:var(--caption)}
@media(max-width:760px){.task-filter-bar>.field{flex:1 1 160px;display:block}.task-filter-bar>.field label{margin-bottom:4px}.task-filter-bar>.field select{width:100%;max-width:none}}

/* Room-specific visualization rounds; shares the workspace type scale. */
.visual-rooms{margin-top:24px}.visual-room{padding:20px 0;border-top:1px solid #dee2e8}.visual-room-heading{margin-bottom:16px}.visual-room h3,.visual-room h4{margin:0;font-size:14px;line-height:1.5;font-weight:600;font-family:inherit}.visual-round{padding:14px 0}.visual-round p{font-size:13px;line-height:1.6}.visual-round .row{gap:10px}.visual-materials{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:10px;margin:14px 0}.visual-material{display:block;min-width:0;color:inherit;text-decoration:none}.visual-material img,.visual-file-icon{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:8px;background:#f1f3f6}.visual-file-icon{display:grid;place-items:center;color:#747d8b}.visual-material>span:last-child{display:block;font-size:11px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:6px}.visual-feedback{border-left:2px solid #d6232e;padding:4px 12px;margin:16px 0;background:#f7f8fa;font-size:13px}.visual-feedback p{margin:6px 0}.visual-round-history{border-top:1px solid #e5e8ec;padding:12px 0}.visual-round-history summary{cursor:pointer;font-size:13px}.visual-round-history summary span{margin-left:12px}.visual-status-approved{color:#367150;background:#eff7f2}.visual-round-actions button{font-size:13px;font-weight:400}.visual-round-actions{margin-top:12px}
@media(max-width:760px){.visual-room{padding:16px 0}.visual-materials{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-round-actions button{min-height:44px}.visual-room-heading{align-items:flex-start}.visual-room-heading h3{max-width:65%}}

.visual-studio-note{margin:14px 0;padding:12px 14px;background:var(--chip);border-radius:9px;font-size:13px}.visual-studio-note summary{cursor:pointer;color:var(--muted)}.visual-studio-note p{margin:10px 0 0}.visual-note-editor textarea{min-height:240px;max-height:55vh;resize:vertical;font:inherit;line-height:1.6}.visual-note-editor .small{margin-top:8px}@media(max-width:760px){.visual-note-editor textarea{font-size:16px;min-height:220px}}

/* Quiet project suggestions: matching type, small red arrows, individual dismissal. */
.studio-tool{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 18px;min-width:0}
.studio-tool-card{display:flex;align-items:stretch;min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.studio-tool-link{flex:1;display:flex;align-items:center;gap:10px;min-width:0;min-height:44px;padding:9px 12px;background:#fff;color:var(--ink);text-decoration:none;font-family:inherit;font-size:var(--text);font-weight:400;line-height:1.4}
.studio-tool-link>span{flex:1;min-width:0;overflow-wrap:anywhere}
.studio-tool-link:hover{background:#f8f9fb}
.studio-tool-link:focus-visible,.studio-tool-dismiss:focus-visible{outline:2px solid var(--ink);outline-offset:-3px}
.studio-tool-arrow{flex:none;width:18px;height:18px;color:var(--red)}
.studio-tool-dismiss{align-self:center;flex:none;width:28px;height:28px;min-height:28px;margin-right:5px;padding:5px;border:0;border-radius:5px;background:transparent;color:#939ba6}
.studio-tool-dismiss svg{width:18px;height:18px}
.studio-tool-dismiss:hover{background:var(--chip);color:var(--ink);filter:none}
@media(max-width:1100px){.studio-tool{grid-template-columns:minmax(0,1fr)}}
@media(pointer:coarse){.studio-tool-dismiss{width:38px;height:44px;min-height:44px}}

/* Administrative overview - owner cabinet only. */
.service-dashboard #release157Notice{display:none}
.admin-dashboard{display:flex;flex-direction:column;gap:20px;min-width:0}
.admin-dashboard .card{min-width:0;margin:0}
.admin-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.admin-metric{display:flex;flex-direction:column;gap:12px;padding:20px}
.admin-metric>strong{font-size:30px;font-weight:600;line-height:1.2;font-variant-numeric:tabular-nums}
.admin-plans{display:flex;flex-direction:column;gap:18px}
.admin-plans h2{margin:0 0 8px}
.admin-plan-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.admin-plan-row>div{display:flex;flex-direction:column;gap:8px;border-left:2px solid var(--line);padding-left:16px}
.admin-plan-row strong{font-size:24px;font-weight:550;font-variant-numeric:tabular-nums}
.admin-data{padding:0!important;overflow:hidden}
.admin-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);padding:0 22px;overflow:auto}
.admin-tabs button{border:0;border-radius:0;padding:18px 0;background:transparent;color:var(--muted);font:inherit;font-size:14px;white-space:nowrap;border-bottom:2px solid transparent}
.admin-tabs button.on{border-bottom-color:#d6232e;color:var(--ink);font-weight:550}
#adminBody{padding:22px}
.admin-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr));gap:10px}
.admin-filters input,.admin-filters select{width:100%;min-width:0;font:inherit;font-size:13px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.admin-table-scroll{overflow:auto;width:100%;overscroll-behavior-x:contain}
.admin-table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5;text-align:left}
.admin-table th{font-weight:500;color:var(--muted);background:var(--bg);white-space:nowrap}
.admin-table th,.admin-table td{padding:13px 12px;vertical-align:top;border-bottom:1px solid var(--line)}
.admin-table td:first-child{min-width:180px;max-width:250px;overflow-wrap:anywhere}
.admin-table td{min-width:100px}
.admin-table td>strong,.admin-table td>.small{display:block;font-weight:400}
.admin-table tr:last-child td{border-bottom:0}
.admin-table .admin-money{white-space:nowrap;font-variant-numeric:tabular-nums}
.admin-table .admin-open-cabinet{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;padding:8px 10px;min-height:36px;font:inherit;font-size:13px;line-height:1.4;white-space:nowrap;border-radius:8px;max-width:100%}
@media(max-width:760px){.admin-table .admin-open-cabinet{min-height:44px}}
.admin-status{display:block;font-size:12px;color:var(--muted);margin:4px 0}
.admin-status.attention{color:#d6232e}
.admin-inline-stats{display:flex;gap:24px;flex-wrap:wrap;padding:0 0 20px;font-size:13px}
.admin-inline-stats strong{margin-left:8px}
.admin-subtitle{font-size:15px;margin:24px 0 12px}
.admin-mail-list{display:flex;flex-direction:column;gap:12px}
.admin-mail{border:1px solid var(--line);border-radius:8px;padding:16px}
.admin-mail summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px}
.admin-mail summary .small{display:block;margin-top:5px}
.admin-mail pre{font:inherit;font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:18px;border-radius:8px}
@media(max-width:1050px){.admin-filters{grid-template-columns:1fr 1fr}.admin-metric>strong{font-size:26px}}
@media(max-width:760px){.admin-metrics{grid-template-columns:1fr 1fr;gap:10px}.admin-metric{padding:16px}.admin-metric>strong{font-size:25px}.admin-plan-row{grid-template-columns:1fr 1fr;gap:18px}.admin-tabs{gap:20px;padding:0 16px}#adminBody{padding:16px}.admin-filters{grid-template-columns:1fr}.admin-filters input,.admin-filters select{font-size:16px;min-height:44px}.admin-mail summary{align-items:flex-start;flex-direction:column}.admin-inline-stats{gap:14px}}

.service-dashboard .action-history{display:none}
@media(max-width:760px){.mobile-navigation:has(a[href$="#dashboard"]) a{font-size:8px}}

/* Compact mobile navigation, with accessible labels preserved. */
@media(max-width:760px){
 .mobile-navigation,.ws-mobile-navigation{min-height:56px;padding:4px 5px calc(4px + env(safe-area-inset-bottom))}
 .mobile-navigation a,.ws-mobile-navigation a{min-height:48px;gap:0;position:relative}
 .mobile-navigation a>span,.ws-mobile-navigation a>span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .mobile-navigation a:focus-visible,.ws-mobile-navigation a:focus-visible{outline:2px solid var(--ink,#1a1d21);outline-offset:-4px;border-radius:8px}
}
@media(max-width:760px){.workspace{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}

[aria-label="Заявки на разбор"]{margin-bottom:16px}[aria-label="Заявки на разбор"] .row>.button{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}

/* Pricing, feature access and package balance share one compact typography scale. */
.tariff-page-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.tariff-page-intro p{margin:0;max-width:620px}
.tariff-price-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.tariff-price-cards .card{padding:20px;display:flex;flex-direction:column;gap:12px}.tariff-price-cards h2{font-size:16px;margin:0}.tariff-price-cards .featured{border-color:var(--red)}.tariff-price{font-size:28px;font-weight:600;white-space:nowrap}.tariff-price span{font-size:13px;font-weight:400;color:var(--muted)}.tariff-price-cards button{width:100%;font-size:13px;min-height:36px}
.tariff-comparison{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:white}.tariff-comparison table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.tariff-comparison th,.tariff-comparison td{padding:12px 16px;border-bottom:1px solid var(--line);text-align:center;vertical-align:middle;line-height:1.4}.tariff-comparison th:first-child{width:38%;text-align:left}.tariff-comparison thead{background:#f6f7f9}.tariff-comparison tbody th{font-weight:400}.tariff-comparison tbody tr:last-child>*{border-bottom:0}.tariff-comparison .tariff-featured{background:#fbebec50}.tariff-yes{color:#425a49}.tariff-no{color:var(--muted)}.tariff-soon{display:inline-block;padding:2px 6px;margin-left:6px;border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}.tariff-current{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}.tariff-note{font-size:12px;color:var(--muted);line-height:1.5;margin:10px 0}
.tariff-expiry{display:flex;align-items:center;gap:24px;border:1px solid #e3c0c4;border-left:3px solid var(--red);border-radius:12px;background:white;padding:18px 20px;margin-bottom:20px}.tariff-expiry h2,.plan-feature-dialog h2{font-size:16px;line-height:1.4;margin:0 0 10px}.tariff-expiry p{font-size:13px;margin:6px 0}.tariff-expiry>a{flex:none;font-size:13px;white-space:nowrap}.plan-feature-heading{display:flex;align-items:start;justify-content:space-between;gap:24px}.plan-feature-heading>.quiet{padding:0;min-width:32px;font-size:28px;line-height:24px}.plan-feature-dialog p{font-size:13px;line-height:1.5}.plan-feature-dialog .modal-actions{margin-top:24px}.plan-feature-dialog .button,.plan-feature-dialog button{font-size:13px}
.import-balance{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin:24px 0}.import-balance-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.import-balance-heading strong{font-size:16px}.import-balance-heading a{font-size:12px;color:var(--muted)}.import-balance dl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:0 0 16px}.import-balance dl>div{border-left:1px solid var(--line);padding-left:16px}.import-balance dl>div:first-child{border:0;padding:0}.import-balance dt{font-size:12px;color:var(--muted);margin-bottom:6px}.import-balance dd{margin:0;font-size:16px;font-weight:600}.import-balance .button{font-size:13px}.voice-locked{color:var(--muted);display:flex;align-items:center;gap:8px}
@media(max-width:1000px){.tariff-price-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.import-balance dl{grid-template-columns:repeat(2,minmax(0,1fr))}.tariff-expiry,.tariff-page-intro{align-items:flex-start;flex-direction:column;gap:12px}.tariff-comparison table{min-width:740px}}
@media(max-width:760px){.tariff-price-cards .card{padding:16px}.tariff-price{font-size:24px}.tariff-price-cards button,.plan-feature-dialog button,.plan-feature-dialog .button{min-height:44px}.tariff-price span{display:block}.tariff-expiry{padding:16px}.import-balance{padding:16px}.import-balance-heading{align-items:start}.import-balance dl>div{border:0;padding:0}.plan-feature-dialog .modal-actions{display:flex;flex-wrap:wrap}.plan-feature-dialog .modal-actions>*{flex:1;white-space:nowrap}.tariff-page-intro .segments{max-width:100%}.tariff-page-intro .segments button{white-space:normal}}

.import-balance-heading .quiet{padding:0;min-height:32px;font-size:12px;color:var(--muted)}


/* Document sections and cards share the statement drag behaviour. */
.document-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.document-toolbar .document-switch{margin:0}.document-order-button{font-size:13px;min-height:34px;padding:6px 12px}
.document-section-heading{display:flex;align-items:center;gap:8px;margin:0 0 10px;position:relative}.document-section-heading h2{font-size:18px;margin:0;line-height:1.4}.document-section-heading[draggable=true]{cursor:grab}
.document-mini{display:inline-flex;align-items:center;justify-content:center;background:transparent!important;border:0!important;box-shadow:none!important;padding:0;width:30px;height:30px;min-height:30px;color:#aeb5bf;flex:none}.document-mini svg{width:18px;height:18px}.document-mini:hover,.document-mini:focus-visible{color:#505966}.document-mini:focus-visible{outline:2px solid #747f8c;outline-offset:2px}.document-card{position:relative;padding-left:48px}.document-grip{position:absolute;left:10px;top:16px;cursor:grab;touch-action:auto;-webkit-touch-callout:none;user-select:none}
.document-order-list{display:flex;flex-direction:column;gap:8px}.document-order-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid #dce0e6;border-radius:10px;font-size:14px;background:white;position:relative;touch-action:auto;user-select:none;-webkit-touch-callout:none}.document-order-row[draggable=true]{cursor:grab}.document-order-row>div{display:flex;gap:4px}
.document-empty-section{font-size:13px;color:#8a929e;border:1px dashed #dce0e6;border-radius:12px;padding:16px;min-height:52px}.document-drag-source{opacity:.25}.document-drop-before::before,.document-drop-after::after{content:'';position:absolute;left:0;right:0;height:3px;background:#cf5b64;z-index:3;border-radius:2px}.document-drop-before::before{top:-6px}.document-drop-after::after{bottom:-6px}.document-drop-empty{outline:2px solid #cf5b64;outline-offset:4px;border-radius:12px}.document-drag-preview,.document-touch-preview{background:#fff;box-shadow:0 14px 35px #20263035;pointer-events:none;opacity:.96;border-radius:12px;z-index:10020}.document-drag-preview{position:fixed;top:-10000px;left:0}.document-touch-preview{position:fixed;margin:0!important;max-height:55vh;overflow:hidden;transform:rotate(-1deg)}.document-dragging{cursor:grabbing}.document-section-heading{touch-action:auto;user-select:none;-webkit-touch-callout:none}
@media(max-width:760px){.document-card{padding-left:46px}.document-mini{width:34px;height:34px;min-height:34px}.document-grip{left:6px;top:12px}.document-toolbar{gap:10px;margin-bottom:16px}.document-section-heading h2{font-size:18px}.document-order-button{min-height:36px}}

.visual-round-panel{border-top:1px solid #e2e6ec;margin:0;min-width:0}.visual-round-panel>summary{display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 0;list-style:none;cursor:pointer;font-size:14px;line-height:1.4}.visual-round-panel>summary::-webkit-details-marker{display:none}.visual-round-panel>summary:focus-visible{outline:2px solid #747f8c;outline-offset:4px;border-radius:6px}.visual-round-chevron{width:16px;height:16px;flex:none;color:#8a929e}.visual-round-panel[open]>summary .visual-round-chevron{transform:rotate(90deg)}.visual-round-cover{width:38px;height:48px;object-fit:cover;flex:none;border-radius:6px;background:#f1f3f6}.visual-round-label{font-weight:600;min-width:0}.visual-round-panel>summary>.chip{margin-left:auto;flex:none;font-size:12px}.visual-round-toggle{color:#7a8390;font-size:12px;flex:none;width:66px;text-align:right}.visual-round-collapse,.visual-round-panel[open] .visual-round-expand{display:none}.visual-round-panel[open] .visual-round-collapse{display:inline}.visual-round-panel>.visual-round{padding:0 0 14px}.document-remove{position:absolute;left:10px;top:52px}.document-remove:hover,.document-remove:focus-visible{color:#c85661}.visual-round-panel summary .chip{white-space:normal}
.visual-round-cover.empty{display:block;border:1px solid #e2e6ec}.visual-review-control{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin:0 0 12px;color:#69717c;font-size:12px}.visual-review-select{min-height:36px;padding:6px 34px 6px 10px;border:1px solid #dee2e8;border-radius:8px;background:#fff;color:#1a1d21;font:inherit;font-size:13px}.visual-round-actions{align-items:center}.visual-more{position:relative;min-width:0}.visual-more>summary{list-style:none;display:flex;align-items:center;min-height:36px;padding:6px 11px;border:1px solid #dee2e8;border-radius:8px;background:#fff;color:#69717c;cursor:pointer;font-size:13px}.visual-more>summary::-webkit-details-marker{display:none}.visual-more>summary::after{content:'⌄';margin-left:9px;font-size:16px;line-height:1}.visual-more-content{position:absolute;left:0;top:calc(100% + 4px);z-index:20;min-width:210px;padding:5px;background:#fff;border:1px solid #dee2e8;border-radius:9px;box-shadow:0 10px 24px #2026301c}.visual-more-content button{display:block;width:100%;min-height:36px;padding:7px 9px;border:0;border-radius:6px;background:transparent;color:#1a1d21;text-align:left;font:inherit;white-space:nowrap;cursor:pointer}.visual-more-content button:hover,.visual-more-content button:focus-visible{background:#f2f4f6}.visual-review-select:focus-visible,.visual-more>summary:focus-visible{outline:2px solid #747f8c;outline-offset:2px}
@media(max-width:760px){.visual-round-panel>summary{gap:8px;flex-wrap:wrap;min-height:64px}.visual-round-label{flex:1}.visual-round-toggle{display:none}.visual-round-panel>summary>.chip{font-size:12px;margin-left:24px;max-width:calc(100% - 24px)}.document-remove{left:6px;top:50px}}
@media(max-width:760px){.visual-review-control{width:100%;justify-content:space-between}.visual-review-select{min-height:44px}.visual-more>summary,.visual-more-content button{min-height:44px}.visual-more-content{left:0;right:auto;max-width:calc(100vw - 32px)}.visual-room-heading h3{max-width:100%}}

[data-visual-copy][hidden]{display:none}

/* Project stage content uses the same caption, body and heading roles. */
.project-workspace .stage-card :is(h2,h3,h4){font-size:var(--section)}
.project-workspace .stage-card :is(button,input,select,textarea,p,.visual-round-panel>summary){font-size:var(--text)}
.project-workspace .stage-card :is(label,.small,.stage-notes,.stage-review-repeat,.material-history summary,.stage-file-name>.small,.visual-round-status,.visual-round-count,.visual-round-time){font-size:var(--caption)}

.calendar-month-controls h2,.calendar-month-controls button,.calendar-details h2,.calendar-week>h2,.calendar-list-day>h3{font-size:var(--section)}
.calendar-event-actions button{font-size:var(--text)}
.calendar-legend{font-size:var(--caption)}
.document-card h3{font-size:var(--text);font-weight:600}
.document-section>h2,.document-section-heading h2,.document-upload h2,.document-facts strong{font-size:var(--section)}
.document-order-row{font-size:var(--text)}
.document-preview-placeholder{font-size:var(--caption)}
@media(max-width:760px){.cal-day>span.cal-date{font-size:var(--section)}.calendar-month-controls h2,.document-section-heading h2{font-size:var(--section)}}

.visual-review-controls{display:flex;flex-wrap:wrap;gap:3px;width:max-content;max-width:100%;padding:3px;border:1px solid #e0e4ea;background:#f4f5f7;border-radius:9px;margin:0 0 12px}.visual-review-controls button{border:0;box-shadow:none;background:transparent;color:#737d8a;font-size:13px;font-weight:400;min-height:32px;padding:6px 12px;border-radius:6px;white-space:nowrap}.visual-review-controls button[aria-pressed=true]{background:#fff;color:#1a1d22;box-shadow:0 1px 3px #18202c14}.visual-review-controls .visual-review-approved[aria-pressed=true]{color:#367150}.visual-review-controls .visual-review-changes[aria-pressed=true]{color:#bd424e}.visual-review-controls button:focus-visible{outline:2px solid #747f8c;outline-offset:1px}.visual-feedback strong{margin-right:12px}.visual-feedback button{font-size:13px;padding:4px 0;min-height:30px}.visual-status-changes{color:#bd424e;background:#faf0f1}
@media(max-width:760px){.visual-review-controls{width:100%;gap:2px}.visual-review-controls button{flex:1;padding:7px 8px;min-height:40px;font-size:13px}.visual-review-controls .visual-review-review{flex-basis:100%}}


/* Calendar events share the same editor and drag surface in every view. */
.calendar-grid .cal-day{position:relative;cursor:default}
.calendar-grid .cal-day[data-action="calendar-day"]{cursor:pointer}
.calendar-grid .cal-day .cal-date{display:grid;place-items:center;flex:none;width:34px;height:34px;min-height:34px;padding:0;margin:0 0 5px;background:transparent;color:var(--ink);font-size:var(--section);line-height:1;font-weight:400;border-radius:50%;align-self:flex-start}
.calendar-grid .cal-day.weekend .cal-date{color:var(--muted)}
.calendar-grid .cal-day.today .cal-date{color:var(--red);font-weight:500}
.calendar-grid .cal-day.selected .cal-date{background:var(--ink);color:white}
.calendar-grid .cal-day .cal-dots{margin:0 0 5px}
.calendar-grid .cal-day .cal-event{width:100%;min-width:0;text-align:left;color:var(--ink);font-size:var(--caption);line-height:1.4;padding:5px 6px;margin:2px 0;display:block}
.cal-event strong{font:inherit}
.calendar-grid .cal-more{align-self:flex-start;background:transparent;color:var(--muted);font-size:var(--caption);min-height:28px;padding:3px 6px}
.calendar-event[data-event-id]{touch-action:auto;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}
.calendar-event[draggable="true"]{cursor:grab}
.calendar-event-button{display:block;width:100%;min-width:0;text-align:left;padding:3px 0;background:transparent;color:var(--ink);border-radius:5px;font-size:var(--text);line-height:1.5;white-space:normal}
.calendar-event-button strong{font-weight:500}
.calendar-event-button .small{display:block;margin-top:3px;overflow-wrap:anywhere}
.calendar-event-button:hover{filter:none;background:var(--chip)}
.calendar-event:focus-visible,.cal-date:focus-visible,.cal-more:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.calendar-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.calendar-day-heading :is(h2,h3){margin:0;font-size:var(--section)}
.calendar-add-task{font-size:var(--text);min-height:40px;white-space:nowrap}
.calendar-event-actions{margin-top:6px}
.calendar-details.cal-drop-target,.calendar-list-day.cal-drop-target{outline:2px solid var(--red);outline-offset:-2px;background:#fff5f6}
.workspace-calendar-touch-source{opacity:.3}
.workspace-calendar-touch-preview{position:fixed;z-index:180;pointer-events:none!important;padding:6px 8px;border-radius:6px;background:var(--card);color:var(--ink);font:var(--text)/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-shadow:0 12px 28px #0003;opacity:.95;margin:0;box-sizing:border-box;text-align:left}
.calendar-form-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.calendar-form-heading h2{margin:0;font-size:var(--section)}
.calendar-form-close{flex:none;width:44px;height:44px;min-height:44px;padding:0}
.calendar-form-title{font-size:var(--text);color:var(--muted);overflow-wrap:anywhere;margin-bottom:16px}
.calendar-form-fields{border:0;padding:0;margin:0;min-width:0}
.calendar-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.calendar-editor-grid .field{margin:0;min-width:0}
.calendar-editor :is(input,select){min-height:40px;max-width:100%;font-size:var(--text)}
.calendar-editor :is(input[type="date"],input[type="time"]){display:block;width:100%;min-width:0;min-inline-size:0;-webkit-appearance:none;appearance:none;text-align:left;box-sizing:border-box}
.calendar-editor input::-webkit-date-and-time-value{text-align:left;min-width:0}
.calendar-form-error{color:var(--red);font-size:var(--text);margin:14px 0 0;overflow-wrap:anywhere}
.calendar-form-error[hidden]{display:none}
.task-composer-fields{grid-template-columns:minmax(120px,1fr) minmax(150px,1.3fr) minmax(125px,1fr) minmax(95px,.7fr) 38px}
@media(max-width:1100px) and (min-width:761px){.task-composer-fields{grid-template-columns:repeat(2,minmax(0,1fr)) 38px}.task-composer-fields>button{grid-column:3;grid-row:2;justify-self:end}}
@media(max-width:760px){
 .calendar-grid .cal-day{height:72px;min-height:72px;align-items:center;padding:6px 0;gap:2px}
 .calendar-grid .cal-day .cal-date{width:100%;height:44px;min-height:44px;max-width:44px;margin:0;align-self:center}
 .calendar-grid .cal-day .cal-dots{margin:0}
 .calendar-grid .cal-day .cal-event,.calendar-grid .cal-day .cal-more{display:none}
 .calendar-event-button{min-height:44px}
 .calendar-add-task{min-height:44px}
 .calendar-editor :is(input,select){min-height:44px;font-size:var(--section)}
 .calendar-editor-grid{gap:12px 10px}
 .task-composer-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Document transfer: scoped editor, ordinary native scrolling and existing type roles. */
.document-transfer-hint{color:var(--muted);font-size:var(--caption);flex-basis:100%;order:10}
.document-analysis-progress{display:flex;align-items:center;gap:12px;flex:1 0 100%;min-width:0;padding:12px 14px;margin-top:8px;border:1px solid #d9dfe6;border-left:3px solid var(--red);border-radius:8px;background:#fff;color:var(--ink)}
.document-actions:has(.document-analysis-progress){width:100%;margin-left:0}
.document-analysis-progress strong{display:block;font-size:var(--text);font-weight:600}
.document-analysis-progress p{margin:3px 0 0;color:var(--muted);font-size:var(--caption);line-height:1.45}
.document-analysis-progress button{margin-left:auto;flex:none}
.document-analysis-spinner{width:22px;height:22px;flex:none;border:2px solid #e6e8ec;border-top-color:var(--red);border-radius:50%;animation:document-analysis-spin .9s linear infinite}
@keyframes document-analysis-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.document-analysis-spinner{animation:none;border-top-color:var(--red)}}
@media(max-width:600px){.document-analysis-progress{flex-wrap:wrap}.document-analysis-progress button{margin-left:34px}}
.document-actions .document-statement-action{color:var(--red);background:#fff;border:1px solid #e2c9cb}
.document-actions .document-statement-badge{color:var(--muted);font-size:var(--caption);border:0;background:transparent;padding:6px 0}
.document-statement-dialog{width:min(740px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);padding:0;border-radius:12px;background:var(--card);color:var(--ink);font-size:var(--text);overflow:hidden}
.document-statement-dialog .ds-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.document-statement-dialog h2,.document-statement-dialog h3{margin:0;font-size:var(--section);font-weight:600;line-height:1.4}
.document-statement-dialog h3{font-size:var(--text)}
.document-statement-dialog .ds-caption,.document-statement-dialog .ds-field>span,.document-statement-dialog dt{font-size:var(--caption);color:var(--muted)}
.document-statement-dialog .ds-caption{margin:6px 0;overflow-wrap:anywhere}
.document-statement-dialog .ds-close{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;background:transparent;color:var(--muted);border:0}
.document-statement-dialog .ds-form{display:flex;flex-direction:column;max-height:calc(100dvh - 130px);margin:0}
.document-statement-dialog .ds-body{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:14px 16px;touch-action:pan-y}
.document-statement-dialog .ds-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}
.document-statement-dialog .ds-field{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.document-statement-dialog :is(input,select){font-size:var(--text);width:100%;min-width:0;min-height:36px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}
.document-statement-dialog :is(button,input,select,summary):focus-visible{outline:2px solid var(--red);outline-offset:2px}
.document-statement-dialog .ds-quote-row{border:1px solid var(--line);border-radius:8px;padding:12px;margin:10px 0}
.document-statement-dialog .ds-row-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:10px}
.document-statement-dialog .ds-row-heading h3{overflow-wrap:anywhere}
.document-statement-dialog .ds-missing-data{margin:0 0 12px;padding:8px 10px;border-radius:6px;background:#f3f4f6;color:var(--ink);font-size:var(--caption);line-height:1.5}
.document-statement-dialog .ds-act-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,180px);align-items:center;gap:10px 12px;margin-top:12px}
.document-statement-dialog .ds-act-check{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--text);cursor:pointer}
.document-statement-dialog .ds-act-check input{width:18px;height:18px;min-height:18px;flex:none;padding:0;accent-color:var(--red)}
.document-statement-dialog .ds-extra{margin:12px 0 0;color:var(--muted)}
.document-statement-dialog .ds-extra summary{cursor:pointer;font-size:var(--caption)}
.document-statement-dialog .ds-extra .ds-fields{margin-top:10px}
.document-statement-dialog .ds-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0 0}
.document-statement-dialog .ds-compare section{min-width:0;padding:10px;background:var(--chip);border-radius:7px}
.document-statement-dialog .ds-compare section+section{background:#fff;border:1px solid var(--line)}
.document-statement-dialog .ds-compare dl{margin:8px 0 0}
.document-statement-dialog .ds-compare dl>div{margin-top:6px}
.document-statement-dialog dd{margin:1px 0 0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.document-statement-dialog .ds-warnings{background:var(--chip);border-left:2px solid #a3aab4;border-radius:5px;padding:8px 10px;margin:10px 0;color:var(--muted);font-size:var(--caption)}
.document-statement-dialog .ds-warnings p{margin:2px 0}
.document-statement-dialog .ds-error{color:var(--red);margin:12px 0 0;overflow-wrap:anywhere}
.document-statement-dialog .ds-refresh{margin-top:10px}
.document-statement-dialog .ds-foot{display:flex;justify-content:flex-end;gap:8px;flex:none;padding:10px 16px;border-top:1px solid var(--line);background:#fff}
.document-statement-dialog .ds-foot button{min-height:36px;padding:7px 12px;border-radius:6px;font-size:var(--text)}
.document-statement-dialog .ds-foot [type=submit]{background:var(--red)}
.document-statement-dialog [hidden]{display:none!important}
body.demo-shell .document-statement-dialog{max-height:calc(100dvh - 88px);margin-top:72px}
body.demo-shell .document-statement-dialog .ds-form{max-height:calc(100dvh - 190px)}
@media(max-width:760px){.document-statement-dialog :is(input,select){font-size:16px;min-height:44px}.document-statement-dialog .ds-close,.document-statement-dialog .ds-foot button{min-height:44px}.document-statement-dialog .ds-fields{gap:10px}.document-statement-dialog .ds-quote-row{padding:10px}.document-actions .document-statement-action{min-height:44px}.document-statement-dialog .ds-compare{gap:8px}}
@media(max-width:360px){.document-statement-dialog .ds-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.document-statement-dialog .ds-field:has([name="itemId"],[name="condition"],[name="reference"],[name$="_name"],[name$="_section"],[name$="_itemId"],[name$="_supplier"],[name$="_rooms"],[name$="_dim"],[name$="_url"]){grid-column:1/-1}}

@media(max-width:600px){.document-statement-dialog .ds-act-fields{grid-template-columns:minmax(0,1fr)}.document-statement-dialog .ds-act-check{min-height:44px}}

/* Document contents aligns with the first card, below its section heading. */
#content:has(>.documents-layout){--document-contents-width:210px;--document-contents-gap:20px;}
.documents-layout{display:grid;grid-template-columns:var(--document-contents-width,210px) minmax(0,1fr);align-items:start;gap:var(--document-contents-gap,20px);}
@media(min-width:1101px){#content>.documents-drag-hint{margin-left:calc(var(--document-contents-width,210px) + var(--document-contents-gap,20px));}}
.documents-list,.document-contents{min-width:0;}
.document-section-action{font-size:var(--caption);min-height:30px;padding:4px 8px;flex-shrink:0;}
@media(max-width:760px){.document-section-action{min-height:44px;}}
.document-section-heading h2{min-width:0;overflow-wrap:anywhere;}
.documents-list>.document-section{scroll-margin-top:24px;outline:none;}
.document-contents{position:sticky;top:20px;margin-top:var(--document-contents-offset,40px);}
.document-contents details{border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px;box-shadow:var(--shadow);}
.document-contents summary{display:flex;align-items:center;justify-content:space-between;list-style:none;font-size:var(--section);font-weight:600;cursor:pointer;}
.document-contents summary::-webkit-details-marker{display:none;}
.document-contents summary span{font-size:14px;color:var(--muted);transition:transform .15s;}
.document-contents details[open]>summary span{transform:rotate(180deg);}
.document-contents nav{display:flex;flex-direction:column;gap:4px;margin-top:10px;max-height:calc(100dvh - 190px);overflow-y:auto;padding:4px;}
.document-toc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;position:relative;padding:8px;border-radius:7px;font-size:var(--caption);line-height:1.45;cursor:pointer;touch-action:auto;user-select:none;-webkit-touch-callout:none;}
.document-toc-row>span{min-width:0;overflow-wrap:anywhere;}
.document-toc-row small{font-size:inherit;color:var(--muted);flex-shrink:0;}
.document-toc-row:hover,.document-toc-row[aria-current]{background:var(--chip);}
.document-toc-row:focus-visible{outline:2px solid var(--red);outline-offset:-2px;}
.document-toc-hint{font-size:var(--caption);line-height:1.45;color:var(--muted);margin:10px 4px 2px;}
.document-toc-order{font-size:var(--caption);padding:8px 4px;}
@media(max-width:1100px){.documents-layout{grid-template-columns:minmax(0,1fr);gap:16px;}.document-contents{position:static;margin-top:0;}.document-contents nav{max-height:45dvh;}.document-contents summary{min-height:28px;}.document-toc-row{min-height:44px;align-items:center;}.documents-list>.document-section{scroll-margin-top:80px;}}

/* Clear entry point and row actions in the personal finance table. */
.finance-instructions{max-width:850px;line-height:1.5;margin:8px 0 0}
.finance-grid.monthly .finance-row-title{display:flex;align-items:flex-start;gap:4px;min-width:0}
.finance-grid.monthly .finance-row-title .finance-name{flex:1;min-width:0}
.finance-grid.monthly .finance-delete{flex:none;width:32px;min-height:36px;padding:0;background:transparent;color:var(--muted);font-size:20px;font-weight:400;line-height:1}
.finance-grid.monthly .finance-delete:hover,.finance-grid.monthly .finance-delete:focus-visible{color:var(--red);background:#faf1f2}
.finance-group-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.finance-group-heading>span{min-width:0;overflow-wrap:anywhere}
.finance-grid.monthly .finance-remove-group{flex:none;width:32px;min-height:32px;padding:0;border-radius:7px;background:transparent;color:var(--muted);font-size:19px;font-weight:400;line-height:1}
.finance-grid.monthly .finance-remove-group:hover,.finance-grid.monthly .finance-remove-group:focus-visible{color:var(--red);background:#fff}
.finance-grid.monthly .finance-add button{color:var(--ink);background:var(--chip);border:1px solid var(--line);border-radius:8px;padding:7px 10px;margin:5px 0;font-size:13px}
.finance-grid.monthly .finance-value{border-color:var(--line);background:#fafbfc}
.finance-grid.monthly .finance-value:focus{background:white;border-color:var(--ink)}
.finance-grid.monthly .finance-new-row button{white-space:nowrap}
@media(pointer:coarse){.finance-grid.monthly .finance-delete{width:36px;min-height:44px}}
@media(pointer:coarse){.finance-grid.monthly .finance-remove-group{width:44px;min-height:44px}}

/* Shared task controls: hand, pencil and cross at the left edge. */
.task-board{display:grid;grid-template-columns:repeat(4,minmax(235px,1fr));gap:16px;overflow-x:auto;align-items:start;padding:2px 2px 16px;overscroll-behavior-x:contain}
.task-board .task-group{align-self:stretch;margin:0;min-width:0;border-radius:12px;min-height:180px}
.task-group>h2{font-size:16px;display:flex;align-items:center;gap:8px;margin:0 0 10px}
.task-drop-list{min-height:120px;display:grid;gap:10px;align-content:start}
.task-board .managed-task,.task-list-view .managed-task{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--task-fill,var(--card));border:1px solid var(--task-border,var(--line));border-radius:12px;margin:0}
/* Fill the entire task card; keep the text and controls fully opaque. */
.managed-task[data-task-attention=high]{--task-fill:linear-gradient(#d9931a29,#d9931a29),var(--card);--task-border:#d9931a52}
.managed-task[data-task-attention=overdue]{--task-fill:linear-gradient(#d6232e38,#d6232e38),var(--card);--task-border:#d6232e85}
.managed-task[data-task-attention=overdue] .task-details,.task-overdue{color:#a11b25}
.task-overdue{margin-top:3px;font-weight:600}
.task-list-view .task-group{margin-bottom:24px}
.managed-task .task-tool-rail{display:flex;flex-direction:column;gap:2px;flex:none;width:28px}
.managed-task .task-main{min-width:0;flex:1;padding:0}
.task-mini{padding:4px;width:28px;height:28px;background:transparent;color:#aab1bc;border-radius:5px;flex:none}
.task-mini svg{width:19px;height:19px;pointer-events:none}
.task-mini:hover,.task-mini:focus-visible{color:var(--ink);background:var(--chip)}
.task-remove:hover{color:var(--red)}.task-grip{cursor:grab;touch-action:auto;-webkit-touch-callout:none;user-select:none}
.managed-task .task-title{font-size:13px;font-weight:500;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}
.managed-task .task-row-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:9px}
.task-row-footer button:not(.task-check){font-size:12px;padding:5px 7px}
.task-row-footer label{margin:0}.task-empty{padding:18px 12px;border:1px dashed var(--line);border-radius:12px}
.task-drop-active{background:#fff4f4;outline:2px solid #d6232e;outline-offset:3px}
.task-drop-marker{height:4px;flex:none;border-radius:4px;background:#d6232e;box-shadow:0 0 0 4px #d6232e20;margin:7px 0;pointer-events:none}
.task-drag-indicator{position:fixed;z-index:10001;right:20px;bottom:20px;max-width:min(340px,calc(100vw - 40px));padding:10px 14px;border-radius:9px;background:#292d33;color:#fff;box-shadow:0 8px 28px #18203035;font-size:13px;font-weight:600;pointer-events:none}
.task-drag-source{opacity:.35;outline:2px dashed #d6232e;outline-offset:2px}.task-drag-preview,.task-touch-preview{background:var(--task-fill,var(--card))!important;border:2px solid #d6232e;border-radius:12px;box-shadow:0 18px 38px #18203055;padding:12px;pointer-events:none;z-index:10000}
.task-drag-preview{position:fixed;left:-10000px;top:0}.task-touch-preview{position:fixed;opacity:.95;max-width:340px}
.managed-task,.managed-task *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.managed-task :is(input,textarea,select){-webkit-user-select:text;user-select:text}
.managed-task.gesture-holding{outline:2px dashed #d6232e;outline-offset:2px}
.managed-task .task-title{cursor:grab}
.task-controls-hint{line-height:1.5}.managed-task .task-result{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:760px){.task-board{grid-template-columns:repeat(4,minmax(270px,82vw));gap:12px}.task-mini{width:32px;height:36px}.managed-task .task-tool-rail{width:32px}.task-board .managed-task,.task-list-view .managed-task{padding:10px;gap:8px}}

.document-section-grip{cursor:grab;touch-action:auto;-webkit-touch-callout:none;user-select:none}.document-section-grip:active{cursor:grabbing}

/* Task stages: one explicit next action per card. */
.task-row-footer .task-next{display:flex;align-items:center;gap:8px;text-align:left;color:var(--muted);background:transparent;border:0;padding:4px 0;min-height:36px;font-size:12px;line-height:1.4}
.task-row .task-next .task-check{display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;min-width:22px;margin:0;border:1.5px solid #b98918;border-radius:50%;background:transparent;color:transparent}
.task-row .task-next .task-check.checked,.task-row.task-completing .task-next .task-check{background:#b98918;border-color:#b98918;color:#fff}
.task-next:hover{color:var(--ink)}
.managed-task{overflow-wrap:anywhere}
.task-drag-source{user-select:none}

/* Task creation is visible at the top and available inside every status group. */
.task-composer{padding:14px 16px;margin-bottom:20px}
.task-composer-label{display:block;color:var(--ink);font-size:var(--text);font-weight:600;margin:0 0 6px}
.task-composer>.voice-control{margin:8px 0;row-gap:8px}
.task-composer .ai-dictation-preview:empty{display:none}
.task-composer>:is(input,textarea){border:1px solid var(--line);border-radius:8px;background:#f8f9fb;padding:11px 12px;min-height:42px}
.task-composer>:is(input,textarea):hover{border-color:#abb4c0}
.task-composer>:is(input,textarea):focus{background:#fff;border-color:#8893a1}
.task-composer-fields{grid-template-columns:minmax(120px,1fr) minmax(150px,1.3fr) minmax(120px,1fr) minmax(125px,1fr) minmax(110px,.8fr) auto;gap:12px}
.task-composer-fields :is(input,select),.task-composer-fields>button{min-height:44px}
.task-composer-fields label{position:static;width:auto;height:auto;overflow:visible;clip:auto;display:block;margin-bottom:6px;font-size:var(--caption)}
.task-composer-fields>button{width:auto;min-width:94px;height:40px;border-radius:8px;padding:9px 15px;font-size:var(--text);grid-column:auto;grid-row:auto}
.task-composer-fields>button:disabled{opacity:.45}
.task-add-inline{display:flex;align-items:center;gap:7px;width:100%;min-height:38px;padding:9px 11px;margin-top:0;border:1px dashed #c4cbd5;border-radius:9px;background:transparent;color:var(--muted);font-size:var(--caption);font-weight:400;text-align:left}
.task-add-inline>span{font-size:19px;line-height:16px;color:var(--ink)}
.task-add-inline:hover,.task-add-inline:focus-visible{background:#fff;border-color:#929dac;color:var(--ink);filter:none}
.task-drop-list.is-empty{min-height:0}
.task-create-slot.is-empty .task-add-inline{min-height:76px;margin-top:0;justify-content:center}
.task-inline-form{margin-top:0;padding:12px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.task-create-slot.is-empty .task-inline-form{margin-top:0}
.task-inline-form fieldset{border:0;padding:0;margin:0;min-width:0}
.task-inline-form label{font-size:var(--caption);margin-bottom:6px}
.task-inline-form fieldset>label{display:block;color:var(--ink);font-weight:500}
.task-inline-form textarea{min-height:68px;resize:vertical;margin-bottom:10px}
.task-inline-form input,.task-inline-form select,.task-inline-form textarea{padding:8px;font-size:var(--text);min-width:0}
.task-inline-form .field{margin-bottom:10px;min-width:0}
.task-inline-form summary{color:var(--muted);font-size:var(--caption);cursor:pointer;min-height:30px;padding:4px 0}
.task-inline-details{display:grid;gap:0 10px;grid-template-columns:1fr}
.task-inline-actions{display:flex;align-items:center;gap:6px;margin-top:8px}
.task-inline-actions button{min-height:36px;padding:8px 11px;font-size:var(--caption)}
.task-inline-actions [type=submit]:disabled{opacity:.45;cursor:default}
.task-create-error{font-size:var(--caption);color:var(--red);overflow-wrap:anywhere;margin:8px 0}
.task-list-view .task-create-slot{max-width:680px}
.task-list-view .task-create-slot.is-empty .task-add-inline{min-height:38px;justify-content:flex-start}
.task-list-view .task-inline-details{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1100px) and (min-width:761px){
 .task-composer-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .task-composer-fields>button{grid-column:2;grid-row:auto;justify-self:end}
}
@media(max-width:760px){
 .task-composer{padding:14px}.task-composer-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .task-composer-fields>button{grid-column:2;justify-self:end}
 .task-composer-fields input,.task-composer-fields select{min-width:0;min-height:44px;padding-left:8px;padding-right:8px}
 .task-add-inline,.task-inline-actions button{min-height:44px}
 .task-list-view .task-inline-details{grid-template-columns:1fr}
}

/* Site visit and client-message photos use square previews; originals open from the card. */
.visit-materials{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.visit-materials .material img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover}

/* Card holds on touch do not select text or open the iPad link preview. */
.managed-task,.document-card,.document-section-heading,.document-order-row,.document-toc-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
:is(.managed-task,.document-card) :is(input,textarea,[contenteditable=true]){-webkit-user-select:text;user-select:text}
.gesture-holding{outline:1px dashed #939ca8;outline-offset:2px}
.task-drag-source,.document-drag-source{outline:2px solid #939ca8;outline-offset:2px}
.task-move-cue{position:absolute;right:10px;bottom:10px;background:#2b2e33;color:#fff;padding:5px 9px;border-radius:7px;font-size:12px;z-index:2;pointer-events:none}
.managed-task{position:relative}
.task-arriving{animation:task-arrival 1.8s ease-out}
@keyframes task-arrival{0%,35%{box-shadow:0 0 0 2px #8896ac,0 6px 18px #24314922}100%{box-shadow:0 0 0 2px transparent}}
@media(prefers-reduced-motion:reduce){.task-arriving{animation:none;outline:2px solid #8896ac;outline-offset:2px}}

.document-card img{-webkit-user-drag:none}

/* Visit draft: manual tasks and a visible AI processing state. */
.visit-manual-tasks{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.visit-manual-tasks>p{margin:8px 0 0}.visit-manual-task{border:1px solid var(--line);border-radius:10px;padding:14px;margin:0 0 12px}.visit-manual-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.visit-manual-heading strong{font-size:13px}.visit-manual-heading button{font-size:22px;line-height:24px;min-width:36px;min-height:36px;padding:4px}.visit-manual-task label{margin-bottom:10px}.visit-manual-task .ai-draft-fields label{margin-bottom:0}.visit-composer-entry{margin-bottom:20px}.visit-composer-actions{flex-wrap:wrap}
.dictation-progress{display:flex;align-items:center;gap:10px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#f5f6f8;color:var(--ink);font-size:13px;line-height:1.5}.dictation-progress strong{font-weight:500}.dictation-spinner{width:16px;height:16px;flex-shrink:0;border:2px solid var(--line);border-top-color:var(--red);border-radius:50%;animation:dictation-spin .8s linear infinite}@keyframes dictation-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.dictation-spinner{animation:none}}

/* iPad: the lifted preview signals that the two-second hold has completed. */
.document-description,.document-description *,.document-section-heading *,.document-toc-row *{
 -webkit-touch-callout:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;
}
.document-touch-preview,.document-touch-preview *{pointer-events:none!important}
.document-dragging .document-drag-source{outline:2px solid #d6232e;outline-offset:2px}
.document-touch-preview{outline:1px solid #d6232e;transform:translateY(-6px) rotate(-1deg)}

/* Keep history controls inside the iPad workspace header. */
@media (min-width:761px) and (max-width:900px){
 #header{gap:10px}
 #header .action-history button{padding-inline:6px}
}
@media (min-width:761px) and (max-width:800px){
 #header{flex-wrap:wrap}
 #header>.action-history-dock{flex-basis:100%;width:100%;margin-left:0}
}
/* Room-specific presentation history and explicit project schedule. */
.visual-room-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:10px}.visual-room-heading h3{font-size:var(--text);flex:1;min-width:0;overflow-wrap:anywhere}.visual-round-switcher{display:flex;align-items:center;flex-wrap:wrap;gap:6px;max-width:65%}.visual-round-switcher .visual-round-circle{display:grid;place-items:center;flex:none;width:34px;height:34px;min-height:34px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:var(--caption)}.visual-round-switcher .visual-round-circle.selected{background:var(--red);border-color:var(--red);color:#fff}.visual-round-add{color:var(--muted)}.visual-current-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.visual-current-heading .chip{font-size:var(--caption)}.visual-description,.visual-studio-note,.visual-feedback{font-size:var(--caption)}.visual-description summary,.visual-studio-note summary,.visual-feedback summary{cursor:pointer}.visual-round{padding:10px 0}.visual-round-actions{gap:8px}.visual-room{padding:16px 0}.visual-round .pre{font-size:var(--text);margin-top:8px}.stage-card-heading .stage-title{flex:1;min-width:0;max-width:100%}.stage-card-heading{margin-bottom:16px}.stage-schedule-summary{display:grid;gap:10px;margin:12px 0 0}.stage-schedule-summary p{margin:0}.stage-schedule-period{font-size:var(--text);color:var(--ink)}.stage-schedule-controls{display:flex;align-items:center;gap:8px}.stage-schedule-button{min-height:44px;border:1px solid var(--ui-divider,#aab3c1);background:var(--card);color:var(--ink);font-size:var(--caption);padding:9px 12px}.schedule-info{position:relative;display:inline-flex}.schedule-info-button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border:1px solid var(--ui-divider,#aab3c1);border-radius:50%;background:var(--card);color:var(--muted);font-size:var(--text)}.schedule-help{display:none;position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:calc(100vw - 48px);padding:12px;z-index:40;background:var(--card);color:var(--ink);box-shadow:0 8px 24px #0002;border:1px solid var(--line);border-radius:8px;font-size:var(--caption);line-height:1.6}.schedule-info:has(.schedule-info-button:focus-visible) .schedule-help,.schedule-info.show-info .schedule-help{display:block}@media(hover:hover){.schedule-info:hover .schedule-help{display:block}}.schedule-offer{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-left:2px solid var(--red);background:var(--card);border-radius:8px;margin:16px 0}.schedule-offer strong{font-size:var(--text)}.schedule-offer p{font-size:var(--caption);color:var(--muted);margin:6px 0 0}.schedule-offer button{font-size:var(--caption);min-height:36px}.stage-schedule-fields{display:grid;gap:12px}.stage-schedule-fields .field{margin:0}.schedule-preview{font-size:var(--text);font-weight:600;margin:0}.schedule-follow{display:flex;align-items:center;gap:8px;font-size:var(--text)}.schedule-changes{display:grid;gap:12px}.schedule-changes>div{border-top:1px solid var(--line);padding-top:12px}.schedule-changes strong{font-size:var(--text)}.schedule-changes p{font-size:var(--caption);margin:5px 0;color:var(--muted)}
@media(max-width:760px){.visual-room-heading{align-items:flex-start;flex-direction:column;gap:10px}.visual-round-switcher{max-width:100%}.visual-round-switcher .visual-round-circle{width:44px;height:44px;min-height:44px}.stage-card-heading .stage-title{flex-basis:100%}.schedule-offer button{min-height:44px}.stage-schedule-summary>.small{flex-basis:100%}}
@media(min-width:761px) and (max-width:800px){.project-workspace #header{flex-wrap:wrap!important}.project-workspace #header>.action-history-dock{flex:0 0 100%;max-width:100%;width:100%;margin-left:0}}

/* The same quick controls are available on the board, list and people views. */
.task-quick-fields{display:grid;gap:4px;margin:9px 0 7px;min-width:0}
.task-quick-fields>label{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:6px;margin:0;color:var(--muted);font-size:var(--caption);min-width:0}
.task-quick-fields :is(select,input){min-width:0;width:100%;min-height:32px;padding:5px 6px;font-size:var(--caption);color:var(--ink);background:transparent;border:1px solid transparent;border-radius:5px;cursor:pointer}
.task-quick-fields :is(select,input):hover{border-color:var(--line)}
.task-quick-fields :is(select,input):focus-visible{outline:2px solid var(--red);outline-offset:1px}
.task-quick-fields [disabled]{cursor:wait}
.task-quick-status,.task-quick-time{margin:3px 0 6px}
.task-quick-error{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0;color:var(--red);font-size:var(--caption);overflow-wrap:anywhere}
.task-quick-error button{color:var(--red);font-size:var(--caption);padding:5px 0;min-height:32px}
.task-list-view .task-quick-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media(max-width:760px){.task-quick-fields :is(select,input){min-height:44px}.task-list-view .task-quick-fields{grid-template-columns:minmax(0,1fr);gap:4px}.task-quick-error button{min-height:44px}}

.task-quick-fields>label>span{white-space:nowrap}

/* The task status dropdown replaces completion and next-stage buttons. */
.task-status-field{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;width:100%;margin:0;color:var(--muted);font-size:var(--caption)}
.task-status-field select{min-width:0;width:100%;min-height:32px;padding:5px 6px;font-size:var(--caption);color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:5px;cursor:pointer}
.task-status-field select:focus-visible{outline:2px solid var(--red);outline-offset:1px}
.task-status-field select[disabled]{cursor:wait}
@media(max-width:760px){.task-status-field select{min-height:44px}}

/* Filters share one grid and label baseline across all task views. */
.task-filter-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:12px;align-items:end}
.task-filter-bar>.field,.task-filter-bar>.task-type-filter{display:block;min-width:0;width:auto;margin:0;white-space:normal}
.task-filter-bar>.field label,.task-filter-bar>.task-type-filter{font-size:var(--caption)}
.task-filter-bar>.field label{display:block;margin:0 0 4px}
.task-filter-bar>.task-type-filter select{display:block;margin-top:4px}
.task-filter-bar>.field select,.task-filter-bar>.task-type-filter select{width:100%;min-width:0;max-width:none;min-height:44px;font-size:var(--caption)}
.task-filter-bar>[data-action="task-overdue-filter"]{order:5;min-height:44px;margin:0}
@media(max-width:760px){.task-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.task-filter-bar>[data-action="task-overdue-filter"]{justify-self:start}}

/* Compact task cards: inline choices and a comment that follows its content. */
.task-board .managed-task,.task-list-view .managed-task{display:grid;grid-template-columns:28px minmax(0,1fr);gap:4px 6px;align-items:start;padding:8px}
.managed-task .task-title{font-size:var(--text);line-height:1.35;font-weight:500}
.managed-task .task-tool-rail{width:28px;gap:0}
.managed-task .task-mini{width:28px}
.managed-task .task-quick-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 8px;margin:4px 0 0}
.managed-task .task-quick-fields>.task-deadline,.managed-task .task-quick-fields>textarea{grid-column:1/-1}
.managed-task .task-quick-fields>label{display:block;position:relative;min-width:0;width:100%;margin:0}
.managed-task .task-quick-fields :is(select,input,textarea),.managed-task .task-status-field select{display:block;box-sizing:border-box;min-width:0;width:100%;min-height:24px;padding:3px 0;font-size:var(--caption);line-height:1.5;color:var(--ink);background:transparent;border:0;border-radius:0}
.managed-task .task-quick-fields select,.managed-task .task-status-field select{appearance:none;-webkit-appearance:none;line-height:1.5;padding-right:16px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m3 4 3 3 3-3' fill='none' stroke='%23626b77' stroke-width='1.2'/%3E%3C/svg%3E");background-position:right center;background-size:12px 12px;background-repeat:no-repeat}
.managed-task .task-quick-fields input[type=date]{height:24px;margin:0;color:var(--ink)}
.managed-task .task-quick-fields [disabled]{cursor:wait}
.managed-task .task-quick-fields :is(select,input,textarea):focus-visible,.managed-task .task-status-field select:focus-visible{outline:2px solid var(--red);outline-offset:1px;border-radius:3px}
.managed-task .task-quick-fields textarea{min-height:24px;resize:none;overflow:hidden;cursor:text;color:var(--muted)}
.managed-task .task-quick-fields textarea::placeholder{color:var(--muted);opacity:1}
.managed-task .task-row-footer{grid-column:2;display:block;width:100%;margin:8px 0 0}
.managed-task .task-status-field{display:block;width:100%;margin:0}
.managed-task .task-status-field select{padding-right:16px;cursor:pointer;font-weight:600}
.managed-task .task-details:empty{display:none}
.managed-task .task-main>.task-result{margin-top:8px}
.task-deadline .task-date-placeholder{display:none;position:absolute;left:24px;top:50%;transform:translateY(-50%);font-size:var(--caption);color:var(--ink);pointer-events:none}
.task-deadline.is-empty .task-date-placeholder{display:block}
.task-deadline.is-empty input{color:transparent!important}
.task-deadline.is-empty input::-webkit-datetime-edit{visibility:hidden}
.task-deadline input{position:relative;padding-left:24px!important;padding-right:0!important}
.task-deadline input::-webkit-calendar-picker-indicator{display:none}
.task-date-open{position:absolute;left:0;top:0;width:24px;height:24px;min-height:24px;padding:0;justify-content:flex-start;background:transparent;color:var(--ink);border:0;border-radius:3px;cursor:pointer}
.task-date-icon{width:16px;height:16px;pointer-events:none}
.task-date-open:focus-visible{outline:2px solid var(--red);outline-offset:-2px}
@media(max-width:760px){
 .managed-task .task-quick-fields :is(select,input,textarea),.managed-task .task-status-field select{min-height:44px;font-size:16px;line-height:1.5;padding:10px 0}
 .managed-task .task-quick-fields input[type=date]{height:44px}
 .managed-task .task-mini{height:44px}
 .task-deadline .task-date-placeholder{font-size:16px}
 .task-date-open{width:44px;height:44px;min-height:44px}
 .task-deadline input{padding-left:44px!important}
 .task-deadline .task-date-placeholder{left:44px}
}
@media(pointer:coarse){
 .managed-task .task-quick-fields :is(select,input,textarea),.managed-task .task-status-field select{min-height:44px}
 .managed-task .task-mini{width:28px;height:44px}
 .task-date-open{width:44px;height:44px;min-height:44px}
 .task-deadline input{padding-left:44px!important}
 .task-deadline .task-date-placeholder{left:44px}
}

/* Project cards: common bottom baseline and space above the two actions. */
.project-card{display:flex;flex-direction:column;position:relative;cursor:grab;touch-action:auto;-webkit-touch-callout:none}
.project-card .body{display:flex;flex-direction:column;flex:1;min-height:220px;padding:20px}
.project-card .body>p{margin-bottom:18px}
.project-card-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:32px}
.project-card-actions button{padding:0;min-height:44px;text-align:left;white-space:nowrap}
.project-card-actions button:last-child{margin-left:auto;text-align:right}
.project-card a,.project-card button{cursor:pointer}
.project-card :is(a,img){-webkit-user-drag:none;-webkit-touch-callout:none}
.project-card:focus-visible{outline:2px solid var(--red);outline-offset:3px}
.project-card.project-drag-source{opacity:.35}
.project-card.project-drop-before{box-shadow:inset 4px 0 var(--red)}
.project-card.project-drop-after{box-shadow:inset -4px 0 var(--red)}
.project-drag-preview{position:fixed;z-index:10000;pointer-events:none;cursor:grabbing;box-shadow:0 18px 38px #18203055;opacity:.95}
.project-archive-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.project-archive-heading h2{margin:0}
@media(max-width:620px){.project-card.project-drop-before{box-shadow:inset 0 4px var(--red)}.project-card.project-drop-after{box-shadow:inset 0 -4px var(--red)}}

/* Optional files stay in the new visual circle until its Create action. */
.visual-upload-row{display:flex;align-items:center;gap:12px;padding:8px 10px;min-height:62px;border:1px solid var(--ui-divider,#aab3c1);border-radius:8px;background:var(--card);cursor:pointer;min-width:0}
.visual-upload-row button{flex:none;min-height:44px;font-size:var(--caption);padding:9px 12px}
.visual-upload-row .visual-upload-clear{width:44px;padding:0;font-size:var(--section)}
.visual-upload-names{flex:1;min-width:0;font-size:var(--caption);overflow-wrap:anywhere}
.visual-upload-row.drag-over{outline:2px dashed var(--red);outline-offset:2px;background:var(--chip)}
.visual-upload-row:focus-within{outline:2px solid var(--red);outline-offset:2px}
.visual-upload-error{margin:6px 0 0}
.visual-upload-field [hidden]{display:none!important}
@media(max-width:760px){.visual-upload-row{flex-wrap:wrap;gap:8px}.visual-upload-row:has(.visual-upload-clear:not([hidden])) .visual-upload-names{flex-basis:calc(100% - 52px);order:2}.visual-upload-row .visual-upload-clear{order:3}}

/* Unified project schedule */
.object-actions{display:grid;gap:8px;flex:none}.object-actions button{min-height:44px;width:100%;font-size:var(--caption)}
.project-schedule-dialog{width:860px;max-width:calc(100vw - 32px)}.project-schedule-stages{display:grid;gap:20px}.project-schedule-stage{padding-bottom:20px;border-bottom:1px solid var(--ui-divider,#aab3c1)}.project-schedule-stage:last-child{padding-bottom:0;border:0}.project-schedule-stage h3{font-size:var(--section);margin:0 0 12px}.project-schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.project-schedule-grid .field{margin:0}.project-schedule-stage .schedule-follow{margin:12px 0}.project-schedule-stage .schedule-preview{margin:12px 0 0;font-size:var(--caption);font-weight:400}.project-schedule-error{margin:14px 0 0}.stage-delay-warning{padding:12px;border:1px solid #e4b8bd;border-radius:8px;background:#fff5f5;color:var(--red)}.stage-delay-warning strong{font-size:var(--text);font-weight:600}.stage-delay-warning p{margin:6px 0 10px}.stage-delay-warning button{min-height:44px;font-size:var(--caption);border:1px solid #e4b8bd;background:#fff;color:var(--red)}.schedule-offer{border-color:#e4b8bd;background:#fff5f5}.schedule-offer strong{color:var(--red)}
@media(max-width:760px){.project-schedule-grid{grid-template-columns:minmax(0,1fr)}.project-schedule-grid :is(input,select){min-height:44px;font-size:16px}.object-actions{width:100%}.project-schedule-dialog{max-width:calc(100vw - 24px)}.project-schedule-stage .schedule-follow{min-height:44px;align-items:flex-start}.project-schedule-stage .schedule-follow input{min-width:20px;min-height:20px}.project-schedule-stage h3{overflow-wrap:anywhere}}

.project-schedule-dialog{max-height:calc(100dvh - 32px);overflow:hidden}.project-schedule-dialog .modal-inner{max-height:calc(100dvh - 32px);padding:24px;display:flex;flex-direction:column}.project-schedule-dialog .modal-inner>h2{flex:none;margin:0 0 18px}.project-schedule-dialog form{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.project-schedule-dialog .modal-actions{position:sticky;bottom:0;background:var(--card);padding:14px 0 0;margin-top:20px;border-top:1px solid var(--ui-divider,#aab3c1)}.project-schedule-dialog .modal-actions button{min-height:44px}@media(max-width:760px){.project-schedule-dialog .modal-inner{padding:20px 16px}.project-schedule-dialog .modal-actions{gap:8px}}

/* Fold rooms only in the visualization stage. */
.visual-rooms>details.visual-room{padding:0;border-top:1px solid var(--ui-divider,#aab3c1)}
.visual-rooms>details.visual-room>summary.visual-room-heading{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;align-items:center;gap:12px;min-height:56px;padding:12px 0;margin:0;list-style:none;cursor:pointer}
.visual-rooms>details.visual-room>summary::-webkit-details-marker{display:none}
.visual-rooms>details.visual-room>summary h3{margin:0;overflow-wrap:anywhere;font-size:var(--text);font-weight:600}
.visual-room-meta{display:grid;gap:2px;text-align:right}.visual-room-chevron{width:16px;height:16px;color:var(--muted);transition:transform .15s}
.visual-room[open]>.visual-room-heading .visual-room-chevron{transform:rotate(180deg)}
.visual-room-content{padding:0 0 16px}.visual-room-content>.visual-round-switcher{max-width:100%;margin:4px 0 12px}
.visual-room-heading:focus-visible{outline:2px solid var(--red);outline-offset:4px;border-radius:4px}
@media(max-width:760px){.visual-rooms>details.visual-room>summary.visual-room-heading{grid-template-columns:minmax(0,1fr) 16px;gap:6px 12px;min-height:60px}.visual-room-meta{grid-row:2;grid-column:1;display:flex;flex-wrap:wrap;gap:4px 12px;text-align:left}.visual-room-chevron{grid-column:2;grid-row:1}.visual-room-meta span{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){.visual-room-chevron{transition:none}}

.project-delay-action{display:grid;gap:8px;max-width:100%;min-width:0}.project-delay-action strong{font-size:var(--caption)}.delay-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.delay-review-grid p{margin:6px 0 0;font-size:var(--text)}.delay-review-grid input{width:100%;min-width:0;box-sizing:border-box;margin-top:6px}.delay-review-summary,.delay-review-error{font-size:var(--caption);margin:14px 0 0}.delay-review-grid>div{min-width:0;overflow-wrap:anywhere}@media(max-width:760px){.delay-review-grid{grid-template-columns:minmax(0,1fr);gap:12px}.delay-review-grid input{min-height:44px;font-size:16px}}

/* KP alternatives share the statement choice and existing text tokens. */
.document-quote-group{display:grid;gap:8px;border-top:1px solid var(--line);padding-top:12px;margin-top:12px;min-width:0}
.document-quote-group select{width:100%;min-width:0;min-height:44px;border:1px solid var(--ui-divider,var(--line));border-radius:8px;padding:8px;color:var(--ink);background:var(--card);font-size:var(--text)}
.document-quote-group button{justify-self:start;min-height:44px;margin:0}
.document-variant-error{color:var(--red);font-size:var(--caption);margin:0;overflow-wrap:anywhere}
.document-variant-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.document-variant-option{padding:12px;border:1px solid var(--line);border-radius:9px;min-width:0}
.document-variant-option h3{font-size:var(--section);margin:0 0 10px;overflow-wrap:anywhere}
.document-variant-option dl{margin:0 0 10px}
.document-variant-option dl>div{display:flex;justify-content:space-between;gap:12px}
.document-variant-option dt{color:var(--muted);font-size:var(--caption)}
.document-variant-option dd{margin:0;text-align:right}
.document-variant-links{display:grid;gap:6px;margin:8px 0}
.document-variant-links a{white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){.document-quote-group select{font-size:16px}.document-variant-comparison{grid-template-columns:1fr}}

/* Active task marker matches the legend; delivery has a separate filled marker. */
.calendar-state-dot:not(.done):not(.overdue):not(.delivery-done){box-sizing:border-box;background:var(--card);border:1px solid var(--ink)}
.calendar-detail-event[data-ui-kind="delivery"][data-ui-done="true"] .calendar-state-dot{border:0}
.calendar-move-notice{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--red);border-radius:8px;background:var(--card);margin-bottom:16px}
.calendar-move-notice p{margin:0;flex:1;font-size:var(--text);overflow-wrap:anywhere}
.calendar-move-notice>button{flex:none;width:44px;min-height:44px;padding:0}
.calendar-event[data-ui-kind="task"][data-ui-priority=""][data-ui-done="false"]:not(.overdue){background:var(--card);border:1px solid var(--ink)}
.calendar-move-notice{position:sticky;top:12px;z-index:40}
@media(max-width:760px){.calendar-move-notice{top:64px}}

/* Controls belong above their own sections. */
.document-contents>.document-order-button{display:block;width:100%;margin:0 0 12px;text-align:left}
.document-contents{padding-top:0!important}.document-contents details{margin-top:0}
.stage-file-drop{margin:12px 0}.project-schedule-status{font-size:var(--caption,12px);line-height:1.5;margin:8px 0 0}

.document-contents>.document-order-button{padding-left:13px;min-height:44px;font-size:var(--text)}.document-contents .document-toc-row{padding-left:0;padding-right:0}

/* One body size per task component; headings differ by role, not by 1px. */
.managed-task,.visit-task-row,.task-composer,.task-filter-bar{--task-text:var(--text)}
.managed-task :is(.task-title,.small,label),.visit-task-row :is(.task-title,.small,label),.managed-task .task-quick-fields :is(select,input,textarea),.managed-task .task-status-field select,.managed-task .task-date-placeholder,.task-composer :is(input,select,textarea,label,button),.task-filter-bar :is(select,button){font-size:var(--task-text);line-height:1.5}
.managed-task .task-title{font-weight:600}
.task-comment{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:8px}
.managed-task .task-inline-comment{color:var(--muted)}
.task-filter-bar>.field select{margin:0}
.task-composer-fields>.field>label,.task-composer-fields [data-task-assignee]>.field>label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:760px){.managed-task,.visit-task-row,.task-composer,.task-filter-bar{--task-text:16px}}

.task-controls-hint,.task-composer .hint,.task-composer .small{font-size:var(--text);line-height:1.5}

.task-filter-bar>.field select,.task-filter-bar>button,.task-composer .task-composer-fields :is(input,select,textarea,label,button){font-size:var(--task-text);line-height:1.5}
form:has(.task-editor-grid){--form-text:var(--text)}
form:has(.task-editor-grid) :is(input,select,textarea,label,button){font-size:var(--form-text);line-height:1.5}
@media(max-width:760px){form:has(.task-editor-grid){--form-text:16px}}

@media(max-width:1000px){.task-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.task-filter-bar>[data-action="task-overdue-filter"]{justify-self:start}}

/* Task controls wrap when narrow board columns cannot fit full selected names. */
.managed-task .task-quick-fields{grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr))}
@media(max-width:760px){.managed-task .task-quick-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:480px){.task-editor-grid{grid-template-columns:minmax(0,1fr)}}

/* Journal task selectors share one right axis and the task text token. */
.visit-task-row{display:grid;grid-template-columns:24px minmax(0,1fr) minmax(200px,240px);gap:12px;align-items:start}
.visit-issue-controls{display:grid;gap:8px;min-width:0}
.visit-issue-controls select{width:100%;min-width:0;font:inherit;font-size:var(--task-text);line-height:1.5;padding:6px 10px;min-height:36px;border:1px solid var(--line);border-radius:8px;background:var(--panel,#fff)}
.visit-task-row .task-main>button,.visit-issue-controls button{font-size:var(--task-text);line-height:1.5}
.visit-issue-save:empty{display:none}.visit-issue-save button{display:block;margin-top:6px}
@media(max-width:640px){.visit-task-row{grid-template-columns:24px minmax(0,1fr)}.visit-issue-controls,.visit-issue-read{grid-column:2}.visit-issue-controls select{min-height:40px}}

/* The order action occupies the section-heading row; the contents panel aligns with the first document. */
@media(min-width:1101px){
 .document-contents:has(>.document-order-button){margin-top:0;display:grid;grid-template-rows:var(--document-contents-offset,40px) auto;align-items:start}
 .document-contents>.document-order-button{min-height:30px;margin:0;padding-top:4px;padding-bottom:4px;align-self:start}
}
@media(min-width:1101px) and (pointer:coarse){
 .document-contents>.document-order-button{min-height:44px}
 .documents-list>.document-section:first-child>.document-section-heading{min-height:44px}
}


/* Journal tasks use the same compact text choices and date gesture as Tasks. */
.visit-issue-controls{display:flex;flex-wrap:wrap;align-items:center;align-content:flex-start;gap:0 12px}
.visit-issue-controls select{display:block;width:auto;field-sizing:content;max-width:100%;min-width:0;min-height:24px;padding:2px 16px 2px 0;border:0;border-radius:3px;background-color:transparent;appearance:none;-webkit-appearance:none;cursor:pointer;color:var(--ink);font-size:var(--task-text);line-height:1.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m3 4 3 3 3-3' fill='none' stroke='%23626b77' stroke-width='1.2'/%3E%3C/svg%3E");background-position:right center;background-size:12px 12px;background-repeat:no-repeat}
.visit-issue-controls [data-visit-issue=taskStatus]{font-weight:600}
.visit-issue-controls .visit-issue-deadline{position:relative;display:block;flex:0 1 160px;min-width:0;max-width:100%;margin:0;height:24px}
.visit-issue-deadline input{display:block;box-sizing:border-box;width:100%;margin:0;min-height:24px;height:24px;padding:2px 0;border:0;border-radius:3px;background:transparent;color:var(--ink);font-size:var(--task-text);line-height:1.5;cursor:pointer}
.visit-issue-deadline .task-date-placeholder{font-size:var(--task-text);line-height:1.5}
.visit-issue-controls :is(select,input):focus-visible{outline:2px solid var(--red);outline-offset:1px}
.visit-issue-controls .visit-issue-save{flex-basis:100%;font-size:var(--task-text);line-height:1.5}
.visit-issue-controls [disabled]{cursor:wait}
@media(max-width:760px),(pointer:coarse){.visit-issue-controls select,.visit-issue-deadline input{min-height:44px}.visit-issue-controls .visit-issue-deadline{height:44px;flex-basis:170px}.visit-issue-deadline input{height:44px}}

/* Completion and review notes keep their own line and breathing room. */
.stage-schedule-summary .stage-schedule-completed{display:block;padding-top:2px;line-height:1.5}
.project-schedule-stage [data-delay-note]{display:block;margin:12px 0 0;line-height:1.5}
.project-schedule-stage [data-delay-note][hidden],.delay-review-grid [hidden]{display:none}

/* Journal controls: deadline left, priority/state/assignee stacked right. */
.visit-issue-controls{display:grid;grid-template-columns:112px minmax(0,1fr);gap:0 12px;align-items:start}
.visit-issue-controls .visit-issue-deadline{grid-column:1;grid-row:1/4;width:100%;align-self:start}
.visit-issue-controls [data-visit-issue=priority]{grid-column:2;grid-row:1}
.visit-issue-controls [data-visit-issue=taskStatus]{grid-column:2;grid-row:2}
.visit-issue-controls [data-visit-issue=assignee]{grid-column:2;grid-row:3}
.visit-issue-controls .visit-issue-save{grid-column:1/-1}
@media(max-width:760px),(pointer:coarse){.visit-issue-controls{grid-template-columns:120px minmax(0,1fr)}.visit-issue-deadline input{padding-left:28px!important}.visit-issue-deadline .task-date-placeholder{left:28px}}
@media(max-width:640px){.visit-issue-controls{grid-column:1/-1}}

.visit-issue-field{position:relative;display:block;min-width:0;margin:0;padding:2px 16px 2px 0;font-size:var(--task-text);line-height:1.5;color:var(--ink)}
.visit-issue-field select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.visit-issue-field:after{content:'';position:absolute;right:2px;top:9px;width:5px;height:5px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:rotate(45deg);pointer-events:none}
.visit-issue-field:focus-within{outline:2px solid var(--red);outline-offset:1px}
.visit-issue-field-priority{grid-column:2;grid-row:1}
.visit-issue-field-taskStatus{grid-column:2;grid-row:2;font-weight:600}
.visit-issue-field-assignee{grid-column:2;grid-row:3}
.visit-issue-value{display:block;overflow-wrap:anywhere}
@media(max-width:760px),(pointer:coarse){.visit-issue-field{min-height:44px;display:flex;align-items:center}.visit-issue-field:after{top:19px}}

.visit-task-row[data-ui-done="true"] .visit-issue-field{color:var(--muted)}

/* Isolated calendar layout preview, limited to task/issue rows. */
.calendar-task-row{--task-text:var(--text);display:grid;grid-template-columns:24px minmax(0,1fr) minmax(200px,240px);gap:12px;align-items:start}
.calendar-task-row .calendar-state-dot{margin-top:9px}
.calendar-task-row .calendar-event-button{font-size:var(--task-text);padding:2px 0;line-height:1.5}
.calendar-task-row .visit-issue-field,.calendar-task-row input{font-size:var(--task-text);line-height:1.5}
@media(max-width:760px){.calendar-task-row{--task-text:16px}}
@media(max-width:640px){.calendar-task-row{grid-template-columns:24px minmax(0,1fr)}.calendar-task-row .visit-issue-controls{grid-column:1/-1}}

/* Journal composer and edit form share one responsive input/action token. */
.visit-composer,form:has(#f-notes){--visit-text:var(--text)}
:is(.visit-composer,form:has(#f-notes)) :is(input,select,textarea,button){font-size:var(--visit-text);line-height:1.5}
@media(max-width:760px){.visit-composer,form:has(#f-notes){--visit-text:16px}}
/* The narrow embedded object form uses 16px values; its outer action matches. */
#modal:has(iframe[title="Редактирование объекта и клиента"]){--object-text:16px}
#modal:has(iframe[title="Редактирование объекта и клиента"]) button{font-size:var(--object-text);line-height:1.5}

/* Approved personal finances, 18.10.2026. Scoped to this screen only. */
body.finance-screen{--finance-text:14px;--finance-display:24px}
.finance-screen :is(#content,#header,#modal),.finance-screen :is(#content,#header,#modal) *{font-family:inherit;font-size:var(--finance-text);line-height:1.45}
.finance-screen #header h1,.finance-screen #financeProfit{font-size:var(--finance-display);font-weight:700}
.finance-screen #header .workspace-heading-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.finance-screen .finance-private{margin:0 0 20px}
.finance-screen .finance-month-toolbar{margin:20px 0;justify-content:flex-start}
.finance-screen .finance-month-nav{display:flex;align-items:center;gap:8px}
.finance-screen .finance-month-nav select{font-size:var(--finance-text);min-width:0;width:auto;padding:9px 12px;min-height:38px}
.finance-screen .finance-month-nav button{font-size:24px;line-height:24px;width:32px;min-width:32px;padding:4px;border:0;background:transparent}
.finance-screen .finance-month-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}
.finance-screen .finance-tables{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;min-width:0}
.finance-screen .finance-month-table{min-width:0;overflow:hidden;background:white;border:1px solid var(--line);border-radius:10px}
.finance-screen .finance-block-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.finance-screen .finance-block-heading h2{margin:0;font-size:var(--finance-text);font-weight:700}
.finance-screen .finance-block-heading .secondary{color:var(--muted);background:#f4f5f7;border:1px solid var(--line);padding:8px 10px;font-size:var(--finance-text);font-weight:400}
.finance-screen .finance-block-heading .secondary:hover{background:#eaedf1;color:#525a66}
.finance-screen .finance-grid.monthly{width:100%;min-width:0;table-layout:fixed;white-space:normal}
.finance-screen .finance-grid.monthly col{width:24%}
.finance-screen .finance-grid.monthly col.finance-article-column{width:52%}
.finance-screen .finance-grid.monthly :is(th,td){position:static;width:auto;min-width:0;padding:9px 12px;vertical-align:middle;font-size:var(--finance-text)}
.finance-screen .finance-grid.monthly thead th{padding:12px;color:var(--muted);background:#fafbfc;font-weight:400;text-align:right}
.finance-screen .finance-grid.monthly thead th:first-child{text-align:left}
.finance-screen .finance-grid.monthly .finance-group th{padding:0 12px!important;background:#f3f5f7;color:var(--muted);font-size:var(--finance-text)}
.finance-screen .finance-group-heading{justify-content:flex-start;padding:12px 0 12px 32px;font-weight:700}
.finance-screen .finance-row-title{gap:4px;align-items:center}
.finance-screen .finance-grid.monthly .finance-delete{display:flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;min-height:34px;background:transparent;border:0;padding:0;color:#8a9099}
.finance-screen .finance-delete svg{display:block;flex:none;width:14px;height:14px}
.finance-screen .finance-grid.monthly .finance-name{font-size:var(--finance-text);font-weight:400;line-height:1.45;min-height:34px;padding:7px 0}
.finance-screen .finance-grid.monthly .finance-value{height:36px;min-height:36px;padding:7px 4px;font-size:var(--finance-text);line-height:1.45;font-weight:400;background:#fcfcfd}
.finance-screen .finance-grid.monthly .finance-add td{padding:3px 12px 6px!important}
.finance-screen .finance-grid.monthly .finance-add button{padding:7px 0 7px 32px;font-size:var(--finance-text);font-weight:400;background:transparent;border:0;color:var(--muted)}
.finance-screen .finance-grid.monthly .finance-total :is(th,td){padding:12px!important;font-size:var(--finance-text)!important;font-weight:700!important}
.finance-screen .finance-grid.monthly .finance-total td{white-space:nowrap;padding-left:8px!important;padding-right:8px!important}
.finance-screen [data-direction=income] .finance-block-heading,.finance-screen [data-direction=income] .finance-total :is(th,td){background:#edf5ef!important;color:#326843}
.finance-screen [data-direction=expense] .finance-block-heading,.finance-screen [data-direction=expense] .finance-total :is(th,td){background:#faeeee!important;color:#99434c}
.finance-screen .finance-month-summary{display:block;grid-row:auto;grid-column:auto;position:sticky;top:24px;padding:26px;border-radius:10px;background:#f0f5f2;border:1px solid #dfe7e2;color:#33754b}
.finance-screen .finance-month-summary>strong{display:block;margin:22px 0 30px;font-size:var(--finance-display);line-height:1.2}
.finance-screen .finance-summary-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid #dfe7e2;padding-top:20px}
.finance-screen .finance-summary-breakdown :is(strong,span){font-size:var(--finance-text)}
.finance-screen .finance-summary-breakdown strong{font-weight:700}
.finance-screen .finance-summary-breakdown span{margin-top:8px}
.finance-screen .finance-summary-plan{font-size:var(--finance-text);margin-top:24px;padding-top:18px;gap:10px;border-color:#dfe7e2}
.finance-screen .finance-month-summary.negative{color:var(--red);background:#faeeee;border-color:#efdfe1}
.finance-screen .finance-hint{margin:12px 0;font-size:var(--finance-text)}
.finance-screen .finance-editor-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin:8px 0}
.finance-screen .finance-editor-row input{min-width:0;margin:0}
.finance-screen .finance-editor-row>button{font-size:var(--finance-text)}
.finance-screen .finance-editor-row.is-removed>span{color:var(--muted);text-decoration:line-through}
.finance-screen .finance-editor-move{grid-column:1/-1;display:block}
.finance-screen #financeGroupNew{margin-top:12px}
.finance-screen .finance-import-preview{max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:8px}
.finance-screen .finance-import-preview table{white-space:normal;min-width:500px}
.finance-screen .finance-import-preview :is(th,td){padding:10px;text-align:left;overflow-wrap:anywhere}
.finance-screen .finance-import-choice{display:flex;align-items:center;gap:10px;margin:16px 0}
.finance-screen .finance-import-choice input{width:auto;margin:0}
@media(max-width:1299px){.finance-screen .finance-tables{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1100px){.finance-screen .finance-month-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.finance-screen .finance-month-summary{padding:22px}}
@media(max-width:760px){body.finance-screen{--finance-text:16px}.finance-screen .finance-month-layout{display:flex;flex-direction:column;gap:20px}.finance-screen .finance-tables{width:100%;order:1}.finance-screen .finance-month-summary{order:0;width:100%;position:static;padding:22px}.finance-screen #financeProfit{margin:12px 0 22px}.finance-screen .finance-month-nav{width:100%;justify-content:space-between}.finance-screen .finance-grid.monthly :is(th,td){padding-left:8px!important;padding-right:8px!important}.finance-screen .finance-block-heading{padding:12px}.finance-screen .finance-group-heading{padding-left:32px}.finance-screen .finance-grid.monthly .finance-value{padding:7px 2px}.finance-screen .finance-summary-breakdown{padding-top:16px}.finance-screen .finance-summary-plan{display:flex}.finance-screen .finance-editor-row>button{padding:8px}.finance-screen #header .workspace-heading-actions{width:100%}}

.finance-screen .finance-file-drop{position:relative;display:flex;align-items:center;justify-content:center;min-height:104px;padding:20px;border:1px dashed #a9afb8;border-radius:8px;background:#fafbfc;text-align:center;overflow-wrap:anywhere;cursor:pointer}
.finance-screen .finance-file-drop input[type=file]{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.finance-screen .finance-file-drop:focus-within{outline:2px solid #59616d;outline-offset:2px}
@media(max-width:760px){.finance-screen .finance-grid.monthly col{width:29%}.finance-screen .finance-grid.monthly col.finance-article-column{width:42%}.finance-screen .finance-grid.monthly td{padding-left:4px!important;padding-right:4px!important}.finance-screen .finance-grid.monthly .finance-total td{white-space:nowrap;padding-left:4px!important;padding-right:4px!important}.finance-screen .finance-grid.monthly .finance-row-title{gap:2px}.finance-screen .finance-grid.monthly .finance-delete{flex-basis:18px;width:18px}.finance-screen .finance-group-heading{padding-left:20px}.finance-screen .finance-grid.monthly .finance-add button{padding-left:20px}}
.finance-screen .finance-month-layout{container-type:inline-size;container-name:finance-layout}
@container finance-layout (max-width:1100px){.finance-screen .finance-tables{grid-template-columns:minmax(0,1fr)}}
.finance-screen .finance-grid.monthly td{padding-left:4px;padding-right:4px}
.finance-screen .finance-grid.monthly thead th:not(:first-child){padding-right:8px}

/* Task text keeps line breaks without changing the initial field height. */
textarea.task-title-input{min-height:44px;height:44px;resize:vertical;white-space:pre-wrap}
