*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:#1a1a1a;background:#fafafa}.center{max-width:480px;margin:80px auto;padding:0 20px}.center h1{font-size:20px;margin:0 0 16px}.center p{color:#555;font-size:14px;line-height:1.5}.btn{display:inline-block;padding:8px 14px;background:#111;color:#fff;border:0;border-radius:6px;font-size:13px;cursor:pointer;text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:#333;border:1px solid #ccc}.btn.danger{background:#c8341c}.btn.small{padding:4px 8px;font-size:12px}input,select,textarea{padding:8px 10px;font-size:13px;border:1px solid #ccc;border-radius:6px;background:#fff;font-family:inherit}.layout{display:flex;height:100vh}.sidebar{width:200px;background:#111;color:#eee;padding:20px 0;flex-shrink:0}.sidebar .brand{padding:0 20px 20px;font-weight:600;font-size:14px}.sidebar a{display:block;padding:8px 20px;color:#bbb;text-decoration:none;font-size:13px}.sidebar a.active,.sidebar a:hover{background:#222;color:#fff}.sidebar .footer{position:absolute;bottom:20px;padding:0 20px;font-size:12px;color:#888}.main{flex:1;overflow:auto;padding:24px 32px}.main header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.main h1{font-size:22px;margin:0}.card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:16px;margin-bottom:16px}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid #eee;vertical-align:middle}.table th{background:#fafafa;font-weight:600;color:#333;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.table tbody tr:hover{background:#fafbfd}.matrix-cell{padding:6px 10px;min-width:100px}.matrix-cell .role{display:inline-block;padding:2px 8px;background:#e8f0fe;color:#1a56d6;border-radius:10px;font-size:11px;font-weight:500;cursor:pointer}.matrix-cell .grant{font-size:11px;color:#888;cursor:pointer;padding:2px 6px;border:1px dashed #ccc;border-radius:10px}.matrix-cell .grant:hover{border-color:#999;color:#333}.row-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row-form input,.row-form select{flex:1;min-width:140px}.tag-editor{display:flex;flex-wrap:wrap;gap:4px;align-items:center;max-width:280px}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 4px 2px 8px;background:#eef0f4;color:#333;border-radius:10px;font-size:11px;white-space:nowrap}.tag.tag-test{background:#fef3c7;color:#92400e}.tag-remove{border:0;background:transparent;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0 4px;opacity:.6}.tag-remove:hover{opacity:1}.tag-add input{font-size:11px;padding:2px 6px;width:80px;border:1px dashed #ccc;border-radius:10px;background:transparent}.tag-add input:focus{outline:none;border-color:#888;background:#fff}.error{color:#c8341c;font-size:13px;padding:8px 0}.muted{color:#888;font-size:12px}dialog.modal{padding:0;border:none;border-radius:8px}dialog.modal .panel{padding:20px;min-width:320px}dialog.modal h2{margin:0 0 14px;font-size:16px}dialog.modal .row{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}dialog.modal label{font-size:12px;color:#555}dialog.modal .actions{display:flex;gap:8px;justify-content:flex-end}dialog.modal::backdrop{background:#0000004d}
