
:root{--ink:#213b37;--muted:#71807b;--teal:#176d60;--teal-dark:#153e36;--line:#e4e9e4;--bg:#f5f7f3;--white:#fff;--radius:20px}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-family:"PingFang TC","Noto Sans TC",system-ui,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #55a898;outline-offset:4px}button{border:0}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.brand{display:flex;align-items:center;gap:12px}.brand-mark{font-family:Georgia,serif;font-size:29px;letter-spacing:-3px;background:#dce9de;border-radius:13px;width:49px;height:49px;display:grid;place-items:center;padding-right:3px;color:#214f42}.brand strong{font-size:15px;letter-spacing:2px;display:block}.brand small{display:block;font-size:10px;letter-spacing:2px;opacity:.6;margin-top:5px}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:600}.muted{color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;font-size:11px;background:#edf1eb;color:#637366;white-space:nowrap}.pill{border:1px solid var(--line);background:transparent;border-radius:30px;padding:7px 12px;font-size:12px}.primary{border-radius:10px;background:var(--teal);color:white;padding:14px 20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:9px}.primary:hover{background:#12564d}.secondary{border:1px solid var(--line);background:white;padding:13px 18px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:9px}.secondary:hover{background:#f3f6f1}.text-button{padding:0;background:none;color:var(--teal);font-size:12px;display:inline-flex;gap:7px;align-items:center}.text-button svg{width:16px;height:16px}.demo-note{font-size:11px;line-height:1.8;color:var(--muted)}
/* Sign in */
.login-view{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff;padding:22px}.login-story{position:relative;border-radius:25px;overflow:hidden;background:#173f36;color:#fff;padding:44px 50px;display:flex;flex-direction:column;min-height:720px}.login-story .brand-mark{background:#dfeada}.login-story .brand small{opacity:.65}.story-body{position:relative;z-index:1;margin:auto 0;padding:75px 0 90px}.story-body .eyebrow{color:#b9d1bf}.story-body h1{font-size:clamp(34px,3.5vw,52px);font-weight:500;letter-spacing:2px;line-height:1.6;margin:25px 0 22px}.story-body p{line-height:2.1;color:#becfc6;max-width:350px;font-size:14px}.story-tags{display:flex;flex-wrap:wrap;gap:9px;margin-top:35px}.story-tags span{font-size:11px;color:#d3dfd4;border:1px solid #64857566;border-radius:30px;padding:8px 13px}.orb{position:absolute;border:1px solid #72967d33;width:520px;height:520px;border-radius:50%;right:-330px;bottom:-80px}.orb:before,.orb:after{content:"";position:absolute;border:1px solid #72967d33;border-radius:50%;inset:55px}.orb:after{inset:110px}.story-foot{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;color:#a9c1b1}.login-side{display:flex;flex-direction:column;padding:22px 38px;align-items:center;justify-content:center;position:relative}.login-meta{position:absolute;right:28px;top:20px;display:flex;gap:12px;align-items:center}.login-form{width:100%;max-width:355px;margin:85px 0}.login-form .eyebrow{color:var(--teal)}.login-form h2{font-size:30px;font-weight:550;letter-spacing:1px;margin:14px 0 10px}.login-form>p{color:var(--muted);font-size:13px;margin-bottom:34px}.field{display:block;margin:19px 0}.field>span{display:block;font-size:12px;font-weight:600;margin-bottom:10px}.field input,.field select{width:100%;border:1px solid #dce3dc;border-radius:9px;padding:14px;background:white;color:var(--ink);min-height:46px}.field input::placeholder{color:#a6ada6}.password-wrap{position:relative}.password-wrap input{padding-right:45px}.eye{position:absolute;right:11px;top:12px;background:none;padding:2px;color:#8b968c}.eye svg{width:19px;height:19px}.login-help{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:18px 0 27px;color:var(--muted)}.login-help span{display:flex;align-items:center;gap:5px}.login-help svg{width:14px;height:14px}.login-form .primary,.login-form>.secondary{width:100%;font-size:13px}.login-form .primary svg{width:17px;height:17px}.divider{display:flex;align-items:center;gap:13px;color:#9ca69e;font-size:10px;margin:22px 0}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}.login-form>.demo-note{text-align:center;margin:20px 0 0}.login-footer{position:absolute;bottom:24px;text-align:center;color:#9ba49c;font-size:10px;line-height:1.8}.inline-message{font-size:12px;line-height:1.8;color:#93662b;background:#faf4e6;border-radius:8px;padding:12px;margin:14px 0}
/* Portal: top navigation, authenticated tools, no side columns */
.site-header{height:82px;background:white;border-bottom:1px solid var(--line);padding:0 max(28px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px}.site-brand{display:flex;align-items:center;gap:11px;background:none;padding:0;text-align:left}.site-brand .brand-mark{width:40px;height:40px;font-size:25px;border-radius:10px}.site-brand strong{font-size:12px;letter-spacing:1.8px;display:block}.site-brand small{font-size:10px;color:var(--muted);display:block;letter-spacing:1px;margin-top:4px}.top-navigation{display:flex;align-items:center;gap:23px}.top-navigation button{display:flex;align-items:center;gap:7px;background:none;padding:10px 0;font-size:12px}.top-navigation button svg{width:16px;height:16px}.top-navigation .nav-auth{background:var(--teal);color:white;border-radius:9px;padding:10px 16px}.session-label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:8px}.session-label:before{content:"";width:6px;height:6px;background:#7b9b6a;border-radius:50%}.login-view{min-height:calc(100vh - 82px);max-width:1440px;margin:auto}.login-story{min-height:650px}.login-story>.brand{display:none}.login-story .story-body{padding-top:55px}.login-form{margin:65px 0 85px}.login-service-link{margin:22px 0 0;text-align:center;padding-top:18px;border-top:1px solid var(--line);font-size:11px;color:#6b7f70;line-height:1.9}.login-service-link a{color:var(--teal);text-decoration:underline;text-underline-offset:3px}.login-service-link span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.login-footer{bottom:16px}.app{min-height:calc(100vh - 82px)}.content{max-width:1120px;margin:0 auto;padding:44px 28px 28px}.heading-row{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:27px}.heading-row .eyebrow{font-size:10px;color:#84957f;letter-spacing:2px}.heading-row h1{font-size:28px;font-weight:550;letter-spacing:.7px;margin:11px 0 0}.date{font-size:11px;color:var(--muted);text-align:right;line-height:1.9}.date .badge{margin-top:8px}.intro{display:flex;justify-content:space-between;align-items:center;gap:24px;border:1px solid #dee6d6;background:#e7eddf;border-radius:20px;padding:28px 32px;margin-bottom:36px}.intro h2{font-size:22px;font-weight:500;letter-spacing:.5px;margin:0 0 11px}.intro p{font-size:12px;line-height:1.9;margin:0;color:#718569}.intro-icon{width:65px;height:65px;border-radius:20px;background:#d5e1c8;display:grid;place-items:center;color:#668557;flex-shrink:0;margin-right:5px}.intro-icon svg{width:32px;height:32px}.section-header{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:19px}.section-header h2{font-size:15px;font-weight:550;margin:0}.section-header small{font-size:10px;color:#94a08b;letter-spacing:1px;margin-left:12px;font-weight:400}.search{display:flex;align-items:center;gap:7px;color:#82967a}.search svg{width:16px;height:16px}.search input{font-size:12px;border:1px solid transparent;background:none;padding:6px;width:153px;min-width:0;color:var(--ink)}.search input::placeholder{color:#8e9b88}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-card{background:white;border:1px solid var(--line);border-radius:16px;min-height:262px;padding:25px;display:flex;flex-direction:column;transition:transform .18s,box-shadow .18s}.service-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #254a3710;border-color:#b4c9b4}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:24px}.icon-box{width:44px;height:44px;display:grid;place-items:center;border-radius:12px}.icon-box svg{width:23px;height:23px}.lavender{background:#f0edf9;color:#8b80ad}.mint{background:#e5f0e9;color:#67987b}.gold{background:#f6f0de;color:#a18b43}.service-card .badge{font-size:10px;background:#f4f6ef;color:#7b8b70}.service-card h3{font-size:18px;font-weight:550;letter-spacing:.3px;margin:0 0 12px}.service-card p{font-size:12px;line-height:1.9;color:#7f8e77;margin:0 0 23px}.card-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:14px;border-top:1px solid #edf0e8;color:#91a086;font-size:10px}.card-footer button{display:flex;align-items:center;gap:8px;padding:7px 0;background:none;color:var(--teal);font-size:12px}.card-footer svg{width:16px;height:16px}.empty{grid-column:1/-1;padding:45px;text-align:center;border:1px dashed var(--line);border-radius:15px;background:white;color:var(--muted)}.other-services{border-top:1px solid var(--line);margin-top:35px;padding-top:23px;display:flex;align-items:center;justify-content:space-between;gap:20px}.other-services div{display:flex;align-items:center;gap:13px}.other-services svg{width:19px;height:19px;color:#94a28a}.other-services strong{font-size:12px;font-weight:500}.other-services p{font-size:11px;color:#8b9981;margin:5px 0 0;line-height:1.8}.other-services a{font-size:12px;color:var(--teal);display:flex;align-items:center;gap:7px;white-space:nowrap}.other-services a svg{width:16px;height:16px;color:var(--teal)}.footer{display:flex;justify-content:space-between;gap:12px;color:#97a18f;font-size:10px;margin-top:45px;line-height:1.8}.login-form>.demo-note{font-size:10px}
/* Dialogs */
dialog{border:1px solid var(--line);border-radius:21px;padding:0;color:var(--ink);width:min(590px,calc(100% - 30px));max-height:90vh;box-shadow:0 25px 100px #163c3325}dialog::backdrop{background:#18382e66;backdrop-filter:blur(4px)}.dialog-head{padding:26px 28px 18px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}.dialog-head h2{margin:8px 0 0;font-size:22px;font-weight:550}.dialog-head .eyebrow{font-size:9px;color:#8b9b82}.close{background:#f2f5ef;border-radius:50%;width:30px;height:30px;font-size:21px;color:#7a8c70}.dialog-body{padding:23px 28px 28px}.dialog-body>p{font-size:12px;color:var(--muted);line-height:1.9;margin:0 0 19px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:22px}.tabs button{background:none;font-size:12px;padding:10px 13px 13px;color:#8c9885;border-bottom:2px solid transparent}.tabs button.active{color:var(--teal);border-color:var(--teal)}.dialog-body .field{margin:15px 0}.dialog-body .field input{font-size:12px;padding:12px}.dialog-body .primary{font-size:12px;margin-top:10px;width:100%}.demo-banner{font-size:11px;line-height:1.8;padding:12px 14px;background:#f3f5ec;border-radius:9px;color:#7a8769;margin-bottom:20px}.form-result{margin-top:13px;font-size:12px;color:var(--teal);line-height:1.9}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}.calendar-toolbar input{padding:8px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:white}.legend{display:flex;gap:12px;font-size:10px;color:#8b9782}.legend i{display:inline-block;width:7px;height:7px;background:#b7caa5;border-radius:50%;margin-right:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekday{text-align:center;font-size:10px;padding-bottom:9px;color:#96a08e}.day{height:53px;border:1px solid #e9ede4;border-radius:7px;padding:6px;font-size:11px;color:#75866a;position:relative}.day.leave{background:#e9f0e0;border-color:#d8e3cc}.day small{display:block;font-size:8px;margin-top:6px;color:#7a9364}.day.blank{border:0}.dialog-bottom{font-size:10px;color:#98a18c;margin-top:18px;line-height:1.8}.system-preview{background:#f4f6f0;border-radius:12px;padding:20px;margin-bottom:20px}.system-preview .row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.system-preview .row:last-child{border:0}.system-preview .row svg{width:18px;color:#7d9571}.system-preview .row span:last-child{margin-left:auto;color:#9aa78f;font-size:10px}.url{font-size:11px;color:#8e9d83;overflow-wrap:anywhere;margin:12px 0}.info-list{padding-left:17px;font-size:12px;line-height:2;color:var(--muted)}
@media(max-width:900px){.service-card{padding:20px}.cards{gap:15px}.card-footer{align-items:flex-start;flex-direction:column}.card-footer button{align-self:flex-end}.login-story{padding:35px 28px}.story-body h1{font-size:35px}.login-side{padding:22px 28px}.session-label{display:none}}
@media(max-width:700px){.site-header{height:70px;padding:0 20px}.site-brand{gap:9px}.site-brand .brand-mark{width:34px;height:34px;font-size:22px;border-radius:9px}.site-brand strong{font-size:10px;letter-spacing:1.4px}.site-brand small{font-size:9px;letter-spacing:0}.top-navigation{gap:17px}.top-navigation button{font-size:11px;gap:5px}.top-navigation .nav-auth{padding:9px 12px}.top-navigation button svg{display:none}.login-view{padding:0;display:block;min-height:calc(100svh - 70px)}.login-story{min-height:0;border-radius:0;padding:24px 27px}.story-body{margin:0!important;padding:0!important}.story-body h1{font-size:24px;line-height:1.7;margin:0 0 9px}.story-body h1 br{display:none}.story-body p{font-size:11px;line-height:1.9;margin:0}.story-tags,.story-foot,.story-body .eyebrow{display:none}.login-side{padding:34px 27px 66px}.login-meta{right:27px;top:18px}.login-meta>span:first-child{display:none}.login-form{margin:15px 0;max-width:440px}.login-form h2{font-size:25px}.login-form>p{margin-bottom:24px}.login-footer{bottom:16px}.app{min-height:calc(100vh - 70px)}.content{padding:30px 20px 23px}.heading-row{align-items:flex-start;margin-bottom:23px}.heading-row h1{font-size:23px;line-height:1.6;max-width:210px}.heading-row .eyebrow{font-size:8px}.date{font-size:9px;max-width:110px;padding-top:5px}.date .badge{font-size:8px;padding:4px 6px}.intro{padding:23px;margin-bottom:29px;gap:15px}.intro h2{font-size:18px;line-height:1.7}.intro p{font-size:11px}.intro-icon{width:42px;height:42px;border-radius:13px;margin:0}.intro-icon svg{width:23px;height:23px}.section-header h2{font-size:14px}.section-header small{display:none}.search input{width:124px;font-size:11px}.cards{grid-template-columns:1fr;gap:15px}.service-card{min-height:0;padding:23px}.card-top{margin-bottom:17px}.service-card h3{font-size:18px}.service-card p{margin-bottom:16px}.card-footer{flex-direction:row;align-items:center;padding-top:10px}.other-services{align-items:flex-start;flex-direction:column;gap:16px;margin-top:28px}.other-services a{align-self:flex-end}.footer{margin-top:35px;font-size:9px;flex-direction:column;gap:4px}.dialog-head{padding:22px}.dialog-body{padding:20px 22px}.dialog-head h2{font-size:20px}.day{height:47px;padding:5px}.day small{font-size:7px}.legend{gap:5px;font-size:8px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.page-message{max-width:1064px;margin:18px auto 0;padding:13px 18px;border:1px solid #ead6bd;background:#fff6e9;color:#8b642e;border-radius:10px;font-size:12px;line-height:1.8}.page-message.success{border-color:#cfdfc5;background:#eaf2e2;color:#537643}.auth-loading{text-align:center;padding:80px 20px;color:var(--muted)}.service-card.unavailable{background:#f9faf7}.service-card.unavailable .icon-box{opacity:.65}.service-card .card-footer button:disabled{opacity:1;color:#9ca693;cursor:default}.service-card[hidden]{display:none!important}.password-reminder{background:#fff5e3;border:1px solid #ead8b3;border-radius:12px;padding:16px 20px;margin-bottom:24px;color:#92713e;font-size:12px;line-height:1.9}.password-reminder button{background:none;color:#7a5b24;text-decoration:underline;text-underline-offset:3px;padding:0;margin-left:8px}.form-result.error{color:#a4543c}.version{font-variant-numeric:tabular-nums}.login-form{margin:55px 0 90px}.login-footer{line-height:1.9}.session-label{letter-spacing:0}.login-side .login-meta{position:absolute}.login-form .primary:disabled{opacity:.6}.form-result:empty{display:none}.login-help{margin-top:20px}.dialog-body .field input[readonly]{background:#f7f9f4;color:#6f8067}.unavailable p{color:#87917d}@media(max-width:700px){.page-message{margin:14px 20px 0}.login-form{margin:15px 0 28px}.login-side{padding-bottom:65px}}
