:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif;color:#101827;background:#f5f8fd;font-synthesis:none;text-rendering:optimizeLegibility;--blue: #2563eb;--blue-dark: #174fd1;--navy: #091426;--muted: #7b879b;--line: rgba(164, 178, 202, .22);--surface: rgba(255, 255, 255, .74);--danger: #ef4444;--warning: #f97316;--success: #16a779;--radius: 22px;--gantt-label-width: 190px}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:radial-gradient(circle at 38% -10%,rgba(77,124,255,.08),transparent 32rem),radial-gradient(circle at 110% 90%,rgba(93,202,219,.08),transparent 30rem),#f5f8fd}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,p,figure{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.glass{background:var(--surface);border:1px solid rgba(255,255,255,.9);box-shadow:0 18px 46px #28437014,inset 0 0 0 1px #99aed01f;backdrop-filter:blur(28px) saturate(145%);-webkit-backdrop-filter:blur(28px) saturate(145%)}.glass-line{background:#f7faffb8;border-bottom:1px solid rgba(156,174,203,.15);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.app-shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:258px;padding:24px 12px;color:#dce6f7;background:linear-gradient(150deg,#0d1c32,#071121 72%);display:flex;flex-direction:column;box-shadow:12px 0 30px #040f1f14}.brand{display:flex;align-items:center;gap:12px;padding:0 10px}.brand-mark{width:40px;height:40px;display:inline-grid;place-items:center;color:#fff;background:var(--blue);border-radius:13px;box-shadow:0 7px 18px #2563eb4d,inset 0 1px #ffffff57;flex:none}.brand strong{display:block;font-size:17px;letter-spacing:.01em;color:#fff}.brand small{display:block;margin-top:4px;color:#71809a;font-size:11px}.side-nav{margin-top:42px;display:flex;flex-direction:column;gap:8px}.side-nav a{position:relative;display:flex;align-items:center;gap:18px;height:60px;padding:0 20px;border-radius:17px;color:#8d9ab0;font-size:16px;font-weight:600;transition:.2s ease}.side-nav a:hover{color:#e9f1ff;background:#ffffff0d}.side-nav a.active{color:#fff;background:linear-gradient(110deg,#2563eb40,#5477db52);box-shadow:inset 0 0 0 1px #6b97ff70,0 12px 28px #00000026}.side-nav a.active:before{content:"";position:absolute;left:-5px;width:3px;height:26px;background:#4e85ff;border-radius:4px}.sidebar-logout{margin:auto 8px 0;width:44px;height:44px;border:0;color:#7f8da4;background:transparent;border-radius:12px;cursor:pointer}.sidebar-logout:hover{color:#fff;background:#ffffff0f}.app-main{min-height:100vh;margin-left:258px}.topbar{position:sticky;z-index:20;top:0;height:72px;padding:0 28px;display:flex;align-items:center;justify-content:flex-end}.topbar-space{flex:1}.mobile-brand{display:none;align-items:center;gap:10px}.project-select{max-width:360px;margin-right:auto;padding:10px 36px 10px 13px;border:1px solid var(--line);border-radius:12px;background:#fff9;color:#4c5870}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue);box-shadow:0 5px 15px #2563eb38}.user-chip b,.user-chip small{display:block}.user-chip b{font-size:13px}.user-chip small{color:var(--muted);font-size:10px;margin-top:2px}.user-chip button{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:10px;color:#8792a5;background:transparent;cursor:pointer}.user-chip button:hover{background:#2563eb14;color:var(--blue)}.user-chip .mobile-user-button{display:none}.page{width:min(100%,1450px);margin:0 auto;padding:24px 30px 44px}.bottom-nav{display:none}.page-toolbar{min-height:38px;display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.page-toolbar-actions{display:flex;align-items:center;gap:8px}.page-kicker{color:#71809a;font-size:13px;font-weight:700;letter-spacing:.08em}.primary-button,.secondary-button,.danger-button{min-height:44px;border-radius:13px;padding:0 20px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;font-weight:700;font-size:14px;cursor:pointer;transition:transform .15s,box-shadow .15s,background .15s}.primary-button{color:#fff;background:var(--blue);box-shadow:0 10px 24px #2563eb3b}.primary-button:hover{background:var(--blue-dark);transform:translateY(-1px)}.primary-button:disabled{opacity:.55;cursor:wait;transform:none}.primary-button.compact{min-height:38px;padding:0 16px}.secondary-button.compact{min-height:38px;padding:0 15px}.secondary-button{color:#27334a;background:#ffffffa6;border-color:#8ea0be47}.secondary-button:hover{background:#fff}.danger-button{color:#fff;background:#dc3f3f;box-shadow:0 9px 22px #dc3f3f33}.danger-button:hover{background:#c83131;transform:translateY(-1px)}.danger-button:disabled{opacity:.55;cursor:wait;transform:none}.icon-button{width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:11px;color:#637087;background:#f5f8fdd6;cursor:pointer}.text-link{display:inline-flex;align-items:center;gap:4px;color:#637087;font-size:13px;font-weight:650}.text-link:hover{color:var(--blue)}.project-summary{border-radius:var(--radius);padding:26px 32px 23px}.project-title-row{display:flex;align-items:center;justify-content:space-between}.project-title-row>div{display:flex;align-items:center;gap:13px}.project-title-row h1{font-size:clamp(22px,2vw,31px);letter-spacing:-.03em}.quiet-status{padding:7px 12px;border-radius:11px;color:var(--blue);background:#2563eb14;font-size:12px;font-weight:700}.summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr;margin-top:22px}.summary-grid>div{min-height:98px;display:flex;align-items:center;padding:8px 30px;border-right:1px solid var(--line)}.summary-grid>div:first-child{padding-left:0}.summary-grid>div:last-child{border-right:0}.progress-summary{gap:20px}.progress-summary>div:last-child strong{display:block;font-size:29px}.progress-summary span,.summary-stat span{display:block;color:var(--muted);font-size:12px;margin-bottom:8px}.summary-stat{gap:18px}.summary-stat>svg{color:var(--blue);padding:10px;width:46px;height:46px;border-radius:14px;background:#2563eb14}.summary-stat strong{display:block;font-size:22px}.summary-stat small{display:block;margin-top:7px;color:#8993a6;max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-warning>svg{color:var(--warning);background:#f9731614}.progress-ring{--progress: 0deg;position:relative;display:grid;place-items:center;flex:none;border-radius:50%;background:conic-gradient(var(--blue) var(--progress),#e6edfa 0)}.progress-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:#ffffffeb;box-shadow:inset 0 0 0 1px #91a4c321}.progress-ring>div{position:relative;z-index:1}.progress-ring>div strong{font-size:16px}.gantt-panel{margin-top:18px;border-radius:var(--radius);padding:16px 16px 12px;overflow:hidden}.section-header{display:flex;align-items:center;justify-content:space-between;min-height:44px}.section-header h2{font-size:18px}.segment{padding:3px;display:inline-flex;align-items:center;gap:2px;border:1px solid rgba(151,169,198,.22);border-radius:12px;background:#eef3fbc2}.segment>span,.segment>b,.segment>button{min-width:82px;padding:8px 13px;text-align:center;border:0;border-radius:9px;color:#7a879b;font-size:12px;font-weight:650;background:transparent}.segment>b,.segment>button.active{color:var(--blue);background:#ffffffeb;box-shadow:0 2px 8px #31486f14}.segment.large>button{cursor:pointer}.month-switch{color:#263147;font-size:14px;font-weight:700}.gantt-header-actions,.progress-heading-actions,.gantt-plan-actions{display:flex;align-items:center;gap:7px}.gantt-header-actions{justify-content:flex-end}.gantt-tool-button{min-height:34px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(142,160,190,.22);border-radius:10px;color:#637087;background:#ffffff94;cursor:pointer;font-size:11px;font-weight:700;white-space:nowrap}.gantt-tool-button:hover{color:var(--blue);background:#fff}.gantt-tool-button:disabled{opacity:.58;cursor:wait}.gantt-fullscreen-trigger{color:#315fae;background:#2563eb11}.gantt-file-input{display:none}.spin-icon{animation:spin .8s linear infinite}.gantt-fullscreen-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden;border:0;color:#101827;background:#f5f8fd}.gantt-fullscreen-dialog::backdrop{background:#0811206b;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gantt-fullscreen-shell{height:100%;min-height:0;display:flex;flex-direction:column;background:radial-gradient(circle at 38% -10%,rgba(77,124,255,.09),transparent 32rem),#f5f8fd}.gantt-fullscreen-header{min-height:72px;padding:max(12px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid rgba(156,174,203,.2);background:#fafcffe6;box-shadow:0 8px 24px #263f680f}.gantt-fullscreen-title{min-width:0}.gantt-fullscreen-title>span{display:block;margin-bottom:4px;color:var(--blue);font-size:10px;font-weight:800;letter-spacing:.08em}.gantt-fullscreen-title h2{overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.gantt-fullscreen-header-actions{flex:none;display:flex;align-items:center;gap:12px}.gantt-fullscreen-header-actions time{color:#657188;font-size:11px;font-weight:700}.gantt-fullscreen-close{min-height:40px;padding:0 13px;color:var(--blue);background:#fff;box-shadow:0 4px 14px #2563eb1a}.gantt-fullscreen-body{flex:1;min-height:0;padding:16px max(18px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.gantt-fullscreen-body .gantt-scroll{height:100%;margin-top:0;overflow:auto;overscroll-behavior:contain}.gantt-fullscreen-body .gantt{min-height:100%;align-content:start}.gantt-fullscreen-body .gantt-head{position:sticky;z-index:7;top:0}.gantt-fullscreen-body .gantt-calendar-head{z-index:8}.gantt-fullscreen-body .gantt-head.gantt-label{z-index:10}.gantt-scroll{margin-top:10px;overflow-x:auto;overflow-y:hidden;border:1px solid rgba(154,173,204,.18);border-radius:15px;background:#ffffff6b;scrollbar-color:rgba(74,111,173,.5) rgba(218,227,241,.68);scrollbar-width:thin;scrollbar-gutter:stable;overscroll-behavior-inline:contain}.gantt-scroll:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.gantt-scroll::-webkit-scrollbar{height:10px}.gantt-scroll::-webkit-scrollbar-track{border-radius:999px;background:#dae3f1ad}.gantt-scroll::-webkit-scrollbar-thumb{min-width:52px;border:2px solid rgba(218,227,241,.68);border-radius:999px;background:#4a6fad80}.gantt-scroll::-webkit-scrollbar-thumb:hover{background:#2563eb9e}.gantt{--gantt-label-width: 190px;--gantt-head-height: 74px;position:relative;width:100%;display:grid;grid-template-columns:var(--gantt-label-width) minmax(0,1fr);background:#ffffff6b}.gantt-head{height:var(--gantt-head-height);border-bottom:1px solid var(--line)}.gantt-row-wrap{display:contents}.gantt-label{position:sticky;z-index:6;left:0;min-width:var(--gantt-label-width);display:flex;align-items:center;gap:10px;padding:0 12px;border-right:1px solid var(--line);background:#fafcfffa;box-shadow:5px 0 10px #29426b06}.gantt-head.gantt-label{z-index:8}.gantt-label>span:not(.phase-number){min-width:0}.gantt-label b{display:block;font-size:12px;white-space:nowrap}.gantt-label small{display:block;margin-top:4px;color:#8d98aa;font-size:9px}.phase-number{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;color:var(--blue);background:#2563eb12;font-size:10px;font-weight:800}.gantt-row-wrap.completed .gantt-label{background:linear-gradient(90deg,#effaf6fa,#fafcfffa)}.gantt-row-wrap.completed .gantt-label b{color:#126b50}.gantt-row-wrap.completed .phase-number{color:#fff;background:linear-gradient(135deg,#20b486,#13946c);box-shadow:0 5px 12px #16a77933}.gantt-row-wrap.supplement .gantt-label{background:linear-gradient(90deg,#fff7edfa,#fafcfffa)}.gantt-row-wrap.supplement .gantt-label b{color:#a1480c}.gantt-row-wrap.supplement .phase-number{color:#fff;background:linear-gradient(135deg,#f59e0b,#ea6b13);box-shadow:0 5px 12px #ea6b1333}.gantt-grid{position:relative;background-image:repeating-linear-gradient(to right,rgba(128,151,188,.24) 0 1px,transparent 1px var(--gantt-week-step)),repeating-linear-gradient(to right,rgba(149,167,196,.14) 0 1px,transparent 1px var(--gantt-day-step)),repeating-linear-gradient(to right,transparent 0 var(--gantt-saturday-start),rgba(37,99,235,.09) var(--gantt-saturday-start) var(--gantt-saturday-end),rgba(249,115,22,.11) var(--gantt-saturday-end) var(--gantt-week-step))}.gantt-calendar-head{display:grid;grid-template-rows:31px 43px;overflow:hidden;background:#fafcffb8}.gantt-week-row,.gantt-day-row{display:grid;grid-template-columns:repeat(var(--gantt-day-count, 1),minmax(0,1fr))}.gantt-week-row{border-bottom:1px solid rgba(151,169,198,.2)}.gantt-week-row>span{grid-column:span 7;display:flex;align-items:center;justify-content:center;border-right:1px solid rgba(128,151,188,.24);color:#53627a;font-size:11px;font-weight:750;letter-spacing:.01em}.gantt-week-row>span:last-child{border-right:0}.gantt-day{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-right:1px solid rgba(149,167,196,.14);color:#707d91}.gantt-day b{font-size:10px;font-weight:750;white-space:nowrap}.gantt-day small{color:#8b96a8;font-size:9px;white-space:nowrap}.gantt-day.saturday{color:#28579f;background:#2563eb17;box-shadow:inset 0 2px #2563eb47}.gantt-day.saturday small{color:#6380ae}.gantt-day.sunday{color:#a94708;background:#f973161c;box-shadow:inset 0 2px #f973164d}.gantt-day.sunday small{color:#b87949}.gantt-row{height:57px;border-bottom:1px solid rgba(159,176,203,.13)}.gantt-row-wrap.last .gantt-row{border-bottom:0}.task-bar{position:absolute;z-index:2;top:13px;height:31px;padding:0 13px;display:flex;align-items:center;justify-content:center;gap:5px;border-radius:10px;color:#567096;background:#dfeafa;font-size:10px;font-weight:650;white-space:nowrap;overflow:hidden}.task-bar.completed{color:#fff;background:linear-gradient(90deg,#20b486,#13946c);box-shadow:0 7px 17px #16a77933}.task-bar.in_progress,.task-bar.delayed{color:#fff;background:linear-gradient(90deg,#2563eb,#2d72ee);box-shadow:0 7px 17px #2563eb2e}.task-bar.supplement{color:#fff;background:linear-gradient(90deg,#f59e0b,#ea6b13);box-shadow:0 7px 17px #ea6b1333}.task-bar.returnable{padding-right:35px;border:0;cursor:pointer;transition:filter .15s,transform .15s,box-shadow .15s}.task-bar.returnable:hover{filter:saturate(1.08) brightness(.98);transform:translateY(-1px);box-shadow:0 9px 20px #16a77942}.task-bar.returnable:focus-visible{outline:3px solid rgba(37,99,235,.3);outline-offset:2px}.task-return-icon{position:absolute;right:4px;width:23px;height:23px;display:grid;place-items:center;border-radius:7px;color:#fff;background:#fff3;font-style:normal}.delay-tag{position:absolute;z-index:3;top:14px;height:29px;padding:0 10px;display:flex;align-items:center;gap:4px;color:var(--danger);background:#fff0f0;border-radius:9px;font-size:9px;font-weight:700;white-space:nowrap}.gantt-timeline-overlay{position:absolute;z-index:4;top:0;right:0;bottom:0;left:var(--gantt-label-width);pointer-events:none}.today-line{position:absolute;top:calc(var(--gantt-head-height) - 7px);bottom:0;width:1px;background:#3478f6;pointer-events:none}.today-line span{position:absolute;top:-5px;left:50%;padding:3px 6px;border-radius:5px;color:#fff;background:#3478f6;font-size:8px;transform:translate(-50%,-100%)}.dashboard-lower{margin-top:18px;display:grid;grid-template-columns:minmax(0,1.75fr) minmax(260px,.8fr);gap:18px}.photo-panel,.next-node{border-radius:var(--radius);padding:18px}.photo-rail{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photo-rail figure{position:relative;min-width:0;height:152px;overflow:hidden;border-radius:15px;background:#e9eef7}.photo-rail img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.photo-rail figure:hover img{transform:scale(1.025)}.photo-rail figcaption{position:absolute;left:8px;bottom:8px;padding:5px 8px;display:flex;align-items:center;gap:4px;color:#fff;border-radius:8px;background:#08112094;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:9px}.next-node{display:grid;grid-template-columns:52px 1fr;align-content:start;column-gap:14px}.next-node h2{grid-column:1 / -1;font-size:18px;margin-bottom:18px}.node-icon{grid-row:2 / span 3;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:var(--blue);background:#2563eb17}.next-node h3{font-size:16px;margin-top:2px}.next-node p{margin-top:7px;color:#657086;font-size:13px}.next-node small{margin-top:8px;color:var(--muted)}.next-node .secondary-button{grid-column:2;justify-self:end;margin-top:15px;min-height:36px}.simple-heading{display:flex;align-items:end;justify-content:space-between;margin:18px 4px 22px}.simple-heading h1,.site-heading h1{font-size:clamp(27px,3vw,37px);letter-spacing:-.035em}.simple-heading p{margin-top:7px;color:var(--muted);font-size:13px}.progress-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px;align-items:start}.progress-canvas,.milestone-panel{border-radius:var(--radius)}.progress-canvas{padding:25px;min-height:610px}.progress-layout.gantt-view .progress-canvas{grid-column:1 / -1;min-height:auto}.progress-layout.gantt-view .milestone-panel{display:none}.timeline-list{max-width:760px;margin:0 auto}.timeline-event{position:relative;display:grid;grid-template-columns:24px 85px 1fr;gap:12px;padding-bottom:28px}.timeline-event:before{content:"";position:absolute;left:11px;top:25px;bottom:-2px;width:1px;background:#dce4f1}.timeline-event:last-child:before{display:none}.timeline-dot{position:relative;z-index:2;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;color:#98a4b7;background:#eef2f8;border:3px solid rgba(255,255,255,.9);box-shadow:0 0 0 1px #dfe6f1}.timeline-dot.done{color:#fff;background:var(--blue);box-shadow:0 0 0 1px #2563eb40}.timeline-event time{padding-top:4px;color:#667287;font-size:12px;font-weight:700}.timeline-body{min-height:82px;display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid rgba(153,170,199,.16);border-radius:15px;background:#ffffff7a}.timeline-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#2563eb14}.timeline-body h3{font-size:14px}.timeline-body p{margin-top:6px;color:var(--muted);font-size:11px}.timeline-body img{width:74px;height:54px;object-fit:cover;border-radius:10px}.milestone-panel{padding:22px}.milestone-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.milestone-heading h2{font-size:19px}.milestone-add{min-height:32px;padding:0 10px;display:inline-flex;align-items:center;gap:4px;border:0;border-radius:9px;color:var(--blue);background:#2563eb14;font-size:11px;font-weight:750;cursor:pointer}.milestone-list{margin-top:20px}.milestone-list article{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;padding:16px 0;border-bottom:1px solid var(--line)}.milestone-list article:last-child{border:0}.node-state{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#98a4b6;background:#edf1f7}.milestone-list article.done .node-state{color:#fff;background:var(--success)}.milestone-list h3{font-size:13px}.milestone-list p{margin-top:5px;display:flex;align-items:center;gap:4px;color:#748096;font-size:11px}.milestone-list small{display:block;margin-top:5px;color:#929bad;font-size:10px}.milestone-list button{align-self:center;padding:7px 10px;border:0;border-radius:9px;color:var(--blue);background:#2563eb14;font-weight:700;font-size:11px;cursor:pointer}.milestone-actions{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:5px}.milestone-list .milestone-edit{width:30px;height:30px;padding:0;display:grid;place-items:center;justify-self:end;color:#6f7c91;background:#7688a414}.milestone-list button:hover,.milestone-add:hover{background:#2563eb24}.milestone-list button:disabled{opacity:.55;cursor:wait}.milestone-note{margin-top:14px;display:flex;align-items:center;gap:8px;color:#8793a7;font-size:11px}.construction-log{width:100%}.construction-log-overview{min-height:66px;padding:2px 3px 19px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.construction-log-overview-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:var(--blue);background:#2563eb14}.construction-log-overview h2{font-size:18px}.construction-log-overview p{margin-top:5px;color:var(--muted);font-size:11px}.construction-log-stats{display:flex;align-items:center;gap:7px}.construction-log-stats>span{min-height:34px;padding:0 10px;display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(151,169,198,.17);border-radius:10px;color:#7b8799;background:#f8fafeb8;font-size:10px;white-space:nowrap}.construction-log-stats b{color:#26334a;font-size:13px}.construction-node-list{margin-top:16px;display:grid;gap:11px}.construction-node{overflow:hidden;border:1px solid rgba(151,169,198,.2);border-radius:18px;background:#ffffff80;transition:border-color .2s,box-shadow .2s,background .2s}.construction-node.completed{background:#f5faf89e}.construction-node.current{border-color:#2563eb4d;background:#f8fbffd6;box-shadow:0 12px 28px #2563eb14}.construction-node.delayed{border-color:#f9731647;background:#fffbf7c2}.construction-node.supplement{border-color:#ea6b1352;background:#fffaf4db;box-shadow:0 12px 28px #ea6b1314}.construction-node-toggle{width:100%;min-height:104px;padding:16px 18px;display:grid;grid-template-columns:45px minmax(260px,1.25fr) minmax(220px,.9fr) 84px 24px;gap:13px;align-items:center;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.construction-node-toggle:hover{background:#ffffff73}.construction-node-index{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:#8d99aa;background:#eef2f7}.construction-node-index small{position:absolute;right:-3px;bottom:-5px;min-width:20px;padding:2px 4px;border:2px solid rgba(255,255,255,.96);border-radius:7px;color:#728097;background:#fff;font-size:8px;font-weight:800;text-align:center}.construction-node.completed .construction-node-index{color:#fff;background:var(--success)}.construction-node.current .construction-node-index{color:#fff;background:var(--blue)}.construction-node.delayed .construction-node-index{color:#fff;background:var(--warning)}.construction-node.supplement .construction-node-index{color:#fff;background:linear-gradient(135deg,#f59e0b,#ea6b13)}.construction-node-main{min-width:0;display:block}.construction-node-title-row{display:flex;align-items:center;gap:8px}.construction-node-title-row>b{overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.construction-status{flex:none;padding:4px 7px;border-radius:8px;color:#7c8799;background:#edf1f6;font-size:9px;font-weight:800}.construction-status.completed{color:#117055;background:#16a7791a}.construction-status.current{color:var(--blue);background:#2563eb17}.construction-status.delayed{color:#c25c0e;background:#f973161a}.construction-status.supplement{color:#b14b08;background:#f973161f}.construction-node-meta{margin-top:7px;display:flex;align-items:center;gap:5px;overflow:hidden;color:#7e8a9d;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.construction-milestone-chip{width:fit-content;max-width:100%;margin-top:7px;padding:4px 7px;display:flex;align-items:center;gap:5px;overflow:hidden;border-radius:7px;color:#b55a17;background:#f9731614;font-size:9px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.construction-evidence-counts{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.construction-evidence-counts>span{min-height:27px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border-radius:8px;color:#6f7d91;background:#edf2f9b8;font-size:9px;white-space:nowrap}.construction-evidence-counts svg{color:var(--blue)}.construction-node-progress{display:grid;grid-template-columns:1fr;gap:6px}.construction-node-progress>span{width:100%;height:5px;overflow:hidden;border-radius:999px;background:#e5ebf4}.construction-node-progress i{height:100%;display:block;border-radius:inherit;background:var(--blue)}.construction-node.completed .construction-node-progress i{background:var(--success)}.construction-node.delayed .construction-node-progress i{background:var(--warning)}.construction-node.supplement .construction-node-progress i{background:#ed7615}.construction-node-progress>b{color:#607087;font-size:10px;text-align:right}.construction-node-chevron{color:#8490a2;transition:transform .2s}.construction-node.expanded .construction-node-chevron{transform:rotate(180deg)}.construction-node-body{padding:18px 20px 22px 76px;border-top:1px solid rgba(151,169,198,.17)}.construction-supplement-request{min-height:76px;margin-bottom:15px;padding:13px 14px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid rgba(234,107,19,.2);border-radius:14px;background:#fff7ede6}.construction-supplement-request>span{width:37px;height:37px;display:grid;place-items:center;border-radius:11px;color:#b94e09;background:#f973161f}.construction-supplement-request b{font-size:11px}.construction-supplement-request p{margin-top:5px;color:#674b38;font-size:10px;line-height:1.55}.construction-supplement-request small{display:block;margin-top:5px;color:#a46c46;font-size:9px}.construction-supplement-request a,.construction-supplement-request>em{padding:8px 10px;border-radius:9px;color:#a74408;background:#f973161f;font-size:9px;font-style:normal;font-weight:800;white-space:nowrap}.construction-supplement-request>em{color:#8e735f;background:#7688a417}.construction-milestone-strip{margin-bottom:17px;display:grid;gap:7px}.construction-milestone-strip>div{min-height:54px;padding:10px 12px;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px solid rgba(249,115,22,.16);border-radius:13px;background:#fff9f4c7}.construction-milestone-strip>div>span:first-child{width:32px;height:32px;display:grid;place-items:center;border-radius:10px;color:#c66218;background:#f973161a}.construction-milestone-strip b,.construction-milestone-strip small{display:block}.construction-milestone-strip b{font-size:11px}.construction-milestone-strip small{margin-top:4px;color:#8c7869;font-size:9px}.construction-milestone-strip em{padding:4px 7px;border-radius:7px;color:#b55a17;background:#f9731617;font-size:9px;font-style:normal;font-weight:750}.construction-milestone-strip>div.confirmed{border-color:#16a77929;background:#f4fbf8cc}.construction-milestone-strip>div.confirmed>span:first-child{color:#11765a;background:#16a7791a}.construction-milestone-strip>div.confirmed em{color:#11765a;background:#16a7791a}.construction-day-list{display:grid;gap:14px}.construction-day{display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;align-items:start}.construction-day>time{padding-top:5px;display:flex;flex-direction:column;align-items:center;color:#748197}.construction-day>time b{color:#26334a;font-size:22px;line-height:1}.construction-day>time span{margin-top:4px;font-size:10px;font-weight:700}.construction-day>time small{margin-top:4px;color:#9aa4b3;font-size:8px}.construction-day-card{min-width:0;padding:15px;border:1px solid rgba(151,169,198,.17);border-radius:16px;background:#ffffffb3}.construction-day-card>header{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-day-card>header b{font-size:12px}.construction-day-card>header p{margin-top:4px;color:#8b96a7;font-size:9px}.construction-day-counts{display:flex;align-items:center;gap:6px}.construction-day-counts>span{min-height:26px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border-radius:8px;color:#5f6e84;background:#f0f4fa;font-size:9px;font-weight:700}.construction-daily-entry{padding-top:12px}.construction-daily-entry+.construction-daily-entry{margin-top:12px;border-top:1px solid var(--line)}.construction-log-copy{display:grid;grid-template-columns:31px minmax(0,1fr);gap:9px;align-items:start}.construction-log-copy>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--blue);background:#2563eb14}.construction-log-copy b{display:block;padding-top:2px;font-size:12px}.construction-log-copy p{margin-top:5px;color:#69768a;font-size:10px;line-height:1.55}.construction-photo-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.construction-photo-grid a{min-width:0;border-radius:12px}.construction-photo-grid a:focus-visible{outline-offset:3px}.construction-photo-grid figure{position:relative;height:150px;overflow:hidden;border-radius:12px;background:#e8edf5}.construction-photo-grid img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .25s}.construction-photo-grid a:hover img{transform:scale(1.025)}.construction-photo-grid figcaption{position:absolute;right:7px;bottom:7px;left:7px;min-height:28px;padding:5px 7px;display:flex;align-items:center;justify-content:space-between;gap:6px;overflow:hidden;border-radius:8px;color:#fff;background:#0811209e;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.construction-photo-grid figcaption b{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.construction-photo-grid figcaption span{flex:none;color:#ffffffbf;font-size:8px}.construction-document-group{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}.construction-group-label{display:flex;align-items:center;gap:5px;color:#66748a;font-size:10px;font-weight:750}.construction-document-list{margin-top:8px;display:grid;gap:6px}.construction-document-row{min-height:51px;padding:7px 9px;display:grid;grid-template-columns:34px minmax(0,1fr) auto 22px;gap:8px;align-items:center;border:1px solid rgba(151,169,198,.14);border-radius:11px;background:#f6f9fdd1}a.construction-document-row:hover{border-color:#2563eb33;background:#fff}.construction-document-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--blue);background:#2563eb14}.construction-document-copy{min-width:0}.construction-document-copy b,.construction-document-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.construction-document-copy b{font-size:10px}.construction-document-copy small{margin-top:4px;color:#8a95a7;font-size:8px}.construction-document-category{padding:4px 6px;border-radius:7px;color:#68758a;background:#e9eef6;font-size:8px;font-weight:750}.construction-document-row>svg{color:#708097}.construction-node-empty{min-height:84px;padding:15px;display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px dashed rgba(76,115,181,.25);border-radius:14px;background:#f2f7fe80}.construction-node-empty>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--blue);background:#2563eb14}.construction-node-empty b{font-size:11px}.construction-node-empty p{margin-top:5px;color:#8b96a6;font-size:9px}.construction-node-empty a{padding:7px 10px;border-radius:9px;color:var(--blue);background:#2563eb17;font-size:9px;font-weight:800}.construction-unassigned-documents{margin-top:14px;padding:14px;border:1px dashed rgba(151,169,198,.3);border-radius:15px;background:#f9fbfe94}.construction-log-stats>span.attention{color:#b35a16;border-color:#f9731629;background:#fff7edc7}.construction-log-stats>span.attention b{color:#bc5b12}.construction-followup-list{margin-top:14px;display:grid;gap:8px}.construction-followup-list .construction-supplement-request{margin-bottom:0}.construction-log-toolbar{min-height:48px;margin-top:13px;display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-day-filter{padding:3px;display:inline-flex;gap:2px;border:1px solid rgba(151,169,198,.18);border-radius:11px;background:#eff4fbb8}.construction-day-filter button{min-height:31px;padding:0 11px;border:0;border-radius:8px;color:#7b8799;background:transparent;font-size:10px;font-weight:750;cursor:pointer}.construction-day-filter button.active{color:var(--blue);background:#fff;box-shadow:0 2px 8px #29437014}.construction-today-button{min-height:34px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(37,99,235,.12);border-radius:10px;color:var(--blue);background:#2563eb0f;font-size:10px;font-weight:750;cursor:pointer}.construction-today-button:disabled{color:#9aa5b4;border-color:#97a9c629;background:#eff3f899;cursor:not-allowed}.construction-journal-list{margin-top:4px;display:grid;gap:14px}.construction-journal-day{position:relative;display:grid;grid-template-columns:62px minmax(0,1fr);gap:13px;align-items:start}.construction-journal-day:before{content:"";position:absolute;z-index:0;top:55px;bottom:-19px;left:30px;width:1px;background:#dbe4f1}.construction-journal-day:last-child:before{display:none}.construction-journal-date{position:sticky;z-index:1;top:84px;min-height:58px;padding:8px 4px 5px;display:flex;flex-wrap:wrap;align-content:flex-start;justify-content:center;border:1px solid rgba(151,169,198,.18);border-radius:15px;color:#7c889b;background:#f8fafef5;box-shadow:0 6px 16px #2943700f;text-align:center}.construction-journal-date b{color:#27354a;font-size:23px;line-height:1}.construction-journal-date span{align-self:end;margin:0 0 1px 3px;font-size:9px;font-weight:750}.construction-journal-date small{flex-basis:100%;margin-top:5px;color:#98a3b4;font-size:8px}.construction-journal-date em{flex-basis:100%;margin-top:5px;color:var(--blue);font-size:8px;font-style:normal;font-weight:800}.construction-journal-day.complete .construction-journal-date{border-color:#16a77933;background:#f5fbf8f7}.construction-journal-day.complete .construction-journal-date b{color:#14785d}.construction-journal-day.current .construction-journal-date,.construction-journal-day.current-missing .construction-journal-date{border-color:#2563eb3b;background:#f4f8fffa;box-shadow:0 8px 20px #2563eb17}.construction-journal-day.current .construction-journal-date b,.construction-journal-day.current-missing .construction-journal-date b{color:var(--blue)}.construction-journal-day.missing .construction-journal-date{border-color:#f9731633;background:#fff9f3fa}.construction-journal-day.missing .construction-journal-date b{color:#bd5d14}.construction-journal-card{min-width:0;overflow:hidden;border:1px solid rgba(151,169,198,.19);border-radius:17px;background:#ffffff9e;transition:border-color .2s,box-shadow .2s,background .2s}.construction-journal-day.expanded .construction-journal-card{border-color:#2563eb33;background:#ffffffd4;box-shadow:0 12px 30px #2d487612}.construction-journal-day.missing .construction-journal-card{border-color:#f9731636;background:#fffbf7bf}.construction-journal-day.current .construction-journal-card,.construction-journal-day.current-missing .construction-journal-card{border-color:#2563eb3d}.construction-journal-toggle{width:100%;min-height:86px;padding:13px 15px;display:grid;grid-template-columns:minmax(250px,1fr) auto 58px 22px;gap:12px;align-items:center;border:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.construction-journal-toggle:hover{background:#f7fafeb8}.construction-journal-heading{min-width:0;display:block}.construction-journal-title-row{display:flex;align-items:center;gap:8px}.construction-journal-title-row>b{font-size:14px}.construction-day-status{min-height:23px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border-radius:7px;color:#68758a;background:#edf1f6;font-size:8px;font-weight:800;white-space:nowrap}.construction-day-status.complete{color:#117055;background:#16a7791a}.construction-day-status.current{color:var(--blue);background:#2563eb17}.construction-day-status.current-missing,.construction-day-status.missing{color:#b8550d;background:#f973161c}.construction-day-status.archive{color:#68758a;background:#7688a41a}.construction-phase-chips{margin-top:8px;display:flex;flex-wrap:wrap;gap:5px}.construction-phase-chip{min-width:0;min-height:25px;padding:0 7px;display:inline-flex;align-items:center;gap:5px;border-radius:8px;color:#6d798d;background:#7688a417;white-space:nowrap}.construction-phase-chip b{overflow:hidden;font-size:9px;text-overflow:ellipsis}.construction-phase-chip small{padding-left:5px;border-left:1px solid currentColor;color:inherit;font-size:7px;opacity:.72}.construction-phase-chip.completed{color:#117055;background:#16a77917}.construction-phase-chip.current{color:var(--blue);background:#2563eb14}.construction-phase-chip.delayed,.construction-phase-chip.supplement{color:#b4550e;background:#f973161a}.construction-phase-chip.neutral{color:#758196;background:#7688a417}.construction-day-counts{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}.construction-day-counts>span{min-height:26px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border-radius:8px;color:#647389;background:#edf2f9d1;font-size:8px;font-weight:750;white-space:nowrap}.construction-day-counts svg{color:var(--blue)}.construction-day-cover{width:58px;height:48px;display:grid;place-items:center;object-fit:cover;border-radius:10px;color:#93a0b3;background:#edf2f8}.construction-journal-chevron{color:#8793a5;transition:transform .2s}.construction-journal-day.expanded .construction-journal-chevron{transform:rotate(180deg)}.construction-journal-body{padding:16px 17px 18px;border-top:1px solid rgba(151,169,198,.16)}.construction-journal-body .construction-milestone-strip{margin-bottom:13px}.construction-journal-body .construction-photo-grid figure{height:auto;aspect-ratio:4 / 3}.construction-daily-entries{display:grid;gap:11px}.construction-daily-entries .construction-daily-entry{margin:0;padding:14px;border:1px solid rgba(151,169,198,.16);border-radius:14px;background:#f9fbfeb3}.construction-daily-entries .construction-daily-entry+.construction-daily-entry{margin-top:0;border-top:1px solid rgba(151,169,198,.16)}.construction-entry-heading{min-height:27px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.construction-entry-heading>span{min-width:0}.construction-entry-heading>small{flex:none;color:#8995a7;font-size:8px}.construction-photo-missing{min-height:58px;margin-top:11px;padding:10px 11px;display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;border:1px dashed rgba(249,115,22,.28);border-radius:11px;color:#ba5a12;background:#fff7edad}.construction-photo-missing>span b,.construction-photo-missing>span small{display:block}.construction-photo-missing>span b{color:#8f4610;font-size:10px}.construction-photo-missing>span small{margin-top:4px;color:#a97855;font-size:8px}.construction-photo-missing a{padding:7px 9px;border-radius:8px;color:#a94b0b;background:#f973161f;font-size:8px;font-weight:800;white-space:nowrap}.construction-day-missing{min-height:82px;padding:13px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px dashed rgba(249,115,22,.25);border-radius:13px;background:#fff8f09e}.construction-day-missing.today{border-color:#2563eb3d;background:#f3f8ffa6}.construction-day-missing>span{width:37px;height:37px;display:grid;place-items:center;border-radius:11px;color:#bf5b12;background:#f973161c}.construction-day-missing.today>span{color:var(--blue);background:#2563eb17}.construction-day-missing b{font-size:11px}.construction-day-missing p{margin-top:5px;color:#8b7667;font-size:8px;line-height:1.55}.construction-day-missing.today p{color:#78869a}.construction-day-missing a{padding:8px 10px;border-radius:9px;color:var(--blue);background:#2563eb17;font-size:9px;font-weight:800;white-space:nowrap}.construction-log-empty{min-height:112px;margin-top:8px;padding:18px;display:grid;grid-template-columns:43px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px dashed rgba(76,115,181,.23);border-radius:16px;background:#f4f8fe8c}.construction-log-empty>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;color:var(--blue);background:#2563eb14}.construction-log-empty b{font-size:12px}.construction-log-empty p{margin-top:5px;color:#8b96a6;font-size:9px}.construction-log-empty a{padding:8px 11px;border-radius:9px;color:var(--blue);background:#2563eb17;font-size:9px;font-weight:800}.site-heading{margin:22px 5px 20px}.site-heading>span{display:block;margin-bottom:8px;color:#7e8ca1;font-size:16px;font-weight:650}.site-global-actions{width:min(100%,980px);min-height:116px;margin:0 auto 17px;padding:18px 20px;display:grid;grid-template-columns:minmax(165px,.54fr) minmax(460px,1.46fr);gap:18px;align-items:center;border:1px solid rgba(37,99,235,.14);border-radius:22px;background:linear-gradient(135deg,#ffffffe6,#eff5ffd6);box-shadow:0 20px 52px #254b891c,inset 0 0 0 1px #fff9}.site-global-actions-copy b,.site-global-actions-copy span{display:block}.site-global-actions-copy b{color:#20304a;font-size:17px}.site-global-actions-copy span{margin-top:6px;color:#77869d;font-size:10px;line-height:1.5}.site-global-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.site-global-actions.action-count-1 .site-global-action-buttons{grid-template-columns:1fr}.site-global-action{width:100%;min-height:74px;padding:0 22px;justify-content:flex-start;gap:12px;border-radius:17px;box-shadow:0 12px 28px #2563eb24}.site-global-action.secondary-button{color:#1e55b3;border-color:#2563eb4d;background:#f8fbffeb;box-shadow:0 12px 28px #37588f17}.site-global-action.secondary-button:hover{border-color:#2563eb6b;background:#fff}.site-global-action svg{width:24px;height:24px;flex:none}.site-global-action>span{min-width:0;text-align:left}.site-global-action b,.site-global-action small{display:block}.site-global-action b{font-size:15px}.site-global-action small{margin-top:4px;color:#74839a;font-size:9px;font-weight:600}.site-global-action.primary-button small{color:#ffffffc2}.site-global-action:disabled{opacity:.5;cursor:not-allowed;transform:none}.site-active-tasks,.site-photos,.site-node-documents{width:min(100%,980px);margin-right:auto;margin-left:auto}.site-task-header,.site-photos>.section-header{min-height:54px;padding:0 5px}.site-task-header h2,.site-photos>.section-header h2{font-size:18px}.site-task-header p,.site-photos>.section-header p{margin-top:4px;color:var(--muted);font-size:11px}.site-task-header>span{padding:6px 9px;border-radius:9px;color:var(--blue);background:#2563eb14;font-size:10px;font-weight:750}.current-task-list{display:grid;gap:10px}.site-task-empty{min-height:90px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:18px;color:#748197;font-size:12px}.site-task-empty svg{color:var(--success)}.current-task{position:relative;padding:17px 20px;border-radius:19px;display:grid;grid-template-columns:48px minmax(0,1fr) 70px;gap:14px;align-items:center}.current-task.needs-supplement{border-color:#ea6b1340;background:#fffcf7d6;box-shadow:0 18px 46px #b8521014,inset 0 0 0 1px #ea6b1314}.task-icon{width:46px;height:46px;display:grid;place-items:center;color:#fff;background:var(--blue);border-radius:14px;box-shadow:0 8px 18px #2563eb29}.task-icon svg{width:22px;height:22px}.current-task.needs-supplement .task-icon{background:linear-gradient(135deg,#f59e0b,#ea6b13);box-shadow:0 9px 20px #ea6b1333}.task-title{min-width:0}.task-title>div{display:flex;align-items:center;gap:9px}.task-title h2{overflow:hidden;font-size:18px;text-overflow:ellipsis;white-space:nowrap}.task-status{flex:none;padding:4px 7px;border-radius:7px;color:var(--blue);background:#2563eb14;font-size:9px;font-weight:750}.task-status.completed{color:#117055;background:#16a7791a}.task-status.delayed{color:#c75a0a;background:#f9731617}.task-status.supplement{color:#b14b08;background:#f973161f}.task-title p{margin-top:5px;display:flex;align-items:center;gap:6px;overflow:hidden;color:#738198;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.task-title small{display:block;margin-top:4px;overflow:hidden;color:#929bad;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.task-title>.task-supplement-request{margin-top:7px;padding:7px 9px;display:block;border-radius:10px;color:#72411f;background:#f9731617}.task-supplement-request b{display:block;font-size:10px;line-height:1.5}.task-supplement-request span{display:block;margin-top:4px;color:#a06237;font-size:8px}.current-task .progress-ring,.current-task .supplement-state-ring{grid-column:3;grid-row:1;width:70px!important;height:70px!important}.current-task .progress-ring:before{inset:7px}.current-task .progress-ring>div strong{font-size:12px}.supplement-state-ring{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(234,107,19,.2);border-radius:50%;color:#b34c09;background:#fff7ede6}.supplement-state-ring span{font-size:9px;font-weight:800}.task-actions{grid-column:1 / -1;display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(135px,1fr));gap:9px}.task-actions.action-count-1{grid-template-columns:1fr}.task-actions.action-count-2{grid-template-columns:repeat(2,minmax(160px,1fr))}.node-action{min-height:40px;padding:0 14px;border-radius:12px;font-size:11px}.node-action.required-evidence{box-shadow:0 0 0 3px #f9731617}.site-node-documents{margin-top:22px}.site-node-documents .section-header{padding:0 5px}.site-node-documents .section-header span{color:var(--muted);font-size:12px}.node-document-list{border-radius:18px;overflow:hidden}.node-document-list article{min-height:64px;padding:9px 14px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 36px;gap:10px;align-items:center;border-bottom:1px solid var(--line)}.node-document-list article:last-child{border-bottom:0}.node-document-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--blue);background:#2563eb14}.node-document-list b,.node-document-list small{display:block}.node-document-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.node-document-list small{margin-top:4px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9px}.node-document-category{padding:4px 7px;border-radius:7px;color:#526078;background:#e7edf7cc;font-size:9px;font-weight:750}.node-document-empty{min-height:74px;padding:14px;display:flex;align-items:center;justify-content:center;gap:8px;color:#8995a7;font-size:11px}.node-document-empty svg{color:var(--blue)}.site-photos{margin-top:23px}.site-photos .section-header span{color:var(--muted);font-size:12px}.node-photo-groups{display:grid;gap:13px}.node-photo-group{padding:16px;border-radius:20px;content-visibility:auto;contain-intrinsic-size:230px}.node-photo-group>header{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.node-photo-title{min-width:0;display:flex;align-items:center;gap:10px}.node-photo-title>span{width:34px;height:34px;display:grid;place-items:center;flex:none;border-radius:11px;color:var(--blue);background:#2563eb14}.node-photo-title h3{overflow:hidden;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.node-photo-title small{display:block;margin-top:3px;color:#929cad;font-size:9px}.node-photo-group>header>b{flex:none;color:#69768b;font-size:10px}.photo-rail.large.node-photo-rail{grid-template-columns:repeat(3,1fr)}.photo-rail.large.node-photo-rail figure{height:190px}.node-photo-rail figcaption{right:8px;display:block;overflow:hidden}.node-photo-rail figcaption b,.node-photo-rail figcaption span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-photo-rail figcaption b{font-size:10px}.node-photo-rail figcaption span{margin-top:2px;color:#ffffffc2;font-size:8px}.node-photo-empty{width:100%;min-height:70px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed rgba(76,115,181,.24);border-radius:14px;color:#8793a5;background:#eef5ff4d;font-size:11px;font-weight:700}.report-issue{width:min(100%,780px);min-height:64px;margin:22px auto 0;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:18px;color:var(--blue);font-size:16px;font-weight:750;cursor:pointer}.open-issues{max-width:780px;margin:25px auto 0}.open-issues h2{margin:0 5px 10px;font-size:17px}.open-issues article{margin-bottom:9px;padding:15px 17px;display:flex;gap:12px;border-radius:15px;color:var(--warning)}.open-issues article div{color:#252f42}.open-issues article b,.open-issues article span{display:block}.open-issues article span{margin-top:4px;color:var(--muted);font-size:11px}.toast-message{position:fixed;z-index:80;top:87px;left:50%;padding:10px 17px;color:#fff;background:#0c1d35e6;border-radius:12px;box-shadow:0 10px 25px #0510202e;transform:translate(-50%);font-size:13px}.log-node-context{min-height:76px;padding:13px 14px;display:flex;align-items:center;gap:12px;border:1px solid rgba(37,99,235,.13);border-radius:15px;background:#2563eb0e}.log-node-context>span{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:12px;color:#fff;background:var(--blue)}.log-node-context small,.log-node-context b,.log-node-context p{display:block}.log-node-context small{color:#7f8a9d;font-size:9px}.log-node-context b{margin-top:3px;color:#20304a;font-size:15px}.log-node-context p{margin-top:4px;color:#7d899b;font-size:9px}.log-node-picker{min-height:92px;padding:12px 14px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;border:1px solid rgba(37,99,235,.13);border-radius:15px;background:#2563eb0e}.log-node-picker>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#fff;background:var(--blue)}.log-node-picker label{min-width:0}.form-grid .log-node-picker select{height:43px;margin-top:5px;background:#ffffffe6}.log-node-picker small{display:block;margin-top:5px;overflow:hidden;color:#7d899b;font-size:8px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.upload-zone.is-disabled{opacity:.58;cursor:not-allowed}.selected-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.selected-photo-grid figure{position:relative;min-width:0;overflow:hidden;border-radius:12px;background:#e9eef7}.selected-photo-grid img{width:100%;height:92px;display:block;object-fit:cover}.selected-photo-grid button{position:absolute;top:5px;right:5px;width:25px;height:25px;display:grid;place-items:center;border:0;border-radius:8px;color:#fff;background:#081120a8;cursor:pointer}.selected-photo-grid figcaption{padding:6px 7px;overflow:hidden;color:#667287;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.supplement-photo-requirement{margin:-5px 0 0;padding:9px 11px;display:flex;align-items:center;gap:7px;border-radius:10px;color:#a74408;background:#f9731617;font-size:10px;font-weight:700}.supplement-photo-requirement svg{flex:none}.documents-heading{align-items:center}.category-tabs{margin-bottom:13px;display:flex;align-items:center;gap:5px}.category-tabs button{min-width:64px;height:36px;padding:0 14px;border:0;border-radius:11px;color:#7a879a;background:transparent;cursor:pointer;font-size:12px;font-weight:650}.category-tabs button.active{color:var(--blue);background:#ffffffd1;box-shadow:0 5px 16px #2b426814,inset 0 0 0 1px #899ebf21}.document-list{border-radius:var(--radius);overflow:hidden}.document-list article{min-height:76px;display:grid;grid-template-columns:48px minmax(180px,1fr) 70px 180px 44px;gap:12px;align-items:center;padding:10px 20px;border-bottom:1px solid var(--line)}.document-list article:last-child{border-bottom:0}.document-list article:hover{background:#fff6}.doc-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:var(--blue);background:#2563eb14}.doc-main h3{font-size:14px}.doc-main p{margin-top:5px;color:var(--muted);font-size:11px}.doc-version{justify-self:start;padding:5px 8px;color:#526078;background:#e7edf7cc;border-radius:8px;font-size:10px;font-weight:750}.doc-meta{color:#566278;font-size:11px}.doc-meta small{display:block;color:#929bae;margin-top:5px}.drawing-library{display:grid;gap:13px}.drawing-library-toolbar{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:18px}.drawing-library-toolbar>p{flex:none;color:#8792a4;font-size:11px}.drawing-library-toolbar>p b{color:#4b5870;font-size:12px}.drawing-search{position:relative;width:min(100%,430px)}.drawing-search>svg{position:absolute;z-index:1;top:50%;left:13px;color:#8a96a9;transform:translateY(-50%);pointer-events:none}.drawing-search input{width:100%;height:44px;padding:0 14px 0 40px;border:1px solid rgba(142,161,192,.21);border-radius:13px;color:#263249;background:#ffffff9e;box-shadow:0 7px 20px #2b42680b;outline:none;font-size:12px}.drawing-search input::placeholder{color:#a0a9b7}.drawing-search input:focus{border-color:#2563eb7a;background:#ffffffe6;box-shadow:0 0 0 3px #2563eb13}.drawing-type-filters{display:flex;align-items:center;gap:7px;overflow-x:auto;padding:1px 1px 3px;scrollbar-width:none}.drawing-type-filters::-webkit-scrollbar{display:none}.drawing-type-filters button{min-height:36px;padding:0 12px;display:inline-flex;align-items:center;gap:7px;flex:none;border:1px solid rgba(142,161,192,.18);border-radius:11px;color:#68758a;background:#ffffff61;cursor:pointer;font-size:11px;font-weight:700}.drawing-type-filters button span{min-width:18px;padding:2px 5px;border-radius:6px;color:#8b96a8;background:#e5ebf4c2;font-size:8px;text-align:center}.drawing-type-filters button:hover{color:var(--blue);background:#ffffffb3}.drawing-type-filters button.active{border-color:#2563eb38;color:var(--blue);background:#ffffffe0;box-shadow:0 6px 17px #2563eb14}.drawing-type-filters button.active span{color:var(--blue);background:#2563eb14}.drawing-type-groups{display:grid;gap:15px}.drawing-type-group{overflow:hidden;border-radius:var(--radius)}.drawing-type-group.is-unclassified{border-color:#f9731638;box-shadow:0 18px 46px #b2521312,inset 0 0 0 1px #f9731614}.drawing-type-heading{min-height:78px;padding:14px 20px;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center}.drawing-type-heading>span{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;color:var(--blue);background:#2563eb17}.drawing-type-heading h2{font-size:16px}.drawing-type-heading p{margin-top:5px;color:#8a95a7;font-size:10px}.drawing-type-heading>b{padding:6px 9px;border-radius:8px;color:#b5520c;background:#f973161a;font-size:9px}.drawing-version-groups{border-top:1px solid rgba(151,169,198,.17)}.drawing-version-group{display:grid;grid-template-columns:150px minmax(0,1fr);border-bottom:1px solid rgba(151,169,198,.16);background:#fbfcff61}.drawing-version-group:last-child{border-bottom:0}.drawing-version-group>header{min-height:76px;padding:17px 18px;display:flex;align-items:flex-start;gap:9px;border-right:1px solid rgba(151,169,198,.16)}.drawing-version-group>header>span{min-width:39px;padding:6px 8px;border-radius:8px;color:#315fae;background:#2563eb14;font-size:10px;font-weight:800;text-align:center}.drawing-version-group>header b,.drawing-version-group>header small{display:block}.drawing-version-group>header b{margin-top:1px;color:#536076;font-size:10px}.drawing-version-group>header small{margin-top:5px;color:#929cad;font-size:8px;line-height:1.4}.drawing-file-list{min-width:0}.drawing-file-row{min-height:76px;padding:10px 16px;display:grid;grid-template-columns:46px minmax(180px,1fr) minmax(130px,170px) auto;gap:11px;align-items:center;border-bottom:1px solid rgba(151,169,198,.14)}.drawing-file-row:last-child{border-bottom:0}.drawing-file-row:hover{background:#ffffff8c}.drawing-file-row .doc-main{min-width:0}.drawing-file-row .doc-main h3,.drawing-file-row .doc-main p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-file-row .doc-main h3{font-size:13px}.drawing-file-row .doc-main p{margin-top:5px;color:var(--muted);font-size:9px}.drawing-file-actions{display:flex;align-items:center;gap:5px}.drawing-edit-button{color:#60708a;background:#ecf1f9b8}.drawing-edit-button:hover{color:var(--blue);background:#2563eb14}.drawing-empty-state{min-height:150px;padding:24px;display:flex;align-items:center;justify-content:center;gap:13px;border-radius:var(--radius);color:#8792a4}.drawing-empty-state>svg{color:#7693c6}.drawing-empty-state b{color:#435067;font-size:13px}.drawing-empty-state p{margin-top:5px;font-size:10px}.drawing-empty-state button{margin-left:8px;padding:7px 10px;border:0;border-radius:9px;color:var(--blue);background:#2563eb14;cursor:pointer;font-size:10px;font-weight:750}.drawing-metadata-context{min-height:72px;padding:12px 13px;display:grid;grid-template-columns:40px minmax(0,1fr);gap:11px;align-items:center;border:1px solid rgba(37,99,235,.13);border-radius:14px;background:#2563eb0d}.drawing-metadata-context>span{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--blue);background:#ffffffc2}.drawing-metadata-context small,.drawing-metadata-context b,.drawing-metadata-context p{display:block}.drawing-metadata-context small{color:#8290a5;font-size:8px}.drawing-metadata-context b{margin-top:3px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.drawing-metadata-context p{margin-top:4px;color:#7c899d;font-size:8px}.login-page{position:relative;min-height:100vh;padding:32px;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#f3f8ff,#f8fbff 52%,#fffaf5)}.login-orb{position:absolute;border-radius:50%;filter:blur(4px);opacity:.65}.login-orb-one{width:420px;height:420px;left:-120px;top:-140px;background:radial-gradient(circle,rgba(83,152,255,.2),transparent 68%)}.login-orb-two{width:380px;height:380px;right:-80px;bottom:-100px;background:radial-gradient(circle,rgba(255,188,111,.16),transparent 70%)}.login-shell{position:relative;z-index:1;width:min(100%,960px);min-height:560px;display:grid;grid-template-columns:1fr 1.02fr;border-radius:30px;overflow:hidden}.login-intro{padding:40px;display:flex;flex-direction:column;border-right:1px solid rgba(158,177,207,.18);background:#f7faff57}.login-brand{padding:0}.login-brand strong{color:#111a2a;font-size:19px}.login-brand small{color:#3c69b6;font-size:9px;letter-spacing:.1em;font-weight:800}.login-intro-copy{margin:auto 0}.login-intro-copy h1{font-size:38px;line-height:1.25;letter-spacing:-.04em}.login-intro-copy p{max-width:300px;margin-top:17px;color:#6f7b8e;font-size:13px;line-height:1.8}.login-flow{display:flex;align-items:center;color:#6f7d93;font-size:11px;font-weight:650}.login-flow i{height:1px;flex:1;margin:0 8px;background:#7e96bc47}.login-form{padding:45px 48px;display:flex;flex-direction:column;justify-content:center}.login-heading .soft-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:17px;border-radius:16px;color:var(--blue);background:#ffffffbf;box-shadow:0 8px 22px #2a446c17}.login-heading h2{font-size:29px;letter-spacing:-.03em}.login-heading p{margin-top:8px;color:var(--muted);font-size:12px}.demo-roles{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:24px 0 20px}.demo-roles button{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(148,167,197,.2);border-radius:13px;color:#7b879a;background:#ffffff6e;cursor:pointer;font-size:10px}.demo-roles button.active{color:var(--blue);background:#ffffffe6;border-color:#2563eb47;box-shadow:0 6px 17px #2563eb17}.login-form>label,.form-grid label{display:block;color:#526078;font-size:11px;font-weight:650}.login-form-no-demos>label:first-of-type{margin-top:28px}.login-form>label+label{margin-top:15px}.login-form input,.form-grid input,.form-grid select,.form-grid textarea{width:100%;margin-top:7px;border:1px solid rgba(142,161,192,.25);border-radius:12px;color:#1e293b;background:#ffffffab;outline:none;transition:.15s}.login-form input,.form-grid input,.form-grid select{height:46px;padding:0 13px}.form-grid textarea{padding:12px 13px;resize:vertical}.login-form input:focus,.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#2563eb8c;box-shadow:0 0 0 3px #2563eb14}.login-button{width:100%;margin-top:19px;min-height:48px}.login-hint{margin-top:12px;color:#9aa4b5;text-align:center}.form-error{margin-top:10px;color:var(--danger);font-size:11px}.invitation-page{overflow:auto;place-items:start center}.invitation-shell{min-height:600px}.invitation-intro{background:linear-gradient(155deg,#f4f8ff99,#edf5ff40)}.invitation-project-copy{margin:auto 0}.invitation-shield{width:50px;height:50px;display:grid;place-items:center;margin-bottom:20px;border-radius:17px;color:var(--blue);background:#ffffffc7;box-shadow:0 9px 24px #2a446c17}.invitation-project-copy h1{max-width:340px;font-size:34px;line-height:1.25;letter-spacing:-.04em}.invitation-project-copy p{margin-top:13px;color:#6f7b8e;font-size:14px}.invitation-assurance{display:flex;align-items:center;gap:8px;color:#4d607d;font-size:12px;font-weight:700}.invitation-assurance svg{color:var(--success)}.invitation-form-wrap{overflow-y:auto}.invitation-form-wrap .loading-state{min-height:360px}.invitation-heading .soft-icon{margin-bottom:13px}.invitation-role-summary{margin-top:18px;padding:13px 14px;display:flex;align-items:center;gap:12px;border:1px solid rgba(37,99,235,.13);border-radius:14px;color:var(--blue);background:#2563eb0e}.invitation-role-summary div{min-width:0}.invitation-role-summary b,.invitation-role-summary small{display:block}.invitation-role-summary b{color:#25334b;font-size:13px}.invitation-role-summary small{margin-top:4px;color:#7e899c;font-size:10px}.invitation-expiry{margin:11px 2px 17px;display:flex;align-items:center;gap:6px;color:#8792a5;font-size:10px;line-height:1.5}.invitation-current-user{padding:17px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid rgba(146,164,193,.2);border-radius:16px;background:#ffffff80}.invitation-current-user>div:nth-child(2){min-width:0}.invitation-current-user small,.invitation-current-user b,.invitation-current-user p{display:block}.invitation-current-user small{color:#8a95a7;font-size:9px}.invitation-current-user b{margin-top:4px;font-size:13px}.invitation-current-user p{margin-top:3px;overflow:hidden;color:#737f93;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.invitation-current-user em{display:block;margin-top:6px;color:var(--danger);font-size:9px;font-style:normal;font-weight:700}.invitation-current-user .primary-button{min-height:39px;padding:0 15px;font-size:12px}.invitation-current-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px}.invitation-switch-account{padding:2px 4px;border:0;color:#768298;background:transparent;font-size:10px;cursor:pointer}.invitation-switch-account:hover{color:var(--blue)}.invitation-register-form>label,.invitation-register-form div>label{display:block;color:#526078;font-size:11px;font-weight:650}.invitation-register-form>label{margin-top:13px}.invitation-register-form input{width:100%;height:43px;margin-top:6px;padding:0 12px;border:1px solid rgba(142,161,192,.25);border-radius:11px;color:#1e293b;background:#ffffffab;outline:none;transition:.15s}.invitation-register-form input:focus{border-color:#2563eb8c;box-shadow:0 0 0 3px #2563eb14}.invitation-register-form input[readonly]{color:#707d92;background:#ebf0f8b8;cursor:not-allowed}.invitation-account-tabs{padding:3px;display:grid;grid-template-columns:1fr 1fr;gap:3px;border:1px solid rgba(151,169,198,.2);border-radius:12px;background:#eef3fbbf}.invitation-account-tabs button{min-height:35px;border:0;border-radius:9px;color:#7a879b;background:transparent;font-size:11px;font-weight:700;cursor:pointer}.invitation-account-tabs button.active{color:var(--blue);background:#fffffff0;box-shadow:0 2px 8px #31486f14}.invitation-account-hint{margin:10px 2px 1px;color:#7f8b9e;font-size:10px;line-height:1.6}.invitation-profile-grid,.invitation-password-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.invitation-register-form .login-button{min-height:45px;margin-top:17px}.invitation-action-error{margin-top:11px;padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:11px;color:#b42318;background:#ef444412;font-size:10px;line-height:1.5}.invitation-action-error a{flex:none;color:var(--blue);font-weight:750}.invitation-login-link{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:5px;color:#818da0;font-size:10px;font-weight:650}.invitation-login-link:hover{color:var(--blue)}.invitation-invalid{min-height:350px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.invitation-invalid .soft-icon{width:50px;height:50px;display:grid;place-items:center;margin-bottom:16px;border-radius:16px;color:var(--danger);background:#ef444412}.invitation-invalid h2{font-size:23px}.invitation-invalid p{margin-top:9px;color:#5f6c82;font-size:12px}.invitation-invalid small{max-width:330px;margin-top:8px;color:#929cad;font-size:10px;line-height:1.7}.invitation-invalid .secondary-button{margin-top:22px}.modal-backdrop{position:fixed;z-index:100;inset:0;padding:18px;display:grid;place-items:center;background:#08112052;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal{width:min(100%,540px);max-height:calc(100vh - 36px);overflow-y:auto;padding:22px;border-radius:24px}.modal-wide{width:min(100%,760px)}.modal>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal>header h2{font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .span-2{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:6px}.phase-return-form{display:grid;gap:16px}.phase-return-context{padding:13px 14px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;border:1px solid rgba(151,169,198,.17);border-radius:15px;background:#f8fafeb8}.phase-return-context>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;color:#14805f;background:#16a7791a}.phase-return-context small,.phase-return-context b,.phase-return-context p{display:block}.phase-return-context small{color:#8a95a7;font-size:9px}.phase-return-context b{margin-top:3px;font-size:14px}.phase-return-context p{margin-top:4px;color:#788498;font-size:9px}.phase-return-warning{padding:10px 12px;display:flex;align-items:flex-start;gap:8px;border-radius:12px;color:#9b480e;background:#f9731614;font-size:10px;line-height:1.55}.phase-return-warning svg{flex:none;margin-top:1px}.phase-return-requirements{min-width:0;margin:0;padding:0;border:0}.phase-return-requirements legend,.phase-return-reason{color:#526078;font-size:11px;font-weight:700}.phase-return-requirements>div{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.phase-return-requirements label{min-width:0;padding:11px;display:grid;grid-template-columns:20px 34px minmax(0,1fr);grid-template-rows:auto auto;column-gap:8px;align-items:center;border:1px solid rgba(142,161,192,.22);border-radius:13px;background:#ffffff80;cursor:pointer}.phase-return-requirements label.selected{border-color:#f973166b;background:#fff7eddb;box-shadow:0 6px 16px #ea6b1312}.phase-return-requirements input{grid-row:1 / 3;width:16px;height:16px;margin:0;accent-color:#ea6b13}.phase-return-requirements label>span{grid-row:1 / 3;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:#a8490c;background:#f9731617}.phase-return-requirements b{align-self:end;font-size:11px}.phase-return-requirements small{align-self:start;margin-top:3px;overflow:hidden;color:#8d98a8;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.phase-return-reason{position:relative;display:block}.phase-return-reason textarea{width:100%;margin-top:7px;padding:12px 13px 27px;border:1px solid rgba(142,161,192,.25);border-radius:12px;color:#1e293b;background:#ffffffab;outline:none;resize:vertical}.phase-return-reason textarea:focus{border-color:#2563eb8c;box-shadow:0 0 0 3px #2563eb14}.phase-return-reason>small{position:absolute;right:10px;bottom:9px;color:#9aa4b4;font-size:8px;font-weight:500}.invite-context{display:flex;align-items:center;gap:7px;color:#6e7b91;font-size:12px}.invite-context svg{color:var(--blue)}.invite-role-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.invite-role-options>button{position:relative;min-height:104px;padding:15px;display:flex;align-items:flex-start;gap:11px;border:1px solid rgba(142,161,192,.22);border-radius:16px;color:#718097;background:#ffffff75;text-align:left;cursor:pointer;transition:.15s}.invite-role-options>button:hover{background:#fffc}.invite-role-options>button.active{border-color:#2563eb5c;background:#f4f8ffeb;box-shadow:0 7px 20px #2563eb14}.invite-role-options>button>span{width:36px;height:36px;display:grid;place-items:center;flex:none;border-radius:11px;color:var(--blue);background:#2563eb14}.invite-role-options>button b,.invite-role-options>button small{display:block}.invite-role-options>button b{color:#26334a;font-size:13px}.invite-role-options>button small{margin-top:6px;color:#8792a4;font-size:9px;line-height:1.5}.invite-role-options>button i{position:absolute;right:12px;top:12px;width:14px;height:14px;border:1px solid rgba(123,143,177,.38);border-radius:50%}.invite-role-options>button.active i{border:4px solid var(--blue);background:#fff}.invite-policy{margin:14px 2px 19px;display:flex;align-items:flex-start;gap:7px;color:#78859a;font-size:10px;line-height:1.6}.invite-policy svg{flex:none;color:var(--success)}.invite-result{text-align:center}.invite-success-icon{width:52px;height:52px;display:grid;place-items:center;margin:0 auto 13px;border-radius:50%;color:#fff;background:var(--success);box-shadow:0 8px 20px #16a77933}.invite-result h3{font-size:18px}.invite-result>p:not(.form-error){margin-top:7px;color:#78859a;font-size:11px}.invite-result>label{display:block;margin:20px 0 7px;color:#526078;text-align:left;font-size:10px;font-weight:700}.invite-link-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.invite-link-field input{min-width:0;height:44px;padding:0 12px;border:1px solid rgba(142,161,192,.25);border-radius:11px;color:#45536b;background:#ffffffb3;font-size:11px;outline:none}.invite-link-field input:focus{border-color:#2563eb7a;box-shadow:0 0 0 3px #2563eb12}.invite-link-field button{min-width:84px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:0;border-radius:11px;color:#fff;background:var(--blue);font-size:11px;font-weight:750;cursor:pointer}.invite-expiry{display:block;margin-top:8px;color:#8d97a8;text-align:left;font-size:9px}.invite-result-note{margin:18px 0;padding:11px 12px;display:flex;align-items:flex-start;gap:8px;border-radius:12px;color:#68758a;background:#2563eb0e;text-align:left;font-size:10px;line-height:1.55}.invite-result-note svg{flex:none;color:var(--blue)}.project-members-context{min-height:62px;padding:12px 14px;display:flex;align-items:center;gap:12px;border:1px solid rgba(142,161,192,.18);border-radius:16px;background:#f6f9feb8}.member-context-icon{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:12px;color:var(--blue);background:#2563eb14}.project-members-context b,.project-members-context p{display:block}.project-members-context b{color:#26334a;font-size:13px}.project-members-context p{margin-top:4px;color:#8691a3;font-size:10px}.member-notice{margin-top:12px;padding:10px 12px;display:flex;align-items:center;gap:7px;border-radius:11px;color:#157b5c;background:#16a77914;font-size:11px;font-weight:700}.member-notice svg{flex:none}.project-members>.loading-state{min-height:290px}.member-load-error{min-height:290px;padding:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7d899b;text-align:center}.member-load-error>svg{margin-bottom:12px;color:var(--danger)}.member-load-error h3{color:#253047;font-size:17px}.member-load-error p{margin-top:7px;font-size:11px}.member-load-error .secondary-button{margin-top:18px}.member-list{margin-top:14px;border:1px solid rgba(145,164,195,.16);border-radius:17px;overflow:hidden;background:#ffffff6b}.member-list article{min-height:82px;padding:12px 14px;display:grid;grid-template-columns:42px minmax(190px,1.35fr) minmax(110px,.8fr) minmax(170px,.9fr) 38px;gap:12px;align-items:center;border-bottom:1px solid var(--line);transition:background .15s,opacity .15s}.member-list article:last-child{border-bottom:0}.member-list article:hover{background:#ffffff8f}.member-list article.suspended{background:#f8f9fc94}.member-avatar{width:38px;height:38px;display:grid;place-items:center;flex:none;border-radius:50%;color:var(--blue);background:#2563eb17}.member-avatar.large{width:44px;height:44px;color:#fff;background:var(--blue);box-shadow:0 6px 16px #2563eb33}.member-list article.suspended .member-avatar{color:#8a95a7;background:#7688a41a}.member-identity,.member-organization{min-width:0}.member-identity b,.member-identity p,.member-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-identity b{color:#263147;font-size:13px}.member-identity p{margin-top:4px;color:#69768b;font-size:10px}.member-identity small{margin-top:4px;color:#9aa3b2;font-size:9px}.member-organization{overflow:hidden;color:#657188;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.member-access-summary{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:5px}.member-access-summary small{flex-basis:100%;margin-top:2px;color:#929cad;font-size:9px}.member-role,.member-status{padding:4px 7px;border-radius:7px;font-size:9px;font-weight:750;white-space:nowrap}.member-role{color:#315fae;background:#2563eb14}.member-role.role-property{color:#8a5a16;background:#f59e0b1a}.member-role.role-client{color:#647187;background:#7688a41a}.member-role.role-manager{color:#5c47b5;background:#7c5ce01a}.member-status.status-active{color:#157b5c;background:#16a77917}.member-status.status-suspended{color:#b3423d;background:#ef444414}.member-edit-button{width:36px;height:36px;justify-self:end}.member-editor-back{margin:-5px 0 14px;padding:5px 3px;display:inline-flex;align-items:center;gap:3px;border:0;color:#718097;background:transparent;font-size:11px;font-weight:700;cursor:pointer}.member-editor-back:hover{color:var(--blue)}.member-editor-back:disabled{opacity:.55;cursor:wait}.member-editor-profile{min-height:72px;padding:13px 15px;display:flex;align-items:center;gap:13px;border:1px solid rgba(142,161,192,.18);border-radius:16px;background:#f6f9feb8}.member-editor-profile div{min-width:0}.member-editor-profile h3,.member-editor-profile p,.member-editor-profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-editor-profile h3{font-size:14px}.member-editor-profile p{margin-top:4px;color:#657188;font-size:10px}.member-editor-profile small{margin-top:4px;color:#929cad;font-size:9px}.member-editor-fields{margin-top:16px}.member-editor-fields label>small{display:block;min-height:28px;margin:6px 2px 0;color:#929cad;font-size:9px;font-weight:500;line-height:1.5}.permission-fieldset{min-width:0;margin:14px 0 0;padding:0;border:0}.permission-fieldset legend{width:100%;margin-bottom:10px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}.permission-fieldset legend b{color:#263147;font-size:13px}.permission-fieldset legend span{color:#929cad;font-size:9px;font-weight:500}.permission-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.permission-option{position:relative;min-height:70px;padding:12px;display:grid;grid-template-columns:28px minmax(0,1fr) 32px;gap:9px;align-items:center;border:1px solid rgba(142,161,192,.2);border-radius:14px;color:#718097;background:#ffffff70;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.permission-option:hover{background:#ffffffc7}.permission-option:focus-within{outline:3px solid rgba(37,99,235,.16);outline-offset:2px}.permission-option.enabled{border-color:#2563eb47;background:#f4f8ffe0;box-shadow:0 5px 16px #2563eb0d}.permission-option.locked{cursor:default}.permission-option.locked:not(.enabled){opacity:.58}.permission-option>input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.permission-check{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#98a2b2;background:#7688a417}.permission-option.enabled .permission-check{color:#fff;background:var(--blue)}.permission-copy{min-width:0}.permission-copy b,.permission-copy small{display:block}.permission-copy b{color:#2d394f;font-size:11px}.permission-copy small{margin-top:4px;color:#929cad;font-size:8px;line-height:1.45}.permission-switch{position:relative;width:32px;height:18px;border-radius:20px;background:#dfe5ef;transition:background .15s}.permission-switch i{position:absolute;left:3px;top:3px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #26365033;transition:transform .15s}.permission-option.enabled .permission-switch{background:var(--blue)}.permission-option.enabled .permission-switch i{transform:translate(14px)}.member-editor>.form-error{margin-top:13px}.member-editor>.modal-actions{margin-top:16px}.upload-zone{min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px dashed rgba(76,115,181,.34);border-radius:16px;color:var(--blue);background:#eef5ff7a;cursor:pointer}.upload-zone b{font-size:13px}.upload-zone small{color:#919bad;font-size:10px}.document-upload-zone{transition:border-color .15s,background .15s,box-shadow .15s}.document-upload-zone:hover,.document-upload-zone.is-dragging{border-color:#2563eb9e;background:#e9f2ffc7;box-shadow:inset 0 0 0 2px #2563eb0f}.document-upload-zone:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.document-upload-zone.is-disabled{opacity:.62;cursor:wait}.fixed-phase-note{display:block;margin:6px 2px 0;color:#9a6c49;font-size:9px;font-weight:500}.selected-document-list{min-width:0;padding:12px;border:1px solid rgba(142,161,192,.2);border-radius:16px;background:#f8fafeb8}.selected-document-list>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:1px 2px 10px}.selected-document-list>header b{color:#354258;font-size:11px}.selected-document-list>header button{padding:3px 5px;border:0;color:#7b8799;background:transparent;font-size:10px;cursor:pointer}.selected-document-list>header button:hover{color:var(--danger)}.selected-document-list>header button:disabled{opacity:.55;cursor:wait}.selected-document-items{max-height:250px;overflow-y:auto;display:grid;gap:8px}.selected-document-row{min-width:0;padding:9px;display:grid;grid-template-columns:36px minmax(0,1fr) 32px;gap:9px;align-items:center;border:1px solid rgba(142,161,192,.16);border-radius:12px;background:#ffffffbd}.selected-document-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:var(--blue);background:#2563eb14}.selected-document-copy{min-width:0}.selected-document-copy label{font-size:9px}.form-grid .selected-document-copy input{height:38px;margin-top:4px;padding:0 10px;border-radius:9px;font-size:11px}.selected-document-copy small{display:block;margin-top:5px;overflow:hidden;color:#929cad;font-size:9px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.selected-document-remove{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:9px;color:#7d899b;background:#ecf0f7c2;cursor:pointer}.selected-document-remove:hover{color:var(--danger);background:#ef444414}.selected-document-remove:disabled{opacity:.5;cursor:wait}.document-upload-form .selected-document-list+label{min-width:0}.document-upload-form>.form-error{margin-top:-2px;line-height:1.55}.form-grid label>.field-hint{display:block;margin:6px 2px 0;color:#909bad;font-size:8px;font-weight:500;line-height:1.5}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);white-space:nowrap}.file-field input{padding:8px 5px}.loading-state{min-height:240px;display:flex;align-items:center;justify-content:center;gap:11px;color:#7b8799;font-size:13px}.spinner{width:20px;height:20px;border:2px solid #dfe6f2;border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}.center-screen{min-height:100vh;display:grid;place-items:center}.empty-state{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#7d899b;text-align:center}.empty-state h2{color:#202b3e}.empty-state.small{min-height:180px}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1050px){:root{--gantt-label-width: 165px}.gantt{--gantt-label-width: 165px}.sidebar{width:220px}.app-main{margin-left:220px}.summary-grid>div{padding:6px 15px}.dashboard-lower,.progress-layout{grid-template-columns:1fr}.milestone-panel{grid-row:2}}@media(max-width:760px){body{background:radial-gradient(circle at 50% -8%,rgba(75,134,255,.1),transparent 24rem),#f7faff}.sidebar{display:none}.app-main{margin-left:0;padding-bottom:calc(78px + env(safe-area-inset-bottom))}.topbar{height:60px;padding:0 17px;justify-content:space-between}.mobile-brand{display:flex;font-size:18px}.mobile-brand .brand-mark{width:36px;height:36px;border-radius:12px}.project-select,.topbar-space{display:none}.user-chip>span:nth-child(2),.user-chip>.avatar,.user-chip>button:not(.mobile-user-button){display:none}.user-chip .mobile-user-button{width:38px;height:38px;display:grid;color:var(--blue);background:#fff;border-radius:50%;box-shadow:0 5px 18px #2442701a}.page{padding:14px 16px 28px}.bottom-nav{position:fixed;z-index:45;left:12px;right:12px;bottom:max(10px,env(safe-area-inset-bottom));height:68px;padding:6px;display:grid;grid-template-columns:repeat(4,1fr);border-radius:20px}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border-radius:15px;color:#7a879b;font-size:9px;font-weight:700}.bottom-nav a.active{color:var(--blue);background:#2563eb14}.page-toolbar{margin:0 2px 10px}.page-toolbar-actions{margin-left:auto}.page-toolbar-actions .compact{min-height:36px;padding:0 10px;font-size:11px}.page-kicker{display:none}.project-summary{padding:21px 19px}.project-title-row>div{display:block}.project-title-row h1{font-size:22px;line-height:1.35}.quiet-status{display:inline-block;margin-top:9px}.summary-grid{grid-template-columns:1fr 1fr;margin-top:19px;gap:10px}.summary-grid>div{min-height:105px;padding:12px;border:0;border-radius:17px;background:#f6f9feb8}.summary-grid>div:first-child{grid-column:1 / -1;padding:10px 14px}.progress-summary{justify-content:center}.summary-stat>svg{display:none}.summary-stat strong{font-size:19px}.summary-stat small{white-space:normal;font-size:9px}.gantt-panel{padding:12px 10px}.gantt-panel .month-switch{display:none}.gantt-header-actions{gap:3px}.gantt-tool-button{width:34px;min-height:34px;padding:0}.gantt-tool-button span{display:none}.gantt-fullscreen-trigger{width:44px;min-height:44px}.gantt-fullscreen-header{min-height:64px;padding:max(9px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 9px max(10px,env(safe-area-inset-left));gap:10px}.gantt-fullscreen-title h2{max-width:235px;font-size:14px}.gantt-fullscreen-header-actions{gap:6px}.gantt-fullscreen-header-actions time{display:none}.gantt-fullscreen-close{width:44px;min-height:44px;padding:0}.gantt-fullscreen-body{padding:10px max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.progress-heading-actions{flex-direction:column-reverse;align-items:flex-end;gap:7px}.progress-heading-actions .gantt-plan-actions{margin-right:2px}.section-header .text-link{font-size:0}.section-header .text-link svg{width:19px;height:19px}.gantt{--gantt-label-width: 138px}.gantt-label b{font-size:10px}.dashboard-lower{gap:13px}.photo-panel,.next-node{padding:14px}.photo-rail{display:flex;overflow-x:auto;scrollbar-width:none}.photo-rail figure{flex:0 0 76%;height:190px}.next-node{display:none}.simple-heading{margin:10px 3px 18px;align-items:center}.simple-heading h1{font-size:27px}.simple-heading p{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.segment.large>button{min-width:62px;padding:8px 9px}.progress-canvas{min-height:480px;padding:17px 13px}.progress-layout{gap:13px}.timeline-event{grid-template-columns:24px 62px 1fr;gap:7px}.timeline-body{grid-template-columns:1fr auto;padding:12px}.timeline-icon{display:none}.timeline-body img{width:60px;height:52px}.milestone-panel{padding:18px}.construction-log-overview{grid-template-columns:38px minmax(0,1fr);padding:0 3px 15px}.construction-log-overview-icon{width:38px;height:38px;border-radius:12px}.construction-log-overview h2{font-size:16px}.construction-log-overview p{font-size:9px}.construction-log-stats{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.construction-log-stats>span{min-width:0;min-height:31px;padding:0 5px;justify-content:center;font-size:8px}.construction-log-stats b{font-size:11px}.construction-node-list{margin-top:12px;gap:9px}.construction-node{border-radius:16px}.construction-node-toggle{min-height:0;padding:14px 12px;grid-template-columns:38px minmax(0,1fr) 22px;gap:9px;align-items:start}.construction-node-index{grid-column:1;grid-row:1 / span 3;width:36px;height:36px;border-radius:11px}.construction-node-index svg{width:19px;height:19px}.construction-node-main{grid-column:2;grid-row:1}.construction-node-title-row{align-items:flex-start;flex-wrap:wrap;gap:5px}.construction-node-title-row>b{font-size:14px}.construction-node-meta,.construction-milestone-chip{margin-top:6px;font-size:8px}.construction-evidence-counts{grid-column:2 / 4;grid-row:2;margin-top:4px;justify-content:flex-start;gap:4px}.construction-evidence-counts>span{min-height:24px;padding:0 6px;font-size:8px}.construction-evidence-counts svg{width:13px;height:13px}.construction-node-progress{grid-column:2 / 4;grid-row:3;grid-template-columns:1fr 30px;gap:7px;align-items:center;margin-top:3px}.construction-node-progress>b{text-align:left;font-size:9px}.construction-node-chevron{grid-column:3;grid-row:1}.construction-node.completed .construction-node-index{grid-row:1}.construction-node.completed .construction-evidence-counts,.construction-node.completed .construction-node-progress{display:none}.construction-node-body{padding:12px}.construction-supplement-request{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:11px}.construction-supplement-request>span{width:34px;height:34px}.construction-supplement-request a,.construction-supplement-request>em{grid-column:2;justify-self:start}.construction-milestone-strip{margin-bottom:11px}.construction-milestone-strip>div{grid-template-columns:31px minmax(0,1fr);padding:9px}.construction-milestone-strip>div>span:first-child{width:30px;height:30px}.construction-milestone-strip small{line-height:1.45}.construction-milestone-strip em{grid-column:2;justify-self:start}.construction-day-list{gap:10px}.construction-day{display:block}.construction-day>time{min-height:28px;padding:0 3px 7px;flex-direction:row;justify-content:flex-start;gap:4px}.construction-day>time b{font-size:16px}.construction-day>time span{margin:0;font-size:9px}.construction-day>time small{margin:0 0 0 4px;font-size:8px}.construction-day-card{padding:12px;border-radius:14px}.construction-day-card>header{min-height:34px}.construction-day-card>header b{font-size:11px}.construction-day-counts>span{padding:0 5px;font-size:8px}.construction-log-copy{grid-template-columns:28px minmax(0,1fr);gap:8px}.construction-log-copy>span{width:28px;height:28px}.construction-photo-grid{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity}.construction-photo-grid>a{flex:0 0 82%;scroll-snap-align:start}.construction-photo-grid figure{height:156px}.construction-document-row{grid-template-columns:32px minmax(0,1fr) 18px;padding:7px}.construction-document-category{display:none}.construction-document-copy small{white-space:normal;line-height:1.4}.construction-node-empty{grid-template-columns:34px minmax(0,1fr);padding:12px}.construction-node-empty>span{width:34px;height:34px}.construction-node-empty a{grid-column:2;justify-self:start}.site-heading{margin:6px 5px 15px}.site-heading>span{font-size:16px}.site-heading h1{font-size:27px}.site-global-actions{min-height:0;margin-bottom:10px;padding:8px;display:block;border-color:#2563eb3d;border-radius:20px;box-shadow:0 14px 34px #2563eb24,inset 0 0 0 1px #ffffffad}.site-global-actions-copy{display:none}.site-global-action-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.site-global-actions.action-count-1 .site-global-action-buttons{grid-template-columns:1fr}.site-global-action{min-height:78px;padding:0 15px;gap:11px;border-radius:16px}.site-global-action svg{width:25px;height:25px}.site-global-action b{font-size:15px;font-weight:800}.site-global-action small{margin-top:3px;font-size:8px}.site-global-action.secondary-button{border-color:#2563eb52;background:#eff5fff2}.site-task-header{min-height:40px}.site-photos>.section-header{min-height:44px}.site-task-header h2,.site-photos>.section-header h2{font-size:17px}.site-task-header p{display:none}.site-photos>.section-header p{margin-top:2px;font-size:9px}.site-task-header>span{padding:5px 7px;font-size:9px}.current-task-list{gap:7px}.current-task{min-height:66px;padding:9px 10px;grid-template-columns:37px minmax(0,1fr) 44px;column-gap:8px;row-gap:5px;border-radius:15px}.current-task.has-node-action{grid-template-columns:37px minmax(0,1fr) 44px 44px}.task-icon{width:36px;height:36px;border-radius:11px}.task-icon svg{width:18px;height:18px}.task-title>div{gap:5px}.task-title h2{font-size:14px}.task-status{padding:3px 5px;font-size:9px}.task-title p{margin-top:3px;gap:4px;font-size:9px}.task-title p svg{width:13px;height:13px}.task-title small{margin-top:3px;font-size:8px}.current-task .progress-ring,.current-task .supplement-state-ring{grid-column:3;grid-row:1;width:44px!important;height:44px!important}.current-task .progress-ring:before{inset:5px}.current-task .progress-ring>div strong{font-size:9px}.supplement-state-ring{gap:2px}.supplement-state-ring svg{width:15px;height:15px}.supplement-state-ring span{font-size:6px}.task-title>.task-supplement-request{margin-top:5px;padding:5px 6px}.task-supplement-request b{overflow:hidden;font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.task-supplement-request span{margin-top:2px;overflow:hidden;font-size:8px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.current-task .task-actions{grid-column:4;grid-row:1;display:block;align-self:center}.current-task .node-action{width:44px;height:44px;min-height:44px;padding:0;border-radius:12px;font-size:0}.current-task .node-action svg{width:18px;height:18px}.site-node-documents{margin-top:16px}.node-document-list article{grid-template-columns:36px minmax(0,1fr) 34px;padding:9px 11px}.node-document-category{display:none}.site-photos{margin-top:18px}.node-photo-groups{gap:10px}.node-photo-group{padding:13px;border-radius:17px}.node-photo-group>header{margin-bottom:9px}.photo-rail.large.node-photo-rail{display:flex}.photo-rail.large.node-photo-rail figure{flex-basis:82%;height:158px}.node-photo-empty{min-height:62px}.report-issue{min-height:54px;margin-top:14px;border-radius:17px;font-size:14px}.log-node-picker{grid-template-columns:38px minmax(0,1fr);padding:10px;gap:9px}.log-node-picker>span{width:36px;height:36px;border-radius:11px}.form-grid .log-node-picker select{height:46px}.log-node-picker small{white-space:normal;line-height:1.45}.selected-photo-grid{grid-template-columns:repeat(2,1fr)}.selected-photo-grid img{height:96px}.documents-heading .primary-button{width:42px;min-height:42px;padding:0;font-size:0}.category-tabs{overflow-x:auto}.drawing-library{gap:11px}.drawing-library-toolbar{width:100%;display:grid;grid-template-columns:minmax(0,1fr);gap:9px}.drawing-library-toolbar>p{padding:0 2px}.drawing-search{width:100%;min-width:0;display:block}.drawing-search input{height:42px}.drawing-type-filters{margin:0 -1px}.drawing-type-filters button{min-height:34px;padding:0 10px;font-size:10px}.drawing-type-groups{gap:11px}.drawing-type-group{border-radius:18px}.drawing-type-heading{min-height:68px;padding:11px 13px;grid-template-columns:39px minmax(0,1fr) auto;gap:9px}.drawing-type-heading>span{width:38px;height:38px;border-radius:11px}.drawing-type-heading h2{font-size:14px}.drawing-type-heading p{margin-top:4px;font-size:8px}.drawing-type-heading>b{padding:5px 6px;font-size:7px}.drawing-version-group{display:block}.drawing-version-group>header{min-height:58px;padding:11px 13px;align-items:center;border-right:0;border-bottom:1px solid rgba(151,169,198,.14)}.drawing-version-group>header b{font-size:9px}.drawing-version-group>header small{margin-top:3px;font-size:7px}.drawing-file-row{min-height:70px;padding:9px 11px;grid-template-columns:40px minmax(0,1fr) auto;gap:8px}.drawing-file-row .doc-icon{width:38px;height:38px;border-radius:11px}.drawing-file-row .doc-main h3{font-size:11px}.drawing-file-row .doc-main p{font-size:8px}.drawing-file-row .doc-meta{display:none}.drawing-file-actions{gap:3px}.drawing-file-actions .icon-button{width:34px;height:34px}.drawing-empty-state{min-height:130px;padding:20px 15px}.drawing-empty-state button{margin-left:0}.document-list article{grid-template-columns:43px 1fr 38px;gap:9px;padding:12px 13px}.doc-version,.doc-meta{display:none}.doc-main h3{font-size:13px}.login-page{padding:18px}.login-shell{display:block;min-height:0;border-radius:25px}.login-intro{padding:25px;border-right:0;border-bottom:1px solid rgba(158,177,207,.18)}.login-intro-copy{margin:45px 0 38px}.login-intro-copy h1{font-size:31px}.login-flow{display:none}.login-form{padding:27px 24px 30px}.login-heading .soft-icon{display:none}.login-heading h2{font-size:24px}.demo-roles{margin:19px 0}.demo-roles button{height:53px}.invitation-page{padding:18px;place-items:start center}.invitation-shell{min-height:0}.invitation-intro{padding:23px}.invitation-project-copy{margin:31px 0 26px}.invitation-shield{display:none}.invitation-project-copy h1{font-size:27px}.invitation-form-wrap{padding-top:25px}.invitation-profile-grid,.invitation-password-grid{grid-template-columns:1fr;gap:12px}.invitation-current-user{grid-template-columns:38px minmax(0,1fr)}.invitation-current-actions{grid-column:1 / -1}.invitation-current-user .primary-button{width:100%}.modal{padding:19px}.form-grid{grid-template-columns:1fr}.form-grid .span-2,.modal-actions.span-2{grid-column:auto}.phase-return-requirements>div{grid-template-columns:1fr}.phase-return-form .modal-actions>button{flex:1;padding:0 12px}.invite-role-options{grid-template-columns:1fr}.invite-role-options>button{min-height:82px}.invite-link-field{grid-template-columns:1fr}.invite-link-field button{min-height:41px}.project-members-context{padding:11px 12px}.member-list article{grid-template-columns:38px minmax(0,1fr) 36px;gap:7px 9px;padding:13px 11px}.member-list article>.member-avatar{grid-column:1;grid-row:1}.member-list article>.member-identity{grid-column:2;grid-row:1}.member-list article>.member-edit-button{grid-column:3;grid-row:1}.member-list article>.member-organization{grid-column:2 / 4;grid-row:2}.member-list article>.member-access-summary{grid-column:2 / 4;grid-row:3}.member-access-summary small{flex-basis:auto;margin:0 0 0 2px}.member-editor-fields label>small{min-height:0}.permission-fieldset legend{align-items:flex-start;flex-direction:column;gap:4px}.permission-grid{grid-template-columns:1fr}.permission-option{min-height:66px;padding:10px}}@media(max-width:760px){.construction-followup-list{margin-top:11px}.construction-followup-list .construction-supplement-request{grid-template-columns:34px minmax(0,1fr)}.construction-followup-list .construction-supplement-request a,.construction-followup-list .construction-supplement-request>em{grid-column:2;justify-self:start}.construction-log-toolbar{min-height:44px;margin-top:9px;gap:7px}.construction-day-filter button{min-height:32px;padding:0 8px;font-size:9px}.construction-today-button{min-height:34px;padding:0 8px;font-size:9px}.construction-journal-list{margin-top:6px;gap:11px}.construction-journal-day{display:block;padding-left:20px}.construction-journal-day:before{top:31px;bottom:-15px;left:7px}.construction-journal-date{position:relative;top:auto;width:fit-content;min-height:31px;margin:0 0 7px -20px;padding:5px 9px;flex-wrap:nowrap;align-items:baseline;justify-content:flex-start;border-radius:10px;text-align:left}.construction-journal-date b{font-size:16px}.construction-journal-date span{margin:0 0 0 2px;font-size:8px}.construction-journal-date small,.construction-journal-date em{flex-basis:auto;margin:0 0 0 6px;font-size:8px}.construction-journal-card{border-radius:15px}.construction-journal-toggle{min-height:0;padding:12px;grid-template-columns:minmax(0,1fr) 22px;gap:9px;align-items:start}.construction-journal-heading{grid-column:1;grid-row:1}.construction-journal-title-row{align-items:flex-start;flex-wrap:wrap;gap:5px}.construction-journal-title-row>b{font-size:12px}.construction-day-status{min-height:21px;padding:0 6px;font-size:7px}.construction-phase-chips{margin-top:7px;gap:4px}.construction-phase-chip{min-height:23px;padding:0 6px;gap:4px}.construction-phase-chip b{font-size:8px}.construction-phase-chip small{font-size:6px}.construction-day-counts{grid-column:1 / 3;grid-row:2;justify-content:flex-start;gap:4px}.construction-day-counts>span{min-height:24px;padding:0 6px;font-size:7px}.construction-day-counts svg{width:12px;height:12px}.construction-day-cover{display:none}.construction-journal-chevron{grid-column:2;grid-row:1}.construction-journal-body{padding:11px}.construction-journal-body .construction-milestone-strip{margin-bottom:10px}.construction-daily-entries{gap:9px}.construction-daily-entries .construction-daily-entry{padding:11px;border-radius:12px}.construction-entry-heading{margin-bottom:9px;align-items:flex-start;gap:7px}.construction-entry-heading>small{padding-top:5px;font-size:7px}.construction-photo-missing{grid-template-columns:27px minmax(0,1fr);padding:9px}.construction-photo-missing a{grid-column:2;justify-self:start}.construction-day-missing{grid-template-columns:34px minmax(0,1fr);padding:11px}.construction-day-missing>span{width:34px;height:34px}.construction-day-missing a{grid-column:2;justify-self:start}.construction-log-empty{min-height:100px;padding:14px;grid-template-columns:38px minmax(0,1fr)}.construction-log-empty>span{width:38px;height:38px}.construction-log-empty a{grid-column:2;justify-self:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
