:root{--bg:#f4f6f8;--card:#fff;--text:#17212b;--muted:#637080;--line:#dce3e9;--primary:#176b58;--primary2:#0f5143;--danger:#a72d37;--soft:#e8f4ef}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Tahoma,"Vazirmatn",Arial,sans-serif;line-height:1.75}a{color:var(--primary);text-decoration:none}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px max(18px,calc((100vw - 1120px)/2));background:#fff;border-bottom:1px solid var(--line)}.nav>div{display:flex;gap:16px;flex-wrap:wrap}.brand{font-weight:800;color:var(--text)}.wrap{max-width:1120px;margin:28px auto;padding:0 18px}.page-head,.row-between{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-head{margin-bottom:22px}.page-head h1,h1{margin:0 0 6px;font-size:26px}.muted,small{color:var(--muted);font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;margin:0 0 18px;box-shadow:0 3px 14px #17212b08}.card h2{font-size:18px;margin:0 0 10px}.project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.project-card{display:block;color:inherit;transition:transform .15s,border-color .15s}.project-card:hover{transform:translateY(-2px);border-color:#8bb7aa}.project-card h2{margin:0 0 8px}.stats{display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:13px}.stats span{background:#f0f3f5;padding:6px 10px;border-radius:8px}.stats.wide{margin-bottom:18px}.stats b{color:var(--text)}form{margin-top:12px}label{display:block;font-size:14px;font-weight:600}input,textarea,select{display:block;width:100%;margin:6px 0 14px;padding:11px 12px;border:1px solid #cbd5dd;border-radius:9px;font:inherit;font-size:14px;background:#fff;color:var(--text)}textarea{resize:vertical;min-height:85px}input:focus,textarea:focus{outline:2px solid #b5d9cf;border-color:var(--primary)}button,.button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5dd;background:#f8fafb;color:var(--text);border-radius:9px;padding:9px 15px;font:inherit;font-size:14px;cursor:pointer}.primary{background:var(--primary);border-color:var(--primary);color:#fff}.primary:hover{background:var(--primary2)}.button{white-space:nowrap}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}.form-grid button{align-self:end;margin-bottom:14px}.alert{padding:12px 14px;border-radius:9px;background:var(--soft);border:1px solid #c4e1d6;margin:0 0 16px}.alert.error{background:#fff0f0;border-color:#f0c2c6;color:var(--danger)}.auth{max-width:460px;margin:8vh auto;padding:28px}.auth h1{font-size:24px}.auth form{margin-top:24px}.auth button{width:100%;margin-top:10px}.back{display:inline-block;margin-bottom:14px}.patch,.rule{padding:14px 0;border-top:1px solid var(--line)}.patch:first-of-type,.rule:first-of-type{border-top:0}.pill{font-size:12px;padding:3px 9px;border-radius:999px;background:#eef1f4}.pill.applied{background:#e5f5eb;color:#17633b}.pill.pending{background:#fff1d7;color:#8b5a00}details{border:1px solid var(--line);border-radius:8px;padding:9px 12px;margin:9px 0}summary{cursor:pointer;font-weight:600}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:500px;overflow:auto;background:#f5f7f9;border-radius:8px;padding:12px;direction:ltr;text-align:left;font-size:12px}.rule{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.rule p{margin:4px 0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:right;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}th{background:#f7f9fa}.empty{text-align:center;color:var(--muted)}.event pre{direction:auto;text-align:right}.event summary .muted{font-weight:400}@media(max-width:650px){.nav{align-items:flex-start;flex-direction:column}.wrap{margin:18px auto;padding:0 12px}.page-head{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.card{padding:16px}.rule{flex-direction:column}.page-head h1,h1{font-size:22px}}

.row-actions{display:flex;gap:8px;flex-wrap:wrap}
