@charset "UTF-8";.list-page{max-width:1400px;margin:0 auto}.list-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding:1.5rem 1.75rem;border-radius:16px;background:#0f172a;color:#fff;box-shadow:0 4px 20px #0000001a;border-bottom:1px solid rgba(255,255,255,.1)}.list-eyebrow{margin:0 0 .2rem;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.list-hero h1{margin:0;font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.list-sub{margin:.35rem 0 0;font-size:.9rem;opacity:.88}.filters-card{margin-bottom:1rem;padding:1rem 1.25rem;background:var(--jypra-surface);border:1px solid var(--jypra-border);border-radius:16px;box-shadow:var(--jypra-shadow)}.filters-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.5rem}.table-card{background:var(--jypra-surface);border:1px solid var(--jypra-border);border-radius:16px;box-shadow:var(--jypra-shadow);overflow:auto}.table-loading,.table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:3rem;color:var(--jypra-muted)}.table-loading .material-symbols-outlined,.table-empty .material-symbols-outlined{font-size:2.5rem;opacity:.5}.spin{animation:jypra-spin 1s linear infinite}.jypra-table{border:none;border-radius:0}.jypra-table .num{color:var(--jypra-muted);font-weight:600;font-variant-numeric:tabular-nums}.jypra-table .cell-strong{font-weight:700;color:#0f172a}.jypra-table .cell-muted{color:var(--jypra-muted);font-size:.8125rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem 1rem;border-radius:10px;border:none;font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:#4f46e5;color:#fff;box-shadow:0 4px 12px #4f46e540}.btn-primary:hover:not(:disabled){background:#4338ca;box-shadow:0 6px 16px #4f46e559}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.btn-warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-secondary,.btn-link{background:#f1f5f9;color:#475569;border:1px solid var(--jypra-border)}.btn-ghost{background:#fff;color:#4f46e5;border:1px solid #c7d2fe}.btn-sm{padding:.3rem .65rem;font-size:.75rem;border-radius:8px}.filter-row,.filters-bar{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-row label,.filters-bar label{display:flex;flex-direction:column;gap:.35rem;font-size:.75rem;font-weight:600;color:var(--jypra-muted);text-transform:uppercase;letter-spacing:.04em}.filter-row input,.filter-row select,.filter-row textarea,.filters-bar input,.filters-bar select,.jypra-input{padding:.55rem .85rem;border:1px solid var(--jypra-border);border-radius:10px;font-family:inherit;font-size:.9rem;background:#fff;min-width:160px;transition:border-color .15s ease,box-shadow .15s ease}.filter-row input:focus,.filter-row select:focus,.filter-row textarea:focus,.filters-bar input:focus,.filters-bar select:focus,.jypra-input:focus{outline:none;border-color:#818cf8;box-shadow:0 0 0 3px #6366f126}.admin-table,.jypra-table{width:100%;border-collapse:collapse;font-size:.875rem;background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--jypra-border)}.admin-table thead,.jypra-table thead{background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.admin-table th,.jypra-table th{padding:.75rem 1rem;text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--jypra-muted);border-bottom:1px solid var(--jypra-border)}.admin-table td,.jypra-table td{padding:.85rem 1rem;border-bottom:1px solid #f1f5f9;vertical-align:middle}.admin-table tbody tr:hover,.jypra-table tbody tr:hover{background:#fafbff}.admin-table a,.jypra-table a{color:#4f46e5;font-weight:600;text-decoration:none}.admin-table a:hover,.jypra-table a:hover{text-decoration:underline}.badge,.status-pill{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.online,.live-online,.status-pill.live-online{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.badge.recent,.live-recent,.status-pill.live-recent{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.badge.offline,.live-offline,.status-pill.live-offline{background:#94a3b8;color:#fff}.badge.active{background:#dcfce7;color:#166534}.link-danger{background:none;border:none;color:#dc2626;font-weight:600;cursor:pointer;font-size:inherit;padding:0}.link-danger:hover{text-decoration:underline}.row-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.pager,.jypra-pager{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.25rem;padding:.75rem}.pager button,.jypra-pager button{padding:.5rem 1rem;border:1px solid var(--jypra-border);border-radius:10px;background:#fff;font-family:inherit;font-weight:600;cursor:pointer;transition:all .15s ease}.pager button:hover:not(:disabled),.jypra-pager button:hover:not(:disabled){border-color:#818cf8;color:#4f46e5}.pager button:disabled,.jypra-pager button:disabled{opacity:.45;cursor:not-allowed}.pager span,.jypra-pager span{font-size:.875rem;color:var(--jypra-muted);font-weight:500}.form-page{max-width:1200px;margin:0 auto}.form-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.25rem;margin-bottom:1.5rem;padding:1.75rem 2rem;border-radius:16px;background:#0f172a;color:#fff;box-shadow:0 4px 25px #00000026;border-bottom:1px solid rgba(255,255,255,.1)}.form-back{display:inline-flex;align-items:center;gap:.35rem;margin-bottom:.65rem;font-size:.8125rem;font-weight:600;color:#ffffffbf;text-decoration:none;transition:color .15s ease}.form-back:hover{color:#fff}.form-back .material-symbols-outlined{font-size:1.1rem}.form-eyebrow{margin:0 0 .2rem;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.75}.form-hero h1{margin:0;font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.form-sub{margin:.4rem 0 0;font-size:.9rem;opacity:.88;max-width:36rem}.form-hero-actions{display:flex;flex-wrap:wrap;gap:.5rem}.form-hero-actions .btn{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(8px)}.form-hero-actions .btn:hover:not(:disabled){background:#fff3;border-color:#ffffff59}.form-stack{display:flex;flex-direction:column;gap:1.25rem}.form-card{background:var(--jypra-surface);border:1px solid var(--jypra-border);border-radius:18px;box-shadow:var(--jypra-shadow);overflow:hidden}.form-card-header{display:flex;align-items:flex-start;gap:.85rem;padding:1.15rem 1.35rem;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fafbff,#fff)}.form-card-header>.material-symbols-outlined{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;font-size:1.35rem;color:#4f46e5;background:linear-gradient(135deg,#eef2ff,#e0e7ff);flex-shrink:0}.form-card-header h2{margin:0;font-size:1.05rem;font-weight:800;letter-spacing:-.02em;color:#0f172a}.form-card-header p{margin:.2rem 0 0;font-size:.8125rem;color:var(--jypra-muted)}.form-card-body{padding:1.35rem}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.15rem 1.25rem}@media(max-width:1100px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.form-field{display:flex;flex-direction:column;gap:.4rem;min-width:0}.form-field>span:first-child,.form-field>.form-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--jypra-muted)}.form-field--span-2{grid-column:span 2}@media(max-width:640px){.form-field--span-2{grid-column:span 1}}.form-field--full{grid-column:1/-1}.form-field input,.form-field select,.form-field textarea,.jypra-input{width:100%;min-width:0}.form-field input[readonly]{background:#f8fafc;color:#64748b;cursor:not-allowed}.form-hint{margin:0;font-size:.8125rem;color:var(--jypra-muted);line-height:1.5}.form-doc-actions{display:flex;flex-wrap:wrap;gap:.65rem}.form-actions-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem;padding:1.15rem 1.35rem;background:#f8fafc;border:1px solid var(--jypra-border);border-radius:16px;box-shadow:var(--jypra-shadow);position:sticky;bottom:1rem;z-index:10}.form-loading{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:3rem;color:var(--jypra-muted);font-weight:600}.form-loading .material-symbols-outlined{font-size:1.75rem;color:#4f46e5;animation:jypra-spin 1s linear infinite}@keyframes jypra-spin{to{transform:rotate(360deg)}}.muted{color:var(--jypra-muted)}.profile-page{max-width:960px;margin:0 auto}.profile-hero{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1.5rem;padding:1.5rem 1.65rem;border-radius:20px;background:linear-gradient(135deg,#0f172a,#312e81,#6366f1);color:#fff;box-shadow:var(--jypra-shadow-lg)}.profile-avatar{display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:20px;font-size:1.5rem;font-weight:800;letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,#fff3,#ffffff0d);border:2px solid rgba(255,255,255,.25);box-shadow:0 8px 24px #0003;flex-shrink:0}.profile-hero-text{flex:1;min-width:200px}.profile-hero h1{margin:0;font-size:1.65rem;font-weight:800;letter-spacing:-.03em}.profile-role-badge{display:inline-block;margin-top:.65rem;padding:.3rem .75rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:#ffffff26;border:1px solid rgba(255,255,255,.25);color:#e0e7ff}.profile-role-badge--inline{margin-top:0;background:#eef2ff;border-color:#c7d2fe;color:#4338ca}.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}@media(max-width:768px){.profile-grid{grid-template-columns:1fr}}.profile-card{background:var(--jypra-surface);border:1px solid var(--jypra-border);border-radius:18px;box-shadow:var(--jypra-shadow);overflow:hidden}.profile-card--wide{grid-column:1/-1}.profile-card-header{display:flex;align-items:flex-start;gap:.85rem;padding:1.1rem 1.25rem;border-bottom:1px solid #f1f5f9;background:linear-gradient(180deg,#fafbff,#fff)}.profile-card-header>.material-symbols-outlined{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;font-size:1.3rem;color:#4f46e5;background:linear-gradient(135deg,#eef2ff,#e0e7ff);flex-shrink:0}.profile-card-header h2{margin:0;font-size:1rem;font-weight:800;letter-spacing:-.02em;color:#0f172a}.profile-card-header p{margin:.2rem 0 0;font-size:.8125rem;color:var(--jypra-muted)}.profile-details{margin:0;padding:.35rem 0}.profile-detail{display:grid;grid-template-columns:140px 1fr;gap:.75rem 1rem;padding:.85rem 1.25rem;border-bottom:1px solid #f8fafc}.profile-detail:last-child{border-bottom:none}@media(max-width:520px){.profile-detail{grid-template-columns:1fr;gap:.25rem}}.profile-detail dt{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--jypra-muted)}.profile-detail dd{margin:0;font-size:.9375rem;font-weight:600;color:#0f172a;word-break:break-word}.profile-compliance{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;padding:1.25rem}.compliance-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;min-width:0;padding:1rem 1.15rem;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid #e2e8f0;border-radius:14px;transition:box-shadow .15s ease}.compliance-tile:hover{box-shadow:0 4px 12px #0f172a0f}.compliance-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--jypra-muted);line-height:1.3}.widget-panel{margin-bottom:1.25rem;background:var(--jypra-surface);border:1px solid #e8edf3;border-radius:16px;box-shadow:var(--jypra-shadow);overflow:hidden}.widget-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.35rem;border-bottom:1px solid #eef2f6;background:#fff}.widget-panel-title{display:flex;align-items:center;gap:.75rem;margin:0;font-size:1.05rem;font-weight:700;color:#3f3d56;letter-spacing:-.02em}.widget-panel-icon{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;flex-shrink:0}.widget-panel-icon .material-symbols-outlined{font-size:1.3rem}.widget-panel-icon--hardware{background:linear-gradient(135deg,#ede9fe,#e0e7ff);color:#6366f1}.widget-panel-icon--alarm{background:linear-gradient(135deg,#fee2e2,#fef2f2);color:#ef4444}.widget-panel-action{font-size:.875rem;font-weight:600;color:#4f46e5;text-decoration:none;white-space:nowrap;transition:color .15s ease}.widget-panel-action:hover{color:#3730a3;text-decoration:underline}.widget-table-wrap{overflow-x:auto}.widget-table{width:100%;border-collapse:collapse;font-size:.875rem}.widget-table thead{background:#fff}.widget-table th{padding:.85rem 1.35rem;text-align:left;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;border-bottom:1px solid #eef2f6}.widget-table td{padding:1rem 1.35rem;border-bottom:1px solid #f1f5f9;vertical-align:middle;color:#64748b}.widget-table tbody tr{transition:background .12s ease}.widget-table tbody tr:hover{background:#fafbff}.widget-table tbody tr:last-child td{border-bottom:none}.widget-table .cell-link{color:#3f3d56;font-weight:600;text-decoration:none;transition:color .12s ease}.widget-table .cell-link:hover{color:#4f46e5}.widget-table .cell-num{color:#94a3b8;font-weight:600;font-variant-numeric:tabular-nums}.widget-table .cell-status{font-weight:500;color:#64748b}.widget-table .cell-main{display:block;font-weight:600;color:#3f3d56}.widget-table .cell-sub{display:block;margin-top:.15rem;font-size:.8rem;color:#94a3b8}.widget-action-link{font-size:.8125rem;font-weight:600;color:#4f46e5;text-decoration:none;white-space:nowrap}.widget-action-link:hover{text-decoration:underline}.live-badge{display:inline-flex;align-items:center;padding:.3rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.2;white-space:nowrap}.live-badge.is-online{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.live-badge.is-recent{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.live-badge.is-offline{background:#9ca3af;color:#fff}.alarm-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;padding:.25rem .55rem;border-radius:8px;font-size:.8125rem;font-weight:700;line-height:1.2;background:#fee2e2;color:#dc2626}.alarm-zero{font-size:.875rem;font-weight:500;color:#cbd5e1}.profile-status{display:inline-flex;align-items:center;justify-content:center;min-width:5.5rem;padding:.35rem .85rem;border-radius:999px;font-size:.8125rem;font-weight:700;line-height:1.2;white-space:nowrap;background:#f1f5f9;color:#475569}.profile-status.is-on{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.profile-status.is-pending{background:#fef3c7;color:#b45309;border:1px solid #fde68a}.profile-status.is-off{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}:root{--jypra-primary: #4f46e5;--jypra-primary-dark: #3730a3;--jypra-accent: #06b6d4;--jypra-header-bg: #ffffff;--jypra-header-text: #1e293b;--jypra-header-border: #e2e8f0;--jypra-header-shadow: 0 1px 3px rgb(15 23 42 / .06), 0 4px 12px rgb(15 23 42 / .04);--jypra-sidebar-bg: #0f172a;--jypra-bg: #f8fafc;--jypra-surface: #ffffff;--jypra-border: #e2e8f0;--jypra-muted: #64748b;--jypra-radius: 16px;--jypra-shadow: 0 4px 6px -1px rgb(15 23 42 / .06), 0 10px 20px -5px rgb(15 23 42 / .08);--jypra-shadow-lg: 0 20px 40px -12px rgb(79 70 229 / .15)}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Plus Jakarta Sans,Segoe UI,system-ui,sans-serif;background:var(--jypra-bg);color:#0f172a;-webkit-font-smoothing:antialiased}a{color:var(--jypra-primary)}.material-symbols-outlined{font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;vertical-align:middle}
