:root{--dw-bg:#f3f4f6;--dw-paper:#fff;--dw-ink:#24313c;--dw-muted:#64717c;--dw-line:#e4e8eb;--dw-accent:#a72536;--dw-soft:#fbf2f1;--dw-radius:16px}.dw-parent{margin:0;background:var(--dw-bg);color:var(--dw-ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}.dw-parent main{max-width:680px;margin:auto;padding:20px 16px max(36px,env(safe-area-inset-bottom))}.dw-paper{box-sizing:border-box;background:var(--dw-paper);color:var(--dw-ink);padding:30px;border:1px solid var(--dw-line);border-radius:var(--dw-radius);font:16px/1.75 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;overflow-wrap:anywhere}.dw-paper *{box-sizing:border-box}.dw-brand{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--dw-line);padding-bottom:20px}.dw-brand img{width:180px;max-height:46px;object-fit:contain;object-position:left}.dw-brand span{color:var(--dw-muted);font-size:11px;white-space:nowrap}.dw-heading{padding:22px 0}.dw-eyebrow{font-size:12px;color:var(--dw-muted)}.dw-heading h1{font-size:29px;letter-spacing:1px;line-height:1.4;margin:7px 0}.dw-heading p{color:var(--dw-muted);margin:0;font-size:14px}.dw-student{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;background:var(--dw-soft);border-radius:12px}.dw-student>div:first-child{display:flex;flex-direction:column}.dw-student strong{font-size:24px}.dw-student span{color:var(--dw-muted);font-size:13px}.dw-student>div:last-child{text-align:right;display:flex;flex-direction:column}.dw-student b{font-size:32px;line-height:1.3;color:var(--dw-accent)}.dw-student b small{font-size:14px;margin-left:4px}.dw-letter{margin:24px 0}.dw-paper h2,.dw-form h2{font-size:17px;margin:26px 0 14px}.dw-records>div{display:grid;grid-template-columns:88px 1fr auto;gap:10px;padding:13px 0;border-bottom:1px solid var(--dw-line);font-size:14px}.dw-records p{margin:0}.dw-records time{color:var(--dw-muted);font-size:12px}.dw-records b{font-size:13px;white-space:nowrap}.dw-caption{font-size:12px;color:var(--dw-muted);line-height:1.6}.dw-rules>div{display:flex;gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid var(--dw-line)}.dw-rules>div>b{color:var(--dw-accent);min-width:55px;font-size:23px}.dw-rules>div>b span{font-size:12px;margin-left:3px}.dw-rules>div p{margin:0;font-size:14px}.dw-rules details{margin-top:16px;font-size:13px;color:var(--dw-muted)}.dw-rules summary{cursor:pointer;color:var(--dw-ink)}.dw-paper-footer{display:flex;flex-direction:column;align-items:flex-end;padding-top:26px;margin-top:26px;border-top:1px solid var(--dw-line);font-size:13px}.dw-paper-footer span{font-size:12px;color:var(--dw-muted)}.dw-form{padding:24px;margin-top:16px;border:1px solid var(--dw-line);border-radius:var(--dw-radius);background:var(--dw-paper)}.dw-form h2{margin-top:0}.dw-check{display:flex;gap:12px;align-items:flex-start;font-size:15px}.dw-check input{width:20px;height:20px;flex-shrink:0;margin:3px 0;accent-color:var(--dw-accent)}.dw-fields{display:flex;gap:12px;margin:24px 0}.dw-fields label{flex:1;min-width:0;display:flex;flex-direction:column;font-size:13px;gap:6px}.dw-fields input,.dw-fields select{box-sizing:border-box;border:1px solid #c7cfd5;border-radius:8px;background:white;padding:11px;font:inherit;font-size:16px;width:100%;color:var(--dw-ink)}.dw-pad-heading{display:flex;justify-content:space-between;font-size:14px;align-items:center;margin-bottom:8px}.dw-pad-heading button{border:0;background:transparent;color:var(--dw-muted);padding:10px;font-size:13px;cursor:pointer}.dw-form canvas{box-sizing:border-box;width:100%;height:160px;background:#fafbfc;border:1px dashed #aab6c0;border-radius:10px;touch-action:none;display:block}.dw-primary{width:100%;border:0;border-radius:10px;padding:14px 18px;background:var(--dw-accent);color:white;font-size:16px;font-weight:600;cursor:pointer}.dw-primary:disabled{opacity:.6}.dw-form-error{color:var(--dw-accent);font-size:14px}.dw-expiry{font-size:12px;color:var(--dw-muted);margin:0 4px 14px}.dw-success{background:#e8f4ed;color:#205d3d;padding:18px 22px;border-radius:12px;margin-bottom:16px}.dw-success p{margin:4px 0 0;font-size:14px}.dw-ack-result{font-size:14px}.dw-sign-image{height:130px;border-bottom:1px solid var(--dw-line);display:flex;align-items:center}.dw-sign-image img{max-width:100%;height:100%;object-fit:contain;object-position:left}.dw-signed>p:last-child{font-size:13px;color:var(--dw-muted)}.dw-bottom-note{text-align:center;color:var(--dw-muted);font-size:12px}.dw-unavailable,.dw-loading{background:white;border-radius:16px;padding:36px 24px;margin:50px auto}.dw-unavailable h1{font-size:24px}.dw-unavailable small{color:var(--dw-muted)}.dw-modal{position:fixed;inset:0;z-index:22000;background:#17212a80;display:grid;place-items:center;padding:16px}.dw-dialog{box-sizing:border-box;max-width:740px;width:100%;max-height:92dvh;display:flex;flex-direction:column;background:var(--dw-bg);border-radius:16px;overflow:hidden}.dw-dialog>header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:white;border-bottom:1px solid var(--dw-line);flex-shrink:0}.dw-dialog>header button{font-size:26px;border:0;background:none;padding:2px 10px;cursor:pointer}.dw-dialog>main{overflow:auto;overscroll-behavior:contain;padding:16px;min-height:0}.dw-qr{text-align:center;padding:10px}.dw-qr img{width:min(100%,320px);height:auto;display:block;margin:auto}.dw-qr p{margin:12px 0}.dw-qr small{display:block;color:var(--dw-muted);font-size:12px}.dw-qr nav{display:flex;justify-content:center;gap:12px;margin-top:18px}.dw-qr a,.dw-qr button{font:inherit;font-size:14px;border:1px solid #c9d1d8;border-radius:8px;background:#fff;padding:9px 14px;color:var(--dw-ink);text-decoration:none;cursor:pointer}.dw-qr a{background:var(--dw-accent);color:white;border-color:var(--dw-accent)}.dw-card-action{grid-column:1/-1!important;display:flex!important;align-items:center;justify-content:space-between;gap:8px;margin-top:8px!important;padding-top:8px;border-top:1px solid var(--dw-line)}.dw-card-action span{font-size:11px;color:var(--dw-muted)}.dw-card-action button,.dw-student-entry button{border:0!important;background:transparent!important;color:var(--dw-accent)!important;font:inherit;font-size:12px!important;min-height:28px!important;padding:3px 0!important;cursor:pointer;white-space:nowrap}.dw-student-entry{padding:15px 0;border-top:1px solid var(--dw-line);display:flex;justify-content:space-between;gap:12px}.dw-student-entry small{display:block;color:var(--dw-muted)}@media(max-width:480px){.dw-parent main{padding:12px 10px 30px}.dw-paper{padding:22px 18px;border-radius:12px}.dw-brand{gap:10px;padding-bottom:16px}.dw-brand img{width:150px;max-height:38px}.dw-brand span{font-size:10px;white-space:normal;max-width:65px;text-align:right}.dw-heading h1{font-size:26px}.dw-heading{padding:20px 0}.dw-student{padding:14px}.dw-student strong{font-size:22px}.dw-student>div:last-child>span{font-size:11px}.dw-records>div{grid-template-columns:1fr auto;gap:2px 10px}.dw-records time{grid-column:1/-1}.dw-records p{font-size:14px}.dw-form{padding:20px 18px}.dw-modal{padding:8px}.dw-dialog{max-height:95dvh}.dw-dialog>main{padding:8px}.dw-qr nav{flex-wrap:wrap}}@media print{.dw-parent{background:white}.dw-parent main{max-width:none;padding:0}.dw-expiry,.dw-success,.dw-form,.dw-bottom-note{display:none}.dw-paper{border:0;padding:0}.dw-rules details{display:block}}

.dw-todo-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 4px;font-size:13px}.dw-todo-heading span{font-size:12px;color:#876018}.tasks button.dw-todo-entry{display:flex!important;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 0!important;margin:0!important;border:0!important;border-bottom:1px solid #ece7dc!important;border-radius:0!important;background:transparent!important;text-align:left;color:#263440!important}.dw-todo-entry>span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}.dw-todo-entry b{font-size:14px}.dw-todo-entry small{font-size:11px;color:#697784}.dw-todo-link{flex:none;font-size:12px;color:#8c6418}.tasks button.dw-todo-more{padding:8px 0!important;border:0!important;background:transparent!important;font-size:12px!important;text-align:right;color:#6a7783!important}.dw-todo-error,.dw-todo-retry{font-size:12px;color:#a52135}

/* Signature status is separate from the disciplinary warning level. */
.dw-card-action .dw-sign-status{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:4px 7px;font-size:12px;font-weight:650;line-height:20px;white-space:nowrap}
.dw-sign-status i{font-style:normal;font-size:14px;line-height:20px}
.dw-card-action.is-pending .dw-sign-status{background:#fff1cf;color:#79500b}
.dw-card-action.is-signed .dw-sign-status{background:#e6f3eb;color:#276446}
.dw-card-action.is-signed{border-top-color:#dbe9df}
.dw-card-action.is-pending button{background:#fff1cf!important;color:#79500b!important;border-radius:5px!important;padding:4px 8px!important;min-height:32px!important}
.dw-card-action.is-signed button{color:#536b60!important;padding:4px 8px!important;min-height:32px!important}
.dw-card-action button:focus-visible{outline:2px solid #687c91;outline-offset:2px}
@media(max-width:600px){.dw-card-action{gap:4px}.dw-card-action .dw-sign-status{font-size:11px;gap:3px;padding:3px 4px}.dw-card-action.is-pending button,.dw-card-action.is-signed button{font-size:11px!important;padding:4px!important}}
/* Keep signing status inline despite the legacy warning card span grid rule. */
body.workspace #discipline .discipline-warning-list article .dw-card-action{display:flex;align-items:center;justify-content:space-between;gap:8px;grid-column:1/-1;min-width:0;margin-top:3px;padding-top:9px;border-top:1px solid #e0e5eb}
body.workspace #discipline .discipline-warning-list article .dw-card-action .dw-sign-status{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;align-self:center;width:auto;min-height:28px;box-sizing:border-box;padding:3px 7px;font-size:12px;line-height:20px;white-space:nowrap}
body.workspace #discipline .discipline-warning-list article .dw-sign-status i{display:inline;flex:none;font-size:14px;line-height:20px;font-style:normal}
body.workspace #discipline .discipline-warning-list article .dw-card-action button{flex:0 0 auto;align-self:center;min-height:30px!important;max-width:none;margin:0;padding:4px 8px!important;font-size:12px!important;line-height:20px;white-space:nowrap}
@media(max-width:600px){body.workspace #discipline .discipline-warning-list article .dw-card-action{gap:5px;flex-wrap:wrap}body.workspace #discipline .discipline-warning-list article .dw-card-action .dw-sign-status{padding:2px 5px;font-size:11px}body.workspace #discipline .discipline-warning-list article .dw-card-action button{padding:3px 5px!important;font-size:11px!important}}
