:root{font-family:Inter,system-ui,sans-serif;color:#203a35;background:#f3f5f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{cursor:pointer}button{border:1px solid #c7d4cc;border-radius:6px;background:white;color:#164e40;padding:10px 14px;font-size:13px}button:hover{background:#dcece4}button:disabled{cursor:default;opacity:.45}a{color:#126d52}h1{font-size:34px;letter-spacing:-1px;margin:8px 0 24px}h2{font-size:20px}p{line-height:1.6}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}aside{background:#113c32;color:#e0ede6;padding:32px 22px;display:flex;flex-direction:column}.brand{font-size:19px;font-weight:800;letter-spacing:2px}nav{display:grid;gap:5px;margin-top:24px}nav button{border:0;text-align:left;background:transparent;color:#c9ded4;padding:13px}nav button[aria-current=page]{background:#2e5e4e;color:white}nav button:hover{background:#255345}.identity{margin-top:auto;font-size:12px;padding-top:45px;overflow-wrap:anywhere}.identity span{display:block;margin:8px 0}.identity button{background:transparent;color:white}main{padding:35px 40px;min-width:0}header{display:flex;align-items:center;justify-content:space-between}.eyebrow,.muted{color:#7a9185;font-size:12px}.eyebrow{letter-spacing:2px}.notice{padding:14px 18px;background:#e6eee6;color:#486653;font-size:13px;border-left:3px solid #9bb49d;margin-bottom:25px}.error{background:#fce4dd;color:#8d3025;padding:16px;margin:18px 0;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.metrics article,section{background:white;border:1px solid #e0e6df;border-radius:8px;padding:24px;margin-bottom:20px}.metrics span{text-transform:uppercase;font-size:11px;letter-spacing:2px;display:block;color:#6f8275}.metrics strong{display:block;font-size:37px;margin-top:16px;font-weight:500}form{display:flex;gap:12px;flex-wrap:wrap;align-items:end}label{display:grid;gap:7px;font-size:12px;color:#63786b}input,select{border:1px solid #cbd6cd;background:white;padding:10px;border-radius:5px;max-width:100%;color:#203a35}input:focus,select:focus{outline:2px solid #3c916d}.filters{margin-bottom:25px;padding:20px;background:white;border:1px solid #e0e6df}.filters input{width:180px}.table-wrap{overflow-x:auto;background:white;border:1px solid #e0e6df;border-radius:7px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-transform:uppercase;font-size:10px;letter-spacing:1px;color:#6a8071;background:#eaf0e9;text-align:left;white-space:nowrap}th,td{padding:15px;border-bottom:1px solid #e7ece5;max-width:370px;overflow-wrap:anywhere}td button{padding:5px 8px;margin:3px}td a{white-space:nowrap}.empty{padding:50px;text-align:center;border:1px dashed #a2b8a6}footer{display:flex;gap:12px;align-items:center;margin-top:20px;font-size:12px}footer span{margin-right:auto}.login{max-width:560px;margin:8vh auto}.login h1{font-size:54px}.login form{display:grid;margin:30px 0}.login label{font-size:14px}.login button{background:#195640;color:white}.qr{display:block;width:270px;height:270px}pre{overflow:auto;max-height:440px;background:#edf1ed;padding:18px;font-size:12px}section button{margin:5px}@media(max-width:850px){.shell{grid-template-columns:1fr}aside{padding:20px}nav{display:flex;overflow:auto;margin-top:10px}nav button{white-space:nowrap}.identity{padding-top:15px;display:flex;gap:10px;align-items:center}main{padding:22px 16px}h1{font-size:29px}.metrics{grid-template-columns:repeat(2,1fr)}form input{width:100%}header{gap:12px}}

@media(max-width:850px){.shell{grid-template-columns:minmax(0,1fr)}aside,nav{min-width:0}.identity{flex-wrap:wrap}}

/* Connection QR modal */
.connection-modal-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(9,32,26,.66);display:flex;align-items:center;justify-content:center;padding:20px}
.connection-modal{width:min(100%,440px);max-height:90vh;overflow:auto;background:white;border-radius:12px;padding:25px;box-shadow:0 20px 80px rgba(0,0,0,.25)}
.connection-modal-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}
.connection-modal-heading h2{margin:0}
.connection-modal-qr{width:min(100%,300px);height:auto;aspect-ratio:1;margin:20px auto;border:8px solid white}
.connection-success{background:#e1f4e9;padding:14px;border-radius:7px;color:#165c38}

.inventory-progress progress{display:block;width:100%;height:12px;margin:6px 0 3px}.inventory-progress>div{margin:12px 0}.inventory-progress small{color:var(--muted,#667085)}
.row-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;display:block;background:#eef2ef;position:relative;z-index:1}.avatar-cell{position:relative;width:62px;min-width:62px}.avatar-fallback{position:absolute;left:15px;top:50%;transform:translateY(-50%);pointer-events:none;font-size:18px;color:#557366;line-height:36px}.row-avatar:not([src]),.row-avatar[src=""]{visibility:hidden}.group-heading{display:flex;align-items:center;gap:10px}.group-heading .row-avatar{flex:0 0 36px}.group-heading .avatar-cell{display:inline-flex;align-items:center;vertical-align:middle}

/* Owner Categories workspace */
.category-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.category-tabs button[aria-selected=true]{background:#195640;color:white;border-color:#195640}.category-toolbar,.category-condition{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:12px 0}.category-expression{border:1px solid #d8e4d9;border-radius:7px;margin:12px 0;padding:14px;min-width:min(100%,420px)}.category-expression .category-expression{margin-left:18px;background:#f6f9f6}.category-rule-form{display:block}.category-rule-form>label,.category-rule-form>fieldset{display:inline-grid;vertical-align:top;margin:6px}.category-rule-form>fieldset{display:block}.category-rule-form>button{margin:6px}.category-dot{display:inline-block;width:13px;height:13px;border-radius:50%;margin-right:7px;vertical-align:middle;border:1px solid rgba(0,0,0,.15)}.category-flag{padding:10px;border-bottom:1px solid #e7ece5}.category-pages{display:flex;gap:8px;margin-top:12px}.categories-page textarea{font:inherit}

/* Shared application mark in the existing login and navigation layouts. */
.brand{display:inline-flex;align-items:center;gap:10px;letter-spacing:0;font-size:17px;line-height:1.15;white-space:nowrap}.brand img{flex:none;display:block}.login .brand{color:#164e40;font-size:22px;margin-bottom:16px}.shell aside .brand{color:#e0ede6;font-size:16px}.shell aside .brand img{background:#fff;border-radius:9px}@media(max-width:850px){.login{margin:6vh 16px}.login h1{font-size:clamp(35px,8vw,54px)}}
.shell aside .brand{font-size:14px;letter-spacing:-.1px;white-space:normal;min-width:0}.shell aside .brand span{min-width:0}
