         * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
         }

         body {
            font-family:
               -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
               Ubuntu, Cantarell, sans-serif;
            line-height: 1.6;
            color: #333;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 20px;
         }

         .container {
            max-width: 900px;
            margin: 0 auto;
            background: white;
            border-radius: 12px;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
            overflow: hidden;
         }

         .header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 40px;
            text-align: center;
         }

         .header h1 {
            font-size: 2em;
            margin-bottom: 10px;
         }

         .header p {
            font-size: 1.1em;
            opacity: 0.95;
         }

         .content {
            padding: 40px;
         }

         .section {
            margin-bottom: 30px;
         }

         .section h2 {
            color: #667eea;
            margin-bottom: 20px;
            font-size: 1.5em;
            border-bottom: 2px solid #e0e0e0;
            padding-bottom: 10px;
         }

         .info-card {
            background: #f8f9fa;
            border-radius: 8px;
            padding: 25px;
            margin-bottom: 20px;
            border: 1px solid #e0e0e0;
         }

         .appointment-card {
            background: #f8f9fa;
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            padding: 25px;
            margin-bottom: 20px;
            position: relative;
         }

         .appointment-card h3 {
            color: #667eea;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            gap: 10px;
         }

         .appointment-card.followup-card {
            border-color: #c3e6cb;
            background: #f8fff9;
         }

         .appointment-card.followup-card h3 {
            color: #28a745;
         }

         .appointment-badge {
            font-size: 0.65em;
            padding: 4px 12px;
            border-radius: 12px;
            font-weight: 600;
            text-transform: uppercase;
         }

         .badge-primary-type {
            background: #667eea;
            color: white;
         }

         .badge-followup-type {
            background: #28a745;
            color: white;
         }

         .info-row {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 12px;
            padding-bottom: 12px;
            border-bottom: 1px solid #e0e0e0;
         }

         .info-row:last-child {
            margin-bottom: 0;
            padding-bottom: 0;
            border-bottom: none;
         }

         .info-label {
            font-weight: 600;
            color: #666;
            min-width: 120px;
         }

         .info-value {
            color: #333;
            font-size: 1.05em;
            text-align: right;
         }

         .btn {
            display: inline-block;
            padding: 12px 24px;
            border: none;
            border-radius: 6px;
            font-size: 15px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s;
            text-decoration: none;
            text-align: center;
         }

         .btn-primary {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
         }

         .btn-primary:hover:not(:disabled) {
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
         }

         .btn-secondary {
            background: #6c757d;
            color: white;
         }

         .btn-secondary:hover:not(:disabled) {
            background: #5a6268;
         }

         .btn-success {
            background: #28a745;
            color: white;
         }

         .btn-success:hover:not(:disabled) {
            background: #218838;
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
         }

         .btn-danger {
            background: #dc3545;
            color: white;
         }

         .btn-danger:hover:not(:disabled) {
            background: #c82333;
            transform: translateY(-2px);
            box-shadow: 0 6px 20px rgba(220, 53, 69, 0.4);
         }

         .btn:disabled {
            opacity: 0.6;
            cursor: not-allowed;
         }

         .btn-group {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-top: 15px;
         }

         .alert {
            padding: 15px 20px;
            border-radius: 6px;
            margin-bottom: 20px;
            font-weight: 500;
         }

         .alert-success {
            background: #d4edda;
            border: 1px solid #c3e6cb;
            color: #155724;
         }

         .alert-error {
            background: #f8d7da;
            border: 1px solid #f5c6cb;
            color: #721c24;
         }

         .alert-info {
            background: #d1ecf1;
            border: 1px solid #bee5eb;
            color: #0c5460;
         }

         .alert-warning {
            background: #fff3cd;
            border: 1px solid #ffeaa7;
            color: #856404;
         }

         .loading {
            text-align: center;
            padding: 40px;
            color: #667eea;
         }

         .loading-spinner {
            display: inline-block;
            width: 40px;
            height: 40px;
            border: 4px solid #e0e0e0;
            border-top-color: #667eea;
            border-radius: 50%;
            animation: spin 1s linear infinite;
         }

         @keyframes spin {
            to {
               transform: rotate(360deg);
            }
         }

         .timeslots-container {
            display: grid;
            gap: 15px;
            margin-top: 15px;
         }

         .timeslot {
            border: 2px solid #e0e0e0;
            border-radius: 8px;
            padding: 20px;
            cursor: pointer;
            transition: all 0.3s;
            background: #f9f9f9;
         }

         .timeslot:hover {
            border-color: #667eea;
            background: #f5f7ff;
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.15);
         }

         .timeslot.selected {
            border-color: #667eea;
            background: #f5f7ff;
            box-shadow: 0 4px 12px rgba(102, 126, 234, 0.2);
         }

         .timeslot.followup-slot {
            border-color: #d4edda;
            background: #f8fff9;
         }

         .timeslot.followup-slot:hover {
            border-color: #28a745;
            background: #e7f7ea;
         }

         .timeslot.followup-slot.selected {
            border-color: #28a745;
            background: #e7f7ea;
            box-shadow: 0 4px 12px rgba(40, 167, 69, 0.2);
         }

         .timeslot input[type="radio"] {
            display: none;
         }

         .timeslot-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
         }

         .timeslot-date {
            font-size: 1.1em;
            font-weight: 600;
            color: #667eea;
         }

         .timeslot.followup-slot .timeslot-date {
            color: #28a745;
         }

         .timeslot-type-badge {
            font-size: 0.75em;
            padding: 3px 10px;
            border-radius: 10px;
            font-weight: 600;
            text-transform: uppercase;
         }

         .badge-primary-slot {
            background: #667eea;
            color: white;
         }

         .badge-followup-slot {
            background: #28a745;
            color: white;
         }

         .timeslot-time {
            font-size: 0.95em;
            color: #666;
            margin-bottom: 5px;
         }

         .timeslot-location {
            font-size: 0.9em;
            color: #888;
         }

         .timeslot-days-after {
            font-size: 0.85em;
            color: #28a745;
            font-weight: 600;
            margin-top: 5px;
         }

         .modal {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1000;
            align-items: center;
            justify-content: center;
         }

         .modal.active {
            display: flex;
         }

         .modal-content {
            background: white;
            border-radius: 12px;
            padding: 0;
            max-width: 600px;
            width: 90%;
            max-height: 90vh;
            display: flex;
            flex-direction: column;
            position: relative;
         }

         .modal-close {
            position: absolute;
            top: 15px;
            right: 15px;
            background: none;
            border: none;
            font-size: 28px;
            color: #6c757d;
            cursor: pointer;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 50%;
            transition: all 0.2s;
            z-index: 1;
         }

         .modal-close:hover {
            background: #f0f0f0;
            color: #333;
         }

         .modal-header {
            padding: 30px 30px 20px 30px;
            border-bottom: 1px solid #e0e0e0;
         }

         .modal-header h3 {
            color: #667eea;
            font-size: 1.5em;
            padding-right: 40px;
         }

         .modal-body {
            padding: 20px 30px;
            overflow-y: auto;
            flex: 1;
         }

         .modal-footer {
            display: flex;
            gap: 10px;
            justify-content: flex-end;
            padding: 20px 30px;
            border-top: 1px solid #e0e0e0;
            background: #f8f9fa;
         }

         .footer {
            background: #f8f9fa;
            padding: 20px 40px;
            text-align: center;
            color: #6c757d;
            font-size: 0.9em;
            border-top: 1px solid #e0e0e0;
         }

         .footer a {
            color: #667eea;
            text-decoration: none;
         }

         .footer a:hover {
            text-decoration: underline;
         }

         .token-input-container {
            background: #f8f9fa;
            padding: 30px;
            border-radius: 8px;
            text-align: center;
         }

         .token-input-container input {
            width: 100%;
            padding: 12px;
            border: 2px solid #e0e0e0;
            border-radius: 6px;
            font-size: 16px;
            margin-bottom: 15px;
         }

         .token-input-container input:focus {
            outline: none;
            border-color: #667eea;
         }

         .info-box {
            background: #e7f3ff;
            border-left: 4px solid #667eea;
            padding: 15px;
            margin: 20px 0;
            border-radius: 4px;
         }

         .info-box h4 {
            color: #667eea;
            margin-bottom: 8px;
         }

         .info-box p {
            color: #555;
            margin: 5px 0;
         }

         .info-box.followup-info {
            background: #f0f9f4;
            border-left-color: #28a745;
         }

         .info-box.followup-info h4 {
            color: #28a745;
         }

         @media (max-width: 600px) {
            body {
               padding: 10px;
            }

            .header {
               padding: 30px 20px;
            }

            .header h1 {
               font-size: 1.5em;
            }

            .content {
               padding: 20px;
            }

            .btn-group {
               flex-direction: column;
            }

            .btn {
               width: 100%;
            }

            .info-row {
               flex-direction: column;
               align-items: flex-start;
            }

            .info-value {
               text-align: left;
               margin-top: 5px;
            }
         }
