:root{--bg: #f4f6f5;--surface: #ffffff;--text: #1c2523;--muted: #5f6d69;--border: #dde3e1;--primary: #0f766e;--primary-hover: #0b5f58;--primary-soft: #e3f2f0;--danger: #b42318;--danger-soft: #fdecea;--ok: #157f3c;--ok-soft: #e7f6ec;--warn-soft: #fff5e0;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 22, .06);--sidebar-w: 250px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #111716;--surface: #1a2220;--text: #e6ecea;--muted: #97a6a2;--border: #2c3836;--primary: #2bb3a5;--primary-hover: #3cc6b8;--primary-soft: #18302d;--danger: #f2776b;--danger-soft: #3a1f1c;--ok: #5cc98a;--ok-soft: #17301f;--warn-soft: #362b14;--shadow: none;color-scheme:dark}}:root[data-theme=dark]{--bg: #111716;--surface: #1a2220;--text: #e6ecea;--muted: #97a6a2;--border: #2c3836;--primary: #2bb3a5;--primary-hover: #3cc6b8;--primary-soft: #18302d;--danger: #f2776b;--danger-soft: #3a1f1c;--ok: #5cc98a;--ok-soft: #17301f;--warn-soft: #362b14;--shadow: none;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Cairo,Segoe UI,Tahoma,sans-serif;font-size:16px;line-height:1.6}h1{font-size:1.45rem;margin:0 0 .25rem}h2{font-size:1.1rem;margin:0 0 .75rem}a{color:var(--primary)}.muted{color:var(--muted)}.small{font-size:.85rem}.block{display:block}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;color:var(--primary);text-decoration:none;white-space:nowrap}.topbar-month{margin-inline-start:auto}.sidebar{position:fixed;top:57px;bottom:0;right:0;width:var(--sidebar-w);overflow-y:auto;padding:1rem .75rem;background:var(--surface);border-inline-start:1px solid var(--border);display:flex;flex-direction:column;gap:.25rem;z-index:20}.content{margin-right:var(--sidebar-w);padding:1.25rem 1.5rem 3rem}.menu-toggle{display:none}.nav-link{display:block;padding:.45rem .75rem;border-radius:8px;color:var(--text);text-decoration:none;font-size:.95rem}.nav-link:hover{background:var(--bg)}.nav-link.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.nav-group{margin-top:.75rem}.nav-group-title{font-size:.78rem;color:var(--muted);padding:0 .75rem .25rem;font-weight:600}.nav-user{margin-top:auto;padding:.75rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.nav-user-name{font-weight:600}.backdrop{display:none}@media (max-width: 860px){.menu-toggle{display:inline-flex}.sidebar{transform:translate(100%);transition:transform .2s ease;width:min(85vw,300px);visibility:hidden}.sidebar.open{transform:translate(0);visibility:visible;box-shadow:-4px 0 16px #00000026}.backdrop{display:block;position:fixed;top:57px;right:0;bottom:0;left:0;background:#0000004d;z-index:15}.content{margin-right:0;padding:1rem 1rem 3rem}.topbar{flex-wrap:wrap;padding:.5rem 1rem}}@media (max-width: 480px){.topbar-month{order:3;width:100%;margin:0}.sidebar,.backdrop{top:104px}.backdrop{top:104px;right:0;bottom:0;left:0}}.page{max-width:960px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.25rem;margin-bottom:1rem}.card.empty{text-align:center;padding:2rem 1rem}.btn{font:inherit;font-size:.95rem;border-radius:8px;border:1px solid transparent;padding:.5rem 1rem;cursor:pointer;min-height:42px;white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:not(:disabled):hover{background:var(--primary-hover)}:root[data-theme=dark] .btn-primary{color:#0d1514}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .btn-primary{color:#0d1514}}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-ghost:not(:disabled):hover{background:var(--bg)}.btn-danger{background:var(--danger);color:#fff}.btn-block{width:100%;margin-top:.5rem}.icon-btn{font:inherit;font-size:1.2rem;background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;width:40px;height:40px;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;min-height:42px;width:100%}input:focus,select:focus{outline:2px solid var(--primary);outline-offset:-1px}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--primary)}.field{display:block;margin-bottom:.75rem}.field>span{display:block;font-size:.9rem;font-weight:600;margin-bottom:.25rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem}.input-row{display:flex;gap:.5rem}.input-row input{flex:1;min-width:0}select.compact{width:auto}.alert{border-radius:8px;padding:.6rem .9rem;margin:.5rem 0;font-size:.95rem}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--ok-soft);color:var(--ok)}.badge{display:inline-block;font-size:.78rem;font-weight:600;padding:.1rem .55rem;border-radius:999px;background:var(--bg);color:var(--muted);white-space:nowrap}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-off{background:var(--danger-soft);color:var(--danger)}.badge-admin{background:var(--primary-soft);color:var(--primary)}.center-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:380px;text-align:right}.login-card h1{text-align:center}.login-card>.muted{text-align:center;margin-top:0}.login-logo{width:56px;height:56px;margin:0 auto .75rem;border-radius:14px;background:var(--primary);color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.month-picker{display:flex;align-items:center;gap:.35rem}.month-picker select{width:auto;padding:.35rem .5rem}.month-picker .icon-btn{display:inline-flex}@media (max-width: 480px){.month-picker select:first-of-type{flex:1}}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin-top:1rem}.tile{display:flex;flex-direction:column;gap:.25rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:var(--text);box-shadow:var(--shadow)}.tile:hover{border-color:var(--primary)}.tile-area{font-size:.78rem;color:var(--muted)}.tile-name{font-weight:700}.tile .badge{align-self:flex-start}.tile-admin{background:var(--primary-soft)}.list{padding:0;overflow:hidden}.list>.muted{padding:1rem 1.25rem}.list>.btn-block{margin:0;border-radius:0;border-width:1px 0 0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--border);color:var(--text);text-decoration:none}.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--bg)}.list-title{font-weight:600}.list-badges{display:flex;gap:.35rem;flex-wrap:wrap}.back-link{display:inline-block;margin-bottom:.5rem;text-decoration:none}.templates{border:0;padding:0;margin:.5rem 0}.templates legend{font-weight:600;font-size:.9rem;margin-bottom:.5rem}.template-option{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .75rem;border:1px solid var(--border);border-radius:8px;margin-bottom:.5rem;cursor:pointer}.template-option.selected{border-color:var(--primary);background:var(--primary-soft)}.template-option input{margin-top:.3rem;flex-shrink:0}.credentials{background:var(--warn-soft);border-radius:8px;padding:.75rem 1rem;font-size:1.05rem;text-align:left}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.perm-table,.diff-table{width:100%;border-collapse:collapse}.perm-table th,.perm-table td,.diff-table th,.diff-table td{padding:.5rem;border-bottom:1px solid var(--border);text-align:right}.perm-table th{font-size:.85rem;color:var(--muted)}.perm-table th:not(:first-child),.check-cell{text-align:center;width:64px}.check-cell input{vertical-align:middle}.locked-row td{background:var(--bg)}@media (max-width: 480px){.perm-table td:first-child{font-size:.85rem}.perm-table th:not(:first-child),.check-cell{width:48px;padding:.5rem .25rem}}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.5rem;margin:1rem 0}.audit-row{border-bottom:1px solid var(--border)}.audit-summary{font:inherit;color:inherit;background:none;border:0;width:100%;text-align:right;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.7rem 1.25rem;cursor:pointer}.audit-summary:hover{background:var(--bg)}.audit-main{flex:1;min-width:160px}.audit-meta{white-space:nowrap}.audit-detail{padding:0 1.25rem 1rem}.audit-insert,.audit-restore{background:var(--ok-soft);color:var(--ok)}.audit-soft_delete,.audit-hard_delete{background:var(--danger-soft);color:var(--danger)}.audit-update,.audit-password_reset{background:var(--primary-soft);color:var(--primary)}.diff-table{font-size:.9rem;margin-bottom:.5rem}.diff-old{color:var(--danger)}.diff-new{color:var(--ok)}
