.work-app{--w-bg:#fffdf7;--w-surface:#fff;--w-surface-sunk:#f7f3e9;--w-text:#111827;--w-text-mid:#3f4858;--w-text-dim:#6c7686;--w-border:#d8dde6;--w-border-strong:#c9d2dd;--w-accent:#0f8b7f;--w-accent-soft:#e3f1ee;--w-accent-deep:#0c6f65;--w-share:#d97706;--w-share-soft:#fff2dc;--w-success:#15803d;--w-success-soft:#e3f5e8;--w-info:#2563eb;--w-info-soft:#e3eafc;--w-danger:#b91c1c;--w-radius-sm:6px;--w-radius:10px;--w-radius-lg:14px;--w-shadow-sm:0 1px 2px #0f172a0a;--w-shadow:0 6px 22px -10px #0f172a2e;background:var(--w-bg);min-height:100vh;color:var(--w-text);font-family:var(--font-noto-sans-jp), "Noto Sans JP", "Hiragino Sans", "Yu Gothic", "Meiryo", system-ui, sans-serif;letter-spacing:.01em;font-size:16px;line-height:1.7}.work-app *{box-sizing:border-box}.work-app a{color:var(--w-accent-deep);border-bottom:1px solid #0000;text-decoration:none;transition:border-color .12s,color .12s}.work-app a:hover{border-bottom-color:currentColor}.work-app a:focus-visible{outline:2px solid var(--w-accent);outline-offset:2px;border-radius:2px}.work-shell{max-width:960px;margin:0 auto;padding:32px clamp(16px,4vw,40px) 80px}.work-header{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);box-shadow:var(--w-shadow-sm);justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px;padding:12px 16px;display:flex}.work-header__brand{align-items:baseline;gap:10px;font-weight:700;display:flex}.work-header__brand small{color:var(--w-text-dim);letter-spacing:.04em;font-size:12px;font-weight:500}.work-header__nav{flex-wrap:wrap;gap:4px;display:flex}.work-header__nav a{color:var(--w-text-mid);border-radius:var(--w-radius-sm);border:none;padding:6px 12px;font-size:14px}.work-header__nav a[aria-current=page]{background:var(--w-accent-soft);color:var(--w-accent-deep);font-weight:700}.work-footer{color:var(--w-text-dim);text-align:center;margin-top:64px;font-size:12px}.work-page__eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--w-accent);font-size:12px;font-weight:700}.work-page__title{margin:4px 0 8px;font-size:clamp(24px,3.4vw,32px);font-weight:800;line-height:1.25}.work-page__lede{color:var(--w-text-mid);max-width:64ch;margin-bottom:28px}.work-section+.work-section{margin-top:36px}.work-section__title{align-items:center;gap:8px;margin-bottom:12px;font-size:16px;font-weight:700;display:flex}.work-section__title:before{content:"";background:var(--w-accent);border-radius:2px;width:4px;height:18px}.day-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.day-card{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);color:inherit;box-shadow:var(--w-shadow-sm);border-bottom:0;flex-direction:column;padding:20px 22px;text-decoration:none;transition:transform .14s,box-shadow .14s,border-color .14s;display:flex}.day-card:hover{border-color:var(--w-accent);box-shadow:var(--w-shadow);transform:translateY(-1px)}.day-card__label{letter-spacing:.12em;color:var(--w-accent);font-size:12px;font-weight:700}.day-card__title{margin:4px 0 12px;font-size:20px;font-weight:800}.day-card__progress{color:var(--w-text-mid);font-size:13px}.work-list{flex-direction:column;gap:12px;display:flex}.work-list__item{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);color:inherit;border-bottom:0;grid-template-columns:56px 1fr auto;align-items:center;gap:16px;padding:16px 18px;transition:border-color .12s,box-shadow .12s;display:grid}.work-list__item:hover{border-color:var(--w-accent);box-shadow:var(--w-shadow-sm)}.work-list__code{color:var(--w-text-dim);letter-spacing:.05em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700}.work-list__title{margin:0 0 4px;font-weight:700;line-height:1.45}.work-list__meta{color:var(--w-text-dim);flex-wrap:wrap;gap:4px 12px;font-size:12px;display:flex}.pill{white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.pill--idle{color:var(--w-text-dim);background:var(--w-surface-sunk);border-color:var(--w-border)}.pill--in-progress{color:var(--w-info);background:var(--w-info-soft);border-color:#0000}.pill--complete{color:var(--w-success);background:var(--w-success-soft);border-color:#0000}.work-form{flex-direction:column;gap:28px;display:flex}.work-meta{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);box-shadow:var(--w-shadow-sm);padding:20px 22px}.work-meta dl{grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;display:grid}.work-meta dt{color:var(--w-text-dim);letter-spacing:.04em;font-size:12px;font-weight:700}.work-meta dd{margin:0;font-size:14px}.question{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);box-shadow:var(--w-shadow-sm);flex-direction:column;gap:12px;padding:20px 22px;display:flex}.question__label{align-items:baseline;gap:10px;font-weight:700;line-height:1.5;display:flex}.question__index{color:var(--w-accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.question__hint{color:var(--w-text-dim);font-size:12px}.work-input,.work-textarea{width:100%;font:inherit;color:var(--w-text);background:var(--w-bg);border:1px solid var(--w-border-strong);border-radius:var(--w-radius-sm);padding:10px 12px;line-height:1.6;transition:border-color .12s,box-shadow .12s}.work-textarea{resize:vertical;min-height:96px}.work-input:focus,.work-textarea:focus{border-color:var(--w-accent);box-shadow:0 0 0 3px var(--w-accent-soft);outline:none}.option-list{flex-direction:column;gap:6px;display:flex}.option{border:1px solid var(--w-border);border-radius:var(--w-radius-sm);background:var(--w-bg);cursor:pointer;align-items:flex-start;gap:10px;padding:8px 12px;font-size:14px;line-height:1.5;transition:border-color .12s,background .12s;display:flex}.option:hover{border-color:var(--w-accent)}.option input{margin-top:3px}.option--selected{border-color:var(--w-accent);background:var(--w-accent-soft)}.helper-box{background:var(--w-surface-sunk);border-radius:var(--w-radius);padding:14px 16px}.helper-box summary{cursor:pointer;color:var(--w-text-mid);font-size:13px;font-weight:700;list-style:none}.helper-box summary::-webkit-details-marker{display:none}.helper-box summary:before{content:"+ ";color:var(--w-accent);margin-right:4px;font-weight:700}.helper-box[open] summary:before{content:"− "}.helper-box ul{color:var(--w-text-mid);margin:12px 0 0;padding-left:20px;font-size:13px}.share-callout{border:1px solid var(--w-share);background:var(--w-share-soft);border-radius:var(--w-radius);padding:16px 18px}.share-callout__label{letter-spacing:.08em;color:var(--w-share);margin-bottom:6px;font-size:12px;font-weight:700}.share-callout p{color:var(--w-text);margin:0 0 8px;font-size:14px}.complete-row{border:1px solid var(--w-border);border-radius:var(--w-radius);background:var(--w-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.complete-row__state{color:var(--w-text-mid);max-width:60ch;font-size:13px}.work-nav{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.work-nav__cell{flex:240px;min-width:0}.btn{font:inherit;border-radius:var(--w-radius-sm);cursor:pointer;border:1px solid #0000;border-bottom:0;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-weight:700;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.btn--primary{background:var(--w-accent);color:#fff}.btn--primary:hover{background:var(--w-accent-deep)}.btn--ghost{color:var(--w-text-mid);border-color:var(--w-border-strong);background:0 0}.btn--ghost:hover{border-color:var(--w-accent);color:var(--w-accent-deep)}.btn--link{color:var(--w-text-mid);background:0 0;padding:4px 8px}.btn--link:hover{color:var(--w-accent-deep)}.btn[disabled]{opacity:.55;cursor:not-allowed}.save-indicator{color:var(--w-text-dim);align-items:center;gap:6px;font-size:12px;display:inline-flex}.save-indicator__dot{background:var(--w-success);border-radius:50%;width:8px;height:8px}.save-indicator--idle .save-indicator__dot{background:var(--w-border-strong)}.report-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.report-block{background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);box-shadow:var(--w-shadow-sm);margin-bottom:16px;padding:22px 24px}.report-block__heading{letter-spacing:.06em;color:var(--w-accent-deep);margin-bottom:4px;font-size:13px;font-weight:700}.report-block__title{margin:0 0 4px;font-size:18px;font-weight:800}.report-block__meta{color:var(--w-text-dim);margin-bottom:12px;font-size:12px}.report-block__list{margin:0;padding:0;list-style:none}.report-block__list li{border-top:1px dashed var(--w-border);padding:10px 0}.report-block__list li:first-child{border-top:0}.report-q{color:var(--w-text-mid);margin-bottom:4px;font-size:13px}.report-a{white-space:pre-wrap;word-break:break-word;margin:0}.report-a--empty{color:var(--w-text-dim);font-style:italic}.report-share{background:var(--w-share-soft);border-left:4px solid var(--w-share);border-radius:var(--w-radius-sm);margin-bottom:12px;padding:10px 14px}.report-share__label{letter-spacing:.06em;color:var(--w-share);margin-bottom:4px;font-size:11px;font-weight:700}.instructor-table{border-collapse:collapse;background:var(--w-surface);border:1px solid var(--w-border);border-radius:var(--w-radius);width:100%;overflow:hidden}.instructor-table th,.instructor-table td{text-align:left;border-bottom:1px solid var(--w-border);padding:10px 14px;font-size:14px}.instructor-table tbody tr:last-child td{border-bottom:0}.instructor-table th{background:var(--w-surface-sunk);letter-spacing:.04em;color:var(--w-text-mid);font-size:12px}@media print{.work-app{background:#fff}.work-header,.work-footer,.report-toolbar,.work-nav,.complete-row,.helper-box,.btn{display:none!important}.work-shell{max-width:none;padding:0}.report-block{box-shadow:none;page-break-inside:avoid}}@media (max-width:640px){.work-list__item{grid-template-columns:48px 1fr}.work-list__item .pill{grid-column:1/-1;justify-self:flex-start}}
