/* ═══════════════════════════════════════════════════════════
   CHARACTER COUNTER - Tool Styles
   ChrysoKit · v20260426b
   Full light + dark mode via [data-theme] on <html>
═══════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────
   LIGHT THEME (default)
───────────────────────────────────────── */
:root,
[data-theme="light"] {
  --ck-bg:              #f5f0e8;
  --ck-surface:         #ffffff;
  --ck-surface-alt:     #f9f6f1;
  --ck-surface-hover:   #f0ebe0;
  --ck-border:          #e2d9cc;
  --ck-text:            #1a1410;
  --ck-text-muted:      #6b6156;
  --ck-text-faint:      #b5a898;
  --ck-accent:          #D4A373;
  --ck-accent-hover:    #c4936a;
  --ck-accent-subtle:   rgba(212,163,115,0.12);
  --ck-accent-glow:     rgba(212,163,115,0.25);
  --ck-accent-text:     #2d1a0a;
  --ck-danger:          #c0392b;
  --ck-danger-bg:       rgba(192,57,43,0.08);
  --ck-warning:         #b7791f;
  --ck-success:         #1a7a4a;
  --ck-success-bg:      rgba(26,122,74,0.09);
  --ck-shadow-sm:       0 1px 3px rgba(0,0,0,0.07), 0 1px 2px rgba(0,0,0,0.04);
  --ck-shadow-md:       0 4px 14px rgba(0,0,0,0.09), 0 2px 4px rgba(0,0,0,0.05);
  --ck-shadow-accent:   0 4px 16px rgba(212,163,115,0.28);
  --ck-radius-sm:       7px;
  --ck-radius-md:       12px;
  --ck-transition:      0.18s ease;
}

/* ─────────────────────────────────────────
   DARK THEME
───────────────────────────────────────── */
[data-theme="dark"] {
  --ck-bg:              #0d1117;
  --ck-surface:         #161b22;
  --ck-surface-alt:     #1c2230;
  --ck-surface-hover:   #1f2838;
  --ck-border:          #2d3340;
  --ck-text:            #e6edf3;
  --ck-text-muted:      #8b949e;
  --ck-text-faint:      #444d58;
  --ck-accent:          #D4A373;
  --ck-accent-hover:    #c4936a;
  --ck-accent-subtle:   rgba(212,163,115,0.10);
  --ck-accent-glow:     rgba(212,163,115,0.20);
  --ck-accent-text:     #1a0e00;
  --ck-danger:          #f85149;
  --ck-danger-bg:       rgba(248,81,73,0.10);
  --ck-warning:         #e3b341;
  --ck-success:         #3fb950;
  --ck-success-bg:      rgba(63,185,80,0.10);
  --ck-shadow-sm:       0 1px 3px rgba(0,0,0,0.40);
  --ck-shadow-md:       0 4px 14px rgba(0,0,0,0.55);
  --ck-shadow-accent:   0 4px 20px rgba(212,163,115,0.18);
  --ck-radius-sm:       7px;
  --ck-radius-md:       12px;
  --ck-transition:      0.18s ease;
}

/* ─────────────────────────────────────────
   LIMIT PRESET BAR
───────────────────────────────────────── */
.cc-limit-bar {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: 0.625rem 1rem;
  background: var(--ck-surface);
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius-md);
  box-shadow: var(--ck-shadow-sm);
}

.cc-limit-bar label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--ck-text-muted);
  white-space: nowrap;
  letter-spacing: 0.015em;
}

.cc-limit-select,
.cc-limit-custom {
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 500;
  padding: 0.3rem 0.65rem;
  border-radius: var(--ck-radius-sm);
  border: 1.5px solid var(--ck-border);
  background: var(--ck-surface-alt);
  color: var(--ck-text);
  cursor: pointer;
  outline: none;
  transition: border-color var(--ck-transition), box-shadow var(--ck-transition),
              background var(--ck-transition);
}

.cc-limit-select:hover,
.cc-limit-custom:hover {
  border-color: var(--ck-accent);
  background: var(--ck-surface);
}

.cc-limit-select:focus,
.cc-limit-custom:focus {
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 3px var(--ck-accent-glow);
}

.cc-limit-custom {
  width: 105px;
}

/* ─────────────────────────────────────────
   TEXTAREA
───────────────────────────────────────── */
.cc-textarea-wrap {
  position: relative;
}

