:root{font-family:Inter,Noto Sans TC,PingFang TC,system-ui,sans-serif;color:#1d1b18;background:#f5f4f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:#f5f4f1}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100dvh;max-width:760px;margin:auto;background:#f7f6f3;padding-bottom:96px}header{height:72px;background:#ff5b00;padding:19px 24px;display:flex;justify-content:space-between;align-items:center;color:#fff}.wordmark{font-family:Arial Black,Impact,sans-serif;font-size:33px;line-height:1;letter-spacing:-3px}.account select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #ffffff80;border-radius:24px;padding:8px 28px 8px 12px;background:#ffffff18;color:#fff;font-size:13px}.account option{color:#1d1b18}.hero{position:relative;overflow:hidden;min-height:490px;padding:42px 24px 32px;color:#fff;background:#ff5b00}.hello{font-family:Georgia,"Noto Serif TC",serif;font-size:36px;font-weight:700}.hero p{margin:8px 0 0;font-size:15px}.hero time{display:block;margin-top:22px;font-family:Georgia,serif;font-size:60px;line-height:1;font-weight:700;letter-spacing:-3px}.hero small{display:block;margin-top:9px;font-weight:600}.rabbit{position:absolute;right:-28px;bottom:-35px;width:225px;opacity:.28;fill:none;stroke:#ffd6b9;stroke-width:12;stroke-linecap:round}.mode-switch{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;border:1.5px solid #fff;border-radius:40px;margin-top:30px;padding:3px}.mode-switch button{border:0;border-radius:34px;background:transparent;color:#fff;padding:13px 6px;font-weight:800}.mode-switch .selected{background:#fff;color:#f35300}.punch{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;width:192px;height:192px;margin:34px auto 0;border:8px solid #ffd3b9;border-radius:50%;background:#fff;color:#20201d;box-shadow:0 16px 32px #9e330a55}.punch .icon{font-size:38px;color:#f35300}.punch strong{font-size:28px;margin-top:4px}.punch span{font-size:13px;color:#8a634f;margin-top:3px}.panel{margin:16px;background:#fff;border:1px solid #e8e2dd;border-radius:20px;padding:18px;box-shadow:0 8px 22px #3215000a}.panel-title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:800}.panel-title button{margin-left:auto;background:none;border:0;color:#f35300;font-weight:700}.icon{font-style:normal;color:#f35300;font-size:22px}.status-panel p{margin:12px 0 7px;color:#655c55}.status-panel a{color:#e94d00;font-weight:700;font-size:14px}.timeline{margin-top:15px}.timeline-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #eee9e4}.timeline-row:last-child{border:0}.timeline-row i{width:10px;height:10px;border:2px solid #f35300;border-radius:50%}.timeline-row i.out{border-color:#888}.timeline-row div{display:flex;flex-direction:column;gap:3px;flex:1}.timeline-row span,.leave-row span{color:#776d65;font-size:13px}.timeline-row em{font-size:12px;font-style:normal;background:#fff0e6;color:#ef5300;border-radius:20px;padding:4px 7px}.empty{color:#8a817a;margin:15px 0 0}.team-row{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid #eee9e4}.team-row:last-child{border:0}.avatar{width:36px;height:36px;background:#ff5b00;color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:800}.team-row b{flex:1}.ok{color:#1b9b56;font-weight:700}.muted{color:#8a817a}.content-screen{padding:28px 16px}.content-screen h1{font-family:Georgia,"Noto Serif TC",serif;font-size:34px;margin:0 0 22px}.content-screen h2{font-size:18px;margin:28px 0 12px}.leave-form{display:grid;gap:13px;background:#fff;border-radius:20px;padding:18px;border:1px solid #e8e2dd}.leave-form label{display:grid;gap:7px;font-size:14px;font-weight:700}.leave-form input,.leave-form select,.leave-form textarea{border:1px solid #ddd4ce;border-radius:10px;padding:11px;background:#fff}.leave-form textarea{min-height:74px;resize:vertical}.solid{border:0;border-radius:12px;background:#f35300;color:#fff;padding:13px;font-weight:800}.leave-row{position:relative;display:flex;gap:12px;align-items:start;background:#fff;padding:15px;border-bottom:1px solid #ece6e1}.leave-row:first-of-type{border-radius:16px 16px 0 0}.leave-row:last-child{border-radius:0 0 16px 16px}.leave-row div:first-child{flex:1}.leave-row span{display:block;margin-top:3px}.leave-row p{font-size:13px;margin:8px 0 0;color:#655c55}.status{font-size:12px;padding:5px 7px;border-radius:20px;white-space:nowrap}.status.pending{background:#fff0e6;color:#e54d00}.status.approved{background:#e5f6ec;color:#167a43}.status.rejected{background:#fde7e4;color:#be3d30}.review{display:flex;gap:5px;position:absolute;right:15px;bottom:10px}.review button{border:0;border-radius:8px;padding:5px 8px;color:#fff;background:#218d50;font-size:12px}.review button+button{background:#9d4941}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}.metrics div{background:#fff;border:1px solid #e8e2dd;border-radius:16px;padding:14px 10px}.metrics b{font-size:28px;color:#f35300;display:block}.metrics span{font-size:12px;color:#736a63}.report-row{display:grid;grid-template-columns:70px 1fr;gap:4px;padding:13px 0;border-bottom:1px solid #eee9e4;font-size:14px}.report-row time{grid-column:2;color:#7a716b;font-size:12px}nav{position:fixed;z-index:3;bottom:0;left:50%;transform:translate(-50%);display:grid;grid-template-columns:repeat(4,1fr);width:min(760px,100%);background:#fff;border-top:1px solid #e5ded8;padding:10px max(18px,env(safe-area-inset-left)) max(14px,env(safe-area-inset-bottom))}nav button{border:0;background:none;color:#8a817a;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:13px}nav button.active{color:#f35300;font-weight:800}.toast{position:fixed;z-index:5;top:84px;left:50%;width:calc(100% - 32px);max-width:520px;transform:translate(-50%);background:#26211e;color:#fff;padding:13px 16px;border-radius:14px;box-shadow:0 12px 32px #0004;font-size:14px}.setup-shell{min-height:100dvh;max-width:560px;margin:auto;padding:52px 24px;background:#fff7f1}.setup-shell .brand-logo{width:56px;height:64px;object-fit:contain}.setup-shell h1{margin:22px 0 8px;font-family:Georgia,"Noto Serif TC",serif;font-size:34px}.setup-shell>p{margin:0 0 26px;color:#6e5a4d;line-height:1.65}.setup-shell form,.setup-success,.invite-results{display:grid;gap:14px;padding:20px;border:1px solid #efd9cb;border-radius:18px;background:#fff}.setup-shell label{display:grid;gap:7px;color:#554b45;font-size:14px;font-weight:800}.setup-shell input{width:100%;min-height:48px;border:1px solid #dfcfc5;border-radius:12px;padding:0 12px;background:#fff}.setup-shell small{color:#876f61;line-height:1.5}.setup-success b{line-height:1.65;color:#276a42}.setup-success a{text-align:center;text-decoration:none}.admin-setup fieldset{display:grid;gap:9px;margin:2px 0 0;border:0;padding:0}.admin-setup legend{margin-bottom:8px;color:#554b45;font-size:14px;font-weight:800}.admin-setup .check-row{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid #ead8cc;border-radius:12px}.admin-setup .check-row input{width:18px;min-height:auto;margin:0}.invite-results{margin-top:18px}.invite-results>div{display:grid;grid-template-columns:60px 1fr auto;gap:8px;align-items:center}.invite-results span{font-size:14px;font-weight:800}.invite-results input{min-width:0;min-height:38px;padding:0 8px;font-size:11px}.invite-results button{border:1px solid #ef5b19;border-radius:10px;background:#fff;color:#d94e0c;padding:9px;font-weight:800}@media (min-width:700px){.app-shell{box-shadow:0 0 0 1px #e6dfda}.clock-screen{max-width:650px;margin:auto}.hero{border-radius:0 0 28px 28px}.content-screen{padding:38px}.punch{width:208px;height:208px}}@media (max-width:390px){.hero time{font-size:49px}.hello{font-size:31px}.punch{width:174px;height:174px}.punch strong{font-size:24px}.invite-results>div{grid-template-columns:1fr}.invite-results button{width:100%}}.report-export{display:grid;gap:16px}.report-export p{margin:6px 0 0;color:#776d65;line-height:1.55}.report-export-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.report-export-controls label{display:grid;gap:6px;color:#665b54;font-size:13px;font-weight:700}.report-export-controls input{width:100%;min-height:44px;padding:8px 10px;border:1px solid #dfd4cd;border-radius:11px;background:#fff;font:inherit}.report-export-controls button{min-height:44px;border-radius:12px;font-weight:800}.report-export-controls .outline{border:1px solid #ef5b19;background:#fff;color:#d94e0c}@media (min-width:700px){.report-export{grid-template-columns:minmax(0,1fr) minmax(420px,1.2fr);align-items:end}.report-export-controls{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}}.submitted-journal{position:relative;margin-top:14px;padding:14px;border:1px solid #eadfd8;border-radius:18px;background:#fff}.edit-journal{width:100%;min-height:44px;margin-top:10px;border:1px solid #ef5b19;border-radius:12px;background:#fff7f1;color:#d94e0c;font-weight:800}.journal-editing{display:grid;grid-template-columns:1fr auto;gap:5px 14px;margin:0 0 16px;padding:14px 16px;border:1px solid #ef5b19;border-radius:15px;background:#fff0e6;color:#6f4a37}.journal-editing b{color:#d94e0c}.journal-editing span{font-size:13px}.journal-editing button{grid-column:2;grid-row:1/3;border:0;background:transparent;color:#9a4b25;font-weight:800}.journal-mode select:disabled{opacity:.72;cursor:not-allowed}.leave-reminder-panel{margin:14px 20px 0;padding:15px;border:1px solid #f2c9ad;border-radius:16px;background:#fff7f1;color:#5f493d}.leave-reminder-panel>b{display:block;margin-bottom:10px;color:#d94e0c;font-size:16px}.leave-reminder-row{display:grid;gap:10px;padding:12px;border-radius:13px;background:#fff}.leave-reminder-row>div:first-child{display:grid;gap:3px}.leave-reminder-row span{color:#7b6a60;font-size:12px}.reminder-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.reminder-stages>span{display:grid;gap:3px;padding:8px;border-radius:10px;background:#f4efeb;text-align:center}.reminder-stages>span.today{background:#fff0d8;color:#a65a00;font-weight:800}.reminder-stages>span.passed{background:#eaf7ef;color:#187444}.reminder-stages small{font-size:10px;line-height:1.35}@media (max-width:520px){.reminder-stages{grid-template-columns:1fr}.leave-reminder-panel{margin:12px 14px 0}}.push-control{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 20px 0;padding:14px 15px;border:1px solid #f2c9ad;border-radius:16px;background:#fff;color:#59483e;box-shadow:0 7px 18px #3215000a}.push-control>div:first-child{display:grid;gap:4px}.push-control b{color:#d94e0c}.push-control span{font-size:12px;line-height:1.5}.push-control button{flex:0 0 auto;border:0;border-radius:999px;background:#f35300;color:#fff;padding:9px 13px;font-size:12px;font-weight:800}.push-control button:disabled{opacity:.65}.push-actions{display:flex;gap:7px}.push-control .quiet{border:1px solid #e5d7ce;background:#fff;color:#765e50}@media (max-width:520px){.push-control{align-items:stretch;flex-direction:column;margin:12px 14px 0}.push-control>button,.push-actions button{min-height:42px}.push-actions{display:grid;grid-template-columns:1fr 1fr}}.login-shell{min-height:100dvh;width:100%;padding:max(40px,env(safe-area-inset-top)) 24px max(40px,env(safe-area-inset-bottom));background:#ff5b00;color:#fff}.login-shell>*{display:block;max-width:440px;margin-left:auto;margin-right:auto}.login-shell>.brand-logo{margin-bottom:28px}.login-shell h1{font-size:clamp(26px,5vw,36px);line-height:1.4;margin-top:0;margin-bottom:12px}.login-shell>p{line-height:1.7;margin-bottom:28px}.login-shell form{display:grid;gap:18px;padding:26px;background:#fff;border-radius:20px;box-shadow:0 14px 36px #8f320020}.login-shell form{color:#24150d}.login-shell label{display:grid;gap:8px;font-weight:700}.login-shell input{width:100%;min-width:0;min-height:48px;border:1px solid #c9b8ad;border-radius:10px;background:#fff;color:#24150d;font-size:16px;padding:12px}.login-shell .text-link{color:#a53600;text-underline-offset:3px}.login-shell .solid{min-height:48px;background:#24150d;color:#fff}.login-shell .login-error{color:#9c1b15;line-height:1.5}.login-shell :is(input,button,a):focus-visible{outline:3px solid #a53600;outline-offset:3px}@media (max-width: 390px){.login-shell{padding-left:18px;padding-right:18px}.login-shell form{padding:20px}}.submitted-day{margin:0 0 20px;padding:16px;border:1px solid #f1c9b1;border-radius:18px;background:#fff8f3}.submitted-day-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid #eddcd2}.submitted-day-head div,.submitted-day-head b,.submitted-day-head span{display:block}.submitted-day-head div>span{margin-top:4px;color:#7a6a61;font-size:12px;line-height:1.5}.submitted-day-head>span{flex:none;border-radius:999px;padding:5px 9px;background:#f35300;color:#fff;font-size:12px;font-weight:800}.journal-additional-title{margin:24px 0 12px!important;color:#5c4a40}.journal-archive{margin:0 0 20px;border-color:#f2c9ad}.archive-help{margin:8px 0 16px;color:#76675e;font-size:13px;line-height:1.6}.archive-filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:10px}.archive-filters label{display:grid;gap:6px;color:#65564e;font-size:12px;font-weight:800}.archive-filters input,.archive-filters button{min-height:44px;border:1px solid #dfcfc5;border-radius:12px;background:#fff;color:#372f2a;padding:9px 11px}.archive-filters button{border-color:#ef5b19;color:#d94e0c;font-weight:800}.archive-count{margin:14px 0 7px;color:#8b776b;font-size:12px;font-weight:700}.meeting-archive-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}.meeting-archive-actions button{min-height:40px;padding:8px 14px;border:1px solid #ef5b19;border-radius:999px;background:#fff;color:#d94e0c;font-weight:800}.meeting-archive-actions button:first-child{background:#ef5b19;color:#fff}.meeting-archive-actions button:disabled{opacity:.65}.archive-export-error{color:#a23b16;font-size:13px}.archive-list{border-top:1px solid #eee3dc}.archive-list>button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:14px;padding:14px 2px;border:0;border-bottom:1px solid #eee3dc;background:transparent;color:#2a2522;text-align:left}.archive-list>button:hover,.archive-list>button:focus-visible{background:#fff7f1}.archive-list span,.archive-list b,.archive-list small{display:block}.archive-list small{margin-top:4px;color:#766d67}.archive-list em{flex:none;color:#d94e0c;font-size:12px;font-style:normal;font-weight:800}.journal-reader{position:fixed;z-index:40;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#271b1394}.journal-reader-page{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(1120px,100%);height:min(900px,calc(100dvh - 40px));overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 28px 70px #22140a57}.journal-reader-page>header{min-height:76px;padding:16px 22px;background:#ff5b00}.journal-reader-page>header div,.journal-reader-page>header b,.journal-reader-page>header span{display:block}.journal-reader-page>header b{font-size:20px}.journal-reader-page>header span{margin-top:4px;font-size:12px;opacity:.85}.journal-reader-page>header button{width:40px;height:40px;margin-left:auto;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:#ffffff29;color:#fff;font-size:28px;line-height:1}.journal-reader-page>main{overflow:auto;padding:22px 26px 38px}.meeting-range-reader>main{display:grid;grid-template-columns:190px minmax(0,1fr);gap:24px}.meeting-date-index{position:sticky;top:0;left:auto;right:auto;bottom:auto;width:auto;height:auto;z-index:1;transform:none;grid-template-columns:1fr;border-top:0;align-self:start;display:grid;gap:6px;padding:14px;border-radius:14px;background:#fff3eb}.meeting-date-index>b{margin-bottom:5px}.meeting-date-index a{display:flex;justify-content:space-between;gap:8px;color:#b84510;font-weight:800;text-decoration:none}.meeting-date-index small{color:#8b776b;font-weight:600}.meeting-range-content>section{scroll-margin-top:12px;padding-bottom:24px;border-bottom:1px solid #eee3dc}.journal-record.expanded{border:0}.journal-record.expanded .journal-record-summary>div:first-child{padding-bottom:14px;border-bottom:1px solid #eee4dd}.journal-record.expanded .journal-record-body section{padding:18px}.work-report-modal{padding:16px!important}.work-report-modal-card{width:min(1400px,100%)!important;max-height:calc(100dvh - 32px)!important}.work-report-table-wrap{max-height:calc(100dvh - 112px)!important}@media (max-width: 620px){.archive-filters{grid-template-columns:1fr 1fr}.archive-filters button{grid-column:1 / -1}.journal-reader,.work-report-modal{padding:0!important}.journal-reader-page,.work-report-modal-card{width:100%!important;height:100dvh!important;max-height:none!important;border-radius:0!important}.journal-reader-page>header{padding:max(14px,env(safe-area-inset-top)) 16px 14px}.journal-reader-page>main{padding:18px 16px calc(28px + env(safe-area-inset-bottom))}.meeting-range-reader>main{display:block}.meeting-date-index{position:static;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.meeting-date-index>b{grid-column:1 / -1}.work-report-table-wrap{max-height:calc(100dvh - 76px)!important}}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.history-heading h2{margin:0}.history-heading button{padding:10px 14px;border:1px solid #ef5b19;border-radius:999px;background:#fff;color:#d94e0c;font-weight:800;cursor:pointer}.history-heading button:disabled{cursor:wait;opacity:.65}@media (max-width:560px){.history-heading{align-items:stretch;flex-direction:column}.history-heading button{width:100%}}.work-report-modal-actions{display:flex;align-items:center;gap:8px}.work-report-modal-head .work-report-modal-actions .download{width:auto;height:36px;padding:0 14px;border:1px solid #ef5b19;border-radius:999px;background:#ef5b19;color:#fff;font-size:13px;font-weight:800;white-space:nowrap}.work-report-modal-head .work-report-modal-actions .download:disabled{cursor:wait;opacity:.65}.work-report-modal-head .work-report-modal-actions .close{width:36px;height:36px;font-size:25px}@media (max-width:560px){.work-report-modal-head{align-items:flex-start}.work-report-modal-actions{align-items:stretch;flex-direction:column-reverse}.work-report-modal-head .work-report-modal-actions .download{padding:0 10px}}
