:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#172432;background:#f1f5f9;font-synthesis:none}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-height:100vh}button,input,select,textarea{font:inherit}button,.button{cursor:pointer}header{background:#17324d;color:#fff;box-shadow:0 4px 16px #0f172a30}.header-inner{max-width:1120px;margin:auto;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px}.brand img{width:50px;height:50px;object-fit:contain;border-radius:12px;border:2px solid #fff;background:#fff}.brand b{font-size:22px;display:block}.brand small{display:block;color:#cbd5e1;margin-top:2px}.user{display:flex;align-items:center;gap:10px}.ghost{border:0;background:transparent;color:inherit;padding:10px;border-radius:9px}.ghost:hover{background:#ffffff18}main{max-width:1120px;margin:auto;padding:22px 14px 60px}.tabs{display:grid;grid-template-columns:1fr 1fr;max-width:360px;background:#fff;border-radius:12px;padding:4px;margin-bottom:18px;box-shadow:0 1px 6px #0f172a12}.tab{border:0;background:transparent;padding:10px;border-radius:9px;font-weight:700;color:#475569}.tab.active{background:#17324d;color:#fff}.card{background:#fff;border:1px solid #dbe3ec;border-radius:16px;padding:20px;margin-bottom:18px;box-shadow:0 2px 9px #0f172a0c}.card h2,.section-title h2{margin:0 0 5px;color:#17324d}.hint{margin:0 0 18px;color:#64748b}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.wide{grid-column:1/-1}label{display:flex;flex-direction:column;gap:7px;font-weight:650;color:#334155}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#172432;padding:11px 12px;min-height:44px;outline:none}input:focus,select:focus,textarea:focus{border-color:#356a8d;box-shadow:0 0 0 3px #356a8d20}textarea{min-height:86px;resize:vertical}.points{min-height:145px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px}.section-title{padding:0 4px 8px}.section-title .hint{margin:0}.room{border-left:5px solid #168b62;padding:16px}.room-head,.history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.room-head h3{margin:0;color:#08775a}.remove-room{border:0;background:#fff1f2;color:#be123c;padding:8px 10px;border-radius:9px}.room-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.room-stats div{background:#f8fafc;border-radius:10px;padding:12px}.room-stats small,.summary small{display:block;color:#64748b;margin-bottom:5px}.warning{margin:0;color:#a16207}.outline,.primary,.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:11px;padding:11px 16px;text-decoration:none;font-weight:800}.outline{background:#fff;border:1px solid #17324d;color:#17324d}.primary{background:#ffc324;border:1px solid #ffc324;color:#172432}.primary:hover{background:#eeb316}.add-room{width:100%;border-style:dashed;margin-bottom:18px}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#17324d;color:#fff;padding:16px;border-radius:16px;box-shadow:0 5px 15px #0f172a25}.summary small{color:#cbd5e1}.summary strong{font-size:19px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;border:1px solid #dbe3ec;border-radius:20px;padding:28px;box-shadow:0 18px 50px #0f172a20;text-align:center}.login-logo{width:86px;height:86px;object-fit:contain;border-radius:18px;border:1px solid #e2e8f0}.login-card h1{margin:10px 0 6px;color:#17324d}.login-card p{color:#64748b;margin:0 0 22px}.login-card label{text-align:left;margin-bottom:14px}.login-card input{text-align:center;font-size:19px;font-weight:800;letter-spacing:2px}.login-card .primary{width:100%}.toast{position:fixed;z-index:100;top:18px;left:50%;transform:translateX(-50%);max-width:min(92vw,520px);padding:12px 18px;border-radius:11px;background:#17324d;color:#fff;box-shadow:0 8px 25px #0f172a35;font-weight:700}.toast.error{background:#b91c1c}.toast.success{background:#047857}dialog{border:0;padding:0;border-radius:18px;width:min(820px,calc(100% - 24px));max-height:90vh;box-shadow:0 20px 70px #0f172a55}dialog::backdrop{background:#0f172a99}.dialog-body{position:relative;padding:24px;overflow:auto;max-height:90vh}.dialog-close{position:absolute;right:14px;top:10px;border:0;background:transparent;font-size:30px;color:#64748b}.dialog-body h2{margin:0 35px 6px 0;color:#17324d}.dialog-body pre{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:15px;line-height:1.55;font-family:inherit;font-size:14px}.history-item{border:1px solid #e2e8f0;border-radius:13px;padding:15px;margin-top:12px}.history-top{display:flex;justify-content:space-between;gap:12px}.history-address{font-weight:800;color:#17324d}.meta{color:#64748b;font-size:14px;margin-top:5px}.pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.pill{border-radius:99px;padding:5px 9px;font-size:12px;font-weight:800}.pill.sent{background:#ecfdf5;color:#047857}.pill.error{background:#fff1f2;color:#be123c}.pill.not_configured{background:#fffbeb;color:#a16207}.link-btn{border:0;background:transparent;color:#17324d;text-decoration:underline;padding:5px 7px}.empty{text-align:center;color:#64748b;padding:38px 10px}.busy{opacity:.62;pointer-events:none}
.field-note{display:block;color:#64748b;font-size:12px;font-weight:500;line-height:1.35}.locked-field{opacity:1!important;color:#172432!important;background:#f8fafc!important;-webkit-text-fill-color:#172432}.measurement-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:460px;margin:0 auto}.measurement-keypad button{min-height:58px;border:1px solid #cbd5e1;border-radius:14px;background:#334155;color:#fff;font-size:25px;font-weight:800;touch-action:manipulation;box-shadow:0 2px 5px #0f172a20}.measurement-keypad button:active{transform:translateY(1px);background:#475569}.measurement-keypad .keypad-enter{grid-column:1/-1;background:#ffc324;border-color:#ffc324;color:#172432;font-size:19px}.points[readonly]{background:#fff;cursor:text;white-space:pre-wrap}
@media(max-width:700px){.grid{grid-template-columns:1fr}.wide{grid-column:auto}.user span{display:none}.card{padding:15px}.brand b{font-size:19px}.actions{grid-template-columns:1fr}.room-stats{grid-template-columns:repeat(3,1fr);font-size:13px}.summary{font-size:13px}.summary strong{font-size:16px}.history-top{flex-direction:column}.measurement-keypad button{min-height:62px}}
