:root{--bg: #f6f3ee;--panel: #ffffff;--ink: #2d2a26;--muted: #7a736a;--line: #e6e0d7;--brand: #e86a33;--brand-ink: #ffffff;--brand-soft: #fde9df;--ok: #2f8f5b;--sel: #ffb000;--radius: 14px;--shadow: 0 6px 24px rgba(60, 40, 20, .12);font-family:Nunito,system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}body{display:grid;grid-template-columns:260px 1fr 300px;grid-template-rows:auto 1fr;grid-template-areas:"top top top" "left main right"}#top{grid-area:top;display:flex;align-items:center;gap:12px;padding:8px 14px;background:var(--panel);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.brand{display:flex;align-items:center;gap:8px;font-size:20px;white-space:nowrap}.brand b{color:var(--brand)}.logo{font-size:26px}.proj-name{border:1px solid transparent;border-radius:10px;padding:6px 10px;width:180px;font-weight:700;background:var(--bg)}.proj-name:focus{outline:none;border-color:var(--brand);background:#fff}.actions,.views{display:flex;gap:6px}.views{margin-inline:auto;background:var(--bg);padding:4px;border-radius:14px}#top button{display:flex;flex-direction:column;align-items:center;gap:1px;border:0;background:transparent;border-radius:10px;padding:5px 10px;min-width:62px}#top button span{font-size:20px;line-height:1.1}#top button em{font-style:normal;font-size:12px;font-weight:700;white-space:nowrap}#top button:hover{background:var(--brand-soft)}.views button.on{background:var(--brand)!important;color:var(--brand-ink)}#top button.accent{background:var(--ok);color:#fff}#top button.accent:hover{background:#26794c}#left,#right{background:var(--panel);position:relative;min-height:0}#left{grid-area:left;border-right:1px solid var(--line)}#right{grid-area:right;border-left:1px solid var(--line)}.panel-body{height:100%;overflow-y:auto;padding:14px}.panel-toggle{display:none}h2{font-size:16px;margin:0 0 10px}h3{font-size:15px;margin:18px 0 8px}.cat{margin-bottom:6px;border-radius:var(--radius)}.cat>button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:0;background:var(--bg);padding:10px 12px;border-radius:12px;font-weight:700;font-size:15px}.cat>button .ic{font-size:22px}.cat>button:after{content:"›";margin-left:auto;font-size:20px;transition:transform .2s}.cat.open>button{background:var(--brand-soft)}.cat.open>button:after{transform:rotate(90deg)}.tools{display:none;grid-template-columns:1fr 1fr;gap:6px;padding:8px 2px 4px}.cat.open .tools{display:grid}.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:74px;padding:6px 4px;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:12.5px;font-weight:700;text-align:center;line-height:1.15}.tool .ic{font-size:26px}.tool:hover{border-color:var(--brand)}.tool.on{border-color:var(--brand);background:var(--brand-soft)}#props .title{display:flex;align-items:center;gap:10px;margin-bottom:6px}#props .title .ic{font-size:30px}#props .title h2{margin:0;font-size:18px}#props .help{background:#fff8e6;border:1px solid #f3dfa8;border-radius:12px;padding:10px 12px;font-size:14px;margin:8px 0 12px}.field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;margin:8px 0;font-size:14px}.field>span{font-weight:600}.field .num{display:flex;align-items:center;gap:4px}.field input[type=number]{width:84px;padding:7px 8px;border:2px solid var(--line);border-radius:10px;text-align:right;font-weight:700}.field input[type=text],.field select{width:150px;padding:7px 8px;border:2px solid var(--line);border-radius:10px;background:#fff}.field input:focus,.field select:focus{outline:none;border-color:var(--brand)}.field input[type=color]{width:60px;height:36px;border:2px solid var(--line);border-radius:10px;padding:2px;background:#fff}.field input[type=checkbox]{width:22px;height:22px;accent-color:var(--brand)}.field .unit{color:var(--muted);font-size:13px;min-width:22px}.info{color:var(--muted);font-size:13.5px;margin:6px 0}.btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.btn{display:flex;align-items:center;justify-content:center;gap:6px;border:2px solid var(--line);background:#fff;border-radius:12px;padding:10px;font-weight:700}.btn:hover{border-color:var(--brand)}.btn.danger{color:#b3261e}.btn.danger:hover{border-color:#b3261e;background:#fdecea}.btn.primary{background:var(--brand);color:#fff;border-color:var(--brand)}.btn.wide{grid-column:1 / -1}.layers{border-top:1px solid var(--line);margin-top:16px}.layers label{display:flex;align-items:center;gap:8px;font-size:14px;padding:3px 0}.layers input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}.layers .xray{font-weight:700;margin-bottom:4px}.grid-snap{margin-top:10px;justify-content:space-between}.grid-snap select{padding:4px 6px;border-radius:8px;border:2px solid var(--line)}#viewport{grid-area:main;position:relative;overflow:hidden;min-height:0}#viewport canvas{display:block;touch-action:none}.labels{position:absolute;inset:0;pointer-events:none}.lbl{font-weight:800;font-size:12px;padding:2px 7px;border-radius:8px;white-space:nowrap}.lbl-dim{background:#ffffffe6;color:#1f4e79;border:1px solid #b9cfe4}body:not(.planta) .lbl-dim{display:none}.lbl-room{background:#2d2a26bf;color:#fff;font-size:13px}.lbl-room:empty{display:none}.lbl-measure{background:#d83a3a;color:#fff}.hint{position:absolute;top:12px;left:50%;transform:translate(-50%);max-width:min(680px,90%);background:#2d2a26e0;color:#fff;padding:10px 16px;border-radius:12px;font-size:15px;font-weight:600;text-align:center;pointer-events:none;z-index:2}.hint:empty{display:none}.cursor-tip{position:absolute;pointer-events:none;background:var(--brand);color:#fff;font-weight:800;padding:3px 9px;border-radius:8px;font-size:14px;z-index:3;white-space:nowrap}.type-size{position:absolute;bottom:70px;left:50%;transform:translate(-50%);z-index:3}.type-size form{display:flex;align-items:center;gap:8px;background:#fff;padding:8px 10px;border-radius:14px;box-shadow:var(--shadow)}.type-size label{font-weight:700;font-size:14px}.type-size input{width:100px;padding:7px 8px;border:2px solid var(--line);border-radius:10px;font-weight:800}.type-size input:focus{outline:none;border-color:var(--brand)}.type-size button{border:0;background:var(--brand);color:#fff;border-radius:10px;padding:7px 14px;font-weight:800}.zoom{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px;z-index:2}.zoom button,.levels button{width:44px;height:44px;border:0;border-radius:12px;background:#fff;box-shadow:var(--shadow);font-size:20px;font-weight:800}.bottom-left{position:absolute;left:12px;bottom:12px;display:flex;flex-direction:column;gap:8px;z-index:2}.levels,.sun{display:flex;align-items:center;gap:6px;background:#ffffffeb;padding:6px 10px;border-radius:14px;box-shadow:var(--shadow);font-weight:700;font-size:14px}.levels button{width:auto;height:34px;padding:0 12px;font-size:14px;box-shadow:none;background:var(--bg)}.levels button.on{background:var(--brand);color:#fff}.sun input{accent-color:var(--brand);width:130px}.walk-pad{display:none;position:absolute;right:16px;bottom:16px;z-index:2;text-align:center}body.passeio .walk-pad{display:block}.walk-pad button{width:58px;height:58px;border:0;border-radius:14px;background:#ffffffeb;font-size:26px;margin:3px;box-shadow:var(--shadow)}.walk-pad p{margin:4px 0 0;background:#00000080;color:#fff;padding:4px 8px;border-radius:8px;font-size:13px}dialog{border:0;padding:0;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:min(960px,94vw);width:100%;max-height:90vh}dialog::backdrop{background:#1e191473}.modal-box{position:relative;padding:24px;max-height:90vh;overflow-y:auto}.modal-box .close{position:absolute;top:12px;right:12px;border:0;background:var(--bg);border-radius:50%;width:38px;height:38px;font-size:18px}.modal-box h1{margin:0 0 6px;font-size:26px}.modal-box .sub{color:var(--muted);margin:0 0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.card{border:2px solid var(--line);border-radius:16px;padding:16px;background:#fff;text-align:left;display:flex;flex-direction:column;gap:6px}.card:hover{border-color:var(--brand);box-shadow:var(--shadow)}.card .ic{font-size:40px}.card b{font-size:17px}.card small{color:var(--muted);font-size:13.5px}.saved{margin-top:10px;display:flex;flex-direction:column;gap:8px}.saved .row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 12px}.saved .row b{flex:1}.saved .row small{color:var(--muted)}.row-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}table.budget{width:100%;border-collapse:collapse;font-size:14px}table.budget th{text-align:left;color:var(--muted);font-weight:700;border-bottom:2px solid var(--line);padding:6px}table.budget td{border-bottom:1px solid var(--line);padding:6px}table.budget td.n{text-align:right;white-space:nowrap}table.budget tr.grp td{background:var(--bg);font-weight:800;padding-top:10px}table.budget input{width:90px;text-align:right;border:1px solid var(--line);border-radius:8px;padding:4px 6px}.total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:14px 18px;background:var(--ok);color:#fff;border-radius:14px;font-size:20px;font-weight:800}.note{color:var(--muted);font-size:13px;margin-top:10px}.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.help-grid div{background:var(--bg);border-radius:14px;padding:14px}.help-grid b{display:block;font-size:16px;margin-bottom:4px}kbd{background:#fff;border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;padding:0 5px;font-size:13px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:14px;font-weight:700;z-index:100;box-shadow:var(--shadow)}@media (max-width: 900px){body{grid-template-columns:1fr;grid-template-areas:"top" "main"}#top{gap:6px;padding:6px}.brand>span:last-child,.proj-name{display:none}#top button{min-width:52px;padding:4px 6px}#top button em{font-size:11px}#left,#right{position:fixed;top:64px;bottom:0;width:min(320px,86vw);z-index:20;box-shadow:var(--shadow);transition:transform .25s}#left{left:0;transform:translate(-100%)}#right{right:0;transform:translate(100%)}#left.open,#right.open{transform:none}.panel-toggle{display:block;position:absolute;top:12px;width:48px;height:48px;border:0;border-radius:14px;background:#fff;box-shadow:var(--shadow);font-size:24px}#left .panel-toggle{right:-60px}#right .panel-toggle{left:-60px}.zoom{top:70px}.hint{top:70px;font-size:13px}}@media print{body{display:block;overflow:visible;height:auto}#top,#left,#right,#viewport{display:none}dialog{position:static;box-shadow:none;max-height:none;max-width:none}.modal-box{max-height:none;overflow:visible}.modal-box .close,.no-print{display:none!important}}.cloud{font-size:13px;font-weight:700;color:var(--muted);white-space:nowrap}.login{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:linear-gradient(160deg,#fde9df,#f6f3ee 55%,#e3efd9)}.login[hidden]{display:none}.login-box{width:min(420px,100%);background:#fff;border-radius:22px;padding:28px;box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:10px}.login-brand span{font-size:44px}.login-brand h1{margin:0;font-size:28px;font-weight:700}.login-brand b{color:var(--brand)}.login-box .sub{color:var(--muted);margin:6px 0 18px}.login-tabs{display:flex;gap:6px;background:var(--bg);padding:4px;border-radius:14px;margin-bottom:14px}.login-tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:10px;font-weight:800;font-size:16px}.login-tabs button.on{background:var(--brand);color:#fff}.login-form{display:flex;flex-direction:column;gap:12px}.login-form.narrow{max-width:360px}.login-form label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:15px}.login-form label[hidden]{display:none}.login-form input:not([type=checkbox]){padding:12px 14px;border:2px solid var(--line);border-radius:12px;font-size:17px}.login-form input:focus{outline:none;border-color:var(--brand)}.login-form .show-pass{flex-direction:row;align-items:center;font-weight:600;font-size:14px}.login-form .show-pass input{width:18px;height:18px;accent-color:var(--brand)}.form-msg{margin:0;font-size:14px;color:var(--muted);min-height:1em}.form-msg:empty{display:none}.btn.big{padding:14px;font-size:18px}.btn:disabled{opacity:.6;cursor:wait}#top button[hidden],.login-tabs[hidden]{display:none}.login-note{margin:16px 0 0;text-align:center;color:var(--muted);font-size:14px}.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;max-width:640px}.admin-form .show-pass,.admin-form>.btn{grid-column:1 / -1;justify-self:start}.pass-row{display:flex;gap:6px}.pass-row input{flex:1;min-width:0;font-family:ui-monospace,monospace;letter-spacing:1px}.pass-row .btn{padding:8px 12px}.users{overflow-x:auto}.tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:8px;font-size:11px;font-weight:800;background:var(--brand-soft);color:var(--brand)}.tag.me{background:#e3efd9;color:var(--ok)}.user-acts{display:flex;gap:6px;justify-content:flex-end}.user-acts .btn{padding:6px 10px;font-size:13px;white-space:nowrap}#modal .form-msg{margin-top:10px;font-weight:700;color:var(--ink);user-select:all}@media (max-width: 600px){.admin-form{grid-template-columns:1fr}}
