*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;color:#1a1a1a;background:#fafafa}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button,input,select,textarea{font:inherit}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}.pageHeader{margin-bottom:1.5rem}.pageHeader h1{font-size:1.5rem;font-weight:600;color:#111}.pageHeader p{margin-top:.25rem;color:#666;font-size:.9rem}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:6px;font-weight:500;border:none;transition:background .15s}.btnPrimary{background:#1a1a1a;color:#fff}.btnPrimary:hover{background:#333}.btnSecondary{background:#e5e5e5;color:#1a1a1a}.btnSecondary:hover{background:#d4d4d4}.card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:1.25rem}.tableWrap{overflow-x:auto}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:.75rem 1rem;border-bottom:1px solid #eee}th{font-weight:600;color:#555;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}tr:last-child td{border-bottom:none}tr:hover td{background:#f9f9f9}.formGroup{margin-bottom:1rem}.formGroup label{display:block;font-weight:500;margin-bottom:.35rem;font-size:.9rem}.formGroup input{width:100%;padding:.5rem .75rem;border:1px solid #ddd;border-radius:6px}.formGroup input:focus{outline:none;border-color:#1a1a1a}.nav{display:flex;align-items:center;gap:1.5rem;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e5e5e5}.nav a{color:#444;font-weight:500}.nav a:hover{color:#1a1a1a;text-decoration:none}.nav .brand{font-weight:600;color:#1a1a1a;margin-right:auto}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.badgeNew{background:#e0e7ff;color:#3730a3}.badgeActive{background:#d1fae5;color:#065f46}.badgePending{background:#fef3c7;color:#92400e}.badgeClosed{background:#f3f4f6;color:#6b7280}.badgeFailed{background:#fee2e2;color:#b91c1c}.public-page{min-height:100vh;display:flex;flex-direction:column;background:#fafafa}.public-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#fff;border-bottom:1px solid #e5e5e5}.public-brand{font-weight:600;font-size:1.1rem}.public-brand,.public-brand:hover{color:#1a1a1a;text-decoration:none}.public-nav{gap:1rem}.public-main,.public-nav{display:flex;align-items:center}.public-main{flex:1 1;flex-direction:column;justify-content:center;padding:2rem;text-align:center}.public-main h1{font-size:2rem;font-weight:600;color:#111;max-width:480px;line-height:1.3}.public-tagline{margin-top:1rem;color:#666;font-size:1rem}.public-actions{margin-top:2rem;display:flex;gap:1rem}.auth-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fafafa;padding:2rem}.auth-card{width:100%;max-width:380px;background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:1.5rem}.auth-card-header{margin-bottom:1.5rem}.auth-card-header h1{font-size:1.25rem;font-weight:600;color:#111}.auth-card-header p{margin-top:.25rem;color:#666;font-size:.9rem}.auth-submit{width:100%;margin-top:.25rem}.auth-footer,.auth-muted{color:#666;font-size:.9rem}.auth-footer{margin-top:1.5rem}.auth-footer a{font-weight:500}.app-shell{display:flex;min-height:100vh;background:#fafafa}.sidebar{width:240px;flex-shrink:0;background:#fff;border-right:1px solid #e5e5e5;display:flex;flex-direction:column}.sidebar-brand{padding:1.25rem 1.5rem;font-weight:600;font-size:1rem;color:#1a1a1a;border-bottom:1px solid #e5e5e5}.sidebar-brand a{color:inherit;text-decoration:none}.sidebar-nav{flex:1 1;padding:.75rem 0}.sidebar-nav a{display:block;padding:.5rem 1.5rem;color:#444;font-weight:500;text-decoration:none;font-size:.95rem}.sidebar-nav a:hover{background:#f5f5f5;color:#1a1a1a}.sidebar-nav a.active{background:#f0f0f0;color:#1a1a1a;border-right:2px solid #1a1a1a}.sidebar-footer{padding:.75rem 1.5rem;border-top:1px solid #e5e5e5}.app-main{flex:1 1;overflow:auto;padding:1.5rem}