yeswanth0212/token_system
1
1:root {2 --bg-color: #030712; /* Extreme dark slate */3 --card-bg: rgba(17, 24, 39, 0.7);4 --border-color: rgba(255, 255, 255, 0.06);5 --primary-glow: rgba(6, 182, 212, 0.15);6 --accent-cyan: #06b6d4;7 --accent-emerald: #10b981;8 --accent-rose: #f43f5e;9 --accent-amber: #f59e0b;10 --accent-purple: #8b5cf6;11 --text-primary: #f9fafb;12 --text-secondary: #9ca3af;13 --font-outfit: 'Outfit', sans-serif;14 --font-inter: 'Inter', sans-serif;15}16 17* {18 box-sizing: border-box;19 margin: 0;20 padding: 0;21 font-family: var(--font-inter);22 scrollbar-width: thin;23 scrollbar-color: rgba(255, 255, 255, 0.1) transparent;24}25 26/* Custom Scrollbar */27::-webkit-scrollbar {28 width: 6px;29 height: 6px;30}31::-webkit-scrollbar-track {32 background: transparent;33}34::-webkit-scrollbar-thumb {35 background: rgba(255, 255, 255, 0.1);36 border-radius: 4px;37}38::-webkit-scrollbar-thumb:hover {39 background: rgba(255, 255, 255, 0.2);40}41 42body {43 background-color: var(--bg-color);44 color: var(--text-primary);45 min-height: 100vh;46 display: flex;47 flex-direction: column;48 background-image: 49 radial-gradient(at 0% 0%, rgba(6, 182, 212, 0.1) 0, transparent 40%),50 radial-gradient(at 100% 0%, rgba(16, 185, 129, 0.08) 0, transparent 40%),51 radial-gradient(at 50% 100%, rgba(139, 92, 246, 0.05) 0, transparent 50%);52 background-attachment: fixed;53 overflow-x: hidden;54}55 56/* Header Styling */57header {58 padding: 1.25rem 2rem;59 display: flex;60 justify-content: space-between;61 align-items: center;62 border-bottom: 1px solid var(--border-color);63 background: rgba(3, 7, 18, 0.7);64 backdrop-filter: blur(20px);65 -webkit-backdrop-filter: blur(20px);66 position: sticky;67 top: 0;68 z-index: 100;69}70 71.brand-section {72 display: flex;73 align-items: center;74 gap: 0.75rem;75}76 77.brand-logo {78 width: 38px;79 height: 38px;80 background: linear-gradient(135deg, var(--accent-cyan), var(--accent-emerald));81 border-radius: 10px;82 display: flex;83 align-items: center;84 justify-content: center;85 font-weight: 800;86 color: #030712;87 font-family: var(--font-outfit);88 box-shadow: 0 0 15px rgba(6, 182, 212, 0.3);89}90 91h1 {92 font-family: var(--font-outfit);93 font-size: 1.5rem;94 font-weight: 800;95 background: linear-gradient(to right, var(--accent-cyan), #38bdf8);96 -webkit-background-clip: text;97 background-clip: text;98 -webkit-text-fill-color: transparent;99 color: transparent;100 letter-spacing: -0.5px;101}102 103/* Tab Navigation */104.nav-tabs {105 display: flex;106 background: rgba(255, 255, 255, 0.03);107 border: 1px solid var(--border-color);108 padding: 0.25rem;109 border-radius: 0.75rem;110 gap: 0.25rem;111}112 113.tab-btn {114 padding: 0.5rem 1.25rem;115 border: none;116 background: transparent;117 color: var(--text-secondary);118 font-size: 0.9rem;119 font-weight: 600;120 border-radius: 0.5rem;121 cursor: pointer;122 transition: all 0.25s ease;123 display: flex;124 align-items: center;125 gap: 0.5rem;126 width: auto;127}128 129.tab-btn:hover {130 color: var(--text-primary);131 background: rgba(255, 255, 255, 0.02);132}133 134.tab-btn.active {135 background: linear-gradient(135deg, var(--accent-cyan), rgba(6, 182, 212, 0.4));136 color: #030712;137 box-shadow: 0 4px 12px rgba(6, 182, 212, 0.2);138}139 140/* Kiosk & Live Board Grid Layout */141.container {142 max-width: 1300px;143 margin: 0 auto;144 padding: 2rem;145 width: 100%;146 flex: 1;147}148 149.dashboard-layout {150 display: grid;151 grid-template-columns: 1fr 380px;152 gap: 2rem;153}154 155.glass-panel {156 background: var(--card-bg);157 border: 1px solid var(--border-color);158 border-radius: 1.5rem;159 padding: 2rem;160 backdrop-filter: blur(16px);161 -webkit-backdrop-filter: blur(16px);162 box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);163 position: relative;164 overflow: hidden;165}166 167.glass-panel::before {168 content: '';169 position: absolute;170 top: 0; left: 0; right: 0; bottom: 0;171 background: radial-gradient(circle at 50% 0%, var(--primary-glow), transparent 70%);172 pointer-events: none;173}174 175.panel-header {176 display: flex;177 justify-content: space-between;178 align-items: center;179 margin-bottom: 1.5rem;180}181 182h2 {183 font-family: var(--font-outfit);184 font-size: 1.35rem;185 color: var(--text-primary);186 display: flex;187 align-items: center;188 gap: 0.75rem;189 font-weight: 700;190}191 192h2::before {193 content: '';194 display: block;195 width: 6px;196 height: 18px;197 background: linear-gradient(to bottom, var(--accent-cyan), var(--accent-emerald));198 border-radius: 3px;199}200 201/* Department Badge Utilities */202.dept-badge {203 padding: 0.25rem 0.6rem;204 border-radius: 9999px;205 font-size: 0.75rem;206 font-weight: 700;207 text-transform: uppercase;208 letter-spacing: 0.5px;209}210.dept-general { background: rgba(6, 182, 212, 0.12); color: var(--accent-cyan); border: 1px solid rgba(6, 182, 212, 0.2); }211.dept-pediatrics { background: rgba(16, 185, 129, 0.12); color: var(--accent-emerald); border: 1px solid rgba(16, 185, 129, 0.2); }212.dept-cardiology { background: rgba(244, 63, 94, 0.12); color: var(--accent-rose); border: 1px solid rgba(244, 63, 94, 0.2); }213.dept-dental { background: rgba(245, 158, 11, 0.12); color: var(--accent-amber); border: 1px solid rgba(245, 158, 11, 0.2); }214 215.priority-badge {216 background: rgba(245, 158, 11, 0.15);217 color: var(--accent-amber);218 border: 1px solid rgba(245, 158, 11, 0.3);219 padding: 0.25rem 0.6rem;220 border-radius: 9999px;221 font-size: 0.75rem;222 font-weight: 700;223 display: inline-flex;224 align-items: center;225 gap: 0.25rem;226}227 228/* Counters Cards Display */229.counters-grid {230 display: grid;231 grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));232 gap: 1.25rem;233}234 235.counter-card {236 background: rgba(255, 255, 255, 0.015);237 border: 1px solid var(--border-color);238 border-radius: 1.25rem;239 padding: 1.5rem;240 text-align: center;241 position: relative;242 overflow: hidden;243 transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);244}245 246.counter-card:hover {247 transform: translateY(-2px);248 border-color: rgba(255, 255, 255, 0.1);249}250 251.counter-card.active-serving {252 border-color: var(--accent-cyan);253 box-shadow: 0 0 25px rgba(6, 182, 212, 0.12);254}255 256.counter-card.active-serving::after {257 content: '';258 position: absolute;259 top: 0; left: 0; right: 0;260 height: 4px;261 background: linear-gradient(to right, var(--accent-cyan), var(--accent-emerald));262 box-shadow: 0 1px 10px var(--accent-cyan);263}264 265.counter-header {266 display: flex;267 justify-content: space-between;268 align-items: center;269 margin-bottom: 1rem;270}271 272.counter-name {273 font-size: 0.85rem;274 color: var(--text-secondary);275 text-transform: uppercase;276 font-weight: 700;277 letter-spacing: 1px;278}279 280.counter-status {281 width: 8px;282 height: 8px;283 border-radius: 50%;284 display: inline-block;285}286.counter-status.online { background: var(--accent-emerald); box-shadow: 0 0 8px var(--accent-emerald); }287.counter-status.paused { background: var(--accent-amber); box-shadow: 0 0 8px var(--accent-amber); }288.counter-status.offline { background: var(--accent-rose); }289 290.current-token {291 font-family: var(--font-outfit);292 font-size: 3rem;293 font-weight: 900;294 color: #ffffff;295 text-shadow: 0 0 20px rgba(255, 255, 255, 0.25);296 line-height: 1;297 margin: 0.5rem 0;298}299 300.current-token.pulsing {301 animation: textPulse 1.5s infinite alternate;302}303 304.current-patient {305 font-size: 1rem;306 font-weight: 600;307 color: var(--text-primary);308 white-space: nowrap;309 overflow: hidden;310 text-overflow: ellipsis;311}312 313.empty-state {314 font-size: 0.95rem;315 color: var(--text-secondary);316 font-style: italic;317 padding: 1.5rem 0;318}319 320/* Department Tab Filters on Queue */321.dept-filters {322 display: flex;323 gap: 0.5rem;324 margin-bottom: 1.5rem;325 overflow-x: auto;326 padding-bottom: 0.5rem;327}328 329.filter-chip {330 padding: 0.4rem 0.9rem;331 background: rgba(255, 255, 255, 0.02);332 border: 1px solid var(--border-color);333 border-radius: 9999px;334 font-size: 0.8rem;335 font-weight: 600;336 color: var(--text-secondary);337 cursor: pointer;338 transition: all 0.2s;339 white-space: nowrap;340}341 342.filter-chip:hover {343 background: rgba(255, 255, 255, 0.05);344 color: var(--text-primary);345}346 347.filter-chip.active {348 background: rgba(6, 182, 212, 0.12);349 color: var(--accent-cyan);350 border-color: var(--accent-cyan);351}352 353/* Waiting List Items */354.waiting-list {355 display: flex;356 flex-direction: column;357 gap: 0.75rem;358 max-height: 380px;359 overflow-y: auto;360 padding-right: 0.5rem;361}362 363.waiting-item {364 display: flex;365 justify-content: space-between;366 align-items: center;367 padding: 0.85rem 1.25rem;368 background: rgba(255, 255, 255, 0.01);369 border: 1px solid rgba(255, 255, 255, 0.03);370 border-radius: 1rem;371 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);372}373 374.waiting-item:hover {375 background: rgba(255, 255, 255, 0.03);376 transform: translateX(4px);377 border-color: var(--border-color);378}379 380.waiting-item.priority-item {381 border-left: 3px solid var(--accent-amber);382 background: rgba(245, 158, 11, 0.02);383}384 385.token-info {386 display: flex;387 align-items: center;388 gap: 1rem;389}390 391.token-num {392 font-family: var(--font-outfit);393 font-size: 1.25rem;394 font-weight: 800;395 color: var(--accent-cyan);396 min-width: 80px;397}398 399.patient-name-container {400 display: flex;401 flex-direction: column;402 gap: 0.25rem;403}404 405.patient-name {406 font-size: 0.95rem;407 font-weight: 600;408 color: var(--text-primary);409}410 411.wait-time {412 display: flex;413 flex-direction: column;414 align-items: flex-end;415}416 417.wait-time span:first-child {418 font-size: 0.75rem;419 color: var(--text-secondary);420}421 422.wait-time span:last-child {423 font-weight: 700;424 color: var(--accent-amber);425 font-size: 0.9rem;426}427 428/* Patient Kiosk Section */429.kiosk-section {430 background: rgba(3, 7, 18, 0.4);431}432 433.kiosk-form {434 display: flex;435 flex-direction: column;436 gap: 1.25rem;437}438 439.kiosk-grid {440 display: grid;441 grid-template-columns: repeat(2, 1fr);442 gap: 0.75rem;443}444 445.dept-select-card {446 border: 1px solid var(--border-color);447 background: rgba(255, 255, 255, 0.015);448 border-radius: 0.75rem;449 padding: 0.75rem;450 text-align: center;451 cursor: pointer;452 transition: all 0.2s;453}454 455.dept-select-card:hover {456 background: rgba(255, 255, 255, 0.04);457 border-color: rgba(255, 255, 255, 0.1);458}459 460.dept-select-card.selected {461 border-color: var(--accent-cyan);462 background: rgba(6, 182, 212, 0.08);463}464 465.dept-select-card.selected span {466 color: var(--accent-cyan);467 font-weight: 700;468}469 470.dept-select-card span {471 font-size: 0.8rem;472 font-weight: 600;473 color: var(--text-secondary);474}475 476.checkbox-container {477 display: flex;478 align-items: center;479 gap: 0.5rem;480 cursor: pointer;481 font-size: 0.85rem;482 color: var(--text-secondary);483 user-select: none;484}485 486.checkbox-container input {487 width: auto;488 accent-color: var(--accent-cyan);489}490 491.input-group {492 display: flex;493 flex-direction: column;494 gap: 0.5rem;495}496 497.input-group label {498 font-size: 0.8rem;499 font-weight: 600;500 color: var(--text-secondary);501}502 503input[type="text"] {504 width: 100%;505 padding: 0.8rem 1rem;506 background: rgba(255, 255, 255, 0.03);507 border: 1px solid var(--border-color);508 border-radius: 0.75rem;509 color: white;510 font-size: 0.95rem;511 outline: none;512 transition: all 0.2s;513}514 515input[type="text"]:focus {516 border-color: var(--accent-cyan);517 background: rgba(255, 255, 255, 0.06);518 box-shadow: 0 0 10px rgba(6, 182, 212, 0.15);519}520 521button {522 width: 100%;523 padding: 0.85rem 1.5rem;524 border: none;525 border-radius: 0.75rem;526 font-size: 0.95rem;527 font-weight: 700;528 cursor: pointer;529 transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);530 display: flex;531 justify-content: center;532 align-items: center;533 gap: 0.5rem;534}535 536button:hover {537 transform: translateY(-1px);538}539 540button:active {541 transform: translateY(1px);542}543 544button.primary {545 background: linear-gradient(135deg, var(--accent-cyan), var(--accent-emerald));546 color: #030712;547}548 549button.primary:hover {550 box-shadow: 0 4px 15px rgba(6, 182, 212, 0.4);551}552 553/* Staff Panel Styling */554.staff-layout {555 display: grid;556 grid-template-columns: 1fr 400px;557 gap: 2rem;558}559 560.staff-counters-grid {561 display: grid;562 grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));563 gap: 1.5rem;564}565 566.staff-counter-card {567 background: var(--card-bg);568 border: 1px solid var(--border-color);569 border-radius: 1.5rem;570 padding: 1.75rem;571 position: relative;572 display: flex;573 flex-direction: column;574 gap: 1.25rem;575}576 577.staff-counter-card::before {578 content: '';579 position: absolute;580 top: 0; left: 0; right: 0; bottom: 0;581 background: radial-gradient(circle at 100% 0%, var(--primary-glow), transparent 60%);582 pointer-events: none;583}584 585.staff-card-header {586 display: flex;587 justify-content: space-between;588 align-items: center;589}590 591.staff-serving-section {592 background: rgba(255, 255, 255, 0.015);593 border: 1px solid rgba(255, 255, 255, 0.04);594 border-radius: 1rem;595 padding: 1.25rem;596 text-align: center;597}598 599.staff-actions {600 display: grid;601 grid-template-columns: repeat(2, 1fr);602 gap: 0.75rem;603}604 605button.success {606 background: var(--accent-emerald);607 color: #030712;608}609button.success:hover {610 box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);611}612 613button.warning {614 background: transparent;615 border: 1px solid var(--accent-amber);616 color: var(--accent-amber);617}618button.warning:hover {619 background: rgba(245, 158, 11, 0.08);620}621 622button.danger {623 background: transparent;624 border: 1px solid var(--accent-rose);625 color: var(--accent-rose);626}627button.danger:hover {628 background: rgba(244, 63, 94, 0.08);629}630 631button.secondary-btn {632 background: rgba(255, 255, 255, 0.05);633 color: white;634 border: 1px solid var(--border-color);635}636button.secondary-btn:hover {637 background: rgba(255, 255, 255, 0.08);638}639 640.supported-list {641 font-size: 0.8rem;642 color: var(--text-secondary);643}644 645/* Analytics Dashboard Layout */646.analytics-metrics {647 display: grid;648 grid-template-columns: repeat(4, 1fr);649 gap: 1.25rem;650 margin-bottom: 2rem;651}652 653.metric-card {654 background: var(--card-bg);655 border: 1px solid var(--border-color);656 border-radius: 1.25rem;657 padding: 1.5rem;658 display: flex;659 align-items: center;660 gap: 1.25rem;661}662 663.metric-icon {664 width: 46px;665 height: 46px;666 border-radius: 12px;667 display: flex;668 align-items: center;669 justify-content: center;670 font-size: 1.5rem;671}672 673.metric-details {674 display: flex;675 flex-direction: column;676}677 678.metric-value {679 font-size: 1.75rem;680 font-weight: 800;681 font-family: var(--font-outfit);682 color: white;683 line-height: 1.2;684}685 686.metric-label {687 font-size: 0.8rem;688 color: var(--text-secondary);689 font-weight: 500;690}691 692.analytics-charts {693 display: grid;694 grid-template-columns: 1fr 1fr;695 gap: 2rem;696 margin-bottom: 2rem;697}698 699/* Zero-Dependency Charts Styling */700.chart-panel {701 display: flex;702 flex-direction: column;703}704 705.bar-chart-container {706 height: 220px;707 display: flex;708 align-items: flex-end;709 justify-content: space-between;710 padding: 1rem 0;711 border-bottom: 1px solid rgba(255, 255, 255, 0.08);712 position: relative;713 gap: 0.5rem;714}715 716.bar-col {717 flex: 1;718 display: flex;719 flex-direction: column;720 align-items: center;721 gap: 0.5rem;722 height: 100%;723 justify-content: flex-end;724}725 726.bar-fill {727 width: 100%;728 background: linear-gradient(to top, rgba(6, 182, 212, 0.1), var(--accent-cyan));729 border-radius: 4px 4px 0 0;730 transition: height 0.5s ease;731 position: relative;732 min-height: 2px;733}734 735.bar-fill:hover {736 background: linear-gradient(to top, rgba(16, 185, 129, 0.1), var(--accent-emerald));737}738 739.bar-tooltip {740 position: absolute;741 top: -24px;742 left: 50%;743 transform: translateX(-50%);744 background: #030712;745 padding: 0.2rem 0.4rem;746 border-radius: 4px;747 font-size: 0.65rem;748 color: white;749 border: 1px solid var(--border-color);750 pointer-events: none;751 opacity: 0;752 transition: opacity 0.2s;753}754 755.bar-fill:hover .bar-tooltip {756 opacity: 1;757}758 759.bar-label {760 font-size: 0.65rem;761 color: var(--text-secondary);762}763 764.pie-chart-list {765 display: flex;766 flex-direction: column;767 gap: 1rem;768 margin-top: 1rem;769}770 771.pie-chart-row {772 display: flex;773 align-items: center;774 justify-content: space-between;775 font-size: 0.85rem;776}777 778.dept-name-wrapper {779 display: flex;780 align-items: center;781 gap: 0.5rem;782}783 784.dept-color-dot {785 width: 10px;786 height: 10px;787 border-radius: 50%;788}789 790.chart-bar-bg {791 flex: 1;792 height: 8px;793 background: rgba(255, 255, 255, 0.04);794 margin: 0 1.5rem;795 border-radius: 4px;796 overflow: hidden;797}798 799.chart-bar-fill {800 height: 100%;801 border-radius: 4px;802 transition: width 0.5s ease;803}804 805/* Animations */806@keyframes textPulse {807 from {808 text-shadow: 0 0 15px rgba(6, 182, 212, 0.3);809 }810 to {811 text-shadow: 0 0 30px rgba(6, 182, 212, 0.7);812 }813}814 815/* Toast announcements / Speech visualizer */816.speech-pulse {817 width: 20px;818 height: 20px;819 background: rgba(6, 182, 212, 0.2);820 border-radius: 50%;821 display: flex;822 align-items: center;823 justify-content: center;824 position: relative;825}826 827.speech-pulse::after {828 content: '';829 width: 100%;830 height: 100%;831 border: 2px solid var(--accent-cyan);832 border-radius: 50%;833 position: absolute;834 animation: wavePulse 1.2s infinite ease-out;835}836 837@keyframes wavePulse {838 0% { transform: scale(1); opacity: 1; }839 100% { transform: scale(2.2); opacity: 0; }840}841 842/* Responsive configurations */843@media (max-width: 1100px) {844 .dashboard-layout, .staff-layout {845 grid-template-columns: 1fr;846 }847 .analytics-metrics {848 grid-template-columns: repeat(2, 1fr);849 }850 .analytics-charts {851 grid-template-columns: 1fr;852 }853}854 855@media (max-width: 600px) {856 header {857 flex-direction: column;858 gap: 1rem;859 padding: 1rem;860 }861 .analytics-metrics {862 grid-template-columns: 1fr;863 }864}865 866 