:root{font-family:Inter,Arial,sans-serif;color:#182236;background:#f5f7fa;font-synthesis:none;--navy: #101b35;--blue: #2563dc;--line: #e4e8ef;--muted: #7b8492;--font-caption: 10px;--font-small: 11px;--font-body: 12px;--font-section: 14px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input,select{font:inherit}button{cursor:pointer}.app{display:flex;min-height:100vh}.brand{display:flex;align-items:center;gap:10px;padding:0 7px 25px}.brand strong,.brand small,.company strong,.company small,.profile strong,.profile small{display:block}.brand strong{font-size:17px}.brand small,.company small,.profile small{font-size:9px;color:#8491aa;margin-top:3px}.company{padding:11px;background:#192642;border:1px solid #2a3854;border-radius:10px;display:flex;align-items:center;gap:9px}.company>b{width:33px;height:33px;background:#dce8ff;color:#2e5ea9;border-radius:7px;display:grid;place-items:center;font-size:11px}.company strong{font-size:11px}.company-selector{display:grid;grid-template-columns:33px 1fr 25px}.company-selector-control{position:relative;min-width:0}.company-selector-trigger{display:flex;align-items:center;justify-content:space-between;gap:5px;width:100%;color:#fff;background:transparent;border:0;font-size:11px;font-weight:700;outline:none;padding:0;text-align:left}.company-selector-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-selector-trigger>svg{flex:0 0 auto;color:#b9c9e4;transition:transform .15s ease}.company-selector-trigger.open>svg{transform:rotate(180deg)}.company-selector-trigger:focus-visible{outline:2px solid #6e9cf0;outline-offset:3px;border-radius:3px}.company-selector-menu{position:absolute;top:calc(100% + 8px);left:-28px;z-index:100;display:grid;gap:3px;width:200px;max-width:calc(100vw - 48px);max-height:240px;overflow-y:auto;padding:5px;border:1px solid #405170;border-radius:8px;background:#fff;box-shadow:0 14px 28px #02081766}.company-selector-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:#182236;font-size:11px;font-weight:600;text-align:left}.company-selector-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.company-selector-option:hover,.company-selector-option:focus-visible,.company-selector-option.selected{background:#2d73d4;color:#fff;font-weight:800}.company-selector-control>small{display:block}.company-selector-option svg{flex:0 0 auto}.company-selector>button{border:0;background:#2b4269;color:#b9cdf1;width:25px;height:25px;border-radius:6px;display:grid;place-items:center;padding:0}.nav-label{font-size:8px;color:#66738b;letter-spacing:1.2px;margin:26px 11px 8px;font-weight:700}.profile{margin-top:auto;border-top:1px solid #273550;padding:16px 5px 0;display:grid;grid-template-columns:34px 1fr 28px;align-items:center;gap:8px}.profile>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#376dcc;font-size:11px;font-weight:700}.profile strong{font-size:10px}.profile button{border:0;background:transparent;color:#8e9ab0}.profile-role-select{width:100%;margin-top:3px;padding:0;border:0;outline:0;background:transparent;color:#9eabc0;font-size:10px;font-weight:500;cursor:pointer}.profile-role-select option{background:var(--navy);color:#fff}.app>main{margin-left:248px;width:calc(100% - 248px)}.unit-keys{display:flex;flex-wrap:wrap;gap:6px}.unit-keys span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;background:#2563eb14;color:#315b9c;font-size:10px}.nested-modal{z-index:110}.icon{width:35px;height:35px;border:1px solid var(--line);background:#fff;border-radius:8px;display:grid;place-items:center;color:#566174}.primary{border:0;background:var(--blue);color:#fff;border-radius:8px;padding:10px 15px;font-size:11px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:6px;box-shadow:0 4px 12px #2563dc25}.primary:hover{background:#1d55c0}.secondary{border:1px solid var(--line);background:#fff;border-radius:7px;padding:7px 11px;color:#4f5c70}.page{padding:33px;max-width:1500px;margin:auto}@media(min-width:1600px){.page{max-width:none}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.page-header small{display:block;font-size:8px;color:#8a93a1;letter-spacing:1.2px;font-weight:750;margin-bottom:7px}.page-header h1{font-size:27px;letter-spacing:-.8px;margin:0 0 6px}.page-header p{font-size:11px;color:var(--muted);margin:0}.team-projects,.financial-grid{display:grid;gap:16px}.team-project header h3,.financial-card header h3{display:flex;align-items:center;gap:7px}.team-scope{padding:16px;border-bottom:1px solid var(--line)}.team-scope>strong{display:block;font-size:9px;margin-bottom:9px;text-transform:uppercase;color:var(--muted)}.team-scope>div{display:flex;flex-wrap:wrap;gap:8px}.team-scope span{background:#f1f5fb;border-radius:7px;padding:7px 10px;font-size:9px;font-weight:700}.team-scope span small{display:block;margin-top:3px;color:var(--muted);font-weight:400}.team-members{display:grid;grid-template-columns:repeat(2,1fr)}.team-members article{padding:14px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.team-members article>b{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#e8f0ff;color:#2965d1;font-size:9px}.team-members article>div{flex:1}.team-members article strong,.team-members article small{display:flex;align-items:center;gap:4px;font-size:9px}.team-members article small{color:var(--muted);margin-top:3px}.team-members article>span{font-size:8px;color:#2965d1}.team-page .team-project,.team-page .team-projects>.empty{background:#f8fafc;border-color:#d7e1ee}.team-page .team-project>header{background:#eef4fb}.team-page .team-scope{background:#f4f7fb}.team-page .team-scope span{border:1px solid #d6e2f4;background:#eaf2ff;color:#234b89}.team-page .team-members article{background:#fbfdff}.team-page .team-members article>b{background:#e2ecff;color:#245bb8}.team-page .team-members article>span{padding:5px 8px;border:1px solid #d4e1f5;border-radius:999px;background:#edf4ff;color:#315f9f;font-weight:700;text-align:center}.financial-grid{grid-template-columns:repeat(2,1fr)}.financial-page .financial-grid{grid-template-columns:minmax(0,1fr)}.financial-page .financial-card{width:100%}.financial-card>header strong{font-size:12px}.chart-bars{padding:18px}.chart-row{margin-bottom:14px;padding-left:calc(var(--chart-depth, 0) * 18px)}.chart-row>span{display:flex;justify-content:space-between;font-size:9px;margin-bottom:6px}.chart-row small{color:var(--muted)}.chart-row>div{height:8px;background:#edf1f6;border-radius:8px;overflow:hidden}.chart-row i{display:block;height:100%;background:linear-gradient(90deg,#346fd7,#72a4ef);border-radius:8px}.financial-card footer{padding:11px 18px;border-top:1px solid var(--line);color:var(--muted);display:flex;gap:6px;font-size:8px}.modal.pending-modal{box-sizing:border-box;width:min(1280px,calc(100vw - 40px))}.pending-layout{display:grid;grid-template-columns:160px minmax(0,1fr);min-height:230px}.pending-list{min-width:0;border-right:1px solid var(--line);padding:10px}.pending-list>button{width:100%;text-align:left;border:0;border-radius:8px;background:transparent;padding:12px;cursor:pointer}.pending-list>button:hover,.pending-list>button.active{background:#edf3ff}.pending-list strong,.pending-list small,.pending-list span{display:block;font-size:9px}.pending-list small{color:var(--muted);margin:4px 0}.pending-detail{min-width:0;padding:24px}.pending-detail h3{margin:12px 0 18px}.pending-detail dl{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pending-detail dl div{background:#f6f8fb;border-radius:8px;padding:10px}.pending-detail dt{font-size:8px;color:var(--muted)}.pending-detail dd{font-size:10px;font-weight:700;margin:3px 0 0}.pending-detail>p{font-size:10px;color:var(--muted)}.pending-detail textarea{min-height:64px}.status-pill{font-size:8px;color:#a45e0d;background:#fff1dc;border-radius:20px;padding:5px 8px}.decision-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}button.danger{color:#b42318;border:1px solid #f0b5b0;background:#fff1f0;border-radius:8px}@media(max-width:800px){.financial-grid,.team-members,.pending-layout{grid-template-columns:1fr}.pending-list{border-right:0;border-bottom:1px solid var(--line);max-height:220px;overflow:auto}}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.panel>header{height:53px;border-bottom:1px solid var(--line);padding:0 17px;display:flex;align-items:center;justify-content:space-between}.panel>header h3{font-size:12px;margin:0}.panel>header a,.panel>header span{font-size:9px;color:#3c6fc6;text-decoration:none;display:flex;align-items:center;gap:6px}.progress-row{display:flex;gap:11px;padding:14px 17px;border-bottom:1px solid #edf0f4}.progress-row>b{width:35px;height:35px;background:#e8f0ff;color:#3868be;border-radius:8px;display:grid;place-items:center;font-size:9px}.progress-row>div{flex:1;display:grid;grid-template-columns:1fr auto;align-items:start}.progress-row span strong,.progress-row span small{display:block}.progress-row span strong{font-size:10px}.progress-row span small{font-size:8px;color:#8b939f;margin-top:3px}.progress-row .percent{font-size:9px;font-weight:700}.progress{height:5px;background:#edf0f4;border-radius:5px;overflow:hidden;grid-column:1/-1;margin-top:8px}.progress i{height:100%;display:block;background:#2b69d8;border-radius:5px}.approval-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;padding:12px 16px;border-bottom:1px solid #edf0f4;align-items:center}.approval-row div strong,.approval-row div small,.approval-row div em,.approval-row aside strong{display:block}.approval-row div strong{font-size:9px}.approval-row div small,.approval-row div em{font-size:8px;color:#858e9b;margin-top:3px}.approval-row div em{font-style:normal;color:#a1a7b0}.approval-row aside{text-align:right}.approval-row aside strong{font-size:9px}.approval-row aside button,.approve{margin-top:6px;border:1px solid #b9ddcc;background:#ebf8f2;color:#177855;border-radius:6px;padding:5px 8px;font-size:8px}.empty,.loading,.screen-loader{padding:40px;text-align:center;color:#818a97;font-size:11px}.loading,.screen-loader{min-height:70vh;display:grid;place-items:center}.cover{height:112px;background:linear-gradient(135deg,#dce8f7,#a8bfdc);display:grid;place-items:center;position:relative;overflow:hidden}.cover.c1{background:linear-gradient(135deg,#e6e0d5,#b8b29f)}.cover.c2{background:linear-gradient(135deg,#d6e6dc,#9dbba7)}.cover>b{font-size:38px;color:#243b5dcc;text-shadow:0 1px 0 #ffffff80}.cover>img{width:100%;height:100%;object-fit:contain;padding:10px;background:#edf3fb}.cover>.badge{position:absolute;top:10px;left:10px}.finance{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:12px}.finance span+span{border-left:1px solid var(--line);padding-left:12px}.finance span{font-size:8px;color:#596576;font-weight:600}.finance strong{display:block;font-size:12px;color:#172238;font-weight:800;margin-top:4px}.badge{display:inline-block;width:max-content;border-radius:20px;padding:5px 8px;font-size:8px;font-weight:650;background:#eef1f5;color:#687484}.badge.execution,.badge.in_progress,.badge.available,.badge.active,.badge.scheduled{background:#e9f1ff;color:#2862c7}.badge.completed,.badge.approved{background:#e8f7f0;color:#197a59}.badge.cancelled{background:#fff0f0;color:#a94141;border:1px solid #f2c4c4}.badge.requested{background:#fff2e2;color:#bd6f19}.toolbar{background:#fff;border:1px solid var(--line);border-radius:9px;padding:12px 16px;margin-bottom:14px;display:flex;align-items:center}.toolbar label{font-size:8px;color:#858e9b}.toolbar select{display:block;border:0;font-weight:650;margin-top:3px;min-width:220px}.toolbar>span{margin-left:auto;font-size:9px;color:#697587;display:flex;align-items:center;gap:6px}.block-scope-row{position:relative;padding-left:calc(var(--block-depth) * 14px)}.block-scope-header{position:relative}.tree-disclosure{position:absolute;z-index:3;left:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;padding:0;display:grid;place-items:center;border:0;border-radius:4px;background:transparent;color:#64748b}.tree-disclosure:hover{background:#dfe9f7;color:#174f9b}html[data-theme=dark] .tree-disclosure{color:#aebbd0}html[data-theme=dark] .tree-disclosure:hover{background:#293a56;color:#9ec1ff}.block-scope-row:before{content:"";position:absolute;left:calc(var(--block-depth) * 14px + 6px);top:0;bottom:0;border-left:1px solid var(--line)}.add-subblock{position:absolute;z-index:1;right:8px;top:50%;transform:translateY(-50%);width:23px;height:23px;border:1px solid var(--line);border-radius:6px;background:var(--surface, #ffffff);color:var(--blue);display:grid;place-items:center;padding:0}.edit-block-item{position:absolute;z-index:2;right:64px;top:50%;transform:translateY(-50%);width:23px;height:23px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface, #fff);color:var(--blue)}.block-scope-row:has(.add-subblock) .edit-block-item{right:64px}.block-scope-row:not(:has(.add-subblock)) .edit-block-item{right:36px}.no-blocks{color:var(--muted);font-size:9px;padding:5px 14px 14px}.scope-heading{margin-bottom:9px;padding:0 3px}.scope-heading small,.scope-heading strong{display:block}.scope-heading small{color:var(--muted);font-size:8px;font-weight:750;letter-spacing:.8px}.scope-heading strong{color:#18263d;font-size:14px;margin-top:3px}.block-form-modal{width:min(560px,100%)}.empty-state{padding:28px;text-align:center;color:#7d8796;font-size:10px}.history-meta{display:grid;gap:3px;gap:8px;font-size:9px;font-weight:700}.history-meta time{color:var(--muted);font-size:8px;font-weight:500}.history-action{display:block;color:var(--blue);font-size:7px;font-weight:800;letter-spacing:.7px;margin:4px 0 7px}.history-change{display:grid;grid-template-columns:1fr 1fr;gap:4px;align-items:start;padding:5px 0;border-top:1px dashed #dce2ea;font-size:8px}.history-change b{color:#526075;grid-column:1 / -1;font-size:8px}.history-change del,.history-change ins{padding:3px 5px;border-radius:5px;text-decoration:none;overflow-wrap:anywhere}.history-change del{color:#9d4e55;background:#fff0f1;text-decoration:line-through}.history-change ins{color:#19714f;background:#e8f7ef}.history-empty{padding:20px 11px;text-align:center;color:var(--muted);font-size:9px}.progress-input{position:relative}.modal .progress-input input{padding-right:34px}.progress-input>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#7d8796;font-size:10px}.modal textarea{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:8px;padding:11px;font:inherit;resize:vertical}.progress-row.clickable{cursor:pointer;border-radius:8px;transition:background .15s ease}.progress-row.clickable:hover,.progress-row.clickable:focus-visible{background:#f7f9fc;outline:none}.page-actions{display:flex;gap:8px}.carousel-favorite{position:absolute;top:10px;right:10px;width:38px;height:38px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:10px;background:#0f172ab3;color:#fbbf24;box-shadow:0 4px 12px #0f172a38;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.carousel-favorite:hover{background:#172033;transform:translateY(-1px)}.carousel-favorite.active{background:#f59e0b;border-color:#fcd34d;color:#fff}.carousel-favorite:disabled{cursor:default;opacity:.8}.icon-only{width:32px;height:32px;padding:0;display:grid;place-items:center}.module-tabs{display:flex;gap:5px;margin-bottom:14px;padding:5px;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface, #ffffff)}.module-tabs button{border:0;border-radius:7px;padding:9px 13px;background:transparent;color:#637085;display:flex;flex:1 1 0;min-width:0;align-items:center;gap:7px;font-size:9px;font-weight:700;white-space:nowrap}.module-tabs button>svg{width:clamp(16px,1.8vw,24px);height:clamp(16px,1.8vw,24px);flex:0 0 auto}.module-tabs button.active{color:#fff;background:var(--blue)}.module-tabs button>span{min-width:18px;padding:2px 5px;border-radius:10px;background:#dfe7f3;color:#59677b;font-size:7px}.module-tabs button.active>span{background:#ffffff30;color:#fff}@media(max-width:1300px){.module-tabs{width:100%;display:flex;gap:2px;padding:3px}.module-tabs button{min-width:0;width:100%;min-width:38px;flex:1 1 0;height:clamp(34px,6vw,44px);padding:0;justify-content:center;gap:0}.module-tabs button>svg{width:clamp(18px,5vw,26px);height:clamp(18px,5vw,26px)}.module-tabs .module-tab-label,.module-tabs button>span:not(.module-tab-label){display:none}}.crud-table>header>span{color:var(--muted)}.crud-table-head,.crud-table>article{display:grid;align-items:center;gap:12px;padding:11px 16px}.crud-table-head{background:#f7f9fc;border-bottom:1px solid var(--line);color:#798496;font-size:8px;font-weight:750}.crud-table>article{border-bottom:1px solid var(--line);font-size:9px}.cost-columns{grid-template-columns:minmax(220px,1.4fr) 1fr .7fr .8fr 80px}.crud-table article strong,.crud-table article small{display:block}.crud-table article small{color:var(--muted);font-size:8px;margin-top:3px}.crud-actions{display:flex;gap:5px;justify-content:flex-end}.crud-actions .icon{width:31px;height:31px}.crud-actions .danger{color:#b84343;border-color:#edcccc}.badge.pending{background:#fff2e2;color:#a96014}.badge.rejected{background:#fff0f0;color:#a94141}.badge.received{background:#e8f7f0;color:#197a59}.approved-quantity{display:grid;grid-template-columns:auto 70px auto;align-items:center;gap:5px;color:var(--muted);font-size:8px}.approved-quantity input{min-width:0;width:70px;padding:6px;border:1px solid var(--line);border-radius:6px;background:var(--surface, #ffffff);color:inherit}.danger-button{border:1px solid #e5bcbc;background:#fff0f0;color:#a53d3d;border-radius:8px;padding:9px 12px;display:flex;align-items:center;gap:5px}.transfer-available-stock{display:block;margin-top:6px;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#0b1429aa;z-index:50;display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:13px;width:min(540px,100%);padding:23px;max-height:90vh;overflow-y:auto}.modal>header{display:flex;justify-content:space-between;margin-bottom:18px}.modal header small{font-size:8px;color:#818b99}.modal h2{font-size:20px;margin:4px 0}.modal header button{border:1px solid #b91c1c;background:#dc2626;border-radius:50%;width:29px;height:29px;color:#fff;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease}.modal header button:hover{border-color:#991b1b;background:#b91c1c;color:#fff;transform:scale(1.05)}.modal label{display:block;font-size:9px;color:#596477;font-weight:650;margin:12px 0}.modal input,.modal select{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:8px;padding:11px;font-size:10px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:11px}.member-role-options{display:flex;flex-wrap:wrap;gap:7px 14px}.modal .member-role-options label{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:9px;font-weight:600}.modal .member-role-options input{width:auto;margin:0;padding:0}.member-permission-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.modal .member-permission-options .member-option{white-space:nowrap}.modal .member-identity,.modal .member-option{display:flex;align-items:center;gap:7px;margin:0}.modal .member-identity input,.modal .member-option input{width:auto}.member-identity strong,.member-identity small{display:block}.member-identity small{color:#8992a1;font-weight:400}.modal footer{display:flex;justify-content:flex-end;gap:7px;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.team-audit-change>div{display:grid;gap:8px}.team-audit-change article{padding:10px;border:1px solid var(--line);border-left:4px solid #d97706;border-radius:8px}.team-audit-change article.removed{border-left-color:#d92d20}.team-audit-change article.added{border-left-color:#159455}.team-audit-change article>strong{display:block;margin-bottom:7px}.team-audit-change article p{display:grid;grid-template-columns:80px minmax(0,1fr);gap:8px;margin:4px 0}.team-audit-change article small{color:var(--muted);font-weight:700}.building-mark{position:absolute;right:-80px;bottom:-60px;color:#ffffff0a}.error{background:#fff0f0;color:#b14444;padding:9px;border-radius:6px;font-size:9px}.app-alert{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:10px;margin:0 0 12px;padding:12px 13px;border:1px solid;border-radius:10px;box-shadow:0 6px 16px #1c31500d}.app-alert-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%}.app-alert-content{min-width:0}.app-alert-content strong{display:block;font-size:10px;font-weight:800}.app-alert-content p{margin:4px 0 0;font-size:9px;line-height:1.5}.app-alert-warning{border-color:#f0c979;background:#fff8e8;color:#805b16}.app-alert-warning .app-alert-icon{background:#ffedb8;color:#b17605}.app-alert-error{border-color:#efb2b2;background:#fff0f0;color:#a63e3e}.app-alert-error .app-alert-icon{background:#ffd8d8;color:#c43c3c}.app-alert-success{border-color:#a9dfbf;background:#ecfdf3;color:#237a49}.app-alert-success .app-alert-icon{background:#c9f2d8;color:#21804b}.app-alert-info{border-color:#a9c7ef;background:#edf5ff;color:#285b9d}.app-alert-info .app-alert-icon{background:#d7e8ff;color:#2e6bc2}.app-alert-close{width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:7px;background:transparent;color:currentColor}.app-alert-close:hover{background:#0000000d}.app-alert-close:focus-visible{outline:2px solid currentColor;outline-offset:2px}.success{background:#ecfdf3;color:#237a49;padding:10px 12px;border-radius:7px;font-size:10px;margin-bottom:14px}.alert-banner{margin-bottom:14px;border:1px solid #f1c0c0;box-shadow:0 8px 18px #b1444412}.form-link{display:block;text-align:right;color:var(--blue);font-size:9px;text-decoration:none;margin:-5px 0 12px}.managed-projects-section>header>div>div p{margin:4px 0 0;color:var(--muted);font-size:9px}.company-active-toggle{display:grid;grid-template-columns:35px 1fr;align-items:center;gap:7px;cursor:pointer}.company-active-toggle input{position:absolute;opacity:0;pointer-events:none}.company-active-toggle>span{width:35px;height:20px;border-radius:12px;background:#b9c1cc;padding:3px;transition:background .15s ease}.company-active-toggle>span:after{content:"";display:block;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000030;transition:transform .15s ease}.company-active-toggle input:checked+span{background:#26845f}.company-active-toggle input:checked+span:after{transform:translate(15px)}.company-active-toggle input:focus-visible+span{outline:2px solid var(--blue);outline-offset:2px}.company-active-toggle b{font-size:8px;color:#536176}.stack-form{display:grid;gap:12px}.stack-form fieldset,.assignment-form fieldset{border:1px solid var(--line);border-radius:8px;padding:10px}.stack-form legend{font-size:9px;color:var(--muted)}label.check{display:flex;align-items:center;gap:7px;margin:6px 0}label.check input{width:auto;margin:0}.admin-list article{display:grid;grid-template-columns:1fr auto auto auto 30px;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid var(--line)}.user-profiles-modal>p{margin:0 0 14px;color:var(--muted)}.user-profile-options{display:grid;gap:8px;margin:0;padding:0;border:0}.user-profile-options .check{display:flex;align-items:center;gap:10px;margin:0;padding:11px;border:1px solid var(--line);border-radius:8px}.user-profile-options :is(b,small){display:block}.user-profile-options small{margin-top:2px;color:var(--muted)}.admin-list strong,.admin-list small,.pending-list small{display:block}.admin-list strong{font-size:10px}.admin-list small,.pending-list small{font-size:8px;color:var(--muted);margin-top:3px}.state-active,.state-inactive{font-size:8px;padding:4px 7px;border-radius:10px}.state-active{color:#237a49;background:#e9f9ef}.state-inactive{color:#a94b4b;background:#fff0f0}.pending-list{margin-top:15px;display:grid;gap:6px}.assignment-form fieldset{display:grid;grid-template-columns:1fr auto auto;align-items:center;margin:9px 0}.preference-options{display:grid;gap:12px;margin-top:18px}.theme-options{grid-template-columns:1fr 1fr}.font-options{grid-template-columns:repeat(3,1fr)}.preference-options button{min-height:82px;padding:13px;border:1px solid var(--line);border-radius:10px;background:var(--surface, white);color:inherit;display:flex;align-items:center;gap:12px;text-align:left}.preference-options button:hover{border-color:#8ba9df}.preference-options button.selected{border-color:var(--blue);box-shadow:0 0 0 2px #2563dc20}.preference-options button>svg:last-child{margin-left:auto;color:var(--blue)}.preference-options strong,.preference-options small{display:block}.preference-options small{color:var(--muted);font-size:9px;margin-top:4px}.theme-preview{width:48px;height:48px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto}.light-preview{background:#edf3fc;color:#d08715}.dark-preview{background:#17233b;color:#a9c5ff}.font-options button{justify-content:center;position:relative}.font-options button>svg{position:absolute;right:12px;top:12px}.font-sample{color:var(--blue);font-weight:750}.font-sample.small{font-size:16px}.font-sample.medium{font-size:21px}.font-sample.large{font-size:26px}html[data-font-size=small] body{zoom:.92}html[data-font-size=medium] body{zoom:1.05}html[data-font-size=large] body{zoom:1.15}html body .app{font-size:var(--font-body);font-weight:var(--weight-regular);line-height:1.45}html body .app :is(button,input,select,textarea){font-size:var(--font-body);font-weight:var(--weight-medium)}html body .app :is(label,small){font-size:var(--font-small);font-weight:var(--weight-regular);line-height:1.4}html body .app :is(strong,b){font-weight:var(--weight-semibold)}html body .app :is(h1,h2,h3,h4){font-weight:var(--weight-bold)}html body .app .page-header small,html body .app .nav-label,html body .app .history-action,html body .app .modal header small{font-size:var(--font-caption);font-weight:var(--weight-semibold)}html body .app .panel>header h3{font-size:var(--font-section);font-weight:var(--weight-semibold)}html body .app .panel>header :is(a,span),html body .app .badge{font-size:var(--font-small);font-weight:var(--weight-medium)}html[data-theme=dark]{--navy: #0b1220;--blue: #6697f3;--line: #303b4f;--muted: #9ca8ba;--surface: #192335;color:#e6ebf3;background:#101827}html[data-theme=dark] .modal header button{border-color:#b91c1c;background:#dc2626;color:#fff}html[data-theme=dark] .modal header button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}html[data-theme=dark] input:disabled{background:#222d40;color:#aeb8c8}html[data-theme=dark] .company-selector-menu{background:#182236;border-color:#405170}html[data-theme=dark] .company-selector-option{color:#e6ebf3}html[data-theme=dark] .company-selector-option:hover,html[data-theme=dark] .company-selector-option:focus-visible,html[data-theme=dark] .company-selector-option.selected{background:#4d83e8;color:#fff}html[data-theme=dark] .crud-table-head{background:#202b3d;color:#b7c2d2}html[data-theme=dark] .module-tabs button{color:#b8c3d2}html[data-theme=dark] .module-tabs button.active{color:#fff}html[data-theme=dark] .history-change{border-top-color:#344158}html[data-theme=dark] .history-change b{color:#bdc8d8}html[data-theme=dark] .history-change del{color:#ffb0b5;background:#48282d}html[data-theme=dark] .history-change ins{color:#9be1bc;background:#1d4032}html[data-theme=dark] .scope-heading strong{color:#f1f5fa}html[data-theme=dark] .cover>b{color:#edf4ffdd;text-shadow:0 2px 4px #00000070}html[data-theme=dark] .badge{background:#303b4f;color:#d3dbe7}html[data-theme=dark] .success{background:#163829;color:#8be0ae}html[data-theme=dark] .error{background:#452426;color:#faa}html[data-theme=dark] .app-alert-warning{border-color:#8b6b2a;background:#3b3018;color:#ffe09a}html[data-theme=dark] .app-alert-warning .app-alert-icon{background:#5c481d;color:#ffd36c}html[data-theme=dark] .app-alert-error{border-color:#8f4c4c;background:#452426;color:#faa}html[data-theme=dark] .app-alert-error .app-alert-icon{background:#633333;color:#ff8f8f}html[data-theme=dark] .app-alert-success{border-color:#3d825c;background:#163829;color:#8be0ae}html[data-theme=dark] .app-alert-success .app-alert-icon{background:#24583b;color:#9ee8ba}html[data-theme=dark] .app-alert-info{border-color:#486a9d;background:#1d304f;color:#b8d1ff}html[data-theme=dark] .app-alert-info .app-alert-icon{background:#2a4775;color:#a9c8ff}.confirm-dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0b1429aa}.confirm-dialog{width:min(430px,100%);overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface, #ffffff);box-shadow:0 24px 60px #07142b35}.confirm-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 20px 0}.confirm-dialog-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#eef1f5;color:#182236}.confirm-dialog-close{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;border:1px solid #b91c1c;background:#dc2626;color:#fff}.confirm-dialog-close:hover{border-color:#991b1b;background:#b91c1c;color:#fff}.confirm-dialog-body{padding:16px 20px 20px}.confirm-dialog-body h2{margin:0;color:var(--text, #182236);font-size:17px}.confirm-dialog-body p{margin:8px 0 0;color:#182236;font-size:10px;line-height:1.55}.confirm-dialog-error{margin-top:12px}.confirm-dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px 17px;border-top:1px solid var(--line);background:var(--surface-soft, #f5f7fa)}.confirm-dialog-footer button{width:auto;min-width:96px;border-color:#dfe3e9;background:#fff;color:#182236}.confirm-dialog-confirm{border-color:#b62e29;background:#c63832;color:#fff}.confirm-dialog-confirm:hover{border-color:#98241f;background:#b62e29;color:#fff}html[data-theme=dark] .confirm-dialog-icon{background:#303b4f;color:#e8edf5}html[data-theme=dark] .confirm-dialog-close,html[data-theme=dark] .confirm-dialog-body p{color:#e8edf5}html[data-theme=dark] .confirm-dialog-close{border-color:#b91c1c;background:#dc2626;color:#fff}html[data-theme=dark] .confirm-dialog-close:hover{border-color:#991b1b;background:#b91c1c;color:#fff}html[data-theme=dark] .confirm-dialog-footer{border-color:#36435a;background:#111b2e}html[data-theme=dark] .confirm-dialog-footer button{border-color:#36435a;background:#192335;color:#e8edf5}html[data-theme=dark] .confirm-dialog-confirm{border-color:#d66b65;background:#b93832;color:#fff}html[data-theme=dark] .confirm-dialog-confirm:hover{border-color:#ef8179;background:#cf4d46;color:#fff}.bulk-unit-profiles{margin:15px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.bulk-unit-profiles>header{min-height:52px;padding:10px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.bulk-unit-profiles>header strong,.bulk-unit-profiles>header small{display:block}.bulk-unit-profiles>header strong{font-size:10px}.bulk-unit-profiles>header small{margin-top:3px;color:var(--muted);font-size:8px}.modal .bulk-unit-profiles>header .bulk-add-type-button{flex:0 0 auto;width:auto;min-width:126px;height:34px;padding:0 13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #8eb1eb;border-radius:8px;background:#edf4ff;color:#275eaf;font-size:9px;font-weight:750;white-space:nowrap}.modal .bulk-unit-profiles>header .bulk-add-type-button:hover{border-color:#5d8edb;background:#dfeaff;color:#174d9c}html[data-theme=dark] .modal .bulk-unit-profiles>header .bulk-add-type-button{border-color:#486a9d;background:#263b5f;color:#b8d1ff}html[data-theme=dark] .modal .bulk-unit-profiles>header .bulk-add-type-button:hover{border-color:#7098d3;background:#304a73;color:#fff}.bulk-unit-profiles>article{display:grid;grid-template-columns:90px minmax(170px,1fr) 130px 130px 34px;gap:9px;align-items:end;padding:11px 13px 24px;border-bottom:1px solid var(--line);position:relative}.bulk-unit-profiles>article:last-child{border-bottom:0}.bulk-unit-profiles article label{margin:0}.bulk-unit-profiles article .danger{height:34px;padding:0;display:grid;place-items:center}.bulk-profile-example{position:absolute;left:13px;bottom:7px;color:var(--blue);font-size:7px}@media(max-width:760px){.bulk-unit-profiles>header{align-items:flex-start;flex-direction:column}.modal .bulk-unit-profiles>header .bulk-add-type-button{align-self:stretch;width:100%}.bulk-unit-profiles>article{grid-template-columns:80px 1fr 34px}.bulk-unit-profiles>article label:nth-of-type(3),.bulk-unit-profiles>article label:nth-of-type(4){grid-column:span 1}.bulk-unit-profiles>article label:nth-of-type(2){grid-column:span 1}}.block-unit-name{display:grid;gap:2px;min-width:0}.block-unit-name strong,.block-unit-name small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.block-unit-name small{color:var(--muted)}.block-unit-status{padding:4px 7px;border-radius:999px;font-size:10px;white-space:nowrap}.block-unit-status.available{color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent)}.block-unit-status.linked{color:var(--muted);background:color-mix(in srgb,var(--muted) 12%,transparent)}.block-linked-units{display:flex;flex-wrap:wrap;gap:6px}.block-linked-units span{padding:5px 8px;border-radius:7px;background:var(--surface-soft);color:var(--muted);font-size:11px}.block-form-modal input[readonly]{background:var(--surface-soft);color:var(--muted);cursor:not-allowed}.subblock-unit-selector{border-color:color-mix(in srgb,var(--blue) 35%,var(--line));background:color-mix(in srgb,var(--blue) 4%,var(--surface))}.tree-item-menus{position:absolute;z-index:4;right:8px;top:50%;transform:translateY(-50%);display:flex;gap:5px}.tree-menu{position:relative}.tree-menu[open]{z-index:80}.tree-menu>div{position:absolute;z-index:90;right:0;top:calc(100% + 6px);min-width:166px;display:grid;gap:3px;padding:6px;border:1px solid #d4ddea;border-radius:10px;background:#fff;box-shadow:0 14px 32px #0b142933}.tree-menu>div button{width:100%;min-height:30px;display:flex;align-items:center;gap:7px;padding:6px 8px;border:0;border-radius:6px;background:transparent;color:var(--text);text-align:left;white-space:nowrap;font-size:10px}.tree-menu>div button:hover{background:#eef4ff;color:#245fb8}.tree-menu>div .danger-item{color:#c62828;border-top:1px solid #f0d5d5;border-radius:0 0 6px 6px}.tree-menu>div .danger-item:hover{background:#fff0f0;color:#a91515}html[data-theme=dark] .tree-menu>div{border-color:#42516a;background:#172338;box-shadow:0 16px 34px #02081780}html[data-theme=dark] .tree-menu>div button{color:#e4eaf3}html[data-theme=dark] .tree-menu>div button:hover{background:#263653;color:#8db8ff}.scope-tree-block{margin-left:calc(var(--tree-depth) * 18px);border-left:1px solid var(--line);padding-left:8px}.scope-tree-block>button,.scope-tree-phase button{display:flex;align-items:center;gap:7px;width:100%;padding:6px 8px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left}.scope-tree-block>button:hover,.scope-tree-phase button:hover{background:var(--surface-soft)}.scope-tree-block button span{display:flex;align-items:baseline;gap:7px}.scope-tree-block button small{color:var(--muted);font-size:8px}.scope-tree-phase{margin-left:21px;border-left:1px dashed var(--line);padding-left:8px}.scope-tree-phase button:before{content:"";width:9px;border-top:1px dashed var(--line)}.scope-tree-phase button.subphase{margin-left:18px;width:calc(100% - 18px)}.availability-list{max-height:520px;overflow-y:auto}.availability-list>article{padding:12px;border:1px solid var(--line);border-radius:8px;margin-bottom:8px}.availability-list article>strong,.availability-list article>small{display:block}.availability-list article>strong{margin:7px 0 4px;font-size:9px}.availability-list article>small,.availability-list article>p{color:var(--muted);font-size:8px}.availability-list article>div{display:flex;gap:7px;justify-content:flex-end}.availability-help{margin:-5px 0 13px;padding:9px 10px;border-radius:7px;background:#edf4ff;color:#45658f;font-size:8px;line-height:1.5}.keys-crud{display:grid;grid-template-columns:280px 1fr;gap:18px}.keys-crud>form,.keys-crud>section{padding:16px;border:1px solid var(--line);border-radius:10px}.keys-crud>section article{display:grid;grid-template-columns:28px 1fr auto auto;align-items:center;gap:8px;padding:10px;border-bottom:1px solid var(--line)}.keys-crud article strong,.keys-crud article small{display:block;font-size:9px}.keys-crud article small{color:var(--muted);margin-top:3px}.movement-history{border:1px solid var(--line);border-radius:10px;overflow:hidden}.movement-history article{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:13px 15px;border-bottom:1px solid var(--line)}.movement-history strong,.movement-history small{display:block;font-size:9px}.movement-history small,.movement-history p{color:var(--muted);font-size:8px;margin:4px 0 0}.movement-history>h3{margin:0;padding:11px 15px;border-bottom:1px solid var(--line);background:#f4f7fb;color:#526075;font-size:8px;letter-spacing:.5px;text-transform:uppercase}html[data-theme=dark] .availability-help{background:#203652;color:#b7cceb}html[data-theme=dark] .movement-history>h3{background:#202c40;color:#b9c6d8}html[data-theme=dark] .badge.cancelled{background:#46282d;color:#f2a5af;border-color:#714049}html[data-theme=dark] .pending-modal{background:#192335;border:1px solid #303b4f;color:#e6ebf3}html[data-theme=dark] .pending-list{border-color:#303b4f}html[data-theme=dark] .pending-list>button{color:#e6ebf3}html[data-theme=dark] .pending-list>button:hover,html[data-theme=dark] .pending-list>button.active{background:#2a4168}html[data-theme=dark] .pending-list small,html[data-theme=dark] .pending-detail dt,html[data-theme=dark] .pending-detail>p,html[data-theme=dark] .pending-modal header small{color:#aebbd0}html[data-theme=dark] .pending-list span,html[data-theme=dark] .pending-detail dd,html[data-theme=dark] .pending-detail h3{color:#eef3fb}html[data-theme=dark] .pending-detail dl div{background:#202c40;border:1px solid #3b485d}html[data-theme=dark] .pending-detail input,html[data-theme=dark] .pending-detail textarea{border-color:#3b485d;background:#192335;color:#eef3fb}html[data-theme=dark] .pending-detail input:focus,html[data-theme=dark] .pending-detail textarea:focus{border-color:#77a6ff;outline-color:#77a6ff}html[data-theme=dark] .status-pill{border:1px solid #805d2f;background:#49371f;color:#f4c779}html[data-theme=dark] .pending-modal .decision-actions .danger{border-color:#85454d;background:#48272d;color:#ffb5bd}html[data-theme=dark] .pending-modal .decision-actions .secondary{border-color:#4b5d77;background:#202c40;color:#dbe6f5}html[data-theme=dark] .pending-modal .decision-actions .primary{background:#5d8fe8;color:#fff}html[data-theme=dark] .team-page .team-project,html[data-theme=dark] .team-page .team-projects>.empty{background:#192335;border-color:#303b4f;color:#e6ebf3}html[data-theme=dark] .team-page .team-project>header{background:#202c40;border-color:#303b4f}html[data-theme=dark] .team-page .team-scope{background:#202c40;border-color:#303b4f}html[data-theme=dark] .team-page .team-scope>strong,html[data-theme=dark] .team-page .team-members article small{color:#aebbd0}html[data-theme=dark] .team-page .team-scope span{border-color:#3b5682;background:#263b60;color:#dbe8ff}html[data-theme=dark] .team-page .team-scope span small{color:#b4c3da}html[data-theme=dark] .team-page .team-members article{background:#192335;border-color:#303b4f}html[data-theme=dark] .team-page .team-members article>b{background:#294777;color:#c7dbff}html[data-theme=dark] .team-page .team-members article>span{border-color:#3b5682;background:#263b60;color:#c5d9ff}html[data-theme=dark] .team-page .team-scope em,html[data-theme=dark] .team-page .empty{color:#aebbd0}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--navy);color:#fff;padding:25px 18px 18px;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.mobile-sidebar-close,.mobile-sidebar-backdrop,.topbar .mobile-menu-button{display:none}.sidebar nav{display:flex;flex-direction:column;gap:3px}.sidebar>.nav-label{display:none}.sidebar-nav-section{display:flex;flex-direction:column;gap:3px}.sidebar-nav-section+.sidebar-nav-section{margin-top:14px;padding-top:11px;border-top:1px solid #273550}.sidebar-nav-section-label{margin:4px 11px;color:#71809a;font-size:8px;font-weight:700;letter-spacing:1.2px;line-height:1.3;text-transform:uppercase}.sidebar nav a{color:#aeb8ca;text-decoration:none;border-radius:8px;padding:11px 12px;display:flex;align-items:center;gap:11px;font-size:11px}.sidebar nav a:hover,.sidebar nav a.active{background:#22314d;color:#fff}.sidebar nav a.active{box-shadow:inset 3px 0 #4b84ed}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;position:sticky;top:0;z-index:50;isolation:isolate;font-size:11px}.topbar>div span{color:#a4abb7;margin:0 8px}.topbar>section{margin-left:auto;display:flex;align-items:center;gap:8px}.global-search-backdrop{position:fixed;inset:0;z-index:100;background:#0f172a38}.global-search{position:absolute;top:78px;right:74px;width:min(640px,calc(100vw - 28px));max-height:calc(100vh - 94px);overflow:hidden;background:var(--surface, #fff);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px #0f172a3d}.global-search-title{padding:16px 18px 4px}.global-search-title strong,.global-search-title small{display:block}.global-search-title strong{font-size:13px;color:#172238}.global-search-title small{margin-top:4px;font-size:9px;color:#64748b}.global-search>header{height:58px;padding:0 16px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.global-search>header input{flex:1;border:0;outline:0;background:transparent;color:inherit;font-size:14px}.global-search>header button{border:0;background:transparent;color:#64748b;display:grid;place-items:center}.global-search-results{max-height:calc(100vh - 205px);overflow-y:auto;padding:8px}.global-search-results>p{margin:0;padding:28px 18px;text-align:center;color:#64748b;font-size:12px}.global-search-results>button{width:100%;display:grid;grid-template-columns:105px 1fr;gap:3px 12px;padding:11px 12px;border:0;border-radius:9px;background:transparent;color:inherit;text-align:left}.global-search-results>button:hover,.global-search-results>button:focus{background:#2563eb17;outline:0}.global-search-results>button span{grid-row:1 / 3;align-self:center;color:var(--blue);font-size:10px;font-weight:700;text-transform:uppercase}.global-search-results>button strong{font-size:12px}.global-search-results>button small{color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-center,.notification-trigger{position:relative}.notification-trigger.has-notices{color:#c65d0c;background:#fff3e5}.notification-trigger>i{position:absolute;top:-5px;right:-7px;min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:10px;background:#dc2626;color:#fff;border:2px solid #fff;font-size:10px;font-style:normal;font-weight:800}.notification-popover{position:absolute;top:44px;right:0;width:min(390px,calc(100vw - 28px));max-height:min(620px,calc(100vh - 90px));background:var(--surface, #fff);border:1px solid var(--line);border-radius:13px;box-shadow:0 20px 55px #0f172a38;overflow:hidden;z-index:110}.notification-popover>header{padding:14px 16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.notification-popover>header strong,.notification-popover>header small{display:block}.notification-popover>header strong{font-size:12px}.notification-popover>header small{margin-top:3px;color:#64748b;font-size:8px}.notification-popover>header button{border:0;background:transparent;color:#64748b}.notification-list{max-height:460px;overflow-y:auto;padding:7px}.notification-list>p{padding:30px 15px;margin:0;text-align:center;color:#64748b;font-size:10px}.notification-list>button{width:100%;border:0;border-radius:9px;background:transparent;padding:10px;display:flex;gap:10px;text-align:left;cursor:pointer}.notification-list>button:hover{background:#f2f6fc}.notification-list>button>span{width:31px;height:31px;flex:0 0 31px;display:grid;place-items:center;border-radius:8px;background:#edf3fc;color:#306dcc}.notification-list>button.urgent>span{background:#fff0eb;color:#d04b2b}.notification-list>button strong,.notification-list>button small{display:block}.notification-list>button strong{font-size:9px}.notification-list>button small{margin-top:4px;color:#64748b;font-size:8px;line-height:1.4}.notification-list>button>div{min-width:0;flex:1}.notification-list>button small{color:#7a8494;font-weight:700;text-transform:uppercase;letter-spacing:.45px}.notification-list>button ul{margin:5px 0 0;padding-left:14px;color:#64748b;font-size:8px;line-height:1.55}.notification-list>button ul li:first-child{color:#344054;font-weight:650}.notification-list>button.urgent ul li:first-child{color:#b9381f}.notification-popover>footer{padding:9px 14px;border-top:1px solid var(--line);color:#8993a2;background:#f8fafc;font-size:7px}.notification-popover.market-style{width:min(420px,calc(100vw - 28px));border-radius:2px;background:#fff;color:#111827}.notification-popover.market-style>header{min-height:53px;padding:0 17px;justify-content:center;position:relative}.notification-popover.market-style>header>strong{font-size:14px;color:#111827}.notification-popover.market-style>header>button{position:absolute;right:16px;padding:5px;cursor:pointer;color:#303641}.notification-groups{max-height:500px;overflow-y:auto;padding:10px 14px 14px}.notification-groups>p{padding:34px 12px;text-align:center;color:#687386;font-size:10px}.notification-group-row{width:100%;min-height:72px;display:grid;grid-template-columns:38px minmax(0,1fr) auto 18px;align-items:center;gap:12px;padding:9px 7px;border:0;background:transparent;text-align:left;cursor:pointer}.notification-group-row:hover{background:#f7f8fa}.notification-category-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#fff0bd;color:#d99b00}.notification-category-icon.stock{background:#e8f8ef;color:#15815a}.notification-category-icon.key{background:#f1eaff;color:#7554bb}.notification-group-row>div strong,.notification-group-row>div small{display:block}.notification-group-row>div strong{font-size:11px;color:#151b27}.notification-group-row>div small{max-width:260px;margin-top:5px;color:#6c7584;font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-group-row>b{min-width:18px;height:18px;padding:0 5px;display:grid;place-items:center;border-radius:10px;background:#ef4057;color:#fff;font-size:8px}.notification-chevron{color:#1d2530;transition:transform .18s}.notification-group.expanded .notification-group-row .notification-chevron{transform:rotate(90deg)}.notification-reasons{margin:0 7px 7px 50px;border-left:1px solid #e2e6ec}.notification-detail-view .notification-reasons{margin:0;border-left:0}.notification-back{width:100%;min-height:46px;display:flex;align-items:center;gap:10px;padding:0 12px;border:0;border-bottom:1px solid #e6e9ee;background:#f8f9fb;color:#242b36;font-size:10px;font-weight:750;cursor:pointer}.notification-back:hover{background:#f0f3f7}.notification-reasons>button{width:100%;display:grid;grid-template-columns:7px minmax(0,1fr) 14px;align-items:start;gap:8px;border:0;border-bottom:1px solid #eef0f3;background:#fafbfc;padding:10px;text-align:left;cursor:pointer}.notification-reasons>button:hover{background:#f2f5f9}.notification-reasons>button>i{width:6px;height:6px;margin-top:4px;border-radius:50%;background:#e1a329}.notification-reasons>button>i.urgent{background:#ef4057}.notification-reasons strong{font-size:9px;color:#202735}.notification-reasons ul{margin:4px 0 0;padding-left:13px;color:#6c7584;font-size:8px;line-height:1.5}.notification-reasons>button>svg{margin-top:3px;color:#606978}.notification-popover.market-style>footer{font-size:8px;text-align:center}@media(max-width:700px){.global-search{top:72px;right:14px;left:14px;width:auto}.notification-popover.market-style{position:fixed;top:72px;right:14px;left:14px;width:auto;max-width:none}}html[data-theme=dark] .sidebar .profile{background:var(--navy)}html[data-theme=dark] .sidebar .profile-role-select{background:transparent;color:#9eabc0;border:0}html[data-theme=dark] .sidebar .profile-role-select option{background:var(--navy);color:#fff}.sidebar-nav-parent{position:relative;display:flex}.sidebar-nav-parent>a{flex:1;padding-right:38px}.sidebar-nav-parent>button{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;padding:0;border:0;background:transparent;color:inherit;display:grid;place-items:center}.sidebar-nav-parent>button svg{transition:transform .2s ease}.sidebar-nav-parent>button.expanded svg{transform:rotate(180deg)}.sidebar nav .sidebar-subitem{margin-left:24px;padding-left:14px;font-size:12px}html[data-theme=dark] .notification-popover.market-style{background:#182235;color:#e8edf5;border-color:#36435a;box-shadow:0 24px 65px #020713b8}html[data-theme=dark] .notification-popover.market-style>header{background:#1c283c;border-color:#36435a}html[data-theme=dark] .notification-popover.market-style>header>strong{color:#f4f7fb}html[data-theme=dark] .notification-popover.market-style>header>button{color:#b9c5d6}html[data-theme=dark] .notification-popover.market-style>header>button:hover{color:#fff;background:#2a3850;border-radius:7px}html[data-theme=dark] .notification-groups{background:#182235}html[data-theme=dark] .notification-groups>p{color:#9eabbd}html[data-theme=dark] .notification-group-row{color:#e8edf5}html[data-theme=dark] .notification-group-row:hover{background:#222f45}html[data-theme=dark] .notification-group-row>div strong{color:#f0f4fa}html[data-theme=dark] .notification-group-row>div small{color:#a4b0c2}html[data-theme=dark] .notification-chevron{color:#b8c4d5}html[data-theme=dark] .notification-category-icon.pending{background:#49391b;color:#f3bd42}html[data-theme=dark] .notification-category-icon.stock{background:#193e34;color:#67d4ad}html[data-theme=dark] .notification-category-icon.key{background:#35294d;color:#c0a2f5}html[data-theme=dark] .notification-group-row>b{background:#f04b61;color:#fff}html[data-theme=dark] .notification-back{background:#202d42;color:#e8edf5;border-color:#36435a}html[data-theme=dark] .notification-back:hover{background:#293850}html[data-theme=dark] .notification-detail-view .notification-reasons>button{background:#182235;border-color:#303d52;color:#e8edf5}html[data-theme=dark] .notification-detail-view .notification-reasons>button:hover{background:#222f45}html[data-theme=dark] .notification-reasons strong{color:#f0f4fa}html[data-theme=dark] .notification-reasons ul{color:#aab5c5}html[data-theme=dark] .notification-reasons>button>svg{color:#9facc0}html[data-theme=dark] .notification-trigger>i{border-color:#192335}.brand>span,.login-logo>b{width:37px;height:37px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(145deg,#4285ff,#1b58d1);font-size:20px;font-weight:800}html.login-active,html.login-active body,body.login-active,body.login-active #root{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}.login-page--obras{--login-accent: #259c55;--login-accent-dark: #187d41;--login-brand-highlight: #145c37;--login-bg: #dff3e7;color-scheme:light;height:100svh;min-height:100svh;display:grid;place-items:center;padding:clamp(14px,2.2vw,34px) clamp(18px,3vw,48px);box-sizing:border-box;overflow:hidden;background:var(--login-bg);color:#36433c}.login-page--obras.login-page--register{overflow-y:auto}.login-page--obras .login-frame{width:min(100%,1440px);height:min(88svh,720px);min-height:0;margin:0 auto;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,385px);align-items:center;gap:clamp(28px,5vw,76px)}.login-showcase{position:relative;min-height:min(88svh,720px);overflow:hidden;border-radius:26px;isolation:isolate;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.8fr);background:#dff3e7;box-shadow:0 20px 48px #328b531f}.login-showcase__image{min-width:0;height:100%;background:url(/login/obra-login.png) center / cover no-repeat}.login-showcase__copy{min-width:0;padding:30px clamp(20px,2.7vw,42px);display:flex;flex-direction:column;justify-content:center}.showcase-brand,.login-brand{display:flex;align-items:center;gap:11px}.showcase-brand__icon{display:grid;place-items:center;width:54px;height:54px;color:#258b4d;border-radius:14px;background:#259c551f}.showcase-brand span,.showcase-brand strong,.login-brand div span,.login-brand div strong{display:block;line-height:1}.showcase-brand div span{margin-bottom:7px;color:var(--login-brand-highlight);font-size:clamp(1.9rem,3vw,2.85rem);font-weight:800;letter-spacing:-.055em}.showcase-brand div strong{color:var(--login-accent-dark);font-size:clamp(1.7rem,2.2vw,2.25rem);letter-spacing:-.055em}.showcase-tagline{margin:20px 0 27px;color:#496456;font-size:.86rem;line-height:1.65}.showcase-features{display:grid;gap:17px;margin:0;padding:0;color:#527060;font-size:.78rem;list-style:none}.showcase-features li{display:flex;align-items:center;gap:13px}.showcase-features svg{flex:0 0 auto;color:#328a55}.login-form{width:100%;min-width:0;max-width:100%;margin:auto;padding:24px 35px 22px;display:flex;flex-direction:column;gap:12px;border:1px solid rgb(255 255 255 / 88%);border-radius:14px;background:#fff;box-shadow:0 18px 42px #39865324}.login-form--register{max-height:100%;overflow-y:auto}.login-register-fields{width:100%;min-width:0;max-width:100%;display:grid;gap:9px}.login-register-fields .login-field>input{width:100%;min-width:0;max-width:100%;min-height:38px;padding:0 10px;color:#36433c;border:1px solid #c7ddce;border-radius:7px;background:transparent;outline:0;font-size:.67rem}.login-register-fields .login-field>input:focus{border-color:var(--login-accent);box-shadow:0 0 0 3px #259c551f}.login-register-row{min-width:0;max-width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}.login-optional{margin-left:3px;color:#8a968f;font-size:.57rem;font-weight:500}.login-registration-note{margin:0;color:#78857e;font-size:.62rem;line-height:1.45}.login-verification-message{display:grid;gap:4px}.login-verification-message strong{font-size:11px}.login-verification-message span{line-height:1.45}.login-brand{display:none}.login-brand__icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--login-accent-dark);border-radius:11px;background:#bde6cb}.login-brand div span{margin-bottom:5px;color:var(--login-brand-highlight);font-size:1.65rem;font-weight:800;letter-spacing:-.055em}.login-brand div strong{color:var(--login-accent);font-size:1.35rem;letter-spacing:-.04em}.login-welcome{text-align:center}.login-welcome h1{margin:0;color:var(--login-accent-dark);font-size:1.1rem;letter-spacing:-.025em}.login-welcome p,.login-heading p{margin:4px 0 0;color:#78857e;font-size:.66rem;line-height:1.45}.login-heading{display:none}.login-field{min-width:0;max-width:100%;display:grid;gap:6px;color:#56645c;font-size:.68rem;font-weight:700}.login-input-wrap{min-width:0;max-width:100%;display:flex;align-items:center;min-height:42px;padding:0 9px;color:#4d8562;border:1px solid #c7ddce;border-radius:7px;background:#fff}.login-input-wrap:focus-within{border-color:var(--login-accent);box-shadow:0 0 0 3px #259c551f}.login-input-wrap input{flex:1;min-width:0;height:38px;padding:0 9px;color:#36433c!important;border:0;background:transparent!important;color-scheme:light;box-shadow:none;outline:0;opacity:1;font-size:.67rem}.login-input-wrap input[type=password],.login-input-wrap input[type=text]{color:#36433c!important;-webkit-text-fill-color:#36433c!important;opacity:1!important}.login-input-wrap input:-webkit-autofill,.login-input-wrap input:-webkit-autofill:hover,.login-input-wrap input:-webkit-autofill:focus,.login-input-wrap input:-webkit-autofill:active,.login-input-wrap input:autofill{background-color:#fff!important;background-image:none!important;-webkit-text-fill-color:#36433c!important;-webkit-box-shadow:0 0 0 1000px #ffffff inset!important;box-shadow:0 0 0 1000px #fff inset!important;caret-color:#36433c!important}.login-input-wrap input::placeholder{color:#36433c!important;opacity:1!important}.login-password-toggle{display:flex;padding:4px;color:#728079;border:0;background:transparent}.login-options{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.6rem}.login-options label{display:flex;align-items:center;gap:6px;color:#5f6d65;white-space:nowrap}.login-options input{width:13px;height:13px;margin:0;accent-color:var(--login-accent)}.login-page--obras .form-link,.login-page--obras .login-signup button{color:var(--login-accent-dark);font-weight:700}.login-page--obras .form-link{margin:0;font-size:inherit}.login-submit{width:100%;min-height:37px;padding:0;border-radius:6px;background:var(--login-accent);box-shadow:0 7px 14px #259c552e;font-size:.72rem}.login-submit:hover{background:var(--login-accent-dark)}.login-resend-verification{align-self:center;padding:0;color:var(--login-accent-dark);border:0;background:transparent;font-size:.68rem;font-weight:700}.login-resend-verification:hover{text-decoration:underline}.login-divider{display:flex;align-items:center;gap:10px;color:#94a099;font-size:.61rem}.login-divider:before,.login-divider:after{flex:1;height:1px;content:"";background:#dce9e0}.login-google{min-height:34px;display:flex;align-items:center;justify-content:center;gap:8px;color:#3e4943;border:1px solid #dfe8e2;border-radius:7px;background:#fff;font-size:.66rem;font-weight:650}.login-google span{color:#4285f4;font-size:.95rem;font-weight:800}.login-signup{margin:1px 0 0;color:#77837d;font-size:.61rem;text-align:center}.login-signup button{padding:0;border:0;background:transparent}@media(min-width:1101px){.login-page--obras{position:fixed;inset:0;width:100%;height:100dvh;min-height:0}.login-page--obras .login-frame{height:min(720px,calc(100dvh - 68px))}}@media(max-width:1100px){html.login-active,html.login-active body,body.login-active,body.login-active #root{height:100%;min-height:0;overflow:hidden}.login-page--obras{height:100dvh;min-height:0;display:block;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}.login-page--obras.login-page--register{overflow-y:auto;padding-bottom:max(96px,env(safe-area-inset-bottom))}.login-page--obras .login-frame{width:min(100%,512px);height:auto;min-height:max-content;flex:0 0 auto;padding:clamp(10px,2.5vh,18px) 10px clamp(10px,2vh,22px);display:flex;flex-direction:column;gap:0}.login-showcase{width:100%;min-height:0;aspect-ratio:487 / 335;border-radius:18px 18px 0 0;display:block;box-shadow:none}.login-showcase__image{position:absolute;inset:0;background-image:url(/login/obra-login.png);background-position:center;background-size:cover}.login-showcase__copy{display:none}.login-form{width:100%;margin:0;padding:20px clamp(24px,5vw,38px) 20px;gap:12px;border:0;border-radius:0 0 18px 18px;box-shadow:0 12px 24px #3986531a}.login-form--register{max-height:none;overflow:visible;padding-bottom:max(20px,env(safe-area-inset-bottom))}.login-register-fields .login-field>input{min-height:48px;font-size:1rem}.login-register-fields{gap:12px}.login-registration-note{font-size:.76rem}.login-brand{display:flex;justify-content:center}.login-welcome{display:none}.login-heading{display:block;text-align:center}.login-heading p{color:#405049;font-size:.91rem}.login-field{gap:8px;font-size:0}.login-input-wrap{min-height:56px;padding-inline:13px;border-radius:11px;font-size:1rem}.login-input-wrap input{height:52px;font-size:1rem}.login-input-wrap input::placeholder{color:#36433c!important;opacity:1!important}.login-options{margin-top:2px;font-size:.78rem}.login-options input{width:18px;height:18px}.login-submit{min-height:48px;border-radius:10px;font-size:.98rem}.login-divider{font-size:.78rem}.login-google{min-height:50px;border-radius:10px;font-size:.86rem}.login-signup{margin-top:2px;font-size:.78rem}}@media(max-width:520px){.login-page--obras .login-frame{padding:10px 8px}.login-form{padding:18px 20px}}.standalone-form{position:relative;isolation:isolate;min-height:100vh;display:grid;place-items:center;overflow:hidden;padding:32px 20px;background:#eef7f1}.standalone-form:before,.standalone-form:after{position:absolute;z-index:-1;width:330px;height:330px;border-radius:50%;background:#ccebd8;content:"";filter:blur(2px);opacity:.65}.standalone-form:before{top:-145px;left:-90px}.standalone-form:after{right:-125px;bottom:-170px;background:#d9e6fb}.standalone-form form{margin:0}.standalone-card{width:min(100%,510px);overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:0 25px 70px #1e482f24}.standalone-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 34px;border-bottom:1px solid #edf1ef}.standalone-brand{display:inline-flex;align-items:center;gap:10px;color:#173d27;text-decoration:none}.standalone-brand__mark{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:#fff;background:linear-gradient(145deg,#259c55,#187d41);font-size:18px;font-weight:800}.standalone-brand__name{display:flex;align-items:baseline;gap:5px;letter-spacing:-.04em}.standalone-brand__name b{font-size:18px}.standalone-brand__name strong{color:#208a49;font-size:13px}.standalone-header__secure{display:inline-flex;align-items:center;gap:6px;color:#5f7768;font-size:11px;white-space:nowrap}.standalone-header__secure svg{color:#259c55}.standalone-content{padding:42px 54px 35px}.standalone-content--success{text-align:center}.standalone-title-icon,.standalone-result-icon{display:grid;width:54px;height:54px;margin-bottom:22px;place-items:center;border-radius:16px;color:#208a49;background:#e3f5e9}.standalone-result-icon{width:68px;height:68px;margin:0 auto 22px;border-radius:50%;color:#16834a;background:#dff5e7}.standalone-eyebrow{display:block;margin-bottom:10px;color:#208a49;font-size:11px;font-weight:800;letter-spacing:.13em}.standalone-content h1{margin:0;color:#14251b;font-size:clamp(26px,4vw,32px);letter-spacing:-.04em;line-height:1.15}.standalone-content>p{max-width:400px;margin:14px 0 28px;color:#607067;font-size:14px;line-height:1.65}.standalone-content--success>p{margin-right:auto;margin-left:auto}.standalone-password-form,.standalone-request-form{display:grid;gap:17px}.standalone-form .standalone-field{display:grid;gap:8px;color:#33483b;font-size:12px;font-weight:700}.standalone-input-wrap{display:flex;align-items:center;min-height:50px;border:1px solid #d8e3dc;border-radius:11px;color:#809086;background:#fbfdfc;transition:border-color .2s,box-shadow .2s,background .2s}.standalone-input-wrap:focus-within{border-color:#259c55;background:#fff;box-shadow:0 0 0 4px #259c551c}.standalone-input-wrap>svg{flex:0 0 auto;margin-left:15px}.standalone-input-wrap input{width:100%;min-width:0;padding:13px 11px;border:0;outline:0;color:#1d3024;background:transparent;font:inherit;font-size:14px}.standalone-input-wrap input::placeholder{color:#9aa9a0}.standalone-form .standalone-input-wrap input{display:block;margin-top:0;border:0;border-radius:0;padding:13px 11px;background:transparent}.standalone-password-toggle{width:auto!important;min-height:0!important;margin:0!important;padding:10px 14px!important;border:0!important;color:#6d8174!important;background:transparent!important;box-shadow:none!important}.standalone-hint{margin:-3px 0 0!important;color:#718176!important;font-size:11px!important}.standalone-message{margin:0}.standalone-request-form .standalone-submit{width:100%}.standalone-request-message{display:flex;align-items:flex-start;gap:10px;color:#216b3d}.standalone-request-message svg{flex:0 0 auto;margin-top:1px}.standalone-request-message strong{display:block;margin-bottom:3px}.standalone-submit,.standalone-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;margin:3px 0 0!important;border-radius:11px;text-decoration:none}.standalone-action{width:100%;color:#fff;background:#208a49;box-shadow:0 10px 20px #208a492e}.standalone-action:hover{background:#187d41}.standalone-back{display:inline-flex;align-items:center;gap:7px;margin-top:23px;color:#537060;font-size:12px;font-weight:700;text-decoration:none}.standalone-back:hover{color:#208a49}.standalone-footer{padding:17px 24px 19px;border-top:1px solid #edf1ef;color:#8a9a90;font-size:10px;text-align:center}.standalone-footer span{padding:0 5px;color:#b1beb5}.standalone-form .error,.standalone-form .success{border-radius:10px;font-size:12px;line-height:1.5}@media(max-width:560px){.standalone-form{padding:18px 12px}.standalone-header{padding:19px 20px}.standalone-header__secure{display:none}.standalone-content{padding:32px 22px 28px}.standalone-footer{padding-right:16px;padding-left:16px}}html[data-theme=dark] body,html[data-theme=dark] .app>main,html[data-theme=dark] .page,html[data-theme=dark] .standalone-form{background:#101827}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.dashboard-grid--single>section{grid-column:1 / -1}.metric{min-width:0;background:#fff;border:1px solid var(--line);border-radius:11px;padding:17px;display:flex;align-items:center;gap:12px}.metric>div{min-width:0}.metric>span{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:#e8f0ff;color:#2965d1}.metric>span.purple{background:#eeeaff;color:#7359cc}.metric>span.green{background:#e8f8f1;color:#178763}.metric>span.orange{background:#fff1e1;color:#cf7c20}.metric svg{width:18px}.metric small{display:block;font-size:8px;color:#5f6978;letter-spacing:.8px;font-weight:700}.metric strong{display:block;font-size:19px;line-height:1.15;color:#111b2e;font-weight:800;margin:4px 0}.metric p{font-size:8px;color:#626d7d;font-weight:500;margin:0}.metric-clickable{cursor:pointer;transition:transform .16s,box-shadow .16s,border-color .16s}.metric-clickable:hover,.metric-clickable:focus-visible{transform:translateY(-2px);border-color:#9ab7e8;box-shadow:0 8px 20px #17366b12;outline:none}.summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:10px;margin-bottom:15px}.summary article{padding:16px;border-right:1px solid var(--line)}.summary article:last-child{border:0}.summary small{font-size:8px;color:#828b99}.summary strong{font-size:19px;display:block;margin:5px 0}.summary p{font-size:9px;margin:0;color:#687486}.cost-summary{margin-bottom:14px}.admin-list .user-assignment-summary{margin-top:5px;line-height:1.45}html[data-theme=dark] .metric>span{background:#20395f;color:#8eb6ff}html[data-theme=dark] .metric>span.purple{background:#362e59;color:#c2adff}html[data-theme=dark] .metric>span.green{background:#193f35;color:#75d5ad}html[data-theme=dark] .metric>span.orange{background:#49341e;color:#f3b665}html[data-theme=dark] .metric strong{text-shadow:0 1px 1px #00000070}.tree-menu summary{list-style:none;width:27px;height:27px;display:grid;place-items:center;padding:0;border:1px solid #b8c5d8;border-radius:7px;background:#f8fafc;color:#53647c;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease}.tree-menu summary::-webkit-details-marker{display:none}.tree-menu summary:hover{border-color:#7397cf;background:#eef4ff;color:#245fb8}.tree-menu[open] summary{border-color:#2f6fe4;color:#fff;background:#2f6fe4;box-shadow:0 4px 12px #2f6fe43d}.tree-add-menu summary{color:#146c43;border-color:#76b899;background:#f0fbf5}.tree-add-menu summary:hover{color:#fff;border-color:#198754;background:#198754}.tree-add-menu[open] summary{color:#fff;border-color:#198754;background:#198754;box-shadow:0 4px 12px #1987543d}html[data-theme=dark] .tree-menu summary{border-color:#50617a;background:#202c40;color:#d2dbea}html[data-theme=dark] .tree-add-menu summary{color:#75d5a8;border-color:#31775a;background:#17382c}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-card{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.project-card>section{padding:14px}.project-card h3{font-size:14px;color:#172238;font-weight:800;margin:0}.project-card p{display:flex;align-items:center;gap:4px;font-size:8px;color:#596576;margin:5px 0}.project-card>section>small{font-size:8px;color:#606c7c;font-weight:600}.project-progress{margin:15px 0}.project-progress>span{display:flex;justify-content:space-between;font-size:8px;color:#596576;font-weight:600}.project-progress>span b{color:#1d4f9f;font-size:10px}.active-project-bar{display:grid;grid-template-columns:46px minmax(210px,1fr) minmax(220px,.65fr) auto 20px;align-items:center;gap:14px;margin-bottom:17px;padding:14px 17px;background:linear-gradient(105deg,#edf4ff,#f8fbff);border:1px solid #aac4ef;border-left:4px solid var(--blue);border-radius:11px;box-shadow:0 5px 16px #245aa20d}.active-project-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;color:#fff;background:var(--blue)}.active-project-copy small,.active-project-copy strong,.active-project-copy p{display:block}.active-project-copy small{color:#486b9f;font-size:8px;font-weight:800;letter-spacing:.8px}.active-project-copy strong{color:#142440;font-size:15px;margin-top:3px}.active-project-copy p{color:#66768d;font-size:8px;margin:3px 0 0}.active-project-picker{position:relative;min-width:0;color:#52647e;font-size:8px;font-weight:700}.active-project-picker>span{display:block}.active-project-select{position:relative;margin-top:5px}.active-project-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;padding:8px 32px 8px 10px;border:1px solid #9db9e5;border-radius:7px;background:#eef5ff;color:#172a49;font-size:10px;font-weight:700;box-shadow:inset 0 0 0 1px #d8e7ff;outline:0;text-align:left}.active-project-select-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-project-select-trigger>svg{flex:0 0 auto;transition:transform .15s ease}.active-project-select-trigger.open>svg{transform:rotate(180deg)}.active-project-select-trigger:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px #2d73d426}.active-project-select-menu{position:absolute;top:calc(100% + 5px);right:0;left:0;z-index:40;display:grid;gap:3px;max-height:240px;overflow-y:auto;padding:5px;border:1px solid #9db9e5;border-radius:8px;background:#fff;box-shadow:0 12px 25px #1b386226}.active-project-select-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;padding:8px 9px;border:0;border-radius:6px;background:transparent;color:#172a49;font-size:10px;font-weight:600;text-align:left}.active-project-select-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-project-select-option:hover,.active-project-select-option:focus-visible,.active-project-select-option.selected{background:var(--blue);color:#fff;font-weight:800}.active-project-detail{display:flex;align-items:center;gap:6px;color:#49617f;font-size:9px;font-weight:650;white-space:nowrap}.active-project-check{color:#2d73d4}@media(max-width:800px){.active-project-bar{grid-template-columns:42px minmax(0,1fr) 20px;gap:10px;padding:12px}.active-project-bar>label{grid-column:1 / -1;min-width:0}.active-project-copy{min-width:0}.active-project-copy strong{overflow-wrap:anywhere}}.project-detail-hero{display:grid;grid-template-columns:1fr minmax(220px,.35fr);gap:30px;padding:25px;margin-bottom:14px}.project-detail-hero.compact{grid-template-columns:minmax(320px,1.15fr) minmax(280px,.85fr);align-items:start}.project-detail-copy{min-width:0}.project-detail-copy .project-detail-progress{margin-top:18px}.project-detail-cover{min-height:260px;border-radius:12px;overflow:hidden;background:#edf3fb}.project-detail-cover.reduced{position:relative;min-height:170px;max-height:220px}.project-detail-cover img{width:100%;height:100%;object-fit:contain;padding:10px;background:#edf3fb;display:block}.project-gallery-panel{display:grid;gap:10px;min-width:0;align-content:start}.project-gallery-meta{min-width:0}.project-gallery-meta strong,.project-gallery-meta small{display:block}.project-gallery-meta strong{font-size:11px}.project-gallery-meta small{color:#788597;margin-top:3px;font-size:9px;overflow-wrap:anywhere}.project-gallery-carousel{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:8px;align-items:center}.project-gallery-thumbs{display:grid;grid-auto-flow:column;grid-auto-columns:56px;gap:8px;overflow-x:auto;padding-bottom:4px}.project-gallery-thumb{width:56px;height:56px;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#edf3fb}.project-gallery-thumb.active{border-color:#6d98ea;box-shadow:inset 0 0 0 1px #8eb6ff}.project-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.project-detail-cover-empty-card{min-height:170px;border:1px dashed #b6c3d6;border-radius:12px;background:#f8fafc;display:grid;place-items:center;text-align:center;padding:20px}.project-detail-cover-empty-card strong,.project-detail-cover-empty-card small{display:block}.project-detail-cover-empty-card small{color:#788597;margin-top:6px}.project-detail-hero h2{margin:12px 0 8px}.project-detail-hero p{display:flex;align-items:center;gap:6px;color:#697587;font-size:10px}.project-detail-progress{align-self:center;padding:18px;background:#f8fafc;border-radius:10px}.project-detail-progress>strong,.project-detail-progress>span{display:block}.project-detail-progress>strong{font-size:28px;color:var(--primary)}.project-detail-progress>span{color:#7d8796;font-size:9px;margin:3px 0 12px}.project-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.project-detail-grid .panel{padding:18px}.project-detail-grid small,.project-detail-grid strong{display:flex;align-items:center;gap:5px}.project-detail-grid small{color:#818b99;font-size:8px;margin-bottom:8px}.project-detail-grid strong{font-size:16px}.project-team-detail>header{padding:15px 18px;border-bottom:1px solid var(--line)}.project-team-detail article{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);font-size:9px}.project-team-detail article strong,.project-team-detail article small{display:block}.project-team-detail article small{color:#8992a0;margin-top:3px}.project-team-detail article>span{color:#536176}.project-team-inline-form{display:grid;grid-template-columns:minmax(180px,1.2fr) 140px 160px auto auto auto;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line);background:#f8fafc}.project-team-inline-form select,.project-team-inline-form input{margin:0}.project-team-inline-form .member-option.inline{display:inline-flex;align-items:center;gap:7px;margin:0;white-space:nowrap}.project-team-inline-form .member-option.inline input{width:auto;margin:0}.attachment-section{margin-top:14px}.attachment-section>header{margin-top:20px}.attachment-section>header>div{display:grid;gap:3px}.attachment-section-body{margin-top:15px;padding:18px}.attachment-upload-form{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch}.attachment-upload-form label{display:grid;gap:6px}.attachment-caption-field{display:flex!important;flex-direction:column;gap:6px;max-width:100%;margin:0}.attachment-caption-field>span{height:15px;line-height:15px;margin-top:10px}.attachment-caption-field input{width:100%;height:42px;margin-top:0;box-sizing:border-box;border-radius:8px}.attachment-caption-row{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:end}.attachment-submit{align-self:end;margin-top:0;height:42px;min-height:42px;box-sizing:border-box;min-width:180px}.attachment-dropzone{min-height:104px;padding:12px;border:1px dashed #b6c3d6;border-radius:10px;background:#f8fafc;display:grid!important;grid-template-columns:64px minmax(0,1fr);gap:12px!important;align-items:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.attachment-dropzone:hover,.attachment-dropzone.dragging{border-color:#6d98ea;background:#eef4ff;box-shadow:inset 0 0 0 1px #8eb6ff}.attachment-dropzone input[type=file]{display:none}.attachment-dropzone-icon,.attachment-dropzone-preview{width:64px;height:64px;border-radius:10px}.attachment-dropzone-icon{display:grid;place-items:center;background:#dbe7fb;color:#2d61bc}.attachment-dropzone-preview{object-fit:cover;display:block}.attachment-dropzone-copy{min-width:0}.attachment-dropzone-copy strong,.attachment-dropzone-copy small{display:block}.attachment-dropzone-copy strong{color:#1d3558}.attachment-dropzone-copy small{color:#6c7d97;margin-top:4px}.attachment-selected-file{display:inline-flex;align-items:center;gap:8px;margin-top:12px;padding:8px 11px;border-radius:8px;background:#edf4ff;color:#355989;font-size:9px;font-weight:700}.attachment-selected-file small{color:#6c7d97}.attachment-selected-thumb{width:26px;height:26px;border-radius:7px;object-fit:cover}.attachment-list{display:grid;gap:12px;margin-top:14px}.attachment-card{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.attachment-card.cover-selected{border-color:#8eb6ff;box-shadow:inset 0 0 0 1px #8eb6ff}.attachment-preview{width:110px;height:82px;border-radius:9px;overflow:hidden;background:#eef3fb;display:grid;place-items:center}.attachment-preview img{width:100%;height:100%;object-fit:cover}.attachment-file-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#dbe7fb;color:#2d61bc}.attachment-copy{min-width:0}.attachment-copy strong,.attachment-copy small{display:block}.attachment-copy strong{font-size:10px;overflow-wrap:anywhere}.attachment-copy small{color:#788597;margin-top:4px}.attachment-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.attachment-actions .danger{color:#b84343;border-color:#edcccc}.project-photo-cards{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:stretch}.project-photo-cards .attachment-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0;overflow:hidden;background:#fff}.project-photo-cards .attachment-preview{width:100%;height:170px;border-radius:0}.project-photo-cards .attachment-preview>a{display:block;width:100%;height:100%;cursor:zoom-in}.project-photo-cards .attachment-copy{padding:0 12px 12px}.project-photo-cards .attachment-copy strong{font-size:11px}.project-photo-cards .attachment-actions{position:absolute;top:9px;right:9px;gap:6px}.attachment-icon-action{width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid rgba(255,255,255,.75);border-radius:9px;background:#141f31b8;color:#fff;box-shadow:0 3px 10px #0f172a33;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.attachment-icon-action:hover{background:#172033;transform:translateY(-1px)}.attachment-icon-action.cover-action{color:#fbbf24}.attachment-icon-action.cover-action.active{background:#f59e0b;color:#fff;border-color:#fcd34d}.attachment-icon-action.danger{color:#fecaca;border-color:#fecacab3}.attachment-icon-action.danger:hover{background:#b42318;color:#fff}.attachment-edit-modal{width:min(520px,calc(100vw - 24px))}.attachment-edit-current{width:100%;max-height:260px;margin-bottom:14px;border-radius:10px;object-fit:contain;background:#edf3fb}.attachment-edit-modal label>small{display:block;margin-top:6px;color:var(--muted);font-weight:400}.project-modal{width:min(1240px,calc(100vw - 40px));max-height:calc(100dvh - 40px);overflow-y:auto;display:grid;grid-template-columns:minmax(300px,.75fr) minmax(600px,1.55fr);grid-template-rows:auto auto auto auto auto;column-gap:24px}.project-modal>header,.project-modal>footer{grid-column:1 / -1}.project-modal>header{grid-row:1}.project-modal-header-actions{display:flex;align-items:center;gap:8px}.modal>header .project-history-button{width:auto;height:32px;padding:0 11px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--text);font-size:9px;font-weight:700}.modal>header .project-history-button:hover{border-color:#8eb1eb;background:#eef4ff;color:#245bb5}.project-modal>label:nth-of-type(1){grid-column:1;grid-row:2}.project-modal>.form-row{grid-column:1;grid-row:3}.project-modal>.project-planned-dates-row{grid-column:1;grid-row:5}.project-modal>label:nth-of-type(2){grid-column:1;grid-row:4}.project-modal>label:nth-of-type(3){grid-column:1;grid-row:6}.project-modal>.project-team-fieldset{grid-column:2;grid-row:2 / 7;margin-top:12px;align-self:start}.project-modal>footer{grid-row:7}.project-card.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.project-card.clickable:hover,.project-card.clickable:focus-visible{transform:translateY(-2px);box-shadow:0 12px 28px #1e293b12;outline:none}.project-title-row{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:9px}.project-title-row h3{min-width:0;overflow-wrap:anywhere}.project-actions{display:flex;align-items:center;justify-content:stretch;flex-wrap:nowrap;gap:6px;width:100%}.project-actions button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:0;width:100%;border:1px solid var(--line);background:#fff;color:#536176;border-radius:6px;padding:5px 7px;font-size:8px;white-space:nowrap;flex:1 1 0}.project-actions button span{display:inline}.project-actions button.danger{color:#b13d3d;border-color:#f0d0d0}.project-team-fieldset{border:1px solid var(--line);border-radius:10px;padding:14px;margin-top:14px}.project-modal>*,.project-team-fieldset,.project-member-row{min-width:0}.project-team-fieldset legend{padding:0 6px;color:#25324a;font-size:11px;font-weight:700}.project-team-fieldset>p{color:#7a8494;font-size:9px;margin:0 0 10px}.project-team-error{margin-top:12px}.project-save-message{margin-right:auto;align-self:center;font-size:10px}.project-member-row{display:grid;grid-template-columns:minmax(145px,.75fr) minmax(280px,1.5fr);grid-template-areas:"identity roles" "identity custom" "identity permissions";align-items:start;gap:8px 14px;padding:12px 0;border-top:1px solid #edf0f4}.project-member-row>.member-identity{grid-area:identity}.project-member-row>.member-role-options{grid-area:roles}.project-member-row>input{grid-area:custom;min-width:0}.project-member-row>.member-permission-options{grid-area:permissions}.modal .project-member-row input,.modal .project-member-row select{margin:0;padding:8px}@media(max-width:1100px){.project-modal{display:block;width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}.project-modal>.project-team-fieldset{margin-top:18px}}@media(max-width:620px){.project-member-row{grid-template-columns:1fr;grid-template-areas:"identity" "roles" "custom" "permissions"}.member-permission-options{gap:10px 16px}}.modal-backdrop.project-history-backdrop{display:flex;align-items:center;justify-content:center;padding:64px 24px;overflow:hidden}.project-history-backdrop>.project-history-modal{width:min(900px,calc(100vw - 48px));max-height:calc(100dvh - 128px);margin:0;overflow-y:auto}.project-edit-history{display:grid;gap:12px}.project-edit-history>article{padding:14px;border:1px solid var(--line);border-radius:11px}.project-edit-history>article>header{display:flex;justify-content:space-between;gap:14px;margin-bottom:11px}.project-edit-history>article>header strong,.project-edit-history>article>header small{display:block}.project-edit-history>article>header small,.project-edit-history time{margin-top:4px;color:var(--muted);font-size:9px}.project-edit-history>article>div{display:grid;gap:7px}.project-edit-history section{display:grid;grid-template-columns:135px minmax(0,1fr) 18px minmax(0,1fr);gap:8px;align-items:start;font-size:10px}.project-edit-history section del{color:#b42318;overflow-wrap:anywhere}.project-edit-history section ins{color:#157f3b;text-decoration:none;overflow-wrap:anywhere}.project-edit-history section>span{color:var(--muted);text-align:center}.project-edit-history .team-audit-change{display:grid;grid-template-columns:135px minmax(0,1fr)}html[data-theme=dark] .modal>header .project-history-button{background:#263247;border-color:#43516a;color:#e8edf5}html[data-theme=dark] .modal>header .project-history-button:hover{background:#304263;color:#b9d3ff}@media(max-width:700px){.modal-backdrop.project-history-backdrop{align-items:center;padding:32px 12px}.project-history-backdrop>.project-history-modal{width:calc(100vw - 24px);max-height:calc(100dvh - 64px)}.project-edit-history>article>header{display:block}.project-edit-history section{grid-template-columns:1fr}.project-edit-history section>span{display:none}}.managed-project-list{display:grid;gap:9px}.managed-project-list article{display:grid;grid-template-columns:42px minmax(190px,1.2fr) minmax(175px,.9fr) minmax(100px,.55fr) auto 96px;align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.managed-project-list article.inactive{background:#f5f6f8;opacity:.78}.managed-project-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:9px;color:#3267bc;background:#e6efff}.managed-project-main strong,.managed-project-main small,.managed-project-main span,.managed-project-info span{display:block}.managed-project-main strong{font-size:11px}.managed-project-main small,.managed-project-main span,.managed-project-info span{color:#657184;font-size:8px;margin-top:4px}.managed-project-main span{display:flex;align-items:center;gap:3px}.managed-project-info b{color:#28364d;margin-left:3px}.project-edit-button{display:inline-flex;align-items:center;gap:5px}.modal.project-audit-modal{width:min(1080px,100%);max-height:92vh}.project-edit-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(350px,.85fr);gap:22px;align-items:start}.project-edit-fields{min-width:0}.project-history{max-height:55vh}html[data-theme=dark] .topbar,html[data-theme=dark] .panel,html[data-theme=dark] .metric,html[data-theme=dark] .project-card,html[data-theme=dark] .toolbar,html[data-theme=dark] .summary,html[data-theme=dark] .modal,html[data-theme=dark] .standalone-form form,html[data-theme=dark] .icon,html[data-theme=dark] .project-actions button,html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:var(--surface);color:#e6ebf3;border-color:var(--line)}html[data-theme=dark] .metric,html[data-theme=dark] .project-card{box-shadow:0 8px 22px #05091238}html[data-theme=dark] .project-team-inline-form{background:#202b3d}html[data-theme=dark] .active-project-bar{background:linear-gradient(105deg,#17263d,#192335);border-color:#385a8c;border-left-color:var(--blue)}html[data-theme=dark] .attachment-card,html[data-theme=dark] .attachment-dropzone,html[data-theme=dark] .project-gallery-thumb,html[data-theme=dark] .project-detail-cover-empty-card,html[data-theme=dark] .project-detail-cover{background:#202b3d}html[data-theme=dark] .project-gallery-thumb.active{border-color:#6c98ea;box-shadow:inset 0 0 0 1px #6c98ea}html[data-theme=dark] .attachment-dropzone.dragging,html[data-theme=dark] .attachment-dropzone:hover{background:#23324a;border-color:#6c98ea}html[data-theme=dark] .attachment-card.cover-selected{border-color:#6c98ea;box-shadow:inset 0 0 0 1px #6c98ea}html[data-theme=dark] .attachment-file-icon{background:#29446b;color:#a9c8ff}html[data-theme=dark] .attachment-selected-file{background:#213654;color:#c8dcff}html[data-theme=dark] .attachment-selected-file small,html[data-theme=dark] .attachment-copy small,html[data-theme=dark] .attachment-dropzone-copy small{color:#b8c3d2}html[data-theme=dark] .attachment-dropzone-icon{background:#29446b;color:#a9c8ff}html[data-theme=dark] .managed-project-list article{background:#172235}html[data-theme=dark] .managed-project-list article.inactive{background:#131c2a}html[data-theme=dark] .managed-project-main small,html[data-theme=dark] .managed-project-main span,html[data-theme=dark] .managed-project-info span{color:#b8c3d2}html[data-theme=dark] .managed-project-info b{color:#f1f5fa}html[data-theme=dark] .active-project-copy small,html[data-theme=dark] .active-project-detail,html[data-theme=dark] .active-project-picker{color:#a9bddd}html[data-theme=dark] .active-project-select-menu{background:#202c40;border-color:#4a6286}html[data-theme=dark] .active-project-select-option{color:#e6ebf3}html[data-theme=dark] .active-project-select-option:hover,html[data-theme=dark] .active-project-select-option:focus-visible,html[data-theme=dark] .active-project-select-option.selected{background:#4d83e8;color:#fff}html[data-theme=dark] .active-project-copy strong,html[data-theme=dark] .metric strong,html[data-theme=dark] .project-card h3,html[data-theme=dark] .finance strong{color:#fff}html[data-theme=dark] .active-project-copy p,html[data-theme=dark] .metric small,html[data-theme=dark] .metric p,html[data-theme=dark] .project-card p,html[data-theme=dark] .project-card>section>small,html[data-theme=dark] .project-progress>span,html[data-theme=dark] .finance span{color:#c5cedb}html[data-theme=dark] .project-progress>span b{color:#8eb6ff}html[data-theme=dark] .project-card .finance{border-top-color:#3a465a}html[data-theme=dark] .project-card .finance span+span{border-left-color:#3a465a}html[data-theme=dark] .project-card .cover{background:linear-gradient(135deg,#274261,#18283e)}html[data-theme=dark] .project-card .cover.c1{background:linear-gradient(135deg,#4a4132,#29251f)}html[data-theme=dark] .project-card .cover.c2{background:linear-gradient(135deg,#29483b,#192d27)}html[data-theme=dark] .project-detail-cover{background:#202b3d}html[data-theme=dark] .project-gallery-meta small,html[data-theme=dark] .project-detail-cover-empty-card small{color:#b8c3d2}html[data-theme=dark] .project-detail-planning-grid>.panel>header,html[data-theme=dark] .project-planning-row{border-color:#303b4f}html[data-theme=dark] .project-planning-row{background:#192335;color:#e6ebf3}html[data-theme=dark] .project-planning-row strong{color:#eef3fb}html[data-theme=dark] .project-planning-row small{color:#aebbd0}html[data-theme=dark] .project-planning-row>b{color:#8eb6ff}html[data-theme=dark] .structure-tree-children{border-left-color:#3b485d}html[data-theme=dark] .structure-tree-row{border-color:#3b485d;background:#202c40;color:#e6ebf3}html[data-theme=dark] .structure-tree-toggle{color:#a9c8ff}html[data-theme=dark] .structure-tree-copy strong{color:#eef3fb}html[data-theme=dark] .structure-tree-copy small,html[data-theme=dark] .element-type-label,html[data-theme=dark] .structure-tree-drag-handle{color:#aebbd0}html[data-theme=dark] .structure-tree-actions button{color:#b8c8df}html[data-theme=dark] .structure-tree-actions button:hover{border-color:#486a9d;background:#263b5f;color:#cfe0ff}html[data-theme=dark] .structure-tree-actions button:last-child:hover{border-color:#8f4c4c;background:#452426;color:#faa}@media(min-width:1351px){.project-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:1200px){.purchase-detail-layout,.purchase-detail-layout.with-history,.inventory-grid,.project-edit-layout{grid-template-columns:1fr}.managed-project-list article{grid-template-columns:42px 1fr 1fr auto}.managed-project-info:nth-of-type(2),.managed-project-list .company-active-toggle{grid-column:auto}.project-edit-button{grid-column:2;width:max-content}.managed-company-list article{grid-template-columns:44px 1fr 1fr 100px}.managed-company-capacity{grid-column:2 / 4}.active-project-bar{grid-template-columns:46px 1fr minmax(200px,.7fr) 20px}.active-project-detail{display:none}.planning-workspace{grid-template-columns:210px minmax(0,1fr)}.metrics,.project-team-inline-form{grid-template-columns:1fr 1fr}.project-actions{gap:5px}.project-actions button{padding:5px 6px;font-size:7px}.request-table>article{grid-template-columns:34px 1fr auto}.request-table article>div:nth-of-type(2),.request-table article>div:nth-of-type(3){display:none}}@media(min-width:993px)and (max-width:1110px){.project-grid{grid-template-columns:1fr 1fr}}@media(min-width:993px)and (max-width:1110px){.project-actions{justify-content:stretch}.project-actions button{gap:0}.project-actions button svg{display:none}.project-actions button span{display:inline}}@keyframes mobile-sidebar-open{0%{transform:translate(-105%)}to{transform:translate(0)}}@media(max-width:992px){.project-title-row{gap:8px}.project-actions{justify-content:flex-start}.project-actions button{width:31px;height:31px;padding:0;gap:0;flex:0 0 31px}.project-actions button span{display:none}.project-actions button svg{width:14px;height:14px}}@media(max-width:1100px){.sidebar{display:flex;width:min(290px,86vw);z-index:80;transform:translate(-105%);transition:none;box-shadow:14px 0 40px #05091455;overflow-y:auto;overscroll-behavior:contain}.sidebar.mobile-open{transform:translate(0);animation:mobile-sidebar-open .22s ease both}.mobile-sidebar-close{display:grid;place-items:center;position:absolute;top:17px;right:14px;width:32px;height:32px;border:1px solid #354561;border-radius:8px;background:#1c2a44;color:#d8e2f2;z-index:1}.mobile-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:70;border:0;padding:0;background:#07101f99;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.mobile-menu-open .mobile-sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}.topbar .mobile-menu-button{display:grid;flex:0 0 auto}.sidebar .brand{padding-right:42px}.sidebar nav a{min-height:43px;font-size:12px}.sidebar nav a svg{width:19px;height:19px;flex:0 0 auto}.app>main{margin:0;width:100%}.topbar{height:60px;padding:0 12px;gap:8px}.page{padding:18px 12px 30px;min-width:0}.topbar>div{display:none}.topbar>section{min-width:0;gap:6px}}@media(max-width:720px){.purchase-meta,.stock-detail-summary{grid-template-columns:1fr 1fr}.purchase-detail-items article{grid-template-columns:1fr}.sidebar{display:flex;width:min(290px,86vw);z-index:80;transform:translate(-105%);transition:none;box-shadow:14px 0 40px #05091455;overflow-y:auto;overscroll-behavior:contain}.sidebar.mobile-open{transform:translate(0);animation:mobile-sidebar-open .22s ease both}.mobile-sidebar-close{display:grid;place-items:center;position:absolute;top:17px;right:14px;width:32px;height:32px;border:1px solid #354561;border-radius:8px;background:#1c2a44;color:#d8e2f2;z-index:1}.mobile-sidebar-backdrop{display:block;position:fixed;inset:0;z-index:70;border:0;padding:0;background:#07101f99;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.mobile-menu-open .mobile-sidebar-backdrop{opacity:1;visibility:visible;pointer-events:auto}.topbar .mobile-menu-button{display:grid;flex:0 0 auto}.sidebar .brand{padding-right:42px}.sidebar nav a{min-height:43px;font-size:12px}.sidebar nav a svg{width:19px;height:19px;flex:0 0 auto}.app>main{margin:0;width:100%}.topbar{height:60px;padding:0 12px;gap:8px}.page{padding:18px 12px 30px;min-width:0}.topbar>div{display:none}.topbar>section{min-width:0;gap:6px}.topbar>section .primary{padding:9px 10px;white-space:nowrap}.metrics,.metrics.commercial,.dashboard-grid,.commercial-grid,.summary{grid-template-columns:1fr}.page-header{gap:10px;align-items:flex-start;flex-wrap:wrap}.page-header .primary{padding:9px}.phase-table{overflow:auto;-webkit-overflow-scrolling:touch}.phase-table>*{min-width:720px}.form-row{grid-template-columns:1fr}.project-modal{display:block;max-height:90vh;overflow-y:auto}.modal-backdrop{padding:8px;align-items:start;overflow-y:auto}.modal{margin:auto 0;padding:17px;max-height:calc(100dvh - 16px);border-radius:11px}.modal>header{gap:10px}.modal h2{font-size:18px}.project-member-row{grid-template-columns:1fr 1fr}.member-identity{grid-column:1 / -1}.settings-grid,.settings-form,.theme-options,.font-options,.project-detail-hero,.project-detail-grid,.project-detail-hero.compact,.project-team-inline-form{grid-template-columns:1fr}.project-detail-cover.reduced{min-height:150px;max-height:180px}.project-gallery-carousel{grid-template-columns:32px minmax(0,1fr) 32px}.project-gallery-thumbs{grid-auto-columns:52px}.project-gallery-thumb{width:52px;height:52px}.attachment-upload-form,.attachment-card,.attachment-caption-row{grid-template-columns:1fr}.attachment-submit{min-width:0;width:100%;margin-top:0}.attachment-dropzone{grid-template-columns:54px minmax(0,1fr)}.attachment-dropzone-icon,.attachment-dropzone-preview{width:54px;height:54px}.attachment-preview{width:100%;height:180px}.attachment-actions{justify-content:flex-start}.page-actions{flex-wrap:wrap}.summary article{border-right:0;border-bottom:1px solid var(--line)}.summary article:last-child{border-bottom:0}.request-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.module-tabs{width:100%;overflow-x:auto}.module-tabs button{flex:1 0 auto;justify-content:center}.crud-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.crud-table>header,.crud-table-head,.crud-table>article{min-width:700px}.request-table>header,.request-table>article{min-width:620px}.admin-list article{grid-template-columns:1fr auto 30px}.admin-list article .secondary{grid-column:1 / -1;justify-self:start}.assignment-form fieldset{grid-template-columns:1fr;gap:7px}.preference-options button{min-width:0}.phase-detail-modal,.project-audit-modal{width:100%}.active-project-bar{grid-template-columns:42px 1fr 20px}.active-project-picker{grid-column:1 / -1}.planning-workspace{grid-template-columns:1fr}.managed-company-list article{grid-template-columns:44px 1fr}.managed-project-list article{grid-template-columns:42px 1fr}.managed-project-info,.managed-project-list .company-active-toggle,.managed-project-list .project-edit-button,.managed-company-contact,.managed-company-capacity,.company-active-toggle{grid-column:2}.phase-detail-grid{grid-template-columns:1fr}.history-change{grid-template-columns:1fr 1fr}.history-change b{grid-column:1 / -1}.phase-detail-modal>header{flex-wrap:wrap}}@media(max-width:700px){.project-grid{grid-template-columns:1fr}}.report-open-button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.report-backdrop{align-items:center;padding:48px 36px;overflow:hidden}.report-modal{width:min(1180px,calc(100vw - 72px));max-height:calc(100dvh - 96px);padding:0;overflow:hidden;display:flex;flex-direction:column}.report-modal>.report-toolbar{flex:0 0 auto;padding:16px 20px;border-bottom:1px solid var(--line)}.report-toolbar>div:last-child{display:flex;align-items:center;gap:8px}.modal .report-toolbar .report-orientation-toggle{width:38px;min-width:38px;height:36px;padding:0;display:grid;place-items:center;border-radius:8px;border:1px solid #d4dce8;background:#f5f7fb;color:#3d5c86;transition:background .15s ease,border-color .15s ease,color .15s ease}.modal .report-toolbar .report-print{width:auto;height:36px;padding:8px 13px;border-radius:8px;display:inline-flex;gap:7px;border:1px solid #d4dce8;background:#f5f7fb;color:#3d5c86;transition:background .15s ease,border-color .15s ease,color .15s ease}.modal .report-toolbar .report-orientation-toggle:hover,.modal .report-toolbar .report-print:hover{border-color:#aebdd1;background:#eaf0f8;color:#244a7b}.modal .report-toolbar .report-orientation-toggle:disabled,.modal .report-toolbar .report-print:disabled{border-color:#dfe4ec;background:#f1f3f6;color:#9aa5b5;cursor:not-allowed;opacity:.8}html[data-theme=dark] .modal .report-toolbar .report-orientation-toggle,html[data-theme=dark] .modal .report-toolbar .report-print{border-color:#43526a;background:#202c40;color:#c7d6eb}html[data-theme=dark] .modal .report-toolbar .report-orientation-toggle:hover,html[data-theme=dark] .modal .report-toolbar .report-print:hover{border-color:#607596;background:#2b3b55;color:#f0f5ff}html[data-theme=dark] .modal .report-toolbar .report-orientation-toggle:disabled,html[data-theme=dark] .modal .report-toolbar .report-print:disabled{border-color:#354258;background:#1a2435;color:#718096}@media(max-width:720px){.modal .report-toolbar .report-print{width:36px;min-width:36px;padding:0;justify-content:center;gap:0}.report-print-label{display:none}}.report-document{min-height:0;flex:1 1 auto;padding:28px 34px 34px;overflow:auto;color:#182236;background:#fff}.report-heading{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-bottom:20px;border-bottom:2px solid #1f4c8f}.report-heading small,.report-summary small,.report-cost-totals small{color:#64748b;font-size:9px;letter-spacing:.8px}.report-heading h1,.report-heading h2{margin:5px 0}.report-heading p{margin:0;color:#64748b}.report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 24px}.report-summary>span,.report-cost-totals>span{padding:12px;border:1px solid #dce3ed;border-radius:8px;display:flex;flex-direction:column;gap:5px}.report-unit-commercial-summary{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:-8px 0 24px;padding:14px 16px;border:1px solid #cbd8e8;border-left:4px solid #3f6fae;border-radius:9px;background:#f4f7fb;color:#1f3554;break-inside:avoid;page-break-inside:avoid}.report-unit-commercial-summary>div:first-child{min-width:180px}.report-unit-commercial-summary>div:first-child>small,.report-unit-commercial-summary h3,.report-unit-commercial-values small,.report-unit-commercial-values b{display:block}.report-unit-commercial-summary>div:first-child>small,.report-unit-commercial-values small{color:#64748b;font-size:8px;letter-spacing:.7px}.report-unit-commercial-summary h3{margin:5px 0 0;color:#17355f;font-size:14px}.report-unit-commercial-values{display:grid;grid-template-columns:repeat(2,minmax(145px,1fr));gap:10px;min-width:min(100%,330px)}.report-unit-commercial-values>span{display:grid;gap:5px;padding:9px 11px;border:1px solid #d4dfed;border-radius:7px;background:#fff}.report-unit-commercial-values b{color:#244a7b;font-size:13px}.report-section{margin-top:26px;break-inside:avoid}.report-section h3{margin:0 0 10px;font-size:15px;color:#17355f}.report-section table{width:100%;border-collapse:collapse;font-size:10px}.report-section th{text-align:left;color:#526177;background:#f1f5f9}.report-section th,.report-section td{border:1px solid #dce3ed;padding:8px;vertical-align:top}.report-section td small{display:block;margin-top:3px;color:#64748b}.report-tree{display:grid;gap:10px}.report-print-structure{display:none}.report-tree-node{margin-left:calc(var(--report-depth) * 22px);border:1px solid #d7e0ec;border-left:4px solid #608bd0;border-radius:9px;padding:10px;background:#fff;break-inside:avoid}.report-tree-node>header{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:9px;margin-bottom:8px}.report-tree-node>header span{padding:3px 6px;border-radius:5px;background:#e8f0ff;color:#245aab;font-size:8px;font-weight:800;letter-spacing:.6px}.report-tree-node>header strong{font-size:12px}.report-tree-node>header em{color:#64748b;font-size:9px;font-style:normal}.report-tree-node>p{margin:8px 0 0;color:#526177;font-size:9px}.report-tree-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.report-tree-details>span{display:grid;gap:2px;padding:6px 8px;border-radius:6px;background:#f6f8fb;font-size:9px}.report-tree-details small{color:#718096;font-size:8px}.report-block-node{border-left-color:#245aab;background:#f9fbff}.modal .report-tree-toggle{width:auto;min-width:116px;height:27px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:4px 8px;border:1px dashed #8a99ad;border-radius:999px;background:#fff;color:#526177;font-size:8px;font-weight:700;box-shadow:none}.modal .report-tree-toggle:hover{border-style:solid;border-color:#3f679e;background:#edf3fb;color:#244c82}.report-tree-content>.report-tree-node{margin-top:8px}.report-photo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin-top:9px}.report-photo-gallery>a{min-width:0;padding:5px;border:1px solid #d7e0ec;border-radius:7px;background:#fff;color:#40516a;text-decoration:none;break-inside:avoid}.report-photo-gallery img{display:block;width:100%;height:72px;border-radius:5px;object-fit:cover;background:#eef2f7}.report-photo-gallery small{display:block;margin-top:5px;overflow:hidden;color:#526177;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.report-all-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-all-photos>h3,.report-all-photos>p{grid-column:1 / -1}.report-all-photos>article{display:grid;grid-template-rows:auto 1fr;gap:7px;padding:8px;border:1px solid #d7e0ec;border-radius:8px;background:#fff;break-inside:avoid}.report-all-photos>article>div{display:grid;gap:3px}.report-all-photos>article small{color:#64748b;font-size:8px}.report-all-photos a,.report-all-photos img{display:block;width:100%}.report-all-photos img{height:150px;border-radius:6px;object-fit:contain;background:#f3f6fa}.report-cost-totals{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.report-cost-totals .planned{background:#f6f8fb;border-color:#b9c7da}.report-cost-totals .total{background:#e8f0ff;border-color:#9db8e6}.report-history-section>article{border:1px solid #dce3ed;border-radius:8px;padding:11px;margin-bottom:8px;break-inside:avoid}.report-history-section>article>header{display:flex;justify-content:space-between;gap:14px;margin-bottom:6px}.report-history-section time{color:#64748b;font-size:9px}.report-history-section p{margin:5px 0 0;display:grid;grid-template-columns:130px 1fr 1fr;gap:8px;font-size:10px}.report-history-section del{color:#b42318}.report-history-section ins{color:#157f3b;text-decoration:none}.report-footer{margin-top:30px;padding-top:12px;border-top:1px solid #dce3ed;color:#64748b;font-size:9px;text-align:center}html[data-theme=dark] .report-document{color:#182236;background:#fff}html[data-theme=dark] .report-document h1,html[data-theme=dark] .report-document h2,html[data-theme=dark] .report-document h3,html[data-theme=dark] .report-document strong{color:#182236}@media(max-width:760px){.phase-detail-backdrop,.report-backdrop{padding:24px 12px}.modal.phase-detail-modal,.report-modal{width:100%;max-height:calc(100dvh - 48px)}.report-heading,.report-summary,.report-cost-totals{grid-template-columns:1fr}.report-unit-commercial-summary{align-items:stretch;flex-direction:column;gap:12px;margin-top:-8px}.report-unit-commercial-summary>div:first-child{min-width:0}.report-unit-commercial-values{min-width:0}.report-document{padding:20px 16px}.report-section{overflow-x:auto}.report-section table{min-width:680px}}@media print{@page{size:A4 landscape;margin:8mm}html,body,#root{width:auto!important;height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}body *{visibility:hidden!important}.report-modal,.report-modal *{visibility:visible!important}.report-backdrop{position:absolute!important;inset:0!important;width:100%!important;height:auto!important;min-height:0!important;display:block!important;overflow:visible!important;background:#fff!important}.report-modal{position:static!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;display:block!important;box-shadow:none!important;border:0!important;border-radius:0!important}.report-toolbar,.report-tree-toggle{display:none!important}.report-structure>.report-tree{display:none!important}.report-print-structure{display:block!important;width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.report-print-planning-group{width:100%;min-width:0;display:block;height:auto!important;max-height:none!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.report-print-planning-group+.report-print-planning-group{break-before:page;page-break-before:always}.report-print-planning-group>header{margin-bottom:8px;padding:10px 12px;border:1px solid #9bb5dc;border-left:5px solid #245aab;border-radius:6px;background:#edf4ff;break-inside:avoid;page-break-inside:avoid}.report-print-planning-group.general>header{border-left-color:#17355f;background:#e7eef8}.report-print-planning-group>header small{color:#526177;font-size:6.5pt;font-weight:800;letter-spacing:.6px}.report-print-planning-group>header h2{margin:3px 0;color:#17355f;font-size:14pt}.report-print-planning-group>header p{margin:0;color:#526177;font-size:7.5pt}.report-print-planning-group>h3{margin:9px 0 6px;padding-bottom:4px;border-bottom:1px solid #b9c7da;color:#17355f;font-size:9pt;break-after:avoid;page-break-after:avoid}.report-print-planning-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:9px;break-inside:avoid;page-break-inside:avoid}.report-print-planning-summary>span{min-width:0;display:grid;gap:2px;padding:6px 8px;border:1px solid #d7e0ec;border-radius:5px}.report-print-planning-summary small{color:#64748b;font-size:6pt}.report-print-planning-summary b{font-size:7.5pt;overflow-wrap:anywhere}.report-print-planning-rows{display:block!important;width:100%;min-width:0;height:auto!important;max-height:none!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.report-print-row{width:calc(100% - (var(--print-depth) * 8px))!important;min-width:0!important;margin:0 0 5px calc(var(--print-depth) * 8px)!important;padding:6px 8px!important;display:grid!important;grid-template-columns:minmax(120px,.8fr) minmax(0,2fr);align-items:center;gap:8px;box-sizing:border-box;border:1px solid #d7e0ec;border-left:3px solid #245aab;border-radius:5px;break-before:auto!important;break-after:auto!important;break-inside:avoid!important;page-break-before:auto!important;page-break-after:auto!important;page-break-inside:avoid!important;-webkit-column-break-inside:avoid;overflow:visible!important}.report-print-row.phase{border-left-color:#2f9c69}.report-print-title{min-width:0;display:grid;gap:2px}.report-print-title span{color:#526177;font-size:6.5pt;font-weight:700;letter-spacing:.4px}.report-print-title strong{min-width:0;font-size:8pt;overflow-wrap:anywhere;word-break:break-word}.report-print-data{min-width:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(78px,1fr));gap:5px}.report-print-data>span{min-width:0;display:grid;gap:1px;font-size:7pt;overflow-wrap:anywhere;word-break:break-word}.report-print-data small{color:#64748b;font-size:6pt}.report-tree-node>header{grid-template-columns:auto 1fr auto}.report-tree,.report-tree-content{width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.report-tree-node{width:100%!important;min-width:0!important;max-width:100%!important;margin-left:0!important;box-sizing:border-box!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.report-tree-content>.report-tree-node{width:calc(100% - 10px)!important;margin-top:7px!important;margin-left:10px!important}.report-tree-node>header{min-width:0!important;break-inside:avoid!important;page-break-inside:avoid!important}.report-tree-node>header strong,.report-tree-node>header em{min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important}.report-tree-details{grid-template-columns:repeat(2,minmax(0,1fr))!important;min-width:0!important;break-inside:avoid!important;page-break-inside:avoid!important}.report-tree-details>span{min-width:0!important;overflow-wrap:anywhere!important;word-break:break-word!important}.report-tree-node>.report-tree-content>p,.report-photo-gallery{break-inside:avoid!important;page-break-inside:avoid!important}.report-document{width:100%!important;height:auto!important;max-height:none!important;min-height:0!important;flex:none!important;display:block!important;overflow:visible!important;padding:0!important;font-size:9pt}.report-heading,.report-summary,.report-cost-totals{break-inside:avoid;page-break-inside:avoid}.report-section{height:auto!important;max-height:none!important;overflow:visible!important;break-inside:auto!important;page-break-inside:auto!important}.report-section h3{break-after:avoid;page-break-after:avoid}.report-section table{width:100%!important;min-width:0!important;table-layout:fixed;break-inside:auto;page-break-inside:auto;font-size:7.5pt}.report-section thead{display:table-header-group}.report-section tfoot{display:table-footer-group}.report-section tr{break-inside:avoid;page-break-inside:avoid;page-break-after:auto}.report-all-photos{display:grid!important;grid-template-columns:repeat(3,1fr)!important;overflow:visible!important}.report-all-photos>article{break-inside:avoid!important;page-break-inside:avoid!important}.report-all-photos img,.report-photo-gallery img{visibility:visible!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.report-section th,.report-section td{padding:5px;overflow-wrap:anywhere;word-break:break-word}.report-history-section>article{break-inside:avoid;page-break-inside:avoid}.report-history-section p{overflow-wrap:anywhere;word-break:break-word}.report-footer{break-inside:avoid;page-break-inside:avoid}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.block-report-item{position:absolute;z-index:2;right:92px;top:21px;width:23px;height:23px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--blue)}.project-structure-section{margin-bottom:14px}.project-structure-section>header{display:flex;align-items:center;justify-content:space-between;gap:14px}.project-structure-section>header>div{min-width:0}.project-structure-section>header span{display:block;margin-top:4px;color:var(--muted);font-size:9px}.structure-tree{display:grid;gap:5px;padding:14px 18px 18px}.structure-tree-node{min-width:0}.structure-tree-children{display:grid;gap:5px;margin:5px 0 0 22px;padding-left:12px;border-left:1px solid #d9e1ee}.structure-tree-row{display:grid;grid-template-columns:24px minmax(0,1fr) 24px auto;align-items:center;gap:7px;min-height:42px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:#fbfcfe}.structure-tree-toggle,.structure-tree-spacer{width:24px;height:24px;display:grid;place-items:center}.structure-tree-toggle{padding:0;border:0;background:transparent;color:#59749d}.structure-tree-copy,.structure-tree-copy strong,.structure-tree-copy small{min-width:0;display:block}.structure-tree-copy strong{overflow-wrap:anywhere;color:#233653;font-size:10px}.structure-tree-copy small{margin-top:3px;color:var(--muted);font-size:8px}.structure-tree-drag-handle{width:24px;height:28px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#91a1b8;cursor:grab;touch-action:none}.structure-tree-drag-handle:active{cursor:grabbing}.structure-tree-node.is-dragging,.structure-tree-row.is-dragging{position:relative;z-index:1;opacity:.55}.structure-tree .structure-tree{padding:0;margin-top:5px}.element-type-label{flex:0 0 auto;color:#6880a1;font-size:8px;font-weight:700;text-transform:uppercase}.structure-tree-actions{display:flex;gap:3px}.structure-tree-actions button{width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#657895}.structure-tree-actions button:hover{border-color:#cbd8ea;background:#eef4ff;color:#245aab}.structure-tree-actions button:last-child:hover{border-color:#efcaca;background:#fff1f1;color:#b42318}.structure-error{margin:12px 18px 0}.structure-element-modal{width:min(500px,calc(100vw - 24px))}.structure-modal-header-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}.structure-element-modal .structure-modal-header-actions>button,.structure-generator-modal .structure-modal-close{flex:0 0 auto}.structure-element-modal .structure-generate-button{display:inline-flex;align-items:center;gap:6px;width:auto!important;height:auto!important;padding:10px 15px;border:0;border-radius:8px;background:var(--blue);color:#fff;font-size:11px;font-weight:650;box-shadow:0 4px 12px #2563dc25}.structure-element-modal .structure-generate-button:hover{background:#1d55c0}.structure-modal-close{display:grid!important;place-items:center;padding:0!important;border:1px solid #b91c1c!important;border-radius:8px!important;background:#dc2626!important;color:#fff!important;box-shadow:0 4px 12px #b91c1c3d}.structure-modal-close:hover{border-color:#991b1b!important;background:#b91c1c!important;color:#fff!important}.structure-generator-backdrop{z-index:120;background:#0b1429b8}.structure-generator-modal{width:min(1100px,calc(100vw - 24px))}.structure-generator-modal>header{align-items:flex-start;margin-bottom:20px}.structure-generator-modal>header p{margin:7px 0 0;color:var(--muted);font-size:10px}.unit-type-form-modal>header p{margin:7px 0 0;color:var(--muted);font-size:10px}.generator-config-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;padding:14px;border:1px solid #dbe5f4;border-radius:10px;background:#f7faff}.generator-config-grid label{margin:0}.generator-checkbox{display:flex!important;align-items:flex-start;gap:9px;margin:15px 0 20px!important;padding:11px 13px;border:1px solid #dfe8f7;border-radius:9px;background:#fbfdff}.generator-checkbox>input{flex:0 0 auto;width:16px!important;height:16px;margin:1px 0 0!important;accent-color:#6741c4}.generator-checkbox span,.generator-checkbox strong,.generator-checkbox small{display:block}.generator-checkbox strong{color:#283c5c;font-size:10px}.generator-checkbox small{margin-top:3px;color:var(--muted);font-size:9px;font-weight:400}.generator-available-types{margin-top:18px}.generator-unit-type-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;max-height:150px;padding:2px;overflow-y:auto}.generator-unit-type-option{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:left;color:#586b87}.generator-unit-type-choice{display:flex;align-items:flex-start;flex:1;gap:8px;min-width:0;padding:9px 0 9px 10px;border:0;background:transparent;text-align:left;color:inherit}.generator-unit-type-option:hover,.generator-unit-type-option.is-selected{border-color:#b9a1ef;background:#faf8ff}.generator-unit-type-option.is-selected{box-shadow:inset 3px 0 #6741c4}.generator-unit-type-choice>span:last-child,.generator-unit-type-choice strong,.generator-unit-type-choice small{display:block;min-width:0}.generator-unit-type-option strong{overflow-wrap:anywhere;color:#2d4262;font-size:9px}.generator-unit-type-option small{margin-top:4px;overflow-wrap:anywhere;color:var(--muted);font-size:8px;font-weight:400;line-height:1.35}.generator-unit-type-radio{flex:0 0 auto;width:14px;height:14px;margin-top:1px;border:1px solid #b8c4d6;border-radius:50%;background:#fff}.generator-unit-type-option.is-selected .generator-unit-type-radio{border:4px solid #6741c4}.generator-unit-type-actions{display:flex;align-items:center;gap:2px;padding:0 6px 0 2px}.generator-unit-type-actions button{display:grid;place-items:center;width:26px;height:26px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#8190a5}.generator-unit-type-actions button:hover{border-color:#cbd8ea;background:#eef4ff;color:#245aab}.generator-unit-type-actions button:last-child:hover{border-color:#efcaca;background:#fff1f1;color:#b42318}.generator-no-unit-types{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px dashed #cfd9e8;border-radius:8px;color:var(--muted);font-size:9px}.generator-customization,.generator-preview{margin-top:18px}.generator-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:9px}.generator-section-heading small,.generator-section-heading strong{display:block}.generator-section-heading small{margin-bottom:4px;color:#8b98ac;font-size:8px;font-weight:800;letter-spacing:.8px}.generator-section-heading strong{color:#233653;font-size:11px}.generator-section-heading>span,.generator-heading-actions>span{flex:0 0 auto;color:#6741c4;font-size:9px;font-weight:750}.generator-heading-actions{display:flex;align-items:center;gap:10px}.generator-add-unit-type{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border:1px solid #c9b8f5;border-radius:7px;background:#f7f3ff;color:#6741c4;font-size:8px;font-weight:750}.generator-add-unit-type:hover{border-color:#9f82e8;background:#eee6ff;color:#5130a5}.generator-add-unit-type:disabled{cursor:not-allowed;opacity:.55}.generator-floor-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:310px;padding:2px 2px 4px;overflow-y:auto}.generator-floor-card{min-width:0;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff}.generator-floor-card>header{display:flex;align-items:end;justify-content:space-between;gap:8px;margin-bottom:9px}.generator-floor-card>header label{flex:1;min-width:0;margin:0;color:#70819a;font-size:8px}.generator-floor-card>header label>span{display:block;margin-bottom:4px}.generator-floor-card>header input{width:100%;margin:0;padding:7px 8px;border:1px solid #dfe3e9;border-radius:6px;color:#253957;font-size:10px;font-weight:700}.generator-floor-total{flex:0 0 auto;color:#8b98ac;font-size:8px}.generator-item-list{display:grid;gap:6px}.generator-item-config{display:grid;gap:5px;padding-bottom:4px;border-bottom:1px solid #edf1f6}.generator-item-config:last-child{padding-bottom:0;border-bottom:0}.generator-item-row{display:grid;grid-template-columns:minmax(112px,1fr) minmax(130px,1fr) minmax(90px,1fr) 48px 27px;gap:5px;align-items:center}.generator-item-row select,.generator-item-row input{min-width:0;width:100%;height:29px;margin:0;padding:5px 7px;border:1px solid #e0e5ed;border-radius:6px;background:#fff;color:#485d7b;font-size:8px}.generator-unit-type-placeholder{display:block;min-width:0}.generator-item-row .generator-quantity-input{text-align:center}.generator-customize-units{justify-self:start;padding:0;border:0;background:transparent;color:#6741c4;font-size:8px;font-weight:750}.generator-customize-units:hover{color:#5130a5}.generator-individual-units{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px;padding:7px 8px;border:1px solid #e6def8;border-radius:7px;background:#fbfaff}.generator-individual-units label{display:flex;align-items:center;gap:6px;min-width:0;margin:0;color:#667793;font-size:8px;font-weight:650}.generator-individual-units label>span{flex:0 1 84px;min-width:0;overflow-wrap:anywhere}.generator-individual-units select{flex:1;min-width:0;width:auto;height:27px;margin:0;padding:4px 6px;border:1px solid #e0e5ed;border-radius:6px;background:#fff;color:#485d7b;font-size:8px}.generator-remove-item{display:grid;place-items:center;width:27px;height:29px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#9aa7b9}.generator-remove-item:hover:not(:disabled){border-color:#efcaca;background:#fff1f1;color:#b42318}.generator-remove-item:disabled{cursor:not-allowed;opacity:.35}.generator-add-item{display:inline-flex;align-items:center;gap:4px;margin-top:9px;padding:0;border:0;background:transparent;color:#6741c4;font-size:8px;font-weight:750}.generator-add-item:hover{color:#5130a5}.generator-preview{padding:13px 14px;border:1px solid #e1d9f7;border-radius:10px;background:linear-gradient(135deg,#fbfaff,#f7f4ff)}.generator-preview-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.generator-preview-list article{min-width:0;padding:8px 9px;border:1px solid #e6def8;border-radius:7px;background:#fff}.generator-preview-list article>strong,.generator-preview-list article>span,.generator-preview-list article>em{display:block}.generator-preview-list article>strong{margin-bottom:6px;overflow-wrap:anywhere;color:#394d6e;font-size:9px}.generator-preview-list article>span,.generator-preview-list article>em,.generator-preview-list>small{color:#71819a;font-size:8px;font-style:normal;line-height:1.6}.generator-preview-list article i{color:#aa8de4;font-style:normal}.generator-preview-list>small{grid-column:1 / -1;margin-top:-2px}.structure-generator-error{margin-top:13px}.structure-generator-submit{background:#6741c4;box-shadow:0 4px 12px #6741c435}.structure-generator-submit:hover{background:#5130a5}.structure-generator-submit:disabled{cursor:wait;opacity:.7}.unit-type-form-backdrop{z-index:130}.unit-type-form-modal{width:min(680px,calc(100vw - 24px))}.unit-type-number-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.unit-type-number-grid label{min-width:0}.unit-type-form-error{margin-top:12px}.generator-planning-checkbox{margin:18px 0}.generator-planning-checkbox-legacy{display:none!important}.unit-type-composition{display:grid;gap:12px;margin:18px 0;padding:14px;border:1px solid var(--border-color, #e5e7eb);border-radius:10px;background:var(--surface-muted, #f8fafc)}.unit-type-composition-heading,.unit-type-room-fields,.unit-type-activity-heading{display:flex;align-items:center;gap:10px}.unit-type-composition-heading{justify-content:space-between}.unit-type-composition-heading>div,.unit-type-activity-heading{display:grid;gap:3px}.unit-type-composition-heading small{color:var(--muted)}.unit-type-room-list{display:grid;gap:10px}.unit-type-general-activities{display:grid;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border-color, #e5e7eb)}.unit-type-general-activities>.unit-type-activity-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.unit-type-general-suggestions{display:grid;gap:7px;padding:9px 10px;border:1px solid #dfe6f0;border-radius:8px;background:#fff}.unit-type-general-suggestions>small{color:var(--muted)}.unit-type-suggestion-list{display:grid;gap:6px}.unit-type-suggestion-option{display:flex;align-items:center;gap:7px;margin:0;color:#304563;font-size:11px;font-weight:500}.unit-type-suggestion-option input[type=checkbox]{display:inline-block!important;flex:0 0 14px;width:14px!important;min-width:14px;height:14px;margin:0!important;padding:0!important;accent-color:var(--primary, #2563eb)}.unit-type-suggestion-option span{display:inline-block;margin-left:5px}.unit-type-general-toggle{display:flex;align-items:flex-start;flex:1;gap:6px;min-width:0;padding:0;border:0;background:transparent;color:#304563;text-align:left}.unit-type-general-toggle svg{flex:0 0 auto;margin-top:1px;color:#7387a4}.unit-type-general-toggle>span{display:grid;gap:3px;min-width:0}.unit-type-general-toggle strong,.unit-type-general-toggle small{display:block}.unit-type-general-toggle small{color:var(--muted)}.unit-type-item-count{flex:0 0 auto;color:var(--muted);font-size:9px;font-weight:500}.unit-type-collapsible-list{display:grid;gap:6px}.unit-type-activity-card{overflow:hidden;border:1px solid #dfe6f0;border-radius:8px;background:#fff}.unit-type-activity-card.is-expanded{border-color:#c9d7eb}.unit-type-collapsible-row,.unit-type-room-summary{display:flex;align-items:center;justify-content:space-between;gap:10px}.unit-type-collapsible-row{min-height:38px;padding:4px 6px 4px 9px}.unit-type-collapsible-trigger{display:flex;align-items:center;flex:1;gap:6px;min-width:0;padding:5px 0;border:0;background:transparent;color:#304563;text-align:left}.unit-type-collapsible-trigger svg{flex:0 0 auto;color:#7387a4}.unit-type-collapsible-trigger strong{overflow:hidden;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.unit-type-collapsible-content{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:7px;padding:0 10px 10px 29px}.unit-type-delete-button,.unit-type-edit-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:5px;min-height:29px;padding:5px 8px;border-radius:7px;font-size:9px;font-weight:650;cursor:pointer}.unit-type-delete-button{border:1px solid #f1caca;background:#fff5f5;color:#b42318}.unit-type-delete-button:hover{border-color:#e48b8b;background:#ffe7e7;color:#8f1d1d}.unit-type-edit-button{border:1px solid #d4dff0;background:#f7faff;color:#315d9d}.unit-type-edit-button:hover{border-color:#aebfda;background:#edf4ff}.unit-type-room-card{display:grid;gap:0;overflow:hidden;border:1px solid var(--border-color, #e5e7eb);border-radius:8px;background:var(--surface, #fff)}.unit-type-room-section{display:grid;gap:10px}.unit-type-room-section-heading,.unit-type-room-editor-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.unit-type-room-section-heading>div{display:grid;gap:3px}.unit-type-room-section-heading strong{color:#304563;font-size:10px}.unit-type-room-section-heading small{color:var(--muted);font-size:9px}.unit-type-room-summary{min-height:45px;padding:7px 8px 7px 12px}.unit-type-room-summary>strong{min-width:0;overflow:hidden;color:#304563;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.unit-type-row-actions{display:flex;align-items:center;gap:5px}.unit-type-room-editor{display:grid;gap:10px;padding:0 12px 12px;border-top:1px solid #edf1f6}.unit-type-room-editor-heading{padding-top:10px}.unit-type-room-editor-heading strong{color:#304563;font-size:10px}.unit-type-room-form-error{margin:0}.unit-type-room-form-actions{display:flex;justify-content:flex-end;gap:7px;padding-top:2px}.unit-type-room-editor>label{margin-bottom:0}.unit-type-room-fields label,.unit-type-activity-row input{flex:1}.unit-type-activity-list{display:grid;gap:7px;padding-left:12px;border-left:2px solid var(--border-color, #e5e7eb)}.unit-type-activity-heading{grid-template-columns:1fr auto}.unit-type-activity-row{display:flex;gap:7px}.unit-type-activity-row input:first-child{flex:.8}.unit-type-activity-row input:nth-child(2){flex:1.2}.link-button{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:transparent;color:var(--primary, #2563eb);cursor:pointer}@media(max-width:700px){.unit-type-collapsible-content{grid-template-columns:1fr}.unit-type-room-fields,.unit-type-activity-row{align-items:stretch;flex-direction:column}}.structure-parent-hint{margin:-4px 0 14px;color:var(--muted);font-size:9px}.structure-prepared-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #cbdcf8;border-radius:9px;background:#f3f7ff;color:#31527f;font-size:10px}.structure-prepared-notice>div{display:grid;gap:3px}.structure-prepared-notice span{color:#657895}.structure-prepared-notice button{flex:0 0 auto}.structure-modal-feedback{margin:0 0 14px}.project-detail-planning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}.project-detail-planning-grid>.panel>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--line)}.project-detail-planning-grid>.panel>header h3{margin:4px 0 0}.project-detail-planning-grid>.panel>header .secondary{width:auto;white-space:nowrap}.project-planning-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:10px 18px;border-bottom:1px solid var(--line)}.project-planning-row:last-of-type{border-bottom:0}.project-planning-row strong,.project-planning-row small{display:block}.project-planning-row strong{color:#233653;font-size:10px}.project-planning-row small{margin-top:3px;color:var(--muted);font-size:8px}.project-planning-row>b{flex:0 0 auto;color:var(--blue);font-size:10px}.project-details-page>.project-structure-section{margin-bottom:14px}@media(max-width:760px){.project-detail-planning-grid{grid-template-columns:1fr}.project-details-page>.page-header .page-actions{flex-wrap:nowrap;gap:6px}.project-details-page>.page-header .page-actions button{flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:0}.project-details-page>.page-header .page-actions button svg{width:17px;height:17px}.project-action-label{display:none}}@media(max-width:600px){.project-structure-section>header,.attachment-section>header{height:auto;min-height:0;padding:12px 18px}.project-structure-section>header{align-items:flex-start;flex-direction:column;gap:8px}.attachment-section>header>div{gap:4px}.attachment-section>header>div>span{line-height:1.4}.structure-tree-children{margin-left:10px;padding-left:7px}.structure-modal-header-actions{align-items:flex-end;flex-direction:column-reverse}.generator-config-grid,.generator-floor-list,.generator-preview-list,.generator-unit-type-options{grid-template-columns:1fr}.generator-floor-list{max-height:290px}.generator-heading-actions{align-items:flex-end;flex-direction:column-reverse;gap:5px}.generator-no-unit-types{align-items:flex-start;flex-direction:column}.generator-item-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 42px 27px}.generator-individual-units{grid-template-columns:1fr}.unit-type-number-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.structure-generator-modal>header h2{max-width:220px;font-size:17px}}.notification-category-icon.planning{background:#e9efff;color:#315fc4}.planning-workspace{display:grid;grid-template-columns:var(--planning-sidebar-width, 245px) 15px minmax(0,1fr);gap:0;align-items:start}.planning-scopes{overflow:hidden}.planning-scopes>header{padding:0 12px 0 15px}.planning-scopes>header>div{display:flex;align-items:center;gap:7px}.planning-sidebar-resize-handle{position:relative;align-self:stretch;min-height:100%;cursor:col-resize;touch-action:none}.planning-sidebar-resize-handle:before{content:"";position:absolute;top:0;bottom:0;left:7px;width:1px;background:transparent;transition:background .15s ease}.planning-sidebar-resize-handle:hover:before,.planning-sidebar-resize-handle:focus-visible:before,.planning-sidebar-resize-handle:active:before{background:var(--blue)}.planning-scopes .icon{width:29px;height:29px}.planning-scope{width:100%;min-width:0;border:0;border-bottom:1px solid var(--line);background:transparent;color:#59677b;padding:12px 11px;display:flex;align-items:center;gap:9px;text-align:left}.planning-scope:hover{background:#f4f7fb}.planning-scope.active{background:#eaf2ff;color:#205cb9;box-shadow:inset 3px 0 var(--blue)}.planning-scope span,.planning-scope strong,.planning-scope small{display:block;min-width:0}.planning-scope strong{color:inherit;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-scope small{color:var(--muted);font-size:8px;margin-top:3px}.block-scope-header:has(>.tree-disclosure) .planning-scope{padding-left:34px}.planning-sidebar-phase{position:relative}.phase-form-error{margin-top:12px}.planning-ordering-error{margin:12px 0}.planning-sidebar-phase:has(>.phase-disclosure)>button:not(.phase-disclosure){padding-left:25px}.tree-disclosure.phase-disclosure{left:2px;width:18px;height:18px}.block-scope-header .planning-scope{padding-right:96px;min-height:58px}.planning-scope-row{position:relative}.planning-scope-row .planning-scope{padding-right:38px}.planning-general-scope-row .planning-scope{padding-left:34px;padding-right:42px}.planning-physical-scopes{border-top:1px solid var(--line)}.planning-physical-scopes-label{padding:12px 12px 6px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.planning-general-add{position:absolute;z-index:3;right:8px;top:50%;transform:translateY(-50%);width:25px;height:25px;padding:0;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:6px;background:var(--surface, #fff);color:var(--blue)}.planning-general-add:hover{background:#eaf2ff;border-color:var(--blue)}.planning-general-toggle{display:grid;position:absolute;z-index:3;left:8px;right:auto;top:50%;transform:translateY(-50%);width:20px;height:20px;padding:0;place-items:center;border:0;border-radius:4px;background:transparent;color:#64748b}.planning-general-toggle:hover{background:#dfe9f7;color:#174f9b}.planning-general-scope-row:not(:has(.planning-general-add)) .planning-general-toggle{left:8px;right:auto}.planning-sidebar-general-phases{display:block}html[data-theme=dark] .planning-general-add:hover{background:#293a56}.delete-planning-item{position:absolute;z-index:2;right:36px;top:50%;transform:translateY(-50%);width:23px;height:23px;padding:0;display:grid;place-items:center;border:1px solid color-mix(in srgb,#dc2626 45%,var(--line));border-radius:6px;background:var(--surface, #fff);color:#dc2626}.block-scope-row:not(:has(.add-subblock)) .delete-planning-item{right:8px}.planning-scope-row .delete-planning-item{right:8px}.delete-planning-item:hover:not(:disabled),.phase-delete-button:hover:not(:disabled){background:#dc2626;border-color:#dc2626;color:#fff}.phase-delete-button{color:#dc2626;border-color:color-mix(in srgb,#dc2626 45%,var(--line))}.planning-content{min-width:0;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.planning-content>.phase-table{min-width:920px}.mobile-planning-index{display:none}.phase-table>.table-head{display:grid;grid-template-columns:44px minmax(220px,1.4fr) minmax(190px,.8fr) minmax(220px,1fr) minmax(120px,.7fr);gap:12px;height:38px;background:#f8f9fb;font-size:8px;font-weight:750;color:#828b99}.phase-table>.table-head>span:first-child{grid-column:1 / 3}.phase-table>.table-head>span:nth-child(2){grid-column:3}.phase-table>.table-head>span:nth-child(3){grid-column:4}.phase-table>.table-head>span:nth-child(4){grid-column:5}.phase-row{display:grid;grid-template-columns:44px minmax(220px,1.4fr) minmax(190px,.8fr) minmax(220px,1fr) minmax(120px,.7fr);gap:12px;align-items:center;padding:14px 17px;border-bottom:1px solid var(--line);font-size:9px}.phase-row.clickable{cursor:pointer;transition:background .15s ease}.phase-row-name{min-width:0;display:flex;align-items:center;gap:8px;grid-column:1 / 3}.phase-row-name>div{min-width:0}.phase-row-name .planning-main-drag-handle{margin-left:0}.phase-row-name .phase-chevron{flex:0 0 16px}.phase-row-name .central-tree-disclosure{flex:0 0 25px}.phase-row.clickable:hover,.phase-row.clickable:focus-visible{background:#f8fafc;outline:none}.phase-row.subphase-row{position:relative;width:100%;margin-left:0;box-sizing:border-box;background:#f7f9fc;border-left:0}.phase-row.subphase-row:before{content:"";position:absolute;inset:0 auto 0 calc(17px + (18px * var(--phase-depth)));width:3px;background:#8aa4d6}.phase-row.subphase-row>div:first-of-type{padding-left:calc(24px * var(--phase-depth))}.phase-row.subphase-row:hover,.phase-row.subphase-row:focus-visible{background:#eef3fb}.phase-row.subphase-row>b{color:#42679f;font-size:8px}.phase-row.subphase-row>div:first-of-type strong{color:#385578}.phase-row.subphase-row>div:first-of-type small{color:#6682a8;font-weight:700;letter-spacing:.04em}.phase-chevron{color:#98a1af}.planning-page .modal{position:relative}.planning-page .modal>header{padding-right:48px}.planning-page .modal .planning-modal-close{position:absolute;top:14px;right:14px;z-index:20;width:34px;min-width:34px;height:34px;padding:0;display:grid;place-items:center;border:1px solid #b91c1c;border-radius:50%;background:#dc2626;color:#fff;box-shadow:0 5px 14px #b91c1c47;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.planning-page .report-modal>.report-toolbar{padding-right:76px}.planning-page .report-modal .planning-modal-close{top:17px;right:16px}.planning-page .report-toolbar .report-print{align-items:center;justify-content:center;line-height:1}.planning-page .modal .planning-modal-close:hover{border-color:#991b1b;background:#b91c1c;box-shadow:0 6px 16px #991b1b57;transform:translateY(-1px)}.planning-page .modal .planning-modal-close:focus-visible{outline:3px solid rgb(239 68 68 / 30%);outline-offset:2px}html[data-theme=dark] .planning-page .modal .planning-modal-close{border-color:#b91c1c;background:#dc2626;color:#fff}html[data-theme=dark] .planning-page .modal .planning-modal-close:hover{border-color:#991b1b;background:#b91c1c}.modal.phase-detail-modal{box-sizing:border-box;flex:0 0 auto;align-self:flex-start;width:min(1160px,calc(100vw - 48px));height:calc(100dvh - 160px);max-height:calc(100dvh - 160px);min-height:0;margin:0;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;container-type:inline-size;container-name:phase-detail}.phase-detail-backdrop{box-sizing:border-box;display:flex;justify-content:center;align-items:flex-start;min-height:100dvh;padding:64px 24px 96px;overflow:auto}.phase-detail-modal>header{align-items:flex-start;gap:18px;flex:0 0 auto}.phase-detail-modal>header>div:first-child{min-width:0}.phase-detail-modal>header h2{overflow-wrap:anywhere}.phase-detail-layout{min-width:0;display:grid;grid-template-columns:minmax(520px,1fr) minmax(280px,310px);gap:18px;align-items:start;min-height:0;flex:0 0 auto;max-width:100%;overflow:visible;padding-right:5px}.phase-detail-main{min-width:0;max-width:100%;overflow:visible}.phase-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.phase-detail-summary>span{min-width:0;min-height:76px;padding:14px 15px;display:flex;flex-direction:column;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:9px;background:#f8f9fb}.phase-detail-summary small,.phase-detail-summary strong{display:block}.phase-detail-summary small{color:#7d8796;font-size:8px;font-weight:700;letter-spacing:.45px;text-transform:uppercase}.phase-detail-summary strong{color:#172238;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.phase-history{border:1px solid var(--line);border-radius:10px;overflow:hidden;max-height:58vh;overflow-y:auto;background:#f8fafc}.phase-history>header{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:9px;padding:10px 11px;background:#edf3fb;border-bottom:1px solid var(--line)}.phase-history header strong,.phase-history header small{display:block}.phase-history header strong{font-size:10px}.phase-history header small{color:var(--muted);font-size:8px;margin-top:2px}.phase-history article{padding:10px 11px;border-bottom:1px solid var(--line)}.phase-description{margin-bottom:14px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fbfcfe}.phase-description>small{display:block;color:var(--muted);font-size:8px;font-weight:750;letter-spacing:.7px;margin-bottom:5px}.phase-description>p{color:#667286;font-size:10px;line-height:1.6;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.phase-detail-actions{display:flex;align-items:center;gap:7px}.modal .phase-detail-actions .secondary{width:auto;height:29px;border-radius:7px;display:flex;align-items:center;gap:5px}.modal .phase-detail-actions .phase-back-button{border-color:#c9d4e5;background:#f5f8fc;color:#33445d;font-weight:650}.modal .phase-detail-actions .phase-back-button:hover{border-color:#9fb3d0;background:#eaf0f8;color:#182a45}html[data-theme=dark] .modal .phase-detail-actions .phase-back-button{border-color:#52627a;background:#273348;color:#e3eaf5}html[data-theme=dark] .modal .phase-detail-actions .phase-back-button:hover{border-color:#71839e;background:#344158;color:#fff}.phase-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;background:transparent}.phase-detail-grid>span{min-width:0;min-height:76px;padding:14px 15px;border:1px solid var(--line);border-radius:8px;background:#f8f9fb}.phase-detail-grid b{overflow-wrap:anywhere;line-height:1.4}.phase-detail-grid>span,.phase-detail-grid small,.phase-detail-grid b{display:block}.phase-detail-grid small{color:#8992a0;font-size:8px;margin-bottom:8px;font-weight:700;letter-spacing:.35px;text-transform:uppercase}.phase-detail-progress-value{color:var(--blue);font-size:16px}@container phase-detail (max-width: 760px){.phase-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.phase-detail-grid>span{padding:13px 12px}.phase-detail-grid small,.phase-detail-grid b{overflow-wrap:anywhere}}@container phase-detail (max-width: 500px){.phase-detail-grid{grid-template-columns:1fr}}.subphase-heading{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:12px;flex-wrap:wrap}.subphase-heading h3{font-size:13px;margin:0}.subphase-heading>div>small{display:block;color:var(--muted);font-size:8px;margin-top:3px}.subphase-list article{display:grid;grid-template-columns:minmax(0,1fr) 55px 105px 18px;align-items:center;gap:10px;border-top:1px solid var(--line);padding:11px 2px;font-size:9px}.subphase-list .subphase-detail-row{position:relative;width:calc(100% - (20px * var(--subphase-depth)));margin-left:calc(20px * var(--subphase-depth));padding:11px 9px 11px 14px;border-left:3px solid #8aa4d6;background:#f7f9fc;cursor:pointer;transition:background .15s ease,border-color .15s ease}.subphase-list .subphase-detail-row:hover,.subphase-list .subphase-detail-row:focus-visible{border-left-color:var(--blue);background:#eef3fb;outline:none}.phase-detail-modal .subphase-list .phase-child-row{width:calc(100% - (28px * var(--subphase-depth)));margin-left:calc(28px * var(--subphase-depth))}.block-phase-tree-node{width:100%}.block-phase-list .block-child-row{grid-template-columns:minmax(0,1fr) 28px}.block-phase-disclosure{grid-column:4;grid-row:1 / span 2;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:6px;color:var(--muted);background:transparent;cursor:pointer}.block-phase-disclosure:hover,.block-phase-disclosure:focus-visible{color:var(--blue);background:#e7eefb;outline:none}.block-phase-list .block-child-row .block-phase-disclosure{grid-column:2}.subphase-detail-row>svg,.block-phase-disclosure svg{color:var(--muted)}.subphase-empty{padding:18px 12px;border:1px dashed var(--line);border-radius:8px;color:var(--muted);font-size:9px;text-align:center}.phase-detail-actions{flex:0 0 auto}.subphase-list article small,.subphase-list article b{display:block}.subphase-list article small{color:#8992a0;margin-top:3px}.phase-form-modal{width:min(620px,100%)}.phase-form-context{margin:5px 0 0;color:var(--muted);font-size:11px;font-weight:600}.date-field-control{position:relative;display:block}.date-field-control input{padding-right:40px;appearance:none;-webkit-appearance:none}.date-field-control .date-field-native{position:absolute;left:0;bottom:0;width:1px!important;height:1px!important;margin:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none}.date-field-control .date-field-display{cursor:pointer}.date-field-control input[type=date]::-webkit-calendar-picker-indicator{display:none!important;width:0;height:0;opacity:0!important;pointer-events:none;background:none!important}.date-field-control input[type=date]::-moz-calendar-picker-indicator{display:none!important;opacity:0!important;pointer-events:none}.date-picker-button{position:absolute;top:50%;right:6px;z-index:1;width:28px;height:28px;display:grid;place-items:center;padding:0;border:1px solid #b8d2f5;border-radius:7px;background:#eaf2ff;color:#245ec7;transform:translateY(-50%)}.date-picker-button:hover,.date-picker-button:focus-visible{border-color:#8fb5eb;background:#dceaff;color:#174d9c}html[data-theme=dark] .date-picker-button{border-color:#486a9d;background:#263b5f;color:#a9c8ff}html[data-theme=dark] .date-picker-button:hover,html[data-theme=dark] .date-picker-button:focus-visible{border-color:#7098d3;background:#304a73;color:#d7e8ff}.phase-form-backdrop{z-index:60}.phase-form-backdrop.over-element-detail{z-index:90}.phase-row>div>strong,.phase-row>div>small{display:block}.phase-row>div>small{font-size:8px;color:#89919e;margin-top:3px}.phase-progress{display:flex;align-items:center;gap:8px}.phase-progress .progress{margin:0;flex:1;display:block}html body .app :is(.phase-history,.purchase-history,.stock-history){font-size:var(--font-body)}html body .app :is(.phase-history,.purchase-history,.stock-history) header strong{font-size:var(--font-body);font-weight:var(--weight-semibold)}html body .app :is(.crud-table,.phase-table,.admin-list){font-size:var(--font-body)}html body .app :is(.crud-table,.phase-table,.admin-list) small{font-size:var(--font-small)}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) .panel>header h3{font-size:var(--font-section)!important;font-weight:var(--weight-semibold)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) .panel>header :is(span,a),:is(.commercial-page,.procurement-page,.planning-page,.settings-page) .badge{font-size:var(--font-small)!important;font-weight:var(--weight-medium)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(article,.table-head,.phase-row,.planning-scope){font-size:var(--font-body)!important;font-weight:var(--weight-regular)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(article,.table-head,.phase-row,.planning-scope) :is(strong,b){font-size:var(--font-body)!important;font-weight:var(--weight-semibold)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(article,.table-head,.phase-row,.planning-scope) :is(small,em){font-size:var(--font-small)!important;font-weight:var(--weight-regular)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(button,input,select,textarea){font-size:var(--font-body)!important;font-weight:var(--weight-medium)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) label{font-size:var(--font-small)!important;font-weight:var(--weight-medium)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(.phase-history,.project-history) :is(strong,b){font-size:var(--font-body)!important;font-weight:var(--weight-semibold)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) :is(.phase-history,.project-history) :is(small,time,.history-action,.history-change){font-size:var(--font-small)!important;font-weight:var(--weight-regular)!important}:is(.commercial-page,.procurement-page,.planning-page,.settings-page) .modal h2{font-size:20px!important;font-weight:var(--weight-bold)!important}html[data-theme=dark] .phase-table>.table-head,html[data-theme=dark] .phase-row.subphase-row,html[data-theme=dark] .phase-detail-grid,html[data-theme=dark] .project-detail-progress{background:#202b3d}html[data-theme=dark] .subphase-list .subphase-detail-row{background:#202b3d}html[data-theme=dark] .subphase-list .subphase-detail-row:hover,html[data-theme=dark] .subphase-list .subphase-detail-row:focus-visible{background:#253247}html[data-theme=dark] .planning-scope{color:#c2ccda}html[data-theme=dark] .phase-history{background:#151f30}html[data-theme=dark] .phase-description,html[data-theme=dark] .phase-detail-grid>span{background:#202b3d}html[data-theme=dark] .phase-description>p{color:#c5cedb}html[data-theme=dark] .phase-detail-grid{background:transparent}html[data-theme=dark] .phase-history>header{background:#202d42}html[data-theme=dark] .planning-scope:hover{background:#222e42}html[data-theme=dark] .planning-scope.active{background:#203654;color:#9fc1ff}html[data-theme=dark] .phase-row.clickable:hover,html[data-theme=dark] .phase-row.clickable:focus-visible,html[data-theme=dark] .progress-row.clickable:hover,html[data-theme=dark] .progress-row.clickable:focus-visible{background:#253247}html[data-theme=dark] h1,html[data-theme=dark] h2,html[data-theme=dark] h3,html[data-theme=dark] h4,html[data-theme=dark] strong,html[data-theme=dark] .finance strong,html[data-theme=dark] .phase-row.subphase-row>div:first-of-type strong{color:#f1f5fa}@container phase-detail (max-width: 850px){.phase-detail-layout{grid-template-columns:minmax(0,1fr)}.phase-history{max-height:280px}}@media(max-width:1100px){.phase-detail-layout{grid-template-columns:minmax(0,1fr)}.phase-detail-modal>header{flex-direction:column;gap:12px}.phase-detail-actions{width:80%;flex-wrap:wrap;justify-content:flex-start}.phase-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.subphase-heading{align-items:flex-start}.subphase-heading>button{max-width:100%;white-space:normal}}@media(max-width:1400px){.phase-detail-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.phase-detail-layout{grid-template-columns:1fr}.phase-history{max-height:280px}}@media(max-width:720px){.planning-page .modal .phase-detail-actions .secondary{width:34px;min-width:34px;height:34px;padding:0;justify-content:center;gap:0}.phase-detail-actions .phase-detail-action-label{display:none}.phase-detail-actions .secondary svg{width:16px;height:16px}}@media(max-width:700px){.planning-workspace{grid-template-columns:minmax(0,1fr)}.planning-general-toggle{display:grid}.planning-general-scope-row .planning-scope{padding-left:34px;padding-right:72px}.planning-sidebar-general-phases{display:block}.planning-sidebar-resize-handle{display:none}.planning-scopes{width:100%;max-width:none}.planning-content,.planning-workspace.mobile-planning-open .planning-scopes{display:none}.planning-content.mobile-planning-visible{display:block;overflow:visible}.planning-content.mobile-planning-visible .scope-heading,.planning-content.mobile-planning-visible .phase-table{display:none}.mobile-planning-index{display:block;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fff}.mobile-planning-index>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--line)}.mobile-planning-index>header small,.mobile-planning-index>header h2{display:block}.mobile-planning-index>header small{color:var(--muted);font-size:8px;letter-spacing:.8px}.mobile-planning-index>header h2{margin:4px 0 0;color:var(--text);font-size:18px}.mobile-planning-index>header .secondary{width:auto;min-width:0;min-height:34px;padding:8px 10px}.mobile-planning-index-item{width:100%;min-height:64px;display:grid;grid-template-columns:30px minmax(0,1fr) 17px;align-items:center;gap:11px;padding:10px 16px;padding-left:calc(16px + (var(--element-depth, 0) * 20px));border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--text);text-align:left}.mobile-planning-index-content{min-width:0;display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:11px;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.mobile-planning-element-item{grid-template-columns:minmax(0,1fr) 34px}.mobile-planning-index-arrow{width:34px;height:34px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--muted)}.mobile-planning-index-item:last-child{border-bottom:0}.mobile-planning-index-item:hover,.mobile-planning-index-item:focus-visible{background:#f7f9fc;outline:none}.mobile-planning-index-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#edf2f8;color:#5372a5}.mobile-planning-index-content>span:nth-child(2),.mobile-planning-index-content strong,.mobile-planning-index-content small{min-width:0;display:block}.mobile-planning-index-content strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.mobile-planning-index-content small{margin-top:3px;color:var(--muted);font-size:9px}.mobile-planning-index-arrow svg{color:var(--muted)}}@media(max-width:480px){.phase-detail-backdrop{align-items:flex-start;padding:56px 12px 96px}.modal.phase-detail-modal{width:100%;height:calc(100dvh - 152px);max-height:calc(100dvh - 152px);padding:16px;border-radius:10px}.phase-detail-modal>header{flex-direction:column;gap:12px}.purchase-detail-modal>header,.stock-detail-modal>header{flex-wrap:wrap}.purchase-detail-header-actions{width:100%;justify-content:space-between}.modal header .purchase-history-toggle{flex:1}.topbar>section>.icon:not(:last-child){display:none}.topbar>section .primary{font-size:0;width:38px;height:38px;padding:0}.topbar>section .primary svg{width:18px;height:18px}.page-header h1{font-size:23px}.page-header p{line-height:1.5}.metrics{gap:9px}.metric{padding:14px}.project-member-row{grid-template-columns:1fr}.member-identity{grid-column:auto}.phase-detail-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.subphase-list article{grid-template-columns:minmax(0,1fr) auto 18px}.block-phase-disclosure{grid-column:3}.block-phase-list .block-child-row{grid-template-columns:minmax(0,1fr) 28px}.block-phase-list .block-child-row .block-phase-disclosure{grid-column:2}.subphase-list article .badge{grid-column:1 / 3}}.planning-header-actions{display:flex;align-items:center;gap:9px}.report-phase-node{margin-top:8px;border-left-color:#2f9c69;background:#fbfefc}.report-phase-node>header span{background:#e7f7ef;color:#18764b}.planning-delete-button{background:#dc2626;border-color:#dc2626;color:#fff}.planning-delete-button:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.planning-history-modal{width:min(820px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 80px));overflow:hidden;display:flex;flex-direction:column}.planning-history-header-actions{position:absolute;top:14px;right:14px;display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:8px;width:max-content}.planning-page .planning-history-modal .planning-history-header-actions .planning-modal-close{position:static;top:auto;right:auto;margin:0}.planning-history-modal header .planning-history-back{width:auto;min-width:0;height:34px;display:inline-flex;align-items:center;gap:4px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--text);white-space:nowrap}.planning-history-description{margin:0 0 16px;color:var(--muted)}.planning-history-list{display:grid;gap:12px;overflow-y:auto;padding-right:5px}.planning-history-list article{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface-soft)}.planning-history-list .history-meta,.planning-history-list .history-change{display:flex;align-items:center;justify-content:space-between;gap:12px}.planning-history-list .history-meta+.history-meta{margin-top:5px;color:var(--muted);font-size:12px}.planning-history-list .history-action{display:inline-block;margin:12px 0 8px;color:var(--primary);font-weight:800}.planning-history-list .history-action.deleted{color:#dc2626}.planning-history-list .history-change{border-top:1px solid var(--border);padding:8px 0;font-size:12px}.planning-history-list del{color:#dc2626}.planning-history-list ins{color:#16845b;text-decoration:none}@media(max-width:900px){.planning-header-actions .planning-delete-button{padding-inline:10px}}.planning-sidebar-phases{margin:5px 8px 9px 29px;border-left:2px solid color-mix(in srgb,var(--blue) 20%,var(--line))}.planning-sidebar-phase{position:relative;display:block;width:100%;min-width:0;box-sizing:border-box;min-height:37px;padding:0 84px 0 10px}.planning-sidebar-phase:before{content:"";position:absolute;left:0;top:50%;width:9px;border-top:1px solid var(--line)}.planning-sidebar-phase.subphase{margin-left:calc(var(--phase-depth, 1) * 20px);width:calc(100% - (var(--phase-depth, 1) * 20px));box-sizing:border-box;border-left:1px dashed var(--line)}.planning-sidebar-phase.subphase>button:not(.tree-disclosure){padding-left:25px}.planning-sidebar-phase>button:not(.tree-disclosure){width:100%;min-width:0;padding:7px 5px 7px 8px;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--text);text-align:left;display:flex;align-items:center;gap:7px}.planning-sidebar-phase>button:not(.tree-disclosure)>span:not(.phase-tree-marker){min-width:0;display:grid;gap:2px}.planning-drag-handle{flex:0 0 auto;display:grid;place-items:center;width:22px;height:26px;padding:0;border:0;border-radius:5px;color:var(--muted);background:transparent;cursor:grab;opacity:.7}.planning-sidebar-phase .planning-drag-handle:hover{color:var(--blue);background:color-mix(in srgb,var(--blue) 8%,transparent);opacity:1}.block-scope-row .planning-drag-handle{position:absolute;z-index:2;top:50%;right:38px;transform:translateY(-50%)}.planning-sidebar-phase>button:not(.tree-disclosure) strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.planning-sidebar-phase>button:not(.tree-disclosure) small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.04em}.phase-tree-marker{flex:0 0 21px;width:21px;height:21px;display:grid;place-items:center;border-radius:6px;background:color-mix(in srgb,var(--blue) 12%,var(--surface));color:var(--blue);font-size:8px;font-weight:800}.planning-sidebar-phase.subphase .phase-tree-marker{background:color-mix(in srgb,#7c3aed 12%,var(--surface));color:#7c3aed}.planning-sidebar-phase>button:last-child{width:23px;height:23px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:var(--blue)}.planning-sidebar-phase>button:not(.tree-disclosure):hover{color:var(--text);background:transparent}.phase-tree-actions,.element-tree-actions{position:absolute;z-index:2;top:50%;right:6px;transform:translateY(-50%);display:flex;flex:0 0 auto;min-width:0;gap:3px}.phase-tree-actions .planning-drag-handle,.element-tree-actions .planning-drag-handle{position:static;z-index:auto;top:auto;right:auto;transform:none;width:23px;min-width:23px;height:23px;border:1px solid var(--line);border-radius:6px;background:var(--surface, #fff);opacity:1}.phase-tree-actions button,.element-tree-actions button{position:static;z-index:auto;top:auto;right:auto;transform:none;width:23px;min-width:23px;height:23px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface, #fff);color:var(--blue)}.phase-tree-actions button:hover,.element-tree-actions button:hover{background:#eaf2ff;border-color:var(--blue)}.phase-tree-actions .delete-planning-item,.element-tree-actions .delete-planning-item{color:var(--blue);border-color:var(--line)}.phase-tree-actions .delete-planning-item:hover,.element-tree-actions .delete-planning-item:hover{background:#eaf2ff;border-color:var(--blue);color:var(--blue)}.block-scope-row:has(.tree-menu[open]),.planning-sidebar-phase:has(.tree-menu[open]){z-index:70}.block-scope-row[draggable=true],.planning-sidebar-phase[draggable=true]{cursor:grab}.block-scope-row[draggable=true]:active,.planning-sidebar-phase[draggable=true]:active{cursor:grabbing}.block-scope-row.is-dragging,.planning-sidebar-phase.is-dragging{opacity:.45}.block-scope-row.is-drag-over>.block-scope-header,.planning-sidebar-phase.is-drag-over{border-radius:7px;outline:2px solid color-mix(in srgb,var(--blue) 55%,transparent);background:color-mix(in srgb,var(--blue) 8%,var(--surface))}.planning-sidebar-phase-tree:last-child .planning-sidebar-phase:last-child .tree-menu>div,.block-scope-row:last-of-type .tree-menu>div{top:auto;bottom:calc(100% + 6px)}.planning-scopes:has(.tree-menu[open]){overflow:visible}.planning-scopes:has(.tree-menu[open]) .block-scope-row:has(.tree-menu[open]),.planning-scopes:has(.tree-menu[open]) .planning-sidebar-phase:has(.tree-menu[open]){position:relative;z-index:100}.planning-scope-tree{margin-bottom:12px;overflow:hidden}.planning-scope-tree>header{display:flex;align-items:center;gap:9px;padding:11px 13px;border-bottom:1px solid var(--line);background:var(--surface-soft)}.planning-scope-tree>header div{display:grid;gap:2px}.planning-scope-tree>header small{color:var(--muted);font-size:9px}.planning-scope-tree>div{display:grid;gap:4px;padding:9px 12px}.planning-block-group-heading{margin-left:calc(var(--group-depth) * 16px);display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:7px 11px;border-bottom:1px solid var(--line);border-left:3px solid color-mix(in srgb,var(--blue) 45%,var(--line));background:color-mix(in srgb,var(--blue) 5%,var(--surface))}.planning-block-group-heading>button{display:flex;align-items:center;gap:9px;min-width:0;padding:3px;border:0;background:transparent;color:var(--text);text-align:left}.planning-block-group-heading>button span{display:grid;gap:2px}.planning-block-group-heading>button small{color:var(--muted);font-size:8px}.planning-block-group-heading .central-block-disclosure{order:-1;flex:0 0 28px;width:28px;height:28px;padding:0;display:grid;place-items:center;border:1px dashed var(--muted);border-radius:50%;background:transparent;color:var(--muted)}.planning-block-group-heading .central-block-disclosure:hover{border-style:solid;color:var(--blue);background:var(--surface-soft)}.phase-row .central-tree-disclosure{width:25px;height:25px;padding:0;display:grid;place-items:center;border:1px dashed var(--muted);border-radius:50%;background:transparent;color:var(--muted)}.phase-row .central-tree-disclosure:hover{border-style:solid;color:var(--blue);background:var(--surface-soft)}.planning-element-list-row{display:grid;grid-template-columns:84px minmax(220px,1.4fr) minmax(190px,.8fr) minmax(220px,1fr) minmax(120px,.7fr);gap:12px;align-items:center;min-height:58px;padding:10px 17px;padding-left:calc(17px + (var(--element-depth, 0) * 24px));border-bottom:1px solid var(--line);border-left:3px solid #8aa4d6;background:#f7f9fc;font-size:9px}.planning-element-list-row:hover,.planning-element-list-row:focus-visible{background:#eef3fb;outline:none}.planning-element-list-row>div,.planning-element-list-row strong,.planning-element-list-row small{min-width:0;display:block}.planning-element-list-row .planning-main-drag-handle{position:absolute;left:29px;top:50%;transform:translateY(-50%)}.planning-element-list-row strong{color:#385578;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.planning-element-list-row small{margin-top:3px;color:#6682a8;font-size:8px;font-weight:700}.planning-element-list-row>span:not(.planning-element-list-marker){color:var(--muted)}.planning-element-list-marker{position:relative;width:25px;height:25px;display:grid!important;place-items:center;border:1px dashed #8aa4d6;border-radius:50%;color:#5578ad}.planning-element-list-marker .central-tree-disclosure{position:absolute;left:55px;width:25px;height:25px;padding:0;display:grid;place-items:center;border:1px dashed var(--muted);border-radius:50%;background:var(--surface, #fff);color:var(--muted)}.planning-element-list-marker .central-tree-disclosure:hover{border-style:solid;color:var(--blue);background:var(--surface-soft)}html[data-theme=dark] .planning-element-list-row{background:#202b3d}html[data-theme=dark] .planning-element-list-row:hover,html[data-theme=dark] .planning-element-list-row:focus-visible{background:#253247}.planning-block-empty-label{color:var(--muted);font-size:8px;font-style:italic}.element-detail-backdrop{z-index:70;align-items:flex-start;padding:34px 16px 40px;overflow-y:auto;background:#0f172aad}.planning-page .report-backdrop{z-index:80}.element-detail-modal{position:relative;width:min(1020px,calc(100vw - 32px));max-height:calc(100dvh - 68px);overflow-y:auto;padding:25px;border-radius:14px;background:#fff}.element-detail-modal .attachment-caption-row{align-items:end!important}.element-detail-modal .attachment-caption-field{margin:0!important}.element-detail-modal .attachment-caption-field input,.element-detail-modal .attachment-submit{height:42px!important;min-height:42px!important;box-sizing:border-box}.element-detail-modal .attachment-submit{align-self:end!important;margin-top:0!important}.element-detail-modal>header{padding-right:48px}.element-detail-modal>header h2{margin-top:6px}.element-detail-actions{display:flex;gap:8px;margin:18px 0}.element-detail-actions button{width:auto}.element-detail-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:22px}.element-detail-metrics article{min-height:76px;padding:15px 16px;border:1px solid var(--line);border-radius:9px;background:#f8f9fb}.element-detail-metrics small,.element-detail-metrics strong{display:block}.element-detail-metrics small{color:#7d8796;font-size:8px;letter-spacing:.45px}.element-detail-metrics strong{margin-top:10px;color:#172238;font-size:14px}.element-detail-section{margin-bottom:16px;overflow:hidden;border:1px solid #dfe6f0;border-radius:14px;background:#fff}.element-detail-section>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}.element-detail-section>header h3{margin:0;font-size:13px}.element-detail-section>header span:not(.element-resource-icon){display:block;margin-top:4px;color:var(--muted);font-size:9px}.element-detail-items{display:grid;padding:0;background:#f7f9fc}.element-detail-item{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;border:0;border-left:3px solid #8aa4d6;border-bottom:1px solid var(--line);background:#f7f9fc;color:var(--text);text-align:left}.element-detail-item:hover,.element-detail-item:focus-visible{background:#f4f7fb;outline:none}.element-detail-item strong,.element-detail-item small{display:block}.element-detail-item strong{font-size:10px}.element-detail-item small{margin-top:3px;color:var(--muted);font-size:8px}.element-detail-item>svg{flex:0 0 auto;color:var(--muted)}.element-detail-item.phase-item{background:#fbfcfe}.element-detail-resource-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.element-detail-resource-grid .element-detail-section{min-width:0}.element-detail-resource-grid .element-detail-section>header{min-height:74px}.element-detail-modal .element-resource-records{margin:0 0 16px}.element-resource-records>.resource-column{min-height:170px}.element-resource-records>.resource-column>.empty-state{min-height:64px;display:grid;place-items:center;padding:0}.element-detail-modal .element-resource-records .resource-column>header .resource-action{width:auto!important;min-width:0!important;height:43px!important;min-height:43px!important;padding:9px 14px!important;gap:7px!important;border-radius:9px!important;font-size:11px!important}.element-detail-modal .element-resource-records .resource-column>header .resource-action svg{width:16px!important;height:16px!important}.element-detail-modal .element-resource-records .resource-action-consumption{width:170px!important}.element-detail-modal .element-resource-records .resource-action-service{width:164px!important}.element-detail-modal .element-resource-records .resource-action-cost{width:134px!important}.resource-column-group>header{margin-bottom:14px}.resource-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.resource-split-column{min-width:0}.resource-split-column>header{min-height:42px;margin-bottom:8px}.resource-split-column>header h4{margin:0;color:var(--text);font-size:12px}.resource-split-column>header .resource-action{width:auto!important;min-width:0!important;height:43px!important;min-height:43px!important;padding:9px 14px!important;border-radius:9px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:7px!important;white-space:nowrap;font-size:11px!important}.resource-split-column>article{border-top:1px solid var(--line);padding:10px 0}.resource-split-column>article>div>small{margin-left:15px}.resource-record-content{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px}.resource-record-content>strong{grid-column:1 / -1}.resource-record-content>small{grid-column:1}.resource-record-content>.resource-approval-status{grid-column:2;margin:0;white-space:nowrap}.resource-forecast-actions{display:flex;gap:6px;margin-top:0;flex-shrink:0}.resource-split-column>article.resource-forecast-record{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px}.resource-forecast-record .resource-record-content{min-width:0}.resource-forecast-actions button{min-height:28px;padding:5px 10px;font-size:10px}.resource-forecast-main{min-width:0;display:flex;align-items:baseline;gap:10px}.resource-forecast-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-forecast-main small{margin:0!important;white-space:nowrap}@media(max-width:1100px){.resource-split-column>article.resource-forecast-record{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px}.resource-forecast-record .resource-forecast-main{grid-column:1 / -1}.resource-forecast-record>.resource-approval-status{grid-column:1;grid-row:2;align-self:center}.resource-forecast-record>.resource-forecast-actions{grid-column:2;grid-row:2;justify-content:flex-end}}@media(max-width:640px){.resource-split{grid-template-columns:1fr}}.element-detail-modal .element-resource-records .resource-action-request{width:150px!important;background:#0f766e!important;border-color:#0f5f59!important;color:#fff!important}.resource-split-column>header .resource-action-consumption{background:#b45309!important;border-color:#92400e!important;color:#fff!important;box-shadow:0 5px 14px #b4530947}.resource-split-column>header .resource-action-service{background:#4f46e5!important;border-color:#4338ca!important;color:#fff!important;box-shadow:0 5px 14px #4f46e547}.resource-split-column>header .resource-action-cost{background:#087f5b!important;border-color:#066747!important;color:#fff!important;box-shadow:0 5px 14px #087f5b47}.resource-split-column>header .resource-action-request:hover{background:#0f5f59!important}.resource-split-column>header .resource-action-consumption:hover{background:#92400e!important}.resource-split-column>header .resource-action-service:hover{background:#4338ca!important}.resource-split-column>header .resource-action-cost:hover{background:#066747!important}.element-detail-section .element-resource-action{box-sizing:border-box;flex:0 0 auto;height:43px;min-height:43px!important;padding:9px 14px!important;border:1px solid transparent!important;border-radius:9px!important;display:inline-flex!important;align-items:center;justify-content:center;gap:6px;color:#fff!important;font-size:11px!important;font-weight:700!important;line-height:1;white-space:nowrap;box-shadow:0 5px 14px #0f172a29}.element-detail-section .element-resource-action-consumption{width:170px!important;background:#b45309!important;border-color:#92400e!important;box-shadow:0 5px 14px #b4530947}.element-detail-section .element-resource-action-service{width:164px!important;background:#4f46e5!important;border-color:#4338ca!important;box-shadow:0 5px 14px #4f46e547}.element-detail-section .element-resource-action-cost{width:134px!important;background:#087f5b!important;border-color:#066747!important;box-shadow:0 5px 14px #087f5b47}.element-detail-section .element-resource-action:hover{transform:translateY(-1px)}.element-detail-section .element-resource-action svg{flex:0 0 auto;width:16px;height:16px}.resource-approval-status{margin-top:4px;margin-left:20px;display:inline-block;font-size:10px;font-style:normal;font-weight:700}.resource-approval-status.pending{color:#b45309}.resource-approval-status.approved{color:#087f5b}.resource-approval-status.rejected{color:#b42318}.resource-approval-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.resource-approval-actions label{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:10px;font-weight:700}.resource-approval-actions input{width:88px;min-height:30px;padding:5px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--text);font-size:12px}.resource-approval-actions button{min-height:30px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted);font-size:10px;font-weight:700}.resource-approval-actions button.primary{border-color:#087f5b;background:#087f5b;color:#fff}.element-resource-icon{width:30px;height:30px;display:grid!important;place-items:center;margin:0!important;border-radius:7px;background:#b95000;color:#fff!important;font-size:17px!important}.element-resource-icon.service{background:#5046d9}.element-resource-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:11px 18px;border-bottom:1px solid var(--line);font-size:9px}.element-cost-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:57px;padding:11px 18px;border-bottom:1px solid var(--line);background:#fff}.element-cost-group>header strong,.element-cost-group>header small{display:block}.element-cost-group>header strong{color:#172238;font-size:11px}.element-cost-group>header small{margin-top:4px;color:var(--muted);font-size:9px}.element-cost-group>header b{color:#078455;font-size:11px;white-space:nowrap}.element-cost-row{display:grid;grid-template-columns:18px minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:63px;margin:0;padding:10px 18px;border-bottom:1px solid var(--line);font-size:9px}.element-cost-row>svg{color:#172238}.element-cost-row>div{min-width:0}.element-cost-section>header{align-items:flex-start}.element-resource-row strong,.element-cost-row strong,.element-cost-row small{display:block}.element-resource-row span,.element-cost-row small{color:var(--muted)}.element-cost-row>b{color:#172238;font-size:10px;white-space:nowrap}.element-cost-row-actions{display:inline-flex;gap:5px}.element-cost-row-actions button{width:30px;height:30px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#f8fafc;color:#526077}.element-cost-row-actions button:hover{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.element-cost-group>.empty-state{min-height:104px;display:grid;place-items:center;padding:18px;border-bottom:0}.element-cost-section>header>div:first-child{min-width:0}.element-cost-section>header>div:first-child span{white-space:nowrap}.element-cost-header-actions{display:flex;align-items:center;gap:12px}.planning-history-list .history-meta:first-child{align-items:center;flex-wrap:wrap}.history-category{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#e8efff;color:#2e62bf;font-size:10px;font-weight:700}.history-category.material{background:#fff4df;color:#9a641d}.history-category.service{background:#e9f8f0;color:#18794f}.history-category.cost{background:#f3eaff;color:#7242a9}html[data-theme=dark] .element-cost-group>header{background:#192335}html[data-theme=dark] .element-cost-group>header strong,html[data-theme=dark] .element-cost-row>svg,html[data-theme=dark] .element-cost-row>b{color:#e4eaf5}html[data-theme=dark] .element-cost-row-actions button{background:#222e42;color:#c5d0e2;border-color:#3b4960}@media(max-width:700px){.element-detail-section .element-resource-action{width:auto!important;max-width:100%}.element-cost-row{grid-template-columns:18px minmax(0,1fr) auto}.element-cost-row-actions{grid-column:2 / -1;justify-self:end}}.resource-form-backdrop{z-index:90}.element-resource-form{width:min(620px,calc(100vw - 32px))}.resource-form-description{max-width:470px;margin:7px 0 0;color:#6f7e95;font-size:10px;line-height:1.45}.resource-add-button{width:auto!important;min-height:38px;margin-top:14px}.resource-draft-list{margin-top:18px;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.resource-draft-list>header{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--text);font-size:11px}.resource-draft-list>article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid var(--line)}.resource-draft-list>article:last-child{border-bottom:0}.resource-draft-list>article strong,.resource-draft-list>article small{display:block}.resource-draft-list>article strong{color:var(--text);font-size:11px}.resource-draft-list>article small{margin-top:3px;color:var(--muted);font-size:9px}.resource-remove-button{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;width:auto!important;min-height:30px;padding:5px 8px!important;color:#b42318!important}.element-history-section{overflow:hidden;margin-top:2px;border:1px solid #dfe6f0;border-radius:12px;background:#f8fafc}.element-history-section>header{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid #dfe6f0;background:#edf3fb;color:#1e2d45}.element-history-section>header strong,.element-history-section>header small{display:block}.element-history-section>header strong{font-size:10px}.element-history-section>header small{margin-top:3px;color:#72829a;font-size:8px}.element-history-empty{min-height:70px;display:grid;place-items:center;padding:14px;color:#72829a;font-size:9px;text-align:center}.element-inline-history{margin-top:18px}.element-inline-history>header{align-items:center}.element-inline-history>header button{width:auto;margin-left:auto;padding:7px 10px}.element-inline-history>header .history-hide-button{width:32px;min-width:32px;height:32px;margin-left:auto;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.element-inline-history .planning-history-list{padding:14px}html[data-theme=dark] .element-history-section{border-color:var(--line);background:#192335}html[data-theme=dark] .element-history-section>header{border-color:var(--line);background:#202d42;color:#edf2f8}html[data-theme=dark] .element-detail-metrics article,html[data-theme=dark] .element-detail-item.phase-item{background:#202b3d}html[data-theme=dark] .element-detail-modal,html[data-theme=dark] .element-detail-section,html[data-theme=dark] .element-detail-item{background:#192335}html[data-theme=dark] .element-detail-items{background:#202b3d}html[data-theme=dark] .element-detail-item:hover,html[data-theme=dark] .element-detail-item:focus-visible{background:#253247}@media(max-width:700px){.element-detail-modal{width:100%;padding:17px}.element-detail-metrics,.element-detail-resource-grid{grid-template-columns:1fr}}html[data-theme=dark] .notification-category-icon.planning{background:#24375d;color:#8db4ff}html[data-theme=dark] .phase-detail-summary>span{background:#202b3d;border-color:var(--line)}html[data-theme=dark] .phase-detail-summary small{color:#9ca8ba}html[data-theme=dark] .phase-detail-summary strong{color:#edf2f8}@media(max-width:900px){.phase-detail-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.phase-detail-summary{grid-template-columns:1fr;gap:9px}.phase-detail-summary>span{min-height:66px;padding:12px 13px}.subphase-heading>button{width:100%;justify-content:center}}.planning-task-section{display:grid;gap:12px;margin-top:18px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.planning-task-section>header{display:flex;justify-content:space-between;gap:12px}.planning-task-section>header h3{margin:0}.planning-task-section>header span{color:var(--muted);font-size:11px}.planning-task-list{display:grid;gap:8px}.planning-task-list article{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px}.planning-task-list article>div{display:grid;flex:1;gap:3px}.planning-task-list article small,.planning-task-list article>span{color:var(--muted);font-size:11px}.planning-task-form{display:grid;grid-template-columns:1fr 1fr 150px auto;gap:8px}@media(max-width:760px){.planning-task-form{grid-template-columns:1fr}}.approval-row>span,.material-icon{width:34px;height:34px;border-radius:8px;background:#edf2f8;color:#5372a5;display:grid;place-items:center}@media(max-width:1100px){.page{padding:24px}.page-header{flex-wrap:wrap;gap:14px}.page-header>div:first-child{min-width:0}.page-actions{max-width:100%;flex-wrap:wrap}.page-actions button{min-height:38px;white-space:normal}.project-detail-hero.compact{grid-template-columns:1fr}.project-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.resource-column>header{gap:8px}.resource-action{width:38px;min-width:38px;padding:0;gap:0;font-size:0}.resource-action svg{width:17px;height:17px}}.request-table>article{display:grid;grid-template-columns:34px 1.5fr .8fr .7fr auto;gap:12px;align-items:center;padding:13px 17px;border-bottom:1px solid var(--line)}.request-table article div strong,.request-table article div small{display:block;font-size:9px}.request-table article div small{font-size:8px;color:#87909d;margin-top:3px}.request-table aside{display:flex;gap:6px}.request-table .approve{margin:0}.material-columns{grid-template-columns:minmax(220px,1.4fr) 1fr .55fr .75fr 80px}.material-columns.clickable,.cost-columns.clickable{cursor:pointer}.material-columns.clickable:hover,.material-columns.clickable:focus-visible,.cost-columns.clickable:hover,.cost-columns.clickable:focus-visible{background:#f7f9fc;outline:none}.material-purchases-button{color:#2563eb;border-color:#bfd2f5;background:#f0f5ff}.material-purchases-button:hover{color:#17458d;border-color:#91b1ed;background:#e2ecff}.material-purchases-modal{width:min(680px,100%)}.material-purchases-list{border:1px solid var(--line);border-radius:9px;overflow:hidden}.material-purchases-head,.material-purchases-list>article{display:grid;grid-template-columns:minmax(0,1fr) 115px 145px;gap:10px;align-items:center;padding:10px 11px}.material-purchases-head{background:#f8fafc;color:var(--muted);font-size:8px;font-weight:750;text-transform:uppercase}.material-purchases-list>article{border-top:1px solid var(--line);font-size:10px}.material-purchases-list>article strong{min-width:0;overflow-wrap:anywhere}.material-purchases-list time,.material-purchases-list>article b{white-space:nowrap}.material-purchases-list time{color:var(--muted);font-size:9px}.material-purchases-list>article b{text-align:right}.resource-records{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.resource-column{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff}.resource-column-costs{grid-column:1 / -1}.supply-forecast-page .active-project-bar{margin-top:20px}.supply-forecast-intro{display:flex;align-items:flex-start;gap:12px;margin:20px 0 16px;padding:15px 17px;border:1px solid #c9daf7;border-left:3px solid #2563eb;border-radius:10px;background:#f5f8ff;color:#1d3f76}.supply-forecast-intro svg{flex:0 0 auto;margin-top:1px}.supply-forecast-intro strong,.supply-forecast-intro p{display:block}.supply-forecast-intro strong{font-size:12px}.supply-forecast-intro p{margin:4px 0 0;color:#60718e;font-size:11px}.supply-forecast-sections{display:grid;gap:16px}.supply-forecast-section{padding:0;overflow:hidden}.supply-forecast-section>header{display:flex;align-items:center;justify-content:space-between;gap:16px;height:auto;min-height:0;padding:17px 18px;border-bottom:1px solid var(--line)}.supply-forecast-section-title{display:flex;align-items:flex-start;gap:10px}.supply-forecast-section-title svg{flex:0 0 auto;margin-top:1px;color:#2563eb}.supply-forecast-section h2{margin:0;color:var(--text);font-size:15px}.supply-forecast-section p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.4}.supply-forecast-section-actions>span{color:var(--muted);font-size:10px;white-space:nowrap}.supply-forecast-section-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:9px}.supply-forecast-bulk-button{min-height:34px;padding:7px 11px;border-radius:8px;font-size:10px}.supply-forecast-list{display:grid}.supply-forecast-list>article{padding:15px 18px;border-bottom:1px solid var(--line)}.supply-forecast-selectable{position:relative;padding-left:48px!important;cursor:pointer;transition:background .12s ease,box-shadow .12s ease}.supply-forecast-selectable:hover,.supply-forecast-selectable.selected{background:#f5f8ff}.supply-forecast-selectable.selected{box-shadow:inset 3px 0 #2563eb}.supply-forecast-selectable>input[type=checkbox]{position:absolute;top:18px;left:18px;width:16px;height:16px;accent-color:#2563eb}.supply-forecast-list>article:last-child{border-bottom:0}.supply-forecast-row-heading,.supply-forecast-row-summary,.supply-forecast-locations>div{display:flex;align-items:center;justify-content:space-between;gap:14px}.supply-forecast-row-heading>div{display:grid;gap:3px;min-width:0}.supply-forecast-row-heading strong{color:var(--text);font-size:12px}.supply-forecast-row-heading small,.supply-forecast-row-summary,.supply-forecast-locations small{color:var(--muted);font-size:10px}.supply-forecast-row-heading>b{color:#1769aa;font-size:13px;white-space:nowrap}.supply-forecast-row-summary{justify-content:flex-start;gap:16px;margin-top:8px}.supply-forecast-stock-quantity{color:#167653;font-weight:700}.supply-forecast-locations{display:grid;gap:8px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.supply-forecast-locations>div{flex-wrap:wrap;padding-bottom:8px;border-bottom:1px solid var(--line)}.supply-forecast-locations>div[role=button]{cursor:pointer}.supply-forecast-locations>div.selected{margin:0 -5px;padding:5px 5px 8px;border-radius:6px;background:#edf4ff}.supply-forecast-locations>div>input[type=checkbox]{flex:0 0 auto;width:16px;height:16px;margin:0 2px 0 0}.supply-forecast-locations>div:last-child{padding-bottom:0;border-bottom:0}.supply-forecast-locations span{min-width:0;color:var(--text);font-size:10px}.supply-forecast-locations b{color:var(--text);font-size:10px;white-space:nowrap}.supply-forecast-locations small{flex-basis:100%}.supply-forecast-feedback{margin-top:16px;padding:12px 14px;border:1px solid #b7e2ce;border-radius:8px;background:#effaf4;color:#166534;font-size:11px}.supply-forecast-bulk-modal{width:min(620px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 48px));overflow-y:auto}.supply-forecast-modal-description{margin:0 0 14px;color:var(--muted);font-size:11px;line-height:1.45}.supply-forecast-selected-list{display:grid;gap:6px;margin-bottom:15px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fafbfd}.supply-forecast-selected-list>div{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--line);font-size:11px}.supply-forecast-selected-list>div:last-child{padding-bottom:0;border-bottom:0}.supply-forecast-selected-list span{color:var(--muted);white-space:nowrap}.supply-forecast-selected-list small{flex-basis:100%;color:#167653;font-size:10px;font-weight:700}.supply-forecast-fulfillment-options{display:grid;gap:9px;margin:0 0 15px;padding:11px 12px;border:1px solid var(--line);border-radius:9px}.supply-forecast-fulfillment-options legend{padding:0 5px;color:var(--text);font-size:11px;font-weight:700}.supply-forecast-fulfillment-options label{display:flex;align-items:flex-start;gap:9px;margin:0;cursor:pointer}.supply-forecast-fulfillment-options label:has(input:disabled){cursor:not-allowed;opacity:.6}.supply-forecast-fulfillment-options input{width:auto;margin:3px 0 0}.supply-forecast-fulfillment-options label span{display:grid;gap:2px}.supply-forecast-fulfillment-options label small{color:var(--muted);font-size:10px}.supply-forecast-form-hint{display:block;margin-top:-8px;color:var(--muted);font-size:10px}@media(max-width:640px){.supply-forecast-section>header,.supply-forecast-row-heading{align-items:flex-start;flex-direction:column}.supply-forecast-section>header{gap:12px;padding:16px 16px 15px}.supply-forecast-section-actions{align-items:flex-start;justify-content:flex-start;flex-direction:column}}html[data-theme=dark] .supply-forecast-intro{border-color:#36588d;background:#162945;color:#dce8fb}html[data-theme=dark] .supply-forecast-intro p,html[data-theme=dark] .supply-forecast-section-actions>span{color:#afbdd1}html[data-theme=dark] .supply-forecast-section{background:#192335;border-color:#303b4f;color:#e6ebf3}html[data-theme=dark] .supply-forecast-section>header,html[data-theme=dark] .supply-forecast-list>article{border-color:#303b4f}html[data-theme=dark] .supply-forecast-section-title svg{color:#77a6ff}html[data-theme=dark] .supply-forecast-section h2,html[data-theme=dark] .supply-forecast-row-heading strong,html[data-theme=dark] .supply-forecast-locations span,html[data-theme=dark] .supply-forecast-locations b{color:#eef3fb}html[data-theme=dark] .supply-forecast-section p,html[data-theme=dark] .supply-forecast-row-heading small,html[data-theme=dark] .supply-forecast-row-summary,html[data-theme=dark] .supply-forecast-locations small{color:#afbdd1}html[data-theme=dark] .supply-forecast-stock-quantity{color:#86efac}html[data-theme=dark] .supply-forecast-selectable:hover,html[data-theme=dark] .supply-forecast-selectable.selected{background:#202f49}html[data-theme=dark] .supply-forecast-selectable.selected{box-shadow:inset 3px 0 #6e9cf5}html[data-theme=dark] .supply-forecast-row-heading>b{color:#72adff}html[data-theme=dark] .supply-forecast-locations,html[data-theme=dark] .supply-forecast-selected-list{border-color:#3b485d;background:#202c40}html[data-theme=dark] .supply-forecast-selected-list small{color:#86efac}html[data-theme=dark] .supply-forecast-locations>div,html[data-theme=dark] .supply-forecast-selected-list>div{border-color:#3b485d}html[data-theme=dark] .supply-forecast-feedback{border-color:#286447;background:#173328;color:#a7e4bf}html[data-theme=dark] .supply-forecast-bulk-modal{background:#192335;border-color:#303b4f;color:#e6ebf3}.resource-cost-group{margin-top:12px;border-top:1px solid var(--line)}.resource-cost-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0 6px}.resource-cost-group>header>div{display:flex;flex-direction:column;gap:3px}.resource-cost-group>header strong{color:var(--text);font-size:12px}.resource-cost-group>header small{color:var(--muted)}.resource-cost-group>header>b{white-space:nowrap;color:#087f5b}.resource-cost-group>article{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.resource-cost-group>article>div{flex:1;display:flex;flex-direction:column}.resource-cost-group>article small{color:var(--muted)}.resource-cost-group>article>b{white-space:nowrap}.resource-column>header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:12px}.resource-column>header h3{margin:0}.resource-column>header small{color:var(--muted)}.resource-column>article{display:flex;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--line)}.resource-column>article>div{flex:1;display:flex;flex-direction:column}.resource-column>article small{color:var(--muted)}.resource-column>article b{white-space:nowrap}.resource-row-actions{display:inline-flex;gap:5px}.resource-row-actions button{width:30px;height:30px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:#f8fafc;color:#526077}.resource-row-actions button:hover{background:#eef2ff;color:#4338ca;border-color:#c7d2fe}.resource-history{display:grid;gap:12px;max-height:60vh;overflow:auto}.resource-history>article{border:1px solid var(--line);border-radius:10px;padding:12px}.resource-history>article>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}.resource-history time{color:var(--muted);font-size:10px}.resource-history p{margin:6px 0 0;display:grid;grid-template-columns:100px 1fr 1fr;gap:8px;font-size:11px}.resource-history p.history-value-row,.resource-history p.history-single-value-row{grid-template-columns:minmax(0,1fr) minmax(120px,1fr)}.resource-history .history-value-row>span,.resource-history .history-single-value-row>ins{grid-column:2}.resource-history del{color:#b42318}.resource-history ins{color:#157f3b;text-decoration:none}.usage-stock-balance{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px;padding:10px 12px;border:1px solid #93c5fd;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:10px}.usage-stock-balance strong{font-size:12px;color:#1e3a8a}.modal.usage-edit-modal{position:relative}.modal.usage-edit-modal>header{padding-right:38px}.modal.usage-edit-modal>header>button.modal-close-button{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:32px;height:32px;border:1px solid #b91c1c;border-radius:50%;background:#dc2626;color:#fff;font-size:16px;font-weight:800;cursor:pointer}.modal.usage-edit-modal>header>button.modal-close-button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}.resource-action{min-height:38px;border:1px solid transparent;border-radius:9px;padding:9px 14px;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.resource-action:hover{transform:translateY(-1px)}.resource-action:focus-visible{outline:3px solid transparent;outline-offset:2px}.resource-action-consumption{background:#b45309;border-color:#92400e;box-shadow:0 5px 14px #b4530938}.resource-action-consumption:hover{background:#92400e}.resource-action-consumption:focus-visible{outline-color:#f59e0b66}.resource-action-service{background:#4f46e5;border-color:#4338ca;box-shadow:0 5px 14px #4f46e538}.resource-action-service:hover{background:#4338ca}.resource-action-service:focus-visible{outline-color:#6366f166}.resource-action-cost{background:#087f5b;border-color:#066747;box-shadow:0 5px 14px #087f5b38}.resource-action-cost:hover{background:#066747}.resource-action-cost:focus-visible{outline-color:#10b98166}.modal .resource-column>header button.resource-action{width:auto;height:auto;min-height:38px;border-radius:9px;padding:9px 14px}.modal .resource-column>header button.resource-action-consumption{background:#b45309;border:1px solid #92400e;color:#fff}.modal .resource-column>header button.resource-action-service{background:#4f46e5;border:1px solid #4338ca;color:#fff}.modal .resource-column>header button.resource-action-cost{background:#087f5b;border:1px solid #066747;color:#fff}html[data-theme=dark] .resource-column{background:#192335;border-color:#344158}html[data-theme=dark] .resource-row-actions button{background:#222e42;color:#c5d0e2;border-color:#3b4960}html[data-theme=dark] .resource-row-actions button:hover{background:#303d63;color:#c7d2fe;border-color:#6474a6}html[data-theme=dark] .resource-history>article{border-color:#344158}html[data-theme=dark] .resource-history del{color:#fda29b}html[data-theme=dark] .resource-history ins{color:#75e0a7}html[data-theme=dark] .usage-stock-balance{border-color:#4169a1;background:#172554;color:#bfdbfe}html[data-theme=dark] .usage-stock-balance strong{color:#dbeafe}html[data-theme=dark] .modal.usage-edit-modal>header>button.modal-close-button{border-color:#b91c1c;background:#dc2626;color:#fff}html[data-theme=dark] .modal.usage-edit-modal>header>button.modal-close-button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}html[data-theme=dark] .resource-action-consumption{background:#f59e0b;border-color:#fbbf24;color:#241400;box-shadow:0 5px 16px #f59e0b35}html[data-theme=dark] .resource-action-consumption:hover{background:#fbbf24}html[data-theme=dark] .resource-action-service{background:#818cf8;border-color:#a5b4fc;color:#11152c;box-shadow:0 5px 16px #818cf835}html[data-theme=dark] .resource-action-service:hover{background:#a5b4fc}html[data-theme=dark] .resource-action-cost{background:#34d399;border-color:#6ee7b7;color:#052e22;box-shadow:0 5px 16px #34d39935}html[data-theme=dark] .resource-action-cost:hover{background:#6ee7b7}html[data-theme=dark] .modal .resource-column>header button.resource-action-consumption{background:#f59e0b;border-color:#fbbf24;color:#241400}html[data-theme=dark] .modal .resource-column>header button.resource-action-service{background:#818cf8;border-color:#a5b4fc;color:#11152c}html[data-theme=dark] .modal .resource-column>header button.resource-action-cost{background:#34d399;border-color:#6ee7b7;color:#052e22}@media(max-width:800px){.resource-records{grid-template-columns:1fr}}@media(max-width:520px){.resource-column>header{grid-template-columns:1fr}.resource-action{width:100%}}@media(max-width:1100px){html body .resource-column>header .resource-action{width:38px;min-width:38px;height:38px;padding:0;gap:0;font-size:0}html body .resource-column>header .resource-action svg{width:17px;height:17px}}.procurement-records>article{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto auto repeat(2,36px);gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.procurement-records>article>div{min-width:0}.procurement-records>article strong,.procurement-records>article small{display:block}.procurement-records>article small{margin-top:3px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.procurement-records>article a{color:var(--blue)}.procurement-records>article>svg{color:var(--blue)}.procurement-file-dropzone{display:grid!important;gap:6px;padding:14px!important;border:1px dashed #aebbd0;border-radius:9px;background:#f8faff;cursor:pointer;transition:border-color .15s ease,background .15s ease}.procurement-current-files{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.procurement-current-files>small{color:var(--muted);font-size:9px;font-weight:700;text-transform:uppercase}.procurement-current-file{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.procurement-current-file a{min-width:0;overflow:hidden;color:var(--blue);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.procurement-current-file .icon{flex:0 0 auto;width:30px;height:30px}.procurement-file-removed{color:var(--muted);font-size:10px}.procurement-file-dropzone:hover,.procurement-file-dropzone.dragging{border-color:var(--blue);background:#eef4ff}.procurement-file-dropzone input[type=file]{margin-top:2px;padding:8px;border:0;background:transparent;cursor:pointer}.procurement-file-dropzone small{color:var(--muted);font-size:9px;font-weight:400;overflow-wrap:anywhere}@media(max-width:1300px){.procurement-records>article{grid-template-columns:28px minmax(0,1fr) auto}.procurement-records>article>span,.procurement-records>article>b{grid-column:2}.procurement-records>article>button{grid-column:3;grid-row:auto}}@media(max-width:1200px){.procurement-records>article{grid-template-columns:28px minmax(0,1fr) repeat(2,36px)}.procurement-records>article>button{grid-column:auto}}.procurement-page .module-tabs{width:100%}.procurement-list-header{gap:12px}.procurement-list-title{min-width:0}.procurement-list-title h3,.procurement-list-title>span{display:block}.procurement-list-search{display:flex;align-items:center;gap:6px;width:min(230px,45%);min-width:0;margin:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--muted)}.procurement-list-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #2563dc1f}.procurement-list-search input{width:100%;min-width:0;margin:0;padding:0;border:0;outline:0;background:transparent;color:var(--text, #182236);font-size:10px}.procurement-list-search input::placeholder{color:var(--muted)}.tab-loading{display:flex;align-items:center;justify-content:center;gap:8px;min-height:96px;padding:18px;color:var(--muted);font-size:11px}.tab-loading~.empty,.tab-loading~.empty-state{display:none}.tab-loading-spinner{width:15px;height:15px;border:2px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:procurement-tab-spin .75s linear infinite}@keyframes procurement-tab-spin{to{transform:rotate(360deg)}}.procurement-page .module-tabs button{flex:1 1 0;min-width:0;font-size:12px;font-weight:700}.procurement-page .module-tabs button>span.module-tab-label{font-size:12px}.procurement-page .module-tabs button>span:not(.module-tab-label){font-size:10px}.procurement-page .crud-table,.procurement-page .summary,.procurement-page .panel{color:var(--text, #182236)}.procurement-page .crud-table article,.procurement-page .request-table article,.procurement-page .procurement-records article{font-size:12px}.procurement-page .crud-table article small,.procurement-page .request-table article small,.procurement-page .procurement-records article small{font-size:11px}.procurement-audit-list>article{display:grid;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff)}.procurement-audit-heading{display:flex;align-items:center}.procurement-audit-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.procurement-audit-fields>div{min-width:0}.procurement-audit-fields small{margin:0 0 3px;font-size:8px;text-transform:uppercase;letter-spacing:.04em}.procurement-audit-fields strong,.procurement-audit-fields span{display:block;overflow-wrap:anywhere;font-size:11px}.procurement-audit-changes{margin:0;padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:10px}@media(max-width:600px){.procurement-audit-fields{grid-template-columns:1fr}}@media(max-width:1200px){.procurement-page .module-tabs button{flex:1 1 0;min-width:38px}}html[data-theme=dark] .procurement-page .module-tabs,html[data-theme=dark] .procurement-page .panel,html[data-theme=dark] .procurement-page .summary{background:#192335;border-color:#303b4f;color:#e6ebf3}html[data-theme=dark] .procurement-page .module-tabs button{color:#c2ccda}html[data-theme=dark] .procurement-list-search{background:#202c40;border-color:#3b485d}html[data-theme=dark] .procurement-list-search input{color:#e6ebf3}html[data-theme=dark] .procurement-page .module-tabs button.active{color:#fff;background:#4d83e8}html[data-theme=dark] .procurement-page .module-tabs button>span:not(.module-tab-label){background:#303d54;color:#d7e0ed}html[data-theme=dark] .procurement-page .crud-table-head{background:#202c40;color:#bdc9d9;border-color:#303b4f}html[data-theme=dark] .procurement-page .crud-table>article,html[data-theme=dark] .procurement-page .request-table>article,html[data-theme=dark] .procurement-page .procurement-records>article{border-color:#303b4f}html[data-theme=dark] .procurement-page .crud-table article:hover{background:#222f45}html[data-theme=dark] .procurement-page .request-table article div small,html[data-theme=dark] .procurement-page .procurement-records article small{color:#aab7c9}html[data-theme=dark] .procurement-audit-list>article{background:#192335;border-color:#303b4f}html[data-theme=dark] .material-purchases-button{color:#9bbcff;border-color:#4669a6;background:#20365f}html[data-theme=dark] .material-purchases-button:hover{color:#d8e5ff;border-color:#7097e3;background:#294777}html[data-theme=dark] .material-purchases-head{background:#202c40}@media(max-width:800px){.procurement-page .active-project-bar{grid-template-columns:42px minmax(0,1fr) 20px;gap:10px;padding:12px}.procurement-page .active-project-bar>label{grid-column:1 / -1;min-width:0}.procurement-page .crud-table>header,.procurement-page .crud-table-head,.procurement-page .crud-table>article{min-width:0}.procurement-page .material-columns,.procurement-page .cost-columns{grid-template-columns:minmax(130px,1.7fr) minmax(65px,1fr) 46px 76px 64px;gap:7px;padding-inline:10px}.procurement-page .material-columns>div:first-child,.procurement-page .material-columns>span,.procurement-page .material-columns>b,.procurement-page .cost-columns>div:first-child,.procurement-page .cost-columns>span,.procurement-page .cost-columns>b{min-width:0;overflow-wrap:anywhere}}@media(min-width:721px)and (max-width:800px){.procurement-page .active-project-bar{grid-template-columns:42px minmax(0,1fr) minmax(145px,.35fr) 20px}.procurement-page .active-project-picker{grid-column:auto}}@media(max-width:600px){.procurement-page .panel>header.procurement-list-header{height:auto;min-height:0;align-items:stretch;flex-direction:column;gap:8px;padding:12px 14px}.procurement-list-search{width:100%}}@media(max-width:600px){.material-purchases-head,.material-purchases-list>article{grid-template-columns:minmax(0,1fr) 105px}.material-purchases-head span:last-child,.material-purchases-list>article b{grid-column:2;grid-row:1}}.purchase-list>article{display:grid;grid-template-columns:38px minmax(0,1fr) auto minmax(92px,auto);align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer}.purchase-list{container-type:inline-size;container-name:purchase-list}.purchase-list article>div{min-width:0}.purchase-list article :is(strong,small){overflow-wrap:anywhere}.purchase-list article>b,.purchase-list article>.badge{white-space:nowrap}@container purchase-list (max-width: 620px){.purchase-list>article{grid-template-columns:38px minmax(0,1fr) auto;grid-template-rows:auto auto;row-gap:5px}.purchase-list>article>.purchase-icon{grid-column:1;grid-row:1 / 3}.purchase-list>article>div{grid-column:2;grid-row:1 / 3}.purchase-list>article>b{grid-column:3;grid-row:1;align-self:end}.purchase-list>article>.badge{grid-column:3;grid-row:2;justify-self:end;align-self:start}}.purchase-list>article:hover{background:#f7f9fc}.purchase-icon,.stock-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:#e7efff;color:#3166ba}.purchase-list article strong,.purchase-list article small{display:block}.purchase-list article small{color:var(--muted);font-size:8px;margin-top:3px}.purchase-list article>b{text-align:right;font-size:10px}.purchase-form-modal{width:min(900px,100%);max-width:100%;box-sizing:border-box;overflow-x:hidden;container-type:inline-size;container-name:purchase-form}.purchase-items-editor{min-width:0;max-width:100%;box-sizing:border-box;margin-top:16px;border:1px solid var(--line);border-radius:9px;padding:12px}.purchase-items-title{display:flex;align-items:center;justify-content:space-between}.purchase-items-title h3{margin:0;font-size:12px}.purchase-item-edit{display:grid;grid-template-columns:minmax(180px,1fr) 80px 110px 36px;gap:7px;align-items:stretch;margin-top:9px;min-width:0}.purchase-item-edit>.icon{width:36px;height:39px;min-height:39px;margin:6px 0 0;align-self:start}.purchase-item-unit{display:flex;flex-direction:column;justify-content:center;min-width:0;height:39px;margin-top:6px;padding:4px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface, white);color:var(--muted)}.purchase-item-unit small{font-size:9px!important;line-height:1!important}.purchase-item-unit b{margin-top:2px;line-height:1!important;overflow:hidden;color:var(--text, #182236);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.purchase-item-edit select,.purchase-item-edit input{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:8px;background:var(--surface, white);color:inherit}@container purchase-form (max-width: 760px){.purchase-item-edit{grid-template-columns:minmax(150px,1fr) 62px 82px 36px}.purchase-item-edit>.icon{grid-column:4;grid-row:1}}@container purchase-form (max-width: 480px){.purchase-item-edit{grid-template-columns:minmax(0,1fr) 40px}.purchase-item-edit select{grid-column:1 / -1}.purchase-item-unit,.purchase-item-edit>input:first-of-type,.purchase-item-edit>input:last-of-type{grid-column:1}.purchase-item-edit>.icon{grid-column:2;grid-row:2 / 4}}.purchase-detail-modal{width:min(1120px,100%)}.purchase-detail-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.purchase-detail-layout.with-history{grid-template-columns:minmax(0,1fr) 300px}.purchase-detail-header-actions{display:flex;align-items:center;gap:7px}.modal header .purchase-close-button{border:1px solid #b91c1c;background:#dc2626;color:#fff;transition:background .15s ease,color .15s ease,border-color .15s ease}.modal header .purchase-close-button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}.purchase-actions .purchase-repeat-button{border-color:#b9cdf7;background:#edf4ff;color:#1f55a5}.purchase-actions .purchase-repeat-button:hover{border-color:#84a8ee;background:#dce9ff;color:#17458d}.purchase-history-received{display:grid;gap:5px;margin-top:7px}.purchase-history-received>span{padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface, #fff)}.purchase-history-received b,.purchase-history-received small{display:block}.purchase-history-received b{font-size:8px}.purchase-history-received small{margin-top:3px;color:var(--muted);font-size:8px}.purchase-history-note{display:grid;gap:3px;margin-top:8px;padding:7px 8px;border-left:3px solid var(--accent, #2563dc);border-radius:5px;background:var(--accent-soft, #eef4ff)}.purchase-history-note strong{color:var(--text);font-size:8px}.purchase-history-note span{color:var(--muted);font-size:9px;line-height:1.4;white-space:pre-wrap}.purchase-meta,.stock-detail-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.purchase-meta>span,.stock-detail-summary>span{padding:11px;border:1px solid var(--line);border-radius:8px;background:#f8fafc}.purchase-meta small,.purchase-meta b,.stock-detail-summary small,.stock-detail-summary b{display:block}.purchase-meta small,.stock-detail-summary small{color:var(--muted);font-size:8px;margin-bottom:4px}.purchase-detail-items{margin-top:14px;border:1px solid var(--line);border-radius:9px;overflow:hidden}.purchase-review-supplier{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,280px);gap:6px 12px;align-items:center;margin-top:14px;padding:11px;border:1px solid #bfd2f5;border-radius:9px;background:#f5f8ff;color:var(--text);font-size:10px;font-weight:700}.purchase-review-supplier select{width:100%;min-width:0;padding:7px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface, #fff);color:var(--text);font:inherit}.purchase-review-supplier small{grid-column:1 / -1;color:var(--muted);font-size:9px;font-weight:400}.purchase-detail-items article{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,280px) 100px;gap:10px;align-items:center;padding:11px;border-bottom:1px solid var(--line);font-size:9px}.purchase-detail-items small{display:block;color:var(--muted);margin-top:3px}.purchase-review-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.approved-quantity,.approved-unit-price{display:grid;grid-template-columns:1fr;gap:5px;color:var(--muted);font-size:8px}.approved-unit-price{grid-template-columns:1fr}.approved-quantity input,.approved-unit-price input{width:100%;min-width:0;padding:5px 6px;border:1px solid var(--line);border-radius:5px;font:inherit;color:var(--text)}.purchase-review-errors{margin-top:12px}.purchase-review-errors ul{display:grid;gap:4px;margin:0;padding-left:18px}.purchase-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px;margin-top:16px}.purchase-attachments{margin-top:18px;padding:13px;border:1px solid var(--line);border-radius:9px;background:var(--surface, #fff)}.purchase-attachments header{margin-bottom:10px}.purchase-attachments h3{margin:0;font-size:12px}.purchase-attachments header small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.purchase-attachments-readonly{display:block;margin-bottom:10px;padding:8px 10px;border:1px solid #ead8aa;border-radius:7px;background:#fff9e8;color:#866b2a}.purchase-attachment-upload{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,1fr) auto;gap:7px;align-items:center}.purchase-attachment-upload label{position:relative;display:flex;align-items:center;gap:6px;min-width:0;padding:8px 10px;border:1px dashed var(--line);border-radius:7px;color:var(--muted);font-size:9px;cursor:pointer}.purchase-attachment-upload label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-attachment-upload label input{position:absolute;inset:0;opacity:0;cursor:pointer}.purchase-attachment-upload>input{min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface, #fff)}.purchase-attachment-upload button{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.purchase-attachment-upload .purchase-attach-button{border-color:#b7d8c2;background:#edf9f0;color:#247645;font-weight:700}.purchase-attachment-upload .purchase-attach-button:hover{border-color:#83bd94;background:#daf2df;color:#1b6035}html[data-theme=dark] .modal header .purchase-close-button{border-color:#b91c1c;background:#dc2626;color:#fff}html[data-theme=dark] .modal header .purchase-close-button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}html[data-theme=dark] .purchase-actions .purchase-repeat-button{border-color:#486a9d;background:#263b5f;color:#b8d1ff}html[data-theme=dark] .purchase-actions .purchase-repeat-button:hover{border-color:#7098d3;background:#304a73;color:#fff}html[data-theme=dark] .purchase-attachment-upload .purchase-attach-button{border-color:#4f8a62;background:#24442d;color:#bde8c8}html[data-theme=dark] .purchase-attachment-upload .purchase-attach-button:hover{border-color:#6fb984;background:#2f5a3a;color:#e0f7e4}.purchase-attachment-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;margin-top:10px}.purchase-attachment-list article{display:flex;align-items:center;gap:8px;min-width:0;padding:7px;border:1px solid var(--line);border-radius:7px}.purchase-attachment-list img{width:34px;height:34px;object-fit:cover;border-radius:5px}.purchase-attachment-list article>svg{flex:0 0 34px;color:var(--muted)}.purchase-attachment-list article>div{min-width:0;flex:1}.purchase-attachment-list a,.purchase-attachment-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.purchase-attachment-list a{color:var(--blue);font-size:10px;font-weight:700}.purchase-attachment-list small{margin-top:3px;color:var(--muted);font-size:8px}@media(max-width:700px){.purchase-detail-modal>header{flex-wrap:wrap;gap:10px}.purchase-detail-modal>header>div:first-child{min-width:0}.purchase-detail-header-actions{width:100%;justify-content:flex-end}.purchase-detail-layout.with-history{grid-template-columns:minmax(0,1fr)}.purchase-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.purchase-meta>span{min-width:0;overflow-wrap:anywhere}.purchase-detail-items article{grid-template-columns:minmax(0,1fr)}.purchase-detail-items article>b{grid-column:1;grid-row:auto;justify-self:end}.purchase-attachment-upload{grid-template-columns:1fr}}html[data-theme=dark] .purchase-list>article:hover{background:#222e42}html[data-theme=dark] .purchase-meta>span,html[data-theme=dark] .stock-detail-summary>span{background:#202b3d}.modal header .purchase-history-toggle{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:auto;height:34px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--text);font-size:9px;font-weight:700;white-space:nowrap;cursor:pointer}.modal header .purchase-history-toggle:hover{border-color:var(--accent);background:var(--accent-soft, #eef4ff);color:var(--accent)}html body .app :is(.purchase-meta,.stock-detail-summary) small,html body .app .purchase-item-unit small{font-size:var(--font-small)}html body .app :is(.purchase-meta,.stock-detail-summary,.purchase-item-unit) b{font-size:var(--font-body);font-weight:var(--weight-semibold)}:is(.purchase-detail-modal,.stock-detail-modal) h2{font-size:20px!important;font-weight:var(--weight-bold)!important}:is(.purchase-detail-modal,.stock-detail-modal) :is(.phase-history,.purchase-history,.stock-history) article{font-size:var(--font-body)!important;font-weight:var(--weight-regular)!important}:is(.purchase-detail-modal,.stock-detail-modal) button{font-size:var(--font-body)!important;font-weight:var(--weight-semibold)!important}.inventory-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:15px}.stock-list>article,.stock-movements>article{display:grid;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:9px}.inventory-list-header{gap:12px}.inventory-list-title{min-width:0}.inventory-list-title h3,.inventory-list-title span{display:block}.inventory-search{display:flex;align-items:center;gap:6px;width:min(210px,45%);min-width:0;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--muted)}.inventory-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 2px #2563dc1f}.inventory-search input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--text, #182236);font-size:10px}.inventory-search input::placeholder{color:var(--muted)}.stock-list>article{grid-template-columns:36px minmax(0,1fr) auto 35px;cursor:pointer}.stock-transfer-button{color:var(--blue)}.stock-list article small,.stock-list article strong,.stock-movements article small,.stock-movements article strong,.stock-movements article em{display:block}.stock-list article small,.stock-movements article small,.stock-movements article em{color:var(--muted);font-size:8px;margin-top:3px}.stock-movements>article{grid-template-columns:28px 1fr auto}.stock-movements article>span{width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#e6f7ee;color:#19744f;font-weight:800}.stock-movements article>span.out{background:#fff0f0;color:#a54141}.stock-movements article em{font-style:normal}.stock-detail-modal{width:min(780px,100%)}.stock-detail-summary{grid-template-columns:repeat(3,1fr);margin-bottom:15px}.stock-history{max-height:400px}.stock-history-quantity{display:block;margin-top:6px;color:var(--muted);font-size:8px}.stock-history-quantity b{color:var(--text)}html body .app :is(.purchase-list,.stock-list,.stock-movements)>article{font-size:var(--font-body);font-weight:var(--weight-regular)}html body .app :is(.purchase-list,.stock-list,.stock-movements) article :is(strong,b){font-size:var(--font-body);font-weight:var(--weight-semibold)}html body .app :is(.purchase-list,.stock-list,.stock-movements) article :is(small,em){font-size:var(--font-small);font-weight:var(--weight-regular)}html body .app :is(.history-meta,.history-action,.stock-history-quantity){font-size:var(--font-small)}:is(.purchases-page,.inventory-page) .panel>header h3{font-size:var(--font-section)!important;font-weight:var(--weight-semibold)!important}:is(.purchases-page,.inventory-page) .panel>header span{font-size:var(--font-small)!important;font-weight:var(--weight-regular)!important}:is(.purchases-page,.inventory-page) .panel>article{font-size:var(--font-body)!important;font-weight:var(--weight-regular)!important}:is(.purchases-page,.inventory-page) .panel>article :is(strong,b){font-size:var(--font-body)!important;font-weight:var(--weight-semibold)!important}:is(.purchases-page,.inventory-page) .panel>article :is(small,em){font-size:var(--font-small)!important;font-weight:var(--weight-regular)!important}:is(.purchases-page,.inventory-page) .panel>article .badge{font-size:var(--font-small)!important;font-weight:var(--weight-medium)!important}.inventory-page .stock-list article>b small{display:inline;margin:0;font-size:inherit!important;font-weight:inherit!important}:is(.purchase-detail-modal,.stock-detail-modal) :is(.phase-history,.purchase-history,.stock-history) :is(small,time,.history-action,.stock-history-quantity){font-size:var(--font-small)!important;font-weight:var(--weight-regular)!important}@media(max-width:1200px){.inventory-grid{grid-template-columns:minmax(0,1fr);gap:14px}.inventory-grid>*{min-width:0}}@media(max-width:600px){.inventory-page .panel>header.inventory-list-header{height:auto;min-height:0;align-items:stretch;flex-direction:column;gap:8px;padding:12px 14px}.inventory-search{width:100%}}.metrics.commercial{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.commercial-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}@media(max-width:720px){.dashboard-grid,.commercial-grid{grid-template-columns:minmax(0,1fr)}}.visit-row{display:grid;grid-template-columns:42px 30px 1fr auto;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--line)}.visit-row>b{font-size:10px}.visit-row>span{width:30px;height:30px;background:#e9f1ff;color:#2e62bd;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:700}.visit-row div strong,.visit-row div small,.key-row div strong,.key-row div small{display:block;font-size:9px}.visit-row div small,.key-row div small{font-size:8px;color:#87909d;margin-top:3px}.key-row{display:grid;grid-template-columns:32px 1fr auto;gap:9px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.key-row>svg{color:#bd701e;background:#fff1e1;padding:7px;width:32px;height:32px;border-radius:7px}.commercial-units-panel{margin:16px 0}.commercial-unit-groups{display:grid;gap:14px;padding:14px}.commercial-unit-group{overflow:hidden;border:1px solid var(--line);border-radius:10px}.commercial-unit-group>header{min-height:50px;padding:9px 13px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);background:#f7f9fc}.commercial-unit-group>header>div{display:flex;align-items:center;gap:9px}.commercial-unit-group>header span strong,.commercial-unit-group>header span small{display:block}.commercial-unit-group>header span strong{font-size:10px}.commercial-unit-group>header span small{margin-top:3px;color:var(--muted);font-size:8px}.commercial-unit-group>header>b{color:var(--muted);font-size:8px;font-weight:650}.commercial-unit-toggle{flex:0 0 28px;width:28px;height:28px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;background:var(--surface, #fff);color:#526075;cursor:pointer}.commercial-unit-toggle:hover{border-color:#8eb1eb;color:#2862c7}.commercial-unit-toggle svg{transition:transform .18s}.commercial-unit-group.expanded .commercial-unit-toggle svg{transform:rotate(180deg)}.visit-datetime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.visit-schedule-modal{width:min(820px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-x:hidden;overflow-y:auto}.visit-datetime-field{min-width:0;margin:0;padding:12px;border:1px solid var(--line);border-radius:9px}.visit-datetime-field legend{padding:0 5px;color:var(--muted);font-size:9px;font-weight:700}.visit-datetime-field>div{display:grid;grid-template-columns:minmax(145px,1fr) minmax(180px,1fr);align-items:end;gap:10px}.modal .visit-datetime-field label{margin:0}.visit-time-selects{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;align-self:end;gap:6px}.visit-time-selects b{color:var(--muted);font-size:13px;text-align:center}.modal .visit-time-selects select{min-width:0;margin-top:0}.visit-time-selects select,.visit-datetime-field input{height:42px}.commercial-unit-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.commercial-unit-list>button{min-width:0;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:14px;border:0;background:var(--surface, #fff);color:inherit;text-align:left;cursor:pointer}.commercial-unit-list>button:hover{background:#f2f6fc}.commercial-unit-list>button>span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;color:#356dcc;background:#eaf1ff}.commercial-unit-list strong,.commercial-unit-list small{display:block}.commercial-unit-list strong{font-size:10px}.commercial-unit-list small{margin-top:4px;color:var(--muted);font-size:8px}.commercial-unit-list>button>b{color:var(--blue);font-size:8px;white-space:nowrap}.unit-key-modal{width:min(1040px,calc(100vw - 36px));max-height:calc(100dvh - 48px);overflow-y:auto}.unit-key-tabs{display:flex;gap:5px;margin:-5px 0 15px;border-bottom:1px solid var(--line)}.unit-key-tabs button{display:flex;align-items:center;gap:6px;padding:10px 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:9px}.unit-key-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.unit-key-content h3{margin:0 0 14px;font-size:11px}.reservation-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(380px,1.2fr);gap:18px}.reservation-form,.availability-list{padding:16px;border:1px solid var(--line);border-radius:10px}.reservation-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.reservation-status{display:inline-flex;padding:4px 7px;border-radius:12px;background:#e9f7ef;color:#167451;font-size:7px;font-weight:750;text-transform:uppercase}.reservation-status.blocked{background:#fff0e5;color:#ae581d}.reservation-status.cancelled{background:#f0f1f3;color:#7b8491}.reservation-visit-row>span{color:#316bc5;background:#eaf1ff}.commercial-page .badge.active,.commercial-page .badge.available,.commercial-page .badge.cancelled{min-width:78px;box-sizing:border-box;text-align:center}.commercial-page .badge.active{border:1px solid #b7ccef;border-radius:6px;background:#e9f1ff;color:#2862c7}.commercial-page .badge.cancelled{border-radius:6px}.reservation-visit-row.clickable,.key-row.clickable{cursor:pointer;transition:background .15s}.reservation-visit-row.clickable:hover,.key-row.clickable:hover{background:#f3f7fd}.key-reservations-modal{width:min(680px,calc(100vw - 28px));max-height:calc(100dvh - 60px);overflow-y:auto}.key-reservation-list{display:grid;gap:7px}.key-reservation-list>button{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:9px;background:#f9fbfd;color:inherit;text-align:left;cursor:pointer}.key-reservation-list>button:hover{border-color:#8eb1eb;background:#eef4ff}.key-reservation-list strong,.key-reservation-list small{display:block;font-size:9px}.key-reservation-list small{margin-top:4px;color:var(--muted)}.reservation-detail-modal{width:min(680px,calc(100vw - 28px))}.reservation-detail-status{display:flex;align-items:center;gap:9px;margin:-4px 0 15px}.reservation-detail-status>span:last-child{color:var(--muted);font-size:9px}.reservation-audit-info{display:flex;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:8px}.reservation-detail-modal .reservation-cancel-button{background:#cf3f4f;border-color:#cf3f4f;color:#fff}.reservation-detail-modal .reservation-cancel-button:hover{background:#b62f3f;border-color:#b62f3f;color:#fff}html[data-theme=dark] .commercial-unit-list>button,html[data-theme=dark] .reservation-form,html[data-theme=dark] .availability-list,html[data-theme=dark] .keys-crud>form,html[data-theme=dark] .keys-crud>section{background:#192335}html[data-theme=dark] .commercial-unit-list>button:hover,html[data-theme=dark] .availability-list>article{background:#202c40}html[data-theme=dark] .commercial-unit-list>button>span{background:#263b5f;color:#91b8ff}html[data-theme=dark] .commercial-unit-group>header{background:#202c40}html[data-theme=dark] .commercial-unit-toggle{background:#192335;color:#bdc8d8}html[data-theme=dark] .commercial-unit-toggle:hover{border-color:#6689bd;color:#a9c8ff}html[data-theme=dark] .reservation-visit-row>span{color:#9fc0ff;background:#263b5f}html[data-theme=dark] .commercial-page .badge.active{border-color:#526b91;border-radius:6px;background:#263b5f;color:#b8d1ff}html[data-theme=dark] .reservation-detail-modal .reservation-cancel-button{background:#d64b5b;border-color:#e36b78;color:#fff}html[data-theme=dark] .reservation-visit-row.clickable:hover,html[data-theme=dark] .key-row.clickable:hover,html[data-theme=dark] .key-reservation-list>button:hover{background:#243249}html[data-theme=dark] .key-reservation-list>button{background:#192335}@media(max-width:900px){.commercial-unit-list{grid-template-columns:repeat(2,1fr)}.reservation-layout,.keys-crud{grid-template-columns:1fr}}@media(max-width:560px){.commercial-unit-list,.visit-datetime-grid,.visit-datetime-field>div{grid-template-columns:1fr}.unit-key-modal{width:calc(100vw - 20px)}.commercial-unit-list>button{grid-template-columns:36px 1fr}.commercial-unit-list>button>b{grid-column:2}}@media(max-width:720px){.metrics.commercial{grid-template-columns:1fr}}.key-control-page .app-alert{margin:-3px 0 14px}.key-control-metrics{grid-template-columns:repeat(4,1fr)}.key-control-layout{display:grid;grid-template-columns:minmax(250px,.72fr) minmax(600px,1.7fr);gap:16px}.key-locations-panel,.key-reservations-panel{min-width:0;overflow:hidden}.key-locations-panel>header,.key-reservations-panel>header{padding:16px}.key-locations-panel>header small{color:var(--muted);font-size:9px}.key-location-list{display:grid;gap:1px;background:var(--line)}.key-location-flat-list-hidden{display:none}.key-location-tree{display:grid;gap:8px;padding:12px;background:#f7f9fc}.key-location-group{overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface, #fff)}.key-location-group-toggle{display:grid;grid-template-columns:18px 34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-height:55px;padding:9px 12px;border:0;background:var(--surface, #fff);color:inherit;text-align:left}.key-location-group-toggle:hover,.key-location-group.open .key-location-group-toggle{background:#edf4ff}.key-location-group-toggle>span:nth-child(3),.key-location-entry>span:nth-child(2){min-width:0}.key-location-group-toggle strong,.key-location-group-toggle small{display:block}.key-location-group-toggle strong{font-size:10px}.key-location-group-toggle small{margin-top:3px;color:var(--muted);font-size:8px}.key-location-group-toggle b{color:var(--muted);font-size:8px;white-space:nowrap}.key-location-group-toggle>svg{color:var(--muted);transition:transform .18s ease}.key-location-group.open .key-location-group-toggle>svg{transform:rotate(180deg)}.key-location-group-content{border-top:1px solid var(--line)}.key-location-entry{display:grid;grid-template-columns:34px minmax(0,1fr) auto 17px;align-items:center;gap:9px;width:100%;min-width:0;padding:11px 14px 11px 26px;border:0;border-bottom:1px solid var(--line);background:var(--surface, #fff);color:inherit;text-align:left}.key-location-entry:last-child{border-bottom:0}.key-location-entry:hover,.key-location-entry.selected{background:#edf4ff}.key-location-entry.selected{box-shadow:inset 3px 0 var(--blue)}.key-location-nested{border-bottom:1px solid var(--line)}.key-location-nested:last-child{border-bottom:0}.key-location-nested>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:10px 14px 7px 26px;background:#fbfcfe}.key-location-nested>header strong{color:#526075;font-size:9px}.key-location-nested>header small{color:var(--muted);font-size:8px}.key-location-nested .key-location-entry{padding-left:48px}html[data-theme=dark] .key-location-tree,html[data-theme=dark] .key-location-nested>header{background:#202c40}html[data-theme=dark] .key-location-group,html[data-theme=dark] .key-location-group-toggle,html[data-theme=dark] .key-location-entry{background:#192335}html[data-theme=dark] .key-location-group-toggle:hover,html[data-theme=dark] .key-location-group.open .key-location-group-toggle,html[data-theme=dark] .key-location-entry:hover,html[data-theme=dark] .key-location-entry.selected{background:#243249}.key-location-list>button{display:grid;grid-template-columns:34px minmax(0,1fr) auto 17px;align-items:center;gap:9px;min-width:0;padding:13px 14px;border:0;background:var(--surface, #fff);color:inherit;text-align:left}.key-location-list>button:hover,.key-location-list>button.selected{background:#edf4ff}.key-location-list>button.selected{box-shadow:inset 3px 0 var(--blue)}.key-location-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:#eaf1ff;color:#356dcc}.key-location-list strong,.key-location-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.key-location-list strong{font-size:10px}.key-location-list small{margin-top:3px;color:var(--muted);font-size:8px}.key-location-list b{color:var(--muted);font-size:8px;white-space:nowrap}.key-location-list i{color:#168362;font-style:normal}.selected-location-summary{display:flex;flex-wrap:wrap;gap:12px;padding:0 16px 13px;color:var(--muted);font-size:8px}.selected-location-summary span{display:inline-flex;align-items:center;gap:5px}.key-chip-list{display:flex;flex-wrap:wrap;gap:7px;padding:0 16px 14px}.key-chip{display:flex;align-items:center;gap:7px;min-width:180px;padding:8px 9px;border:1px solid var(--line);border-radius:8px;color:#bd701e}.key-chip>span{min-width:0;flex:1}.key-chip strong,.key-chip small{display:block}.key-chip strong{color:var(--text, #182236);font-size:9px}.key-chip small{margin-top:3px;color:var(--muted);font-size:8px}.key-chip button{width:23px;height:23px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:var(--muted)}.key-chip button:hover{color:var(--blue)}.reservation-history-table{overflow-x:auto}.reservation-table-heading,.reservation-history-table article{min-width:760px;display:grid;grid-template-columns:1.2fr .8fr 1.05fr 1.1fr 78px 58px;align-items:center;gap:10px;padding:11px 16px}.reservation-table-heading{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f7f9fc;color:var(--muted);font-size:8px;font-weight:750;text-transform:uppercase}.reservation-history-table article{border-bottom:1px solid var(--line)}.reservation-history-table article:last-child{border-bottom:0}.reservation-history-table article.cancelled{opacity:.68}.reservation-history-table article>div{min-width:0}.reservation-history-table article strong,.reservation-history-table article small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reservation-history-table article strong{font-size:9px}.reservation-history-table article small{margin-top:4px;color:var(--muted);font-size:8px}.reservation-row-actions{display:flex;justify-content:flex-end;gap:4px}.reservation-row-actions button{width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--muted)}.reservation-row-actions button:hover{border-color:#8eb1eb;color:var(--blue)}.key-control-modal{width:min(650px,calc(100vw - 28px))}.key-control-modal .error{margin-bottom:12px}.key-control-current-user,.key-control-modal-place{display:flex;align-items:center;gap:6px;margin:4px 0 13px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:9px}.key-control-current-user strong,.key-control-modal-place strong{color:var(--text, #182236)}html[data-theme=dark] .key-location-list>button,html[data-theme=dark] .reservation-table-heading,html[data-theme=dark] .key-control-current-user,html[data-theme=dark] .key-control-modal-place{background:#192335}html[data-theme=dark] .key-location-list>button:hover,html[data-theme=dark] .key-location-list>button.selected{background:#243249}@media(max-width:1100px){.key-control-metrics{grid-template-columns:repeat(2,1fr)}.key-control-layout{grid-template-columns:1fr}}@media(max-width:560px){.key-control-metrics{grid-template-columns:1fr}}.standalone-form label,.stack-form label,.settings-form label{display:block;font-size:9px;color:#596477;font-weight:650}.standalone-form input,.stack-form input,.stack-form select,.settings-form input,.settings-form select{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:8px;padding:10px;background:#fff}.settings-section{padding:20px;margin-bottom:18px}.settings-section>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.settings-section>header>.primary{display:inline-flex;align-items:center;gap:7px}.settings-section>header>div{display:flex;align-items:center;gap:8px}.managed-companies-section>header>div>div p{margin:4px 0 0;color:var(--muted);font-size:9px}.managed-company-list{display:grid;gap:9px}.managed-company-list article{display:grid;grid-template-columns:44px minmax(180px,1.1fr) minmax(180px,1fr) minmax(150px,.8fr) 100px;align-items:center;gap:14px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.managed-company-list article.inactive{background:#f6f7f9;opacity:.78}.managed-company-avatar{width:42px;height:42px;border-radius:9px;display:grid;place-items:center;overflow:hidden;background:#dfeaff;color:#2b5fae;font-size:11px;font-weight:800}.managed-company-avatar img{width:100%;height:100%;object-fit:cover}.managed-company-main strong,.managed-company-main small,.managed-company-contact span,.managed-company-capacity span,.managed-company-capacity small{display:block}.managed-company-main>div{display:flex;align-items:center;gap:7px}.managed-company-main strong{font-size:11px}.managed-company-main>div span{padding:3px 6px;border-radius:10px;background:#e7f0ff;color:#2861bb;font-size:7px;font-weight:750}.managed-company-main small,.managed-company-contact span,.managed-company-capacity span,.managed-company-capacity small{color:#657184;font-size:8px;margin-top:4px}.managed-company-contact span:last-child{display:flex;align-items:center;gap:4px}.managed-company-capacity b{color:#26354d}.settings-section h3{margin:0;font-size:14px}.settings-section>header>span{font-size:8px;font-weight:700;color:var(--blue);background:#edf4ff;padding:5px 8px;border-radius:12px}.settings-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.settings-form footer{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:15px;font-size:9px;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.appearance-section{padding:22px;margin-bottom:18px}.appearance-section>header>div{display:flex;align-items:flex-start;gap:11px}.appearance-section h3{margin:0;font-size:14px}.appearance-section header p{margin:5px 0 0;color:var(--muted);font-size:10px}html[data-theme=dark] .managed-company-list article{background:#172235}html[data-theme=dark] .managed-company-list article.inactive{background:#131c2a}html[data-theme=dark] .managed-company-main>div span{background:#243c60;color:#9fc1ff}html[data-theme=dark] .managed-company-main small,html[data-theme=dark] .managed-company-contact span,html[data-theme=dark] .managed-company-capacity span,html[data-theme=dark] .managed-company-capacity small,html[data-theme=dark] .company-active-toggle b{color:#b8c3d2}html[data-theme=dark] .managed-company-capacity b{color:#f1f5fa}html[data-theme=dark] .settings-page .primary{background:#5d8fe8;color:#fff;box-shadow:0 4px 12px #05091245}html[data-theme=dark] .settings-page .primary:hover{background:#78a6f4;color:#10203a}html[data-theme=dark] .settings-page .secondary,html[data-theme=dark] .settings-page .icon{border-color:#3b485d;background:#202c40;color:#dbe6f5}html[data-theme=dark] .settings-page .secondary:hover,html[data-theme=dark] .settings-page .icon:hover{border-color:#5d82c4;background:#2a4168;color:#fff}html[data-theme=dark] .settings-page :is(.primary,.secondary,.icon):focus-visible{outline:2px solid #78a6f4;outline-offset:2px}@media(max-width:1200px){.managed-company-list article{grid-template-columns:44px minmax(0,1.15fr) minmax(0,1fr) minmax(0,.9fr) minmax(72px,.55fr);gap:10px;padding:11px}.managed-company-list article>*,.managed-company-main,.managed-company-contact,.managed-company-capacity,.company-active-toggle{min-width:0}.managed-company-main>div{flex-wrap:wrap}.managed-company-main strong,.managed-company-contact span,.managed-company-capacity span,.managed-company-capacity small,.company-active-toggle b{overflow-wrap:anywhere}.managed-company-contact span:last-child{align-items:flex-start}.company-active-toggle b{white-space:normal}}@media(max-width:1050px){.managed-company-list article{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr) minmax(0,100px)}.managed-company-capacity{grid-column:2 / 4}}@media(max-width:720px){.managed-company-list article{grid-template-columns:44px minmax(0,1fr)}.managed-company-contact,.managed-company-capacity,.company-active-toggle{grid-column:2}}@media(max-width:1200px){.settings-grid{grid-template-columns:minmax(0,1fr);gap:14px}.settings-grid>*{min-width:0}}@media(max-width:700px){.settings-section{padding:16px;margin-bottom:14px}.settings-section>header{align-items:flex-start;gap:12px;margin-bottom:14px}.settings-section>header>div,.settings-section>header>div>div{min-width:0}.settings-section>header>span{flex:0 0 auto}.managed-companies-section>header>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:flex-start;gap:8px}.managed-companies-section>header h3{white-space:nowrap}.managed-companies-section>header p{line-height:1.35}.settings-form{grid-template-columns:minmax(0,1fr);gap:12px}.settings-form label{min-width:0}.settings-form input,.settings-form select{width:100%;min-width:0;min-height:42px;margin-top:5px}.settings-form footer{align-items:stretch;flex-direction:column;gap:12px}.settings-form footer .primary{width:100%}.managed-company-list article{grid-template-columns:44px minmax(0,1fr);gap:8px 10px;padding:12px}.managed-company-main>div{align-items:flex-start}.managed-company-main strong{line-height:1.3}.managed-company-contact,.managed-company-capacity,.company-active-toggle{grid-column:2}.company-active-toggle{justify-self:start}.settings-grid>.settings-section:first-child>header{height:auto;min-height:53px;padding:10px 0}.settings-grid>.settings-section:first-child>header>div{flex:1 1 auto;min-width:0}.settings-grid>.settings-section:first-child>header>.primary{flex:0 0 auto;padding:8px 10px;white-space:nowrap}.settings-grid>.settings-section:first-child .admin-list article{grid-template-columns:minmax(0,1fr) auto auto 30px;grid-template-areas:"user user user state" "projects profiles spacer action";align-items:start;gap:9px 6px}.settings-grid>.settings-section:first-child .admin-list article>div{grid-area:user;min-width:0}.settings-grid>.settings-section:first-child .admin-list article>span{grid-area:state;justify-self:end}.settings-grid>.settings-section:first-child .admin-list article>button:nth-of-type(1){grid-area:projects;justify-self:start}.settings-grid>.settings-section:first-child .admin-list article>button:nth-of-type(2){grid-area:profiles;justify-self:start}.settings-grid>.settings-section:first-child .admin-list article>button:nth-of-type(3){grid-area:action;justify-self:start}.settings-grid>.settings-section:first-child .admin-list article>.secondary{grid-column:auto;white-space:nowrap}}.supplier-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 15px;margin-bottom:18px}.supplier-toolbar>span{color:var(--muted);font-size:9px;white-space:nowrap}.supplier-search{display:flex;align-items:center;gap:9px;flex:1;color:var(--muted)}.supplier-search input{width:100%;border:0;outline:0;background:transparent;color:inherit;font-size:11px}.supplier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:15px}.supplier-card{padding:17px}.supplier-card>header{display:flex;align-items:flex-start;gap:10px;height:auto;min-height:38px;padding:0;border-bottom:0}.supplier-avatar{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:10px;background:#e8f0ff;color:#3568be}.supplier-card-title{min-width:0;flex:1}.supplier-card h3{margin:2px 0 0;color:#1f2d46;font-size:13px;overflow-wrap:anywhere}.supplier-card-title small{display:block;margin-top:4px;color:var(--muted);font-size:9px}.supplier-actions{display:flex;gap:4px;flex:0 0 auto}.supplier-actions button,.supplier-modal-header button{display:grid;place-items:center;border-radius:6px;padding:6px;background:transparent;color:#738096}.supplier-modal-header button{width:30px;height:30px;padding:0;border:1px solid #b91c1c;background:#dc2626;color:#fff}.supplier-actions button:hover{background:#eef3fa;color:#2563dc}.supplier-modal-header button:hover{border-color:#991b1b;background:#b91c1c;color:#fff}.supplier-actions button.danger:hover{color:#c53b48;background:#fff0f1}.supplier-details{display:grid;gap:8px;margin-top:17px;padding-top:14px;border-top:1px solid var(--line)}.supplier-details span{display:flex;align-items:center;gap:7px;color:#637087;font-size:10px;overflow-wrap:anywhere}.supplier-details svg{flex:0 0 auto;color:#8b9ab0}.supplier-notes{margin:14px 0 0;padding:10px;border-radius:7px;background:#f7f9fc;color:#6d7889;font-size:9px;line-height:1.5;white-space:pre-wrap}.supplier-empty{grid-column:1 / -1}.supplier-page-error{margin-bottom:16px}.supplier-modal{width:min(680px,100%)}.supplier-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:19px 20px 15px;border-bottom:1px solid var(--line)}.supplier-modal-header small{color:var(--blue);font-size:8px;font-weight:750;letter-spacing:1px}.supplier-modal-header h2{margin:5px 0 0;color:#1c2a42;font-size:18px}.supplier-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:20px}.supplier-form label{display:block;color:#596477;font-size:9px;font-weight:650}.supplier-form input,.supplier-form textarea{display:block;width:100%;margin-top:6px;border:1px solid #dfe3e9;border-radius:8px;padding:10px;background:#fff;color:#26344c;resize:vertical}.supplier-form input:focus,.supplier-form textarea:focus{border-color:#7ba1e7;outline:2px solid #e8f0ff}.supplier-form-wide,.supplier-form-error,.supplier-form-footer{grid-column:1 / -1}.supplier-form-error{margin:0}.supplier-form-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}@media(max-width:760px){.supplier-grid,.supplier-form{grid-template-columns:1fr}.supplier-form-wide,.supplier-form-error,.supplier-form-footer,.supplier-empty{grid-column:auto}}html:has(.modal-backdrop),body:has(.modal-backdrop){overflow:hidden}.modal-backdrop{box-sizing:border-box;width:100%;height:100%;min-height:0;display:flex;align-items:flex-start;justify-content:center;padding:64px 20px;overflow:hidden!important;overscroll-behavior:none}.modal-backdrop>.modal{flex:0 0 auto;align-self:flex-start;height:auto;max-width:100%;max-height:100%;margin:0;overflow:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable}@media(max-width:760px){.modal-backdrop{padding:32px 12px}}@media print{html:has(.modal-backdrop),body:has(.modal-backdrop){overflow:visible!important}.modal-backdrop{position:static!important;inset:auto!important;width:auto!important;height:auto!important;min-height:0!important;display:block!important;padding:0!important;overflow:visible!important;background:transparent!important}.modal-backdrop>.modal{position:static!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;overflow:visible!important}body:has(.report-backdrop) .sidebar,body:has(.report-backdrop) .topbar,body:has(.report-backdrop) .page>:not(.report-backdrop){display:none!important}body:has(.report-backdrop) .page:has(>.report-backdrop){max-width:none!important;padding:0!important}}.tasks-page{max-width:1600px}@media(min-width:1600px){.tasks-page{max-width:none}}.tasks-skeleton-page{min-height:760px}.tasks-skeleton-heading{display:grid;gap:9px;margin-bottom:24px}.skeleton-line,.skeleton-project-selector,.skeleton-board-heading,.skeleton-filters,.skeleton-board,.skeleton-card{display:block;background:linear-gradient(100deg,#e7ebf2 20%,#f7f9fc,#e7ebf2 60%);background-size:300% 100%;animation:tasks-skeleton-shimmer 1.35s ease-in-out infinite}.tasks-skeleton-heading .eyebrow{width:95px;height:9px}.tasks-skeleton-heading .title{width:220px;height:30px;border-radius:6px}.tasks-skeleton-heading .description{width:320px;max-width:75%;height:12px;border-radius:5px}.skeleton-project-selector{width:100%;height:58px;margin-bottom:14px;border-radius:10px}.skeleton-label{width:70px;height:10px;margin:5px 8px 14px}.skeleton-board-list{display:grid;gap:8px}.skeleton-board{height:38px;border-radius:8px}.skeleton-board-heading{width:210px;height:30px;margin-bottom:18px;border-radius:6px}.skeleton-filters{width:100%;height:40px;margin-bottom:12px;border-radius:8px}.skeleton-column{min-height:390px}.skeleton-column-title{width:110px;height:15px;margin:4px 3px 14px;border-radius:4px}.skeleton-card{height:92px;border-radius:9px}@keyframes tasks-skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media(prefers-reduced-motion:reduce){.skeleton-line,.skeleton-project-selector,.skeleton-board-heading,.skeleton-filters,.skeleton-board,.skeleton-card{animation:none}}.tasks-workspace{display:grid;grid-template-columns:var(--boards-panel-width, clamp(260px, 20vw, 320px)) 12px minmax(0,1fr);min-width:0;min-height:620px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#f1f3f6}.boards-panel{padding:14px 10px;border-right:1px solid var(--line);background:var(--surface, #fff)}.boards-resize-handle{position:relative;width:12px;height:100%;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none;z-index:1}.boards-resize-handle:after{content:"";position:absolute;inset:0 5px;background:var(--line);opacity:.45;transition:opacity .15s ease}.boards-resize-handle:hover:after,.boards-resize-handle:focus-visible:after,.tasks-workspace.is-resizing .boards-resize-handle:after{opacity:1}.boards-resize-handle:focus-visible{outline:2px solid var(--blue);outline-offset:-1px}.tasks-workspace.is-resizing,.tasks-workspace.is-resizing *{cursor:col-resize;-webkit-user-select:none;user-select:none}.boards-panel-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 12px;color:var(--muted);font-size:9px;font-weight:800;letter-spacing:.9px}.boards-panel-header button,.board-link>button{border:0;background:transparent;color:inherit;cursor:pointer}.boards-panel-header button{width:28px;height:28px;display:grid;place-items:center;border-radius:7px}.boards-panel-header button:hover{background:#e9eff9;color:var(--blue)}.boards-list{display:grid;gap:4px}.board-link{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,28px);align-items:center;border-radius:8px;color:#536177}.board-link>button:first-child{min-width:0;display:flex;align-items:center;gap:9px;padding:10px;text-align:left;cursor:grab;touch-action:none}.board-link.is-dragging>button:first-child{cursor:grabbing}.board-link>button:first-child svg{width:16px;height:16px;flex:0 0 16px}.board-link>button:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-link>button:not(:first-child){padding:6px;opacity:0}.board-link>button:not(:first-child) svg{width:13px;height:13px;display:block}.board-link:hover>button:not(:first-child),.board-link:focus-within>button:not(:first-child){opacity:1}.board-link:hover,.board-link.active{background:#e7effc;color:#1f5fc5}.board-content{min-width:0;max-width:100%;padding:18px;overflow:hidden;container:task-board / inline-size;background:linear-gradient(135deg,#edf3fb,#f5f7fa)}.board-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.board-header .eyebrow{color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.8px;text-transform:uppercase}.board-header h2{margin:4px 0 0;font-size:20px}.view-toggle{display:flex;padding:4px;border:1px solid var(--line);border-radius:9px;background:var(--surface, #fff)}.view-toggle button{display:flex;align-items:center;gap:6px;padding:8px 11px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.view-toggle button.active{background:var(--blue);color:#fff}.board-controls-container{width:100%;min-width:0;overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.filters{display:grid;grid-template-columns:minmax(180px,1fr) repeat(4,minmax(130px,1fr)) auto;gap:8px;margin:20px 0 12px}.filters-search-row{display:flex;min-width:0;gap:8px}.filters-search-row input{flex:1 1 auto;min-width:0}.filters input,.filters select{width:100%;min-width:130px;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface, #fff);color:var(--text);font:inherit}.filters .date-filter{position:relative;display:block;min-width:130px}.filters .date-filter-input{width:100%;min-width:0;padding-left:32px}.filters .date-filter-icon{position:absolute;top:50%;left:10px;z-index:1;color:var(--muted);pointer-events:none;transform:translateY(-50%)}.filters .date-filter-input.empty{color:transparent}.filters .date-filter-placeholder{position:absolute;top:50%;left:32px;z-index:1;max-width:calc(100% - 42px);overflow:hidden;color:var(--muted);font-size:10px;font-weight:400;pointer-events:none;text-overflow:ellipsis;transform:translateY(-50%);white-space:nowrap}.filters .clear-filters-button{flex:0 0 38px;align-self:stretch;width:38px;min-width:38px;min-height:38px;padding:0 10px}.filters .clear-filters-button{color:#c93d4d;border-color:#efc4ca}.filters .clear-filters-button:hover{background:#fff1f2;color:#a92c3d}@media(min-width:1441px){.filters-search-row{display:contents}.filters-search-row input{grid-column:1;grid-row:1}.filters .clear-filters-button{grid-column:6;grid-row:1;align-self:end}}.board-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.kanban-board{width:100%;min-width:0;display:flex;align-items:flex-start;gap:12px;padding-bottom:14px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.kanban-column{flex:0 0 280px;min-width:0;min-height:0;max-height:72vh;display:flex;flex-direction:column;padding:10px;border:1px solid #d9dee7;border-radius:12px;background:#e6e9ee;box-shadow:0 2px 5px #25385814}.kanban-column.over{background:#dce8fa;border-color:#75a2e7}.kanban-column.column-overlay{min-height:90px;padding:16px;transform:rotate(1deg);box-shadow:0 10px 24px #091e4230}.kanban-column .column-title-input{width:100%;min-width:0;padding:4px 6px;font:inherit;font-weight:600;border:1px solid #2563eb;border-radius:4px;outline:none;background:#fff}.column-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 3px 10px}.column-header h3{margin:0;font-size:11px;cursor:text}.column-header span{color:var(--muted);font-size:8px}.column-header .row{display:flex}.icon-btn{border:0;background:transparent;color:var(--muted);cursor:pointer}.icon-btn:hover{color:var(--blue)}.icon-btn.danger:hover,.card-delete:hover{color:#c93d4d}.column-drag-handle{cursor:grab;touch-action:none}.column-drag-handle:active{cursor:grabbing}.column-cards{min-width:0;min-height:0;max-height:calc(72vh - 96px);flex:0 1 auto;display:grid;grid-auto-rows:150px;gap:8px;overflow-y:auto;overscroll-behavior-x:auto;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch}.task-card{box-sizing:border-box;height:150px;overflow:hidden;padding:11px;border:1px solid #d9dee7;border-radius:9px;background:var(--surface, #fff);box-shadow:0 1px 2px #091e4240;cursor:pointer}.task-card:hover{border-color:#b5c5dd;box-shadow:0 3px 8px #091e4228}.task-card.overlay{width:258px;transform:rotate(2deg)}.card-top{display:flex;align-items:center;gap:6px}.drag-handle,.card-edit,.card-history,.card-delete{border:0;padding:2px;background:transparent;color:#8b95a5;cursor:pointer}.drag-handle{cursor:grab}.card-edit{margin-left:auto}.card-edit:hover,.card-history:hover{color:var(--blue)}.priority{padding:3px 7px;border-radius:10px;font-size:7px;font-weight:800}.priority.high{background:#ffe3e6;color:#b72e40}.priority.medium{background:#fff0c7;color:#946300}.priority.low{background:#dff4ea;color:#247454}.task-card h4{display:-webkit-box;height:31px;margin:9px 0 6px;overflow:hidden;font-size:11px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.task-card p{display:-webkit-box;margin:0 0 10px;overflow:hidden;color:var(--muted);font-size:9px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:3}.card-meta{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:8px}.card-meta>span:first-child{display:flex;align-items:center;gap:5px}.avatar{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#d9e7fb;color:#255faa;font-weight:800}.empty-drop{padding:18px 8px;border:1px dashed #bac3d0;border-radius:8px;color:var(--muted);font-size:8px;text-align:center}.add-task{width:100%;display:flex;align-items:center;gap:6px;margin-top:7px;padding:8px;border:0;border-radius:7px;background:transparent;color:#657286;cursor:pointer}.add-task:hover{background:#d8dde5}.calendar-wrap{min-width:0;max-width:100%;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--surface, #fff);overflow:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.calendar-wrap .fc{min-width:680px}.tasks-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tasks-page .span-2{grid-column:1 / -1}.tasks-page .form-actions{display:flex;justify-content:flex-end;gap:8px}.tasks-page .task-form-history{margin-right:auto;display:inline-flex;align-items:center;gap:6px}.calendar-wrap .fc-event{border-left-width:4px;box-shadow:0 1px 3px #091e4230}.calendar-column-legend{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--line)}.calendar-column-legend>span{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--line);border-radius:12px;background:var(--surface, #fff);color:var(--muted);font-size:8px;font-weight:700}.calendar-column-legend i{width:9px;height:9px;flex:0 0 9px;border-radius:50%}html[data-theme=dark] .tasks-workspace,html[data-theme=dark] .board-content{background:#152033}html[data-theme=dark] .boards-panel{background:#192335;border-color:#303b4f}html[data-theme=dark] .boards-panel-header,html[data-theme=dark] .boards-panel-header button{color:#cbd5e3}html[data-theme=dark] .boards-panel-header button:hover{background:#2a3a55;color:#fff}html[data-theme=dark] .board-link{color:#c4cfdf}html[data-theme=dark] .board-link:hover{background:#263752;color:#eaf2ff}html[data-theme=dark] .board-link.active{background:#315386;color:#fff}html[data-theme=dark] .board-link>button:not(:first-child):hover{color:#fff}html[data-theme=dark] .kanban-column{background:#202b3d;border-color:var(--line)}.task-history-modal{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow-y:auto}.modal-header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;min-height:34px;margin-bottom:16px;padding-right:38px}.modal-header h2{margin:0}.task-modal-close{position:absolute;top:10px;right:10px;z-index:2;width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid #b91c1c!important;border-radius:50%;background:#dc2626!important;color:#fff!important;cursor:pointer;transition:background .15s ease,transform .15s ease}.task-modal-close:hover{border-color:#991b1b!important;background:#b91c1c!important;color:#fff!important;transform:scale(1.05)}.task-history-modal>header{position:relative;padding-right:38px}.task-history-list .history-user-role{padding:3px 7px;border-radius:10px;background:#edf2f8;color:#53647b;font-size:7px;font-weight:750;white-space:nowrap}.task-history-list{display:grid;gap:9px}.task-history-list>article{padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface, #fff)}.task-history-list .history-meta{display:flex;align-items:center;gap:7px}.task-history-list .history-meta time{margin-left:auto;color:var(--muted);font-size:8px}.task-history-list .history-action{display:inline-flex;margin:8px 0;padding:3px 7px;border-radius:10px;background:#e8f0fd;color:#285fae;font-size:7px;font-weight:800;text-transform:uppercase}.task-history-list .history-action.deleted{background:#ffe5e8;color:#b83245}.task-history-list .history-change{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--line);font-size:8px}.task-history-list .history-change span{color:var(--muted);overflow-wrap:anywhere}@media(max-width:1600px){.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-search-row{grid-column:1 / -1}.filters input,.filters select{width:100%}.board-actions{justify-content:flex-start}}@media(max-width:900px){.tasks-workspace{grid-template-columns:1fr}.boards-resize-handle{display:none}.boards-panel{border-right:0;border-bottom:1px solid var(--line)}.boards-list{grid-auto-columns:minmax(180px,1fr);overflow-x:auto}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.board-content{padding:12px}.board-header{align-items:flex-start;flex-direction:column}.filters,.tasks-page .form-grid{grid-template-columns:1fr}.tasks-page .span-2{grid-column:auto}.kanban-column{flex-basis:min(280px,calc(100vw - 66px))}.calendar-wrap{padding:10px}.calendar-wrap .fc{min-width:640px}}@container task-board (max-width: 720px){.board-header{align-items:flex-start;flex-direction:column}.view-toggle{max-width:100%}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters-search-row{display:flex;grid-column:1 / -1}.filters input,.filters select,.filters button{width:100%}.board-actions{justify-content:flex-start}}@container task-board (max-width: 420px){.filters{grid-template-columns:minmax(0,1fr)}.filters-search-row,.filters>select,.filters>.date-filter{grid-column:1 / -1}}.gantt-page{max-width:1600px}@media(min-width:1600px){.gantt-page{max-width:none}}.gantt-error{margin:0 0 14px}.gantt-workspace{position:relative;display:grid;grid-template-columns:minmax(190px,220px) minmax(0,1fr);gap:14px;align-items:start}.gantt-scopes{position:sticky;top:84px;z-index:5;overflow:hidden;background:var(--surface)}@media(max-width:1100px){.gantt-scopes{top:74px}}.gantt-scopes-header{display:flex;align-items:center;min-height:52px;padding:11px 13px;border-bottom:1px solid var(--line);background:var(--surface-soft, #f8fafc)}.gantt-scopes-header>div{display:flex;align-items:center;gap:9px}.gantt-scopes-header svg{color:var(--blue)}.gantt-scopes-header h3{margin:0;color:var(--text);font-size:12px}.gantt-scope-list{display:grid;gap:2px;padding:8px}.gantt-scope-option{width:100%;min-width:0;display:flex;align-items:center;gap:8px;padding:9px 8px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);text-align:left}.gantt-scope-option>svg{flex:0 0 auto;color:var(--blue)}.gantt-scope-option>span{min-width:0;display:grid;gap:2px}.gantt-scope-option strong,.gantt-scope-option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-scope-option strong{color:var(--text);font-size:10px}.gantt-scope-option small{color:var(--muted);font-size:8px}.gantt-scope-option:hover,.gantt-scope-option.active{border-color:color-mix(in srgb,var(--blue) 22%,var(--line));background:color-mix(in srgb,var(--blue) 8%,var(--surface))}.gantt-scope-option.active>svg,.gantt-scope-option.active strong{color:var(--blue)}.gantt-physical-scopes{display:grid;gap:2px;margin-top:7px;padding-top:9px;border-top:1px solid var(--line)}.gantt-physical-scopes-label{padding:0 8px 4px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.gantt-physical-scopes>p{margin:4px 8px 8px;color:var(--muted);font-size:10px}.gantt-main{position:relative;z-index:1;min-width:0}.gantt-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.gantt-summary-card{display:grid;gap:8px;padding:16px 18px}.gantt-summary-card span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.08em}.gantt-summary-card span svg{color:var(--blue)}.gantt-summary-card strong{color:var(--text);font-size:24px;letter-spacing:-.7px}.gantt-panel{overflow:hidden}.gantt-panel-header{margin-top:20px;min-height:74px;padding:15px 18px;gap:16px}.gantt-panel-header>div{min-width:0}.gantt-panel-header h2{margin:4px 0 0;overflow:hidden;color:var(--text);font-size:17px;text-overflow:ellipsis;white-space:nowrap}.gantt-planning-link{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.gantt-loading,.gantt-empty{display:grid;place-items:center;gap:8px;min-height:210px;padding:28px;color:var(--muted);text-align:center}.gantt-empty h2,.gantt-empty p{margin:0}.gantt-empty svg{color:var(--blue)}.gantt-empty-inline{min-height:230px}.gantt-empty-inline strong{color:var(--text);font-size:13px}.gantt-empty-inline p{font-size:11px}.gantt-scroll{position:relative;overflow:hidden;isolation:isolate;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.gantt-scroll:before{display:none}.gantt-scroll-hint{display:none}.gantt-board{position:relative;display:grid;min-width:1000px;border-top:1px solid var(--line);display:none}.gantt-split-board{display:grid;grid-template-columns:var(--gantt-label-column-width) minmax(0,1fr);min-width:0;border-top:1px solid var(--line)}.gantt-label-pane{position:relative;z-index:2;min-width:0;overflow:hidden;border-right:1px solid var(--line);background:var(--surface, #fff)}.gantt-timeline-viewport{position:relative;z-index:1;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.gantt-timeline-board{min-width:var(--gantt-timeline-width)}.gantt-label-row,.gantt-track-row{box-sizing:border-box;height:64px;min-height:64px}.gantt-label-row{overflow:hidden;border-bottom:1px solid var(--line);background:var(--surface, #fff)}.gantt-label-row .gantt-phase-label{position:relative;left:auto;width:100%;height:64px;min-height:64px;border-bottom:0}.gantt-track-row .gantt-track{width:100%!important;height:64px;min-height:64px}.gantt-split-board .gantt-column-heading{position:relative;left:auto;width:100%;box-sizing:border-box}.gantt-split-board .gantt-months{width:var(--gantt-timeline-width)!important}.gantt-column-heading,.gantt-months{min-height:42px;display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--surface-soft, #f8fafc);color:var(--muted);font-size:8px;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.gantt-column-heading{position:sticky;left:0;z-index:100;justify-content:space-between;gap:6px;padding:0 14px;border-right:1px solid var(--line);box-shadow:5px 0 8px #0f172a12;isolation:isolate;transform:translateZ(0)}.gantt-column-heading>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-column-resizer{position:absolute;top:0;right:-4px;bottom:0;z-index:31;width:9px;padding:0;border:0;border-left:2px solid color-mix(in srgb,var(--blue) 25%,var(--line));border-radius:0;background:transparent;cursor:col-resize;touch-action:none}.gantt-column-resizer:hover,.gantt-column-resizer:focus-visible{border-left-color:var(--blue);background:color-mix(in srgb,var(--blue) 10%,transparent);outline:none}.gantt-months{overflow:hidden}.gantt-months span{flex:0 0 auto;height:42px;display:flex;align-items:center;justify-content:center;padding:0 4px;border-right:1px solid var(--line);white-space:nowrap}.gantt-row{position:relative;display:grid;grid-column:1 / -1;grid-template-columns:var(--gantt-label-column-width) var(--gantt-timeline-width)}.gantt-phase-label,.gantt-track{min-height:64px;border-bottom:1px solid var(--line)}.gantt-phase-label{position:sticky;left:0;z-index:100;grid-column:1;display:grid;align-content:center;justify-items:start;gap:4px;overflow:hidden;box-sizing:border-box;width:100%;padding:0 12px;border-top:0;border-right:1px solid var(--line);border-left:0;background:var(--surface, #fff);background-color:var(--surface, #fff);box-shadow:5px 0 8px #0f172a12;color:var(--text);isolation:isolate;transform:translateZ(0);text-align:left;text-overflow:ellipsis;white-space:nowrap}.gantt-phase-label:hover{background:color-mix(in srgb,var(--blue) 6%,var(--surface))}.gantt-phase-label:after{content:"";position:absolute;top:0;right:0;bottom:0;width:5px;border-left:2px solid transparent;cursor:col-resize;pointer-events:none}.gantt-phase-label:hover:after{border-left-color:color-mix(in srgb,var(--blue) 55%,var(--line))}.gantt-unit-label{display:flex;align-items:center;gap:7px;padding-left:14px;background:color-mix(in srgb,var(--blue) 4%,var(--surface))}.gantt-unit-label svg{flex:0 0 auto;color:var(--blue)}.gantt-unit-label strong{font-size:12px}.gantt-block-label{border-bottom-color:color-mix(in srgb,var(--blue) 22%,var(--line));background:color-mix(in srgb,var(--blue) 8%,var(--surface))}.gantt-block-label strong{color:var(--blue);font-size:12px}.gantt-unit-phase-label{background:color-mix(in srgb,var(--surface-soft, #f8fafc) 45%,var(--surface))}.gantt-phase-label strong{overflow:hidden;font-size:11px;text-overflow:ellipsis}.gantt-phase-label small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis}.gantt-phase-label small.gantt-actual-dates{color:var(--blue)}.gantt-track{position:relative;z-index:1;grid-column:2;width:100%!important;min-width:0;overflow:hidden;background:color-mix(in srgb,var(--surface-soft, #f8fafc) 72%,transparent)}.gantt-month-grid{position:absolute;inset:0;background-image:linear-gradient(to right,transparent calc(100% - 1px),var(--line) 100%);background-repeat:repeat-x;opacity:.8;pointer-events:none}.gantt-today-line{position:absolute;top:0;bottom:0;z-index:1;width:2px;background:#e35462;opacity:.8;pointer-events:none}.gantt-bar{position:absolute;top:7px;z-index:2;min-width:24px;height:17px;overflow:hidden;padding:0 12px;border:0;border-radius:6px;background:#5c8dde;color:#fff;cursor:pointer;font-size:9px;font-weight:800;text-align:left;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 3px 7px #3868be24}.gantt-bar.gantt-actual-bar{z-index:3;top:31px;height:18px;border:2px solid #167653;background:#27a477;box-shadow:0 2px 6px #16765338}.gantt-bar.gantt-actual-bar span{display:block}.gantt-bar.gantt-actual-bar.gantt-status-completed{background:color-mix(in srgb,#39a879 80%,#fff)}.gantt-bar.gantt-actual-bar.gantt-status-blocked,.gantt-bar.gantt-actual-bar.gantt-status-paused{background:color-mix(in srgb,#d98a35 80%,#fff)}.gantt-bar.gantt-actual-bar.gantt-status-not_started,.gantt-bar.gantt-actual-bar.gantt-status-waiting{background:color-mix(in srgb,#8290a6 80%,#fff)}.gantt-bar.gantt-actual-bar,.gantt-bar.gantt-actual-bar.gantt-status-completed,.gantt-bar.gantt-actual-bar.gantt-status-blocked,.gantt-bar.gantt-actual-bar.gantt-status-paused,.gantt-bar.gantt-actual-bar.gantt-status-not_started,.gantt-bar.gantt-actual-bar.gantt-status-waiting{background:#27a477}.gantt-bar:hover{filter:brightness(.93)}.gantt-bar span{display:block;overflow:hidden;text-overflow:ellipsis}.gantt-status-completed{background:#39a879}.gantt-status-in_progress,.gantt-status-approval{background:#4f82db}.gantt-status-blocked,.gantt-status-paused{background:#d98a35}.gantt-status-not_started,.gantt-status-waiting{background:#8290a6}.gantt-legend{display:flex;flex-wrap:wrap;gap:15px;padding:13px 17px;color:var(--muted);font-size:9px}.gantt-legend span{display:inline-flex;align-items:center;gap:6px}.gantt-legend-dot,.gantt-legend-today{display:inline-block;width:9px;height:9px;border-radius:50%;background:#4f82db}.gantt-legend-dot.completed{background:#39a879}.gantt-legend-dot.pending{background:#8290a6}.gantt-legend-today{width:2px;height:13px;border-radius:0;background:#e35462}.gantt-legend-bar{display:inline-block;width:18px;height:8px;border-radius:3px;background:#4f82db}.gantt-legend-bar.execution{height:6px;border:2px solid #167653;background:#27a477}@media(max-width:760px){.gantt-page{max-width:none;padding:20px 12px 30px}.gantt-summary-grid{grid-template-columns:1fr;gap:10px;margin:10px 0}.gantt-workspace{grid-template-columns:1fr}.gantt-scopes{position:static;z-index:auto}.gantt-panel-header{align-items:flex-start;flex-direction:column;height:auto;min-height:0;padding:14px;gap:10px}.gantt-panel>.gantt-panel-header{height:auto;padding-bottom:22px}.gantt-panel-header>div{width:100%}.gantt-planning-link{align-self:stretch;justify-content:center;box-sizing:border-box;width:100%}.gantt-scroll-hint{display:block;margin:0;padding:8px 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--blue) 5%,var(--surface));color:var(--muted);font-size:9px}.gantt-scroll{border-bottom:1px solid var(--line)}.gantt-board{min-width:calc(var(--gantt-label-column-width) + var(--gantt-mobile-timeline-width))!important;grid-template-columns:var(--gantt-label-column-width) var(--gantt-mobile-timeline-width)!important}.gantt-split-board{grid-template-columns:var(--gantt-label-column-width) minmax(0,1fr)}.gantt-timeline-board,.gantt-split-board .gantt-months{width:var(--gantt-mobile-timeline-width)!important;min-width:var(--gantt-mobile-timeline-width)!important}.gantt-row{grid-template-columns:var(--gantt-label-column-width) var(--gantt-mobile-timeline-width)}.gantt-column-heading{width:var(--gantt-label-column-width);padding:0 12px;background:var(--surface-soft, #f8fafc)}.gantt-months,.gantt-track{width:var(--gantt-mobile-timeline-width)!important}.gantt-months span{width:var(--gantt-mobile-month-width)!important;padding:0 8px;font-size:7px}.gantt-phase-label{width:var(--gantt-label-column-width);min-height:64px;padding-right:10px;background:var(--surface, #fff);white-space:normal}.gantt-phase-label strong,.gantt-phase-label small{white-space:normal;line-height:1.35}.gantt-legend{gap:9px 12px;padding:11px 14px;font-size:8px}}html[data-theme=dark] .gantt-column-heading,html[data-theme=dark] .gantt-months{background:var(--surface-soft)}html[data-theme=dark] .gantt-scopes{background:#192335;border-color:#303b4f}html[data-theme=dark] .gantt-scopes-header{background:#202b3d;border-bottom-color:#303b4f}html[data-theme=dark] .gantt-scopes-header svg{color:#9fc2ff}html[data-theme=dark] .gantt-scopes-header h3{color:#eef4ff}html[data-theme=dark] .gantt-scope-option{color:#c4cfdf}html[data-theme=dark] .gantt-scope-option>svg{color:#9fc2ff}html[data-theme=dark] .gantt-scope-option strong{color:#eef4ff}html[data-theme=dark] .gantt-scope-option small,html[data-theme=dark] .gantt-physical-scopes-label,html[data-theme=dark] .gantt-physical-scopes>p{color:#aebbd0}html[data-theme=dark] .gantt-scope-option:hover{border-color:#405b85;background:#263752}html[data-theme=dark] .gantt-scope-option.active{border-color:#4f78b8;background:#315386;color:#fff}html[data-theme=dark] .gantt-scope-option.active>svg,html[data-theme=dark] .gantt-scope-option.active strong{color:#fff}