.cc-textarea {
  width: 100%;
  min-height: 230px;
  resize: vertical;
  font-family: inherit;
  font-size: 0.9375rem;
  line-height: 1.7;
  padding: 1rem 1.125rem;
  border-radius: var(--ck-radius-md);
  border: 1.5px solid var(--ck-border);
  background: var(--ck-surface);
  color: var(--ck-text);
  box-sizing: border-box;
  outline: none;
  box-shadow: var(--ck-shadow-sm);
  transition: border-color var(--ck-transition), box-shadow var(--ck-transition);
}

.cc-textarea::placeholder { color: var(--ck-text-faint); }

.cc-textarea:hover { border-color: var(--ck-accent); }

.cc-textarea:focus {
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 3px var(--ck-accent-glow), var(--ck-shadow-sm);
}

.cc-textarea.over-limit {
  border-color: var(--ck-danger);
  box-shadow: 0 0 0 3px var(--ck-danger-bg);
}

/* ─────────────────────────────────────────
   PROGRESS BAR
───────────────────────────────────────── */
.cc-progress-wrap {
  margin-top: 0.5rem;
  height: 5px;
  background: var(--ck-surface-alt);
  border: 1px solid var(--ck-border);
  border-radius: 99px;
  overflow: hidden;
}

.cc-progress-bar {
  height: 100%;
  border-radius: 99px;
  background: var(--ck-accent);
  transition: width 0.24s cubic-bezier(.4,0,.2,1), background 0.22s ease;
}

.cc-progress-bar.warning { background: var(--ck-warning); }
.cc-progress-bar.danger  { background: var(--ck-danger); }

/* ─────────────────────────────────────────
   INLINE COUNT
───────────────────────────────────────── */
.cc-inline-count {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.4rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--ck-text-muted);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
  transition: color var(--ck-transition);
}

.cc-inline-count.over {
  color: var(--ck-danger);
  font-weight: 700;
}

/* ─────────────────────────────────────────
   STATS GRID
───────────────────────────────────────── */
.cc-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.cc-stat-card {
  position: relative;
  overflow: hidden;
  background: var(--ck-surface);
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius-md);
  padding: 1rem 1.125rem 0.875rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  cursor: default;
  box-shadow: var(--ck-shadow-sm);
  transition: border-color var(--ck-transition), box-shadow var(--ck-transition),
              transform var(--ck-transition), background var(--ck-transition);
}

.cc-stat-card::after {
  content: '';
  position: absolute;
  inset: 0 0 auto 0;
  height: 2.5px;
  background: linear-gradient(90deg, var(--ck-accent), var(--ck-accent-hover));
  opacity: 0;
  transition: opacity var(--ck-transition);
  border-radius: var(--ck-radius-md) var(--ck-radius-md) 0 0;
}

.cc-stat-card:hover {
  border-color: var(--ck-accent);
  box-shadow: var(--ck-shadow-md), 0 0 0 1px var(--ck-accent-subtle);
  transform: translateY(-2px);
  background: var(--ck-surface-alt);
}

.cc-stat-card:hover::after { opacity: 1; }

.cc-stat-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ck-text-muted);
}

.cc-stat-value {
  font-size: 1.875rem;
  font-weight: 800;
  color: var(--ck-accent);
  line-height: 1;
  font-variant-numeric: tabular-nums;
  margin-top: 0.25rem;
  letter-spacing: -0.02em;
}

.cc-stat-sub {
  font-size: 0.7rem;
  color: var(--ck-text-faint);
  margin-top: 0.2rem;
}

/* ─────────────────────────────────────────
   PLATFORM LIMITS
───────────────────────────────────────── */
.cc-platforms {
  margin-top: 1.75rem;
  background: var(--ck-surface);
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius-md);
  padding: 1rem 1.125rem;
  box-shadow: var(--ck-shadow-sm);
}

.cc-platforms-title {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ck-text-muted);
  margin-bottom: 0.875rem;
}

