:root{--navy:#13233f;--blue:#2474e8;--bg:#f2f6fc;--ink:#17243a;--muted:#68768c;--red:#b83232;--line:#e1e8f2}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI","Noto Sans TC",sans-serif}header{height:68px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1120px)/2))}header a{color:#d7e3f5;text-decoration:none}main{max-width:1120px;margin:34px auto;padding:0 18px}.card{background:#fff;border-radius:20px;padding:28px;box-shadow:0 12px 38px #213b641b;margin-bottom:22px}.login{max-width:490px;margin:10vh auto;text-align:center}.login p,.card>p{color:var(--muted);line-height:1.7}#google-button{display:flex;justify-content:center;margin-top:24px}.top{display:flex;justify-content:space-between;align-items:flex-start}.top h1{margin:0 0 5px}.top span{color:var(--muted)}#group-label{display:inline-block;padding:6px 10px;border-radius:999px;background:#e8f1ff;color:#1763c5}.features{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.feature{border:1px solid var(--line);border-radius:16px;padding:20px;background:#fff;text-align:left;color:var(--ink);width:100%;transition:.16s}.feature:hover{border-color:var(--blue);box-shadow:0 8px 22px #2474e81b;transform:translateY(-1px)}.feature h3{margin:0 0 7px}.feature span{float:right;color:var(--blue)}button,.link{border:0;border-radius:10px;padding:10px 14px;font:inherit;font-weight:750;cursor:pointer;text-decoration:none}.primary{background:var(--blue);color:#fff}.danger{background:#ffe8e8;color:#a92e2e}.ghost,.logout{background:#e9eff8;color:#30425f}.hidden{display:none!important}form{display:grid;grid-template-columns:2fr 1fr auto;gap:10px;margin:18px 0}input,select,textarea{border:1px solid #cad5e5;border-radius:10px;padding:10px 11px;font:inherit}textarea{width:100%;min-height:190px;line-height:1.7;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.table{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 9px;border-bottom:1px solid var(--line)}th{font-size:13px;color:var(--muted)}.actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.actions select{max-width:145px}.error{color:var(--red);font-weight:700;min-height:24px}#system-message{color:#087f5b;font-weight:700}@media(max-width:760px){.features,.two,form{grid-template-columns:1fr}.top{flex-direction:column;gap:16px}.card{padding:20px}}
