.route-principle{color:#527064;background:#edf3ef;border:1px solid #dce8df;border-radius:9px;align-items:center;gap:14px;margin-bottom:26px;padding:18px 22px;font-size:13px;display:flex}.route-principle svg{flex-shrink:0}.routes-list{gap:22px;display:grid}.route-card{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.route-card>header{justify-content:space-between;align-items:center;gap:18px;padding:24px 26px 20px;display:flex}.route-card h2{margin-top:7px;font-size:19px}.route-status{color:#89978e;align-items:center;gap:6px;font-size:10px;display:flex}.route-status:before{content:"";background:#b7c1bb;border-radius:50%;width:6px;height:6px}.route-status.active{color:#427458}.route-status.active:before{background:#54916b}.route-overview{align-items:center;gap:22px;padding:3px 26px 27px;display:flex}.route-inputs{flex:0 0 200px;max-width:220px}.route-inputs>small{color:var(--muted);margin-bottom:10px;display:block}.route-tags{flex-wrap:wrap;gap:7px;display:flex}.route-tags>span{background:#f1f5f2;border-radius:5px;align-items:center;gap:6px;padding:5px 8px;font-size:11px;display:inline-flex}.route-direction{color:#9aafa1;flex-shrink:0}.route-chain{flex:1;gap:8px;margin:0;padding:0;list-style:none;display:flex}.route-chain li{background:#fcfdfb;border:1px solid #dfe8e1;border-radius:7px;flex:1;align-items:center;gap:8px;min-width:0;padding:13px 11px;font-size:12px;display:flex}.route-chain li>span{color:#52735e;background:#eaf1eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:10px;display:inline-flex}.route-card>footer{color:#64816f;background:#fcfdfc;border-top:1px solid #edf1ec;align-items:center;gap:9px;padding:13px 26px;font-size:12px;display:flex}.route-card>footer small{color:#8a968b;margin-right:auto}.route-storage{border:1px dashed #cedbd1;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:18px 22px;display:flex}.route-storage h3{font-size:13px}.route-storage p,.route-storage>small{color:var(--muted);margin-top:5px;font-size:11px}.route-help p{color:#76877b;max-width:850px;padding:8px;font-size:12px}.route-editor .field{margin-bottom:24px}.route-editor-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:30px;display:grid}.route-section-title{align-items:flex-start;gap:10px;margin-bottom:18px;display:flex}.route-section-title>span{color:#547a60;background:#eaf1eb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:25px;height:25px;font-size:11px;display:inline-flex}.route-section-title h3{font-size:14px}.route-section-title p{color:var(--muted);margin-top:4px;font-size:11px}.route-step-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.route-step-list li{border:1px solid #dee8e0;border-radius:8px;align-items:flex-start;gap:11px;padding:15px 13px;display:flex;position:relative}.route-step-list li+li:before{content:"";border-right:1px solid #c3d5c8;height:13px;position:absolute;top:-13px;right:31px}.route-step-icon{color:#62826b;background:#eef3ee;border-radius:6px;flex-shrink:0;padding:6px;line-height:0}.route-step-list h4{margin:2px 0 4px;font-size:13px}.route-step-list p{color:var(--muted);font-size:11px}.route-step-list small{color:#8d9d8f;font-size:9px}.route-step-list .icon{flex-shrink:0;margin-right:auto;padding:5px}.route-add{flex-direction:column;align-items:flex-start;gap:7px;margin-top:15px;display:flex}.route-add>small{color:var(--muted)}.route-add button{border-style:dashed;font-size:11px}.route-empty{color:var(--muted);border:1px dashed var(--line);border-radius:6px;padding:18px;font-size:12px}.route-result{color:#51755b;gap:10px;padding:16px 4px;display:flex}.route-result small{color:var(--muted);font-size:10px;display:block}.route-result b{font-size:12px}.route-result p{color:var(--muted);margin-top:4px;font-size:10px}.route-source-options{gap:10px;display:grid}.route-source-option{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:15px 12px;display:flex}.route-source-option.checked{background:#f2f7f2;border-color:#7aa78a}.route-source-option input{flex-shrink:0;margin:4px 0 0}.route-source-option>svg{color:#6a8972;flex-shrink:0;margin-top:2px}.route-source-option b{font-size:12px}.route-source-option p{color:var(--muted);margin-top:4px;font-size:10px}.route-source-option small{color:#9b8b65;margin-top:7px;font-size:9px;display:block}.route-source-hint{color:var(--muted);margin-top:14px;font-size:11px}.route-save-preview{background:#f6f8f3;border:1px solid #e3e9db;border-radius:8px;margin-top:16px;padding:16px 18px;font-size:12px}.route-save-preview>div{color:#53734e;align-items:center;gap:8px;display:flex}.route-save-preview p{margin-top:8px}.route-save-preview small{color:var(--muted);margin-top:10px;font-size:10px;display:block}.route-save-preview .route-transfer{color:#98732b;font-size:11px}.route-editor-actions{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:20px;padding-top:18px;display:flex}.route-editor-actions>span{color:var(--muted);margin-left:auto;font-size:11px}@media (width<=1150px){.route-overview{flex-wrap:wrap}.route-inputs{flex:1;max-width:none}.route-chain{flex-basis:100%}.route-direction{transform:rotate(-90deg)}}@media (width<=760px){.routes-page .page-heading{flex-wrap:wrap}.route-card>header{align-items:flex-start;padding:18px}.route-card h2{font-size:16px}.route-card>header button{white-space:nowrap;padding:7px;font-size:10px}.route-overview{gap:14px;padding:0 18px 20px}.route-chain{flex-direction:column}.route-chain li{font-size:11px}.route-card>footer{flex-wrap:wrap;padding:12px 18px}.route-card>footer small{margin:0}.route-storage{flex-direction:column;align-items:flex-start;padding:16px}.route-editor-grid{grid-template-columns:minmax(0,1fr);gap:16px}.route-editor-actions{flex-wrap:wrap}.route-editor-actions>span{width:100%}.route-editor-actions button{font-size:11px}.route-principle{padding:15px;font-size:11px}.route-card>header{flex-wrap:wrap}}:root{color:#243b38;font-synthesis:none;--green:#235c53;--ink:#213c36;--muted:#788982;--line:#e0e7e3;--soft:#edf3ef;--gold:#c7a96a;background:#f6f8f7;font-family:Tahoma,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button,.button{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:7px;justify-content:center;align-items:center;gap:8px;padding:9px 15px;font-size:13px;text-decoration:none;transition:background .15s,border-color .15s;display:inline-flex}button:hover,.button:hover{background:#edf3ef;border-color:#bdcec5}button:disabled,.disabled{opacity:.45;pointer-events:none}button.primary,.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#184b43}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}h1{letter-spacing:-.5px;font-size:29px;line-height:1.5}h2{font-size:18px}h3{font-size:15px}small{font-size:11px}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;outline:none;width:100%;min-width:0;padding:9px 11px;transition:border-color .2s}input:focus,textarea:focus,select:focus{border-color:#4b887a;box-shadow:0 0 0 3px #235c530a}textarea{resize:vertical;line-height:1.9}input[type=number],input[type=email],input[type=date]{text-align:right;direction:ltr}input[type=checkbox]{width:16px;height:16px;accent-color:var(--green)}::placeholder{color:#9daaa4}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #85b9a8}.app-shell{min-height:100vh;display:flex}.sidebar{border-left:1px solid var(--line);z-index:10;background:#fff;flex-direction:column;width:222px;padding:29px 17px 22px;display:flex;position:fixed;top:0;bottom:0;right:0}.brand{align-items:center;gap:10px;padding:0 3px 38px;display:flex}.brand b{letter-spacing:.9px;font-size:15px;line-height:1.6;display:block}.brand span{color:var(--muted);font-size:10px;display:block}.brand-mark{width:40px;height:40px;position:relative;overflow:hidden}.brand-mark i{border:2px solid var(--green);border-bottom:0;border-radius:100% 100% 0 0;width:35px;height:24px;display:block;position:absolute;top:5px;left:2px;transform:rotate(-18deg)}.brand-mark i:nth-child(2){top:12px}.brand-mark i:nth-child(3){top:19px}.nav-label{color:#9aa59f;margin:0 15px 12px;font-size:10px}.sidebar nav{flex-direction:column;gap:5px;display:flex}.sidebar nav button{color:#6b7f76;background:0 0;border:0;justify-content:flex-start;gap:12px;padding:12px 16px}.sidebar nav button.selected{color:#20594b;background:#eaf2ed;font-weight:700}.sidebar nav i{background:#235c53;border-radius:50%;width:5px;height:5px;margin-right:auto}.sidebar-bottom{border-top:1px solid var(--line);align-items:center;gap:9px;margin-top:auto;padding:18px 8px 0;display:flex}.sidebar-bottom b{font-size:10px;font-weight:400}.sidebar-bottom small{color:var(--muted);font-size:9px;display:block}.status-dot{background:#c5a569;border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.status-dot.on{background:#579b76}.main-shell{width:calc(100% - 222px);min-width:0;margin-right:222px}.topbar{border-bottom:1px solid var(--line);background:#ffffffc7;justify-content:space-between;align-items:center;height:73px;padding:0 38px;font-size:12px;display:flex}.topbar>div{align-items:center;gap:12px;display:flex}.crumb{color:var(--muted);font-size:11px}.avatar{color:#496b5b;background:#e3ebe5;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;margin-right:10px;font-size:10px;font-weight:700;display:inline-flex}main{max-width:1800px;margin:auto;padding:33px 38px 65px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin:2px 0 32px;display:flex}.page-heading p{color:#7f9188;margin-bottom:5px;font-size:11px}.page-heading span{color:#7b8a82;margin-top:9px;font-size:13px;display:block}.page-heading button{white-space:nowrap}.summary-strip{border:1px solid var(--line);background:#fff;border-radius:9px;grid-template-columns:repeat(3,1fr) 1.6fr;margin-bottom:34px;padding:22px 0;display:grid}.summary-strip>div{border-left:1px solid var(--line);align-items:center;gap:18px;padding:0 25px;display:flex}.summary-strip>div:last-child{border:0}.summary-strip svg{color:#70927f}.summary-strip span{color:#849188;font-size:11px}.summary-strip strong{color:#304c3e;font-size:26px;font-weight:400;line-height:1.5;display:block}.summary-strip small{color:#465f50;max-width:230px;margin-top:5px;line-height:1.8;display:block}.section-title{justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;display:flex}.search{border:1px solid var(--line);color:#8b9b91;background:#fff;border-radius:6px;align-items:center;gap:8px;width:265px;padding:0 10px;display:flex}.search input{background:0 0;border:0;padding:8px 0;font-size:11px}.search input:focus{box-shadow:none}.project-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;display:grid}.project-card{text-align:right;background:#fff;border-radius:9px;max-width:580px;padding:0;transition:transform .2s,border-color .2s;display:block;overflow:hidden}.project-card:hover{background:#fff;border-color:#97b3a3;transform:translateY(-3px)}.project-art{color:#356557;background:#e2e9e3;height:156px;padding:23px;position:relative;overflow:hidden}.project-art.parking{background:#dae5de}.project-art>span{letter-spacing:2px;font-size:10px;position:absolute;bottom:18px;right:23px}.project-art>svg{position:absolute;top:22px;left:22px}.canopy{opacity:.5;width:280px;height:100px;position:absolute;top:20px;right:20%;transform:skewY(-6deg)}.canopy i{border:1px solid #748b7b;border-radius:100% 100% 0 0;width:65px;height:65px;position:absolute;top:10px;left:0}.canopy i:after,.canopy i:before{content:"";background:#748b7b;width:1px;height:55px;position:absolute;top:64px}.canopy i:after{right:0}.canopy i:before{left:0}.canopy i:nth-child(2){left:50px}.canopy i:nth-child(3){left:100px}.canopy i:nth-child(4){left:150px}.canopy i:nth-child(5){left:200px}.shade .canopy i{border-radius:0;height:27px;top:39px;transform:skewY(-12deg)}.shade .canopy i:before,.shade .canopy i:after{top:26px}.project-card-body{padding:21px 23px 0}.project-card-body>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.project-card-body small{color:#a1aca5;font-size:10px}.project-card h3{margin:16px 0 8px;font-size:17px}.project-card p{color:#7f8d84;min-height:43px;font-size:12px;line-height:1.9}.project-card footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;margin-top:22px;padding:15px 0;display:flex}.project-card footer>span{color:#748478;align-items:center;gap:7px;font-size:11px;display:flex}.badge{color:#708078;white-space:nowrap;background:#f0f3f1;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-size:10px;display:inline-flex}.badge.completed,.badge.ready,.badge.aligned,.badge.sent,.badge.observed,.badge.derived{color:#4a7a58;background:#edf5ed}.badge.awaiting_provider,.badge.deviation,.badge.missing,.badge.unknown,.badge.assumption,.badge.conversion_required{color:#a0803f;background:#f8f1e4}.badge.failed,.badge.conflict,.badge.error{color:#b66b53;background:#fbebe6}.badge.running,.badge.queued{color:#51758b;background:#e9f0f5}.intro-band{background:#edf3ed;border:1px solid #d8e4da;border-radius:9px;justify-content:space-between;align-items:center;gap:40px;margin-top:36px;padding:30px;display:flex}.intro-band h2{margin-bottom:9px;font-size:17px}.intro-band p{color:#81917d;max-width:660px;font-size:12px;line-height:2}.intro-band button{white-space:nowrap;background:0 0}.panel{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:20px;padding:25px}.panel>h2{align-items:center;gap:10px;margin-bottom:20px;display:flex}.panel.compact{padding:21px}.compact>h3{margin-bottom:16px}.compact>p{color:#7b8c82;margin:12px 0;font-size:12px}.compact button{width:100%;padding:8px 11px;font-size:11px}.muted{color:var(--muted);margin:10px 0 18px;font-size:12px;line-height:2}.note{color:#96805a;background:#f8f5ec;border:1px solid #eae3d0;border-radius:5px;margin-bottom:20px;padding:13px 16px;font-size:12px;line-height:1.9}.note ul{margin:8px 0;padding-right:22px}.note a{color:inherit}.error{color:#ad533e;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff0e9;border:1px solid #f5d6c9;border-radius:6px;margin-bottom:15px;padding:13px 18px;font-size:12px}.error button{margin-right:20px}.empty{text-align:center;border:1px dashed var(--line);color:var(--muted);background:#fff;border-radius:8px;margin:20px 0;padding:70px}.empty svg{color:#8da696}.empty h2{color:#3b5845;margin:15px 0 5px}.empty button{margin-top:20px}.back-button{color:#8b9b90;background:0 0;border:0;margin-bottom:20px;padding:0;font-size:11px}.project-heading{margin-bottom:25px}.project-heading h1{font-size:27px}.pipeline{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(4,1fr);margin-bottom:28px;padding:20px 12px;display:grid}.pipeline>div{border-left:1px solid var(--line);color:#9aa59e;align-items:center;gap:13px;padding:0 20px;display:flex}.pipeline>div:last-child{border:0}.pipeline>div>span{border:1px solid #dce3dc;border-radius:50%;place-items:center;width:30px;height:30px;font-size:12px;display:grid}.pipeline .done>span{color:#4e7959;background:#edf4ed;border-color:#d5e4d7}.pipeline b{font-size:12px;font-weight:400}.pipeline .done b{color:#386149}.pipeline small{color:#a3aea6;font-size:10px;display:block}.tabs{border-bottom:1px solid var(--line);gap:26px;margin:0 0 27px;display:flex}.tabs button{color:#88988e;background:0 0;border:0;border-radius:0;padding:10px 0 14px;font-size:12px;position:relative}.tabs button.active{color:#28614d}.tabs button.active:after{content:"";background:#28614d;width:100%;height:2px;position:absolute;bottom:-1px;right:0}.tabs small{background:#e7eee8;border-radius:3px;padding:0 5px;font-size:10px}.workspace-grid{grid-template-columns:minmax(0,1fr) 285px;gap:22px;display:grid}.lead{color:#6b8071;margin-bottom:20px;font-size:14px;line-height:2.3}.pre{white-space:pre-wrap}.quantities-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 25px;display:grid}.quantities-grid>div{border-bottom:1px solid #edf0ec;padding:15px 0}.quantities-grid>div>p{color:#7e9181;margin-bottom:8px;font-size:11px}.quantities-grid strong{color:#356548;margin-bottom:8px;font-size:29px;font-weight:400;display:block}.quantities-grid strong small{color:#95a48f;font-size:12px}.evidence-links{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.evidence-links button{color:#7a907c;text-overflow:ellipsis;background:#f7f9f6;border:1px solid #e7ede4;max-width:100%;padding:3px 6px;font-size:9px;overflow:hidden}.finding{border-bottom:1px solid #edf0ec;align-items:flex-start;gap:12px;padding:18px 0;display:flex}.finding>svg{color:#c09d6f;flex-shrink:0;margin-top:4px}.finding>div{flex:1}.finding b{font-size:13px;font-weight:400}.finding p{color:#879784;margin-top:7px;font-size:11px;line-height:2}.next-action{border-bottom:1px solid #eef1e9;align-items:flex-start;gap:10px;padding:12px 0;display:flex}.next-action>span{color:#94aa91;padding-top:2px;font-size:11px}.next-action p{color:#7a8e74;font-size:11px;line-height:2}.document-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:20px;display:grid}.document-card{border:1px solid var(--line);background:#fff;border-radius:8px;min-width:0;padding:22px}.document-title{align-items:center;gap:12px;margin-bottom:18px;display:flex}.document-title>svg{color:#6d8d74;flex-shrink:0}.document-title>div{flex:1;min-width:0}.document-title h3{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.document-title small{color:#9fa997;font-size:9px}.document-card>a{margin-top:15px;font-size:11px;display:inline-block}.document-card>p{color:#948669;font-size:12px}.page-thumbnails{gap:10px;display:flex;overflow-x:auto}.page-thumbnails button{border-radius:5px;width:165px;min-width:165px;padding:0;display:block;overflow:hidden}.page-thumbnails img,.text-page{object-fit:contain;background:#f8f9f5;width:100%;height:126px;padding:7px}.text-page{color:#92a083;place-items:center;display:grid}.page-thumbnails span{color:#8b9a7f;padding:6px;font-size:9px;display:block}.field{flex-direction:column;gap:6px;min-width:0;margin-bottom:17px;display:flex}.field>span{color:#74846b;font-size:11px}.field textarea,.field input,.field select{font-size:12px}.field input{height:40px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;display:grid}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px}.editor{border:1px solid var(--line);background:#fff;border-radius:8px;max-width:1150px;padding:0 28px 28px}.editor-toolbar{z-index:3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffed;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;gap:15px;margin:0 -28px 24px;padding:16px 28px;display:flex;position:sticky;top:0}.editor-toolbar>div{align-items:center;gap:10px;display:flex}.editor-toolbar span{font-size:11px}.editor-toolbar small{color:#a18b5e;font-size:10px}.editor>h3{border-top:1px solid var(--line);margin:30px 0 18px;padding-top:25px}.editor .section-title{margin-top:25px}.editable-row{background:#fbfcf9;border:1px solid #e7ebe0;border-radius:6px;margin-bottom:15px;padding:18px}.editable-row select{width:auto;font-size:11px}.check{color:#718564;cursor:pointer;align-items:center;gap:9px;margin:10px 0;font-size:12px;display:flex}.checks{flex-wrap:wrap;gap:20px;margin:8px 0 20px;display:flex}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th,td{text-align:right;vertical-align:top;border-bottom:1px solid #e6ecde;padding:13px 10px}th{color:#84936e;background:#f2f5ec;font-size:10px;font-weight:400}td input,td textarea,td select{margin-bottom:6px;padding:6px;font-size:11px}td:nth-child(2){width:140px}.requirement{border:1px solid #e8ebdd;border-radius:6px;margin-bottom:18px;padding:18px}.requirement>div:first-child{justify-content:space-between;align-items:center;gap:20px;display:flex}.requirement>div:first-child .field{flex:1}.requirement>div:first-child select{width:140px;font-size:11px}.quote-picker{flex-wrap:wrap;gap:10px;margin-bottom:18px;display:flex}.quote-picker button.active{background:#e6efdf;border-color:#b9cdaa}.quote-line{border:1px solid var(--line);border-radius:6px;gap:20px;margin:15px 0;padding:18px;display:flex}.line-number{color:#bac7a9;flex-direction:column;justify-content:space-between;align-items:center;font-size:14px;display:flex}.line-main{flex:1;min-width:0}.line-total{flex-direction:column;gap:11px;padding-top:0;display:flex}.line-total span{color:#8c9b78;font-size:10px}.line-total b{text-align:right;color:#426842;font-size:17px;font-weight:400}.quote-total{background:#eef3e8;border-radius:6px;justify-content:space-between;align-items:center;margin:15px 0 25px;padding:22px;display:flex}.quote-total>span{font-size:12px}.quote-total strong{font-size:27px;font-weight:400}.quote-total small{font-size:12px}.send-bar{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin-top:25px;padding-top:25px;display:flex}.send-bar p{color:#869672;max-width:65%;font-size:11px}.send-bar button{white-space:nowrap}.activity-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:18px 0;font-size:12px;display:flex}.activity-row>svg{color:#88a274;flex-shrink:0}.activity-row p{color:var(--muted);font-size:11px}.activity-row time{color:#adb5a2;margin-right:auto;font-size:10px}.settings-page{max-width:1050px}.binding{border-bottom:1px solid #e5ebdf;align-items:center;gap:20px;padding:22px 0;display:flex}.binding>div{flex-wrap:wrap;align-items:center;gap:12px;width:45%;display:flex}.binding b{font-size:13px}.binding small{color:#8e9e7a;flex-basis:100%;padding-right:32px;font-size:10px}.binding select{flex:1;width:auto;font-size:12px}.binding>svg{color:#a5b495}.function-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.function-flow>div{background:#f6f8f2;border:1px solid #e4ebdb;border-radius:6px;padding:20px}.step-num{color:#789260;border:1px solid #d7e2cc;border-radius:50%;flex-shrink:0;place-items:center;width:28px;height:28px;margin-bottom:12px;font-size:11px;display:inline-grid}.function-flow h3{font-size:13px}.function-flow small{color:#9baa89;margin-top:5px;font-size:10px;display:block}.function-flow p{color:#90a07f;margin-top:15px;font-size:10px}.knowledge-step{border-bottom:1px solid var(--line);gap:20px;padding:15px 0;display:flex}.knowledge-step p{color:#728b5e;font-size:13px;line-height:1.9}.material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.material-grid p{margin:15px 0;font-size:13px}.material-grid a{margin-left:15px;font-size:11px}.material-grid small{color:#98a783;font-size:10px}.tags{flex-wrap:wrap;gap:5px;margin-bottom:15px;display:flex}.tags span{color:#8c9d6c;background:#f1f5e9;border-radius:3px;padding:3px 7px;font-size:10px}.app-footer{border-top:1px solid var(--line);color:#98a589;justify-content:space-between;padding:18px 38px;font-size:10px;display:flex}.backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:30;background:#18362970;justify-content:center;align-items:center;padding:30px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;width:100%;max-width:650px;max-height:90vh;padding:27px;overflow:auto;box-shadow:0 20px 100px #0b211829}.modal.wide{max-width:1080px}.modal>header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.modal header h2{overflow-wrap:anywhere;max-width:85%;font-size:18px}.icon{background:0 0;border:0;flex-shrink:0;padding:5px}.modal footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;margin-top:20px;padding-top:20px;display:flex}.segments{background:#f1f5ec;border-radius:6px;margin-bottom:22px;padding:4px;display:flex}.segments button{background:0 0;border:0;width:50%;font-size:12px}.segments button.active{background:#fff;box-shadow:0 1px 5px #243c1910}.upload-zone{cursor:pointer;color:#7b9562;background:#f7f9f2;border:1px dashed #bfceb0;border-radius:7px;flex-direction:column;align-items:center;gap:7px;padding:25px;display:flex}.upload-zone b{font-size:13px}.upload-zone span{font-size:10px}.upload-zone input{background:0 0;border:0;max-width:300px;padding:10px;font-size:10px}.selected-file{border-bottom:1px solid var(--line);overflow-wrap:anywhere;justify-content:space-between;gap:10px;padding:7px;font-size:11px;display:flex}.selected-file small{white-space:nowrap;color:var(--muted)}.evidence-toolbar{color:#809669;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;font-size:11px;display:flex}.evidence-toolbar>div{gap:8px;display:flex}.evidence-toolbar button{font-size:11px}.drawing-view{text-align:center;border:1px solid var(--line);background:#f1f3ed;border-radius:7px;justify-content:center;align-items:center;min-height:200px;padding:10px;display:flex}.drawing-selection{-webkit-user-select:none;user-select:none;touch-action:none;cursor:crosshair;max-width:100%;line-height:0;display:inline-block;position:relative}.drawing-selection img{object-fit:contain;pointer-events:none;max-width:100%;max-height:58vh;display:block}.selection-box{pointer-events:none;background:#4a8d6b26;border:2px solid #437549;position:absolute}.native-text{white-space:pre-wrap;overflow-wrap:anywhere;text-align:left;color:#71815f;direction:ltr;background:#f3f5ef;max-height:350px;padding:20px;font-size:11px;overflow:auto}details{margin-top:15px}summary{cursor:pointer;color:#77915f;padding:7px;font-size:12px}.modal iframe{border:1px solid var(--line);border-radius:7px;width:100%;height:400px}.toast{z-index:50;color:#fff;background:#235b47;border-radius:8px;align-items:center;gap:10px;padding:14px 22px;font-size:13px;display:flex;position:fixed;bottom:26px;left:30px;box-shadow:0 8px 35px #1a36282a}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=1500px){main{padding:40px 50px 65px}.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1100px){.sidebar{width:185px;padding:25px 10px}.main-shell{width:calc(100% - 185px);margin-right:185px}main{padding:28px 25px}.topbar{padding:0 25px}.brand b{font-size:12px}.workspace-grid{grid-template-columns:minmax(0,1fr)}.workspace-grid>aside{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.pipeline>div{gap:7px;padding:0 10px}.summary-strip>div{gap:9px;padding:0 15px}.document-grid{grid-template-columns:minmax(0,1fr)}.function-flow{gap:10px}.function-flow>div{padding:15px}}@media (width<=760px){.sidebar{width:62px;padding:22px 5px}.brand{justify-content:center;padding:0 0 28px}.brand>div:last-child,.nav-label,.sidebar-bottom{display:none}.sidebar nav button{justify-content:center;gap:0;padding:15px;font-size:0}.sidebar nav svg{flex-shrink:0}.sidebar nav i{display:none}.main-shell{width:calc(100% - 62px);margin-right:62px}main{padding:22px 15px}.topbar{height:58px;padding:0 15px}.topbar small{font-size:9px}.topbar>div{gap:5px}.avatar{display:none}.page-heading{align-items:flex-start;gap:12px}.page-heading h1{font-size:22px}.page-heading span{font-size:11px}.page-heading button{padding:8px;font-size:10px}.summary-strip{grid-template-columns:repeat(2,1fr);gap:20px 0;padding:18px 0}.summary-strip>div:nth-child(2){border:0}.summary-strip small{font-size:9px}.project-grid{grid-template-columns:minmax(0,1fr)}.project-card{max-width:none}.intro-band{flex-direction:column;align-items:flex-start;gap:18px;padding:22px}.intro-band h2{font-size:15px}.section-title{flex-wrap:wrap}.search{width:100%}.pipeline{grid-template-columns:repeat(2,1fr);gap:18px 0}.pipeline>div:nth-child(2){border:0}.tabs{white-space:nowrap;gap:18px;overflow:auto}.tabs button{font-size:10px}.panel{padding:18px}.workspace-grid>aside{display:block}.quantities-grid{gap:10px}.quantities-grid strong{font-size:24px}.editor{padding:0 15px 20px}.editor-toolbar{flex-wrap:wrap;gap:7px;margin:0 -15px 20px;padding:12px 15px}.editor-toolbar .button,.editor-toolbar button{padding:7px;font-size:10px}.form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{gap:0 12px}.quote-line{gap:10px;padding:12px}.send-bar{flex-direction:column}.send-bar p{max-width:100%}.function-flow,.material-grid{grid-template-columns:1fr}.binding{flex-wrap:wrap;gap:10px}.binding>div{width:80%}.binding select{flex-basis:100%}.backdrop{padding:10px}.modal{max-height:95vh;padding:18px}.evidence-toolbar{flex-wrap:wrap}.activity-row time{font-size:8px}.app-footer{padding:15px;font-size:8px}.app-footer>span{display:none}.toast{font-size:11px;bottom:12px;left:12px;right:74px}.finding{gap:8px}.finding>.badge{white-space:normal}.requirement>div:first-child{gap:8px}.requirement>div:first-child select{width:110px}.document-card{padding:16px}}@media (width<=500px){.page-heading{flex-direction:column;align-items:stretch}.page-heading>button{align-self:flex-start}.editor-toolbar>div,.document-title{flex-wrap:wrap}.document-title>div{min-width:100px}.form-grid:not(.four){grid-template-columns:minmax(0,1fr)}.editor-toolbar{position:static}.topbar .crumb{display:none}.evidence-toolbar>div{flex-wrap:wrap}.quote-total{flex-direction:column;align-items:flex-start;gap:8px}.modal .form-grid{grid-template-columns:minmax(0,1fr)}}.badge.partial,.badge.unsupported{color:#906916;background:#fff3da}.quality-panel{background:#f4f7f4;border:1px solid #c9d9ce;border-radius:14px;margin:20px 0;padding:20px}.quality-panel h3{margin-top:0}.quality-stats{flex-wrap:wrap;gap:12px;margin:14px 0;display:flex}.quality-stats span{background:#fff;border:1px solid #dce6df;border-radius:10px;padding:10px 14px}.quality-stats b{color:#775317;margin-inline-end:8px;font-size:22px}.quality-panel summary{cursor:pointer;padding:8px 0;font-weight:600}.quality-finding{border-top:1px solid #dce6df;padding:12px 0}.quality-finding p{margin:6px 0}.candidate-editor{margin:28px 0}.candidate-row{background:#fafcfb;border:1px solid #dce6df;border-radius:12px;margin:12px 0;padding:18px}.candidate-row p button{margin-inline-start:12px}.evidence-selector{max-width:320px;margin-top:8px}.evidence-selector summary{cursor:pointer;color:#24635f}.evidence-selector>div{max-height:220px;overflow:auto}.evidence-selector label{overflow-wrap:anywhere;align-items:start;gap:7px;padding:6px 0;font-size:12px;display:flex}.evidence-selector input[type=checkbox]{flex:none;width:auto;margin:4px 0}.coverage-bar{background:#fff;border:1px solid #dce6df;border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;margin:18px 0;padding:14px 18px;display:flex}.coverage-bar span{font-size:13px}.coverage-bar small{color:#697874;width:100%}.editor-fields{border:0;min-width:0;margin:0;padding:0}.editor-fields:disabled{opacity:.75}.function-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.function-run-list{gap:12px;margin-bottom:26px;display:grid}.function-run-card{text-align:right;background:var(--surface,#fff);border:1px solid #dfe6df;border-radius:14px;align-items:center;gap:18px;width:100%;padding:22px;display:flex}.function-run-card h3{overflow-wrap:anywhere;margin:0 0 7px}.function-run-card p{color:#60746b;margin:0 0 6px}.function-run-card small{color:#60746b}.function-choice{text-align:right;flex-wrap:wrap;align-items:center;gap:12px;width:100%;margin-bottom:12px;padding:20px;display:flex}.function-choice small{color:#60746b;flex:1;min-width:160px}.upload-zone.dragging{background:#e7efe1;border-color:#56743c}.selected-file{overflow-wrap:anywhere;border-bottom:1px solid #e4e9e3;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.selected-file span{min-width:0}.file-picker{margin-bottom:20px}@media (width<=700px){.function-run-card{flex-wrap:wrap}.function-actions{width:100%}}.login-page{background:#f1f5f1;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(440px,100%)}.login-card>.primary{width:100%}.logout-button{z-index:30;padding:7px 12px;font-size:12px;position:fixed;bottom:12px;left:16px;box-shadow:0 2px 10px #0001}.job-progress{background:#f5f8f3;border:1px solid #d9e4d5;border-radius:14px;min-width:0;margin:0 0 20px;padding:18px 22px}.job-progress-title{color:#31594f;align-items:center;gap:10px;display:flex}.job-progress-title>b{font-variant-numeric:tabular-nums;margin-inline-start:auto;font-size:21px}.progress-track{background:#e1e9de;border-radius:20px;height:8px;margin:13px 0;overflow:hidden}.progress-track>div{background:#577b54;border-radius:20px;height:100%;transition:width .45s}.job-progress.completed .progress-track>div{background:#31594f}.job-progress.failed{background:#fff8f2;border-color:#eed9c7}.job-progress.failed .progress-track>div{background:#b1753f}.progress-detail{overflow-wrap:anywhere;margin:8px 0;font-weight:600}.progress-meta{color:#67756e;flex-wrap:wrap;gap:20px;margin:10px 0;font-size:13px;display:flex}.progress-meta>span{align-items:center;gap:6px;display:flex}.active-page{flex-wrap:wrap;align-items:center;gap:9px;margin:9px 0;font-size:13px;display:flex}.active-page>span:nth-child(2){overflow-wrap:anywhere}.active-page>small{color:#758473;margin-inline-start:auto}.job-progress.compact{margin:10px 0 0;padding:10px 13px}.job-progress.compact .job-progress-title{font-size:12px}.job-progress.compact .job-progress-title>b{font-size:15px}.job-progress.compact .progress-detail{font-size:12px}.job-progress.compact .progress-track{height:5px;margin:8px 0}.job-progress.compact .progress-meta{margin-bottom:0;font-size:11px}.function-run-card>div{flex:1;min-width:0}.function-run-card:has(.job-progress.running){background:#fcfefb;border-color:#a5bb98}.function-run-card:has(.job-progress.running):hover{border-color:#577b54}.active-work-banner{background:#edf3e8;border:1px solid #d9e4d5;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:12px 16px;display:flex}.active-work-banner>span{font-weight:600}.active-work-banner>button{overflow-wrap:anywhere;background:#fff;border-radius:8px;align-items:center;gap:7px;max-width:100%;padding:6px 11px;font-size:12px;display:flex}.loading-workspace{text-align:center;padding:50px}.loading-workspace>.spin{margin:auto}.loading-workspace>button{margin-top:15px}@media (width<=600px){.job-progress{padding:14px}.active-page>small{width:100%;margin-inline-start:0;padding-inline-start:18px}.progress-meta{gap:8px}.function-run-card{flex-wrap:wrap}.function-run-card>div{flex-basis:70%}}@media (prefers-reduced-motion:reduce){.spin{animation:none}.progress-track>div{transition:none}}
