:root{--green: #1A4D3E;--green-hover: #1F5F4A;--green-press: #163E32;--green-wash: #EDF6F2;--green-line: #CFE3DA;--brass: #B08A2E;--amber-bg: #FEF8EC;--amber-line: #F1DFB5;--amber-ink: #5E4A14;--red: #9A2E2E;--red-bg: #FDECEC;--red-line: #F8CECE;--canvas: #F8F7F3;--card: #FFFFFF;--head: #F2EFEB;--line: #E5E2DA;--row: #EEEAE2;--field: #DDD8CE;--ink: #1C2024;--ink-2: #3F454C;--muted: #5A6169;--radius: 8px;--radius-lg: 12px}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--canvas);color:var(--ink);font-family:IBM Plex Sans Arabic,IBM Plex Sans,system-ui,sans-serif;font-size:14px;font-variant-numeric:tabular-nums}a{color:var(--green)}h1,h2,h3,p{margin:0}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--green);outline-offset:2px}.btn{height:42px;padding:0 16px;border-radius:var(--radius);border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{background:var(--head)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}.btn-primary:hover{background:var(--green-hover)}.btn-danger{color:var(--red);border-color:#e8b4b4}.btn-danger:hover{background:var(--red-bg)}.btn-sm{height:36px;padding:0 12px;font-size:13px}.icon-btn{width:44px;height:44px;border:0;background:transparent;border-radius:var(--radius);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background:var(--head)}.field{display:flex;flex-direction:column;gap:6px}.field label,.legend{font-size:13px;font-weight:500}.input,.select{height:42px;padding:0 12px;border:1px solid var(--field);border-radius:var(--radius);background:#fff;font:inherit;font-size:14px;color:var(--ink);width:100%}.input:focus,.select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 1.5px var(--green)}.hint{font-size:12px;color:var(--muted)}.note{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius);font-size:13px;line-height:20px}.note svg{flex:none;margin-top:1px}.note-error{background:var(--red-bg);border:1px solid var(--red-line);color:var(--red)}.note-warn{background:var(--amber-bg);border:1px solid var(--amber-line);color:var(--amber-ink)}.note-ok{background:var(--green-wash);border:1px solid var(--green-line);color:var(--green)}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.main{flex:999 1 560px;min-width:0;padding:28px 32px;display:flex;flex-direction:column;gap:20px}@media (max-width: 700px){.main{padding:20px 16px}}.page-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}.crumb{font-size:13px;color:var(--muted)}.page-title{font-size:26px;line-height:34px;font-weight:600}.lead{font-size:14px;color:var(--muted);margin-top:4px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg)}.split{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}.side{width:260px;flex:1 1 260px;max-width:260px;background:#fff;border-inline-start:1px solid var(--line);display:flex;flex-direction:column;min-height:100vh}@media (max-width: 860px){.side{max-width:none;min-height:0;border-inline-start:0;border-bottom:1px solid var(--line)}}.side-brand{padding:20px 20px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.side-nav{flex:1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:14px}.side-group{display:flex;flex-direction:column;gap:2px}.side-group-title{padding:6px 10px 4px;font-size:11.5px;font-weight:600;color:var(--muted)}.side-link{display:flex;align-items:center;gap:10px;min-height:38px;padding:0 10px;border-radius:var(--radius);color:var(--ink);text-decoration:none;font-size:14px}.side-link:hover{background:var(--head)}.side-link.active{background:var(--green);color:#fff;font-weight:600}.side-soon{display:flex;align-items:center;gap:10px;min-height:36px;padding:0 10px;color:#7c828a;font-size:14px}.side-soon span:nth-child(2){flex:1}.chip-phase{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--head);color:#6b5a2e}.side-user{padding:14px 16px;border-top:1px solid var(--line);display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:999px;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;flex:none}.avatar-soft{width:32px;height:32px;background:var(--green-wash);color:var(--green);font-size:13px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.toolbar .input{flex:1 1 200px;height:38px}.toolbar .select{width:auto;height:38px}.table-wrap{overflow-x:auto}table.tbl{width:100%;border-collapse:collapse;min-width:560px}.tbl th{background:var(--head);color:var(--muted);font-size:12px;font-weight:500;text-align:right;padding:10px 12px}.tbl td{padding:10px 12px;border-top:1px solid var(--row)}.tbl th:first-child,.tbl td:first-child{padding-inline-start:16px}.tbl tr.selected td{background:#f6fbf8}.tbl tr.selected td:first-child{box-shadow:inset -3px 0 0 var(--green)}.empty{padding:32px 16px;text-align:center;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500}.badge-ok{background:var(--green-wash);color:#23614c;border-radius:999px}.badge-off{background:var(--red-bg);color:var(--red);border-radius:999px}.role-chip{display:inline-block;padding:3px 10px;border-radius:6px;font-size:12px;font-weight:500;background:var(--head);color:var(--ink-2);border:1px solid var(--line);margin-inline-end:4px}.role-chip.ceo{background:var(--green);color:#fff;border-color:var(--green)}.role-chip.account_manager{background:var(--green-wash);color:var(--green);border-color:var(--green-line)}.role-chip.accounts_manager{background:var(--amber-bg);color:#6b4e0e;border-color:var(--amber-line)}.panel{flex:1 1 340px;max-width:420px;padding:20px;display:flex;flex-direction:column;gap:18px;box-shadow:0 12px 32px -4px #1c202414}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:6px;border-top:1px solid var(--row)}.panel-actions .btn{flex:1 1 120px}.check-row{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px;cursor:pointer}.check-row.on{border:1.5px solid var(--green);background:var(--green-wash)}.check-row input{width:18px;height:18px;accent-color:var(--green)}.role-list{flex:1 1 220px;max-width:260px;padding:8px;display:flex;flex-direction:column;gap:2px}.role-item{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border-radius:var(--radius);border:0;background:transparent;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;text-align:start}.role-item:hover{background:var(--head)}.role-item.active{background:var(--green);color:#fff;font-weight:600}.role-item .n{flex:1}.perm-group-title{padding:12px 20px 6px;font-size:13px;font-weight:600;color:var(--muted);background:#fbfaf7;border-top:1px solid var(--row)}.perm-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 20px;border-top:1px solid #F2EFEB}.perm-name{flex:1 1 240px;display:flex;flex-direction:column;gap:2px}.perm-key{font-size:12px;color:#6b7280;font-family:IBM Plex Mono,ui-monospace,monospace;direction:ltr;text-align:right}.seg{border:0;margin:0;padding:3px;display:flex;gap:2px;background:var(--head);border-radius:var(--radius)}.seg label{position:relative;display:flex;align-items:center;justify-content:center;min-width:56px;height:34px;padding:0 10px;border-radius:6px;font-size:13px;cursor:pointer;color:#4a5058}.seg input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.seg label.on{background:var(--green);color:#fff;font-weight:600;box-shadow:0 1px 2px #1c202414}.seg label.on.none{background:#fff;color:var(--red)}.seg label:has(input:focus-visible){outline:2px solid var(--green);outline-offset:1px}.seg[disabled] label{cursor:not-allowed;opacity:.7}.log{list-style:none;margin:0;padding:0}.log li{display:flex;flex-wrap:wrap;gap:14px;padding:14px 16px;border-top:1px solid var(--row)}.log li:first-child{border-top:0}.log .act{flex:none;align-self:flex-start;min-width:92px;text-align:center;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;background:var(--head);color:var(--ink-2)}.log .act-create{background:var(--green-wash);color:#23614c}.log .act-update{background:#eef1f6;color:#2e3d57}.log .act-permission_change{background:var(--amber-bg);color:#6b4e0e}.log .act-login_failed{background:var(--red-bg);color:var(--red)}.log .body{flex:1 1 320px;display:flex;flex-direction:column;gap:6px;min-width:0}.diff{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}.diff .k{color:var(--muted)}.diff .old{padding:2px 8px;border-radius:6px;background:var(--red-bg);color:#8a2a2a;text-decoration:line-through}.diff .new{padding:2px 8px;border-radius:6px;background:var(--green-wash);color:#23614c}.log time{font-size:13px;color:var(--muted);white-space:nowrap}.login{min-height:100vh;display:flex;flex-wrap:wrap}.login-form-side{flex:1 1 520px;display:flex;align-items:center;justify-content:center;padding:48px 24px}.login-box{width:100%;max-width:400px;display:flex;flex-direction:column;gap:28px}.login-box form{display:flex;flex-direction:column;gap:18px}.login-box .input{height:46px;font-size:15px}.login-brand{flex:1 1 480px;min-height:360px;background:var(--green);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:56px 56px 40px;gap:40px}@media (max-width: 700px){.login-brand{padding:32px 24px}}.pill{padding:6px 12px;border-radius:999px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);font-size:13px}.toast{position:fixed;inset-inline-start:24px;bottom:24px;z-index:50}.spinner-page{min-height:100vh;display:grid;place-items:center;color:var(--muted)}
