:root{font-family:Manrope,Segoe UI,sans-serif;color:#171717;background:#f4f4f2;font-synthesis:none;--yellow:#ffc400;--black:#111;--muted:#737373;--line:#deded9}*{box-sizing:border-box}body{margin:0;min-width:1080px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{position:fixed;width:252px;height:100vh;background:#111;color:#fff;padding:24px 14px;display:flex;flex-direction:column;border-right:4px solid var(--yellow)}.brand{padding:0 8px 28px;border-bottom:1px solid #333}.brand img{display:block;width:100%;height:53px;object-fit:cover}.brand span{display:block;letter-spacing:.2em;font-size:9px;font-weight:700;color:#aaa;margin-top:9px}.sidebar nav{display:grid;gap:7px;padding-top:26px}.sidebar nav button{height:49px;border:0;border-radius:9px;background:transparent;color:#aaa;text-align:left;padding:0 14px;font-weight:650;display:flex;align-items:center;gap:13px}.sidebar nav button i{font-style:normal;font-size:20px;width:20px;text-align:center}.sidebar nav button:hover{background:#222;color:#fff}.sidebar nav button.active{background:var(--yellow);color:#111;box-shadow:0 8px 25px #0008}.badge{margin-left:auto;background:#333;color:#ddd;border-radius:12px;font-size:10px;padding:3px 7px}.active .badge{background:#111;color:var(--yellow)}.sidebar-foot{margin-top:auto;border-top:1px solid #333;padding:20px 10px 0;font-size:11px;color:#bbb}.sidebar-foot small{display:block;margin:5px 0 0 13px;color:#666}.online-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55c277;margin-right:7px}main{grid-column:2;min-width:0}.page{padding:42px 48px 70px;max-width:1540px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:800;color:#9a7500}.page h1{font-size:32px;letter-spacing:-.04em;margin:5px 0}.page-heading p{color:var(--muted);font-size:13px;margin:0}.heading-actions{display:flex;gap:9px}.button{border:0;border-radius:7px;padding:12px 18px;font-weight:750}.button.primary{background:var(--yellow);color:#111;box-shadow:0 5px 14px #d4a30040}.button.secondary{background:#fff;border:1px solid var(--line)}.button:disabled{opacity:.45}.card{background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 3px 14px #20202008}.quote-meta{display:grid;grid-template-columns:repeat(6,1fr);gap:15px;padding:20px;margin-bottom:20px}label{display:flex;flex-direction:column;gap:7px;color:#565656;font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:750}input,select{width:100%;height:40px;border:1px solid #d8d8d3;border-radius:6px;background:#fafaf8;color:#171717;padding:0 11px;font-size:13px;outline:none;text-transform:none;letter-spacing:0;font-weight:500}input:focus,select:focus{border-color:#c69700;box-shadow:0 0 0 3px #ffc40022}.input-suffix{display:flex;position:relative}.input-suffix input{padding-right:45px}.input-suffix span{position:absolute;right:11px;top:12px;color:#999;font-size:11px}.add-bar{display:flex;align-items:center;gap:8px;margin:20px 0 13px}.add-bar b{font-size:12px;margin-right:5px}.add-bar button{background:#fff;border:1px solid var(--line);border-radius:6px;padding:9px 12px;font-size:11px;font-weight:700}.add-bar button:hover{border-color:var(--yellow);background:#fffaf0}.add-bar button span{color:#af8500;margin-right:5px}.items{display:grid;gap:13px}.item-card{padding:19px}.item-head{display:flex;gap:12px;align-items:center;border-bottom:1px solid #eee;padding-bottom:15px;margin-bottom:17px}.item-number{background:#111;color:var(--yellow);font-size:10px;font-weight:800;padding:7px;border-radius:4px}.item-name{border:0;background:transparent;font-size:16px;font-weight:800;height:30px;padding:0}.icon-button{margin-left:auto;border:0;background:transparent;color:#9b3838;font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}.check-row{grid-column:1/-1;display:flex;gap:20px;padding-top:5px}.check-row label,.toggle{flex-direction:row;align-items:center;font-size:11px;text-transform:none}.check-row input,.toggle input{width:16px;height:16px;accent-color:var(--yellow)}.carport-editor{display:grid;grid-template-columns:1.4fr .8fr;gap:25px}.carport-editor>.form-grid{grid-template-columns:repeat(3,1fr)}.subform{grid-column:1/-1;background:#f7f7f4;padding:15px;border-radius:7px}.subform h4{margin:0 0 12px}.carport-map{display:grid;grid-template-columns:65px 1fr 65px;grid-template-rows:56px 120px 56px;gap:4px;align-self:start}.wall{border:2px solid #ddd;background:#f7f7f5;font-size:9px;font-weight:750;position:relative;padding:2px}.wall.selected{background:var(--yellow);border-color:#111}.wall input{height:25px;padding:2px;width:38px;margin:4px auto 0;text-align:center}.map-back{grid-column:2}.map-left{grid-row:2;grid-column:1}.map-right{grid-row:2;grid-column:3}.map-front{grid-row:3;grid-column:2}.map-center{grid-row:2;grid-column:2;border:1px dashed #bbb;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;letter-spacing:.15em;font-weight:800;color:#777}.map-center small{font-size:8px;letter-spacing:0;margin-top:4px}.breakdown{margin-top:18px;padding:21px}.section-title{display:flex;align-items:center;justify-content:space-between}.section-title h2{font-size:20px;margin:4px 0 14px}.grand-total{font-size:24px;background:var(--yellow);padding:9px 14px;border-radius:5px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;color:#888;text-transform:uppercase;font-size:9px;letter-spacing:.08em;padding:10px;border-bottom:1px solid #ddd}td{padding:12px 10px;border-bottom:1px solid #eee}td:last-child{font-weight:800}td small{display:block;color:#999;margin-top:4px}.alert,.toast{position:fixed;right:25px;bottom:25px;padding:13px 18px;border-radius:6px;z-index:5;box-shadow:0 10px 30px #0003}.alert{background:#8d2a2a;color:#fff}.toast{background:#111;color:var(--yellow)}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:24px}.settings-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid #eee;padding-top:18px}.filters{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:10px;padding:16px;margin-bottom:14px}.history-list{display:grid;gap:9px}.quote-row{display:grid;grid-template-columns:1fr 150px 360px;align-items:center;padding:17px 19px}.quote-row h3{margin:6px 0 3px;font-size:15px}.quote-row p{margin:0;color:#888;font-size:11px}.quote-row>strong{text-align:right;font-size:16px}.status{font-size:8px;text-transform:uppercase;letter-spacing:.08em;padding:4px 7px;border-radius:10px;background:#eee}.status.accepted{background:#dff2e2;color:#23713a}.status.sent{background:#e3ebf6;color:#315d94}.status.rejected{background:#f6e2e2;color:#913232}.row-actions{display:flex;justify-content:flex-end;gap:5px}.row-actions button{border:1px solid #ddd;background:#fafafa;padding:7px;border-radius:5px;font-size:9px}.empty{padding:40px;text-align:center;color:#777;display:flex;flex-direction:column;gap:7px}.splash{height:100vh;background:#111;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#aaa;gap:20px}.splash img{width:320px}.splash span{font-size:12px;letter-spacing:.1em}@media(max-width:1200px){.page{padding:32px 25px}.quote-meta,.form-grid,.settings-grid{grid-template-columns:repeat(3,1fr)}.quote-row{grid-template-columns:1fr 130px}.row-actions{grid-column:1/-1;margin-top:10px;justify-content:flex-start}}.collection-editor{display:grid;gap:12px}.collection-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.collection-actions button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 11px;font-size:11px;font-weight:750}.collection-actions b:not(:first-child){margin-left:14px}.subform-head{display:flex;align-items:center;justify-content:space-between}.subform-head h4{margin:0 0 12px}.difficult-installation{margin-top:16px;padding-top:14px;border-top:1px dashed #ddd;display:flex;align-items:flex-end;gap:20px}.difficult-installation>label{max-width:280px}.hotel-toggle{align-self:end;height:40px;padding:0 10px;border:1px solid #d8d8d3;border-radius:6px;background:#fafaf8}input[readonly]{background:#eee;color:#666}.collection-editor>.subform{margin-top:2px}.logout{display:block;margin-top:12px;background:transparent;border:1px solid #444;border-radius:5px;color:#aaa;padding:6px 9px}.language-switch{display:flex;gap:5px;margin:14px 8px 0}.language-switch button{border:1px solid #444;background:#222;border-radius:6px;padding:5px 8px;font-size:18px;opacity:.55}.language-switch button.active{border-color:var(--yellow);opacity:1;background:#332900}.login-language{justify-content:center;margin:0 0 12px}.login-language button{background:#fff;border-color:#ddd}.login-language button.active{background:#fff6d5}.settings-menu{display:grid;grid-template-columns:repeat(2,minmax(260px,420px));gap:18px}.settings-menu>button{text-align:left;padding:28px;border:1px solid var(--line)}.settings-menu>button:hover{border-color:var(--yellow);transform:translateY(-1px)}.settings-menu>button>b{font-size:26px}.settings-menu h2{margin:12px 0 6px}.settings-menu span{color:var(--muted);font-size:12px}.back-button{border:0;background:transparent;font-weight:750;margin-bottom:18px}.price-group{padding:21px;margin-bottom:14px}.price-group h2{font-size:17px;margin:0 0 18px}.price-group .settings-grid{padding:0;border:0;box-shadow:none}.settings-users{display:grid;gap:16px}.user-create,.user-list{padding:22px}.user-create h2,.user-list h2{margin:0 0 18px}.user-add{align-self:end;height:40px}.settings-message{margin-top:14px;background:#f4f4f0;padding:10px;border-radius:6px}.user-row{display:grid;grid-template-columns:1fr 160px 80px;align-items:center;padding:12px 4px;border-top:1px solid #eee}.user-row small{display:block;color:#888;margin-top:3px}.user-row>span{font-size:11px}.user-row .icon-button{margin:0;text-align:right}.production-header-controls{display:flex;align-items:center;gap:5px;margin:14px 8px 0}.production-header-controls .language-switch{margin:0}.production-header-button{width:38px;height:38px;padding:0;border:1px solid #777;border-radius:6px;background:#242424;color:#fff;font-size:19px;font-weight:850;cursor:pointer}.production-header-button:hover,.production-header-button.active{border-color:var(--yellow);background:var(--yellow);color:#111}.logout-header-button{font-size:21px}.production-updates-page>.update-card{max-width:900px}.production-updates-page .update-card{margin-top:8px}.row-actions button.danger{color:#9b2828;border-color:#e6c6c6;background:#fff8f8}.row-actions{flex-wrap:wrap}.row-actions button.realize{background:#e6f4e9;color:#226a37;border-color:#a9d6b4;font-weight:850}.builder .heading-actions .button:nth-child(1),.row-actions button:nth-child(3){background:#fff;color:#9e1620;border:2px solid #d52331;font-weight:850;box-shadow:0 3px 10px #d5233122}.builder .heading-actions .button:nth-child(2),.row-actions button:nth-child(4){background:#181818;color:#ffc400;border:2px solid #ffc400;font-weight:850;box-shadow:0 3px 10px #0002}.builder .heading-actions .button:nth-child(1):before{content:"PL  "}.builder .heading-actions .button:nth-child(2):before{content:"DE  "}.builder .heading-actions .button:disabled{filter:grayscale(.8);box-shadow:none}.settings-update-wrap{max-width:1540px;margin:-48px auto 70px;padding:0 48px}.update-card{padding:22px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-left:5px solid var(--yellow)}.update-card h2{margin:5px 0}.update-card p{margin:0 0 8px;color:var(--muted);font-size:12px}.update-card small{color:#777}.update-actions{display:flex;gap:9px;min-width:max-content}.settings-logout-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:20px 22px;border-left:5px solid #c51e27}.settings-logout-card h2{margin:5px 0}.settings-logout-card p{margin:0;color:var(--muted);font-size:12px}.settings-logout-card .button{min-width:140px;border-color:#c51e27;color:#971820}.apk-download-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center}@media(max-width:760px){body{min-width:0}.app-shell{display:block;padding-bottom:78px}.sidebar{position:sticky;top:0;z-index:20;width:100%;height:auto;min-height:64px;padding:8px 10px;border-right:0;border-bottom:3px solid var(--yellow);display:grid;grid-template-columns:92px 1fr auto;align-items:center;gap:8px}.brand{padding:0;border:0}.brand img{height:36px;object-fit:contain}.brand span,.sidebar-foot{display:none}.sidebar .language-switch{margin:0;grid-column:3;grid-row:1}.sidebar .production-header-controls{grid-column:3;grid-row:1;margin:0}.sidebar .production-header-controls .language-switch{grid-column:auto;grid-row:auto}.sidebar nav{position:fixed;left:0;right:0;bottom:0;z-index:21;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:5px;background:#111;border-top:2px solid var(--yellow)}.sidebar nav button{height:58px;padding:4px 6px;justify-content:center;flex-direction:column;gap:2px;text-align:center;font-size:11px}.sidebar nav button i{font-size:17px}.badge{position:absolute;margin:0;transform:translate(25px,-16px)}main{display:block}.page{padding:20px 12px 34px}.page-heading{align-items:stretch;flex-direction:column;gap:16px;margin-bottom:18px}.page h1{font-size:27px}.heading-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.heading-actions .button{padding:12px 8px}.heading-actions .button.primary{grid-column:1/-1}.quote-meta,.form-grid,.settings-grid,.filters{grid-template-columns:1fr;gap:11px}.quote-meta{padding:14px}.add-bar{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.add-bar>b{min-width:max-content}.add-bar button{min-width:max-content}.item-card{padding:14px}.item-name{min-width:0}.carport-editor{grid-template-columns:1fr}.carport-editor>.form-grid{grid-template-columns:1fr}.carport-map{max-width:100%;grid-template-columns:52px minmax(120px,1fr) 52px}.difficult-installation{align-items:stretch;flex-direction:column}.breakdown{padding:13px}.section-title{align-items:flex-start;gap:10px}.grand-total{font-size:18px;white-space:nowrap}.settings-menu{grid-template-columns:1fr}.settings-menu>button{padding:20px}.price-group{padding:15px}.quote-row{grid-template-columns:1fr;padding:14px}.quote-row>strong{text-align:left;margin-top:9px}.row-actions{grid-column:1;display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px}.row-actions button{min-height:38px}.user-row{grid-template-columns:1fr;gap:8px}.user-row .icon-button{text-align:left}.collection-actions b:not(:first-child){margin-left:0}.login-card{max-width:calc(100vw - 24px)}.toast,.alert{left:12px;right:12px;bottom:82px}.photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.settings-update-wrap{margin:-18px auto 90px;padding:0 12px}.update-card,.settings-logout-card{align-items:stretch;flex-direction:column}.update-actions{display:grid;grid-template-columns:1fr;min-width:0}.settings-logout-card .button{width:100%}}.view-switch{display:flex;gap:7px}.view-switch button{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:7px;font-weight:750}.view-switch button.active{background:#111;color:var(--yellow);border-color:#111}.crm-filters{display:grid;grid-template-columns:2fr 1fr;gap:10px;padding:14px;margin-bottom:14px}.project-list{display:grid;gap:9px}.project-row{width:100%;display:grid;grid-template-columns:7px 1fr 140px 150px;align-items:center;gap:16px;padding:15px;text-align:left;border-left:0}.project-color{width:7px;height:100%;min-height:58px;border-radius:6px}.project-row h3{margin:3px 0;font-size:16px}.project-row p,.project-row small{margin:0;color:#777;font-size:11px}.project-row>b{text-align:center;padding:7px;border-radius:14px;font-size:10px}.project-date{font-size:12px;color:#555}.status-contract .project-color,.crm-status.status-contract,.calendar-project.status-contract{background:#8b78a8}.status-design .project-color,.crm-status.status-design,.calendar-project.status-design{background:#4f83cc}.status-production .project-color,.crm-status.status-production,.calendar-project.status-production{background:#e4a800}.status-galvanizing .project-color,.crm-status.status-galvanizing,.calendar-project.status-galvanizing{background:#7b8b93}.status-painting .project-color,.crm-status.status-painting,.calendar-project.status-painting{background:#c45e8b}.status-installation .project-color,.crm-status.status-installation,.calendar-project.status-installation{background:#3c9a61}.project-row.status-contract>b{background:#eee8f5}.project-row.status-design>b{background:#e7f0fb}.project-row.status-production>b{background:#fff1bc}.project-row.status-galvanizing>b{background:#e7ecee}.project-row.status-painting>b{background:#f8e4ed}.project-row.status-installation>b{background:#e1f3e8}.crm-status{padding:9px 14px;border-radius:18px;color:#fff;font-size:12px;font-weight:850}.crm-detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:14px}.crm-card,.crm-section{padding:20px}.crm-card h2,.crm-section h2{margin:0 0 15px}.crm-card{display:grid;align-content:start;gap:10px}.crm-card p{margin:0;color:#666;font-size:12px}.crm-card>strong{font-size:19px}.private-card{border-top:4px solid var(--yellow)}.private-label{font-size:8px;letter-spacing:.13em;color:#8b6900;font-weight:900}.crm-actions,.update-actions{display:flex;gap:7px}.crm-actions button,.document-list button{border:1px solid var(--line);background:#fff;border-radius:5px;padding:7px;font-size:10px}.crm-section{margin-bottom:14px}.crm-message{padding:11px 14px;background:#fff0c7;color:#624a00;border-radius:7px;margin-bottom:12px}.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.document-upload{display:flex;gap:9px;max-width:520px}.document-upload select{max-width:180px}.document-list{display:grid;margin-top:14px}.document-list>div{display:grid;grid-template-columns:90px 1fr auto auto;align-items:center;gap:10px;padding:10px 0;border-top:1px solid #eee}.document-kind{font-size:9px;text-transform:uppercase;color:#886800}.document-list b{font-size:12px}.document-list button.danger,.crm-photo-grid button.danger{color:#9b2828}.crm-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:11px}.crm-photo-grid article{border:1px solid var(--line);border-radius:8px;overflow:hidden}.crm-photo-grid img,.crm-photo-loading{width:100%;height:140px;display:block;object-fit:cover}.crm-photo-loading{display:grid;place-items:center}.crm-photo-grid article>div:last-child{display:flex;align-items:center;padding:8px;gap:7px}.crm-photo-grid span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crm-photo-grid button{margin-left:auto;border:0;background:transparent}.wall-compose{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}.wall-compose textarea{min-height:82px;border:1px solid var(--line);border-radius:7px;padding:11px;resize:vertical;font:inherit}.wall-list{display:grid;gap:8px;margin-top:18px}.wall-event{padding:12px 14px;background:#f7f7f4;border-radius:7px;border-left:4px solid #bbb}.wall-event.event-status{border-color:#d1a000}.wall-event.event-note{border-color:#4f83cc}.wall-event span{float:right;color:#999;font-size:9px}.wall-event b{font-size:11px}.wall-event p{margin:6px 0 0;white-space:pre-wrap;font-size:12px}.crm-calendar{padding:18px}.calendar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.calendar-head h2{margin:0}.calendar-head input{width:180px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekday{text-align:center;padding:6px;font-size:10px;color:#777}.calendar-day{min-height:110px;border:1px solid #e5e5e0;border-radius:6px;padding:6px;background:#fff}.calendar-day>span{font-size:10px;color:#777}.empty-day{background:#f7f7f4}.calendar-project{display:block;width:100%;border:0;border-left:5px solid #111;background:#f4f4f1;text-align:left;padding:5px;margin-top:5px;border-radius:4px;font-size:9px}.calendar-project small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.calendar-project.status-contract{border-color:#8b78a8}.calendar-project.status-design{border-color:#4f83cc}.calendar-project.status-production{border-color:#e4a800}.calendar-project.status-galvanizing{border-color:#7b8b93}.calendar-project.status-painting{border-color:#c45e8b}.calendar-project.status-installation{border-color:#3c9a61}@media(max-width:900px){.crm-detail-grid{grid-template-columns:1fr 1fr}.project-row{grid-template-columns:7px 1fr auto}.project-row>b{grid-column:2}.calendar-day{min-height:85px}.calendar-project small{display:none}}@media(max-width:760px){.crm-filters,.crm-detail-grid{grid-template-columns:1fr}.project-row{grid-template-columns:7px 1fr;padding:11px;gap:10px}.project-date{grid-column:2}.project-row>b{grid-column:2;text-align:left;justify-self:start}.view-switch{width:100%}.view-switch button{flex:1}.document-upload,.wall-compose{grid-template-columns:1fr;display:grid}.document-upload select{max-width:none}.document-list>div{grid-template-columns:1fr 1fr}.document-list b{grid-column:1/-1}.crm-photo-grid{grid-template-columns:1fr 1fr}.crm-calendar{padding:9px;overflow-x:auto}.calendar-grid{min-width:700px}.calendar-head{position:sticky;left:0}.calendar-day{min-height:90px}}.project-row.installation-soon{outline:3px solid #ff9d00;background:linear-gradient(90deg,#fff1cf 0,#fff 42%);box-shadow:0 0 0 5px #ff9d0024,0 8px 20px #844c0029;animation:crm-deadline-pulse 2.4s ease-in-out infinite}.project-row.installation-overdue{outline:3px solid #d92d20;background:linear-gradient(90deg,#ffe1de 0,#fff 42%);box-shadow:0 0 0 5px #d92d2026,0 8px 20px #70140d2e}.calendar-project.installation-soon{outline:2px solid #ff9d00;background:#fff0c2;box-shadow:0 0 0 2px #ff9d0026;font-weight:850}.calendar-project.installation-overdue{outline:2px solid #d92d20;background:#ffd9d5;color:#7b1811;font-weight:850}@keyframes crm-deadline-pulse{50%{box-shadow:0 0 0 8px #ff9d0014,0 8px 24px #844c0038}}@media(prefers-reduced-motion:reduce){.project-row.installation-soon{animation:none}}.project-open{min-width:0;border:0;background:transparent;padding:0;text-align:left}.project-open h3{margin:3px 0;font-size:16px}.project-open p,.project-open small{margin:0;color:#777;font-size:11px}.installation-alert{display:inline-block;margin-top:7px;color:#a75800;font-size:10px;font-weight:850}.quick-status{display:grid;gap:3px;min-width:150px}.quick-status>span{font-size:8px;font-weight:850;letter-spacing:.08em;color:#777;text-transform:uppercase}.quick-status select{height:36px;font-weight:750;background:#fff}.attachment-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.crm-photo-grid{margin-top:18px}.project-file-list{display:grid;gap:7px;margin-top:16px}.project-file-list>div{display:grid;grid-template-columns:24px 1fr 80px auto auto;align-items:center;gap:9px;padding:10px;border:1px solid #e5e5df;border-radius:7px;background:#fafaf8}.project-file-list b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.project-file-list small{color:#888;font-size:9px}.project-file-list button{border:1px solid var(--line);border-radius:5px;background:#fff;padding:7px;font-size:10px}.project-file-list button.danger{color:#9b2828}.wall-compose textarea{min-height:125px;font-size:15px;line-height:1.55}.wall-event b{font-size:13px}.wall-event p{font-size:14px;line-height:1.55}.wall-event span{font-size:10px}.wall-photo{margin-top:10px;max-width:520px;overflow:hidden;border:1px solid #ddd;border-radius:8px;background:#eee}.wall-photo img,.wall-photo .crm-photo-loading{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}.wall-photo-actions{display:flex;justify-content:flex-end;padding:8px;border-top:1px solid #ddd;background:#fff}.wall-photo-actions button{min-height:34px;padding:7px 12px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:10px;font-weight:800}.calendar-day .leave-hint{display:block;width:100%;margin-top:6px;padding:3px;border:0;border-radius:3px;background:#e6f6eb;color:#2d7043;font-size:8px;font-weight:800;text-align:left;cursor:pointer}.calendar-day .leave-hint:hover{background:#cfeeda}.native-version{display:block;margin:5px 0;color:#333!important}.native-version b{color:#087b38;font-size:12px}.native-version.old{color:#b42318!important;font-weight:800}.language-switch button{color:#fff!important;border-color:#777!important;background:#242424!important;opacity:1!important;font-weight:850}.language-switch button.active{color:#111!important;border-color:var(--yellow)!important;background:var(--yellow)!important}.button.danger.revert-project{margin-top:8px;color:#9b2828;border:1px solid #ddb6b2;background:#fff4f3}.status-completed .project-color,.crm-status.status-completed,.calendar-project.status-completed,.calendar-legend .status-completed{background:#30363d}.calendar-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:10px;padding:12px 16px}.calendar-legend>b{font-size:11px;margin-right:3px}.calendar-legend span{display:inline-flex;align-items:center;gap:6px;color:#555;font-size:10px}.calendar-legend i{width:12px;height:12px;border-radius:3px}.calendar-legend .status-contract{background:#8b78a8}.calendar-legend .status-design{background:#4f83cc}.calendar-legend .status-production{background:#e4a800}.calendar-legend .status-galvanizing{background:#7b8b93}.calendar-legend .status-painting{background:#c45e8b}.calendar-legend .status-installation{background:#3c9a61}.production-shell .sidebar nav{display:none!important}.crm-heading-actions{display:flex;align-items:center;gap:10px}.crm-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px;background:#0000009e}.crm-modal{width:min(720px,100%);max-height:90vh;overflow:auto;padding:22px}.crm-modal h2{margin:0}.modal-close{border:0;background:transparent;font-size:28px}.crm-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:16px 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.zoomable-photo{cursor:zoom-in}.photo-lightbox{position:fixed;inset:0;z-index:100;display:grid;grid-template-rows:auto 1fr;background:#000000f0}.lightbox-toolbar{display:flex;justify-content:center;align-items:center;gap:9px;padding:10px;color:#fff}.lightbox-toolbar button{min-width:42px;min-height:40px;border:1px solid #777;border-radius:6px;background:#222;color:#fff;font-size:20px}.lightbox-toolbar b{min-width:60px;text-align:center}.lightbox-stage{overflow:auto;display:grid;place-items:center;padding:15px;touch-action:pinch-zoom}.lightbox-stage>div{transform-origin:center;transition:transform .15s ease}.lightbox-stage img{display:block;max-width:88vw;max-height:80vh;object-fit:contain}.upload-progress-toast{position:fixed;z-index:90;left:50%;bottom:18px;width:min(520px,calc(100vw - 24px));transform:translate(-50%);padding:13px 16px;border:2px solid var(--yellow);border-radius:9px;background:#111;color:#fff;box-shadow:0 12px 35px #0007}.upload-progress-toast>div{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:12px}.upload-progress-toast progress{width:100%;height:10px;accent-color:var(--yellow)}.project-file-list .download-file{min-width:96px;font-weight:800}.attachment-count{display:block;margin-top:-8px;color:#888;font-size:10px}.load-more{display:block;width:100%;margin-top:12px}@media(max-width:760px){.production-shell.app-shell{padding-bottom:0}.crm-heading-actions{display:grid;grid-template-columns:1fr}.crm-create-grid{grid-template-columns:1fr}.crm-modal{padding:16px}.calendar-legend{gap:8px 12px;padding:10px}.calendar-legend>b{width:100%}.sidebar{padding-top:calc(8px + env(safe-area-inset-top))}.sidebar nav{bottom:env(safe-area-inset-bottom)}.app-shell{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.project-row{grid-template-columns:7px minmax(0,1fr)}.project-open,.project-date{grid-column:2}.quick-status{grid-column:2;width:100%;min-width:0}.quick-status select{height:42px}.attachment-section-title{display:block}.attachment-section-title>div:first-child{margin-bottom:14px}.attachment-section-title h2{margin-bottom:10px}.attachment-count{margin:0}.attachment-actions{display:grid;width:100%;grid-template-columns:1fr}.attachment-actions .button{width:100%;min-height:43px}.crm-photo-grid{margin-top:20px}.crm-section{padding:16px}.crm-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.crm-photo-grid article{min-width:0}.crm-photo-grid img,.crm-photo-loading{height:auto;aspect-ratio:4/3;object-fit:cover}.crm-photo-grid article>div:last-child{min-width:0;padding:9px}.project-file-list>div{grid-template-columns:24px minmax(0,1fr);gap:7px 9px;padding:12px}.project-file-list small{grid-column:2;grid-row:2}.project-file-list .download-file{grid-column:1/-1;grid-row:3;width:100%;min-width:0;min-height:42px;padding-inline:14px}.project-file-list button.danger{grid-column:1/-1;grid-row:4;width:100%;min-height:38px}.crm-calendar{overflow-x:visible;padding:7px}.calendar-grid{min-width:0;width:100%;gap:2px}.calendar-grid{grid-template-columns:24px repeat(7,minmax(0,1fr))}.calendar-week-number{font-size:6px;writing-mode:vertical-rl;transform:rotate(180deg)}.calendar-weekday{min-width:0;padding:4px 0;font-size:8px}.calendar-day{min-width:0;min-height:72px;padding:3px 2px;border-radius:4px;overflow:hidden}.calendar-day>span{font-size:8px}.calendar-project{min-width:0;padding:4px 2px;margin-top:3px;border-left-width:3px;font-size:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-project small{display:none}}.status-correction .project-color,.crm-status.status-correction,.calendar-project.status-correction,.calendar-legend .status-correction{background:#d96b25}.calendar-project.status-correction{border-color:#d96b25}.status-electrician .project-color,.crm-status.status-electrician,.calendar-project.status-electrician,.calendar-legend .status-electrician{background:#7b4ac7}.calendar-project.status-electrician{border-color:#7b4ac7}.project-row.status-electrician>b{background:#efe7fb}.project-row{grid-template-columns:7px minmax(0,1fr) 140px 270px}.status-last-change{display:block;margin-top:5px!important;color:#777!important;font-size:9px!important;line-height:1.35;text-transform:none;letter-spacing:0;font-weight:600}.calendar-grid{grid-template-columns:42px repeat(7,minmax(0,1fr))}.calendar-week-number{display:grid;place-items:center;min-width:0;border-radius:5px;background:#f0eee7;color:#806500;font-size:9px}.calendar-kw-head{color:#806500}.wall-activity-marker{display:inline-block;margin-top:7px;margin-right:10px;color:#315f8e;font-size:10px;font-weight:850}.installation-alert.neutral{color:#666;background:transparent;border:0;box-shadow:none}.lightbox-stage{overflow:hidden;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.lightbox-stage:active{cursor:grabbing}.lightbox-stage>div{transform-origin:center;transition:none;will-change:transform}.document-photo-grid{margin-top:14px}.document-photo-grid article>div:last-child{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.document-photo-grid .document-kind{color:#886800;font-weight:850}.document-file-list{margin-top:14px}@media(max-width:760px){.project-row{grid-template-columns:7px minmax(0,1fr)}.calendar-grid{grid-template-columns:24px repeat(7,minmax(0,1fr))}.calendar-week-number{font-size:6px;writing-mode:vertical-rl;transform:rotate(180deg)}.calendar-day .leave-hint{display:block!important;margin-top:3px;padding:2px 1px;font-size:6px;white-space:nowrap}.status-last-change{font-size:8px!important}}.status.draft{background:#f9dddd;color:#a31313;border:1px solid #e6a3a3}.calendar-month-picker{display:flex;gap:7px}.calendar-month-picker select{width:auto;min-width:82px}.document-upload{display:grid;grid-template-columns:180px 1fr;gap:9px;max-width:none}.carport-map .wall>small{display:block;margin-top:3px;font-size:7px;line-height:1.2;color:#4b3a00;letter-spacing:0;text-transform:none}.side-enclosure-modal{max-width:620px}.side-enclosure-modal>p{margin:4px 0 18px;color:#666;font-size:12px}.side-enclosure-modal .form-grid{grid-template-columns:1fr 1fr}@media(max-width:760px){.side-enclosure-modal .form-grid{grid-template-columns:1fr}}.document-upload-actions{display:flex;flex-wrap:wrap;gap:8px}.document-upload-actions .button{min-width:145px}@media(max-width:760px){.pull-refresh{position:fixed;z-index:19;top:calc(66px + env(safe-area-inset-top));left:50%;display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid #ddd;border-radius:18px;background:#fff;color:#555;box-shadow:0 4px 14px #0002;font-size:10px;font-weight:750;pointer-events:none;opacity:0;transform:translate(-50%,calc(-48px + var(--pull-distance)));transition:opacity .15s ease,transform .15s ease}.pull-refresh.ready,.pull-refresh.refreshing{color:#111;border-color:#d8a600;background:#fff8d8;opacity:1}.pull-refresh.refreshing{transform:translate(-50%,10px)}.pull-refresh.refreshing span{animation:pull-refresh-spin .8s linear infinite}.document-upload{grid-template-columns:1fr}.document-upload-actions{display:grid;grid-template-columns:1fr}.document-upload-actions .button{width:100%}.calendar-month-picker select{min-width:70px}}.contract-generator{display:grid;gap:14px;margin-bottom:18px;padding:17px;border:1px solid #ead48b;border-left:5px solid var(--yellow);border-radius:8px;background:#fffdf5}.contract-generator h3{margin:0 0 4px;font-size:17px}.contract-generator p{margin:0;color:var(--muted);font-size:11px}.contract-fields{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.contract-fields label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.contract-fields input{width:100%;margin-top:6px}.contract-generate-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.contract-generate-row small{color:#765b00;font-weight:750}@media(max-width:900px){.contract-fields{grid-template-columns:1fr 1fr}}@media(max-width:560px){.contract-generator{padding:13px}.contract-fields{grid-template-columns:1fr}.contract-generate-row{align-items:stretch;flex-direction:column}}@keyframes pull-refresh-spin{to{transform:rotate(360deg)}}.task-view-switch{display:flex;gap:7px;padding:7px;margin-bottom:14px}.task-view-switch button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 15px;border:0;border-radius:7px;background:transparent;font-weight:800}.task-view-switch button.active{background:#111;color:#fff}.task-view-switch span{min-width:22px;padding:3px 6px;border-radius:12px;background:#eee;color:#555;font-size:9px}.task-view-switch button.active span{background:var(--yellow);color:#111}.task-list{display:grid;gap:9px}.task-row{display:grid;grid-template-columns:38px minmax(0,1fr) 225px;align-items:center;gap:14px;min-height:82px;padding:14px 16px;border-left:5px solid #d8d8d3}.task-row.urgent{border-color:#cc2028;background:#fff3f3;box-shadow:0 5px 18px #b3001517}.task-row.completed{border-left-color:#5caa72;background:#f5faf6;opacity:.78}.task-check{width:28px;height:28px;border:2px solid #969691;border-radius:50%;background:#fff;color:#111;font-size:17px;font-weight:900;line-height:1}.task-check[aria-pressed=true]{border-color:#278348;background:#dff3e5}.task-check:disabled{cursor:default;opacity:.38}.task-content{min-width:0}.task-content>b{display:block;font-size:14px;line-height:1.4;white-space:pre-wrap}.task-row.completed .task-content>b{text-decoration:line-through;color:#666}.task-meta{display:flex;flex-wrap:wrap;gap:5px 14px;margin-top:7px;color:#777;font-size:10px}.task-meta strong{color:#444}.task-project{color:#866600;font-weight:750}.task-deadline{display:grid;justify-items:end;gap:5px;text-align:right;color:#555;font-size:11px}.task-deadline small{color:#888}.task-row.urgent .task-deadline small{color:#a3161c;font-weight:850}.task-urgent-label{padding:3px 7px;border-radius:10px;background:#c51e27;color:#fff;font-size:8px;letter-spacing:.1em}.task-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:17px 0}.task-form>label:first-child{grid-column:1/-1}.task-form textarea{min-height:105px;padding:11px;border:1px solid #d8d8d3;border-radius:6px;background:#fafaf8;font:inherit;resize:vertical}.task-urgent-toggle{grid-column:1/-1;display:flex;flex-direction:row;align-items:center;gap:9px;min-height:42px;padding:10px;border:1px solid #efc2c4;border-radius:7px;background:#fff5f5;color:#8f1a20}.task-urgent-toggle input{width:18px;height:18px;accent-color:#c51e27}.project-tasks>.section-title{align-items:center;margin-bottom:14px}.project-tasks>.section-title h2{margin:0 0 4px}.project-tasks>.section-title small{color:#777}.project-tasks .task-row{box-shadow:none}.production-shell .sidebar nav{display:grid!important}.task-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px 0}.task-pagination b{min-width:95px;text-align:center;font-size:11px}.task-pagination .button{min-width:120px}.task-load-more{display:none;min-height:48px;padding:14px;text-align:center;color:#777;font-size:11px}.task-project-picker{position:relative;display:grid;gap:6px}.task-project-picker>label{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.task-project-results{position:absolute;z-index:12;top:100%;left:0;right:0;display:grid;max-height:260px;overflow:auto;border:1px solid #cfcfca;border-radius:7px;background:#fff;box-shadow:0 12px 28px #0002}.task-project-results button{display:grid;gap:3px;padding:10px 12px;border:0;border-bottom:1px solid #eee;background:#fff;text-align:left}.task-project-results button:hover,.task-project-results button:focus{background:#fff7d7}.task-project-results small,.task-project-results>span{padding:8px 12px;color:#777;font-size:10px}.task-project-results button small{padding:0}@media(max-width:760px){.sidebar nav{grid-template-columns:repeat(6,minmax(0,1fr))!important}.sidebar nav button{font-size:8.5px!important}.production-shell .sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))!important}.production-shell.app-shell{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}.task-view-switch{display:grid;grid-template-columns:1fr;padding:6px}.task-view-switch button{justify-content:space-between}.task-row{grid-template-columns:34px minmax(0,1fr);gap:10px;padding:13px 11px}.task-deadline{grid-column:2;justify-items:start;text-align:left}.task-meta{display:grid;gap:4px}.task-form{grid-template-columns:1fr}.task-form>label:first-child,.task-urgent-toggle{grid-column:1}.tasks-page .page-heading>.button{width:100%}.project-tasks>.section-title{align-items:stretch;flex-direction:column}.project-tasks>.section-title .button{width:100%;margin-bottom:10px}.task-pagination{display:none}.task-load-more{display:block}}.office-header-controls{display:flex;align-items:center;gap:8px}.office-header-controls .language-switch{margin-right:0}.notification-center{position:relative;z-index:75}.notification-bell{position:relative;width:40px;height:40px;border:1px solid #666;border-radius:7px;background:#222;color:#fff;font-size:18px;cursor:pointer}.notification-bell>span{position:absolute;right:-5px;top:-7px;display:grid;place-items:center;min-width:19px;height:19px;padding:0 4px;border:2px solid #111;border-radius:12px;background:#d92d20;color:#fff;font-size:9px;font-weight:900}.notification-panel{position:absolute;left:0;top:48px;width:min(390px,calc(100vw - 24px));max-height:min(620px,75vh);padding:0;overflow:hidden;border:2px solid var(--yellow);box-shadow:0 16px 45px #0005}.production-header-controls .notification-panel{left:auto;right:0}.notification-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;background:#111;color:#fff}.notification-head button{border:0;background:transparent;color:#fff;font-size:22px}.enable-notifications{width:calc(100% - 20px);margin:10px;padding:9px;border:1px solid var(--yellow);border-radius:6px;background:#fff8d8;font-weight:800}.notification-list{max-height:520px;overflow:auto}.notification-list>button{display:grid;grid-template-columns:28px 1fr;gap:8px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #eee;background:#fff9df;text-align:left}.notification-list>button.read{background:#fff}.notification-list i{font-style:normal;font-size:18px}.notification-list span{display:grid;gap:3px}.notification-list b{font-size:12px}.notification-list small{color:#555;font-size:10px;line-height:1.4}.notification-list time{color:#999;font-size:8px}.notification-list>p{padding:24px;text-align:center;color:#777}.calendar-day.leave-available{cursor:pointer;background:#f7fff8}.calendar-day.leave-available:hover{outline:2px solid #53a46d}.leave-hint{display:block;margin-top:8px;color:#3b7d50;font-size:8px}.calendar-leave{display:grid;grid-template-columns:auto 1fr;gap:2px 4px;width:100%;margin-top:5px;padding:5px;border:0;border-left:4px solid #2f8f58;border-radius:4px;background:#dff5e6;color:#19582e;font:inherit;font-size:9px;text-align:left;cursor:pointer}.calendar-leave:hover{background:#ccefd7;outline:1px solid #2f8f58}.calendar-leave small{grid-column:2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}.leave-modal textarea{min-height:110px;padding:10px;border:1px solid var(--line);border-radius:7px;font:inherit}.maps-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.hotel-maps-button{border-color:#4f83cc!important;background:#eef5ff!important}.quote-products{display:block;margin:3px 0 5px;color:#8a6800;font-size:10px;font-weight:800;text-transform:lowercase}.jpg-button{border:1px solid #377a49!important;background:#eef9f1!important;color:#19592c!important;font-weight:850}@media(max-width:760px){.office-header-controls{grid-column:3;grid-row:1}.office-header-controls .language-switch{grid-column:auto!important;grid-row:auto!important}.notification-panel{position:fixed;left:12px!important;right:12px!important;top:74px;width:auto;max-height:calc(100vh - 100px)}.notification-list{max-height:calc(100vh - 180px)}.calendar-leave{padding:3px 2px;border-left-width:2px;font-size:7px}.calendar-leave small,.leave-hint{display:none}.heading-actions{grid-template-columns:1fr 1fr}.heading-actions .button.primary{grid-column:1/-1}}.designer-project-bar{display:grid;grid-template-columns:1.3fr 1.3fr .7fr;gap:14px;align-items:end;padding:18px;margin-bottom:14px}.designer-total{display:grid;grid-template-columns:1fr auto;align-items:end;min-height:40px;padding:8px 12px;border-radius:7px;background:#111;color:#fff}.designer-total small{grid-column:1/-1;color:#aaa;font-size:8px;text-transform:uppercase;letter-spacing:.1em}.designer-total b{font-size:19px;color:var(--yellow)}.designer-total span{font-size:11px;color:#ccc}.designer-canvas-card{overflow:hidden;margin-bottom:14px}.fence-top-view{display:block;width:100%;height:auto;min-height:260px;touch-action:manipulation}.design-axis-label{font-size:9px;font-weight:850;letter-spacing:.13em;fill:#9a7500}.design-shape{cursor:pointer;stroke:#111;stroke-width:2;fill:#fff}.design-shape:hover,.design-shape.selected{stroke:#b18400;stroke-width:4;filter:drop-shadow(0 3px 4px #0002)}.design-panel{fill:#f3f3ef}.design-post{fill:#222}.design-plate{fill:#d8d8d2}.design-plate circle{fill:#fff;stroke:#333}.design-hinge{fill:#ffc400}.design-gate{fill:#fff7d4}.design-gap{fill:#fff;stroke:#999;stroke-dasharray:6 5}.design-joint{stroke:#aaa;stroke-width:1;stroke-dasharray:3 5}.design-dimension{stroke:#333;stroke-width:1.4}.design-shape-label{font-size:9px;font-weight:750;fill:#444;text-anchor:middle}.design-total-label{font-size:12px;font-weight:850;fill:#111;text-anchor:middle}.design-empty-label{font-size:16px;font-weight:750;fill:#aaa;text-anchor:middle}.designer-legend{display:flex;flex-wrap:wrap;gap:14px;padding:9px 18px 14px;border-top:1px solid #eee;color:#666;font-size:9px}.designer-legend span{display:flex;align-items:center;gap:5px}.designer-legend i{width:17px;height:8px;border:1px solid #222}.legend-post{background:#222}.legend-panel{background:#f3f3ef}.legend-plate{background:#d8d8d2}.legend-hinge{background:#ffc400}.legend-gate{background:#fff7d4}.designer-workspace{display:grid;grid-template-columns:220px minmax(430px,1fr) 300px;gap:14px;align-items:start}.designer-workspace>section{padding:18px}.designer-workspace h2,.saved-designs h2{margin:0 0 5px;font-size:18px}.designer-library>p,.designer-properties>p,.saved-designs>p{color:#777;font-size:10px}.designer-library{display:grid;gap:8px}.designer-library>h2,.designer-library>p{margin-bottom:5px}.designer-library>button{display:grid;grid-template-columns:26px 1fr;gap:2px 7px;align-items:center;padding:10px;border:1px solid #ddd;border-radius:7px;background:#fafaf8;text-align:left}.designer-library>button:hover{border-color:#d7a600;background:#fff9df}.designer-library>button>b{grid-row:1/3;display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:#111;color:var(--yellow)}.designer-library>button>span{font-size:11px;font-weight:800}.designer-library>button>small{font-size:8px;color:#888}.designer-elements>.section-title{margin-bottom:12px}.designer-element-list{display:grid;gap:6px}.designer-element-list article{display:grid;grid-template-columns:18px 28px minmax(120px,1fr) repeat(4,30px);align-items:center;gap:5px;padding:8px;border:1px solid #e1e1dc;border-radius:6px;background:#fafaf8;cursor:pointer}.designer-element-list article.active{border-color:#d2a000;box-shadow:0 0 0 2px #ffc40035;background:#fffaf0}.designer-element-list article>div{min-width:0}.designer-element-list strong,.designer-element-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.designer-element-list strong{font-size:10px}.designer-element-list small{margin-top:3px;color:#888;font-size:8px}.designer-element-list article>button{height:28px;border:1px solid #ddd;border-radius:4px;background:#fff}.designer-element-list article>button.danger{color:#a21d1d}.designer-element-list article>button:disabled{opacity:.25}.drag-handle{color:#aaa;cursor:grab}.designer-properties{display:grid;gap:12px}.designer-properties textarea{min-height:95px;padding:10px;border:1px solid #d8d8d3;border-radius:6px;background:#fafaf8;font:inherit;resize:vertical}.designer-position{display:flex;justify-content:space-between;gap:8px;padding:9px;border-radius:6px;background:#f0f0ec;color:#666;font-size:9px}.saved-designs{margin-top:14px;padding:18px}.saved-designs article{display:grid;grid-template-columns:1fr 36px;gap:8px;border-top:1px solid #eee}.saved-designs article>button{border:0;background:transparent;padding:11px;text-align:left}.saved-designs article>button>b,.saved-designs article>button>small{display:block}.saved-designs article>button>small{margin-top:4px;color:#888}.saved-designs article>button.danger{color:#a21d1d;font-size:20px;text-align:center}.crm-design-list{display:grid;gap:7px}.crm-design-list button{display:grid;gap:3px;padding:9px;border:1px solid #ddd;border-radius:6px;background:#fff;text-align:left}.crm-design-list small{color:#777}.open-crm-quote{width:100%;padding:10px}.sidebar nav button i.design-icon{font-size:17px}@media(max-width:1200px){.designer-workspace{grid-template-columns:190px 1fr}.designer-properties{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.designer-properties>h2,.designer-properties>p,.designer-properties>label:last-child,.designer-position{grid-column:1/-1}}@media(max-width:760px){.designer-project-bar,.designer-workspace{grid-template-columns:1fr}.designer-properties{grid-column:auto;grid-template-columns:1fr}.designer-properties>h2,.designer-properties>p,.designer-properties>label:last-child,.designer-position{grid-column:auto}.designer-element-list article{grid-template-columns:16px 24px minmax(80px,1fr) repeat(2,30px)}.designer-element-list article>button:nth-last-child(3),.designer-element-list article>button:nth-last-child(2){display:none}.fence-top-view{min-width:760px}.designer-canvas-card{overflow-x:auto}.designer-legend{min-width:760px}.fence-designer-page .heading-actions{grid-template-columns:1fr}.fence-designer-page .heading-actions .button{grid-column:auto}.designer-library{grid-template-columns:1fr 1fr}.designer-library>h2,.designer-library>p{grid-column:1/-1}}.designer-export-actions{display:grid;grid-template-columns:repeat(3,max-content);gap:8px}.designer-card-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:15px 18px 10px;border-bottom:1px solid #eee}.designer-card-heading h2{margin:2px 0 0;font-size:18px}.designer-card-heading small{max-width:470px;color:#777;text-align:right}.fence-front-view,.fence-top-view{display:block;width:100%;height:auto;max-width:100%;min-height:0;touch-action:manipulation}.fence-front-view{aspect-ratio:1100/390}.fence-top-view{aspect-ratio:1100/500}.front-element{cursor:pointer;stroke:#111;stroke-width:2;fill:#f5f5f2}.front-element:hover,.front-element.selected{stroke:#b18400;stroke-width:4;filter:drop-shadow(0 3px 4px #0002)}.front-post{fill:#222}.front-plate{fill:#d8d8d2}.front-hinge{fill:#ffc400}.front-gap{stroke:#999;stroke-dasharray:6 5}.front-gate,.front-wicket{fill:#fff7d4}.front-label,.front-size{font-size:9px;font-weight:750;fill:#444;text-anchor:middle}.front-height-label{font-size:10px;font-weight:800;fill:#333;text-anchor:middle;writing-mode:vertical-rl;transform:rotate(180deg);transform-origin:center}.front-turn circle,.route-turn circle{fill:#111;stroke:#ffc400;stroke-width:2}.front-turn text,.route-turn text{fill:#ffc400;font-size:7px;font-weight:900;text-anchor:middle}.front-ground{stroke:#111;stroke-width:2}.design-route-element{cursor:pointer;stroke:#151515;stroke-width:9;stroke-linecap:square;fill:none}.design-route-element:hover,.design-route-element.selected{stroke:#b18400;filter:drop-shadow(0 3px 4px #0002)}.design-route-element.design-post{stroke-width:13}.design-route-element.design-gap{stroke:#999;stroke-width:4;stroke-dasharray:8 8}.design-route-element.design-gate{stroke:#d19b00}.design-route-element.design-wicket{stroke:#5d4b9a}.design-route-element text{stroke:none}.route-label,.route-size{font-size:9px;font-weight:800;fill:#333;text-anchor:middle;paint-order:stroke;stroke:#fff!important;stroke-width:4!important;stroke-linejoin:round}.route-size{font-size:8px;font-weight:650}.closure-line{stroke:#e26b54;stroke-width:2;stroke-dasharray:8 6}.route-start{fill:#34a767;stroke:#fff;stroke-width:3}.route-end{fill:#e24b4b;stroke:#fff;stroke-width:3}.route-end.closed{fill:#34a767}.designer-closure{display:flex;justify-content:space-between;gap:15px;padding:9px 18px;border-top:1px solid #eee;background:#fff6f3;color:#7a3025;font-size:10px}.designer-closure.closed{background:#eff9f2;color:#23643b}.designer-closure span{text-align:right}.legend-wicket{background:#ebe6ff;border-color:#5d4b9a!important}.legend-start,.legend-end{width:10px!important;height:10px!important;border-radius:50%}.legend-start{background:#34a767}.legend-end{background:#e24b4b}.designer-element-list article{grid-template-columns:22px 18px 28px minmax(120px,1fr) repeat(4,30px)}.section-check{display:grid!important;place-items:center!important;margin:0!important}.section-check input{width:16px;height:16px;margin:0}.designer-sections{display:grid;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid #e5e5df}.section-create{display:grid;grid-template-columns:1fr auto;gap:8px}.section-create input{min-width:0}.section-template-list{display:grid;gap:6px}.section-template-list>small{color:#888}.section-template-list article{display:grid;grid-template-columns:1fr auto 30px;gap:6px;align-items:center;padding:8px;border:1px solid #e1e1dc;border-radius:6px;background:#fafaf8}.section-template-list b,.section-template-list small{display:block}.section-template-list small{margin-top:2px;color:#888}.section-template-list button{min-height:30px;padding:0 9px;border:1px solid #ddd;border-radius:4px;background:#fff;font-weight:750}.section-template-list button.danger{padding:0;color:#a21d1d}.designer-turn-field{display:grid;gap:7px;margin:0;padding:9px;border:1px solid #ddd;border-radius:6px}.designer-turn-field legend{padding:0 5px;font-size:9px;font-weight:800;text-transform:uppercase}.designer-turn-field>small{text-align:center;color:#777}.turn-buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.turn-buttons button{height:36px;border:1px solid #ddd;border-radius:5px;background:#fff;font-size:16px}.turn-buttons button.active{border-color:#b18400;background:#111;color:#ffc400}.live-front-card{border-top:3px solid #ffc400}.route-block{cursor:pointer;stroke:#161616;stroke-width:2;fill:#f3f3ef}.route-block:hover,.route-block.selected{stroke:#b18400;stroke-width:4;filter:drop-shadow(0 3px 4px #0002)}.route-block.route-post{fill:#333}.route-block.route-plate{fill:#d8d8d2}.route-block.route-plate circle{fill:#fff;stroke:#333}.route-block.route-hinge{fill:#ffc400}.route-block.route-gate{fill:#fff2b9}.route-block.route-wicket{fill:#eee9ff}.route-block.route-gap{fill:none;stroke:#888}.route-gap-symbol{stroke:#888;stroke-width:3;stroke-dasharray:8 7}@media(max-width:760px){.designer-export-actions{grid-template-columns:1fr}.designer-element-list article{grid-template-columns:20px 15px 24px minmax(72px,1fr) repeat(2,30px)}.designer-canvas-card{overflow:hidden}.designer-legend{min-width:0}.designer-card-heading{align-items:start;flex-direction:column;gap:4px}.designer-card-heading small{text-align:left}.fence-front-view,.fence-top-view{min-width:0;min-height:190px}.section-create{grid-template-columns:1fr}.section-template-list article{grid-template-columns:1fr 30px}.section-template-list article>button:nth-last-child(2){grid-column:1/-1;grid-row:2}.designer-closure{flex-direction:column}.designer-closure span{text-align:left}}.quote-visualization{margin:18px 0;padding:20px;border-top:4px solid var(--yellow)}.quote-visualization-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:16px;min-width:0}.quote-visualization-heading h2{margin:3px 0 0}.quote-visualization-heading p{width:min(440px,48%);margin:0;color:#666;font-size:12px;text-align:right;overflow-wrap:anywhere}.quote-visualization-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:14px;min-width:0}.quote-visualization-grid article{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:linear-gradient(#fff,#fafaf7)}.quote-visualization-grid article>div{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #eee}.quote-visualization-grid article>div>b{display:grid;place-items:center;width:30px;height:30px;border-radius:6px;background:#111;color:var(--yellow);font-size:11px}.quote-visualization-grid h3{margin:0;font-size:14px}.quote-visualization svg{display:block;width:100%;height:auto;min-height:180px;background:#fff;overflow:hidden}.visual-structure,.visual-roof,.visual-dimension{fill:none;stroke:#151515;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.visual-roof polygon{fill:#f1f1ed}.visual-wall{fill:#f7dc79;fill-opacity:.48;stroke-width:1.4}.visual-dimension{stroke-width:1}.visual-dimension text,.quote-visualization svg text{fill:#333;stroke:none;font-size:12px;text-anchor:middle;font-family:Arial,sans-serif}.quote-visualization svg .visual-side-label{text-anchor:start}.visualization-empty{display:grid;place-items:center;min-height:130px;border:1px dashed #ccc;border-radius:9px;color:#777}.visual-stair-railing{stroke-width:2.4}.quote-visualization svg .visual-railing-label{font-size:10px;font-weight:700;text-anchor:middle}@media(max-width:760px){.quote-visualization{padding:14px}.quote-visualization-heading{display:block}.quote-visualization-heading p{width:100%;margin-top:8px;text-align:left}.quote-visualization-grid{grid-template-columns:minmax(0,1fr)}.quote-visualization svg{min-height:0}.visual-dimension text,.quote-visualization svg text{font-size:13px}}.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:#111}.login-card{width:min(430px,100%);padding:30px;display:grid;gap:17px}.login-card>img{width:100%;height:85px;object-fit:cover;margin-bottom:7px}.login-card h1{margin:0;font-size:30px}.login-card p{margin:0 0 8px;color:var(--muted);font-size:13px;line-height:1.5}.login-message{padding:10px;border-radius:6px;background:#fff5d5;color:#674e00;font-size:12px}.login-links{display:flex;justify-content:space-between;gap:12px}.login-links button,.logout{border:0;background:transparent;color:#8b6a00;font-size:10px;padding:0}.logout{color:#aaa;margin:10px 0 0 13px;text-decoration:underline}.photos{margin-top:18px;padding:21px}.photos h2{font-size:20px;margin:4px 0 14px}.photo-add{position:relative}.photo-add input{position:absolute;inset:0;opacity:0;cursor:pointer}.photo-add.disabled{opacity:.45;cursor:not-allowed}.photos>p{font-size:12px;color:var(--muted)}.photo-error{padding:10px;background:#f8e3e3;color:#8d2a2a;border-radius:6px;font-size:12px;margin-bottom:12px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.photo-grid article{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fafaf8}.photo-grid img,.photo-loading{display:block;width:100%;height:145px;object-fit:cover}.photo-loading{display:grid;place-items:center;color:#999;font-size:11px}.photo-grid article>div:last-child{display:flex;align-items:center;gap:8px;padding:8px}.photo-grid span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.photo-grid button{margin-left:auto;border:0;background:transparent;color:#9b3838;font-size:9px}@media(max-width:900px){body{min-width:320px}.app-shell{display:block}.sidebar{position:static;width:auto;height:auto;padding:12px;border-right:0;border-bottom:4px solid var(--yellow)}.brand{display:flex;align-items:center;gap:12px;padding:0 0 10px}.brand img{width:170px;height:42px}.brand span{margin:0}.sidebar nav{display:flex;overflow:auto;padding-top:10px}.sidebar nav button{min-width:max-content;height:42px}.sidebar-foot{display:none}main{display:block}.page{padding:22px 14px 50px}.page-heading{align-items:flex-start;gap:15px}.quote-meta,.form-grid,.carport-editor>.form-grid,.settings-grid,.filters{grid-template-columns:1fr 1fr}.carport-editor{grid-template-columns:1fr}.add-bar{overflow:auto}.add-bar b{min-width:max-content}.quote-row{grid-template-columns:1fr}.quote-row>strong{text-align:left;margin-top:8px}.row-actions{overflow:auto}.grand-total{font-size:17px}.login-links{flex-direction:column}}@media(max-width:560px){.page-heading{display:grid}.heading-actions{width:100%}.heading-actions .button{flex:1}.quote-meta,.form-grid,.carport-editor>.form-grid,.settings-grid,.filters{grid-template-columns:1fr}.check-row{flex-wrap:wrap}.page h1{font-size:27px}.photos .section-title{align-items:flex-start;gap:10px}.photo-grid{grid-template-columns:1fr 1fr}}.login-card>img{object-fit:contain}@media(max-width:760px){.sidebar{position:sticky;top:0;width:100%;display:grid;grid-template-columns:92px 1fr auto;align-items:center;padding:8px 10px}.brand{display:block;padding:0;border:0}.brand img{width:92px;height:36px;object-fit:contain}.brand span{display:none}.sidebar nav{position:fixed;left:0;right:0;bottom:0;z-index:21;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:5px;background:#111;border-top:2px solid var(--yellow);overflow:visible}.sidebar nav button{min-width:0;height:58px;padding:4px 6px;justify-content:center;flex-direction:column;gap:2px}.sidebar .language-switch{grid-column:3;grid-row:1;margin:0}}@media(max-width:760px){.sidebar nav{grid-template-columns:repeat(4,1fr)}.production-shell .sidebar nav{grid-template-columns:1fr}}.photo-grid .quote-photo-preview{display:block;width:100%;padding:0;margin:0;cursor:zoom-in}.photo-grid article{min-width:0}.photo-grid article>.quote-photo-actions{display:flex;flex-wrap:wrap;gap:8px}.quote-photo-actions span{flex-basis:100%}.photo-grid .quote-photo-actions button{flex:1;min-height:36px;margin:0;border:1px solid #ddd;border-radius:5px;color:#222;background:#fff;font-size:11px}.photos .photo-grid{margin-top:18px}.photos .lightbox-stage img{width:auto;height:auto;max-width:88vw;max-height:78vh}@media(max-width:560px){.photos .section-title{display:block}.photos .attachment-actions{display:grid;width:100%;margin-top:12px}.photos .attachment-actions .button{width:100%;min-height:44px}}
