/* Student worksheets — shared styles */
.ws { margin-top: .5rem; }
.ws .ws-meta { display: flex; gap: .75rem; flex-wrap: wrap; margin: .5rem 0 1rem; }
.ws .ws-meta input { flex: 1 1 220px; padding: .45rem .6rem; font-size: 1rem; border: 1px solid #bbb; border-radius: 6px; background: transparent; color: inherit; }

.ws .ws-remind { border-left: 3px solid #b89b43; background: rgba(184,155,67,.08); padding: .6rem .9rem; margin: 0 0 1.25rem; border-radius: 0 6px 6px 0; font-size: .92rem; }
.ws .ws-remind strong { display: block; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; margin-bottom: .25rem; }
.ws .ws-remind ul { margin: 0; padding-left: 1.1rem; }
.ws .ws-remind li { margin: .15rem 0; }
.ws .ws-remind a, .ws .ws-more { white-space: nowrap; }

.ws .ws-section { margin: 1.5rem 0; }
.ws .ws-section > h2 { font-size: 1.25rem; margin: 0 0 .5rem; border-bottom: 1px solid #ccc; padding-bottom: .25rem; }
.ws .ws-section > h2 .ws-help { font-size: .85rem; font-weight: 400; color: #888; }
.ws .ws-group { border: 1px solid #ccc; border-radius: 8px; padding: .75rem .9rem; margin: .75rem 0; }
.ws .ws-group > .ws-group-head { display: flex; align-items: baseline; gap: .75rem; margin-bottom: .5rem; }
.ws .ws-group > .ws-group-head h3 { margin: 0; font-size: 1.05rem; flex: 1; }
.ws .ws-group > .ws-group-head input { font-size: 1.05rem; font-weight: 600; flex: 1; border: 0; border-bottom: 1px dashed #bbb; background: transparent; color: inherit; padding: .1rem .2rem; }

.ws .ws-field { margin: .6rem 0; }
.ws .ws-field label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: .2rem; }
.ws .ws-field .ws-help { font-weight: 400; color: #888; }
.ws .ws-field input[type=text], .ws .ws-field textarea { width: 100%; padding: .45rem .6rem; font: inherit; font-size: .95rem; line-height: 1.4; border: 1px solid #bbb; border-radius: 6px; background: transparent; color: inherit; }
.ws .ws-field textarea { resize: none; overflow: hidden; min-height: 3.2rem; }
.ws .ws-field textarea:focus, .ws .ws-field input:focus, .ws .ws-meta input:focus { outline: 2px solid #368a81; outline-offset: -1px; }

.ws .ws-item { display: grid; grid-template-columns: 2rem 1fr; gap: .4rem .6rem; align-items: start; padding: .4rem 0; border-top: 1px dashed #ddd; }
.ws .ws-item:first-child { border-top: 0; }
.ws .ws-item .ws-num { font-weight: 700; padding-top: .5rem; text-align: right; }
.ws .ws-item .ws-item-body { min-width: 0; }
.ws .ws-item .ws-field { margin: .25rem 0; }
.ws .ws-item .ws-item-foot { display: flex; gap: 1rem; align-items: center; font-size: .85rem; margin-top: .2rem; flex-wrap: wrap; }
.ws .ws-item .ws-item-foot label { display: inline-flex; gap: .35rem; align-items: center; font-weight: 500; cursor: pointer; }
.ws .ws-item.ws-break { border-bottom: 3px double #b89b43; padding-bottom: .6rem; margin-bottom: .3rem; }
.ws .ws-item.ws-break::after { content: "ACT BREAK"; grid-column: 2; font-size: .72rem; letter-spacing: .1em; color: #b89b43; font-weight: 700; }

.ws .ws-tip { display: inline-block; margin-left: .35rem; width: 1.15rem; height: 1.15rem; border-radius: 50%; border: 1px solid #888; color: #888; font-size: .72rem; line-height: 1.1rem; text-align: center; cursor: help; vertical-align: middle; font-weight: 600; font-style: normal; }
.ws .ws-tip:hover { border-color: #b89b43; color: #b89b43; }
.ws .ws-more { font-size: .82rem; margin-left: .4rem; }

.ws .ws-add, .ws .ws-del { font: inherit; font-size: .85rem; padding: .3rem .7rem; border: 1px solid #bbb; border-radius: 6px; background: transparent; color: inherit; cursor: pointer; }
.ws .ws-del { border: 0; color: #888; padding: .1rem .3rem; }
.ws .ws-del:hover { color: #c0392b; }
.ws .ws-add:hover { border-color: #368a81; color: #368a81; }

.ws .ws-bar { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1.25rem 0; align-items: center; }
.ws .ws-bar button { font: inherit; padding: .5rem .9rem; border-radius: 6px; border: 1px solid #bbb; background: transparent; color: inherit; cursor: pointer; }
.ws .ws-bar button.primary { background: #368a81; color: #fff; border-color: #368a81; }
.ws .ws-bar .ws-hint { font-size: .85rem; color: #888; flex-basis: 100%; }
.ws .ws-saved { font-size: .8rem; color: #888; }

@media print {
  #quarto-sidebar, #quarto-margin-sidebar, .quarto-title-block nav, nav.quarto-page-breadcrumbs, .nav-page, #quarto-header, #quarto-back-to-top,
  .ws .ws-bar, .ws .ws-add, .ws .ws-del, .ws .ws-tip, .ws .ws-more, .ws .ws-remind, .ws .ws-help, .ws-webonly { display: none !important; }
  #quarto-content, main { max-width: 100% !important; margin: 0 !important; padding: 0 !important; }
  .ws .ws-group, .ws .ws-field textarea, .ws .ws-field input { border-color: #999; }
  .ws .ws-item.ws-break::after { color: #000; }
}

/* ---- Story Builder (beatsheet -> grid -> outline) ---- */
.sb-tag-A { --tag: #b89b43; } .sb-tag-B { --tag: #368a81; } .sb-tag-C { --tag: #7fb0d4; } .sb-tag-D { --tag: #c79aae; } .sb-tag-E { --tag: #93b787; } .sb-tag-F { --tag: #c08a72; }
.ws .sb-story { border-left: 4px solid var(--tag, #bbb); }
.ws .sb-put { font: inherit; font-size: .85rem; padding: .15rem .3rem; border: 1px solid #bbb; border-radius: 6px; background: transparent; color: inherit; max-width: 16rem; }
.ws .sb-chip { display: inline-block; margin: .15rem .2rem .15rem 0; padding: .2rem .5rem; border-radius: 6px; border: 1px solid var(--tag, #bbb); border-left-width: 5px; font-size: .84rem; line-height: 1.3; cursor: grab; background: rgba(127,127,127,.06); max-width: 100%; }
.ws .sb-chip b { color: var(--tag, inherit); }
.ws .sb-chip-ro { cursor: default; }
.ws .sb-dragging { opacity: .4; }
.ws .sb-tray { border: 1px dashed #bbb; border-radius: 8px; padding: .5rem .75rem; margin: .5rem 0 .75rem; min-height: 2.5rem; }
.ws .sb-tray strong { display: block; font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; margin-bottom: .25rem; }
.ws .sb-grid { display: grid; gap: .5rem; overflow-x: auto; padding-bottom: .5rem; }
.ws .sb-col { border: 1px solid #ccc; border-radius: 8px; padding: .4rem; min-height: 9rem; display: flex; flex-direction: column; gap: .35rem; }
.ws .sb-colname { font: inherit; font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .05em; text-align: center; border: 0; border-bottom: 1px dashed #bbb; background: transparent; color: inherit; padding: .2rem; }
.ws .sb-scene { border: 1px solid #bbb; border-radius: 6px; padding: .35rem .4rem; background: rgba(127,127,127,.05); cursor: grab; }
.ws .sb-scene-head { font-size: .8rem; margin-bottom: .2rem; }
.ws .sb-scene-head .sb-tags { color: #888; }
.ws .sb-scene-title { font-style: italic; }
.ws .sb-scene .sb-chip { display: block; margin: .15rem 0; cursor: grab; }
.ws .sb-over { outline: 2px dashed #368a81; outline-offset: 2px; background: rgba(54,138,129,.08); }
.ws .sb-outline-act { margin: 1.2rem 0 .3rem; font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid #ccc; }
.ws .sb-outline-beats { font-size: .85rem; margin: .3rem 0; }
@media print {
  .ws .sb-put, .ws .sb-tray, .ws .sb-gridsec .ws-item-foot { display: none !important; }
  .ws .sb-grid { overflow: visible; }
  .ws .sb-chip, .ws .sb-scene { cursor: default; }
}
.ws .sb-note { width: 100%; font: inherit; font-size: .84rem; line-height: 1.3; border: 1px dashed #bbb; border-radius: 4px; padding: .25rem .35rem; background: transparent; color: inherit; resize: none; overflow: hidden; margin-top: .2rem; cursor: text; }
.ws .sb-note:focus { outline: 2px solid #368a81; outline-offset: -1px; border-style: solid; }
.ws .sb-scene { position: relative; }
.ws .sb-scene-del { position: absolute; top: .1rem; right: .15rem; font-size: .75rem; }
.ws .sb-addscene { margin-top: auto; font-size: .8rem; padding: .25rem .5rem; }
@media print { .ws .sb-addscene, .ws .sb-scene-del { display: none !important; } .ws .sb-note { border: 0; padding: 0; } .ws .sb-note:placeholder-shown { display: none; } }
