:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#352238;background:#f8f0f6;font-size:16px;--wine:#902b63;--dark:#55143f}*{box-sizing:border-box}body{margin:0;background:radial-gradient(at 85% 0,#55e2d028,transparent 45%),#f8f0f6;min-height:100vh}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid #d9c3d3;border-radius:12px;padding:11px 15px;background:white;color:var(--wine);font-weight:700}button:disabled{opacity:.5;cursor:wait}a{color:var(--wine)}button:focus-visible,a:focus-visible{outline:3px solid #157b7a;outline-offset:3px}header{background:white;border-bottom:1px solid #eadce4;padding:12px max(18px,calc((100vw - 1440px)/2));display:flex;align-items:center;justify-content:space-between;gap:14px}header img{width:155px;height:58px;object-fit:cover;border-radius:10px}nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}main{max-width:1480px;margin:auto;padding:32px 24px 70px}.heading,.row{display:flex;align-items:center;justify-content:space-between;gap:16px}h1{font-size:clamp(30px,4vw,48px);margin:7px 0;letter-spacing:-.04em}h1 span{color:var(--wine);font-weight:500}.eyebrow{font-size:14px;font-weight:800;letter-spacing:.12em;color:var(--wine)}.primary{color:white;background:linear-gradient(120deg,#bd096e,#902b63,#55143f);border:0}.toolbar{display:flex;align-items:end;gap:14px;margin:20px 0}.toolbar label{max-width:330px;flex:1}label{display:grid;gap:7px;font-size:14px;font-weight:700;margin:15px 0}input,select,textarea{width:100%;border:1px solid #d6c3d0;border-radius:10px;padding:12px;color:#352238;background:white}textarea{resize:vertical;line-height:1.5}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.column{background:#eee0e9;border-radius:20px;padding:15px;min-height:280px;border-top:5px solid var(--accent)}.column h2{font-size:18px;display:flex;justify-content:space-between;margin:4px 0 18px}.card{display:block;text-align:left;width:100%;margin:0 0 12px;padding:18px;border:1px solid #e1cfdd;border-radius:15px;background:white;color:#352238;box-shadow:0 4px 15px #55143f08}.card strong{display:block;font-size:17px;overflow-wrap:anywhere;line-height:1.4;margin-bottom:12px}.card span{display:block;font-size:14px;line-height:1.65;font-weight:500}.card .due{margin-top:12px;color:var(--wine);font-weight:700}.card .late{color:#b12245}.empty,.muted{color:#786573;font-size:14px;line-height:1.5}.panel{padding:20px;background:white;border-radius:20px;margin:20px 0}.notice{display:block;text-align:left;width:100%;margin:10px 0;font-size:14px;line-height:1.5}.notice.unread{border-left:5px solid #902b63;background:#fef3fa}dialog{width:min(700px,calc(100% - 24px));max-height:90vh;overflow:auto;border:1px solid #d9c3d3;border-radius:22px;padding:26px;color:#352238}dialog::backdrop{background:#28132399;backdrop-filter:blur(4px)}dialog h2{margin:0;overflow-wrap:anywhere;font-size:24px}dialog section{border-top:1px solid #eadce4;margin-top:24px;padding-top:10px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:16px}#error,.formError{color:#b12245;white-space:pre-wrap;font-size:14px}.entry{border-left:3px solid #d8b3cc;padding:4px 0 4px 16px;margin:16px 0}.entry p,.description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.entry small{font-size:14px;color:#786573}.file{display:block;padding:12px 0;overflow-wrap:anywhere}#count{background:#902b63;color:white;border-radius:20px;padding:2px 7px;font-size:14px}@media(max-width:1000px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){header{align-items:start}header img{width:120px;height:46px}nav{justify-content:end;font-size:14px;gap:5px}nav button{font-size:14px;padding:8px}main{padding:24px 14px}.heading{align-items:start}.heading .primary{font-size:14px}.toolbar{flex-wrap:wrap}.toolbar label{min-width:calc(50% - 10px)}.board{grid-template-columns:1fr}.column{min-height:160px}.twocol{grid-template-columns:1fr;gap:0}dialog{padding:20px}.row{align-items:start}}

.toolbar{flex-wrap:wrap}.toolbar label[hidden]{display:none}.toolbar label{min-width:180px}.toolbar label:has(#search){flex:1.5}@media(max-width:600px){.toolbar label{min-width:calc(50% - 10px)}}

#assignmentSection{background:#e5f8f4;padding:18px;border-radius:18px;margin:20px 0}#assignmentForm button{margin:12px 0}button.danger{color:#b42035;border:1px solid #b42035;background:#fff5f6;margin-top:12px}#createSelection,#uploadSelection{overflow-wrap:anywhere}button.notice:disabled{opacity:.65;cursor:default}
.attachment-dropzone{margin:16px 0;padding:20px;border:2px dashed #c681aa;border-radius:16px;background:linear-gradient(120deg,#fff4fa,#eefbf7);transition:border-color .15s,background .15s}.attachment-dropzone strong{display:block;color:#902b63;font-size:17px}.attachment-dropzone p{font-size:14px;color:#685060;line-height:1.5;margin:8px 0}.attachment-dropzone label{margin-bottom:0}.attachment-dropzone.drag-active{border-color:#157b7a;background:#d9f5ec;box-shadow:0 0 0 3px #157b7a20}.attachment-selection{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 0;border-bottom:1px solid #eadce4}.attachment-selection span{overflow-wrap:anywhere;min-width:0}.attachment-selection button{flex-shrink:0;font-size:13px;padding:7px 10px}.attachment-dropzone input{background:#fff}
