/* Problem Workspace (assets/workspace/problem-workspace.js): pad, notes and optional guide under a practice problem. */
.fw > summary { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.fw-title { flex: 1 1 auto; }
.fw-saved { font-size: 13px; font-weight: 800; }
.fw-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 8px; }
.fw-pens { display: inline-flex; gap: 4px; }
.fw-btn { font-family: var(--font-display, inherit); font-size: 14px; font-weight: 700; min-height: 44px; min-width: 44px; padding: 6px 12px; background: #fff; color: var(--navy, #15487f); border: 1.5px solid var(--line, #cbd5e1); border-radius: 10px; cursor: pointer; }
.fw-btn:hover { border-color: var(--teal, #0284c7); }
.fw-btn:focus-visible, .fw-select:focus-visible { outline: 3px solid var(--teal, #0284c7); outline-offset: 2px; }
.fw-btn[aria-pressed="true"], .fw-btn.is-on { border-color: var(--navy, #15487f); box-shadow: inset 0 0 0 2px var(--navy, #15487f); }
.fw-pen { padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.fw-dot { width: 22px; height: 22px; border-radius: 50%; background: var(--pen); display: block; }
.fw-backdrop { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--navy, #15487f); }
.fw-select { font: inherit; font-size: 14px; min-height: 44px; border: 1.5px solid var(--line, #cbd5e1); border-radius: 10px; padding: 4px 8px; background: #fff; color: inherit; max-width: 100%; }
.fw-stage { position: relative; aspect-ratio: 2 / 1; min-height: 170px; padding: 0; overflow: hidden; background: #fff; }
.fw-stage.is-big { aspect-ratio: 4 / 3; min-height: 320px; }
.fw-model { position: absolute; inset: 0; }
.fw-model > svg { width: 100%; height: 100%; max-height: none; }
.fw-canvas { position: absolute; inset: 0; width: 100%; height: 100%; touch-action: none; cursor: crosshair; }
.fw-stage:not([data-fw-bg="model"]) .fw-model { display: none; }
.fw-stage[data-fw-bg="grid"] { background-color: #fff; background-image: linear-gradient(rgba(150,170,190,.55) 1px, transparent 1px), linear-gradient(90deg, rgba(150,170,190,.55) 1px, transparent 1px); background-size: 24px 24px; }
.fw-stage[data-fw-bg="dots"] { background: #fff radial-gradient(circle, rgba(18,53,91,.45) 1.5px, transparent 2px) 0 0 / 24px 24px; }
.fw-stage[data-fw-bg="stamp"][data-fw-stamp="doubleline"] { background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20400%20100'%20preserveAspectRatio%3D'none'%3E%3Cline%20x1%3D'10'%20y1%3D'32'%20x2%3D'390'%20y2%3D'32'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'10'%20y1%3D'72'%20x2%3D'390'%20y2%3D'72'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'20'%20y1%3D'24'%20x2%3D'20'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'20'%20y1%3D'64'%20x2%3D'20'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'56'%20y1%3D'24'%20x2%3D'56'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'56'%20y1%3D'64'%20x2%3D'56'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'92'%20y1%3D'24'%20x2%3D'92'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'92'%20y1%3D'64'%20x2%3D'92'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'128'%20y1%3D'24'%20x2%3D'128'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'128'%20y1%3D'64'%20x2%3D'128'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'164'%20y1%3D'24'%20x2%3D'164'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'164'%20y1%3D'64'%20x2%3D'164'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'200'%20y1%3D'24'%20x2%3D'200'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'200'%20y1%3D'64'%20x2%3D'200'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'236'%20y1%3D'24'%20x2%3D'236'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'236'%20y1%3D'64'%20x2%3D'236'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'272'%20y1%3D'24'%20x2%3D'272'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'272'%20y1%3D'64'%20x2%3D'272'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'308'%20y1%3D'24'%20x2%3D'308'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'308'%20y1%3D'64'%20x2%3D'308'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'344'%20y1%3D'24'%20x2%3D'344'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'344'%20y1%3D'64'%20x2%3D'344'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'380'%20y1%3D'24'%20x2%3D'380'%20y2%3D'40'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'380'%20y1%3D'64'%20x2%3D'380'%20y2%3D'80'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3C%2Fsvg%3E") center / 100% 100% no-repeat; }
.fw-stage[data-fw-bg="stamp"][data-fw-stamp="percent"] { background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20100%20100'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Cline%20x1%3D'0'%20y1%3D'0'%20x2%3D'0'%20y2%3D'100'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'0'%20x2%3D'100'%20y2%3D'0'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'10'%20y1%3D'0'%20x2%3D'10'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'10'%20x2%3D'100'%20y2%3D'10'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'20'%20y1%3D'0'%20x2%3D'20'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'20'%20x2%3D'100'%20y2%3D'20'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'30'%20y1%3D'0'%20x2%3D'30'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'30'%20x2%3D'100'%20y2%3D'30'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'40'%20y1%3D'0'%20x2%3D'40'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'40'%20x2%3D'100'%20y2%3D'40'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'50'%20y1%3D'0'%20x2%3D'50'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'50'%20x2%3D'100'%20y2%3D'50'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'60'%20y1%3D'0'%20x2%3D'60'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'60'%20x2%3D'100'%20y2%3D'60'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'70'%20y1%3D'0'%20x2%3D'70'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'70'%20x2%3D'100'%20y2%3D'70'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'80'%20y1%3D'0'%20x2%3D'80'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'80'%20x2%3D'100'%20y2%3D'80'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'90'%20y1%3D'0'%20x2%3D'90'%20y2%3D'100'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'90'%20x2%3D'100'%20y2%3D'90'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'100'%20y1%3D'0'%20x2%3D'100'%20y2%3D'100'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'100'%20x2%3D'100'%20y2%3D'100'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
.fw-stage[data-fw-bg="stamp"][data-fw-stamp="plane"] { background: #fff url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20200%20200'%20preserveAspectRatio%3D'xMidYMid%20meet'%3E%3Cline%20x1%3D'0'%20y1%3D'0'%20x2%3D'0'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'0'%20x2%3D'200'%20y2%3D'0'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'20'%20y1%3D'0'%20x2%3D'20'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'20'%20x2%3D'200'%20y2%3D'20'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'40'%20y1%3D'0'%20x2%3D'40'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'40'%20x2%3D'200'%20y2%3D'40'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'60'%20y1%3D'0'%20x2%3D'60'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'60'%20x2%3D'200'%20y2%3D'60'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'80'%20y1%3D'0'%20x2%3D'80'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'80'%20x2%3D'200'%20y2%3D'80'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'120'%20y1%3D'0'%20x2%3D'120'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'120'%20x2%3D'200'%20y2%3D'120'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'140'%20y1%3D'0'%20x2%3D'140'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'140'%20x2%3D'200'%20y2%3D'140'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'160'%20y1%3D'0'%20x2%3D'160'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'160'%20x2%3D'200'%20y2%3D'160'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'180'%20y1%3D'0'%20x2%3D'180'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'180'%20x2%3D'200'%20y2%3D'180'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'200'%20y1%3D'0'%20x2%3D'200'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'200'%20x2%3D'200'%20y2%3D'200'%20stroke%3D'rgb(150%2C170%2C190)'%20stroke-width%3D'1'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'100'%20y1%3D'0'%20x2%3D'100'%20y2%3D'200'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3Cline%20x1%3D'0'%20y1%3D'100'%20x2%3D'200'%20y2%3D'100'%20stroke%3D'rgb(18%2C53%2C91)'%20stroke-width%3D'2.5'%20vector-effect%3D'non-scaling-stroke'%2F%3E%3C%2Fsvg%3E") center / contain no-repeat; }
.fw-guide { margin: 10px 0 0; border: 1.5px dashed var(--teal, #0284c7); border-radius: 12px; background: var(--teal-light, #e0f2fe); }
.fw-guide > summary { min-height: 44px; display: flex; align-items: center; padding: 6px 12px; font-weight: 800; font-size: 14px; color: var(--navy, #15487f); cursor: pointer; }
.fw-guide-body { padding: 0 12px 12px; font-size: 14px; line-height: 1.5; }
.fw-tip { margin: 0 0 8px; }
.fw-steps { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 8px; }
.fw-step { display: grid; gap: 4px; }
.fw-add { text-align: left; font-weight: 600; }
.fw-add em { font-style: normal; font-weight: 800; }
@media print { .fw-tools, .fw-guide, .fw-saved { display: none !important; } .fw-stage { border-color: #888; } }
@media (prefers-reduced-motion: no-preference) { .fw-btn { transition: border-color .15s ease; } }
/* Standalone hosts (the Practice Studios) do not carry the homework page's workspace rules. */
.fw { margin: 12px 0 4px; border: 1.5px dashed var(--line, #9bb6cf); border-radius: 12px; padding: 4px 10px 10px; background: transparent; }
.fw > summary { cursor: pointer; font-weight: 800; font-size: 14px; }
.fw .hw-workspace { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 10px 0 4px; }
@media (min-width: 640px) { .fw .hw-workspace { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } }
.fw .hw-visual-caption, .fw .hw-work-label { display: block; font-weight: 700; font-size: 14px; margin-bottom: 6px; }
.fw .hw-work-input { width: 100%; min-height: 110px; resize: vertical; line-height: 28px; font: inherit; font-size: 16px; color: #0f2b4c; background-color: #fbfdff; background-image: repeating-linear-gradient(#fbfdff 0, #fbfdff 27px, #d6e2ee 27px, #d6e2ee 28px); border: 1.5px solid #9bb6cf; border-radius: 10px; padding: 4px 10px; box-sizing: border-box; }
.fw .fw-stage { border: 1.5px solid #9bb6cf; border-radius: 12px; }
.fw .fw-guide, .fw .fw-guide * { color: #0f2b4c; }
.fw .fw-guide { background: #e0f2fe; }
.fw .fw-guide .fw-btn { background: #fff; }
.fw-saved { color: #0369a1; }
.fw .fw-backdrop { color: inherit; }
.fw .fw-btn { color: #12355b; }
