:root{--background:#f5f6f6;--surface:#ffffff;--surface-subtle:#fafafa;--text:#161a1d;--text-soft:#60676d;--text-faint:#858c91;--border:#dfe2e3;--border-strong:#c8cdcf;--orange:#f4510b;--orange-dark:#d83e00;--orange-soft:#fff1ea;--green:#13884b;--green-soft:#e9f7ef;--red:#dc3636;--red-soft:#fff0f0;--blue:#1266bc;--blue-soft:#edf5fd;--sidebar-width:224px;--radius-sm:8px;--radius-md:12px;--shadow-modal:0 24px 80px rgb(22 26 29/20%)}*{box-sizing:border-box}body,html{background:var(--background)}body{min-width:320px;min-height:100vh;margin:0;color:var(--text);font-family:Inter,Noto Sans TC,PingFang TC,Microsoft JhengHei,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.5;text-rendering:optimizeLegibility}button,input{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a,button{color:inherit}a{text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;z-index:30;display:flex;width:var(--sidebar-width);flex-direction:column;border-right:1px solid var(--border);background:var(--surface)}.sidebar-top{display:flex;min-height:112px;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);font-size:21px;font-weight:850;letter-spacing:-.04em}.brand-icon{width:30px;height:30px;border-radius:7px;object-fit:cover;flex-shrink:0}.brand-mark{display:flex;width:22px;height:26px;align-items:flex-end;gap:2px}.brand-mark i{display:block;width:6px;background:var(--orange)}.brand-mark i:first-child{height:12px}.brand-mark i:nth-child(2){height:21px;-webkit-clip-path:polygon(100% 0,100% 100%,0 100%,0 22%);clip-path:polygon(100% 0,100% 100%,0 100%,0 22%)}.brand-mark i:nth-child(3){height:26px}.main-nav{display:flex;flex-direction:column;gap:6px;padding:8px 20px}.nav-item{display:flex;min-height:48px;align-items:center;gap:14px;padding:0 14px;border-radius:var(--radius-sm);color:#394046;font-size:14px;font-weight:650;transition:color .14s ease,background .14s ease}.nav-item:hover{background:#f4f5f5;color:var(--text)}.nav-item-active{background:var(--orange-soft);color:var(--orange)}.nav-item-active:hover{background:#ffe9de;color:var(--orange-dark)}.sidebar-footer{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding:18px 20px 22px}.organization-switcher,.profile-switcher{display:flex;width:100%;align-items:center;gap:10px;padding:12px 2px;border:0;border-top:1px solid var(--border);background:transparent;cursor:pointer;text-align:left}.organization-switcher span,.profile-switcher>span:last-child{display:flex;min-width:0;flex-direction:column}.organization-switcher b,.profile-switcher b{overflow:hidden;font-size:15px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.organization-switcher small,.profile-switcher small{color:var(--text-soft);font-size:13px}.audit-avatar,.avatar,.member-avatar{display:inline-grid;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--text);color:white;font-weight:750;overflow:hidden}.avatar img,.member-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.avatar{width:34px;height:34px}.main-area{min-height:100vh;margin-left:var(--sidebar-width)}.mobile-header{display:none}.page{width:100%;max-width:1640px;margin:0 auto;padding:36px clamp(24px,3.25vw,56px) 56px}.dashboard-page{padding-top:30px}.dashboard-heading,.page-header{display:flex;min-height:62px;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:26px}.dashboard-heading h1,.page-header h1{margin:0;font-size:clamp(28px,3vw,42px);font-weight:900;letter-spacing:-.055em;line-height:1.12}.dashboard-heading p,.page-header p{margin:8px 0 0;color:var(--text-soft);font-size:16px}.dashboard-actions,.page-actions,.search-control{display:flex;align-items:center;gap:10px}.search-control{height:46px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px;color:var(--text-soft);transition:border-color .14s ease,box-shadow .14s ease}.search-control:focus-within{border-color:var(--orange);box-shadow:0 0 0 3px rgb(244 81 11/10%)}.search-control input{width:clamp(220px,26vw,360px);border:0;outline:0;background:transparent;color:var(--text);font-size:16px}.search-control input::placeholder{color:#8e969c}.search-control kbd{min-width:29px;padding:2px 5px;border:1px solid var(--border);border-radius:5px;background:var(--surface-subtle);color:var(--text-faint);font-family:inherit;font-size:13px;text-align:center}.icon-button{display:inline-grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.icon-button:hover{border-color:var(--border-strong);background:var(--surface-subtle)}.close-menu{display:none}.notification-button{position:relative;height:46px}.notification-button span{position:absolute;top:-6px;right:-5px;display:grid;width:19px;height:19px;place-items:center;border:2px solid var(--background);border-radius:50%;background:var(--orange);color:white;font-size:11px;font-weight:800}.button{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:8px;padding:0 16px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:15px;font-weight:750;white-space:nowrap;flex-shrink:0;transition:transform .12s ease,background .14s ease,border-color .14s ease}.button:active{transform:translateY(1px)}.button-primary{min-height:46px;border-color:var(--orange);background:var(--orange);color:white}.button-primary:hover{border-color:var(--orange-dark);background:var(--orange-dark)}.button-secondary{border-color:var(--border-strong);background:var(--surface)}.button-ghost:hover,.button-secondary:hover{background:#f2f3f3}.button-ghost{background:transparent;color:var(--text-soft)}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:24px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.metric{position:relative;display:flex;min-height:112px;align-items:center;gap:15px;padding:20px 24px;border-right:1px solid var(--border)}.metric:last-child{border-right:0}.metric:hover{background:var(--surface-subtle)}.metric-icon{display:grid;width:48px;height:48px;flex:0 0 auto;place-items:center;border-radius:50%;border:2px solid;color:#6e777d}.metric>span:nth-child(2){display:grid;grid-template-columns:auto auto;align-items:baseline;grid-gap:0 6px;gap:0 6px}.metric small{grid-column:1/-1;margin-bottom:-2px;color:var(--text-soft);font-size:14px;font-weight:650}.metric strong{font-size:31px;font-weight:850;letter-spacing:-.04em;line-height:1.15}.metric em{color:var(--text-soft);font-size:13px;font-style:normal}.metric-chevron{margin-left:auto;color:var(--text-faint)}.metric-success .metric-icon,.metric-success strong{color:var(--green)}.metric-orange .metric-icon,.metric-orange strong{color:var(--orange)}.metric-danger .metric-icon,.metric-danger strong{color:var(--red)}.dashboard-grid{grid-template-columns:minmax(0,1.75fr) minmax(320px,.8fr);align-items:start}.dashboard-grid,.dashboard-rail{display:grid;grid-gap:20px;gap:20px}.panel{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.panel-header{display:flex;min-height:74px;align-items:center;justify-content:space-between;gap:20px;padding:15px 20px;border-bottom:1px solid var(--border)}.dashboard-page .panel-header{min-height:62px}.panel-header h2{margin:0;font-size:18px;font-weight:800;letter-spacing:-.02em}.panel-header p{margin:2px 0 0;color:var(--text-faint);font-size:13px}.panel-header>a{display:inline-flex;align-items:center;gap:3px;color:var(--blue);font-size:14px;font-weight:700;white-space:nowrap}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;min-width:760px;border-collapse:collapse;text-align:left}.loan-table{min-width:600px;table-layout:fixed}.loan-table td,.loan-table th{padding-inline:10px}.loan-table th:first-child{width:30%}.loan-table th:nth-child(2){width:14%}.loan-table th:nth-child(3){width:13%}.loan-table th:nth-child(4){width:18%}.loan-table th:nth-child(5){width:15%}.loan-table th:nth-child(6){width:10%}.loan-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.loan-table .equipment-cell{min-width:0}.data-table th{height:44px;padding:0 15px;border-bottom:1px solid var(--border);background:var(--surface-subtle);color:var(--text-soft);font-size:14px;font-weight:700;white-space:nowrap}.member-table th{font-size:14px}.data-table td{height:74px;padding:10px 15px;border-bottom:1px solid var(--border);color:#343a3f;font-size:14px;vertical-align:middle}.member-table td{font-size:14px}.data-table tbody tr:last-child td{border-bottom:0}.data-table tbody tr{transition:background .12s ease}.data-table tbody tr:hover{background:#fcfcfc}.equipment-cell,.member-cell{display:flex;min-width:160px;align-items:center;gap:12px}.equipment-cell img{flex:0 0 auto;border-radius:7px;background:#e8eaeb;object-fit:cover}.equipment-cell>span,.member-cell>span:last-child{display:flex;min-width:0;flex-direction:column}.equipment-cell b,.member-cell b,.table-primary{color:var(--text);font-size:16px;font-weight:750;white-space:nowrap}.equipment-cell small,.member-cell small,.table-secondary{display:block;margin-top:2px;color:var(--text-faint);font-size:13px;font-weight:500}.mono{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.status-badge{display:inline-flex;min-height:25px;align-items:center;padding:0 9px;border:1px solid transparent;border-radius:6px;font-size:13px;font-weight:750;white-space:nowrap}.status-available,.status-returned{border-color:#b8e1c9;background:var(--green-soft);color:var(--green)}.status-active,.status-borrowed{border-color:#ffd0b9;background:var(--orange-soft);color:var(--orange-dark)}.status-lost,.status-overdue{border-color:#f2bcbc;background:var(--red-soft);color:var(--red)}.status-maintenance{border-color:#bed9f4;background:var(--blue-soft);color:var(--blue)}.status-reserved{border-color:#e5d7a7;background:#fffae8;color:#8b6a00}.status-cancelled,.status-retired{border-color:var(--border);background:#f1f2f2;color:var(--text-soft)}.empty-state{display:grid;min-height:180px;place-items:center;align-content:center;grid-gap:10px;gap:10px;color:var(--text-faint);text-align:center}.empty-state p{margin:0}.attention-list{padding:6px 20px}.attention-row{display:grid;grid-template-columns:38px 1fr 18px;min-height:70px;align-items:center;grid-gap:11px;gap:11px;border-bottom:1px solid var(--border)}.attention-row:last-child{border-bottom:0}.attention-row>span:nth-child(2){display:flex;min-width:0;flex-direction:column}.attention-row b{font-size:15px;font-weight:750}.attention-row small{margin-top:2px;overflow:hidden;color:var(--text-soft);font-size:13px;text-overflow:ellipsis;white-space:nowrap}.attention-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:7px}.attention-overdue .attention-icon{background:var(--red-soft);color:var(--red)}.attention-due_soon .attention-icon{background:var(--orange-soft);color:var(--orange)}.attention-inspection .attention-icon{background:var(--blue-soft);color:var(--blue)}.activity-list{margin:0;padding:16px 20px 20px 38px;list-style:none}.activity-list li{position:relative;min-height:66px;padding:0 0 14px 19px;border-left:1px solid var(--border)}.activity-list li:last-child{border-left-color:transparent}.activity-dot{position:absolute;top:3px;left:-4px;width:7px;height:7px;border:2px solid var(--surface);border-radius:50%;background:var(--blue);box-shadow:0 0 0 1px var(--blue)}.activity-dot-1{background:var(--green);box-shadow:0 0 0 1px var(--green)}.activity-dot-2{background:var(--text-faint);box-shadow:0 0 0 1px var(--text-faint)}.activity-list time{display:block;color:var(--text-faint);font-size:13px}.activity-list p{margin:3px 0 1px;font-size:14px}.activity-list b{font-weight:800}.activity-list small{color:var(--blue);font-size:13px}.toolbar{display:flex;align-items:center;gap:14px;margin-bottom:18px}.toolbar-search{flex:1 1;max-width:420px}.toolbar-search input{width:100%}.filter-tabs,.record-tabs{display:flex;align-items:center;gap:4px}.filter-tab,.record-tab{min-height:38px;padding:0 13px;border:0;border-radius:7px;background:transparent;color:var(--text-soft);cursor:pointer;font-size:14px;font-weight:700}.filter-tab:hover,.record-tab:hover{background:#eceeee;color:var(--text)}.filter-tab-active,.record-tab-active{background:var(--text);color:white}.filter-tab-active:hover,.record-tab-active:hover{background:#30363a;color:white}.compact-filter{margin-left:auto}.table-summary{display:flex;min-height:54px;align-items:center;justify-content:space-between;gap:20px;padding:0 20px;border-bottom:1px solid var(--border)}.table-summary p{margin:0;color:var(--text-soft);font-size:14px}.table-summary p b{color:var(--text)}.table-summary>button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--text-soft);cursor:pointer;font-size:14px}.asset-table{min-width:880px}.modal-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:rgb(22 26 29/46%)}.modal{width:min(620px,100%);overflow:hidden;border-radius:14px;background:var(--surface);box-shadow:var(--shadow-modal)}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px;border-bottom:1px solid var(--border)}.modal-header h2{margin:0;font-size:23px;font-weight:850;letter-spacing:-.03em}.modal-header p{margin:4px 0 0;color:var(--text-soft);font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;padding:24px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:#3d4449;font-size:14px;font-weight:750}.label-text,.label-title{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:#334155}.required-mark{color:#ef4444;font-size:14px;font-weight:700;line-height:1}input::placeholder,textarea::placeholder{color:#94a3b8;font-size:14px;font-weight:400}.form-grid input,.form-grid select{height:43px;padding:0 12px;border:1px solid var(--border-strong);border-radius:7px;outline:0;background:var(--surface);font-size:14px}.form-grid input:focus,.form-grid select:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgb(244 81 11/10%)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:16px 24px;border-top:1px solid var(--border);background:var(--surface-subtle)}.record-tabs{gap:8px;margin-bottom:18px;padding:5px;overflow-x:auto;border:1px solid var(--border);border-radius:9px;background:var(--surface)}.record-tab{display:inline-flex;min-height:40px;align-items:center;gap:8px;white-space:nowrap}.record-tab span{min-width:20px;padding:1px 6px;border-radius:10px;background:#e8eaea;color:var(--text-soft);font-size:12px}.record-tab-active span{background:#454b4f;color:white}.record-tab-danger{color:var(--red)}.member-avatar{width:38px;height:38px;background:#30363a}.member-role{font-size:14px;font-weight:650;white-space:nowrap}.member-role-admin{color:#2563eb;font-weight:700}.member-role-unassigned{color:#9ca3af}.member-date{color:#6b7280;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.member-action-status{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;color:#6b7280;font-size:14px;white-space:nowrap}.member-table td:last-child,.member-table th:last-child{width:96px;text-align:right;white-space:nowrap}.role-switch-btn{min-height:auto;padding:6px 10px;font-size:14px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.member-table .status-badge{min-height:30px;padding:0 11px;font-size:13px}.role-switch-text{display:inline-flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.25}.role-switch-text span{display:block;white-space:nowrap}.audit-list{margin:0;padding:0;list-style:none}.audit-list li{display:grid;grid-template-columns:150px 38px minmax(0,1fr);align-items:start;grid-gap:16px;gap:16px;padding:20px;border-bottom:1px solid var(--border)}.audit-list li:last-child{border-bottom:0}.audit-time{padding-top:8px;color:var(--text-faint);font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.audit-avatar{width:36px;height:36px}.audit-content b{font-size:15px}.audit-content p{margin:2px 0;font-size:14px}.audit-content small{color:var(--text-faint);font-size:13px}.not-found{display:flex;min-height:70vh;align-items:center;flex-direction:column;justify-content:center;text-align:center}.not-found>span{color:var(--orange);font-size:16px;font-weight:850}.not-found h1{margin:10px 0 0;font-size:36px;letter-spacing:-.04em}.not-found p{margin:8px 0 24px;color:var(--text-soft)}@media (max-width:1180px){.dashboard-heading{align-items:stretch;flex-direction:column}.dashboard-actions{width:100%}.dashboard-actions .search-control{flex:1 1}.dashboard-actions .search-control input{width:100%}.metric{padding:16px}.metric-icon{width:42px;height:42px}.dashboard-grid{grid-template-columns:1fr}.dashboard-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){:root{--sidebar-width:0px}.sidebar{width:244px;transform:translateX(-100%);transition:transform .18s ease}.sidebar-open{transform:translateX(0)}.sidebar-backdrop{position:fixed;z-index:25;inset:0;border:0;background:rgb(0 0 0/34%)}.close-menu{display:inline-grid}.mobile-header{position:-webkit-sticky;position:sticky;z-index:20;top:0;display:flex;height:66px;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--border);background:rgb(255 255 255/96%)}.mobile-header .brand{font-size:19px}.page{padding:28px 22px 42px}.metric-strip{grid-template-columns:repeat(2,1fr)}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--border)}.toolbar{align-items:stretch;flex-wrap:wrap}.toolbar-search{max-width:none;flex:1 0 100%}}@media (max-width:640px){.page{padding-inline:16px}.dashboard-heading,.page-header{align-items:stretch;flex-direction:column;gap:16px}.dashboard-heading h1,.page-header h1{font-size:30px}.dashboard-actions,.page-actions{flex-wrap:wrap}.dashboard-actions .search-control{order:3;flex-basis:100%}.dashboard-actions .button-primary{margin-left:auto}.metric{min-height:96px;gap:10px;padding:14px}.metric-icon{width:36px;height:36px}.metric-icon svg{width:22px}.metric strong{font-size:25px}.metric-chevron{display:none}.dashboard-rail{grid-template-columns:1fr}.filter-tabs{width:100%;overflow-x:auto}.compact-filter{margin-left:0}.form-grid{grid-template-columns:1fr}.table-summary{padding:0 14px}.audit-list li{grid-template-columns:36px minmax(0,1fr);gap:12px}.audit-time{grid-column:2;grid-row:2;padding-top:0}.audit-avatar{grid-column:1;grid-row:1/3}.audit-content{grid-column:2;grid-row:1}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important}}.auth-fullscreen{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--background);padding:24px}.auth-card{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:0 12px 36px rgba(0,0,0,.06);padding:40px 32px;text-align:center}.auth-loading{gap:16px;color:var(--text-soft)}.auth-brand,.auth-loading{display:flex;flex-direction:column;align-items:center}.auth-brand{margin-bottom:24px}.auth-brand .brand-mark{margin-bottom:12px}.auth-brand h1{font-size:22px;font-weight:800;margin:0 0 6px;letter-spacing:-.02em}.auth-subtitle{font-size:14px;color:var(--text-faint);margin:0}.auth-description{font-size:15px;color:var(--text-soft);line-height:1.6;margin:0 0 24px}.auth-error{display:flex;align-items:center;gap:8px;background-color:var(--red-soft);color:var(--red);padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:20px;text-align:left}.auth-google-button{width:100%;gap:12px;height:48px;font-size:15px;font-weight:700}.auth-google-button,.auth-status-icon{display:flex;align-items:center;justify-content:center}.auth-status-icon{width:64px;height:64px;border-radius:50%;margin:0 auto 20px}.pending-icon{background-color:var(--orange-soft);color:var(--orange)}.info-icon{background-color:var(--blue-soft);color:var(--blue)}.auth-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.auth-actions .button{width:100%;justify-content:center}.button-small{min-height:32px;height:32px;padding:0 10px;font-size:14px;gap:6px}.label-modal{max-width:480px;width:100%}.label-modal-content{display:flex;flex-direction:column;gap:16px;padding:12px 0 6px}.label-preview-wrapper{display:flex;flex-direction:column;align-items:center;background:#f1f3f4;border-radius:var(--radius-sm);padding:16px;border:1px dashed var(--border-strong)}.label-preview-header-bar{display:flex;width:100%;max-width:320px;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;color:var(--text-soft);margin-bottom:10px}.label-dimension-badge{background:#e2e5e7;padding:2px 6px;border-radius:4px;font-size:12px;font-weight:800;color:var(--text)}.thermal-label{background:#ffffff;color:#000000;box-sizing:border-box;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #161a1d;border-radius:6px;box-shadow:0 4px 16px rgba(0,0,0,.08);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans TC,sans-serif;-webkit-user-select:none;-moz-user-select:none;user-select:none}.thermal-label.size-40x30{width:320px;height:240px;padding:10px 12px}.thermal-label-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #000000;padding-bottom:4px}.thermal-label-brand{font-size:15px;font-weight:900;letter-spacing:2px}.thermal-label-code{font-size:14.5px;font-weight:900;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Menlo,monospace}.thermal-label-body{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:1 1;padding:6px 0 2px;min-height:0}.thermal-label-qr{width:132px;height:132px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff;padding:0}.thermal-label-qr svg{width:100%;height:100%}.thermal-label-info{display:flex;flex-direction:column;justify-content:center;gap:6px;height:100%;min-width:0;flex:1 1;padding:0}.thermal-info-name{font-size:18px;font-weight:900;line-height:1.2;color:#000000;margin-bottom:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-all}.thermal-info-meta{font-size:11.5px;font-weight:700;color:#111111;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}.print-guide-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.print-guide-title{display:flex;align-items:center;gap:6px;color:var(--orange-dark);font-size:14px;margin-bottom:6px}.print-guide-list{margin:0;padding-left:18px;line-height:1.6;color:var(--text)}.print-guide-list code{background:#e2e8f0;padding:1px 4px;border-radius:3px;font-size:13px}.print-qr-code-link{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:8px;border-top:1px solid #e2e8f0;font-size:13px;color:var(--text-soft)}.print-qr-code-link code{font-family:monospace;color:var(--text)}.copy-btn{height:26px;min-height:26px;padding:0 8px;font-size:13px;flex-shrink:0}#print-mount-root{display:none}@media print{@page{size:60mm 45mm;margin:0}body>:not(#print-mount-root){display:none!important}body,html{background:#ffffff!important;margin:0!important;padding:0!important;width:60mm!important;height:45mm!important;max-width:60mm!important;max-height:45mm!important;overflow:hidden!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans TC,sans-serif!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}#print-mount-root{width:60mm!important;height:45mm!important;max-width:60mm!important;max-height:45mm!important;padding:4.5mm 2mm 2mm!important;overflow:hidden!important;page-break-before:avoid!important;break-before:avoid!important}#print-mount-root,.label-print-target{display:flex!important;flex-direction:column!important;justify-content:space-between!important;position:static!important;margin:0!important;box-sizing:border-box!important;page-break-after:avoid!important;page-break-inside:avoid!important;break-after:avoid!important;break-inside:avoid!important}.label-print-target{border:none!important;box-shadow:none!important;border-radius:0!important;background:#ffffff!important;color:#000000!important;width:100%!important;height:100%!important;padding:0!important}.label-print-target.size-40x30{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important}.label-print-target.size-40x30 .thermal-label-header{border-bottom:2pt solid #000000!important;padding-bottom:.8mm!important;display:flex!important;justify-content:space-between!important;align-items:center!important;width:100%!important;flex-shrink:0!important}.label-print-target.size-40x30 .thermal-label-brand{font-size:15pt!important;font-weight:900!important;letter-spacing:3px!important;color:#000000!important;white-space:nowrap!important;line-height:1!important}.label-print-target.size-40x30 .thermal-label-code{font-size:14pt!important;font-weight:900!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Menlo,monospace!important;color:#000000!important;flex-shrink:0!important;white-space:nowrap!important;line-height:1!important}.label-print-target.size-40x30 .thermal-label-body{flex:1 1!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:2.5mm!important;padding-top:1.2mm!important;min-height:0!important;width:100%!important}.label-print-target.size-40x30 .thermal-label-qr{width:26.5mm!important;height:26.5mm!important;flex-shrink:0!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.label-print-target.size-40x30 .thermal-label-qr svg{width:100%!important;height:100%!important}.label-print-target.size-40x30 .thermal-label-info{display:flex!important;flex-direction:column!important;justify-content:center!important;gap:1mm!important;height:100%!important;flex:1 1!important;min-width:0!important;padding:0!important}.label-print-target.size-40x30 .thermal-info-name{font-size:19pt!important;font-weight:900!important;line-height:1.15!important;color:#000000!important;margin-bottom:.4mm!important;overflow:hidden!important;display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;word-break:break-all!important}.label-print-target.size-40x30 .thermal-info-meta{font-size:11pt!important;font-weight:800!important;line-height:1.25!important;color:#000000!important;letter-spacing:-.2px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}}.public-container{width:100%;max-width:1160px;margin:0 auto;padding:0 24px}.public-header{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.public-header-inner{display:flex;align-items:center;justify-content:space-between;height:72px}.public-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.public-brand-text{display:flex;flex-direction:column}.public-brand-text .brand-title{font-size:17px;font-weight:800;color:var(--text);letter-spacing:-.2px}.public-brand-text .brand-subtitle{font-size:11px;font-weight:600;color:var(--orange);text-transform:uppercase;letter-spacing:.5px}.public-nav{display:flex;align-items:center;gap:28px}.public-nav-link{font-size:15px;font-weight:600;color:var(--text-soft);transition:color .15s ease;text-decoration:none}.public-nav-link.active,.public-nav-link:hover{color:var(--orange)}.public-header-actions{display:flex;align-items:center;gap:12px}.public-cta-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:var(--radius-sm);font-size:14px;font-weight:700}.public-mobile-toggle{display:none}.public-mobile-dropdown{display:none;background:var(--surface);border-bottom:1px solid var(--border);padding:16px 24px 24px}.public-mobile-nav{display:flex;flex-direction:column;gap:16px}.public-mobile-link{font-size:16px;font-weight:600;color:var(--text);padding:8px 0;border-bottom:1px solid var(--border)}.public-mobile-link.active{color:var(--orange)}.public-mobile-cta{padding-top:8px}@media (max-width:768px){.public-header-actions,.public-nav{display:none}.public-mobile-toggle{display:inline-flex}.public-mobile-dropdown{display:block}}.landing-page{background:var(--background);color:var(--text);min-height:100vh;display:flex;flex-direction:column}.landing-hero{padding:72px 0 64px;background:linear-gradient(180deg,#ffffff 0,var(--background) 100%);border-bottom:1px solid var(--border)}.hero-content{max-width:840px;margin:0 auto;text-align:center}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--orange-soft);color:var(--orange-dark);font-size:13px;font-weight:700;padding:6px 14px;border-radius:9999px;border:1px solid rgba(244,81,11,.2);margin-bottom:24px}.hero-title{font-size:42px;font-weight:900;line-height:1.25;letter-spacing:-1px;color:var(--text);margin:0 0 20px}.hero-title .title-brand{color:var(--orange);position:relative}.hero-subtitle{font-size:18px;line-height:1.6;color:var(--text-soft);margin:0 0 32px;font-weight:450}.hero-actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-bottom:48px}.button-lg{padding:12px 26px;font-size:16px;font-weight:700;border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:8px}.hero-preview-wrapper{margin-top:24px;border-radius:var(--radius-md);box-shadow:0 20px 40px -15px rgba(0,0,0,.12);border:1px solid var(--border-strong);overflow:hidden;background:var(--surface)}.preview-bar{background:#f1f3f4;padding:10px 16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}.preview-dot{width:10px;height:10px;border-radius:50%;background:#dfe2e3}.preview-title{font-size:12px;font-weight:600;color:var(--text-faint);margin-left:8px}.preview-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;padding:24px;background:#ffffff}.preview-stat-card{padding:18px;border-radius:var(--radius-sm);background:var(--surface-subtle);border:1px solid var(--border);text-align:left}.preview-stat-num{font-size:28px;font-weight:800;color:var(--text);margin-bottom:4px}.preview-stat-label{font-size:13px;font-weight:600;color:var(--text-soft)}@media (max-width:768px){.hero-title{font-size:30px}.hero-subtitle{font-size:15px}.preview-grid{grid-template-columns:1fr;gap:12px}}.landing-section{padding:80px 0}.landing-section-alt{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.section-badge{font-size:12px;font-weight:800;text-transform:uppercase;color:var(--orange);letter-spacing:1px;margin-bottom:8px;display:block}.section-header{text-align:center;max-width:680px;margin:0 auto 52px}.section-header h2{font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0 0 16px;color:var(--text)}.section-header p{font-size:16px;color:var(--text-soft);line-height:1.6;margin:0}.feature-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}@media (max-width:992px){.feature-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.feature-cards-grid{grid-template-columns:1fr}}.feature-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:28px 24px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.landing-section-alt .feature-card{background:var(--background)}.feature-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px -10px rgba(0,0,0,.08);border-color:var(--border-strong)}.feature-icon-box{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--orange-soft);color:var(--orange);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.feature-card h3{font-size:18px;font-weight:700;margin:0 0 10px;color:var(--text)}.feature-card p{font-size:14px;color:var(--text-soft);line-height:1.6;margin:0}.oauth-section-card{background:linear-gradient(135deg,#ffffff,#fff8f5);border:1px solid rgba(244,81,11,.25);border-radius:var(--radius-md);padding:36px 32px;margin-top:48px}.oauth-card-header{display:flex;align-items:center;gap:16px;margin-bottom:20px}.oauth-icon-badge{background:#ffffff;padding:8px;border-radius:var(--radius-sm);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}.oauth-card-header h3{font-size:20px;font-weight:800;margin:0;color:var(--text)}.oauth-card-body p{font-size:15px;color:var(--text-soft);line-height:1.65;margin:0 0 20px}.oauth-points-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}@media (max-width:768px){.oauth-points-grid{grid-template-columns:1fr}}.oauth-point-item{background:#ffffff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px}.oauth-point-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px;display:flex;align-items:center;gap:6px}.oauth-point-desc{font-size:13px;color:var(--text-soft);line-height:1.5;margin:0}.public-footer{background:#111417;color:#c8cdcf;padding:64px 0 32px;margin-top:auto;border-top:1px solid #252b30}.public-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;grid-gap:40px;gap:40px;margin-bottom:48px}@media (max-width:992px){.public-footer-grid{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width:640px){.public-footer-grid{grid-template-columns:1fr}}.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}.footer-brand-name{font-size:18px;font-weight:800;color:#ffffff}.footer-desc{font-size:13px;line-height:1.6;color:#9aa1a6;margin:0 0 16px}.footer-badge{display:flex;align-items:center;gap:8px;font-size:12px;color:#dfe2e3;font-weight:600}.footer-title{font-size:14px;font-weight:700;color:#ffffff;margin:0 0 16px;letter-spacing:.2px}.footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.footer-links a{font-size:13px;color:#9aa1a6;text-decoration:none;transition:color .15s ease}.footer-links a:hover{color:var(--orange)}.footer-compliance-card{background:#1a1e22;border:1px solid #2d3339;border-radius:var(--radius-sm);padding:16px}.compliance-badge{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:#ffffff;margin-bottom:8px}.compliance-text{font-size:12px;line-height:1.5;color:#858c91;margin:0}.footer-bottom{border-top:1px solid #252b30;padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px;color:#858c91}.footer-bottom-links{display:flex;align-items:center;gap:12px}.footer-bottom-links a{color:#858c91;text-decoration:none}.footer-bottom-links a:hover{color:#dfe2e3}.dot-divider{color:#4a5157}.legal-page{background:var(--background);min-height:100vh;display:flex;flex-direction:column}.legal-header-banner{background:linear-gradient(180deg,#ffffff 0,var(--background) 100%);border-bottom:1px solid var(--border);padding:48px 0 36px}.legal-header-banner .badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;background:var(--orange-soft);color:var(--orange-dark);padding:4px 12px;border-radius:9999px;margin-bottom:12px}.legal-header-banner h1{font-size:32px;font-weight:800;color:var(--text);margin:0 0 12px;letter-spacing:-.5px}.legal-meta{display:flex;align-items:center;gap:16px;font-size:13px;color:var(--text-soft);flex-wrap:wrap}.legal-content-wrap{padding:48px 0 80px}.legal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:40px 48px;box-shadow:0 4px 12px rgba(0,0,0,.03)}@media (max-width:768px){.legal-card{padding:24px 20px}}.legal-section{margin-bottom:36px;border-bottom:1px solid var(--surface-subtle);padding-bottom:32px}.legal-section:last-child{margin-bottom:0;border-bottom:none;padding-bottom:0}.legal-section h2{font-size:20px;font-weight:800;color:var(--text);margin:0 0 16px;display:flex;align-items:center;gap:10px}.legal-section h3{font-size:16px;font-weight:700;color:var(--text);margin:20px 0 8px}.legal-section p{font-size:15px;line-height:1.7;color:#3b4247;margin:0 0 14px}.legal-section ol,.legal-section ul{margin:0 0 16px;padding-left:24px;color:#3b4247}.legal-section li{font-size:15px;line-height:1.7;margin-bottom:6px}.legal-highlight-box{background:var(--orange-soft);border:1px solid rgba(244,81,11,.3);border-left:4px solid var(--orange);border-radius:var(--radius-sm);padding:16px 20px;margin:18px 0}.legal-highlight-box p{margin:0;font-size:14px;color:#5c2005;font-weight:500;line-height:1.6}.legal-info-table{width:100%;border-collapse:collapse;margin:16px 0;font-size:14px}.legal-info-table td,.legal-info-table th{border:1px solid var(--border);padding:12px 14px;text-align:left}.legal-info-table th{background:var(--surface-subtle);font-weight:700;color:var(--text)}.legal-info-table td{color:var(--text-soft)}