:root{color-scheme:dark;--bg:#0b1220;--surface:#131e31;--line:#27354a;--ink:#ecf4ff;--muted:#9eb0ca;--accent:#35d0ac;--danger:#e97784;font:15px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}body{background:radial-gradient(ellipse at 15% -15%,#16413b 0,transparent 38%),var(--bg);color:var(--ink);margin:0}button,input,select,textarea{font:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:1280px;margin:auto;padding:0 28px}.top{height:93px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}.brand{display:flex;gap:12px;align-items:center;color:#fff;font-weight:750;font-size:1.25rem}.brand:hover{text-decoration:none}.brand b{color:var(--accent)}.brand small{display:block;font-size:.67rem;font-weight:400;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}.brandmark{display:grid;place-items:center;width:40px;height:40px;border:2px solid var(--accent);border-radius:12px;color:var(--accent);font-size:24px}.top nav{display:flex;align-items:center;gap:22px}.top nav a{color:#cad6e8}.who{color:var(--muted);font-size:.85rem}.inline{display:inline}main{padding:38px 0 70px;min-height:73vh}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.9rem,3.7vw,2.7rem);line-height:1.13;letter-spacing:-.04em;margin-bottom:13px}h2{font-size:1.35rem;letter-spacing:-.02em}h3{font-size:1.15rem;margin-bottom:8px}p{color:var(--muted)}.eyebrow{font-size:.72rem;letter-spacing:.18em;color:var(--accent);font-weight:700;margin-bottom:12px}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:30px}.pagehead p{max-width:660px}.pill{border:1px solid var(--line);border-radius:100px;padding:5px 12px;font-size:.78rem;white-space:nowrap;color:var(--muted)}.pill.online{background:#10392e;color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:17px}.card{background:linear-gradient(165deg,#17243a,#111c2d);border:1px solid var(--line);border-radius:16px;padding:24px;box-shadow:0 10px 30px #03091421}.project-card{color:var(--ink);min-height:190px;display:flex;flex-direction:column}.project-card:hover{border-color:#359d87;text-decoration:none;transform:translateY(-2px);transition:transform .18s}.project-card p{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-link{margin-top:auto;color:var(--accent);font-weight:700}.project-icon{display:grid;place-items:center;width:48px;height:48px;background:#1f3f3d;border-radius:14px;font-size:23px;margin-bottom:18px}.section{margin-top:30px}.empty{color:var(--muted);padding:34px}.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{padding:21px;background:#16243a;border:1px solid var(--line);border-radius:14px}.stat span{display:block;color:var(--muted);font-size:.85rem}.stat strong{display:block;font-size:2.1rem;color:#fff;letter-spacing:-.05em}.auth{max-width:470px;margin:8vh auto;padding:40px}.auth h1{font-size:2.15rem}.stack{display:flex;flex-direction:column;gap:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end}.wide{grid-column:1/-1}label{display:block;font-size:.86rem;font-weight:600;color:#c5d4e6}input,select,textarea{width:100%;display:block;margin-top:7px;padding:11px 12px;background:#0c1729;border:1px solid #33435b;border-radius:9px;color:#f6fbff;outline:none;min-height:44px}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #35d0ac22}textarea{resize:vertical}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:normal;padding:12px 17px;border:1px solid #41556d;border-radius:10px;color:var(--ink);font-weight:700;cursor:pointer;background:#22324a}.btn.primary{background:var(--accent);border-color:var(--accent);color:#09231e}.btn.danger{background:#422432;color:#ffb4bb;border-color:#833f53}.btn.ghost{background:transparent}.btn.tiny{padding:7px 10px;font-size:.79rem}.btn:hover{filter:brightness(1.13);text-decoration:none}.small,small{font-size:.78rem;color:var(--muted)}.notice{padding:15px 18px;border:1px solid #3e8b77;border-radius:12px;background:#10362f;margin:0 0 24px;color:#dff9f1}.notice.error{background:#432a34;border-color:#a2515c;color:#ffd9d9}.credentials{border-color:#d3ad63}.credentials label{margin:12px 0}.credentials input{font-family:ui-monospace,Consolas,monospace;font-size:.79rem}.device{display:flex;flex-direction:column;gap:8px}.device-top{display:flex;align-items:center;justify-content:space-between}.device-icon{font-size:30px}.device p{font-size:.82rem;min-height:46px}.device-control{display:flex;flex-direction:column;gap:9px;margin:6px 0 12px}.controls{display:flex;flex-wrap:wrap;gap:8px}.controls button{flex:1;font-size:.8rem;padding:11px}.chart{height:146px;background:#101b2b;border-radius:9px;padding:10px;color:var(--muted);display:flex;align-items:center;justify-content:center}.chart canvas{max-width:100%;height:124px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:650px}td,th{text-align:left;padding:13px 10px;border-bottom:1px solid var(--line);vertical-align:middle}th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}td small{display:block}table input,table select{min-width:110px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.gallery a{display:block;border:1px solid var(--line);background:var(--surface);border-radius:12px;overflow:hidden}.gallery img{width:100%;height:140px;object-fit:cover;display:block}.gallery small{display:block;padding:9px 12px}.muted{color:var(--muted)}footer{border-top:1px solid var(--line);padding:24px 0;display:flex;justify-content:space-between;gap:20px;font-size:.8rem;color:#8d9fbb}
@media(max-width:680px){.shell{padding:0 15px}.top{height:auto;padding:18px 0;align-items:flex-start}.top nav{flex-wrap:wrap;justify-content:flex-end;gap:10px}.top .who{display:none}main{padding-top:25px}.pagehead{display:block}.pagehead .pill{display:inline-block;margin-top:10px}.form-grid{grid-template-columns:1fr}.statgrid{gap:7px}.stat{padding:13px}.stat strong{font-size:1.5rem}.auth{padding:24px;margin:20px auto}footer{flex-direction:column}.cards{grid-template-columns:1fr}}

/* v1.9: fluxo de cadastro e gestao */
.nav-register{padding:8px 12px;border:1px solid var(--accent);border-radius:9px;color:var(--accent)!important}.section-header{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.count{display:inline-block;border-radius:99px;background:#284e44;color:var(--accent);padding:3px 10px;font-size:.8rem}.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.controls form{display:inline-block}.controls{align-items:center}.tablewrap td .controls{flex-wrap:nowrap}@media(max-width:680px){.section-header{align-items:flex-start}.section-header form{width:100%}.section-header button{width:100%}}

/* GVcode IoT v1.10 — interface clara e ícones originais do Horta 10. */
:root{color-scheme:light;--bg:#f3f5f7;--surface:#fff;--line:#dce2e7;--ink:#253342;--muted:#697a8a;--accent:#23734c;--danger:#a33434}
body{background:linear-gradient(180deg,#e9f5eb 0,#f3f6f7 210px);color:var(--ink)}
.top{border-bottom:1px solid #c8d9ce}.brand{color:#205534}.brand b{color:#25784c}.brand small{color:#617669}.brandmark{color:#247f50;border-color:#247f50}
.top nav a,.who{color:#425b4a}.card{background:#fff;border:1px solid #d8e1db;box-shadow:0 4px 17px #27382e17;border-radius:13px}
.pagehead h1,h1,h2,h3{color:#263d34}.pagehead .eyebrow,.eyebrow{color:#2e7e54}.pill{color:#466451;border-color:#c5d9c9}.pill.online{background:#e3f6e7;color:#236a3d}
.project-card:hover{border-color:#378f60}.project-icon{background:#e7f3e8}.stat{background:#fff;border-color:#d8e1db}.stat strong{color:#274a36}
input,select,textarea{background:#fff;color:#293e34;border:1px solid #bbc9c0}label{color:#3e5546}
.btn{background:#f0f5f1;border-color:#b9cdbd;color:#2c4c36}.btn.primary{background:#277447;border-color:#277447;color:#fff}
.btn.danger{background:#fff1f1;border-color:#e4b0b0;color:#9d3434}.btn.ghost{background:#fff}.chart{background:#f5f9f6;color:#6e8475}
.small,small,p,.muted{color:#617669}th{color:#5d7565}.notice{background:#e9f9ec;color:#205535}.notice.error{background:#fff1ef;color:#7f3333}
.device{align-items:stretch}.device-top{min-height:95px;align-items:flex-start}.device-icon{display:flex;align-items:center;justify-content:flex-start;min-height:88px;font-size:40px}
.sensor-img{width:99px;height:84px;object-fit:contain;mix-blend-mode:multiply}.device h3{margin-top:3px}.device-control{margin-top:auto}
.credentials{border:2px solid #d6aa56}.credentials input{background:#fffbee}footer{border-top-color:#d5dfd6;color:#6e8572}
.nav-register{border-color:#277447;color:#277447!important}.count{background:#e1f4e4;color:#267a47}

.iot-plan-strip{margin:-4px 0 21px;border:1px solid #bad6c2;border-radius:12px;background:#effaf1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 16px;font-size:.81rem;color:#2e6946}.iot-plan-strip strong{font-size:.92rem;margin-right:7px}.iot-plan-strip span{padding:3px 9px;border-radius:20px;background:#fff;border:1px solid #d1e6d5}
