*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem;background:linear-gradient(135deg,#0f172a,#1e293b)}.auth-card{background:#1e293b;border:1px solid #334155;border-radius:16px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 25px 50px -12px #0009}.auth-logo{font-size:2.5rem;text-align:center;margin-bottom:.5rem}.auth-title{font-size:1.5rem;font-weight:700;text-align:center;color:#f8fafc;margin-bottom:.25rem}.auth-subtitle{font-size:.875rem;text-align:center;color:#94a3b8;margin-bottom:2rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.8125rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.form-group input{width:100%;padding:.75rem 1rem;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;outline:none;transition:border-color .2s}.btn-primary{width:100%;padding:.875rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s;margin-top:.5rem}.btn-primary:hover{opacity:.9}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.875rem;color:#64748b}.auth-switch button{background:none;border:none;color:#818cf8;cursor:pointer;font-weight:600;padding:0 .25rem}.error-box{background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:8px;padding:.75rem 1rem;color:#fca5a5;font-size:.875rem;margin-bottom:1rem}.dashboard{min-height:100vh;display:flex;flex-direction:column}.navbar{background:#1e293b;border-bottom:1px solid #334155;padding:0 2rem;height:60px;display:flex;align-items:center;justify-content:space-between}.navbar-brand{font-size:1.25rem;font-weight:700;color:#818cf8}.navbar-user{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:#94a3b8}.btn-logout{background:transparent;border:1px solid #475569;border-radius:6px;color:#94a3b8;padding:.375rem .875rem;cursor:pointer;font-size:.8125rem;transition:all .2s}.btn-logout:hover{border-color:#ef4444;color:#ef4444}.main-content{flex:1;padding:2rem;width:100%;box-sizing:border-box}.page-title{font-size:1.5rem;font-weight:700;color:#f1f5f9;margin-bottom:1.5rem}.card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.card-title{font-size:1rem;font-weight:600;color:#c4b5fd;margin-bottom:1.25rem}.input-row{display:flex;gap:.75rem;flex-wrap:wrap}.input-row input{flex:1;min-width:140px;padding:.625rem .875rem;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:.9375rem;outline:none}.input-row input:focus{border-color:#6366f1}.btn-run{padding:.625rem 1.5rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:8px;color:#fff;font-size:.9375rem;font-weight:600;cursor:pointer;white-space:nowrap}.btn-run:hover{opacity:.9}.btn-run:disabled{opacity:.5;cursor:not-allowed}.result-area{margin-top:1.25rem}.result-meta{font-size:.8125rem;color:#64748b;margin-bottom:.75rem}.perm-grid{display:flex;flex-wrap:wrap;gap:.5rem}.perm-chip{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:.25rem .75rem;font-size:.875rem;font-family:monospace;color:#a5b4fc}.combo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.625rem;margin-top:.5rem}.panna-chart{overflow-x:auto}.panna-chart-header,.panna-chart-row{display:grid;grid-template-columns:repeat(10,1fr);gap:.35rem;margin-bottom:.35rem}.panna-col-header{text-align:center;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#818cf8;padding:.35rem .25rem;background:#6366f11f;border:1px solid rgba(99,102,241,.25);border-radius:6px}.panna-card{padding:.5rem .25rem .4rem;border-radius:8px}.panna-card .combo-number{font-size:.82rem}.combo-card{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:.875rem .5rem .625rem;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;-webkit-user-select:none;user-select:none}.combo-card:hover{border-color:#6366f1;background:#6366f114}.combo-card.combo-selected{border-color:#818cf8;background:#6366f138;transform:translateY(-2px);box-shadow:0 4px 12px #6366f14d}.sel-summary{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.625rem 1rem;background:#6366f11f;border:1px solid rgba(99,102,241,.3);border-radius:10px;margin-bottom:.875rem;font-size:.875rem;color:#a5b4fc}.sel-total{font-weight:700;font-size:1rem;color:#4ade80;margin-left:auto}.sel-clear{background:transparent;border:1px solid rgba(99,102,241,.4);border-radius:6px;color:#818cf8;font-size:.78rem;font-weight:600;padding:.2rem .6rem;cursor:pointer;transition:background .15s}.sel-clear:hover{background:#6366f133}.combo-number{font-size:1.25rem;font-weight:700;font-family:monospace;color:#a5b4fc;letter-spacing:.08em}.combo-amount{font-size:.72rem;color:#64748b;margin-top:.3rem}.combo-budget{font-size:.75rem;font-weight:600;color:#4ade80;margin-top:.2rem}.tag-list{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.75rem}.tag{background:#0f172a;border:1px solid #475569;border-radius:99px;padding:.125rem .625rem;font-size:.75rem;color:#94a3b8}.empty-state{color:#475569;font-size:.875rem;font-style:italic}.role-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:.25rem .6rem;border-radius:99px}.badge-admin{background:#8b5cf640;color:#c4b5fd;border:1px solid rgba(139,92,246,.4)}.badge-writer{background:#eab30833;color:#fde047;border:1px solid rgba(234,179,8,.35)}.badge-user{background:#10b98133;color:#6ee7b7;border:1px solid rgba(16,185,129,.35)}.user-card{background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.25rem 1.5rem;margin-bottom:1.75rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}.user-card-left{display:flex;align-items:center;gap:1rem}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;color:#fff;flex-shrink:0}.user-display-name{font-size:1rem;font-weight:600;color:#f1f5f9}.user-meta{font-size:.8125rem;color:#64748b;margin-top:.125rem}.user-card-right{flex:1;min-width:200px}.perm-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem}.perm-chip.perm-active{background:#6366f126;border-color:#6366f159;color:#a5b4fc}.perm-warn{font-size:.7rem;font-weight:600;color:#fb923c;background:#fb923c1a;border:1px solid rgba(251,146,60,.3);border-radius:99px;padding:.125rem .5rem;margin-left:.75rem;vertical-align:middle}.form-select{width:100%;padding:.75rem 1rem;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-size:1rem;outline:none;cursor:pointer}.form-select:focus{border-color:#6366f1}.opt{font-size:.75rem;font-weight:400;color:#475569;text-transform:none;letter-spacing:0}.tab-nav{display:flex;gap:.5rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{padding:.5rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;color:#94a3b8;font-size:.9rem;font-weight:500;cursor:pointer;margin-bottom:-1px;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s}.tab-btn:hover{color:#e2e8f0}.tab-btn.tab-active{color:#818cf8;border-bottom-color:#818cf8}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.user-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.8rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.form-group input{background:#0f172a;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:.5rem .75rem;color:#e2e8f0;font-size:.9rem;outline:none}.form-group input:focus{border-color:#6366f1}.btn-primary{width:100%;padding:.625rem 1.25rem;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;border-radius:10px;color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:opacity .15s}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.table-wrapper{overflow-x:auto;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:12px}.users-table{width:100%;border-collapse:collapse;font-size:.875rem}.users-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;border-bottom:1px solid rgba(255,255,255,.07)}.users-table td{padding:.875rem 1rem;border-bottom:1px solid rgba(255,255,255,.04);color:#cbd5e1;vertical-align:middle}.users-table tr:last-child td{border-bottom:none}.users-table tr.row-inactive td{opacity:.5}.users-table tr.row-selected td{background:#6366f11a}.users-table tbody tr:hover td{background:#ffffff08}.row-chevron{margin-left:auto;font-size:.65rem;color:#6366f1;flex-shrink:0}.detail-row td{padding:0!important;border-bottom:2px solid rgba(99,102,241,.35)!important}.udp-inline{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;padding:1.25rem 1.5rem;background:#6366f112;border-left:3px solid #6366f1;animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.udp-inline-left{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.udp-avatar-lg{width:52px;height:52px;font-size:1.25rem;font-weight:800}.udp-inline-fields{display:flex;flex-wrap:wrap;gap:1.25rem 2rem;flex:1}.udp-inline-perms{flex:1;min-width:200px}.udp-inline-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;width:100%;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.06);margin-top:.25rem}.users-split{display:flex;gap:1rem;align-items:flex-start}.users-split .table-wrapper{flex:1;min-width:0}.users-split.has-detail .table-wrapper{flex:1 1 55%}.user-detail-panel{flex:0 0 300px;background:#0f172a;border:1px solid rgba(99,102,241,.35);border-radius:14px;padding:1.25rem;position:sticky;top:1rem}.udp-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.udp-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:800;color:#fff;flex-shrink:0}.udp-meta{flex:1;min-width:0}.udp-name{font-weight:700;font-size:1rem;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.udp-sub{font-size:.78rem;color:#64748b}.udp-close{background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#64748b;font-size:.85rem;padding:.15rem .5rem;cursor:pointer;line-height:1.4;flex-shrink:0}.udp-close:hover{background:#ffffff0f;color:#f1f5f9}.udp-section{margin-bottom:.875rem}.udp-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569;margin-bottom:.25rem}.udp-value{font-size:.875rem;color:#cbd5e1;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.udp-role-label{font-size:.78rem;color:#64748b}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-active{background:#4ade80;box-shadow:0 0 6px #4ade8099}.dot-inactive{background:#64748b}.udp-perms{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.perm-chip{font-size:.68rem;font-weight:600;padding:.2rem .5rem;border-radius:20px;background:#6366f12e;border:1px solid rgba(99,102,241,.3);color:#a5b4fc;white-space:nowrap}.udp-actions{display:flex;gap:.5rem;margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.06)}.user-cell{display:flex;align-items:center;gap:.625rem}.mini-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff;flex-shrink:0}.cell-name{font-weight:600;color:#f1f5f9}.cell-sub{font-size:.75rem;color:#64748b}.role-select{padding:.25rem .5rem;font-size:.8rem}.status-btn{padding:.25rem .75rem;border-radius:999px;font-size:.75rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s}.status-btn:hover{opacity:.8}.status-active{background:#22c55e26;color:#4ade80}.status-inactive{background:#ef44441f;color:#f87171}.btn-delete{padding:.3rem .75rem;background:#ef44441f;border:1px solid rgba(239,68,68,.25);border-radius:8px;color:#f87171;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-delete:hover{background:#ef444440}@media(max-width:768px){.users-split,.users-split.has-detail{flex-direction:column}.user-detail-panel{flex:none;width:100%;position:static}.panna-chart-header,.panna-chart-row{grid-template-columns:repeat(10,minmax(60px,1fr));gap:.25rem}.panna-col-header{font-size:.6rem;padding:.3rem .15rem}.navbar{padding:0 1rem;height:54px}.navbar-brand{font-size:1rem}.navbar-user{gap:.5rem}.navbar-user>span:last-of-type{display:none}.main-content{padding:1rem}.user-card{flex-direction:column;gap:1rem;padding:1rem}.user-card-right{min-width:unset;width:100%}.tab-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0;scrollbar-width:none}.tab-nav::-webkit-scrollbar{display:none}.tab-btn{padding:.5rem .875rem;font-size:.8rem;white-space:nowrap;flex-shrink:0}.card{padding:1rem}.input-row{flex-direction:column}.input-row input{min-width:unset;width:100%}.btn-run{width:100%;padding:.75rem}.combo-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:.5rem}.combo-number{font-size:1.1rem}.perm-chip{font-size:.75rem;padding:.2rem .5rem}.panel-header{flex-wrap:wrap;gap:.75rem}.user-form-grid{grid-template-columns:1fr}.btn-primary{max-width:unset!important}.auth-card{padding:2rem 1.25rem}}@media(max-width:480px){.navbar-brand{font-size:.9rem}.auth-title{font-size:1.25rem}.combo-grid{grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:.375rem}.combo-number{font-size:1rem}.users-table th,.users-table td{padding:.625rem;font-size:.8rem}}
