:root {
    --sv-completed-color: #999;
}

/* --- Trigger button --- */
.sv-btn{display:inline-block;padding:10px 14px;border:1px solid #ddd;border-radius:10px;background:#fff;cursor:pointer;font:600 14px/1 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.sv-btn:hover{background:#f6f6f8}

/* --- Bottom-sheet modal --- */
.sv-modal[hidden]{display:none}
.sv-modal{position:fixed;inset:0;z-index:9999;display:grid}
.sv-modal__backdrop{background:rgba(0,0,0,.42)}
.sv-modal__sheet {
    position: absolute;
    left: 50%;
    right: 0;
    bottom: 0;
    top: 0;
    height: 100dvh;
    max-height: 100dvh;
    background: #fff;
    border-radius: 0;
    /* box-shadow: 0 -8px 30px rgba(0,0,0,.12); */
    display: flex;
    flex-direction: column;
    max-width: 600px;
    transform: translate(-50%);
    transition: linear .2s;
    width: 100%;
    padding: 20px 0 0;
}
.sv-modal__close {
    align-self: flex-start;
    margin: 0;
    border: 0;
    background: #fff !important;
    font-size: 18px;
    padding: 0 8px 0 0;
    border-radius: 8px;
    cursor: pointer;
    color: #777 !important;
    font-weight: 600 !important;
}
#sv-mount{overflow:auto;padding:0 12px 16px}

/* --- Viewer --- */
.attain-sv{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}
.sv-header {
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 5;
    padding: 10px 0 0;
    border-bottom: 1px solid #eee;
}
.sv-title {
    display: flex;
    align-items: center;
    gap: 5px;
}
.sv-title h1 {
    font-size: 18px;
    margin: 0;
    color: var(--attain-secondary-color) !important;
    font-weight: 500 !important;
    font-size: 1.2rem !important;
}
.sv-progress{font-size:12px;color:#666}
.sv-search {
    display: block;
    margin-top: 8px;
    padding: 0 10px 10px;
}
.sv-search input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:10px;font-size:14px}

.sv-accordions{padding:8px 0}
.sv-section{border-bottom:1px solid #f0f0f0}
.sv-acc-btn {
    width: 100%;
    text-align: left;
    padding: 12px;
    background: #fafafa;
    border: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    cursor: pointer;
    text-wrap: auto;
    border-radius: 4px;
}

button.sv-acc-btn.attain-btn {
    background: #fff !important;
    border-radius: 0 !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}

button.sv-acc-btn.attain-btn:focus, button.sv-acc-btn.attain-btn:hover {
    color: var(--attain-primary-color) !important;
}

.sv-acc-btn[aria-expanded="true"] {
    background: #f5f8ff;
    border-radius: 4px !important;
}
.sv-acc-count{font-weight:500;color:#666;font-size:12px}
.sv-acc-panel {
    padding: 0;
}
.sv-topic-header {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: space-between;
    margin-top: -5px;
    cursor: pointer;
}
.sv-topic {
    display: grid;
    grid-template-columns: 28px 1fr;
    gap: 8px;
    padding: 8px 0;
    align-items: start;
}
.sv-topic + .sv-topic {
    border-top: 1px solid #ddd;
}
.sv-done{display:inline-flex;align-items:center;height:24px}
.sv-done-checkbox{width:18px;height:18px}
.sv-topic-title {
    margin: 0 0 4px;
    font-size: 1em !important;
}
.sv-topic.completed {
    opacity: 1;
    /* background: #f9f9f9; */
}
.sv-topic.completed .sv-topic-title{text-decoration:line-through;color:var(--sv-completed-color)}
.sv-topic.completed .sv-toggle-detail i {
    color: var(--sv-completed-color);
}
.sv-topic-meta{font-size:12px;color:#666}
.sv-topic-actions{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.sv-topic-actions span, .sv-topic-actions button {
    font-size: .9em;
    padding: 6px 8px;
    border-radius: 8px;
    border: 1px solid #e6e6e6;
    background: #fff;
    cursor: pointer;
    text-decoration: none;
}
.sv-topic-actions span:hover,.sv-topic-actions button:hover{background:#f6f6f6}
.sv-topic-actions span {
    border: 1px solid #ccc;
    padding: 0 12px;
    border-radius: 50px;
}

.sv-topic-actions i {
    display: inline;
    vertical-align: top;
    font-weight: 500;
    margin-right: 5px;
    font-size: 24px !important;
    color: var(--attain-secondary-color);
}
/*.sv-topic-detail{margin-top:8px;border-left:3px solid #eaeaea;padding:8px 10px;background:#fcfcfc;border-radius:6px}*/
.sv-summary{margin-bottom:6px;color:#333}
.sv-explanation{color:#444}
.sv-hidden{display:none!important}
.sv-toggle-detail{cursor:pointer;}
mark.sv-hit{background:#fff2a8;padding:0 2px;border-radius:2px}
/* Hide the native checkbox */
.sv-done-checkbox {
  display: none;
}

/* Base styles for the icon span */
.sv-check {
  font-family: 'Material Symbols Outlined';
  font-size: 24px;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
}

/* Unchecked state: circle */
.sv-done-checkbox + .sv-check::before {
  content: "circle";
}

/* Checked state: check_circle */
.sv-done-checkbox:checked + .sv-check::before {
  content: "check_circle";
  color: var(--sv-completed-color); /* grey tone for inactive */
}

.sv-link-guide, .sv-link-practice{
    display: flex;
    align-items: center;
    gap: 5px;
}


@media (max-width:400px){
  .sv-modal__sheet{left:0; transform: none; width:100%;}
  .sv-modal__close{top:0;right:0}
}
