:root{font-family:system-ui,sans-serif;color:#20362b;background:#f5f7f6;font-size:16px}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid #dce5dc;display:flex;justify-content:space-between;align-items:center;padding:20px 5%;gap:20px}.brand{display:flex;gap:12px;align-items:center;font-weight:800;letter-spacing:.07em}.brand small{display:block;font-weight:400;letter-spacing:0;font-size:12px;color:#68776b}.mark{display:grid;place-items:center;background:#1b5940;color:white;width:44px;height:44px;border-radius:14px}main{max-width:1120px;margin:auto;padding:30px 20px;min-height:75vh}h1{font-size:30px;letter-spacing:-.04em;margin:0 0 8px}h2{font-size:20px}p{line-height:1.6;color:#65736a}.card{background:white;border:1px solid #dbe5dc;border-radius:18px;padding:24px;margin:16px 0}.auth{max-width:450px;margin:40px auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}.grid .card{margin:0}label{display:block;font-size:14px;font-weight:600;margin:16px 0 6px}input,select,textarea{font:inherit;width:100%;padding:12px;border:1px solid #bccdc1;border-radius:9px;background:white;color:#20362b}input:focus,select:focus{outline:2px solid #008638}button{font:inherit;border:0;border-radius:9px;background:#007a32;color:#fff;padding:12px 17px;cursor:pointer;min-height:44px}button.secondary{background:#e9f5ed;color:#007a32}button.danger{background:#fff0ef;color:#b91f1b}button:disabled{opacity:.5;cursor:wait}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}nav{display:flex;gap:8px;margin:24px 0}.badge{display:inline-block;background:#e9f5ed;padding:5px 10px;border-radius:20px;font-size:12px}.muted{color:#748279;font-size:13px}.person h2{margin:0 0 6px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.actions button{font-size:13px;padding:9px 12px}.permissions{display:grid;gap:10px}.permission{border:1px solid #dce5dc;border-radius:10px;padding:14px}.permission label{display:inline-flex;gap:8px;margin:8px 12px 0 0;font-size:13px;align-items:center}.permission input{width:18px;height:18px}.notice{padding:14px;border-radius:10px;background:#e6f0e7;margin-bottom:16px}.error{background:#fff0ef;color:#b91f1b}.linkbox{overflow-wrap:anywhere}footer{text-align:center;color:#748279;font-size:12px;padding:20px}#identity{font-size:13px;display:flex;gap:12px;align-items:center}.full{width:100%;margin-top:22px}.hidden{display:none}@media(max-width:600px){header{padding:14px 16px;align-items:flex-start}.brand{font-size:14px}.mark{width:34px;height:34px}#identity{flex-direction:column;align-items:flex-end;font-size:11px}main{padding:22px 14px}h1{font-size:25px}.card{padding:18px}.grid{grid-template-columns:1fr}.actions button{flex:1}.permission label{display:flex}nav{flex-wrap:wrap}}

/* Branding from the original Euro Papryka logo. */
:root{--brand-green:#007a32;--brand-red:#cf201b}.brand{width:270px;max-width:55%;flex-shrink:0}.brand img{display:block;width:100%;height:auto}.auth{border-top:4px solid var(--brand-red)}.auth .badge{background:#fff0ef;color:#b91f1b;font-weight:700}input[type=checkbox]{accent-color:var(--brand-green)}button:hover:not(:disabled){filter:brightness(.94)}button:focus-visible{outline:3px solid var(--brand-red);outline-offset:3px}@media(max-width:600px){header{align-items:center;gap:12px}.brand{width:210px;max-width:58%}#identity{max-width:40%;overflow-wrap:anywhere}}

.reading{font-size:38px;font-weight:750;margin:18px 0}.sensor h2{margin-top:14px}.sensor-alert{border:2px solid #cf201b}.demo-notice{border-left:4px solid #cf201b;background:#fff5eb}.sensor-chart{display:block;width:100%;height:auto;min-height:110px;background:#f5f7f6;border-radius:8px}.sample-list{border:1px solid #dbe5dc;border-radius:12px;overflow:hidden}.sample-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;padding:12px 16px;background:white;border-bottom:1px solid #e9eeee;font-size:14px}.checkbox-label{display:flex;gap:10px;align-items:center}.checkbox-label input{width:20px;height:20px}@media(max-width:600px){.sample-row{grid-template-columns:1fr 1fr}.sample-row>span:first-child{grid-column:1/-1}.reading{font-size:34px}}
