Spaces:
Running
Running
| :root{ | |
| --bg:#f6f7fb; | |
| --card:#ffffff; | |
| --ink:#101828; | |
| --muted:#667085; | |
| --primary:#4137A8; | |
| --primary-600:#3b3299; | |
| --success:#1b9c85; | |
| --info:#0ea5e9; | |
| --danger:#ef4444; | |
| --border:#e5e7eb; | |
| --table-head:#302a86; | |
| --table-alt:#f5f8ff; | |
| --radius:16px; | |
| --shadow:0 4px 20px rgba(0,0,0,.06) | |
| } | |
| body.dark{ | |
| --bg:#0f172a; | |
| --card:#111827; | |
| --ink:#e5e7eb; | |
| --muted:#94a3b8; | |
| --border:#1f2937; | |
| --table-head:#1f2565; | |
| --table-alt:#0b1326; | |
| --shadow:0 4px 20px rgba(0,0,0,.35) | |
| } | |
| *{box-sizing:border-box} | |
| html,body{height:100%} | |
| body{ | |
| margin:0; | |
| font-family:"Cairo",system-ui,-apple-system,Segoe UI,Arial,sans-serif; | |
| color:var(--ink); | |
| background:var(--bg); | |
| line-height:1.7; | |
| text-align:center | |
| } | |
| .container{max-width:1100px;margin:24px auto;padding:0 16px} | |
| .hero{position:relative;margin-bottom:16px} | |
| .theme-toggle{ | |
| position:absolute;top:0;inset-inline-start:0; | |
| padding:8px 12px;border-radius:999px;border:1px solid var(--border); | |
| background:var(--card);color:var(--ink);font-weight:700;cursor:pointer;box-shadow:var(--shadow) | |
| } | |
| .title{margin:0 0 6px;font-size:28px;font-weight:800;color:var(--primary)} | |
| .signature{ | |
| display:inline-flex;gap:8px;align-items:center;justify-content:center; | |
| background:var(--card);padding:6px 12px;border-radius:999px;border:1px solid var(--border); | |
| color:var(--muted);font-weight:600;box-shadow:var(--shadow) | |
| } | |
| .signature .role{color:var(--primary)} | |
| .signature .name{color:var(--ink)} | |
| .card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;border:1px solid var(--border)} | |
| .label{display:block;font-weight:600;margin-bottom:8px;color:var(--muted)} | |
| .paste{ | |
| width:100%;min-height:180px;resize:vertical;padding:12px 14px;border-radius:12px; | |
| border:1px solid var(--border);outline:none;background:var(--card);color:var(--ink);text-align:center | |
| } | |
| .paste::placeholder{color:#9aa3af;white-space:pre-line} | |
| .paste:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(65,55,168,.12)} | |
| .filters{display:flex;gap:10px;margin:14px 0;justify-content:center;flex-wrap:wrap} | |
| .center-input{text-align:center} | |
| .control{ | |
| width:320px;padding:10px 12px;border-radius:10px;border:1px solid var(--border); | |
| outline:none;background:var(--card);color:var(--ink) | |
| } | |
| .control:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(65,55,168,.08)} | |
| .btn-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;margin-bottom:10px} | |
| .btn{ | |
| padding:10px 14px;border:none;border-radius:12px;cursor:pointer;font-weight:700; | |
| background:#ddd;color:#111;transition:transform .04s ease,box-shadow .2s ease | |
| } | |
| body.dark .btn{color:#eee} | |
| .btn:disabled{opacity:.5;cursor:not-allowed} | |
| .btn:hover:not(:disabled){transform:translateY(-1px)} | |
| .btn-primary{background:var(--primary);color:#fff} | |
| .btn-primary:hover{background:var(--primary-600)} | |
| .btn-success{background:var(--success);color:#fff} | |
| .btn-info{background:var(--info);color:#fff} | |
| .btn-danger{background:var(--danger);color:#fff} | |
| .num{ | |
| display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px; | |
| background:#fff;color:var(--primary);border:1px solid var(--border);margin-inline-end:6px;font-weight:800;font-size:12px | |
| } | |
| .badge{background:#fff;color:var(--primary);border-radius:999px;padding:2px 8px;margin-inline-start:6px;font-size:12px} | |
| .warn{ | |
| margin:8px auto 12px;padding:8px 12px;border-radius:10px;border:1px solid #f59e0b; | |
| color:#92400e;background:#fffbeb;max-width:900px | |
| } | |
| .table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--border)} | |
| .table{width:100%;border-collapse:separate;border-spacing:0;text-align:center} | |
| .table thead th{background:var(--table-head);color:#fff;font-weight:700;padding:12px;position:sticky;top:0} | |
| .table tbody td{padding:10px 12px;background:var(--card);border-top:1px solid var(--border);color:var(--ink)} | |
| .table tbody tr:nth-child(even) td{background:var(--table-alt)} | |
| .table td[contenteditable="true"]{outline:none} | |
| .table td.invalid{background:#fff3f3;position:relative} | |
| .table td.invalid::after{ | |
| content:"⚠";position:absolute;inset-inline-end:6px;inset-block-start:6px;font-size:14px;color:#ef4444;opacity:.95;pointer-events:none | |
| } | |
| .table td.invalid[title]{cursor:help} | |
| body.dark .table td.invalid{background:#3b1d1d} | |
| .cat{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700} | |
| .cat.login{background:#fff1;color:#fff;border:1px solid #fff3} | |
| .cat.device{background:#0ea5e922;color:#0ea5e9;border:1px solid #0ea5e955} | |
| .cat.form{background:#fef3c7;color:#a16207;border:1px solid #f59e0b} | |
| .cat.network{background:#dcfce7;color:#166534;border:1px solid #22c55e} | |
| .cat.update{background:#e0e7ff;color:#3730a3;border:1px solid #6366f1} | |
| .cat.default{background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1} | |
| body.dark .cat.default{background:#111827;color:#e5e7eb;border-color:#334155} | |
| .toast{ | |
| position:fixed;bottom:20px;inset-inline-start:20px;background:#111827;color:#fff; | |
| padding:10px 14px;border-radius:10px;box-shadow:var(--shadow);opacity:0;transform:translateY(8px); | |
| transition:.25s ease;pointer-events:none;font-weight:600 | |
| } | |
| .toast.show{opacity:1;transform:translateY(0)} | |
| .lock{ | |
| position:fixed;inset:0;display:flex;align-items:center;justify-content:center; | |
| background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.35)); | |
| backdrop-filter:blur(6px);z-index:9999 | |
| } | |
| .lock-card{ | |
| background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow); | |
| padding:22px;min-width:320px;display:flex;flex-direction:column;gap:10px | |
| } | |
| .lock-title{font-weight:800;color:var(--primary);font-size:22px} | |
| .lock-btn{width:100%} | |
| .lock-msg{color:#ef4444;font-weight:700} | |
| @media (max-width:640px){ | |
| .filters{flex-direction:column} | |
| .btn-row{gap:6px} | |
| .lock-card{min-width:260px} | |
| } | |