.dt-summary{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:0;margin:14px 0 10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 0}
.dt-summary>div{min-width:0;padding:0 20px;border-right:1px solid var(--line2)}
.dt-summary>div:last-child{border:0}
.dt-summary span{display:block;color:var(--txt3);font-size:12px;margin-bottom:6px}
.dt-summary strong{font-size:16px;color:var(--txt);line-height:1.6;overflow-wrap:anywhere}
.dt-summary small{display:block;color:var(--txt2);font-size:12px;margin-top:2px}
.dt-focus{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#edf8f3;border-left:3px solid var(--green);padding:12px 16px;margin-bottom:12px;color:var(--green-deep);font-size:13px;border-radius:4px}
.dt-focus b{font-size:14px}.dt-focus .focus-owner{color:var(--txt2)}
.dt-jumps{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}
.dt-jumps button{border:1px solid var(--line);background:#fff;border-radius:7px;padding:8px 13px;color:var(--txt2);cursor:pointer;font:inherit;font-size:13px}
.dt-jumps button.active{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.dt-jumps button:hover{box-shadow:0 0 0 2px #dff3eb}
.dt-grid .pj-sec{scroll-margin-top:20px}.dt-grid .pj-kv{row-gap:12px}
.dt-section-label{grid-column:1/-1;margin:10px 0 0;padding:0 0 8px;border-bottom:1px solid var(--line2);font-size:13px;font-weight:650;color:var(--txt)}
.dt-section-label:first-child{margin-top:0}
.dt-side{align-self:stretch}.dt-action-panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow:auto}.dt-history-fold summary{cursor:pointer;color:var(--txt2);padding:12px 0;font-size:12px}
.dt-history-fold .pj-tl{padding-top:0}
.contract-panel{grid-column:1/-1;min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff}
.contract-top{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line2)}
.contract-top b{font-size:13px}.contract-count{color:var(--txt3);font-size:12px}.contract-top button{margin-left:auto}
.contract-file{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line2)}
.contract-file:last-child{border-bottom:0}.contract-file-main{flex:1;min-width:0}
.contract-file-main strong{display:block;font-size:13px;overflow-wrap:anywhere;font-weight:600;color:var(--txt)}
.contract-file-main small{display:block;font-size:11px;color:var(--txt3);margin-top:5px;line-height:1.6}
.contract-file-ops{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.contract-file-ops a{font-size:12px;text-decoration:none}
.contract-empty,.contract-status{padding:14px;color:var(--txt3);font-size:12px}.contract-error{color:#b42318}
.contract-removed{padding:0 14px;color:var(--txt3);font-size:12px}.contract-removed summary{cursor:pointer;padding:12px 0}
.contract-removed .contract-file{padding:10px 0}.contract-removed strong{color:var(--txt2)}
.teacher-assignment{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:8px 0;flex-wrap:wrap}
.teacher-assignment>.k{flex:0 0 78px}.teacher-person{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.teacher-person strong{font-size:14px;color:var(--green-deep)}
@media(min-width:901px){.dt-grid .pj-kv .kv-file{flex-wrap:wrap}.dt-grid .pj-kv .kv-file .sch-ops{margin-left:auto}}
@media(max-width:900px){.dt-action-panel{position:static;max-height:none;overflow:visible}.dt-summary{grid-template-columns:1fr 1fr;row-gap:16px}.dt-summary>div:nth-child(2){border:0}}
@media(max-width:600px){.dt-summary strong{font-size:14px}.dt-summary>div{padding:0 12px}.dt-summary{padding:14px 0}.contract-file{align-items:flex-start;flex-direction:column;gap:9px}.contract-file-ops{justify-content:flex-start}.dt-jumps{gap:5px}.dt-jumps button{padding:7px 10px;font-size:12px}.teacher-assignment{gap:10px}.teacher-person{width:100%;padding-left:0}.dt-focus{align-items:flex-start}}
