/* DocStore — neutral styles that sit inside any theme. Change --ds-accent to match your brand. */
.dstore {
	--ds-accent: #2f5bea;
	--ds-accent-ink: #fff;
	--ds-ink: #1d2433;
	--ds-muted: #667085;
	--ds-line: #e4e7ec;
	--ds-soft: #f6f7f9;
	--ds-card: #fff;
	--ds-ok: #12805c;
	--ds-warn: #b54708;
	--ds-err: #c0362c;
	--ds-radius: 12px;
	color: var(--ds-ink);
	font-size: 16px;
	line-height: 1.55;
	box-sizing: border-box;
}
.dstore *, .dstore *::before, .dstore *::after { box-sizing: inherit; }
.dstore img { max-width: 100%; height: auto; display: block; }

.dstore-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 10px 18px; border-radius: 999px; border: 1px solid var(--ds-accent);
	background: var(--ds-accent); color: var(--ds-accent-ink) !important;
	font: inherit; font-weight: 600; font-size: 15px; line-height: 1.2;
	text-decoration: none !important; cursor: pointer; white-space: nowrap;
	transition: filter .15s ease, background .15s ease;
}
.dstore-btn:hover { filter: brightness(1.08); }
.dstore-btn:disabled { opacity: .55; cursor: not-allowed; }
.dstore-btn--ghost { background: transparent; color: var(--ds-accent) !important; }
.dstore-btn--ghost:hover { background: rgba(47, 91, 234, .07); filter: none; }
.dstore-btn--danger { background: transparent; border-color: var(--ds-err); color: var(--ds-err) !important; }
.dstore-inline { display: inline-block; margin: 0; }

.dstore-chip {
	display: inline-block; padding: 3px 10px; border-radius: 999px;
	background: var(--ds-soft); border: 1px solid var(--ds-line);
	font-size: 13px; color: var(--ds-muted);
}
.dstore-chip--ok { color: var(--ds-ok); border-color: #b7e4d2; background: #ecf8f3; }
.dstore-chip--wait { color: var(--ds-warn); border-color: #f5d7b0; background: #fff6ec; }
.dstore-chip--no { color: var(--ds-err); border-color: #f2c4c0; background: #fdf0ef; }
.dstore-muted { color: var(--ds-muted); font-size: 14px; }
.dstore-warn { color: var(--ds-warn); font-size: 14px; }
.dstore-empty { color: var(--ds-muted); padding: 32px 0; text-align: center; }

.dstore-notice { padding: 12px 16px; border-radius: var(--ds-radius); margin: 0 0 20px; border: 1px solid; font-size: 15px; }
.dstore-notice--ok { background: #ecf8f3; border-color: #b7e4d2; color: #0b5c42; }
.dstore-notice--info { background: #eef3ff; border-color: #c9d6fb; color: #23408f; }
.dstore-notice--error { background: #fdf0ef; border-color: #f2c4c0; color: #8c231b; }

.dstore-box { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); padding: 22px; margin: 0 0 20px; }
.dstore-box h3 { margin: 0 0 10px; font-size: 19px; }
.dstore-box__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.dstore-box__head h3 { margin: 0; }

/* Catalog */
.dstore-filter { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 24px; }
.dstore-filter input[type="search"] { flex: 1 1 260px; }
.dstore-filter input, .dstore-filter select,
.dstore-form input[type="text"], .dstore-form select, .dstore-form textarea,
.dstore-rcard input[type="text"], .dstore-rcard select, .dstore-rcard textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 8px;
	background: #fff; font: inherit; font-size: 15px; color: var(--ds-ink);
}
.dstore-filter select { width: auto; }
.dstore-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 20px; }
.dstore-card {
	display: flex; flex-direction: column; background: var(--ds-card); border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius); overflow: hidden; color: inherit !important; text-decoration: none !important;
	transition: box-shadow .15s ease, transform .15s ease;
}
.dstore-card:hover { box-shadow: 0 8px 24px rgba(16, 24, 40, .08); transform: translateY(-2px); }
.dstore-card__cover { display: block; aspect-ratio: 3 / 4; background: var(--ds-soft); overflow: hidden; border-bottom: 1px solid var(--ds-line); }
.dstore-card__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dstore-card__nocover { display: flex; height: 100%; align-items: center; justify-content: center; color: var(--ds-muted); font-weight: 700; letter-spacing: .1em; }
.dstore-card__body { display: flex; flex-direction: column; gap: 4px; padding: 14px; }
.dstore-card__subject { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ds-accent); }
.dstore-card__title { font-weight: 600; line-height: 1.35; }
.dstore-card__meta { display: flex; justify-content: space-between; font-size: 14px; color: var(--ds-muted); margin-top: auto; padding-top: 6px; }
.dstore-card__meta strong { color: var(--ds-ink); }
.dstore-pager { display: flex; gap: 6px; justify-content: center; margin-top: 28px; }
.dstore-pager a { padding: 6px 12px; border-radius: 8px; border: 1px solid var(--ds-line); text-decoration: none; }
.dstore-pager a.is-current { background: var(--ds-accent); color: #fff; border-color: var(--ds-accent); }

/* Document page */
.dstore-docbar { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.dstore-description { margin-top: 28px; }
.dstore-page { margin: 0 auto 18px; max-width: 820px; background: #fff; border: 1px solid var(--ds-line); border-radius: 6px; box-shadow: 0 2px 10px rgba(16, 24, 40, .06); overflow: hidden; }
.dstore-page figcaption { font-size: 12px; color: var(--ds-muted); text-align: center; padding: 6px; border-top: 1px solid var(--ds-line); background: var(--ds-soft); }
.dstore-page--blur img { filter: blur(3px); transform: scale(1.02); user-select: none; pointer-events: none; }
.dstore-preview__none { padding: 60px 20px; text-align: center; color: var(--ds-muted); background: var(--ds-soft); border-radius: var(--ds-radius); }
.dstore-locked { position: relative; }
.dstore-locked__pages { max-height: 1100px; overflow: hidden; -webkit-mask-image: linear-gradient(#000 40%, transparent); mask-image: linear-gradient(#000 40%, transparent); }
.dstore-unlock {
	position: absolute; left: 50%; top: 120px; transform: translateX(-50%);
	width: min(520px, calc(100% - 24px)); background: var(--ds-card); border: 1px solid var(--ds-line);
	border-radius: 16px; padding: 28px 24px; text-align: center; box-shadow: 0 20px 50px rgba(16, 24, 40, .16);
}
.dstore-locked--bare .dstore-unlock { position: static; transform: none; margin: 0 auto; }
.dstore-unlock__icon { font-size: 28px; }
.dstore-unlock h3 { margin: 6px 0; font-size: 22px; }
.dstore-unlock p { margin: 0 0 14px; }
.dstore-unlock__actions { display: flex; flex-direction: column; gap: 10px; align-items: stretch; margin-bottom: 12px; }
.dstore-unlock__actions .dstore-inline, .dstore-unlock__actions .dstore-btn { width: 100%; }
.dstore-full__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.dstore-full__frame { width: 100%; height: 85vh; min-height: 520px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-soft); }

/* Forms */
.dstore-form { display: flex; flex-direction: column; gap: 16px; max-width: 640px; }
.dstore-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 15px; }
.dstore-form small { font-weight: 400; color: var(--ds-muted); }
.dstore-form .dstore-check { flex-direction: row; align-items: flex-start; gap: 10px; font-weight: 400; }
.dstore-form .dstore-check input { margin-top: 4px; }
.dstore-form .dstore-btn { align-self: flex-start; }
.dstore-login form p { margin: 0 0 12px; }
.dstore-login input[type="text"], .dstore-login input[type="password"] { width: 100%; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 8px; }

/* Plans */
.dstore-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.dstore-plan { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: 16px; padding: 26px; display: flex; flex-direction: column; gap: 12px; }
.dstore-plan h3 { margin: 0; font-size: 20px; }
.dstore-plan__price { font-size: 28px; font-weight: 700; }
.dstore-plan ul { margin: 0; padding-left: 18px; color: var(--ds-muted); flex: 1; }
.dstore-plan .dstore-inline, .dstore-plan .dstore-inline .dstore-btn { width: 100%; }

/* Account */
.dstore-list { list-style: none; margin: 0; padding: 0; }
.dstore-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--ds-line); }
.dstore-list li:first-child { border-top: 0; }
.dstore-list li > a:first-child, .dstore-list li > span:first-child { flex: 1 1 220px; font-weight: 600; }
.dstore-link { font-size: 14px; }

/* Review panel */
.dstore-review__head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.dstore-stats { display: flex; gap: 12px; flex-wrap: wrap; }
.dstore-stat { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); padding: 10px 16px; min-width: 120px; }
.dstore-stat strong { display: block; font-size: 22px; }
.dstore-stat span { font-size: 13px; color: var(--ds-muted); }
.dstore-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--ds-line); margin-bottom: 18px; overflow-x: auto; }
.dstore-tabs a { padding: 10px 14px; text-decoration: none; color: var(--ds-muted); border-bottom: 2px solid transparent; white-space: nowrap; }
.dstore-tabs a.is-current { color: var(--ds-ink); border-color: var(--ds-accent); font-weight: 600; }
.dstore-tabs a span { font-size: 12px; background: var(--ds-soft); border-radius: 999px; padding: 1px 7px; margin-left: 4px; }
.dstore-rcard { display: grid; grid-template-columns: 150px 1fr; gap: 20px; background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); padding: 18px; margin-bottom: 16px; transition: opacity .3s; }
.dstore-rcard.is-done { opacity: .45; }
.dstore-rcard__thumb { aspect-ratio: 3 / 4; background: var(--ds-soft); border: 1px solid var(--ds-line); border-radius: 6px; overflow: hidden; display: flex; align-items: center; justify-content: center; color: var(--ds-muted); font-size: 13px; text-align: center; }
.dstore-rcard__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dstore-rcard__main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dstore-rcard__main label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--ds-muted); }
.dstore-rcard__meta { font-size: 13px; color: var(--ds-muted); }
.dstore-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dstore-rcard__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.dstore-rcard__actions .dstore-btn { padding: 8px 14px; font-size: 14px; }
.dstore-rcard__status { font-size: 14px; color: var(--ds-ok); min-height: 1.2em; }
.dstore-rcard__status.is-error { color: var(--ds-err); }

