    @media print {
      body { display: none !important; }
    }
    body {
      background: #f8fafc;
      user-select: none !important;
      -webkit-user-select: none !important;
      -moz-user-select: none !important;
      -ms-user-select: none !important;
    }
    
    @media (min-width: 1024px) {
      .activities-grid {
        grid-template-columns: repeat(3, 1fr) !important;
      }
    }
    
    .plan-badge {
      background: rgba(255,255,255,0.1);
      padding: 8px 16px;
      border-radius: 20px;
      font-size: 0.9rem;
      font-weight: 700;
      border: 1px solid rgba(255,255,255,0.2);
      display: inline-block;
      margin-top: 20px;
      text-decoration: none;
      color: inherit;
    }
    .plan-badge.active { background: #22c55e; border-color: #16a34a; }

    #copilot-wizard-btn {
      background: #3793D1;
      border-color: #2b7fae;
      color: white;
      margin-left: 10px;
      cursor: pointer;
      transition: all 0.3s ease;
    }
    #copilot-wizard-btn:hover {
      background: #2b7fae;
      transform: translateY(-2px);
      box-shadow: 0 4px 12px rgba(55, 147, 209, 0.4);
    }
    
    .status-banner {
      background: #fff3cd;
      color: #856404;
      padding: 15px 20px;
      border-radius: 8px;
      margin-bottom: 30px;
      font-weight: 600;
      display: none;
      align-items: center;
      gap: 10px;
    }
    
    /* Modify activity-card to handle a tag properly */
    a.activity-card {
      text-decoration: none;
      color: inherit;
      display: flex;
      flex-direction: column;
      position: relative; /* required for locked-overlay */
    }
    
    .locked-overlay {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: rgba(255,255,255,0.85);
      backdrop-filter: blur(4px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      opacity: 1;
      z-index: 10;
      border-radius: 16px;
    }
    .activity-card.unlocked .locked-overlay { display: none; }
    
    .lock-icon {
      font-size: 2.5rem;
      color: var(--pat-gray-500);
      margin-bottom: 10px;
    }
    .unlock-btn {
      background: var(--pat-blue);
      color: white;
      padding: 8px 20px;
      border-radius: 20px;
      font-weight: 700;
      font-size: 0.9rem;
      border: none;
      cursor: pointer;
    }
    
    /* loading state */
    .loading-fade {
      opacity: 0;
      transition: opacity 0.25s ease-in-out;
      pointer-events: none;
    }
    .loading-fade.loaded {
      opacity: 1;
      pointer-events: auto;
    }

    /* ============================================
       COPILOT WIZARD & COMPANION STYLES
       ============================================ */
    .copilot-section {
      padding: 60px 0 20px;
    }
    .copilot-card {
      background: linear-gradient(135deg, rgba(13, 30, 54, 0.95) 0%, rgba(8, 17, 32, 0.95) 100%);
      border: 1px solid rgba(96, 165, 250, 0.35);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border-radius: 16px;
      padding: 30px;
      color: #fff;
      box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5), 0 0 20px rgba(55, 147, 209, 0.15);
      position: relative;
      overflow: hidden;
    }
    .copilot-header {
      margin-bottom: 25px;
      border-bottom: 1px solid rgba(55, 147, 209, 0.15);
      padding-bottom: 20px;
    }
    .copilot-title {
      font-size: 1.5rem;
      font-weight: 800;
      color: #fff;
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 8px;
    }
    .copilot-title i {
      color: #60a5fa;
    }
    .copilot-subtitle {
      font-size: 0.9rem;
      color: rgba(255, 255, 255, 0.7);
    }
    
    /* Progress Bar */
    .progress-bar-container {
      background: #1e293b;
      height: 6px;
      border-radius: 3px;
      margin-bottom: 30px;
      position: relative;
      overflow: hidden;
    }
    .progress-bar-fill {
      height: 100%;
      width: 20%;
      background: linear-gradient(90deg, #3793D1, #60a5fa);
      transition: width 0.3s ease;
      box-shadow: 0 0 10px rgba(55, 147, 209, 0.5);
    }
    
    /* Wizard Steps Indicator (Flight Path) */
    .wizard-steps-indicator {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 35px;
      position: relative;
      padding: 0 10px;
    }
    .step-node {
      display: flex;
      flex-direction: column;
      align-items: center;
      position: relative;
      z-index: 5;
      cursor: pointer;
    }
    .step-node-number {
      width: 38px;
      height: 38px;
      border-radius: 50%;
      background: #0f172a;
      border: 2px solid rgba(255, 255, 255, 0.15);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 800;
      font-size: 0.95rem;
      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
    }
    .step-node-label {
      font-size: 0.72rem;
      font-weight: 700;
      color: #fff;
      margin-top: 8px;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      transition: all 0.3s ease;
      white-space: nowrap;
    }
    .step-connector {
      flex: 1;
      height: 3px;
      background: rgba(255, 255, 255, 0.08);
      margin: 0 10px;
      margin-top: -20px; /* Align horizontally with node center */
      transition: all 0.3s ease;
      border-radius: 2px;
    }
    /* Active State */
    .step-node.active .step-node-number {
      background: #1e293b;
      border-color: #60a5fa;
      color: #60a5fa;
      box-shadow: 0 0 15px rgba(96, 165, 250, 0.5);
      transform: scale(1.1);
    }
    .step-node.active .step-node-label {
      color: #60a5fa;
      text-shadow: 0 0 8px rgba(96, 165, 250, 0.3);
    }
    /* Completed State */
    .step-node.completed .step-node-number {
      background: rgba(16, 185, 129, 0.1);
      border-color: #10b981;
      color: #10b981;
      box-shadow: 0 0 15px rgba(16, 185, 129, 0.4);
    }
    .step-node.completed .step-node-label {
      color: #10b981;
    }
    .step-connector.completed {
      background: linear-gradient(90deg, #10b981, #60a5fa);
    }
    @media (max-width: 576px) {
      .step-node-label {
        display: none; /* Hide labels on very small screens to prevent overlap */
      }
      .step-connector {
        margin-top: 0;
      }
    }
    
    /* Wizard Steps */
    .wizard-step {
      display: none;
      animation: fadeIn 0.4s ease;
    }
    .wizard-step.active {
      display: block;
    }
    @keyframes fadeIn {
      from { opacity: 0; transform: translateY(5px); }
      to { opacity: 1; transform: translateY(0); }
    }
    
    .step-question {
      font-size: 1.15rem;
      font-weight: 700;
      margin-bottom: 20px;
      color: #fff;
    }
    
    /* Inputs */
    .copilot-input {
      width: 100%;
      background: #1e293b;
      border: 1px solid rgba(55, 147, 209, 0.3);
      padding: 12px 16px;
      border-radius: 8px;
      color: #fff;
      font-size: 1rem;
      font-family: inherit;
      outline: none;
      transition: all 0.3s ease;
    }
    .copilot-input:focus {
      border-color: #60a5fa;
      box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.25);
    }
    
    /* Date Input WebKit styling for dark theme visibility */
    .copilot-input::-webkit-calendar-picker-indicator {
      filter: invert(1);
      cursor: pointer;
    }
    .copilot-input::-webkit-datetime-edit {
      color: #fff !important;
    }
    .copilot-input::-webkit-datetime-edit-fields-wrapper {
      color: #fff !important;
    }
    .copilot-input::-webkit-datetime-edit-text {
      color: rgba(255, 255, 255, 0.6) !important;
    }
    .copilot-input::-webkit-datetime-edit-month-field,
    .copilot-input::-webkit-datetime-edit-day-field,
    .copilot-input::-webkit-datetime-edit-year-field {
      color: #fff !important;
    }
    
    /* Countdown */
    .countdown-box {
      margin-top: 20px;
      background: rgba(55, 147, 209, 0.1);
      border: 1px dashed rgba(55, 147, 209, 0.3);
      padding: 15px;
      border-radius: 8px;
      text-align: center;
      font-weight: 700;
    }
    .countdown-days {
      font-size: 2rem;
      color: #fbbf24;
      display: block;
      margin-bottom: 5px;
      text-shadow: 0 0 8px rgba(251, 191, 36, 0.4);
    }
    
    /* Checkbox Grid */
    .checkbox-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 15px;
      margin-bottom: 20px;
    }
    .checkbox-card {
      background: rgba(30, 41, 59, 0.65);
      border: 1px solid rgba(255, 255, 255, 0.12);
      border-radius: 10px;
      padding: 18px;
      display: flex;
      align-items: center;
      gap: 12px;
      cursor: pointer;
      transition: all 0.25s ease;
      user-select: none;
      color: #fff;
    }
    .checkbox-card:hover {
      border-color: rgba(96, 165, 250, 0.45);
      background: rgba(30, 41, 59, 0.85);
    }
    .checkbox-card.selected {
      border-color: #60a5fa;
      background: rgba(55, 147, 209, 0.22);
      box-shadow: 0 0 15px rgba(96, 165, 250, 0.25);
    }
    .checkbox-card input[type="checkbox"] {
      width: 18px;
      height: 18px;
      accent-color: #60a5fa;
      cursor: pointer;
    }
    .checkbox-label {
      font-weight: 600;
      font-size: 0.95rem;
      color: #fff;
    }
    
    /* Star Rating */
    .rating-container {
      display: flex;
      flex-direction: column;
      gap: 16px;
    }
    .rating-row {
      display: flex;
      align-items: center;
      justify-content: space-between;
      background: rgba(255, 255, 255, 0.02);
      padding: 16px 24px;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      transition: all 0.25s ease;
    }
    .rating-row:hover {
      background: rgba(255, 255, 255, 0.05);
      border-color: rgba(96, 165, 250, 0.25);
    }
    @media (max-width: 768px) {
      .rating-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
      }
    }
    .rating-module-name {
      font-weight: 700;
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.95);
    }
    .rating-stars-container {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .rating-scale-label {
      font-size: 0.72rem;
      font-weight: 700;
      color: #fff;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      user-select: none;
    }
    .stars-selector {
      display: flex;
      gap: 6px;
    }
    .rating-star {
      font-size: 1.35rem;
      color: rgba(255, 255, 255, 0.15);
      cursor: pointer;
      transition: color 0.15s ease, transform 0.1s ease;
    }
    .rating-star:hover {
      transform: scale(1.2);
    }
    .rating-star.active {
      color: #fbbf24;
      text-shadow: 0 0 8px rgba(251, 191, 36, 0.5);
    }
    
    /* Scores Grid */
    .scores-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
      gap: 15px;
    }
    .score-input-wrapper {
      background: rgba(30, 41, 59, 0.65);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 10px;
      padding: 14px 18px;
      display: flex;
      flex-direction: column;
      gap: 8px;
      transition: all 0.25s ease;
    }
    .score-input-wrapper:focus-within {
      border-color: rgba(96, 165, 250, 0.45);
      box-shadow: 0 0 15px rgba(96, 165, 250, 0.15);
    }
    .score-label {
      font-size: 0.78rem;
      font-weight: 800;
      color: #fff;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }
    .score-input-container {
      display: flex;
      align-items: center;
      position: relative;
    }
    .score-input-container input {
      flex: 1;
      background: rgba(0,0,0,0.2);
      border: 1px solid rgba(55, 147, 209, 0.2);
      border-radius: 6px;
      padding: 8px 12px;
      color: #fff;
      font-family: inherit;
      font-size: 0.95rem;
      outline: none;
      padding-right: 28px;
      transition: all 0.2s ease;
    }
    .score-input-container input:focus {
      border-color: #60a5fa;
    }
    .score-input-container input::placeholder {
      color: rgba(255, 255, 255, 0.45) !important;
    }
    .score-percentage-sign {
      position: absolute;
      right: 12px;
      color: rgba(255,255,255,0.4);
      font-size: 0.9rem;
      font-weight: 700;
    }
    
    /* Wizard Navigation */
    .wizard-footer {
      display: flex;
      justify-content: space-between;
      margin-top: 30px;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
      padding-top: 20px;
    }
    .wizard-btn {
      padding: 10px 24px;
      border-radius: 8px;
      font-weight: 700;
      font-size: 0.9rem;
      cursor: pointer;
      border: none;
      transition: all 0.2s ease;
    }
    .wizard-btn-back {
      background: rgba(255, 255, 255, 0.05);
      color: rgba(255, 255, 255, 0.7);
      border: 1px solid rgba(255, 255, 255, 0.1);
    }
    .wizard-btn-back:hover {
      background: rgba(255, 255, 255, 0.1);
      color: #fff;
    }
    .wizard-btn-next {
      background: #3793D1;
      color: #fff;
      box-shadow: 0 4px 12px rgba(55, 147, 209, 0.3);
    }
    .wizard-btn-next:hover {
      background: #2b7fae;
      transform: translateY(-1px);
    }
    
    /* SVG Sparkle for Gemini */
    .sparkle-icon {
      animation: floatSparkle 3s ease-in-out infinite;
    }
    @keyframes floatSparkle {
      0%, 100% { transform: translateY(0) scale(1); }
      50% { transform: translateY(-2px) scale(1.05); }
    }
    
    /* CoPilot Companion Dashboard */
    .companion-container {
      display: flex;
      flex-direction: column;
      gap: 24px;
      margin-top: 15px;
    }
    
    /* Summary Card with Gradient Border */
    .gradient-border-card {
      position: relative;
      background: linear-gradient(135deg, #0d1e36 0%, #081120 100%) padding-box,
                  linear-gradient(135deg, #3793d1, #60a5fa, #10b981) border-box;
      border: 2px solid transparent;
      border-radius: 16px;
      padding: 24px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 24px;
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.4), 0 0 15px rgba(55, 147, 209, 0.15);
    }
    
    .summary-text-panel {
      flex: 1;
    }
    
    .summary-text-title {
      font-size: 1.15rem;
      font-weight: 800;
      color: #93c5fd;
      margin-bottom: 8px;
    }
    
    .summary-text-content {
      font-size: 0.95rem;
      line-height: 1.6;
      color: rgba(255, 255, 255, 0.9);
      margin: 0;
    }
    
    .instrument-gauges-panel {
      display: flex;
      gap: 16px;
      flex-shrink: 0;
    }
    
    .instrument-gauge {
      background: rgba(0, 0, 0, 0.35);
      border: 1px solid rgba(55, 147, 209, 0.25);
      border-radius: 12px;
      padding: 16px 20px;
      text-align: center;
      min-width: 130px;
      box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.6);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    
    .instrument-gauge-value {
      font-size: 2rem;
      font-weight: 800;
      color: #fbbf24;
      text-shadow: 0 0 10px rgba(251, 191, 36, 0.6);
      line-height: 1.2;
    }
    
    .instrument-gauge-label {
      font-size: 0.72rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.5);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-top: 6px;
    }

    /* Weak Areas Alert Card */
    .copilot-alert-card {
      background: rgba(245, 158, 11, 0.08);
      border: 1px solid rgba(245, 158, 11, 0.3);
      border-radius: 12px;
      padding: 18px 24px;
      display: flex;
      align-items: center;
      gap: 16px;
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    }
    
    .copilot-alert-icon {
      color: #fbbf24;
      font-size: 1.6rem;
      animation: alertPulse 2s infinite ease-in-out;
      flex-shrink: 0;
    }
    
    @keyframes alertPulse {
      0%, 100% { transform: scale(1); opacity: 1; }
      50% { transform: scale(1.1); opacity: 0.7; }
    }
    
    .copilot-alert-content {
      flex: 1;
    }
    
    .copilot-alert-title {
      font-size: 0.95rem;
      font-weight: 800;
      color: #fbbf24;
      margin: 0 0 4px 0;
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
    
    .copilot-alert-message {
      font-size: 0.9rem;
      color: rgba(255, 255, 255, 0.85);
      margin: 0;
      line-height: 1.4;
    }
    
    .copilot-alert-message strong {
      color: #fff;
    }

    /* Weekly Accordion Styles */
    .accordion-container {
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-top: 10px;
    }
    
    .accordion-item {
      background: rgba(255, 255, 255, 0.02);
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 12px;
      overflow: hidden;
      transition: all 0.25s ease;
    }
    
    .accordion-item:hover {
      border-color: rgba(55, 147, 209, 0.3);
      background: rgba(255, 255, 255, 0.03);
    }
    
    .accordion-header {
      padding: 18px 24px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      cursor: pointer;
      user-select: none;
      gap: 15px;
    }
    
    .accordion-header-left {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }
    
    .accordion-title {
      font-size: 1.05rem;
      font-weight: 700;
      color: #fff;
      display: flex;
      align-items: center;
      gap: 10px;
    }
    
    .accordion-subtitle {
      font-size: 0.82rem;
      color: rgba(255, 255, 255, 0.55);
    }
    
    .accordion-subtitle strong {
      color: #fbbf24;
    }
    
    .accordion-header-right {
      display: flex;
      align-items: center;
      gap: 16px;
    }
    
    .accordion-progress-wrapper {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 0.8rem;
      color: rgba(255, 255, 255, 0.6);
      font-weight: 700;
    }
    
    .accordion-progress-bg {
      width: 80px;
      height: 6px;
      background: rgba(255, 255, 255, 0.08);
      border-radius: 3px;
      overflow: hidden;
      display: inline-block;
    }
    
    .accordion-progress-fill {
      height: 100%;
      background: #10b981;
      width: 0%;
      transition: width 0.3s ease;
      box-shadow: 0 0 8px rgba(16, 185, 129, 0.4);
    }
    
    .accordion-chevron {
      font-size: 1rem;
      color: rgba(255, 255, 255, 0.4);
      transition: transform 0.25s ease;
    }
    
    .accordion-item.active .accordion-chevron {
      transform: rotate(180deg);
      color: #3793D1;
    }
    
    .accordion-item.active {
      border-color: rgba(55, 147, 209, 0.3);
      box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    }
    
    .accordion-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
      background: rgba(0, 0, 0, 0.15);
      border-top: 1px solid rgba(255, 255, 255, 0.02);
    }
    
    .accordion-content-inner {
      padding: 20px 24px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }
    
    /* Day Row Styles */
    .day-row {
      background: rgba(255, 255, 255, 0.01);
      border: 1px solid rgba(255, 255, 255, 0.04);
      border-radius: 10px;
      padding: 16px 20px;
      display: grid;
      grid-template-columns: 140px 180px 1fr 100px;
      align-items: center;
      gap: 20px;
      transition: all 0.2s ease;
    }
    
    .day-row:hover {
      background: rgba(255, 255, 255, 0.03);
      border-color: rgba(55, 147, 209, 0.15);
    }
    
    .day-row-name {
      font-size: 0.95rem;
      font-weight: 800;
      color: #93c5fd;
    }
    
    .day-row-modules {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    
    .module-mini-badge {
      font-size: 0.7rem;
      font-weight: 700;
      padding: 2px 6px;
      border-radius: 4px;
      text-transform: uppercase;
      letter-spacing: 0.03em;
      background: rgba(96, 165, 250, 0.1);
      color: #60a5fa;
      border: 1px solid rgba(96, 165, 250, 0.15);
    }
    
    .day-row-checklist {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }
    
    .day-task-checkbox-label {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      cursor: pointer;
      user-select: none;
      font-size: 0.88rem;
      color: rgba(255, 255, 255, 0.85);
      line-height: 1.4;
    }
    
    .day-task-checkbox-label input[type="checkbox"] {
      width: 16px;
      height: 16px;
      accent-color: #10b981;
      margin-top: 2px;
      cursor: pointer;
      flex-shrink: 0;
    }
    
    .day-task-text {
      transition: all 0.2s ease;
    }
    
    .day-task-checkbox-label input[type="checkbox"]:checked + .day-task-text {
      text-decoration: line-through;
      color: rgba(255, 255, 255, 0.4);
    }
    
    .day-row-duration {
      text-align: right;
    }
    
    .duration-badge {
      font-size: 0.75rem;
      background: rgba(55, 147, 209, 0.12);
      color: #60a5fa;
      padding: 4px 10px;
      border-radius: 6px;
      font-weight: 700;
      letter-spacing: 0.02em;
      border: 1px solid rgba(55, 147, 209, 0.2);
      display: inline-block;
    }
    
    /* Bottom Tips List */
    .tips-list-container {
      margin-top: 10px;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    
    .styled-tip-item {
      background: rgba(251, 191, 36, 0.03);
      border: 1px solid rgba(251, 191, 36, 0.08);
      border-radius: 10px;
      padding: 14px 18px;
      display: flex;
      gap: 12px;
      align-items: flex-start;
      transition: border-color 0.2s ease;
    }
    
    .styled-tip-item:hover {
      border-color: rgba(251, 191, 36, 0.2);
    }
    
    .styled-tip-item i {
      color: #fbbf24;
      font-size: 1.15rem;
      margin-top: 2px;
      text-shadow: 0 0 5px rgba(251, 191, 36, 0.3);
    }
    
    .styled-tip-text {
      font-size: 0.88rem;
      color: rgba(255, 255, 255, 0.85);
      line-height: 1.5;
    }

    /* Responsiveness for Accordion and Day Row */
    @media (max-width: 992px) {
      .day-row {
        grid-template-columns: 120px 150px 1fr 90px;
        gap: 12px;
      }
    }
    
    @media (max-width: 768px) {
      .gradient-border-card {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
      }
      .instrument-gauges-panel {
        justify-content: center;
      }
      .day-row {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 14px;
      }
      .day-row-duration {
        text-align: left;
        margin-top: 4px;
      }
    }
    
    /* Loading Spinner Overlay */
    .copilot-toggle-btn:hover { background: rgba(255,255,255,0.15) !important; color: #fff !important; }
    #copilot-card.copilot-minimised #copilot-wizard > *:not(.copilot-header),
    #copilot-card.copilot-minimised #copilot-companion > *:not(.copilot-header) { display: none !important; }

    .copilot-loading-overlay {
      position: absolute;
      top: 0; left: 0; right: 0; bottom: 0;
      background: rgba(8, 17, 32, 0.9);
      backdrop-filter: blur(6px);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
      z-index: 50;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s ease;
    }
    .copilot-loading-overlay.active {
      opacity: 1;
      pointer-events: auto;
    }
    .copilot-spinner {
      width: 50px;
      height: 50px;
      border: 4px solid rgba(55, 147, 209, 0.15);
      border-top-color: #3793D1;
      border-radius: 50%;
      animation: copilotSpin 0.8s linear infinite;
      box-shadow: 0 0 15px rgba(55, 147, 209, 0.25);
    }
    @keyframes copilotSpin {
      to { transform: rotate(360deg); }
    }

    /* ============================================
       COPILOT UPGRADE — NEW FEATURE STYLES
       ============================================ */

    /* 1. Exam Readiness Score™ Ring */
    .readiness-ring-container {
      display: flex;
      align-items: center;
      gap: 28px;
      background: linear-gradient(135deg, rgba(13, 30, 54, 0.95) 0%, rgba(8, 17, 32, 0.85) 100%);
      border: 1px solid rgba(96, 165, 250, 0.2);
      border-radius: 16px;
      padding: 28px;
      box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
    }
    .readiness-ring-svg-wrap {
      position: relative;
      width: 150px;
      height: 150px;
      flex-shrink: 0;
    }
    .readiness-ring-svg-wrap svg {
      width: 100%;
      height: 100%;
      transform: rotate(-90deg);
    }
    .readiness-ring-svg-wrap .ring-bg {
      fill: none;
      stroke: rgba(255, 255, 255, 0.06);
      stroke-width: 10;
    }
    .readiness-ring-svg-wrap .ring-progress {
      fill: none;
      stroke-width: 10;
      stroke-linecap: round;
      transition: stroke-dasharray 1.2s cubic-bezier(0.4, 0, 0.2, 1), stroke 0.4s ease;
    }
    .readiness-ring-label {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }
    .readiness-ring-percent {
      font-family: 'Montserrat', sans-serif;
      font-size: 2.4rem;
      font-weight: 900;
      line-height: 1;
      color: #fff;
    }
    .readiness-ring-status {
      font-size: 0.72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-top: 4px;
    }
    .readiness-details {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .readiness-details-title {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.1rem;
      font-weight: 800;
      color: #fff;
      margin-bottom: 4px;
    }
    .readiness-metric-row {
      display: flex;
      align-items: center;
      gap: 12px;
    }
    .readiness-metric-icon {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 0.85rem;
      flex-shrink: 0;
    }
    .readiness-metric-info {
      flex: 1;
    }
    .readiness-metric-name {
      font-size: 0.78rem;
      font-weight: 700;
      color: rgba(255, 255, 255, 0.6);
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
    .readiness-metric-bar-bg {
      height: 5px;
      background: rgba(255, 255, 255, 0.06);
      border-radius: 3px;
      margin-top: 4px;
      overflow: hidden;
    }
    .readiness-metric-bar-fill {
      height: 100%;
      border-radius: 3px;
      transition: width 0.8s ease;
    }
    .readiness-metric-val {
      font-size: 0.85rem;
      font-weight: 800;
      color: #fff;
      min-width: 36px;
      text-align: right;
    }

    /* 2. Flight Clearance Banner */
    .flight-clearance-banner {
      background: linear-gradient(135deg, rgba(251, 191, 36, 0.15) 0%, rgba(245, 158, 11, 0.08) 100%);
      border: 1px solid rgba(251, 191, 36, 0.4);
      border-radius: 14px;
      padding: 20px 28px;
      text-align: center;
      position: relative;
      overflow: hidden;
      animation: clearanceGlow 3s ease-in-out infinite;
    }
    @keyframes clearanceGlow {
      0%, 100% { box-shadow: 0 0 20px rgba(251, 191, 36, 0.15); }
      50% { box-shadow: 0 0 35px rgba(251, 191, 36, 0.3), 0 0 60px rgba(251, 191, 36, 0.1); }
    }
    .flight-clearance-text {
      font-family: 'Montserrat', sans-serif;
      font-size: 1.15rem;
      font-weight: 800;
      color: #fbbf24;
      text-shadow: 0 0 12px rgba(251, 191, 36, 0.4);
      letter-spacing: 0.04em;
    }
    .flight-clearance-sub {
      font-size: 0.82rem;
      color: rgba(255, 255, 255, 0.6);
      margin-top: 6px;
      font-weight: 600;
    }

    /* 3. Daily Mission Card */
    .daily-mission-card {
      background: linear-gradient(135deg, rgba(55, 147, 209, 0.08) 0%, rgba(96, 165, 250, 0.04) 100%);
      border: 1px solid rgba(55, 147, 209, 0.25);
      border-radius: 14px;
      padding: 22px 26px;
      display: flex;
      align-items: center;
      gap: 18px;
      transition: border-color 0.3s ease;
    }
    .daily-mission-card:hover {
      border-color: rgba(55, 147, 209, 0.45);
    }
    .daily-mission-icon {
      width: 52px;
      height: 52px;
      border-radius: 14px;
      background: rgba(55, 147, 209, 0.12);
      border: 1px solid rgba(55, 147, 209, 0.2);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      color: #60a5fa;
      flex-shrink: 0;
    }
    .daily-mission-content {
      flex: 1;
    }
    .daily-mission-label {
      font-size: 0.72rem;
      font-weight: 800;
      color: #60a5fa;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      margin-bottom: 4px;
    }
    .daily-mission-text {
      font-size: 0.92rem;
      color: rgba(255, 255, 255, 0.9);
      font-weight: 600;
      line-height: 1.5;
    }
    .daily-mission-status {
      flex-shrink: 0;
      padding: 6px 14px;
      border-radius: 20px;
      font-size: 0.72rem;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: 0.05em;
    }
    .daily-mission-status.pending {
      background: rgba(251, 191, 36, 0.1);
      color: #fbbf24;
      border: 1px solid rgba(251, 191, 36, 0.25);
    }
    .daily-mission-status.complete {
      background: rgba(16, 185, 129, 0.12);
      color: #10b981;
      border: 1px solid rgba(16, 185, 129, 0.3);
    }

    /* 4. Study Style Selector */
    .study-style-container {
      border: 1px solid rgba(255, 255, 255, 0.06);
      border-radius: 14px;
      padding: 22px 26px;
      background: rgba(255, 255, 255, 0.015);
    }
    .study-style-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 14px;
    }
    .study-style-title {
      font-size: 0.95rem;
      font-weight: 800;
      color: #93c5fd;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .study-style-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
    }
    .study-style-option {
      background: rgba(30, 41, 59, 0.5);
      border: 2px solid rgba(255, 255, 255, 0.08);
      border-radius: 12px;
      padding: 16px 14px;
      text-align: center;
      cursor: pointer;
      transition: all 0.25s ease;
      user-select: none;
    }
    .study-style-option:hover {
      border-color: rgba(96, 165, 250, 0.35);
      background: rgba(30, 41, 59, 0.7);
    }
    .study-style-option.active {
      border-color: #3793D1;
      background: rgba(55, 147, 209, 0.12);
      box-shadow: 0 0 15px rgba(55, 147, 209, 0.2);
    }
    .study-style-emoji {
      font-size: 1.6rem;
      margin-bottom: 6px;
      display: block;
    }
    .study-style-name {
      font-size: 0.85rem;
      font-weight: 800;
      color: #fff;
      margin-bottom: 2px;
    }
    .study-style-hours {
      font-size: 0.72rem;
      color: rgba(255, 255, 255, 0.5);
      font-weight: 600;
    }

    /* 5. Radar Chart */
    .radar-chart-container {
      background: rgba(0, 0, 0, 0.2);
      border: 1px solid rgba(55, 147, 209, 0.15);
      border-radius: 14px;
      padding: 22px;
      position: relative;
    }
    .radar-chart-title {
      font-size: 0.95rem;
      font-weight: 800;
      color: #93c5fd;
      margin-bottom: 14px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .radar-chart-canvas-wrap {
      max-width: 400px;
      margin: 0 auto;
    }

    /* 6. Rebalance Toast */
    .rebalance-toast {
      background: rgba(16, 185, 129, 0.08);
      border: 1px solid rgba(16, 185, 129, 0.25);
      border-radius: 10px;
      padding: 12px 18px;
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 0.85rem;
      color: rgba(255, 255, 255, 0.85);
      font-weight: 600;
      animation: toastSlideIn 0.4s ease;
    }
    .rebalance-toast i {
      color: #10b981;
      font-size: 1rem;
    }
    @keyframes toastSlideIn {
      from { opacity: 0; transform: translateY(-8px); }
      to { opacity: 1; transform: translateY(0); }
    }

    /* Responsive overrides for new features */
    @media (max-width: 768px) {
      .readiness-ring-container {
        flex-direction: column;
        text-align: center;
        gap: 20px;
      }
      .readiness-ring-svg-wrap {
        width: 130px;
        height: 130px;
      }
      .readiness-ring-percent {
        font-size: 2rem;
      }
      .study-style-grid {
        grid-template-columns: 1fr;
      }
      .daily-mission-card {
        flex-direction: column;
        text-align: center;
        gap: 12px;
      }
      .daily-mission-status {
        align-self: center;
      }
    }

    @keyframes pulse-card {
      0% {
        transform: translateY(-4px) scale(1);
        box-shadow: 0 0 0 0 rgba(55, 147, 209, 0.7);
        border-color: var(--pat-blue, #3793D1);
      }
      50% {
        transform: translateY(-8px) scale(1.03);
        box-shadow: 0 12px 40px rgba(55, 147, 209, 0.6), 0 0 0 10px rgba(55, 147, 209, 0);
        border-color: var(--pat-blue, #3793D1);
      }
      100% {
        transform: translateY(-4px) scale(1);
        box-shadow: var(--pat-shadow-lg);
        border-color: rgba(55, 147, 209, 0.2);
      }
    }
    .pulse-highlight {
      animation: pulse-card 1.5s ease-in-out 3;
      z-index: 100;
    }

    /* Test Card Score & History */
    .activity-card-score {
      display: none !important;
    }
    .activity-card-score-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
    }
    .activity-card-score-value {
      font-size: 1.4rem;
      font-weight: 800;
      color: #fbbf24;
      text-shadow: 0 0 8px rgba(251, 191, 36, 0.3);
      line-height: 1;
    }
    .activity-card-score-value.no-score {
      font-size: 0.85rem;
      font-weight: 600;
      color: rgba(255,255,255,0.35);
    }
    .activity-card-score-date {
      font-size: 0.72rem;
      font-weight: 600;
      color: rgba(255,255,255,0.4);
      text-transform: uppercase;
      letter-spacing: 0.04em;
    }
    .activity-card-history {
      display: flex;
      gap: 4px;
      align-items: flex-end;
      height: 24px;
    }
    .activity-card-history-bar {
      width: 6px;
      border-radius: 2px;
      transition: height 0.3s ease;
    }
    .activity-card-inprogress {
      position: absolute;
      top: 14px;
      right: 14px;
      z-index: 11;
      background: rgba(251, 191, 36, 0.9);
      color: #0c1c30;
      font-size: 0.65rem;
      font-weight: 800;
      padding: 3px 8px;
      border-radius: 6px;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      display: none;
      animation: badgePulse 2s infinite ease-in-out;
    }
    .activity-card-inprogress.visible {
      display: block;
    }
    @keyframes badgePulse {
      0%, 100% { opacity: 1; }
      50% { opacity: 0.7; }
    }
    .activity-card.attempted .activity-card-score {
      display: flex;
    }

    /* Wide Personality Card Layout Styles */
    @media (min-width: 1024px) {
      .activity-card.personality-card-wide {
        grid-column: span 3 !important;
        display: grid !important;
        grid-template-columns: 320px 1fr;
        gap: 40px;
        align-items: start;
        text-align: left;
      }
      
      .personality-guide-col {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 24px;
        border-left: 1px solid rgba(0, 0, 0, 0.08);
        padding-left: 40px;
        height: 100%;
        text-align: left;
      }
    }

    .personality-left-col {
      display: flex;
      flex-direction: column;
      height: 100%;
      position: relative;
      text-align: left;
    }

    .personality-guide-col {
      display: flex;
      flex-direction: column;
      gap: 16px;
      text-align: left;
    }

    .guide-info-section h4 {
      font-size: 0.95rem;
      color: var(--pat-blue, #3793D1);
      margin-top: 0;
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.5px;
    }

    .guide-info-section p, .guide-info-section li {
      font-size: 0.88rem;
      color: var(--pat-gray-700, #4A5568);
      line-height: 1.5;
    }

    .guide-info-section ul {
      padding-left: 20px;
      margin: 0;
    }

    .guide-info-section li {
      margin-bottom: 6px;
    }
