*{box-sizing:border-box}html{font-family:system-ui,-apple-system,"Noto Sans TC","Microsoft JhengHei",sans-serif;color:#17243c;background:#f4f7fb}body{margin:0;line-height:1.5}.top{background:#102643;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px max(20px,calc((100vw - 1100px)/2))}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand>span:last-child{display:grid}.brand strong{font-size:14px;letter-spacing:.08em}.brand small{font-size:12px;opacity:.75}.brand-mark{display:grid;place-items:center;font-size:15px;font-weight:800;border:1px solid #7792b4;border-radius:9px;width:41px;height:41px}.top nav{display:flex;gap:16px;align-items:center}.top a{color:#dceafd;text-decoration:none;font-size:13px}.top a:hover{text-decoration:underline}.container{max-width:1140px;margin:auto;padding:28px 20px 60px}.intro{display:flex;align-items:start;justify-content:space-between;gap:18px;margin-bottom:26px}.intro h1{font-size:29px;line-height:1.25;margin:4px 0 9px}.intro p{color:#65738a;margin:0;max-width:700px}.intro p.overline{font-size:11px;letter-spacing:.18em;color:#527ba9;font-weight:800}.container h2{font-size:20px;margin:28px 0 14px}.panel,.case,.stats>div,.assignment,.empty{background:#fff;border:1px solid #dce5ef;border-radius:15px;box-shadow:0 2px 9px rgba(36,64,101,.04)}.panel{padding:22px;margin:18px 0}.panel h2{margin:0 0 15px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:480px}.stats>div{padding:17px 20px;display:flex;flex-direction:column;gap:5px}.stats small,.meta small,.member small{color:#708096;font-size:12px}.stats strong{font-size:31px}.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.case{color:inherit;text-decoration:none;padding:18px;display:block;transition:box-shadow .15s}.case:hover{box-shadow:0 5px 22px #10264315;border-color:#92b4d7}.case-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#556a81}.case h3{font-size:18px;margin:12px 0 7px}.case p{font-size:14px;color:#52627a;margin:0 0 14px}.pill{background:#eaf2fc;border:1px solid #c7dcf4;border-radius:999px;font-size:12px;color:#245e91;padding:3px 10px;white-space:nowrap}.pill.prominent{font-size:14px;padding:6px 13px}.line{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#718195;margin-top:8px}.arrow{color:#256d9d;font-weight:700}.done{margin-top:20px}.done summary,.form details summary{cursor:pointer;color:#315987;font-weight:700;margin:12px 0}.empty{padding:24px;color:#64748b}.back{display:inline-block;margin-bottom:17px;color:#315a83;text-decoration:none}.meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.meta div,.member{background:#f6f8fc;border-radius:10px;padding:13px;display:grid;gap:7px}.meta strong,.member strong{font-size:14px}.team{display:grid;grid-template-columns:1fr 2fr;gap:12px}.help{font-size:13px;color:#708096;line-height:1.7}.form{display:grid;gap:15px}.form label{display:grid;gap:7px;color:#30435d;font-size:14px}.form input:not([type=checkbox]),.form select,.form textarea,.search input{width:100%;border:1px solid #cbd8e7;border-radius:9px;background:#fff;color:#162b49;padding:12px;font:inherit;min-height:46px}.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid #8ab1dd;outline-offset:1px}.fields{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:13px 0}.btn{background:#fff;border:1px solid #aec7e1;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;font-weight:700;min-height:44px;font-size:14px;text-decoration:none;cursor:pointer;color:#183c67}.btn.primary{background:#164a80;color:white;border-color:#164a80}.btn.huge{width:100%;margin-top:16px;font-size:17px;min-height:56px}.btn:hover{filter:brightness(.96)}.search{display:flex;gap:10px;margin-bottom:18px}.search input{flex:1}.flash{background:#eff7ff;border:1px solid #b2cde5;padding:12px;border-radius:9px;margin:12px 0}.flash.error{background:#fff3f0;border-color:#f1baae}.photos{display:flex;flex-wrap:wrap;gap:12px;margin-top:15px}.photos a{display:grid;gap:4px;text-decoration:none;color:#29456b;background:#f4f7fc;border-radius:9px;padding:12px;min-width:170px}.photos small{font-size:12px;color:#65738a}.timeline{border-left:2px solid #ccd9e8;margin-left:8px;padding-left:20px}.event{display:grid;gap:5px;position:relative;padding:0 0 20px}.event::before{content:"";position:absolute;left:-27px;top:4px;background:#4f83b9;width:11px;height:11px;border-radius:50%;border:3px solid #fff}.event small{color:#6e8196}.event p{margin:0;white-space:pre-wrap;font-size:14px;color:#4e617b}.assignment{margin:12px 0;padding:18px}.assignment summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center}.assignment summary span:first-child{display:grid;gap:3px}.assignment summary small{color:#72849c}.assignment .form{border-top:1px solid #dde6f1;margin-top:16px;padding-top:18px}.people{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px}.person{display:flex!important;flex-direction:row;align-items:center;gap:8px!important;background:#f5f8fd;padding:10px;border-radius:9px}.person input{width:17px;height:17px}.person small{color:#8494a6}.assign-footer{display:flex;gap:10px}.container footer{color:#8696a9;font-size:12px;margin-top:35px}@media(max-width:740px){.top{padding:14px;align-items:start}.top nav{flex-wrap:wrap;justify-content:end;gap:10px}.container{padding:19px 13px 50px}.intro h1{font-size:23px}.intro{flex-wrap:wrap}.cases,.team,.fields,.people{grid-template-columns:1fr}.meta{grid-template-columns:repeat(2,1fr)}.panel{padding:16px}.line{flex-wrap:wrap}.search{flex-direction:column}.assign-footer{flex-direction:column}.stats{max-width:none}}
.signin{max-width:570px;padding-top:48px}.signin-card{background:white;border:1px solid #dce5ef;border-radius:18px;padding:34px;box-shadow:0 12px 36px #10264312}.signin-card h1{font-size:28px;margin:8px 0}.signin-card .overline{font-size:11px;letter-spacing:.17em;color:#446b9b}.signin-card .form{margin-top:22px}.signin-card .btn.huge{margin-top:3px}@media(max-width:740px){.signin{padding-top:22px}.signin-card{padding:22px}}
