:root{--color-bg:#f5ead8;--color-surface:#ebddc5;--color-text:#201e1d;--color-accent:#c67139;--color-accent-2:#7a8a5e;--color-divider:#201e1d29;--color-neutral-100:#f9f4ed;--color-neutral-200:#eee7db;--color-neutral-300:#dcd3c4;--color-neutral-400:#c0b6a5;--color-neutral-500:#a19786;--color-neutral-600:#82796a;--color-neutral-700:#645c50;--color-neutral-800:#474238;--color-neutral-900:#2e2b25;--color-accent-100:#fff2eb;--color-accent-200:#ffe1d0;--color-accent-300:#ffc6a5;--color-accent-400:#f6a06b;--color-accent-500:#d67f48;--color-accent-600:#b2622d;--color-accent-700:#8c491a;--color-accent-800:#643312;--color-accent-900:#402310;--color-accent-2-100:#f0fae1;--color-accent-2-200:#e1eecc;--color-accent-2-300:#ccdbb2;--color-accent-2-400:#aebf92;--color-accent-2-500:#8fa073;--color-accent-2-600:#728157;--color-accent-2-700:#56633f;--color-accent-2-800:#3d472b;--color-accent-2-900:#272e1b;--color-header:#3c3c3c;--color-header-text:#f3ede1;--color-nav-bg:#ffe4ca;--color-login-card:#fff0ac;--color-footer-bg:var(--color-header);--color-footer-text:var(--color-header-text);--color-primary-action:#3f8a5b;--color-danger:#c14b3a;--color-warning:#d6a83b;--color-pending:#4a6fa5;--color-badge-bg:#ffcbb3;--color-badge-text:#7a3a1a;--font-heading:Montserrat, "Noto Sans TC", Helvetica, sans-serif;--font-heading-weight:400;--font-body:Montserrat, "Noto Sans TC", Helvetica, sans-serif;--space-1:4.4px;--space-2:8.8px;--space-3:13.2px;--space-4:17.6px;--space-6:26.4px;--space-8:35.2px;--radius-sm:8px;--radius-md:16px;--radius-lg:28px;--shadow-sm:0 1px 2px #2e2b2524;--shadow-md:0 3px 10px #2e2b2529;--shadow-lg:0 12px 32px #2e2b2538}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-size:15px;font-weight:400;line-height:1.55;font-family:var(--font-body);margin:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-heading-weight);letter-spacing:-.015em;margin:0 0 var(--space-2);line-height:1.12}h2{font-size:26px}h3{font-size:19px}p{margin:0 0 var(--space-3)}a{color:var(--color-accent-700);text-underline-offset:3px}a:hover{color:var(--color-accent-800)}.text-muted{color:color-mix(in srgb, var(--color-text) 55%, transparent)}.hr{height:1px;margin:var(--space-4) 0;background:var(--color-divider);border:0}.btn{cursor:pointer;font-family:var(--font-heading);font-weight:var(--font-heading-weight);color:var(--color-text);padding:var(--space-2) calc(var(--space-3) * 1.2);background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:6px;font-size:14px;line-height:1.2;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-bg)}.btn-primary:hover{background:var(--color-accent-600)}.btn-primary:active{background:var(--color-accent-700)}.btn-secondary{border-color:var(--color-divider)}.btn-secondary:hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.btn-ghost{color:var(--color-accent-700);padding-inline:var(--space-1);background:0 0;border-color:#0000}.btn-ghost:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.btn-block{width:100%;margin-top:var(--space-2)}.page-btn{border:1px solid var(--color-divider);width:32px;height:32px;color:var(--color-text);font-feature-settings:"tnum" 1;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:14px;display:inline-flex}.page-btn:hover{background:color-mix(in srgb, var(--color-accent) 10%, transparent)}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-bg)}.field>label{color:color-mix(in srgb, var(--color-text) 70%, transparent);margin-bottom:5px;font-size:14px;display:block}.field>label.req:after{content:" *";color:var(--color-danger)}.input{width:100%;min-height:36px;font:inherit;color:var(--color-text);caret-color:var(--color-accent);border:1px solid var(--color-divider);background:#fcfcfc;border-radius:999px;padding:6px 14px;font-size:16px}.input:hover{border-color:color-mix(in srgb, var(--color-text) 45%, transparent)}.input:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent);outline-offset:0}input.input:read-only,textarea.input:read-only{color:color-mix(in srgb, var(--color-text) 60%, transparent);cursor:not-allowed;background:#e5e5e5}input.input:read-only:hover,textarea.input:read-only:hover{border-color:var(--color-divider)}textarea.input{resize:vertical;border-radius:var(--radius-md);min-height:90px}.seg{border:1px solid var(--color-divider);border-radius:999px;display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;align-items:center;gap:6px;padding:7px 12px;font-size:14px;display:inline-flex;position:relative}.seg-opt+.seg-opt{border-left:1px solid var(--color-divider)}.seg-opt.active{background:var(--color-accent);color:var(--color-bg)}.seg-opt:not(.active):hover{background:color-mix(in srgb, var(--color-text) 7%, transparent)}.seg-opt input{opacity:0;pointer-events:none;width:0;height:0;position:absolute}.card{gap:var(--space-2);padding:var(--space-3);border-radius:calc(var(--radius-lg) * 1.15);background:var(--color-surface);flex-direction:column;display:flex}.card-title{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:17px;line-height:1.2}.card-body{opacity:.8;margin:0;font-size:14px}.elev-lg{box-shadow:var(--shadow-lg)}.tag{letter-spacing:.02em;border-radius:999px;align-items:center;padding:3px 10px;font-size:14px;display:inline-flex}.tag-accent{background:var(--color-accent-100);color:var(--color-accent-800)}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb, var(--color-text) 60%, transparent);padding:var(--space-2);border-bottom:1px solid var(--color-divider);font-size:14px}.table td{padding:var(--space-2);border-bottom:1px solid color-mix(in srgb, var(--color-text) 8%, transparent)}.table tbody tr:hover{background:color-mix(in srgb, var(--color-text) 4%, transparent)}@keyframes log-row-grow{0%{opacity:0;background:var(--color-accent-100);padding-top:0;padding-bottom:0;line-height:0}55%{padding-top:var(--space-2);padding-bottom:var(--space-2);opacity:1;background:var(--color-accent-100);line-height:1.55}to{padding-top:var(--space-2);padding-bottom:var(--space-2);opacity:1;background:0 0;line-height:1.55}}.log-row-new>td{animation:.9s ease-out both log-row-grow}@media (prefers-reduced-motion:reduce){.log-row-new>td{animation:none}}.alert{border-radius:var(--radius-md);align-items:center;gap:10px;padding:12px 16px;font-size:14px;display:flex}.alert-success{background:color-mix(in srgb, var(--color-accent-2-500) 16%, var(--color-bg));border:1px solid color-mix(in srgb, var(--color-accent-2-500) 45%, transparent);color:var(--color-accent-2-800)}.alert-danger{background:color-mix(in srgb, #c14b3a 14%, var(--color-bg));color:#7a2c20;border:1px solid #c14b3a73}.alert-neutral{background:var(--color-surface)}@media (prefers-reduced-motion:no-preference){.fade-in{animation:.25s both fadeIn}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}}:focus{outline:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell{width:100%;height:100vh;font-family:var(--font-body);background:var(--color-bg);color:var(--color-text);flex-direction:column;display:flex;overflow:hidden}.app-header{background:var(--color-header);color:var(--color-header-text);z-index:20;flex:none;justify-content:space-between;align-items:center;gap:20px;height:54px;padding:0 24px;display:flex;position:relative}.app-header-left{align-items:center;gap:20px;min-width:0;display:flex;overflow:hidden}.app-brand{font-family:var(--font-heading);white-space:nowrap;flex:none;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.app-brand img{object-fit:contain;border-radius:6px;flex:none;width:26px;height:26px}.app-breadcrumb{color:#b8b0a1;white-space:nowrap;align-items:center;gap:6px;font-size:14px;display:flex;overflow:hidden}.app-breadcrumb .current{color:var(--color-accent-500);font-weight:600}.app-header-right{flex:none;align-items:center;gap:18px;display:flex;position:relative}.app-user-trigger{cursor:pointer;white-space:nowrap;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:14px;display:flex}.app-user-avatar{background:var(--color-accent-500);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:700;display:inline-flex}.app-clock{color:#fff;font-feature-settings:"tnum" 1;white-space:nowrap;font-size:14px;font-weight:700}.app-user-menu{background:var(--color-bg);color:var(--color-text);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:30;flex-direction:column;min-width:150px;padding:6px;display:flex;position:absolute;top:40px;right:0}.app-user-menu .btn{justify-content:flex-start;width:100%}.app-body{flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.app-nav{background:var(--color-nav-bg);border-right:1px solid var(--color-accent-2-300);flex-direction:column;flex:none;gap:3px;width:232px;padding:20px 16px;transition:width .2s,padding .2s;display:flex;overflow:auto}.app-nav-btn{text-align:left;color:var(--color-accent-800);font-weight:500;font-family:var(--font-body);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:3px 12px;font-size:16px;text-decoration:none;display:flex}.app-nav-btn.active{background:var(--color-accent);color:var(--color-bg);font-weight:700}.app-nav-sub{flex-direction:column;gap:3px;margin-bottom:3px;padding-left:16px;display:flex}.app-nav-caret{color:color-mix(in srgb, var(--color-text) 45%, transparent);flex:none;transition:transform .15s}.app-nav-caret.open{transform:rotate(0)}.app-nav-caret.closed{transform:rotate(-90deg)}.app-nav-toggle{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--color-header-text);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.app-nav-toggle:hover{background:#ffffff29}.app-nav-icon{text-align:center;flex:none;width:22px}.app-nav-text{flex:1;min-width:0}.app-nav-backdrop{z-index:35;background:color-mix(in srgb, var(--color-text) 45%, transparent);border:none;padding:0;position:fixed;inset:54px 0 0}@media (width>=961px){.app-shell.nav-collapsed .app-nav{width:62px;padding-left:9px;padding-right:9px}.app-shell.nav-collapsed .app-nav-text,.app-shell.nav-collapsed .app-nav-caret{display:none}.app-shell.nav-collapsed .app-nav-btn{justify-content:center;padding-inline:6px}.app-shell.nav-collapsed .app-nav-sub{padding-left:0}}@media (prefers-reduced-motion:reduce){.app-nav{transition:none}}.app-main-col{flex-direction:column;flex:1;min-width:0;display:flex}.app-main{--main-pad-x:36px;--main-pad-bottom:48px;padding:28px var(--main-pad-x) var(--main-pad-bottom);background:#fffaf4;flex:1;overflow:auto}.app-footer{margin:40px calc(var(--main-pad-x) * -1) calc(var(--main-pad-bottom) * -1);background:var(--color-footer-bg);text-align:center;color:var(--color-footer-text);padding:18px 24px;font-size:14px;line-height:1.8}.app-footer a{color:var(--color-footer-text);text-decoration:underline}.login-page{background:var(--color-bg);width:100%;min-height:100vh;position:relative;overflow:hidden}.login-wrap{flex-direction:column;gap:20px;max-width:520px;margin:48px auto 0;padding:0 20px 60px;display:flex;position:relative}.login-card{background:var(--color-login-card);padding:30px}.stat-row{gap:16px;margin-bottom:18px;display:flex}.stat-card{border-radius:var(--radius-lg);flex:1;padding:16px 20px}.stat-card .stat-num{font-family:var(--font-heading);font-size:28px}.stat-card .stat-label{color:color-mix(in srgb, var(--color-text) 55%, transparent);font-size:14px}.filter-bar{background:var(--color-surface);border-radius:var(--radius-lg);flex-wrap:nowrap;align-items:flex-end;gap:10px;margin-bottom:18px;padding:18px 22px;display:flex;position:relative}.filter-bar .field{flex:1 1 0;min-width:0}.filter-bar .field.wide{flex:1.3 1 0}.search-dropdown{z-index:5;background:var(--color-bg);border:1px solid var(--color-divider);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-width:260px;max-height:420px;margin-top:6px;position:absolute;top:100%;left:0;right:0;overflow:hidden auto}.search-dropdown-item{cursor:pointer;gap:10px;padding:10px 16px;font-size:14px;display:flex}.search-dropdown-item:hover{background:color-mix(in srgb, var(--color-text) 6%, transparent)}.status-badge{border-radius:999px;padding:4px 12px;font-size:14px;font-weight:600;display:inline-block}.case-name-badge{border:2px solid #0000;border-radius:999px;align-items:center;padding:3px 11px;transition:border-color .12s;display:inline-flex}.case-name-badge:hover{border-color:var(--color-pending)}.case-nav-bar{background:var(--color-surface);border-radius:var(--radius-lg);align-items:center;margin-bottom:18px;padding:0 6px;display:flex;overflow:visible}.case-nav-btn{background:var(--color-accent);cursor:pointer;width:46px;height:46px;box-shadow:var(--shadow-sm);border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:8px;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,filter .18s;display:inline-flex}.case-nav-btn:hover{filter:brightness(1.06);box-shadow:var(--shadow-md);transform:scale(1.15) rotate(var(--nav-tilt,-6deg))}.case-nav-btn.next{--nav-tilt:6deg}.case-nav-btn:active{transform:scale(.92)rotate(0)}.case-index-badge{color:var(--color-badge-text);background:var(--color-badge-bg);white-space:nowrap;border-radius:999px;padding:3px 12px;font-size:14px;font-weight:600}.phone-link{color:inherit;align-items:center;gap:6px;text-decoration:none;display:inline-flex}.phone-link .phone-icon{background:var(--color-primary-action);border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.form-tab-strip{border-bottom:1px solid var(--color-divider);gap:4px;display:flex}.form-tab-btn{cursor:pointer;font-size:14px;font-family:var(--font-body);border:1px solid var(--color-divider);border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md);color:#ffffffd9;background:#4a4a4a;border-bottom:none;margin-bottom:-1px;padding:9px 16px 8px;position:relative}.form-tab-btn.active{color:var(--color-text);background:var(--color-surface);border-color:var(--color-divider);box-shadow:0 1px 0 var(--color-surface);z-index:1;font-weight:700}.checkbox-group{background:var(--color-surface);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.checkbox-row{align-items:center;gap:8px;font-size:14px;display:flex}.upload-drop{border:2px dashed var(--color-divider);border-radius:var(--radius-lg);text-align:center;color:color-mix(in srgb, var(--color-text) 55%, transparent);background:var(--color-surface);margin-bottom:16px;padding:34px;font-size:14px}.sim-warn-bar{background:#7a2c2026;border-radius:999px;height:8px;overflow:hidden}.sim-warn-fill{background:var(--color-danger);height:100%}@keyframes toast-pop{0%{opacity:0;transform:translate(-50%)translateY(12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toast-box{background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;padding:12px 24px;font-size:15px;font-weight:600;animation:.25s toast-pop;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.modal-overlay{background:color-mix(in srgb, var(--color-text) 45%, transparent);z-index:1000;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-box{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;flex-direction:column;align-items:center;width:min(340px,100%);max-height:100%;padding:28px 32px;display:flex;overflow-y:auto}.pie-chart{border-radius:999px;flex:none;justify-content:center;align-items:center;width:160px;height:160px;transition:background .3s;display:flex}.pie-chart-inner{background:var(--color-bg);width:112px;height:112px;font-family:var(--font-heading);border-radius:999px;justify-content:center;align-items:center;font-size:26px;font-weight:700;display:flex}@keyframes pie-scan-spin{to{transform:rotate(360deg)}}@keyframes pie-scan-pulse{0%,to{opacity:1}50%{opacity:.4}}.pie-chart-loading{background:conic-gradient(var(--color-accent-500) 0deg, color-mix(in srgb, var(--color-text) 10%, var(--color-surface)) 130deg);animation:1s linear infinite pie-scan-spin}.pie-chart-loading .pie-chart-inner{animation:1.2s ease-in-out infinite pie-scan-pulse}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px;display:grid}.form-grid>.span-all{grid-column:1/-1}@media (width<=1200px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.form-grid{grid-template-columns:minmax(0,1fr)}}.usage-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:18px 22px}.usage-card-title{font-family:var(--font-heading);margin-bottom:12px;font-size:16px;font-weight:700}.usage-table-wrap{overflow-x:auto}.usage-table{border-collapse:separate;border-spacing:0;width:100%;min-width:540px;font-size:14px}.usage-table th{text-align:left;white-space:nowrap;letter-spacing:.02em;color:var(--color-accent-800);background:var(--color-accent-100);padding:10px 14px;font-size:14px;font-weight:700}.usage-table th:first-child{border-top-left-radius:var(--radius-sm);border-bottom-left-radius:var(--radius-sm)}.usage-table th:last-child{border-top-right-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.usage-table td{border-bottom:1px solid color-mix(in srgb, var(--color-text) 10%, transparent);padding:11px 14px}.usage-table tbody tr:last-child td{border-bottom:none}.usage-table .num{text-align:right;font-feature-settings:"tnum" 1;white-space:nowrap}.usage-table .usage-credits{color:var(--color-accent-700);font-weight:700}.usage-table tfoot td{border-top:2px solid var(--color-accent-300);border-bottom:none;padding-top:13px;font-size:15px;font-weight:700}@media (width<=960px){.app-main{--main-pad-x:20px;--main-pad-bottom:20px;padding:20px}.app-nav-btn,.input,.field>label{font-size:14px}.app-nav{z-index:40;width:250px;box-shadow:var(--shadow-lg);transition:transform .22s;position:fixed;top:54px;bottom:0;left:0;transform:translate(-100%)}.app-shell.nav-open .app-nav{transform:translate(0)}}@media (width<=960px) and (prefers-reduced-motion:reduce){.app-nav{transition:none}}
