:root{font-family:Arial,"Noto Sans TC",sans-serif;color:#103f50;background:#f7fbfc;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.58;cursor:wait}a{color:inherit;text-decoration:none}.hidden{display:none!important}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,24px);background:white;border-bottom:1px solid #e0eef1}.brand{display:flex;align-items:center;gap:18px;font-weight:800;color:#093b4d}.brand img{width:118px;height:56px;object-fit:contain}.link-button{border:0;background:none;color:#0a5b6e;font-weight:700;padding:12px}.entry-shell,.admin-shell{max-width:1140px;margin:auto;padding:54px 24px 72px}.hero{min-height:310px;display:flex;justify-content:space-between;align-items:center;gap:24px}.eyebrow{color:#e7993b;font-size:13px;font-weight:800;letter-spacing:.17em}.hero h1{font-size:clamp(34px,4vw,56px);line-height:1.28;letter-spacing:.02em;margin:16px 0;color:#073a4c}.hero h1 span{color:#0c6470}.subtitle{font-weight:700;font-size:17px;line-height:1.48;margin:0;color:#3b6672}.accent-line{width:230px;height:5px;background:#bce7e9;border-radius:10px;margin-top:28px}.illustration{width:310px;height:240px;position:relative;flex-shrink:0;background:radial-gradient(circle at 60% 50%,#e0f7fa 0 46%,transparent 47%)}.sun{position:absolute;top:32px;right:72px;background:#ffd783;width:26px;height:26px;border-radius:50%}.cloud{position:absolute;background:#b8e0ed;border-radius:30px;height:11px}.cloud-a{width:64px;top:55px;left:20px}.cloud-b{width:52px;top:70px;right:4px}.city{position:absolute;bottom:25px;background:#6fbdbf}.city-a{width:58px;height:72px;left:28px}.city-b{width:32px;height:95px;right:35px}.city-c{width:42px;height:44px;right:75px;background:#e8ad69}.clipboard{position:absolute;top:59px;left:111px;width:95px;height:139px;border:7px solid #17a4a7;border-radius:8px;background:white;transform:rotate(8deg);box-shadow:0 12px 20px #0e75832e;padding:25px 15px 0}.clip{position:absolute;top:-16px;left:25px;width:32px;height:18px;background:#18495d;border-radius:6px}.check{font-size:22px;color:#17a4a7;height:30px;border-bottom:2px solid #dce7e9}.pencil{position:absolute;top:102px;right:48px;background:#f6a63d;width:13px;height:94px;transform:rotate(35deg);border-radius:3px}.form-card{display:flex;gap:22px;background:#fff;border:1px solid #e5eff0;border-radius:24px;padding:32px;box-shadow:0 24px 60px #093a4a12;max-width:920px;margin:12px auto 0}.step-mark{font-size:28px;font-weight:900;color:#eba13d;background:#fff3d9;border-radius:16px;width:65px;height:65px;display:grid;place-items:center;flex-shrink:0}.form-content{flex:1}.form-content h2{font-size:25px;margin:2px 0 8px}.form-content p,.panel p,.admin-heading p{color:#617e87;line-height:1.5}.form-content p{margin:0 0 22px}label{display:block;font-weight:700;margin:0 0 9px}.entry-row{display:flex;gap:12px}input,select{border:1px solid #cbdde1;border-radius:12px;background:white;padding:14px 16px;color:#103f50;min-width:0}input:focus,select:focus{outline:3px solid #bce7e9;border-color:#159ea6}.entry-row input{flex:1}.primary-button,.secondary-button,.danger-button{border-radius:12px;padding:13px 18px;font-weight:800;border:1px solid transparent}.primary-button{background:#0b5969;color:white}.primary-button:hover{background:#073f50}.secondary-button{background:#eef8f8;color:#086274;border-color:#cbe7e9}.secondary-button:hover{background:#d8eff1}.danger-button{background:#b73a40;color:white}.entry-note{text-align:center;color:#627d86;font-size:14px;margin-top:24px}.status{min-height:23px;margin:16px 0 0!important;color:#be4d38;font-weight:700}.status.ok{color:#0b8568}footer{text-align:center;color:#759099;padding:26px}.admin-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-heading h1{font-size:36px;margin:8px 0}.admin-heading p{margin:0}.panel{background:white;border:1px solid #e0ecee;border-radius:20px;padding:26px;margin-bottom:20px;box-shadow:0 9px 25px #0c4d5910}.panel h2{margin:0 0 10px;font-size:21px}.panel p{margin:0 0 20px}.auth-panel{max-width:450px;margin:50px auto}.auth-panel form{display:grid;gap:14px}.toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.toolbar label{margin:0}.switch{display:flex;gap:8px;align-items:center}.switch input{width:18px;height:18px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat{background:#063e51;color:white;border-radius:18px;padding:24px}.stat:nth-child(2){background:#07898c}.stat:nth-child(3){background:#f3ae48;color:#173f4e}.stat:nth-child(4){background:#cdeef0;color:#0d5869}.stat span{display:block;font-weight:700}.stat strong{display:block;font-size:38px;margin-top:12px}.admin-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.field-grid{display:grid;gap:12px}.field-grid input{display:block;width:100%}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}.sync-meta{display:grid;grid-template-columns:auto 1fr;gap:10px 18px}.sync-meta dt{font-weight:700}.sync-meta dd{margin:0;word-break:break-word}.panel-title{display:flex;align-items:start;justify-content:space-between;gap:12px}.panel-title .actions{margin-top:0}.dorm-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}.dorm-pill{background:#edf7f7;border-radius:12px;padding:10px 14px;font-weight:700}.table-wrap{overflow:auto;max-height:500px}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:13px;border-bottom:1px solid #e7eff1;white-space:nowrap}th{color:#577680;background:#f5fafb;position:sticky;top:0}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#fff1d6;color:#8d5603;font-size:13px;font-weight:800}.badge.done{background:#d7f2ed;color:#087667}.danger-zone{border-color:#f7d8d8}.danger-zone p{margin-bottom:13px}@media(max-width:760px){.topbar{height:70px}.brand img{width:85px}.brand span{font-size:13px}.entry-shell,.admin-shell{padding:34px 16px}.hero{display:block;min-height:0}.hero h1{font-size:34px}.illustration{margin:14px auto 0;transform:scale(.83);height:200px}.form-card{padding:22px;gap:12px}.step-mark{width:46px;height:46px;font-size:20px}.form-content h2{font-size:21px}.entry-row{display:grid}.entry-row input,.entry-row button{width:100%}.stats{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.panel-title{display:block}.panel-title .actions{margin-bottom:14px}.admin-heading h1{font-size:28px}}@media(max-width:390px){.form-card{display:block}.step-mark{margin-bottom:14px}.stats{gap:8px}.stat{padding:16px}}
