:root{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;color:#182337;background:#f4f6fa}*{box-sizing:border-box}body{margin:0}.shell{max-width:900px;margin:auto;padding:0 16px}header{display:flex;gap:15px;align-items:center;padding:20px 0;border-bottom:1px solid #dce1eb}header span{margin-left:auto;color:#617089}.brand{font-weight:900;letter-spacing:2px;font-size:22px;color:#172d58;text-decoration:none}button,input,textarea{font:inherit}button,.primary,.outline,.subtle,.dates a,.tabs a{border:0;border-radius:9px;padding:11px 16px;cursor:pointer;text-decoration:none;display:inline-block}button{background:#e8edf6;color:#1c355d}.primary{background:#234d9a;color:white;font-weight:700}.outline{border:1px solid #cbd5e4;background:white;color:#254575}.subtle{background:transparent;color:#63748f;padding:8px}.wide,.action{width:100%;text-align:center}.action{margin:22px 0;font-size:17px;padding:15px}.hero{text-align:center;background:white;border:1px solid #e1e5ed;border-radius:16px;margin-top:25px;padding:25px 15px}.eyebrow{font-size:12px;letter-spacing:2px;color:#70829e;font-weight:800}.hero h1{font-size:clamp(36px,7vw,60px);margin:6px 0 16px;letter-spacing:-1px}.dates{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.dates a{background:#edf1f8;color:#244b89;font-size:14px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tabs{display:flex;gap:6px}.tabs a{background:#e5eaf2;color:#526681}.tabs .active{background:#233f70;color:white}.search{display:flex;gap:6px}.search input{width:220px}.count{margin:18px 0;color:#66778f;font-size:14px}.project,.panel{background:white;border:1px solid #e1e5ed;border-radius:15px;padding:22px;margin:14px 0;box-shadow:0 3px 10px #1b35500a}.top{display:flex;justify-content:space-between;align-items:start;gap:12px}.top h2{font-size:20px;margin:0}.pill{white-space:nowrap;border-radius:20px;font-size:12px;font-weight:800;padding:7px 11px}.green{background:#e0f4e9;color:#12653b}.amber{background:#fff0d4;color:#865500}.red{background:#ffe0e1;color:#a2232a}.description{white-space:pre-wrap;line-height:1.6}.attachment{display:block;margin:8px 0;color:#285aab;overflow-wrap:anywhere}.meta{color:#77849a;font-size:12px;margin-top:18px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.empty{text-align:center;padding:50px;color:#70819a}.login{max-width:450px;margin:70px auto}.panel h1{margin-top:0}label{display:block;font-weight:700;margin:18px 0}label input,label textarea,.search input{display:block;width:100%;padding:12px;margin-top:8px;border:1px solid #ccd5e3;border-radius:8px;background:#fff;color:#182337}textarea{resize:vertical}.muted{color:#718099}.small{font-size:13px}.flash{padding:12px;border-radius:8px;margin-top:12px;background:#e3f2e9}.flash.error{background:#ffe3e5}.back{display:inline-block;margin-top:22px;color:#24519c}.fileline{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid #eee;padding:10px 0}.history{padding:10px 0;border-top:1px solid #eee;color:#60718a;font-size:14px}footer{text-align:center;padding:35px;color:#96a2b3;font-size:12px}@media(max-width:600px){.toolbar,.search{width:100%}.search input{flex:1;min-width:0}.project{padding:16px}.top{flex-wrap:wrap}.actions>*{flex:1;text-align:center}.actions button{width:100%}}

/* Compact project descriptions: first line shown until expanded */
.description-details { margin: 12px 0 16px; }
.description-details summary { cursor: pointer; list-style: none; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; }
.description-details summary::-webkit-details-marker { display: none; }
.description-preview { min-width: 0; flex: 1 1 250px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.expand-label, .collapse-label { color: #24509a; font-size: .88rem; white-space: nowrap; }
.description-details[open] .description-preview, .description-details[open] .expand-label { display: none; }
.description-details:not([open]) .collapse-label { display: none; }
.description-full { white-space: pre-wrap; overflow-wrap: anywhere; margin-top: 12px; line-height: 1.6; }
