body{margin:0;background:var(--color-background, #f5f7fa);min-height:100vh;font-family:var(--font-body);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}a{text-decoration:none}#app{width:100%;min-height:100vh;position:relative}.page{position:absolute;top:0;left:0;right:0;bottom:0;overflow-y:auto;overflow-x:hidden;padding-top:32px;padding-bottom:72px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;animation:fadeIn .32s cubic-bezier(.16,1,.3,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.page::-webkit-scrollbar{width:0}.phone-screen{position:relative}.phone-screen .tab-bar{position:absolute;left:0;right:0;bottom:0;transform:none;max-width:none;z-index:100}.app-header{padding:var(--space-5) var(--space-4) var(--space-5);background:#0a84ff;color:#fff;position:relative;border-radius:0 0 var(--radius-xl) var(--radius-xl);margin-bottom:var(--space-3)}.app-header h1{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.02em;position:relative;z-index:1;margin:0;text-wrap:balance}.app-header .sub{font-size:12.5px;opacity:.92;margin-top:3px;position:relative;z-index:1}.app-header .header-row{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.points-pill{display:inline-flex;align-items:center;gap:6px;background:#ffffff2e;border:1px solid rgba(255,255,255,.22);padding:6px 12px;border-radius:var(--radius-full);font-size:13px;font-weight:600}.points-pill .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.section-pad{padding:0 var(--space-3)}.section-pad .card{margin-bottom:var(--space-3)}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 var(--space-3);margin-bottom:var(--space-3)}.quick-item{background:var(--color-card);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-2);text-align:center;border:1px solid var(--color-border);cursor:pointer;transition:transform .12s ease,border-color .12s ease;touch-action:manipulation}.quick-item:hover{border-color:var(--color-primary)}.quick-item:active{transform:scale(.97)}.quick-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.quick-item .icon{font-size:30px;margin-bottom:6px;display:block}.quick-item .label{font-size:13px;color:var(--color-foreground);font-weight:500}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.type-card{border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:14px 4px;text-align:center;cursor:pointer;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease;background:var(--color-card);touch-action:manipulation}.type-card:hover{border-color:var(--color-primary)}.type-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.type-card .icon{font-size:28px;margin-bottom:4px;display:block}.type-card .name{font-size:13px;font-weight:500;color:var(--color-foreground)}.type-card.selected{border-color:var(--color-primary);background:var(--color-primary-container)}.type-card.selected .name{color:var(--color-primary)}.emergency-banner{background:#dc2626;color:#fff;margin:0 var(--space-3) var(--space-3);padding:14px var(--space-4);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:transform .12s ease;touch-action:manipulation}.emergency-banner:active{transform:scale(.98)}.emergency-banner:focus-visible{outline:2px solid #FCA5A5;outline-offset:2px}.emergency-banner .phone{font-family:var(--font-mono);font-size:16px;font-weight:600;letter-spacing:.03em}.upload-area{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:26px;text-align:center;cursor:pointer;transition:border-color .25s ease,background .25s ease;color:var(--color-muted-foreground);overflow:hidden;position:relative;min-height:110px;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:manipulation}.upload-area:hover{border-color:var(--color-primary);background:var(--color-primary-container)}.upload-area:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.upload-area.uploaded{border-color:var(--color-primary);border-style:solid;background:var(--color-primary-container)}.upload-area .icon{font-size:34px;margin-bottom:var(--space-2)}.upload-preview{width:100%;max-width:220px;height:130px;border-radius:var(--radius-md);object-fit:cover;margin-bottom:var(--space-2)}.upload-label{font-size:13px;color:var(--color-primary);font-weight:600;display:flex;align-items:center;gap:4px}.order-card{position:relative;cursor:pointer;transition:border-color .16s ease;touch-action:manipulation}.order-card:hover{border-color:var(--color-primary)}.order-card:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-lg)}.order-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px;flex-wrap:wrap}.order-type{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--color-foreground);display:flex;align-items:center;gap:6px}.order-info{color:var(--color-muted-foreground);font-size:13px;line-height:1.7}.order-badges{display:flex;gap:6px;flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap;line-height:1.6}.status-pending{background:#fef3c7;color:#92400e}.status-dispatched{background:#dbeafe;color:#1e40af}.status-accepted{background:#e0e7ff;color:#3730a3}.status-enroute{background:#ede9fe;color:#5b21b6}.status-working{background:#d1fae5;color:#065f46}.status-verifying{background:#fef3c7;color:#92400e}.status-done{background:var(--muted);color:var(--color-muted-foreground)}.status-welfare{background:#dcfce7;color:#166534}.status-paid{background:#fef9c3;color:#854d0e}.worker-avatar{width:48px;height:48px;border-radius:50%;background:#e8edf5;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.worker-card{display:flex;align-items:center;gap:14px;background:var(--color-surface-container-low);border-radius:var(--radius-lg);padding:var(--space-4);margin:var(--space-2) 0;border:1px solid var(--color-border)}.worker-pick{display:flex;align-items:center;gap:12px;padding:var(--space-3);border:2px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-2);cursor:pointer;transition:border-color .18s ease,background .18s ease;background:var(--color-card);touch-action:manipulation}.worker-pick:hover{border-color:var(--color-primary)}.worker-pick:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.worker-pick.selected{border-color:var(--color-primary);background:var(--color-primary-container)}.worker-info h4{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--color-foreground);margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.worker-meta{font-size:12px;color:var(--color-muted-foreground);margin-top:3px;font-family:var(--font-mono)}.cert-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;background:#fef3c7;color:#92400e}.credit-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:600;background:#dbeafe;color:#1e40af}.ai-field{background:#0a84ff0a;border:1px solid rgba(10,132,255,.12);border-radius:var(--radius-md);padding:11px var(--space-3);margin:var(--space-2) 0}.ai-field-label{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#0a84ff;margin-bottom:4px}.ai-field-value{font-size:14px;color:var(--color-foreground)}.ai-gradient-text{color:#0a84ff;font-weight:600}.chart{display:flex;align-items:flex-end;justify-content:space-around;height:150px;background:var(--color-card);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--color-border);gap:var(--space-2)}.bar-wrap{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.bar{width:100%;max-width:30px;background:#0a84ff;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height .9s cubic-bezier(.16,1,.3,1)}.bar.peak{background:#0a84ff;opacity:.55}.bar-label{font-size:11px;color:var(--color-muted-foreground);font-weight:500}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);padding:0 var(--space-3);margin-bottom:var(--space-3)}.stat-grid.three{grid-template-columns:repeat(3,1fr)}.stat-grid .card{margin:0;padding:var(--space-4)}.stat-grid .card-stat-value{font-size:26px;font-variant-numeric:tabular-nums}.stat-grid.three .card-stat-value{font-size:20px}.stat-grid.three .card{padding:var(--space-3) var(--space-2)}.facility-item{display:flex;align-items:center;justify-content:space-between;padding:13px var(--space-4);background:var(--color-card);border-radius:var(--radius-lg);margin-bottom:var(--space-2);cursor:pointer;border:1px solid var(--color-border);transition:border-color .12s ease;touch-action:manipulation}.facility-item:hover{border-color:var(--color-primary)}.facility-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.facility-name{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--color-foreground);font-size:14px}.status-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.dot-green{background:#10b981}.dot-yellow{background:#f59e0b}.dot-red{background:#ef4444;animation:blink 1.4s infinite}@keyframes blink{50%{opacity:.45}}.fund-balance{text-align:center;padding:var(--space-6) var(--space-4);background:#059669;color:#fff;border-radius:var(--radius-xl);margin:0 var(--space-3) var(--space-3)}.fund-balance .amount{font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:-.02em;position:relative;z-index:1;font-variant-numeric:tabular-nums}.fund-balance .label{font-size:13px;opacity:.92;margin-top:var(--space-1);position:relative;z-index:1}.fund-balance .sub-amount{font-family:var(--font-mono);font-size:13px;opacity:.85;margin-top:6px;position:relative;z-index:1}.honor-card{background:#fef3c7;border-radius:var(--radius-xl);padding:var(--space-5);text-align:center;margin:0 var(--space-3) var(--space-3);border:1px solid rgba(245,158,11,.18)}.honor-card .emoji{font-size:42px}.honor-card h4{margin-top:var(--space-2);color:#92400e;font-family:var(--font-display);font-size:18px}.stars{display:flex;gap:8px;justify-content:center;padding:var(--space-3)}.star{font-size:38px;color:var(--color-border);cursor:pointer;transition:transform .2s ease,color .2s ease;-webkit-user-select:none;user-select:none}.star:focus-visible{outline:2px solid var(--color-warning);outline-offset:2px;border-radius:4px}.star.active{color:#f59e0b}.star.bounce{animation:starBounce .4s ease}@keyframes starBounce{0%{transform:scale(1)}50%{transform:scale(1.4)}to{transform:scale(1)}}.stars-display{color:#f59e0b;font-size:18px;letter-spacing:2px}.skill-tag{display:inline-block;padding:6px 14px;background:#dbeafe;color:#1e40af;border-radius:var(--radius-full);font-size:13px;margin:4px 4px 0 0;font-weight:500;border:1px solid rgba(10,132,255,.15)}.row-list{display:flex;flex-direction:column}.row-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--color-border);font-size:14px}.row-item:last-child{border-bottom:none}.row-item .row-main{min-width:0;flex:1}.row-item .row-title{font-weight:500;color:var(--color-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item .row-sub{font-size:12px;color:var(--color-muted-foreground);margin-top:2px}.row-amount{font-weight:600;font-family:var(--font-mono);white-space:nowrap;font-variant-numeric:tabular-nums}.row-amount.in{color:#059669}.row-amount.out{color:#dc2626}.row-amount.point{color:#7c3aed}.rank-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--color-border)}.rank-row:last-child{border-bottom:none}.rank-num{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;background:var(--muted);color:var(--color-muted-foreground)}.rank-num.top1{background:gold;color:#fff}.rank-num.top2{background:silver;color:#fff}.rank-num.top3{background:#cd7f32;color:#fff}.rank-row.me{background:#dbeafe;border-radius:var(--radius-md);padding:10px var(--space-3)}.toast-container{position:absolute;top:24px;left:50%;transform:translate(-50%);width:90%;max-width:420px;z-index:600;pointer-events:none}.toast-container .toast{pointer-events:auto;margin-bottom:8px;animation:toastSlide .3s cubic-bezier(.16,1,.3,1);width:100%;max-width:none}@keyframes toastSlide{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.tab-bar{position:absolute;bottom:0;left:0;right:0;background:#ffffffeb;border-top:1px solid var(--color-border);display:flex;justify-content:space-around;padding:7px 0 calc(7px + env(safe-area-inset-bottom));z-index:100}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:2px;cursor:pointer;color:var(--color-muted-foreground);font-size:10.5px;font-weight:500;transition:color .2s ease;background:none;border:none;font-family:var(--font-body);touch-action:manipulation}.tab-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-md)}.tab-item .icon{font-size:21px;transition:transform .2s ease}.tab-item.active{color:#0a84ff}.tab-item.active .icon{transform:translateY(-3px) scale(1.12)}.filter-tabs{display:flex;gap:6px;padding:0 var(--space-3);margin-bottom:var(--space-3);overflow-x:auto;-webkit-overflow-scrolling:touch}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{flex-shrink:0;padding:6px 14px;font-size:13px;font-weight:500;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-card);color:var(--color-muted-foreground);cursor:pointer;transition:border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease;touch-action:manipulation}.filter-tab:hover{border-color:#0a84ff;color:#0a84ff}.filter-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.filter-tab.active{background:#0a84ff;color:#fff;border-color:#0a84ff}.greeting{padding:0 var(--space-4) var(--space-2)}.greeting h2{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--color-foreground);letter-spacing:-.02em;margin:0;text-wrap:balance}.greeting p{color:var(--color-muted-foreground);font-size:14px;margin-top:var(--space-1)}.text-center{text-align:center}.mt-8{margin-top:var(--space-2)}.mt-12{margin-top:var(--space-3)}.mb-12{margin-bottom:var(--space-3)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:var(--space-2)}.gap-12{gap:var(--space-3)}.w-full{width:100%}.text-sm{font-size:13px}.text-secondary{color:var(--color-muted-foreground)}.hidden{display:none!important}.pulse-btn{animation:pulse 2.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.85}}.form-label{font-size:13px;font-weight:600;color:var(--color-foreground);margin:var(--space-3) 0 var(--space-2)}.welfare-toggle{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-2)}.welfare-toggle .wt-btn{flex:1;padding:9px;text-align:center;font-size:13px;font-weight:500;cursor:pointer;background:var(--color-card);color:var(--color-muted-foreground);border:none;transition:background .18s ease,color .18s ease;touch-action:manipulation}.welfare-toggle .wt-btn.active,.btn.success{background:#059669;color:#fff}.btn.success:hover{filter:brightness(1.08)}.timeline-item.done .timeline-dot{background:#0a84ff;border-color:#0a84ff}.timeline-item.active .timeline-dot{background:#059669;border-color:#059669}.timeline-item .timeline-title{color:var(--color-muted-foreground)}.timeline-item.done .timeline-title{color:var(--color-foreground)}.timeline-item.active .timeline-title{color:#0a84ff;font-weight:600}.empty-hint{text-align:center;color:var(--color-muted-foreground);font-size:13px;padding:var(--space-5)}.demo-header{text-align:center;padding:36px 20px 18px}.demo-header h1{font-family:var(--font-display);font-size:34px;font-weight:700;margin:0 0 6px;letter-spacing:-.02em;color:#0a84ff}.demo-header p{margin:0 0 12px;font-size:15px;color:var(--color-muted-foreground)}.demo-hint{display:inline-flex;align-items:center;gap:8px;padding:7px 18px;background:#0596691a;border:1px solid rgba(5,150,105,.28);border-radius:var(--radius-full);font-size:13px;font-weight:500;color:#059669}.demo-hint:before{content:"";width:8px;height:8px;border-radius:50%;background:#059669;animation:pulse-dot 2s infinite}@keyframes pulse-dot{0%,to{opacity:1;box-shadow:0 0 #05966966}50%{opacity:.8;box-shadow:0 0 0 6px #05966900}}.demo-container{display:flex;justify-content:center;align-items:flex-start;gap:32px;padding:20px 32px 60px;min-height:calc(100vh - 150px);flex-wrap:nowrap;overflow-x:auto}.phone-column{display:flex;flex-direction:column;align-items:center;gap:14px;flex-shrink:0}.phone-label{font-family:var(--font-display);font-size:15px;font-weight:600;padding:6px 18px;border-radius:var(--radius-full);letter-spacing:.02em}.phone-label.resident{background:#0a84ff1f;color:#0a84ff;border:1px solid rgba(10,132,255,.28)}.phone-label.community{background:#5e5ce61f;color:#5e5ce6;border:1px solid rgba(94,92,230,.28)}.phone-label.worker{background:#0596691f;color:#059669;border:1px solid rgba(5,150,105,.28)}.phone-frame{width:390px;max-height:90vh;border-radius:38px;border:11px solid #15171c;box-shadow:0 24px 70px #00000047,0 0 0 1px #ffffff0f;overflow:hidden;position:relative;background:var(--color-surface, #fff)}.phone-notch{width:124px;height:26px;background:#15171c;border-radius:0 0 18px 18px;position:absolute;top:0;left:50%;transform:translate(-50%);z-index:200}.phone-screen{width:100%;height:calc(90vh - 22px);overflow:hidden;position:relative;background:var(--color-background)}.demo-footer{text-align:center;padding:22px;font-size:12px;color:var(--color-muted-foreground)}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;height:auto;background:#0a0e1a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:500;display:flex;align-items:center;justify-content:center;border-radius:0;overflow:hidden;overscroll-behavior:contain}.modal-backdrop .modal{background:var(--color-card);width:100%;max-width:340px;border-radius:var(--radius-xl);padding:var(--space-5);max-height:80%;overflow-y:auto;animation:slideUp .35s cubic-bezier(.16,1,.3,1);box-shadow:var(--shadow-5)}.modal-handle{width:40px;height:4px;background:var(--color-border);border-radius:var(--radius-full);margin:0 auto var(--space-4)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.modal-title{font-family:var(--font-display);font-size:18px;font-weight:600;margin:0}.modal-x{width:30px;height:30px;border-radius:50%;border:none;background:var(--muted);color:var(--color-muted-foreground);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.modal-x:hover{background:var(--color-surface-container)}.modal-x:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.modal-body-text{font-size:14px;color:var(--color-muted-foreground);line-height:1.6;margin-bottom:var(--space-3)}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0e1aeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:700;animation:fadeIn .2s}.ai-orb{width:70px;height:70px;border-radius:50%;background:#0a84ff;position:relative;animation:orbPulse 1.4s ease-in-out infinite}.ai-orb:before,.ai-orb:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:2px solid transparent;border-top-color:#00e5ff;border-right-color:#7b55ff;animation:orbRing 1.6s linear infinite}.ai-orb:after{top:-22px;right:-22px;bottom:-22px;left:-22px;border-top-color:#7b55ff;border-left-color:#00e5ff;animation-duration:2.6s;animation-direction:reverse}@keyframes orbPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes orbRing{to{transform:rotate(360deg)}}.loading-text{margin-top:var(--space-5);color:#fff;font-size:17px;font-weight:600;font-family:var(--font-display)}.loading-subtext{margin-top:var(--space-2);color:#00e5ff;font-size:12px;font-family:var(--font-mono);opacity:.85;letter-spacing:.05em}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 1280px){.phone-frame{width:340px}.demo-container{gap:20px;padding:16px}}@media (max-width: 768px){.demo-header h1{font-size:24px}.demo-header p{font-size:13px}.demo-container{flex-direction:column;align-items:center;gap:24px;padding:16px}.phone-frame{width:100%;max-width:390px;max-height:none}.phone-screen{height:80vh}}