.cc-platform-list {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.cc-platform-row {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.45rem 0.5rem;
  border-radius: var(--ck-radius-sm);
  transition: background var(--ck-transition);
}

.cc-platform-row:hover {
  background: var(--ck-surface-hover);
}

.cc-platform-name {
  font-size: 0.8125rem;
  font-weight: 600;
  width: 138px;
  flex-shrink: 0;
  color: var(--ck-text);
}

.cc-platform-bar-wrap {
  flex: 1;
  height: 6px;
  background: var(--ck-surface-alt);
  border: 1px solid var(--ck-border);
  border-radius: 99px;
  overflow: hidden;
}

.cc-platform-bar {
  height: 100%;
  border-radius: 99px;
  background: var(--ck-accent);
  transition: width 0.3s cubic-bezier(.4,0,.2,1), background 0.22s ease;
}

.cc-platform-bar.warning { background: var(--ck-warning); }
.cc-platform-bar.danger  { background: var(--ck-danger); }

.cc-platform-num {
  font-size: 0.775rem;
  font-variant-numeric: tabular-nums;
  color: var(--ck-text-muted);
  white-space: nowrap;
  min-width: 92px;
  text-align: right;
}

.cc-platform-num.over {
  color: var(--ck-danger);
  font-weight: 700;
}

/* ─────────────────────────────────────────
   ACTION BUTTONS
───────────────────────────────────────── */
.cc-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
  padding: 1rem 1.125rem;
  background: var(--ck-surface);
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius-md);
  box-shadow: var(--ck-shadow-sm);
}

.cc-btn {
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  padding: 0.5rem 0.95rem;
  border-radius: var(--ck-radius-sm);
  border: 1.5px solid var(--ck-border);
  background: var(--ck-surface-alt);
  color: var(--ck-text);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  white-space: nowrap;
  letter-spacing: 0.01em;
  outline: none;
  transition: background var(--ck-transition), border-color var(--ck-transition),
              color var(--ck-transition), box-shadow var(--ck-transition),
              transform 0.1s ease;
}

.cc-btn:hover {
  background: var(--ck-surface-hover);
  border-color: var(--ck-accent);
  color: var(--ck-accent);
  box-shadow: var(--ck-shadow-sm);
}

.cc-btn:active { transform: scale(0.95); }

.cc-btn:focus-visible {
  box-shadow: 0 0 0 3px var(--ck-accent-glow);
  border-color: var(--ck-accent);
}

.cc-btn-primary {
  background: var(--ck-accent);
  color: var(--ck-accent-text);
  border-color: var(--ck-accent);
  font-weight: 700;
  box-shadow: var(--ck-shadow-accent);
}

.cc-btn-primary:hover {
  background: var(--ck-accent-hover);
  border-color: var(--ck-accent-hover);
  color: var(--ck-accent-text);
  transform: translateY(-1px);
  box-shadow: var(--ck-shadow-accent), 0 2px 8px rgba(212,163,115,0.25);
}

@keyframes cc-pop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}

.cc-copied {
  animation: cc-pop 0.28s ease;
  border-color: var(--ck-success) !important;
  color: var(--ck-success) !important;
  background: var(--ck-success-bg) !important;
}

/* ─────────────────────────────────────────
   WORD DENSITY
───────────────────────────────────────── */
.cc-density-section {
  margin-top: 1.75rem;
  background: var(--ck-surface);
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius-md);
  padding: 1rem 1.125rem;
  box-shadow: var(--ck-shadow-sm);
}

.cc-density-title {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--ck-text-muted);
  margin-bottom: 0.875rem;
}

.cc-density-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.cc-density-item {
  font-size: 0.78rem;
  padding: 0.25rem 0.6rem;
  border-radius: 99px;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  cursor: default;
  border: 1px solid transparent;
  transition: border-color var(--ck-transition), transform var(--ck-transition),
              box-shadow var(--ck-transition);
}

.cc-density-item:hover {
  border-color: var(--ck-accent);
  transform: translateY(-1px);
  box-shadow: var(--ck-shadow-sm);
}

.cc-density-char { color: var(--ck-text); }

.cc-density-count {
  color: var(--ck-text-muted);
  font-size: 0.69rem;
  font-weight: 500;
}

/* ─────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────── */
@media (max-width: 600px) {
  .cc-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .cc-platform-name { width: 110px; }
  .cc-btn { font-size: 0.775rem; padding: 0.45rem 0.75rem; }
}

@media (max-width: 400px) {
  .cc-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .cc-platform-row { flex-wrap: wrap; gap: 0.375rem; }
  .cc-platform-name { width: 100%; }
  .cc-platform-num { min-width: unset; }
}
