:root{--bg: #f2f6f3;--surface: #ffffff;--border: #e0e8e2;--text: #17241d;--text2: #5f6f65;--mut: #8a978d;--brand: #0d7a55;--brand2: #0a5f43;--brand-soft: #e2f2ea;--side: #0c1f17;--side-t: #c3d2c8;--side-act: #1a3628;--inp: #f7faf8;--sh: 0 1px 2px rgba(12, 31, 23, .05);--ok: #1e9e63;--info: #2f6fd0;--warn: #e08a2e;--err: #d64545;--neutral: #8a938c;--ch-email: #2f6fd0;--ch-sms: #c9820e;--ch-whatsapp: #1fa25b}html.dark{--bg: #0d1411;--surface: #151e19;--border: #243129;--text: #e6eee8;--text2: #a3b2a8;--mut: #75857b;--brand: #2fbc86;--brand2: #4ccf9c;--brand-soft: #183a2b;--side: #0a120e;--side-t: #aebfb4;--side-act: #1b3226;--inp: #0f1713;--sh: 0 1px 2px rgba(0, 0, 0, .3)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif;font-size:13px;font-weight:600}code,.mono{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.layout{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.layout.collapsed{grid-template-columns:64px 1fr}.sidebar{background:var(--side);color:var(--side-t);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}.sidebar .brand{display:flex;align-items:center;gap:10px;padding:16px 18px;color:#fff;font-weight:800;font-size:15px}.sidebar .brand .logo{width:28px;height:28px;border-radius:8px;background:var(--brand);display:grid;place-items:center;color:#fff;font-size:16px;flex-shrink:0}.nav-section{padding:10px 0 2px}.nav-section-title{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;opacity:.55;padding:6px 18px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 18px;color:var(--side-t);text-decoration:none;font-size:12.5px;font-weight:600;border-left:3px solid transparent}.nav-item:hover{color:#fff}.nav-item.active{background:var(--side-act);color:#fff;border-left-color:var(--brand)}.nav-item .material-symbols-outlined{font-size:18px}.content{display:flex;flex-direction:column;min-width:0}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:8px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.header .spacer{flex:1}.group-badge{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--inp);font-weight:700;font-size:12px;cursor:pointer}.group-badge .dot{width:10px;height:10px;border-radius:999px}main.page{padding:14px 34px 44px}.page-title{font-size:21px;font-weight:800;margin:10px 0 4px}.page-sub{color:var(--text2);margin:0 0 16px;font-size:12.5px}.breadcrumb{font-size:12px;color:var(--mut);margin-top:10px}.breadcrumb a{color:var(--brand);text-decoration:none;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh);padding:16px 18px}.card-title{font-size:13.5px;font-weight:800;margin:0 0 12px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:7px 14px;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer}.btn:hover{border-color:var(--brand)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand2)}.btn.danger{background:#d64545;border-color:#d64545;color:#fff}.btn.ghost{border-color:transparent;background:transparent}.btn .material-symbols-outlined{font-size:17px}.icon-btn{border:none;background:transparent;cursor:pointer;color:var(--text2);border-radius:8px;padding:5px;display:inline-flex}.icon-btn:hover{color:var(--brand);background:var(--brand-soft)}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field>label{font-size:11.5px;font-weight:700;color:var(--text2)}.field .req{color:#d64545}.input,select.input,textarea.input{background:var(--inp);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font:inherit;font-size:12.5px;width:100%}.input:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}.field.error .input{border-color:#d64545}.field .error-msg{color:#d64545;font-size:11px;font-weight:700}.hint{color:var(--mut);font-size:11px}.segmented{display:inline-flex;background:var(--inp);border:1px solid var(--border);border-radius:9px;padding:2px;gap:2px;width:fit-content;align-self:flex-start}.segmented button{border:none;background:transparent;color:var(--text2);font:inherit;font-size:12px;font-weight:700;padding:5px 12px;border-radius:7px;cursor:pointer}.segmented button.on{background:var(--brand);color:#fff}.segmented button.on.negative{background:#d64545}.segmented button.on.positive{background:#1e9e63}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap}.gridwrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--sh)}.datagrid{min-width:640px}.datagrid .row{display:grid;align-items:center;padding:6px 18px;border-bottom:1px solid var(--border);font-size:12.5px;gap:12px}.datagrid .row:last-child{border-bottom:none}.datagrid .row.head{font-size:10.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand2);background:var(--brand-soft);border-radius:12px 12px 0 0;padding:10px 18px;-webkit-user-select:none;user-select:none}.datagrid .row.head .th{cursor:pointer;display:flex;align-items:center;gap:3px}.datagrid .row.body{cursor:pointer}.datagrid .row.body:hover{background:var(--inp)}.datagrid .skeleton{height:14px;border-radius:6px;background:linear-gradient(90deg,var(--inp),var(--border),var(--inp));background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-200% 0}}.grid-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 18px;font-size:11.5px;color:var(--text2);background:var(--inp);border-top:1px solid var(--border);border-radius:0 0 12px 12px}.pages{display:flex;gap:4px}.pages button{border:1px solid var(--border);background:var(--surface);color:var(--text2);border-radius:6px;min-width:28px;padding:4px 10px;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.pages button.num{font-family:JetBrains Mono,monospace;font-weight:800;padding:4px 9px}.pages button.on{background:var(--brand);border-color:var(--brand);color:#fff}.pages button:disabled{opacity:.4;cursor:default}.pages button.sym{font-size:15px;line-height:1;padding:2px 10px}.grid-state{padding:34px;text-align:center;color:var(--text2);font-size:12.5px}.filterbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 14px}.filterbar .input{width:auto;background:var(--surface);font-size:12px;padding:7px 12px}.filterbar .search{width:220px}.filterbar .flabel{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:var(--mut)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#08120d59;display:grid;place-items:center;z-index:100}.dialog{width:430px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px;box-shadow:0 12px 40px #00000040}.dialog h3{margin:0 0 8px;font-size:15px;font-weight:800}.dialog p{margin:0 0 18px;color:var(--text2);font-size:12.5px;line-height:1.5}.dialog .actions{display:flex;justify-content:flex-end;gap:8px}.toaster{position:fixed;bottom:18px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:120}.toast{background:#12201a;color:#e6eee8;border-radius:10px;padding:10px 16px;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:14px;box-shadow:0 8px 24px #0000004d}.toast button{background:none;border:none;color:var(--brand2);font:inherit;font-weight:800;cursor:pointer}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login .pane-brand{background:#0c2c1f;color:#dcebe2;display:flex;flex-direction:column;justify-content:center;padding:8vh 8vw;gap:18px}.login .pane-brand h1{color:#fff;font-size:26px;margin:0;display:flex;gap:12px;align-items:center}.login .pane-brand .metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.login .pane-brand .metric{background:#ffffff0f;border-radius:12px;padding:14px}.login .pane-brand .metric b{display:block;font-size:20px;color:#fff}.login .pane-brand .metric span{font-size:11.5px;opacity:.75}.login .pane-form{display:grid;place-items:center;padding:24px}.login .pane-form form{width:340px;max-width:100%}.tabs{display:inline-flex;gap:2px;background:var(--inp);border:1px solid var(--border);border-radius:10px;padding:3px;margin-bottom:16px}.tabs button{border:none;background:transparent;font:inherit;font-size:12.5px;font-weight:800;color:var(--text2);padding:8px 20px;border-radius:8px;cursor:pointer}.tabs button.on{background:var(--brand);color:#fff}.detail-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.kv{display:grid;grid-template-columns:160px 1fr;gap:6px 14px;font-size:12.5px}.kv dt{color:var(--text2);font-weight:700}.kv dd{margin:0}.member-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.member-row:last-child{border-bottom:none}.member-row .who{flex:1;min-width:140px;font-weight:700}.role-toggle{font-size:11px;font-weight:500;border-radius:999px;border:none;background:#9aa39c;color:#fff;padding:4px 11px;cursor:pointer}.role-toggle.on{background:var(--role-color, var(--brand))}.scroll-list{max-height:300px;overflow-y:auto;overscroll-behavior:contain}.color-swatches{display:flex;flex-wrap:wrap;gap:6px}.color-swatches button{width:26px;height:26px;border-radius:8px;border:2px solid transparent;cursor:pointer}.color-swatches button.on{border-color:var(--text)}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:236px;z-index:90;transform:translate(-100%);transition:transform .2s}.layout.drawer-open .sidebar{transform:none}.login{grid-template-columns:1fr}.login .pane-brand{display:none}main.page{padding:14px 16px 44px}}