/* About, related, share */
.dstore-about, .dstore-related { margin-top: 36px; }
.dstore-about h2, .dstore-related h2 { font-size: 22px; margin: 0 0 12px; }
.dstore-about h3 { font-size: 17px; margin: 20px 0 8px; }
.dstore-points { margin: 0 0 12px; padding-left: 20px; }
.dstore-points li { margin: 4px 0; }
.dstore-summary { margin-top: 36px; }
.dstore-summary h2 { font-size: 22px; margin: 0 0 12px; }
.dstore-summary h3 { font-size: 17px; margin: 20px 0 6px; }
.dstore-summary p { margin: 0 0 10px; }
.dstore-summary__lead { font-size: 1.05em; }
.dstore-terms { margin: 0 0 12px; display: grid; gap: 8px; }
.dstore-terms div { display: grid; grid-template-columns: minmax(120px, 28%) 1fr; gap: 12px; }
.dstore-terms dt { font-weight: 600; }
.dstore-terms dd { margin: 0; }
@media (max-width: 560px) { .dstore-terms div { grid-template-columns: 1fr; gap: 2px; } }
.dstore-summary__note { font-size: 13px; opacity: .7; margin-top: 14px; }
.dstore-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.dstore-tags a { text-decoration: none; }
.dstore-share { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: var(--ds-muted); }
/* "How to unlock this document": three ways side by side, stacked on phones */
.dstore-ways { margin: 32px 0 8px; scroll-margin-top: 96px; }
.dstore .dstore-ways h2 { font-size: 24px; margin: 0 0 6px; }
.dstore-ways__lead { margin: 0 0 18px; color: var(--ds-muted); }
.dstore-ways__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; align-items: stretch; }
.dstore-way {
	position: relative; display: flex; flex-direction: column; padding: 22px 18px 18px;
	background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: var(--ds-radius);
}
.dstore-way--best { border: 2px solid var(--ds-accent); box-shadow: 0 8px 24px rgba(47, 91, 234, .12); }
.dstore-way.is-off { background: var(--ds-soft); }
.dstore-way.is-off .dstore-way__list { opacity: .7; }
.dstore-way__tag {
	align-self: flex-start; margin-bottom: 10px; padding: 3px 10px; border-radius: 999px;
	font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
	background: var(--ds-soft); color: var(--ds-muted); border: 1px solid var(--ds-line);
}
.dstore-way__tag--free { background: #ecf8f3; color: var(--ds-ok); border-color: #b7e4d2; }
.dstore-way__tag--best { background: var(--ds-accent); color: var(--ds-accent-ink); border-color: var(--ds-accent); }
.dstore .dstore-way h3 { font-size: 18px; margin: 0 0 6px; line-height: 1.3; }
.dstore-way__price { margin: 0 0 12px; color: var(--ds-muted); font-size: 14px; }
.dstore-way__price strong { display: block; font-size: 26px; color: var(--ds-ink); line-height: 1.2; }
.dstore-way__list { margin: 0 0 16px; padding: 0; list-style: none; font-size: 14px; }
.dstore-way__list li { position: relative; padding-left: 22px; margin: 6px 0; line-height: 1.45; }
.dstore-way__list li::before { content: "✓"; position: absolute; left: 0; color: var(--ds-ok); font-weight: 700; }
.dstore-way__action { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.dstore-way__action .dstore-inline, .dstore-way__action .dstore-btn { width: 100%; }
.dstore-way__action .dstore-btn { justify-content: center; text-align: center; white-space: normal; line-height: 1.3; }
.dstore-way__plan { display: flex; flex-direction: column; gap: 4px; }
.dstore-way__note { margin: 0; font-size: 13px; color: var(--ds-muted); text-align: center; }
.dstore-way__more { font-size: 14px; text-align: center; }
.dstore-way__progress { height: 8px; border-radius: 999px; background: var(--ds-soft); border: 1px solid var(--ds-line); overflow: hidden; }
.dstore-way__progress span { display: block; height: 100%; background: var(--ds-ok); }
.dstore-ways__login { margin: 14px 0 0; text-align: center; font-size: 15px; }

/* Store Admin: the three "ways to unlock" switches */
.dstore-unlockways { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 22px; margin: 0 0 18px; padding: 14px 18px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-switch { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 15px; }
.dstore-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dstore-switch__track { position: relative; width: 38px; height: 22px; border-radius: 999px; background: #cbd2dc; transition: background .15s; flex: 0 0 auto; }
.dstore-switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s; }
.dstore-switch input:checked + .dstore-switch__track { background: var(--ds-ok); }
.dstore-switch input:checked + .dstore-switch__track::after { transform: translateX(16px); }
.dstore-switch input:focus-visible + .dstore-switch__track { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.dstore-switch input:disabled + .dstore-switch__track { opacity: .6; }
.dstore-unlockways [data-unlock-status] { flex-basis: 100%; }

.dstore-aibar { margin: 0 0 16px; padding: 12px 16px; border-radius: var(--ds-radius); background: #f5f3ff; border: 1px solid #ddd6fe; color: #4c1d95; font-size: 15px; }
.dstore-aichip { margin: 0 0 8px; font-size: 14px; font-weight: 600; color: #6d28d9; }
.dstore-kb { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 0 0 10px; padding: 8px 12px; border-radius: 10px; font-size: 14px; background: #f4f4f5; color: #3f3f46; }
.dstore-kb--ok { background: #ecfdf3; color: #067647; }
.dstore-kb--warn { background: #fff7ed; color: #b45309; }
.dstore-rcard .dstore-kb__switch { display: flex; flex-direction: row; align-items: center; gap: 8px; margin: 0; font-weight: 600; }
.dstore-rcard .dstore-kb__switch select { width: auto; min-width: 0; padding: 4px 8px; font-size: 14px; }
.dstore-rcard.is-ai-waiting .dstore-aichip::after { content: ""; display: inline-block; width: 10px; height: 10px; margin-left: 8px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -1px; animation: dstore-spin .8s linear infinite; }
@keyframes dstore-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .dstore-rcard.is-ai-waiting .dstore-aichip::after { animation: none; } }
.dstore-facts {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1px; margin: 0 0 18px;
	background: var(--ds-line); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); overflow: hidden;
}
.dstore-facts > div { background: var(--ds-card); padding: 12px 16px; }
.dstore .dstore-facts dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ds-muted); margin: 0 0 4px; }
.dstore .dstore-facts dd { margin: 0; font-size: 17px; font-weight: 600; color: var(--ds-ink); }
.dstore-facts dd small { display: block; font-size: 12px; font-weight: 400; color: var(--ds-muted); }

/* Document page: preview on the left, recommendations on the right (stacked on phones) */
.dstore-doclayout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.dstore-doclayout__main { min-width: 0; }
.dstore-side { position: sticky; top: 96px; /* clears the theme's sticky header */ display: flex; flex-direction: column; gap: 10px; }
.dstore.dstore-side h2 { font-size: 17px; margin: 0 0 4px; } /* beats the theme's .entry h2 */
.dstore.dstore-side > * + * { margin-top: 0; }
.dstore-side--ask { position: static; }
.dstore-askdoc--side { margin: 0 0 14px; padding: 16px; }
.dstore-askdoc--side h2 { font-size: 17px; }
.dstore-askdoc--side > p { font-size: 14px; margin: 0 0 10px; }
.dstore-rec {
	display: flex; gap: 12px; padding: 10px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius);
	background: var(--ds-card); color: inherit !important; text-decoration: none !important; transition: border-color .15s, box-shadow .15s;
}
.dstore-rec:hover { border-color: var(--ds-accent); box-shadow: 0 4px 14px rgba(16, 24, 40, .08); }
.dstore-rec__cover {
	flex: 0 0 54px; height: 72px; border-radius: 6px; overflow: hidden; background: var(--ds-soft); border: 1px solid var(--ds-line);
	display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: var(--ds-muted);
}
.dstore-rec__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dstore-rec__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dstore-rec__subject { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--ds-accent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dstore-rec__title { font-size: 14px; font-weight: 600; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dstore-rec__meta { font-size: 13px; color: var(--ds-muted); margin-top: auto; }
.dstore-side__all { font-size: 14px; margin-top: 2px; }
@media (max-width: 900px) {
	.dstore-doclayout { grid-template-columns: minmax(0, 1fr); }
	.dstore-side { position: static; margin-top: 28px; }
}
.dstore-center { text-align: center; margin-top: 16px; }
.dstore-more { border: 1px solid var(--ds-line); border-radius: 8px; padding: 8px 12px; }
.dstore-more summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--ds-muted); }
.dstore-more[open] { display: flex; flex-direction: column; gap: 10px; }
.dstore-rcard.is-ai input, .dstore-rcard.is-ai textarea, .dstore-rcard.is-ai select { background: #fbfaff; border-color: #d9d2fb; }

/* Keyboard users can always see where they are. */
.dstore a:focus-visible, .dstore button:focus-visible, .dstore input:focus-visible, .dstore select:focus-visible, .dstore textarea:focus-visible, .dstore summary:focus-visible {
	outline: 3px solid var(--ds-accent); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.dstore-card, .dstore-btn, .dstore-rcard { transition: none; }
	.dstore-card:hover { transform: none; }
}

@media (max-width: 640px) {
	.dstore-rcard { grid-template-columns: 1fr; }
	.dstore-rcard__thumb { max-width: 160px; }
	.dstore-row { grid-template-columns: 1fr; }
	.dstore-unlock { top: 40px; padding: 22px 16px; }
	.dstore-full__frame { height: 70vh; }
}

/* DocStore 1.2: uploader, admin panel, profile, tokens, notifications, readers. */

/* ---------- uploader ---------- */
.dstore-drop { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 40px 20px; text-align: center; border: 2px dashed var(--ds-line); border-radius: 16px; background: var(--ds-soft); cursor: pointer; transition: border-color .15s, background .15s; }
.dstore-drop:hover, .dstore-drop.is-over { border-color: var(--ds-accent); background: rgba(79, 70, 229, .05); }
.dstore-drop input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.dstore-drop__icon { color: var(--ds-accent); }
.dstore-up-form { display: flex; flex-direction: column; gap: 18px; }
.dstore-up-shared { display: flex; flex-direction: column; gap: 12px; }
.dstore-up-shared label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 15px; }
.dstore-up-shared select { max-width: 360px; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; }
.dstore-up-shared .dstore-check { flex-direction: row; font-weight: 400; align-items: flex-start; gap: 10px; }
.dstore-up-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.dstore-files { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 520px; overflow: auto; }
.dstore-file { display: grid; grid-template-columns: 56px 1fr 32px; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-card); }
.dstore-file__type { font-size: 11px; font-weight: 700; text-align: center; padding: 8px 0; border-radius: 8px; background: #eef2ff; color: #3730a3; }
.dstore-file__main { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dstore-file__title { width: 100%; border: 1px solid transparent; border-radius: 6px; padding: 4px 6px; font: inherit; font-weight: 600; background: transparent; }
.dstore-file__title:hover, .dstore-file__title:focus { border-color: var(--ds-line); background: #fff; }
.dstore-file__meta { font-size: 12px; color: var(--ds-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dstore-file__bar { height: 4px; border-radius: 4px; background: var(--ds-soft); overflow: hidden; }
.dstore-file__bar span { display: block; height: 100%; width: 0; background: var(--ds-accent); transition: width .2s; }
.dstore-file__msg { font-size: 13px; color: var(--ds-muted); }
.dstore-file.is-error { border-color: #f2c4c0; background: #fffafa; }
.dstore-file.is-error .dstore-file__msg { color: var(--ds-err); }
.dstore-file.is-done .dstore-file__msg { color: var(--ds-ok); }
.dstore-file.is-done .dstore-file__bar span { background: var(--ds-ok); }
.dstore-file__remove { border: 0; background: transparent; font-size: 22px; line-height: 1; color: var(--ds-muted); cursor: pointer; border-radius: 8px; }
.dstore-file__remove:hover { background: var(--ds-soft); color: var(--ds-err); }
.dstore-uploader.is-busy .dstore-file__remove { visibility: hidden; }
.dstore-reward { display: grid; grid-template-columns: 1fr 200px; gap: 6px 18px; align-items: center; padding: 16px 18px; margin-bottom: 18px; border-radius: 14px; background: linear-gradient(135deg, #eef2ff, #fdf2f8); border: 1px solid #e0e7ff; }
.dstore-reward__text { display: flex; flex-direction: column; grid-row: span 2; }
.dstore-reward__text span { font-size: 14px; color: var(--ds-muted); }
.dstore-reward small { color: var(--ds-muted); }
.dstore-meter { height: 10px; border-radius: 99px; background: rgba(255, 255, 255, .8); border: 1px solid var(--ds-line); overflow: hidden; }
.dstore-meter span { display: block; height: 100%; background: linear-gradient(90deg, var(--ds-accent), #db2777); border-radius: 99px; }

/* ---------- type badges ---------- */
.dstore-type { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: .04em; padding: 2px 6px; border-radius: 5px; background: #fee2e2; color: #991b1b; }
.dstore-type--docx { background: #dbeafe; color: #1e40af; }
.dstore-type--pptx { background: #ffedd5; color: #9a3412; }
.dstore-type--xlsx, .dstore-type--csv { background: #dcfce7; color: #166534; }
.dstore-type--txt, .dstore-type--md { background: #f1f5f9; color: #334155; }
.dstore-rcard__thumb { position: relative; }
.dstore-rcard__thumb .dstore-type { position: absolute; left: 6px; bottom: 6px; }

/* ---------- admin panel ---------- */
.dstore-review__title { margin: 0; font-size: 26px; }
.dstore-review__links { display: flex; gap: 8px; flex-wrap: wrap; }
.dstore-review .dstore-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: 20px; }
.dstore-stat--alert { border-color: #fcd34d; background: #fffbeb; }
.dstore-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.dstore-toolbar__search input { padding: 9px 14px; border: 1px solid var(--ds-line); border-radius: 999px; min-width: 240px; font: inherit; }
.dstore-bulk { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 12px; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-card); }
.dstore-bulk .dstore-btn { padding: 7px 14px; font-size: 14px; }
.dstore-bulk .dstore-check { display: flex; gap: 6px; align-items: center; font-size: 14px; margin-right: 6px; }
.dstore-rcard__side { display: flex; flex-direction: column; gap: 8px; }
.dstore-rcard__select input { width: 18px; height: 18px; }
.dstore-table-wrap { overflow-x: auto; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.dstore-table th, .dstore-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--ds-line); white-space: nowrap; }
.dstore-table th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--ds-muted); background: var(--ds-soft); }
.dstore-person { display: flex; gap: 10px; align-items: center; }
.dstore-person img { border-radius: 50%; }
.dstore-person span { display: flex; flex-direction: column; }
.dstore-person small { color: var(--ds-muted); }
.dstore-tokens-cell { display: flex; align-items: center; gap: 8px; }
.dstore-mini { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--ds-line); background: #fff; cursor: pointer; font-size: 15px; line-height: 1; }
.dstore-mini:hover { border-color: var(--ds-accent); color: var(--ds-accent); }

/* Off-screen sheet used to photograph Word, Excel, text and slides for previews. */
.dstore-render { position: fixed; left: -12000px; top: 0; width: 794px; padding: 72px 76px; box-sizing: border-box; background: #fff; color: #111; font: 15px/1.6 Georgia, "Times New Roman", serif; overflow: hidden; }
.dstore-render table, .dstore-reader table { border-collapse: collapse; font: 13px/1.4 Arial, sans-serif; }
.dstore-render td, .dstore-render th, .dstore-reader td, .dstore-reader th { border: 1px solid #ccc; padding: 4px 8px; }
.dstore-render pre, .dstore-reader pre { white-space: pre-wrap; font: 13px/1.55 ui-monospace, Consolas, monospace; margin: 0; }
.dstore-render--slides { padding: 0; }
.dstore-slide { position: relative; width: 794px; height: 447px; box-sizing: border-box; padding: 44px 52px; background: linear-gradient(135deg, #ffffff, #f4f6ff); border-bottom: 1px solid #e4e7ec; font-family: Arial, sans-serif; overflow: hidden; }
.dstore-slide h2, .dstore-slide h3 { margin: 0 0 18px; font-size: 30px; color: #1e1b4b; }
.dstore-slide li { font-size: 18px; margin: 6px 0; }
.dstore-slide__n { position: absolute; right: 18px; bottom: 12px; font-size: 12px; color: #98a2b3; }

/* ---------- reader for non-PDF files ---------- */
.dstore-reader { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: #fff; padding: 36px clamp(16px, 5vw, 56px); max-height: 85vh; overflow: auto; line-height: 1.7; }
.dstore-reader__table { overflow-x: auto; margin-bottom: 20px; }
.dstore-reader--pptx { background: var(--ds-soft); display: flex; flex-direction: column; gap: 16px; }
.dstore-reader--pptx .dstore-slide { width: 100%; height: auto; aspect-ratio: 16 / 9; border: 1px solid var(--ds-line); border-radius: 10px; }

/* ---------- tokens ---------- */
.dstore-btn--token { background: linear-gradient(135deg, #f59e0b, #db2777); border-color: transparent; }
.dstore-token-card { text-align: center; background: linear-gradient(135deg, #fff7ed, #fdf2f8); }
.dstore-token-card__n { display: inline-flex; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; font-size: 30px; font-weight: 800; color: #fff; background: linear-gradient(135deg, #f59e0b, #db2777); box-shadow: 0 10px 24px rgba(219, 39, 119, .25); margin-bottom: 8px; }
.dstore-plus { color: var(--ds-ok); min-width: 32px; }
.dstore-minus { color: var(--ds-err); min-width: 32px; }

/* ---------- profile ---------- */
.dstore-profile__head { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; padding: 22px; margin-bottom: 18px; border-radius: 18px; background: linear-gradient(135deg, #eef2ff, #fdf4ff); border: 1px solid #e0e7ff; }
.dstore-profile__avatar { border-radius: 50%; border: 4px solid #fff; box-shadow: 0 6px 20px rgba(30, 27, 75, .12); }
.dstore-profile__who { flex: 1 1 200px; }
.dstore-profile__who h2 { margin: 0; font-size: 24px; }
.dstore-profile__who p { margin: 4px 0 0; }
.dstore-profile__actions { display: flex; gap: 8px; flex-wrap: wrap; }
.dstore-profile .dstore-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin-bottom: 18px; }
.dstore-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 18px; }
.dstore-cols .dstore-box { margin-bottom: 18px; }
.dstore-center-box { text-align: center; }
.dstore-note { flex-basis: 100%; font-size: 14px; color: var(--ds-err); }
.dstore-fieldset { border: 1px solid var(--ds-line); border-radius: 10px; padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 12px; }
.dstore-fieldset legend { font-weight: 600; padding: 0 6px; }
.dstore-form input[type="password"] { width: 100%; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; }
.dstore-notes { list-style: none; margin: 0; padding: 0; }
.dstore-notes li > a, .dstore-notes li > div { display: flex; gap: 12px; padding: 12px 6px; border-top: 1px solid var(--ds-line); color: inherit; text-decoration: none; }
.dstore-notes li:first-child > a, .dstore-notes li:first-child > div { border-top: 0; }
.dstore-notes li > a:hover { background: var(--ds-soft); }
.dstore-notes li.is-unread strong::after { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ds-accent); margin-left: 8px; vertical-align: middle; }
.dstore-notes span { display: flex; flex-direction: column; }
.dstore-notes span span { font-size: 14px; color: var(--ds-muted); }
.dstore-notes small { font-size: 12px; color: var(--ds-muted); }
.dstore-notes__icon { font-size: 20px; }

/* ---------- notification bell ---------- */
.dstore-bell { position: relative; }
.dstore-bell__btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid transparent; background: transparent; color: inherit; cursor: pointer; }
.dstore-bell__btn:hover { background: rgba(0, 0, 0, .05); }
.dstore-bell__count { position: absolute; top: 4px; right: 3px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #e11d48; color: #fff; font-size: 11px; font-weight: 700; line-height: 18px; text-align: center; }
.dstore-bell__count[hidden] { display: none; }
.dstore-bell__panel { position: absolute; right: 0; top: calc(100% + 8px); width: min(360px, 92vw); background: #fff; color: #1d2433; border: 1px solid #e4e7ec; border-radius: 14px; box-shadow: 0 20px 50px rgba(16, 24, 40, .18); z-index: 1000; overflow: hidden; }
.dstore-bell__head { padding: 12px 16px; border-bottom: 1px solid #e4e7ec; }
.dstore-bell__list { list-style: none; margin: 0; padding: 0; max-height: 380px; overflow: auto; }
.dstore-bell__list li > a, .dstore-bell__list li > div { display: flex; gap: 10px; padding: 12px 16px; color: inherit; text-decoration: none; border-bottom: 1px solid #f2f4f7; font-size: 14px; }
.dstore-bell__list li > a:hover { background: #f6f7f9; }
.dstore-bell__list li.is-unread { background: #f5f7ff; }
.dstore-bell__text { display: flex; flex-direction: column; gap: 2px; }
.dstore-bell__text span { color: #667085; }
.dstore-bell__text small { color: #98a2b3; font-size: 12px; }
.dstore-bell__empty { padding: 18px 16px; }
.dstore-bell__all { display: block; padding: 10px 16px; text-align: center; font-size: 14px; font-weight: 600; text-decoration: none; }

@media (max-width: 640px) {
	.dstore-reward { grid-template-columns: 1fr; }
	.dstore-reward__text { grid-row: auto; }
	.dstore-file { grid-template-columns: 44px 1fr 28px; }
	.dstore-profile__head { padding: 16px; }
	.dstore-toolbar__search input { min-width: 0; width: 100%; }
}

.dstore-history { margin-top: 10px; }
.dstore-history summary { cursor: pointer; font-size: 14px; font-weight: 600; color: var(--ds-muted); }
.dstore-check--small { display: flex; gap: 6px; align-items: center; font-size: 13px; font-weight: 400; color: var(--ds-muted); margin-top: 4px; }

/* The format badge stays small; the title next to it takes the space. */
.dstore-list li > span.dstore-type:first-child { flex: none; }
.dstore-list li > .dstore-type + a, .dstore-list li > .dstore-type + span { flex: 1 1 200px; font-weight: 600; }

/* ---------- 1.3: subjects, module and week; Cloudflare inbox ---------- */
.dstore-chip--subject { text-decoration: none; color: var(--ds-accent); border-color: #c7d2fe; background: #eef2ff; }
.dstore-card__module { font-size: 13px; color: var(--ds-muted); }
.dstore-row--3 { grid-template-columns: 2fr 1fr 1fr; }
.dstore-subjects { border: 1px solid var(--ds-line); border-radius: 8px; padding: 6px 10px 10px; margin: 0; min-width: 0; }
.dstore-subjects legend { font-size: 13px; font-weight: 600; color: var(--ds-muted); padding: 0 4px; }
.dstore-subjects__list { display: flex; flex-wrap: wrap; gap: 6px; max-height: 120px; overflow: auto; }
.dstore-pill { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px !important; padding: 4px 10px; border: 1px solid var(--ds-line); border-radius: 999px; font-size: 13px !important; font-weight: 500 !important; color: var(--ds-ink) !important; cursor: pointer; background: #fff; }
.dstore-pill:has(input:checked) { border-color: var(--ds-accent); background: #eef2ff; }
.dstore-pill.is-new { border-style: dashed; }
.dstore-pill input { margin: 0; }
.dstore-source { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 6px; background: #f0f9ff; color: #075985; font-size: 12px; }
.dstore-inbox { display: flex; gap: 16px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 14px 18px; margin-bottom: 16px; border: 1px solid #bae6fd; border-radius: 14px; background: linear-gradient(135deg, #f0f9ff, #eef2ff); }
.dstore-inbox__text { display: flex; flex-direction: column; gap: 4px; flex: 1 1 320px; }
.dstore-bulkup { margin: -6px 0 16px; padding: 12px 18px; border: 1px dashed #bae6fd; border-radius: 14px; background: #f8fafc; }
.dstore-bulkup > summary { cursor: pointer; font-weight: 600; }
.dstore-bulkup__row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.dstore-bulkup__max input { width: 80px; }
.dstore-bulkup__status { margin: 10px 0 0; }
.dstore-bulkup__status:empty { display: none; }
.dstore-bulkup progress { width: 100%; height: 10px; margin-top: 8px; }
@media (max-width: 640px) { .dstore-row--3 { grid-template-columns: 1fr; } }

/* Bulk buttons with nothing ticked: still clickable, just quieter. */
.dstore-bulk .dstore-btn.is-idle { opacity: .6; }
.dstore-bulk [data-bulk-status].is-hint { color: var(--ds-warn); font-weight: 600; }
.dstore-name-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.dstore-name-row input { flex: 1 1 220px; }

/* Log in, sign up and password reset pages */
.dstore-auth { display: flex; justify-content: center; padding: 8px 0 24px; }
.dstore-auth__card { width: 100%; max-width: 440px; background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: 18px; padding: 32px 28px; box-shadow: 0 18px 40px -24px rgba(15, 23, 42, .25); }
.dstore-auth .dstore-auth__title { margin: 0 0 6px; font-size: 26px; line-height: 1.2; }
.dstore-auth__lead { margin: 0 0 22px; color: var(--ds-muted); font-size: 15px; }
.dstore-auth__form { max-width: none; gap: 14px; }
.dstore-auth__form input[type="text"], .dstore-auth__form input[type="email"], .dstore-auth__form input[type="password"] {
	width: 100%; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 10px; background: #fff; font: inherit; font-size: 16px; font-weight: 400; color: var(--ds-ink);
}
.dstore-auth__form input:focus { outline: none; border-color: var(--ds-accent); box-shadow: 0 0 0 3px rgba(79, 70, 229, .15); }
.dstore-auth__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 14px; }
.dstore-auth__row .dstore-check { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.dstore-auth__row .dstore-check input { margin: 0; }
.dstore-auth__form .dstore-auth__submit { align-self: stretch; padding: 13px 18px; font-size: 16px; margin-top: 4px; }
.dstore-auth__switch { margin: 18px 0 0; text-align: center; font-size: 15px; color: var(--ds-muted); }
.dstore-auth__fine { margin: 0; font-size: 13px; color: var(--ds-muted); }
.dstore-auth__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.dstore-auth .dstore-notice { margin-bottom: 16px; }
@media (max-width: 480px) { .dstore-auth__card { padding: 24px 18px; border-radius: 14px; } }

/* Member dashboard: personal picks */
.dstore-picks { margin: 6px 0 26px; }
.dstore-picks__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
.dstore .dstore-picks__head h3 { margin: 0 0 4px; font-size: 21px; }
.dstore-picks__head p { margin: 0; max-width: 620px; }
.dstore-picks__grid { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); }
.dstore-pick { position: relative; display: flex; }
.dstore-pick > .dstore-card { flex: 1; }
.dstore-pick__why {
	position: absolute; left: 10px; right: 10px; top: 10px; z-index: 2; justify-self: start;
	width: max-content; max-width: calc(100% - 20px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	padding: 5px 10px 5px 26px; border-radius: 999px; background: rgba(255, 255, 255, .94); box-shadow: 0 4px 14px rgba(15, 23, 42, .12);
	font-size: 12px; font-weight: 600; color: #3730a3; pointer-events: none;
	background-image: radial-gradient(circle at 13px 50%, #f59e0b 0 4px, transparent 4.5px);
}
.dstore-recent { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.dstore-recent .dstore-chip { text-decoration: none; color: var(--ds-ink); }
.dstore-recent .dstore-chip:hover { border-color: var(--ds-accent); color: var(--ds-accent); }
.dstore-follow { padding: 0; overflow: hidden; }
.dstore-follow summary { display: flex; align-items: center; gap: 12px; padding: 16px 20px; cursor: pointer; list-style: none; }
.dstore-follow summary::-webkit-details-marker { display: none; }
.dstore-follow__title { font-weight: 700; white-space: nowrap; }
.dstore-follow__now { flex: 1; color: var(--ds-muted); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dstore-follow__edit { color: var(--ds-accent); font-weight: 600; font-size: 14px; }
.dstore-follow[open] .dstore-follow__edit { visibility: hidden; }
.dstore-follow__form { padding: 0 20px 20px; display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.dstore-follow__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.dstore-follow__chip { position: relative; cursor: pointer; }
.dstore-follow__chip input { position: absolute; opacity: 0; pointer-events: none; }
.dstore-follow__chip span { display: inline-block; padding: 7px 14px; border-radius: 999px; border: 1px solid var(--ds-line); background: #fff; font-size: 14px; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.dstore-follow__chip:hover span { border-color: var(--ds-accent); }
.dstore-follow__chip input:checked + span { background: var(--ds-accent); border-color: var(--ds-accent); color: #fff; }
.dstore-follow__chip input:checked + span::before { content: "✓ "; }
.dstore-follow__chip input:focus-visible + span { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.dstore-linkbtn { background: none; border: 0; padding: 0; font: inherit; font-size: 14px; color: var(--ds-muted); text-decoration: underline; cursor: pointer; }
.dstore-linkbtn:hover { color: var(--ds-err); }

/* Contact page */
.dstore-contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 28px; align-items: start; }
.dstore-contact__info { padding: 26px; border-radius: 18px; background: linear-gradient(135deg, #eef2ff, #fdf4ff); border: 1px solid #e0e7ff; }
.dstore .dstore-contact__info h2 { margin: 0 0 8px; font-size: 24px; line-height: 1.25; }
.dstore-contact__info p { margin: 0 0 18px; color: var(--ds-muted); }
.dstore-contact__mail { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid #e0e7ff; margin-bottom: 18px; }
.dstore-contact__mail small { display: block; color: var(--ds-muted); font-size: 13px; }
.dstore-contact__mail a { font-weight: 700; font-size: 16px; color: var(--ds-accent); text-decoration: none; word-break: break-all; }
.dstore-contact__mail a:hover { text-decoration: underline; }
.dstore-contact__icon { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--ds-accent); color: #fff; font-size: 20px; }
.dstore-contact__tips { margin: 0; padding-left: 18px; color: var(--ds-muted); font-size: 14px; display: grid; gap: 6px; }
.dstore-contact__card { background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: 18px; padding: 28px; box-shadow: 0 18px 40px -24px rgba(15, 23, 42, .25); }
.dstore .dstore-contact__card h3 { margin: 0 0 16px; font-size: 21px; }
.dstore-contact__form { max-width: none; gap: 14px; }
.dstore-contact__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dstore-contact__form input[type="email"], .dstore-contact__form input[type="url"], .dstore-contact__form input[type="text"], .dstore-contact__form select, .dstore-contact__form textarea {
	width: 100%; padding: 11px 13px; border: 1px solid var(--ds-line); border-radius: 10px; background: #fff; font: inherit; font-size: 16px; font-weight: 400; color: var(--ds-ink);
}
.dstore-contact__form textarea { resize: vertical; min-height: 140px; }
.dstore-contact__form input:focus, .dstore-contact__form select:focus, .dstore-contact__form textarea:focus { outline: none; border-color: var(--ds-accent); box-shadow: 0 0 0 3px rgba(79, 70, 229, .15); }
.dstore-contact__form .dstore-contact__submit { padding: 13px 26px; font-size: 16px; }
.dstore-contact__done { text-align: center; padding: 20px 6px; }
.dstore-contact__check { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #ecf8f3; color: var(--ds-ok); font-size: 28px; font-weight: 700; margin-bottom: 10px; }
.dstore-contact__done p { color: var(--ds-muted); margin: 0 auto 18px; max-width: 420px; }
@media (max-width: 820px) { .dstore-contact { grid-template-columns: 1fr; } .dstore-contact__row { grid-template-columns: 1fr; } .dstore-contact__card { padding: 22px 18px; } }

/* Profile → Settings → Emails: one switch per kind of email */
.dstore-emails { display: flex; flex-direction: column; gap: 0; }
.dstore-emails > p { margin: 0 0 8px; }
.dstore .dstore-emails__row { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-top: 1px solid var(--ds-line); font-weight: 400; cursor: pointer; }
.dstore-emails__text { display: flex; flex-direction: column; gap: 2px; }
.dstore-emails__text strong { font-size: 15px; }
.dstore-emails__text small { font-size: 13px; color: var(--ds-muted); }
.dstore-toggle { position: relative; flex: none; }
.dstore-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dstore-toggle__track { display: block; position: relative; width: 42px; height: 24px; border-radius: 999px; background: #cbd2dc; transition: background .15s; }
.dstore-toggle__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .25); transition: transform .15s; }
.dstore-toggle input:checked + .dstore-toggle__track { background: var(--ds-accent); }
.dstore-toggle input:checked + .dstore-toggle__track::after { transform: translateX(18px); }
.dstore-toggle input:focus-visible + .dstore-toggle__track { outline: 2px solid var(--ds-accent); outline-offset: 2px; }

/* Store Admin → Customers */
.dstore-crm__bar { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 8px; }
.dstore-crm__bar input[type="search"] { flex: 1 1 220px; }
.dstore-crm__bar input, .dstore-crm__bar select { padding: 9px 12px; border: 1px solid var(--ds-line); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; }
.dstore-crm__tablewrap { overflow-x: auto; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-crm__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.dstore-crm__table th { text-align: left; font-weight: 600; color: var(--ds-muted); background: var(--ds-soft); padding: 10px 12px; white-space: nowrap; border-bottom: 1px solid var(--ds-line); }
.dstore-crm__table td { padding: 10px 12px; border-bottom: 1px solid var(--ds-line); vertical-align: middle; }
.dstore-crm__table tr:last-child td { border-bottom: 0; }
.dstore-crm__table--small { font-size: 14px; }
.dstore-crm__who { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ds-ink); }
.dstore-crm__who img { border-radius: 50%; }
.dstore-crm__who span { display: flex; flex-direction: column; }
.dstore-crm__who small { color: var(--ds-muted); font-size: 12px; }
.dstore-crm__dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; font-size: 14px; }
.dstore-crm__dl dt { color: var(--ds-muted); }
.dstore-crm__dl dd { margin: 0; word-break: break-word; }
.dstore-crm__log { margin: 12px 0 0; padding-left: 18px; font-size: 13px; color: var(--ds-muted); }

/* Store Admin → Mail */
.dstore-mail__top { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 14px; }
.dstore-mail__switch select { padding: 9px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; font-size: 15px; background: #fff; }
.dstore-mail__layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 18px; align-items: start; }
.dstore-mail__folders { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 90px; }
.dstore-mail__folders a { padding: 8px 12px; border-radius: 8px; text-decoration: none; color: var(--ds-ink); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dstore-mail__folders a:hover { background: var(--ds-soft); }
.dstore-mail__folders a.is-current { background: #eef2ff; color: var(--ds-accent); font-weight: 600; }
.dstore-mail__search input { width: 100%; padding: 9px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; font-size: 15px; margin-bottom: 10px; }
.dstore-mail__list { list-style: none; margin: 0; padding: 0; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); overflow: hidden; }
.dstore-mail__list li + li { border-top: 1px solid var(--ds-line); }
.dstore-mail__list a { display: grid; grid-template-columns: 200px minmax(0, 1fr) 70px; gap: 12px; padding: 11px 14px; text-decoration: none; color: var(--ds-ink); font-size: 14px; }
.dstore-mail__list a:hover { background: var(--ds-soft); }
.dstore-mail__list .is-unread a { font-weight: 700; background: #fafbff; }
.dstore-mail__from, .dstore-mail__subj { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dstore-mail__date { text-align: right; color: var(--ds-muted); font-weight: 400; font-size: 13px; }
.dstore .dstore-mail__msgsubj { margin: 4px 0 10px; font-size: 21px; }
.dstore-mail__meta { display: grid; grid-template-columns: max-content 1fr; gap: 3px 12px; font-size: 14px; margin: 0 0 12px; }
.dstore-mail__meta dt { color: var(--ds-muted); }
.dstore-mail__meta dd { margin: 0; word-break: break-word; }
.dstore-mail__actions { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.dstore-mail__atts { list-style: none; margin: 0 0 12px; padding: 10px 12px; display: flex; flex-wrap: wrap; gap: 8px 18px; background: var(--ds-soft); border-radius: 10px; font-size: 14px; }
.dstore-mail__frame { width: 100%; min-height: 360px; border: 1px solid var(--ds-line); border-radius: 10px; background: #fff; }
.dstore-mail__boxes { list-style: none; margin: 0; padding: 0; }
.dstore-mail__boxes li { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 0; border-top: 1px solid var(--ds-line); }
.dstore-mail__boxacts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.dstore-mail__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.dstore-mail__boxform input[type="email"], .dstore-mail__boxform input[type="password"], .dstore-mail__boxform input[type="number"], .dstore-mail__boxform textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--ds-line); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; font-weight: 400;
}
.dstore-mail__adv summary { cursor: pointer; color: var(--ds-accent); font-weight: 600; margin: 4px 0 10px; }
.dstore-mail__compose { max-width: none; gap: 10px; }
.dstore .dstore-mail__row { display: grid; grid-template-columns: 80px minmax(0, 1fr); align-items: center; gap: 10px; font-weight: 400; }
.dstore-mail__row > span { color: var(--ds-muted); font-size: 14px; }
.dstore-mail__row input, .dstore-mail__row select { width: 100%; padding: 9px 12px; border: 1px solid var(--ds-line); border-radius: 8px; background: #fff; font: inherit; font-size: 15px; }
.dstore-mail__files { font-weight: 600; }
.dstore-mail__files input { font-weight: 400; margin-top: 6px; }
.dstore-mail__sendrow { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.dstore-editor { position: relative; }
.dstore-editor__tools { display: flex; justify-content: flex-end; margin-bottom: 6px; position: relative; }
.dstore-editor__emoji { padding: 6px 12px; font-size: 14px; }
.dstore-editor__picker { position: absolute; right: 0; top: 40px; z-index: 50; box-shadow: 0 18px 40px -12px rgba(15, 23, 42, .35); border-radius: 12px; overflow: hidden; }
.dstore-editor .wp-editor-container { border: 1px solid var(--ds-line); border-radius: 8px; overflow: hidden; }
.dstore-outreach__fields { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.dstore-outreach__fields[disabled] { opacity: .75; }
@media (max-width: 760px) {
	.dstore-mail__layout { grid-template-columns: 1fr; }
	.dstore-mail__folders { position: static; flex-direction: row; overflow-x: auto; }
	.dstore-mail__list a { grid-template-columns: minmax(0, 1fr) 60px; }
	.dstore-mail__subj { grid-column: 1 / -1; grid-row: 2; font-weight: inherit; }
	.dstore .dstore-mail__row { grid-template-columns: 1fr; gap: 4px; }
}

/* AI Teacher: the question box, the answer and the history */
.dstore-ask textarea { width: 100%; min-height: 84px; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 10px; font: inherit; resize: vertical; background: var(--ds-card); color: var(--ds-ink); }
.dstore-ask textarea:focus { outline: 2px solid var(--ds-accent); outline-offset: 1px; border-color: transparent; }
.dstore-ask__bar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 10px; }
/* The camera button is for phones: a touch screen at phone width. */
.dstore .dstore-ask__cam { display: none; }
@media (max-width: 767px) and (pointer: coarse) {
	.dstore .dstore-ask__cam { display: inline-flex; }
}
.dstore-ask__login { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 8px; }
.dstore-ask__out { margin-top: 18px; padding: 18px; background: var(--ds-soft); border-radius: var(--ds-radius); }
.dstore-ask__q { font-weight: 600; margin: 0 0 10px; }
.dstore-ask__wait { margin: 0; }
.dstore-ask__answer p { margin: 0 0 10px; }
.dstore-ask__answer ul, .dstore-ask__answer ol { margin: 0 0 10px; padding-left: 22px; }
.dstore-ask__answer li { margin: 0 0 4px; }
.dstore-ask__cite { font-size: 13px; font-weight: 600; text-decoration: none; vertical-align: super; line-height: 0; }
.dstore-ask__sources { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ds-line); font-size: 14px; }
.dstore-ask__sources ol { margin: 6px 0 0; padding-left: 22px; }
.dstore-ask__more { margin: 14px 0 0; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 10px; background: var(--ds-card); font-size: 15px; }
.dstore-ask__more a { font-weight: 600; white-space: nowrap; }
.dstore-ask__error p { margin: 0 0 8px; color: var(--ds-warn); }
.dstore-ask__error .dstore-ask__more p, .dstore-ask__error .dstore-ask__more { color: var(--ds-ink); }
.dstore-askdoc { margin-top: 24px; }
.dstore-askdoc h2 { margin: 0 0 6px; font-size: 20px; }
.dstore-askhist details { border: 1px solid var(--ds-line); border-radius: 10px; padding: 12px 14px; margin: 0 0 10px; background: var(--ds-card); }
.dstore-askhist summary { cursor: pointer; }
.dstore-askhist details[open] summary { margin-bottom: 10px; }
.dstore-askhist__nav { margin-top: 12px; }
.dstore-asksrc { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--ds-line); }
.dstore .dstore-asksrc h4 { margin: 0 0 10px; font-size: 15px; }
.dstore-asksrc__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 14px; }
.dstore-asksrc__item { display: flex; flex-direction: column; gap: 8px; }
.dstore-asksrc__item .dstore-card__cover { aspect-ratio: 4 / 3; }
.dstore-asksrc__why { margin: 0; font-size: 14px; line-height: 1.45; }
.dstore-asksrc__nums { font-weight: 700; color: var(--ds-accent); font-size: 12px; }
.dstore-ask__add { padding: 9px 14px; font-size: 14px; cursor: pointer; }
.dstore-ask__add svg { flex: none; }
.dstore-ask__photo { position: relative; display: inline-block; margin-top: 10px; }
.dstore-ask__photo img { display: block; max-width: 220px; max-height: 160px; border: 1px solid var(--ds-line); border-radius: 8px; }
.dstore-ask__remove { position: absolute; top: -10px; right: -10px; width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--ds-line); background: var(--ds-card); color: var(--ds-ink); font-size: 18px; line-height: 1; cursor: pointer; }
.dstore-ask__thumb { display: block; max-width: 160px; max-height: 120px; margin: 0 0 10px; border: 1px solid var(--ds-line); border-radius: 8px; }
.dstore-ask__read { margin: 0 0 12px; padding: 10px 12px; border-left: 3px solid var(--ds-accent); background: var(--ds-card); border-radius: 0 8px 8px 0; font-size: 14px; }
.dstore-ask__read p { margin: 4px 0 0; white-space: normal; }

/* Saved documents */
.dstore-docbar .dstore-save { margin-left: auto; }
.dstore-save { display: inline-flex; margin: 0; }
.dstore-save__btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border: 1px solid var(--ds-line); border-radius: 999px; background: var(--ds-card); color: var(--ds-ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.dstore-save__btn:hover { border-color: var(--ds-accent); color: var(--ds-accent); }
.dstore-save__btn.is-saved { background: var(--ds-accent); border-color: var(--ds-accent); color: var(--ds-accent-ink); }
.dstore-save__btn:disabled { opacity: .6; cursor: wait; }
.dstore-saveditem { display: flex; flex-direction: column; gap: 8px; }
.dstore-saveditem > .dstore-card { flex: 1; }
.dstore-saveditem__bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 8px; font-size: 13px; }
.dstore-saveditem__bar .dstore-save__btn { padding: 4px 12px; font-size: 13px; font-weight: 500; }

/* AI Teacher on the homepage: visitors see the start of the answer, the rest blurred */
.dstore-askhome .dstore-ask { max-width: 820px; }
.dstore-askhome__more { margin: 12px 0 0; }
.dstore-ask__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.dstore-ask__locked { position: relative; margin: 0 0 6px; min-height: 170px; }
.dstore-ask__blur { filter: blur(5px); user-select: none; pointer-events: none; opacity: .75; }
.dstore-ask__blur p { margin: 0 0 10px; }
.dstore-ask__gate { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 16px; background: linear-gradient(to bottom, rgba(246, 247, 249, .2), rgba(246, 247, 249, .92) 35%); }
.dstore-ask__gate strong { font-size: 18px; }
.dstore-ask__gate p { margin: 0; max-width: 440px; }
.dstore-ask__cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 8px 0 0 !important; }
.dstore-ask__error .dstore-ask__cta { justify-content: flex-start; }
/* Elements the scripts show and hide: "hidden" must win over their display rules. */
.dstore [hidden] { display: none !important; }

/* Worked solutions (1.18.0): maths, batches, what an answer used */
.dstore-ask__answer .katex-display { margin: 6px 0 10px; overflow-x: auto; overflow-y: hidden; padding: 2px 0; }
.dstore-ask__answer .katex { font-size: 1.08em; }
.dstore-ask__read .katex { font-size: 1em; }
.dstore-ask__batch { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--ds-line); }
.dstore-ask__next { margin: 14px 0 0; }
.dstore-ask__used { margin: 10px 0 0; font-size: 13px; color: var(--ds-muted); }

/* Token shop (1.19.0) */
.dstore-tokenshop__packs { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-top: 12px; }
.dstore-tokenshop__pack { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; padding: 16px; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-soft); }
.dstore-tokenshop__pack strong { font-size: 20px; }
.dstore-tokenshop__pack .dstore-inline, .dstore-tokenshop__pack .dstore-btn { width: 100%; }

/* Profile dashboard (1.20.0): figures and the AI Teacher in the main column, subjects in the sidebar */
.dstore-dash { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 22px; align-items: start; }
.dstore-dash__main { min-width: 0; }
.dstore-dash__side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 16px; }
.dstore-dash__side .dstore-box { margin: 0; }
.dstore-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.dstore-fig { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: 12px; align-items: center; padding: 14px 16px; background: var(--ds-card); border: 1px solid var(--ds-line); border-radius: 14px; color: inherit !important; text-decoration: none !important; transition: box-shadow .15s ease, transform .15s ease; }
.dstore-fig:hover { box-shadow: 0 8px 22px rgba(16, 24, 40, .08); transform: translateY(-1px); }
.dstore-fig__icon { grid-row: 1 / 4; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: #eef2ff; color: #4f46e5; }
.dstore-fig__n { font-size: 26px; font-weight: 700; line-height: 1.1; letter-spacing: -.02em; }
.dstore-fig__label { font-weight: 600; font-size: 14px; }
.dstore-fig__sub { font-size: 12px; color: var(--ds-muted); }
.dstore-fig--saved .dstore-fig__icon { background: #fdf2f8; color: #db2777; }
.dstore-fig--tokens .dstore-fig__icon { background: #fffbeb; color: #d97706; }
.dstore-fig--ai .dstore-fig__icon { background: #f5f3ff; color: #7c3aed; }
.dstore-fig--live .dstore-fig__icon { background: #ecfdf5; color: #059669; }
.dstore-fig--review .dstore-fig__icon { background: #f0f9ff; color: #0284c7; }
.dstore-dash-ask { border-color: #e0e7ff; background: linear-gradient(180deg, #fafaff, var(--ds-card) 60%); }
.dstore-dash-ask > p { margin: 0 0 12px; }
.dstore-fig--bids .dstore-fig__icon { background: #fff7ed; color: #ea580c; }
/* AI Teacher and Ask a helper: side by side when there is room. */
.dstore-dash-help { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 18px; align-items: start; }
.dstore-dash-help--two { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
.dstore-dash-help .dstore-box { margin-bottom: 18px; }
.dstore-dash-qa { border-color: #fed7aa; background: linear-gradient(180deg, #fffaf5, var(--ds-card) 60%); }
.dstore-dash-qa > p { margin: 0 0 12px; }
.dstore-dash-qa .dstore-qa__note { margin: 0 0 10px; font-size: 13px; }
.dstore-dash-qa__list { list-style: none; margin: 0 0 12px; padding: 0; }
.dstore-dash-qa__item { display: flex; flex-direction: column; gap: 2px; padding: 8px 0 8px 10px; border-left: 3px solid #cbd5e1; margin: 0 0 6px; }
.dstore-dash-qa__item--open { border-left-color: #16a34a; }
.dstore-dash-qa__item--scheduled { border-left-color: #f59e0b; }
.dstore-dash-qa__item a { font-weight: 600; color: var(--ds-ink); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dstore-dash-qa__item a:hover { color: var(--ds-accent); }
.dstore-dash-qa__item .dstore-muted { font-size: 13px; }
.dstore-dash-qa__btns { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 0; }
/* Study tools: one tile per tool that is switched on. */
.dstore-dash-tools h3 { margin: 0 0 12px; }
.dstore-tools { display: grid; grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 10px; }
.dstore-tool { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; padding: 12px; border: 1px solid var(--ds-line); border-radius: 12px; color: inherit !important; text-decoration: none !important; transition: box-shadow .15s ease, border-color .15s ease; }
.dstore-tool:hover { border-color: #c7d2fe; box-shadow: 0 6px 16px rgba(16, 24, 40, .07); }
.dstore-tool__icon { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: #eef2ff; color: #4f46e5; }
.dstore-tool--flashcards .dstore-tool__icon { background: #fdf2f8; color: #db2777; }
.dstore-tool--lectures .dstore-tool__icon { background: #ecfdf5; color: #059669; }
.dstore-tool--exams .dstore-tool__icon { background: #fffbeb; color: #d97706; }
.dstore-tool--checker .dstore-tool__icon { background: #f0f9ff; color: #0284c7; }
.dstore-tool__name { font-weight: 600; font-size: 14px; }
.dstore-tool__sub { font-size: 12px; color: var(--ds-muted); line-height: 1.35; }
@media (max-width: 1180px) { .dstore-dash-help--two { grid-template-columns: minmax(0, 1fr); } }
.dstore-side-box h3 { margin: 0 0 10px; font-size: 16px; }
.dstore-side-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.dstore-side-box .dstore-follow { border: 0; padding: 0; background: none; overflow: visible; }
.dstore-side-box .dstore-follow summary { display: inline; padding: 0; color: var(--ds-accent); font-weight: 600; cursor: pointer; }
.dstore-side-box .dstore-follow[open] summary { display: block; margin-bottom: 10px; }
.dstore-side-box .dstore-follow__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; max-height: 260px; overflow: auto; }
.dstore-side-links { list-style: none; margin: 0; padding: 0; }
.dstore-side-links li a { display: flex; justify-content: space-between; padding: 8px 0; border-top: 1px solid var(--ds-line); color: inherit; text-decoration: none; font-size: 15px; }
.dstore-side-links li:first-child a { border-top: 0; }
.dstore-side-links li a:hover { color: var(--ds-accent); }
.dstore-side-recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.dstore-side-recent a { display: flex; gap: 10px; align-items: center; color: inherit; text-decoration: none; font-size: 14px; line-height: 1.3; }
.dstore-side-recent a:hover span:last-child { color: var(--ds-accent); }
.dstore-side-recent__cover { flex: none; width: 40px; height: 52px; border-radius: 6px; overflow: hidden; background: var(--ds-soft); border: 1px solid var(--ds-line); }
.dstore-side-recent__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.dstore-side-recent a span:last-child { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 1100px) { .dstore-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) {
	.dstore-dash { grid-template-columns: minmax(0, 1fr); }
	.dstore-dash__side { position: static; }
}
@media (max-width: 480px) {
	/* Narrow tiles: icon on top, so the labels get the full width. */
	.dstore-fig { grid-template-columns: 1fr; padding: 12px; }
	.dstore-fig__icon { grid-row: auto; width: 34px; height: 34px; margin-bottom: 8px; }
	.dstore-fig__n { font-size: 22px; }
}
@media (prefers-reduced-motion: reduce) { .dstore-fig { transition: none; } .dstore-fig:hover { transform: none; } }

/* Store Admin → Customers: give or take tokens (1.21.0) */
.dstore-give__form { display: grid; grid-template-columns: 160px 1fr; gap: 12px 16px; align-items: start; }
.dstore-give__quick { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; }
.dstore-give__quick .dstore-chip { cursor: pointer; border: 1px solid var(--ds-line); background: var(--ds-card); font: inherit; font-size: 14px; }
.dstore-give__quick .dstore-chip:hover { border-color: var(--ds-accent); color: var(--ds-accent); }
.dstore-give__form label { display: flex; flex-direction: column; gap: 4px; font-size: 14px; font-weight: 600; }
.dstore-give__form input[type="number"], .dstore-give__form input[type="text"] { padding: 9px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; font-weight: 400; }
.dstore-give__form small { font-weight: 400; color: var(--ds-muted); }
.dstore-give__notify { grid-column: 1 / -1; flex-direction: row !important; align-items: center; gap: 8px !important; font-weight: 400 !important; }
.dstore-give__form .dstore-btn { grid-column: 1 / -1; justify-self: start; }
.dstore-give__log { margin-top: 14px; }
.dstore-give__log summary { cursor: pointer; color: var(--ds-accent); font-weight: 600; }
.dstore-crm__tokens a { margin-left: 6px; font-size: 13px; }
@media (max-width: 600px) { .dstore-give__form { grid-template-columns: 1fr; } }

/* Customer activity (1.22.0) */
.dstore-activity__sum { font-size: 14px; margin: 0 0 12px; }
.dstore-activity__filters { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.dstore-activity__filters .dstore-chip { text-decoration: none; }
.dstore-activity__filters .dstore-chip.is-current { background: var(--ds-accent); border-color: var(--ds-accent); color: #fff; }
.dstore-activity__list { list-style: none; margin: 0; padding: 0; }
.dstore-activity__day { margin: 14px 0 6px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ds-muted); }
.dstore-activity__day:first-child { margin-top: 0; }
.dstore-activity__row { display: grid; grid-template-columns: 74px 14px 1fr; gap: 10px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--ds-line); font-size: 14px; }
.dstore-activity__row time { color: var(--ds-muted); font-size: 13px; white-space: nowrap; }
.dstore-activity__dot { width: 9px; height: 9px; border-radius: 50%; background: #94a3b8; align-self: center; }
.dstore-activity__row--account .dstore-activity__dot { background: #64748b; }
.dstore-activity__row--docs .dstore-activity__dot { background: #4f46e5; }
.dstore-activity__row--money .dstore-activity__dot { background: #059669; }
.dstore-activity__row--tokens .dstore-activity__dot { background: #d97706; }
.dstore-activity__row--ai .dstore-activity__dot { background: #7c3aed; }
.dstore-activity__row--uploads .dstore-activity__dot { background: #0284c7; }
.dstore-activity__what { min-width: 0; overflow-wrap: anywhere; }
.dstore-activity__detail { display: block; color: var(--ds-muted); font-size: 13px; }
.dstore-activity__ip { display: inline-block; margin-top: 2px; padding: 1px 6px; border-radius: 6px; background: var(--ds-soft); font: 12px ui-monospace, monospace; color: var(--ds-muted); }
.dstore-activity__note { margin: 12px 0 0; font-size: 12px; }
.dstore-activity .dstore-pager { justify-content: flex-start; align-items: center; gap: 12px; }
@media (max-width: 600px) { .dstore-activity__row { grid-template-columns: 58px 10px 1fr; gap: 8px; } }

/* Plagiarism checker (1.24.0) */
.dstore-checker textarea { width: 100%; min-height: 220px; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 10px; font: inherit; line-height: 1.55; resize: vertical; }
.dstore-checker textarea:disabled { background: var(--ds-soft); color: var(--ds-muted); }
.dstore-checker__file { position: relative; display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; padding: 8px 14px; border: 1px solid var(--ds-line); border-radius: 10px; background: var(--ds-soft); font-weight: 600; }
.dstore-checker__file[hidden] { display: none; }
.dstore-checker__price { margin: 10px 0 0; font-size: 14px; }
.dstore-checker__steps { list-style: none; margin: 16px 0 0; padding: 0; }
.dstore-checker__steps li { position: relative; padding: 5px 0 5px 30px; color: var(--ds-muted); }
.dstore-checker__steps li::before { content: ""; position: absolute; left: 4px; top: 9px; width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--ds-line); }
.dstore-checker__steps li.is-active { color: var(--ds-ink); font-weight: 600; }
.dstore-checker__steps li.is-active::before { border-color: var(--ds-accent); border-top-color: transparent; animation: dstore-spin .8s linear infinite; }
.dstore-checker__steps li.is-done { color: var(--ds-ink); }
.dstore-checker__steps li.is-done::before { content: "✓"; border: 0; top: 4px; color: var(--ds-ok); font-weight: 700; }
.dstore-checker__steps li.is-failed::before { content: "!"; border: 0; top: 4px; left: 8px; color: var(--ds-err); font-weight: 700; }
@keyframes dstore-spin { to { transform: rotate(360deg); } }
.dstore-checker__msg { margin-top: 14px; padding: 12px 14px; border-radius: 10px; background: #fef3f2; color: var(--ds-ink); }
.dstore-checker__msg p { margin: 0 0 6px; }
.dstore-checker__msg p:last-child { margin: 0; }
.dstore-checker__result { margin-top: 18px; }
.dstore-checker__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 14px; }
.dstore-checker__actions:empty { display: none; }
.dstore-checker__history { margin-top: 18px; }
.dstore-checker__history .dstore-list li > .dstore-checker__pill:first-child { flex: none; }
.dstore-checker__history .dstore-list li > a { flex: 1 1 220px; font-weight: 600; }
.dstore-checker__pill { display: inline-block; min-width: 48px; padding: 2px 8px; border-radius: 999px; text-align: center; font-weight: 700; font-size: 13px; background: #ecfdf3; color: var(--ds-ok); }
.dstore-checker__pill--warn { background: #fffaeb; color: var(--ds-warn); }
.dstore-checker__pill--high { background: #fef3f2; color: var(--ds-err); }
.dstore-checker__privacy { margin-top: 14px; font-size: 13px; }

/* The originality report, on the page (the PDF has its own copy of these rules) */
.dstore-orig__head { border-bottom: 1px solid var(--ds-line); padding-bottom: 10px; margin-bottom: 14px; }
.dstore-orig__head h2 { margin: 2px 0 4px; }
.dstore-orig__brand { margin: 0; color: var(--ds-accent); font-weight: 700; font-size: 12px; letter-spacing: .05em; text-transform: uppercase; }
.dstore-orig__meta { margin: 0; color: var(--ds-muted); font-size: 14px; overflow-wrap: anywhere; }
.dstore-orig__score { display: flex; align-items: center; gap: 16px; padding: 14px 18px; border-radius: var(--ds-radius); background: #ecfdf3; border: 1px solid #abefc6; }
.dstore-orig__score p { margin: 2px 0 0; color: var(--ds-muted); font-size: 14px; }
.dstore-orig__score--warn { background: #fffaeb; border-color: #fedf89; }
.dstore-orig__score--high { background: #fef3f2; border-color: #fecdca; }
.dstore-orig__num { flex: none; font-size: 40px; font-weight: 800; line-height: 1; color: var(--ds-ok); }
.dstore-orig__score--warn .dstore-orig__num { color: var(--ds-warn); }
.dstore-orig__score--high .dstore-orig__num { color: var(--ds-err); }
.dstore-orig__note { margin: 10px 0 0; padding: 8px 12px; border-radius: 8px; background: var(--ds-soft); font-size: 14px; }
.dstore-orig h3 { margin: 22px 0 8px; font-size: 18px; }
.dstore-orig__sources { list-style: none; margin: 0; padding: 0; }
.dstore-orig__sources li { display: flex; align-items: flex-start; gap: 10px; padding: 8px 0; border-top: 1px solid var(--ds-line); }
.dstore-orig__sources li:first-child { border-top: 0; }
.dstore-orig__swatch { flex: none; width: 26px; height: 26px; border-radius: 7px; text-align: center; font-weight: 700; font-size: 13px; line-height: 26px; color: var(--ds-ink); }
.dstore-orig__src { flex: 1; min-width: 0; }
.dstore-orig__src strong, .dstore-orig__src a, .dstore-orig__src small { display: block; overflow-wrap: anywhere; }
.dstore-orig__src a { font-size: 14px; }
.dstore-orig__src small { color: var(--ds-muted); font-size: 12px; }
.dstore-orig__pct { flex: none; font-weight: 700; }
.dstore-orig__text { padding: 4px 16px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); line-height: 1.65; overflow-wrap: anywhere; }
.dstore-orig__text mark { color: inherit; padding: 1px 0; border-radius: 2px; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.dstore-orig__text sup { font-size: 11px; font-weight: 700; color: var(--ds-muted); margin-left: 1px; }
.dstore-orig__how { margin-top: 18px; padding: 12px 16px; border-radius: var(--ds-radius); background: var(--ds-soft); font-size: 14px; }
.dstore-orig__how ul { margin: 6px 0 0; padding-left: 18px; }
@media (max-width: 600px) { .dstore-orig__score { flex-direction: column; align-items: flex-start; gap: 8px; } .dstore-orig__num { font-size: 34px; } .dstore-orig__text { padding: 2px 12px; } }
@media print { .dstore-checker > .dstore-box:first-child, .dstore-checker__history, .dstore-checker__actions, .dstore-checker__privacy { display: none; } }
/* Locked report: the score shows, the rest is blurred behind the paywall (1.24.0) */
.dstore-checker__locked { min-height: 320px; margin-top: 16px; }
.dstore-checker__locked .dstore-ask__blur .dstore-orig__text { margin-top: 12px; }
.dstore-checker__locked .dstore-ask__gate { background: linear-gradient(to bottom, rgba(255, 255, 255, .25), rgba(255, 255, 255, .94) 30%); }
.dstore-checker__locked .dstore-ask__gate p { max-width: 460px; }
.dstore-checker__pay { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 8px 0 4px; }
.dstore-checker--home .dstore-checker__result { margin-top: 14px; }
.dstore-checker--home .dstore-orig__head { display: none; }
.dstore-checker--home .dstore-checker__locked { min-height: 280px; }

/* "How it works" and questions under the study tools (1.25.0) */
.dstore-toolinfo { margin-top: 28px; }
.dstore-toolinfo h2 { margin: 26px 0 12px; font-size: 22px; }
.dstore-toolinfo__steps { margin: 0; padding: 0; list-style: none; counter-reset: dstore-step; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.dstore-toolinfo__steps li { counter-increment: dstore-step; position: relative; padding: 14px 16px 14px 52px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-toolinfo__steps li::before { content: counter(dstore-step); position: absolute; left: 14px; top: 13px; width: 26px; height: 26px; border-radius: 50%; background: var(--ds-accent); color: var(--ds-accent-ink); font-weight: 700; text-align: center; line-height: 26px; font-size: 14px; }
.dstore-toolinfo__faq details { border: 1px solid var(--ds-line); border-radius: 10px; padding: 12px 16px; margin: 0 0 10px; background: var(--ds-card); }
.dstore-toolinfo__faq summary { cursor: pointer; font-weight: 600; }
.dstore-toolinfo__faq p { margin: 8px 0 0; color: var(--ds-muted); }

/* Store Admin → Duplicates (1.26.0) */
.dstore-tabs a span.is-alert { background: #fef3f2; color: var(--ds-err); font-weight: 700; }
.dstore-dupes .dstore-inbox__text { display: flex; flex-direction: column; gap: 4px; }
.dstore-dupe { margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-dupe.is-done { opacity: .55; }
.dstore-dupe__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.dstore-dupe__row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--ds-line); }
.dstore-dupe__row.is-gone { opacity: .45; text-decoration: line-through; }
.dstore-dupe__cover { flex: none; width: 46px; height: 60px; border: 1px solid var(--ds-line); border-radius: 6px; overflow: hidden; background: var(--ds-soft); }
.dstore-dupe__cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.dstore-dupe__main { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.dstore-dupe__main a { font-weight: 600; overflow-wrap: anywhere; }
.dstore-dupe__main .dstore-muted { font-size: 13px; }
.dstore-dupe__status { flex: none; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #fffaeb; color: var(--ds-warn); }
.dstore-dupe__status--publish { background: #ecfdf3; color: var(--ds-ok); }
.dstore-dupe__score { flex: none; min-width: 72px; font-weight: 700; }
.dstore-dupe .dstore-btn--danger.is-confirm { background: var(--ds-err); color: #fff; }
.dstore-dupe__msg { margin: 6px 0 0; }
.dstore-dupe__msg:empty { display: none; }
/* Duplicates: the automatic rule and the best copy (1.26.1) */
.dstore-dupe-rule { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 16px; padding: 14px 16px; border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); }
.dstore-dupe-rule > p { flex-basis: 100%; margin: 0; font-size: 13px; }
.dstore-dupe-rule select { width: auto; max-width: 100%; margin-left: 6px; }
.dstore-dupe-rule .dstore-history { flex-basis: 100%; }
.dstore-dupe-rule .dstore-list li > span:first-child { display: flex; flex-direction: column; }
.dstore-dupe__best { flex: none; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #eef2ff; color: var(--ds-accent); }

/* Library: subjects sidebar and short pager (1.29.0) */
.dstore-card__body { flex: 1; } /* pages and price line up along the bottom of every card in a row */
.dstore-library { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 28px; align-items: start; }
.dstore-library__side { position: sticky; top: 90px; }
.dstore-libsubjects { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); background: var(--ds-card); padding: 6px 0 8px; }
.dstore-libsubjects summary { padding: 8px 16px; font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ds-muted); list-style: none; cursor: default; }
.dstore-libsubjects summary::-webkit-details-marker { display: none; }
.dstore-libsubjects__find { display: block; box-sizing: border-box; width: calc(100% - 24px); margin: 2px 12px 8px; padding: 8px 12px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; font-size: 14px; }
.dstore-libsubjects__list { list-style: none; margin: 0; padding: 0 6px; max-height: calc(100vh - 220px); overflow-y: auto; }
.dstore-libsubjects__list li[hidden] { display: none; }
.dstore-libsubjects__list a { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 7px 10px; border-radius: 8px; color: var(--ds-ink) !important; text-decoration: none !important; font-size: 15px; }
.dstore-libsubjects__list a:hover { background: var(--ds-soft); }
.dstore-libsubjects__list a.is-current { background: var(--ds-accent); color: var(--ds-accent-ink) !important; font-weight: 600; }
.dstore-library__count { margin: -6px 0 16px; color: var(--ds-muted); font-size: 15px; }
.dstore-library__count strong { color: var(--ds-ink); }
.dstore-library__clear { margin-left: 8px; }
.dstore-pager { flex-wrap: wrap; align-items: center; }
.dstore-pager__gap { padding: 6px 4px; color: var(--ds-muted); }
.dstore-pager a { font-variant-numeric: tabular-nums; min-width: 40px; text-align: center; }
@media (max-width: 900px) {
	.dstore-library { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.dstore-library__side { position: static; }
	.dstore-libsubjects summary { cursor: pointer; display: flex; justify-content: space-between; text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--ds-ink); }
	.dstore-libsubjects summary::after { content: "▾"; color: var(--ds-muted); }
	.dstore-libsubjects[open] summary::after { content: "▴"; }
	.dstore-libsubjects__list { max-height: 50vh; }
}

/* Writing Assistant */
.dstore-writer { --ds-accent: #2563eb; }
.dstore-writer__tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 16px; padding: 4px; background: #eef2ff; border-radius: 12px; }
.dstore-writer__tabs button { flex: 1 1 auto; padding: 9px 14px; border: 0; border-radius: 9px; background: transparent; font: inherit; font-size: 15px; font-weight: 600; color: var(--ds-muted); cursor: pointer; }
.dstore-writer__tabs button[aria-selected="true"] { background: #fff; color: var(--ds-accent); box-shadow: 0 1px 3px rgba(15, 23, 42, .12); }
.dstore-writer__row { margin: 0 0 12px; }
.dstore-writer__row[hidden] { display: none; }
.dstore-writer__row label { display: block; font-weight: 600; font-size: 14px; }
.dstore-writer__row input[type="text"], .dstore-writer__row input[type="number"], .dstore-writer__row select, .dstore-writer__row textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 5px; padding: 9px 11px; border: 1px solid var(--ds-line); border-radius: 9px; font: inherit; font-weight: 400; background: var(--ds-card, #fff); }
.dstore-writer__row--cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.dstore-writer__row--cols label[hidden] { display: none; }
.dstore-writer__cost { font-size: 14px; color: var(--ds-muted); }
.dstore-writer__price { margin: 8px 0 0; font-size: 13px; }
.dstore-writer__result { margin-top: 18px; }
.dstore-writer__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.dstore-writer__head h2 { margin: 0; flex: 1 1 auto; font-size: 20px; }
.dstore-writer__history { margin-top: 18px; }
.dstore-writer__history h3 { margin: 0 0 12px; }

/* Study tools: Flashcards & Quizzes, Lecture to Notes, Mock Exams */
.dstore-study__form { margin-top: 6px; }
.dstore-study__label { display: block; font-weight: 600; font-size: 14px; margin: 0 0 12px; }
.dstore-study__label input, .dstore-study__label textarea, .dstore-study__cols select, .dstore-study__cols input { display: block; width: 100%; box-sizing: border-box; margin-top: 5px; padding: 9px 11px; border: 1px solid var(--ds-line); border-radius: 9px; font: inherit; font-weight: 400; background: var(--ds-card, #fff); }
.dstore-study__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0 0 12px; }
.dstore-study__cols label { font-weight: 600; font-size: 14px; }
.dstore-study__check { display: block; margin: 0 0 10px; font-size: 14px; }
.dstore-study__source { margin: 0 0 12px; padding: 10px 12px; background: var(--ds-soft); border-radius: 10px; }
.dstore-study__source .dstore-linkbtn { margin-left: 8px; font-size: 13px; }
.dstore-study__hint { margin: -6px 0 12px; font-size: 13px; }
.dstore-study__cost { font-size: 14px; color: var(--ds-muted); }
.dstore-study__price { margin: 8px 0 0; font-size: 13px; }
.dstore-study__result, .dstore-study__list, .dstore-exam { margin-top: 18px; }
.dstore-study__list h3 { margin: 0 0 10px; }
.dstore-study__list ul { list-style: none; margin: 0; padding: 0; }
.dstore-study__list li { padding: 8px 0; border-top: 1px solid var(--ds-line); }
.dstore-study__list li:first-child { border-top: 0; }
.dstore-study__open { color: var(--ds-ink); font-weight: 600; text-decoration: none; }
.dstore-study__open:hover { color: var(--ds-accent); }
.dstore-study__next { margin: 16px 0 0; }
.dstore-study__transcript { margin-top: 14px; }
.dstore-study__transcript summary { cursor: pointer; font-weight: 600; }
.dstore-study__drop { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 16px; border: 2px dashed var(--ds-line); border-radius: 12px; margin: 0 0 12px; }
.dstore-study__drop input[type="file"] { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dstore-study__drop p { flex-basis: 100%; margin: 0; font-size: 13px; }
.dstore-study__progress { height: 8px; border-radius: 99px; background: var(--ds-soft); overflow: hidden; margin: 12px 0 0; }
.dstore-study__progress span { display: block; height: 100%; width: 0; background: var(--ds-accent); transition: width .3s; }
.dstore-study__progress[hidden] { display: none; }
.dstore-lec__dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #d92d20; margin-right: 8px; vertical-align: middle; flex: none; }
.dstore-btn .dstore-lec__dot { background: #fff; }
.dstore-lec__dot.is-on { animation: dstore-lec-pulse 1.4s ease-in-out infinite; }
@keyframes dstore-lec-pulse { 50% { opacity: .25; } }
@media (prefers-reduced-motion: reduce) { .dstore-lec__dot.is-on { animation: none; } }
.dstore-lec-live { margin-top: 18px; }
.dstore-study .is-cued { box-shadow: 0 0 0 4px rgba(217, 45, 32, .25); animation: dstore-cue 1.2s ease-in-out 3; }
@keyframes dstore-cue { 50% { box-shadow: 0 0 0 9px rgba(217, 45, 32, .12); } }
@media (prefers-reduced-motion: reduce) { .dstore-study .is-cued { animation: none; } }

/* Homepage "Study Tools" tab: a sub-tab per tool, each a quick start into the tool's page. */
.dstore-studyhome__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.dstore-studyhome__tabs button { display: inline-flex; align-items: center; gap: 6px; padding: 7px 13px; border: 1px solid var(--ds-line); border-radius: 99px; background: var(--ds-card, #fff); color: var(--ds-ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.dstore-studyhome__tabs button:hover { border-color: var(--ds-accent); color: var(--ds-accent); }
.dstore-studyhome__tabs button[aria-selected="true"] { background: var(--ds-accent); border-color: var(--ds-accent); color: #fff; }
.dstore-studyhome__tabs button:focus-visible { outline: 2px solid var(--ds-accent); outline-offset: 2px; }
.dstore-studyhome__panel[hidden] { display: none; }
.dstore-studyhome__lead { margin: 0 0 12px; font-size: 15px; }
.dstore-studyhome__go { display: flex; flex-wrap: wrap; gap: 10px; }
.dstore-studyhome__go .dstore-btn { display: inline-flex; align-items: center; justify-content: center; }
.dstore-studyhome__foot { margin: 12px 0 0; font-size: 13px; }
@media (max-width: 560px) {
	.dstore-studyhome__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
	.dstore-studyhome__tabs button { justify-content: center; padding: 8px 6px; font-size: 13px; }
	.dstore-studyhome__go .dstore-btn { flex: 1 1 100%; }
}
.dstore-lec-live__head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.dstore-lec-live__head h2 { margin: 0; font-size: 20px; flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
.dstore-lec-live__clock { font-variant-numeric: tabular-nums; font-weight: 600; }
.dstore-lec-live__meter { width: 70px; height: 6px; border-radius: 99px; background: var(--ds-soft); overflow: hidden; }
.dstore-lec-live__meter i { display: block; height: 100%; width: 0; background: var(--ds-accent); transition: width .15s; }
.dstore-lec-live__status { margin: 8px 0 14px; font-size: 13px; min-height: 1.4em; }
.dstore-lec-live__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.dstore-lec-live__cols h3 { margin: 0 0 8px; font-size: 16px; }
.dstore-lec-live__text, .dstore-lec-live__notes { max-height: 60vh; overflow-y: auto; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 10px; background: var(--ds-card, #fff); }
.dstore-lec-live__text p { margin: 0 0 10px; line-height: 1.55; }
.dstore-lec-live__text p:last-child { margin: 0; }
.dstore-lec-live__time { font-size: 12px; color: var(--ds-muted); font-variant-numeric: tabular-nums; margin-right: 4px; }
@media (max-width: 760px) {
	.dstore-lec-live__cols { grid-template-columns: 1fr; }
	.dstore-lec-live__text, .dstore-lec-live__notes { max-height: 45vh; }
	.dstore-lec-live__head h2 { flex-basis: calc(100% - 30px); }
	.dstore-lec-live__head .dstore-btn { flex-basis: 100%; }
}
/* Flashcards */
.dstore-fc__card { perspective: 1200px; cursor: pointer; margin: 6px auto 0; max-width: 620px; outline: none; }
.dstore-fc__inner { position: relative; min-height: 230px; transition: transform .5s; transform-style: preserve-3d; }
.dstore-fc__card.is-flipped .dstore-fc__inner { transform: rotateY(180deg); }
.dstore-fc__face { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 24px; border-radius: 16px; border: 1px solid var(--ds-line); background: var(--ds-card, #fff); box-shadow: 0 8px 24px rgba(15, 23, 42, .08); backface-visibility: hidden; font-size: 20px; line-height: 1.4; font-weight: 600; color: var(--ds-ink); }
.dstore-fc__back { transform: rotateY(180deg); font-weight: 400; font-size: 17px; background: #f5f3ff; }
.dstore-fc__card:focus-visible .dstore-fc__face { box-shadow: 0 0 0 3px var(--ds-accent); }
.dstore-fc__card.is-known .dstore-fc__front { border-color: #16a34a; }
.dstore-fc__hint { text-align: center; font-size: 13px; margin: 8px 0; }
.dstore-fc__bar { display: flex; justify-content: center; align-items: center; gap: 12px; margin: 10px 0; flex-wrap: wrap; }
.dstore-fc__pos { min-width: 60px; text-align: center; font-variant-numeric: tabular-nums; color: var(--ds-muted); }
.dstore-fc__know { background: #16a34a; border-color: #16a34a; }
.dstore-fc__again { background: #f59e0b; border-color: #f59e0b; }
.dstore-fc__known { text-align: center; font-size: 14px; color: var(--ds-muted); }
.dstore-fc__all { display: none; }
@media print {
	.dstore-fc__card, .dstore-fc__hint, .dstore-fc__bar, .dstore-fc__known, .dstore-writer__tabs, [data-fc-print] { display: none !important; }
	.dstore-fc__all { display: block; }
	.dstore-fc__all li { margin: 0 0 10px; break-inside: avoid; }
	[data-fc-pane="quiz"] { display: block !important; }
}
/* Quiz and exam questions */
.dstore-quiz { margin: 12px 0 0; padding-left: 22px; }
.dstore-quiz__q { margin: 0 0 18px; padding: 12px 14px; border: 1px solid var(--ds-line); border-radius: 12px; }
.dstore-quiz__q > p:first-child, .dstore-exam__q { margin: 0 0 8px; font-weight: 600; }
.dstore-quiz__opt { display: flex; gap: 8px; align-items: baseline; padding: 6px 8px; border-radius: 8px; cursor: pointer; }
.dstore-quiz__opt:hover { background: var(--ds-soft); }
.dstore-quiz__q.is-right { border-color: #16a34a; background: #f0fdf4; }
.dstore-quiz__q.is-wrong { border-color: #dc2626; background: #fef2f2; }
.dstore-quiz__opt.is-answer { font-weight: 600; color: #15803d; }
.dstore-quiz__why { margin: 6px 0 0; font-size: 14px; color: var(--ds-muted); }
.dstore-quiz__q textarea { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--ds-line); border-radius: 9px; font: inherit; }
/* Mock exams */
.dstore-exam__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; position: sticky; top: 70px; background: var(--ds-card, #fff); padding: 8px 0; z-index: 5; }
.dstore-exam__head h2 { margin: 0; font-size: 20px; }
.dstore-exam__timer { font-weight: 700; font-variant-numeric: tabular-nums; padding: 6px 12px; border-radius: 99px; background: var(--ds-soft); }
.dstore-exam__timer:empty { display: none; }
.dstore-exam__timer.is-low { background: #fee2e2; color: #b91c1c; }
.dstore-exam__n { margin: 0 0 2px; font-size: 13px; }
.dstore-exam__score { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border-radius: 14px; margin: 0 0 14px; }
.dstore-exam__score--good { background: #dcfce7; }
.dstore-exam__score--ok { background: #fef9c3; }
.dstore-exam__score--low { background: #fee2e2; }
.dstore-exam__pct { font-size: 34px; font-weight: 800; line-height: 1; }
.dstore-exam__topics { list-style: none; margin: 0 0 14px; padding: 0; }
.dstore-exam__topics li { display: grid; grid-template-columns: minmax(0, 1fr) 140px 44px; gap: 10px; align-items: center; padding: 4px 0; font-size: 14px; }
.dstore-exam__bar { height: 8px; border-radius: 99px; background: var(--ds-soft); overflow: hidden; }
.dstore-exam__bar span { display: block; height: 100%; background: var(--ds-accent); }
.dstore-exam__review { padding-left: 22px; }
.dstore-exam__review li { margin: 0 0 14px; padding: 10px 12px; border-left: 4px solid var(--ds-line); background: var(--ds-soft); border-radius: 0 10px 10px 0; }
.dstore-exam__review li.is-right { border-left-color: #16a34a; }
.dstore-exam__review li.is-part { border-left-color: #f59e0b; }
.dstore-exam__review li.is-wrong { border-left-color: #dc2626; }
.dstore-exam__review p { margin: 0 0 6px; }
.dstore-exam__feedback { font-style: italic; }
/* "Study this" on a document's page */
.dstore-studythis { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; font-size: 14px; color: var(--ds-muted); }
.dstore-studythis a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1px solid var(--ds-line); border-radius: 99px; color: var(--ds-ink) !important; text-decoration: none !important; font-weight: 600; }
.dstore-studythis a:hover { border-color: var(--ds-accent); color: var(--ds-accent) !important; }

/* Store Admin → Settings: the WordPress settings page outside wp-admin */
.dstore-admin-settings { font-size: 15px; }
.dstore-admin-settings .wrap { margin: 0; }
.dstore-admin-settings h2 { margin: 28px 0 6px; font-size: 20px; }
.dstore-admin-settings .form-table { width: 100%; border-collapse: collapse; margin: 0 0 8px; }
.dstore-admin-settings .form-table > tbody > tr, .dstore-admin-settings .form-table > tr { border-bottom: 1px solid var(--ds-line); }
.dstore-admin-settings .form-table th { width: 220px; text-align: left; vertical-align: top; padding: 18px 16px 18px 0; font-weight: 600; color: var(--ds-ink); }
.dstore-admin-settings .form-table td { padding: 14px 0; vertical-align: top; }
.dstore-admin-settings .form-table td p { margin: 6px 0; }
.dstore-admin-settings input[type="text"], .dstore-admin-settings input[type="number"], .dstore-admin-settings input[type="email"], .dstore-admin-settings input[type="url"], .dstore-admin-settings input[type="password"], .dstore-admin-settings input[type="search"], .dstore-admin-settings select, .dstore-admin-settings textarea { box-sizing: border-box; max-width: 100%; padding: 7px 10px; border: 1px solid var(--ds-line); border-radius: 8px; font: inherit; font-size: 14px; background: #fff; color: var(--ds-ink); }
.dstore-admin-settings .regular-text { width: 26em; }
.dstore-admin-settings .large-text { width: 100%; }
.dstore-admin-settings .small-text { width: 6em; }
.dstore-admin-settings .code { font-family: ui-monospace, Consolas, monospace; font-size: 13px; }
.dstore-admin-settings textarea { width: 100%; }
.dstore-admin-settings label { cursor: pointer; }
.dstore-admin-settings .description { display: block; margin: 6px 0 0; color: var(--ds-muted); font-size: 13px; line-height: 1.5; }
.dstore-admin-settings span.description { display: inline; }
.dstore-admin-settings .button, .dstore-admin-settings input[type="submit"] { display: inline-flex; align-items: center; padding: 8px 16px; border: 1px solid var(--ds-accent); border-radius: 999px; background: #fff; color: var(--ds-accent); font: 600 14px/1.2 inherit; cursor: pointer; text-decoration: none; }
.dstore-admin-settings .button-primary, .dstore-admin-settings input[type="submit"].button-primary { background: var(--ds-accent); color: #fff; }
.dstore-admin-settings .button:hover { filter: brightness(.95); }
.dstore-admin-settings .widefat { width: 100%; border-collapse: collapse; border: 1px solid var(--ds-line); font-size: 14px; }
.dstore-admin-settings .widefat th, .dstore-admin-settings .widefat td { padding: 7px 10px; border-bottom: 1px solid var(--ds-line); text-align: left; }
.dstore-admin-settings .widefat.striped tbody tr:nth-child(odd) { background: var(--ds-soft); }
.dstore-admin-settings .notice { margin: 12px 0; padding: 10px 14px; border-left: 4px solid #72aee6; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); border-radius: 0 8px 8px 0; }
.dstore-admin-settings .notice p { margin: 0; }
.dstore-admin-settings .notice-success { border-left-color: #00a32a; }
.dstore-admin-settings .notice-error { border-left-color: #d63638; }
.dstore-admin-settings .notice-warning { border-left-color: #dba617; }
.dstore-admin-settings .dstore-settings form > p.submit { background: var(--ds-bg, #fff); }
.dstore-admin-settings code { font-size: 13px; background: var(--ds-soft); padding: 1px 5px; border-radius: 4px; }
@media (max-width: 782px) {
	.dstore-admin-settings .form-table th, .dstore-admin-settings .form-table td { display: block; width: auto; padding: 10px 0 4px; }
	.dstore-admin-settings .form-table td { padding: 0 0 14px; }
	.dstore-admin-settings .regular-text { width: 100%; }
}


/* Q&A Marketplace */
.dstore-qa__nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 16px; padding: 4px; background: #eef2ff; border-radius: 12px; }
.dstore-qa__nav a { padding: 9px 14px; border-radius: 9px; font-weight: 600; font-size: 15px; color: var(--ds-muted) !important; text-decoration: none !important; }
.dstore-qa__nav a.is-on { background: #fff; color: var(--ds-accent) !important; box-shadow: 0 1px 3px rgba(15, 23, 42, .12); }
.dstore-qa__note { margin: 0 0 14px; padding: 11px 14px; border-radius: 10px; background: #ecfdf5; border: 1px solid #a7f3d0; color: var(--ds-ink); }
.dstore-qa__note.is-bad { background: #fef2f2; border-color: #fecaca; }
.dstore-qa__form h2 { margin-top: 0; }
.dstore-qa__list { display: grid; gap: 12px; }
.dstore-qa__card { display: block; padding: 14px 16px; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-card, #fff); color: var(--ds-ink) !important; text-decoration: none !important; transition: border-color .15s, box-shadow .15s; }
.dstore-qa__card:hover { border-color: var(--ds-accent); box-shadow: 0 4px 14px rgba(15, 23, 42, .06); }
.dstore-qa__card-top { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; margin: 0 0 4px; }
.dstore-qa__card-title { display: block; font-size: 17px; line-height: 1.35; margin: 0 0 4px; }
.dstore-qa__card-body { display: block; color: var(--ds-muted); font-size: 14px; margin: 0 0 8px; }
.dstore-qa__card-meta { display: flex; flex-wrap: wrap; gap: 12px; font-size: 13px; }
.dstore-qa__budget { font-weight: 700; color: #15803d; }
.dstore-qa__filters { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.dstore-qa__filters input[type="search"], .dstore-qa__filters select { padding: 8px 10px; border: 1px solid var(--ds-line); border-radius: 9px; font: inherit; font-size: 14px; background: #fff; }
.dstore-qa__filters input[type="search"] { flex: 1 1 200px; }
.dstore-qa__chk { font-size: 14px; }
.dstore-qa__title { font-size: 24px; line-height: 1.3; margin: 4px 0 6px; }
.dstore-qa__by { margin: 0 0 12px; font-size: 14px; }
.dstore-qa__body p { margin: 0 0 10px; }
.dstore-qa__files { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.dstore-qa__files img { width: 140px; height: 105px; object-fit: cover; border-radius: 10px; border: 1px solid var(--ds-line); }
.dstore-qa__pdf { display: inline-flex; align-items: center; padding: 8px 12px; border: 1px solid var(--ds-line); border-radius: 10px; }
.dstore-qa__inline { margin: 10px 0 0; }
.dstore-qa__bids { margin-top: 18px; }
.dstore-qa__bids-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.dstore-qa__bids-head h2 { margin: 0; font-size: 20px; }
.dstore-qa__sort { display: flex; flex-wrap: wrap; gap: 4px; }
.dstore-qa__sort a { padding: 6px 11px; border-radius: 99px; font-size: 13px; border: 1px solid var(--ds-line); color: var(--ds-ink) !important; text-decoration: none !important; }
.dstore-qa__sort a.is-on { background: var(--ds-accent); border-color: var(--ds-accent); color: #fff !important; }
.dstore-qa__bid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; padding: 14px 16px; margin: 12px 0 0; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-card, #fff); }
.dstore-qa__bid-who { display: flex; gap: 10px; align-items: center; }
.dstore-qa__bid-who strong { display: block; }
.dstore-qa__bid-who .dstore-muted { font-size: 13px; }
.dstore-qa__avatar { border-radius: 50%; }
.dstore-qa__bid-terms { text-align: right; }
.dstore-qa__price { display: block; font-size: 22px; font-weight: 800; color: var(--ds-ink); }
.dstore-qa__bid-terms .dstore-muted { font-size: 13px; }
.dstore-qa__bid-msg { grid-column: 1 / -1; font-size: 15px; }
.dstore-qa__bid-msg p { margin: 0 0 8px; }
.dstore-qa__bid-foot { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; }
.dstore-qa__bid-foot .dstore-btn[disabled] { opacity: .55; cursor: not-allowed; }
.dstore-qa__soon { margin-top: 12px; font-size: 13px; }
.dstore-qa__bidform { margin-top: 18px; }
.dstore-qa__bidform h2 { margin-top: 0; }
.dstore-qa-admin__app { margin: 0 0 12px; }
.dstore-qa-admin__helpers { list-style: none; padding: 0; }
.dstore-qa-admin__helpers li { padding: 6px 0; border-bottom: 1px solid var(--ds-line); }
.dstore-qa-admin__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.dstore-qa-admin__table th, .dstore-qa-admin__table td { text-align: left; padding: 8px 6px; border-bottom: 1px solid var(--ds-line); }
@media (max-width: 600px) {
	.dstore-qa__bid { grid-template-columns: minmax(0, 1fr); }
	.dstore-qa__bid-terms { text-align: left; }
}

/* Q&A: drafts, scheduling and My questions */
.dstore-qa__actions { display: grid; gap: 10px; margin: 16px 0 8px; padding: 14px; border: 1px solid var(--ds-line); border-radius: 12px; background: var(--ds-soft); }
.dstore-qa__action { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.dstore-qa__action .dstore-muted { font-size: 13px; }
.dstore-qa__action input[type="datetime-local"] { padding: 8px 10px; border: 1px solid var(--ds-line); border-radius: 9px; font: inherit; font-size: 14px; background: #fff; }
.dstore-qa__pay { font-size: 13px; margin: 6px 0 0; }
.dstore-qa__keep { margin: 0 0 12px; }
.dstore-qa__keepfile { display: block; font-size: 14px; margin: 4px 0; }
.dstore-qa__profile-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0 0 12px; }
.dstore-qa__profile-head h3 { margin: 0; }
.dstore-qa__group { margin: 0 0 20px; }
.dstore-qa__group > h3 { font-size: 16px; margin: 0 0 8px; }
.dstore-qa__row { display: flex; justify-content: space-between; align-items: center; gap: 12px 16px; flex-wrap: wrap; padding: 12px 14px; border: 1px solid var(--ds-line); border-left-width: 4px; border-radius: 12px; background: var(--ds-card, #fff); }
.dstore-qa__row--draft { border-left-color: #94a3b8; }
.dstore-qa__row--scheduled { border-left-color: #f59e0b; }
.dstore-qa__row--open { border-left-color: #16a34a; }
.dstore-qa__row--closed { border-left-color: #cbd5e1; }
.dstore-qa__row-main { flex: 1 1 280px; min-width: 0; }
.dstore-qa__row-title { display: block; font-weight: 700; font-size: 16px; color: var(--ds-ink) !important; text-decoration: none !important; margin: 2px 0; }
.dstore-qa__row-title:hover { color: var(--ds-accent) !important; }
.dstore-qa__row-when { font-size: 13px; }
.dstore-qa__row-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.dstore-qa__row-actions form { margin: 0; }
.dstore-qa__pending .dstore-qa__row-actions { margin-top: 8px; }

/* Email verification banner, at the top of every page until the member verifies. */
.dstore-verify { background: #fffbeb; border-bottom: 1px solid #fde68a; color: #78350f; font-size: 14px; }
.dstore-verify__in { max-width: 1200px; margin: 0 auto; padding: 10px 16px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.dstore-verify__text { margin: 0; flex: 1 1 320px; line-height: 1.45; }
.dstore-verify__form { display: flex; align-items: center; gap: 8px; margin: 0; }
.dstore-verify__form input[type="text"] { width: 120px; padding: 7px 10px; border: 1px solid #fcd34d; border-radius: 9px; font: inherit; font-size: 15px; letter-spacing: .12em; background: #fff; }
.dstore-verify .dstore-btn { padding: 7px 16px; font-size: 14px; }
.dstore-verify .dstore-linkbtn { color: #92400e; font-size: 13px; }
.dstore-verify__msg { max-width: 1200px; margin: 0 auto; padding: 0 16px 10px; font-weight: 600; }
.dstore-verify__msg.is-error { color: #b42318; }
.dstore-verify__msg.is-ok { color: #067647; }
.dstore-chip--warn { color: #92400e; border-color: #fcd34d; background: #fffbeb; }

/* Outreach → Automatic emails */
.dstore-autos { margin-bottom: 22px; }
.dstore-autos > p { margin: 0 0 12px; }
.dstore-autos__campaigns { margin: 8px 0 12px; }
.dstore-autos__title { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; }
.dstore-autos__when { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dstore-autos__when input { width: 70px; }
