*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.col-span-full{grid-column:1/-1}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.block{display:block}.inline{display:inline}.flex{display:flex}.table{display:table}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.h-dvh{height:100dvh}.w-full{width:100%}.min-w-0{min-width:0}.max-w-3xl{max-width:48rem}.max-w-6xl{max-width:72rem}.max-w-lg{max-width:32rem}.flex-1{flex:1 1 0%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.border{border-width:1px}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pt-5{padding-top:1.25rem}.text-center{text-align:center}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.text-base{font-size:1rem;line-height:1.5rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--brand:#3b82f6;--brand-dark:#2563eb;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:26px;--r-full:999px;--sh-1:0 1px 2px rgba(0,0,0,.04);--sh-2:0 2px 8px rgba(0,0,0,.06);--sh-3:0 8px 24px rgba(0,0,0,.1);--sh-4:0 16px 48px rgba(0,0,0,.16);--label-1:#111827;--label-2:#4b5563;--label-3:#9ca3af;--sep:rgba(0,0,0,.07);--mat-thin-bg:hsla(0,0%,100%,.55);--mat-thin-blur:blur(20px) saturate(180%);--mat-reg-bg:hsla(0,0%,100%,.68);--mat-reg-blur:blur(16px) saturate(170%);--mat-thick-bg:rgba(252,252,253,.94);--ease-spring:cubic-bezier(.34,1.45,.64,1);--ease-out:cubic-bezier(.22,1,.36,1);--dur-1:.12s;--dur-2:.22s;--dur-3:.34s;--dur-4:.5s;--glass-white:hsla(0,0%,100%,.68);--glass-white-strong:hsla(0,0%,100%,.78);--glass-border:hsla(0,0%,100%,.75);--glass-blur:blur(16px) saturate(170%);--glass-blue:rgba(219,234,254,.72);--glass-blue-border:rgba(147,197,253,.8);--glass-blue-text:#1e3a8a;--glass-green:rgba(209,240,219,.72);--glass-green-text:#14532d;--glass-blue-solid:rgba(37,99,235,.88);--glass-blue-solid-hover:rgba(29,78,216,.93);--glass-green-solid:rgba(21,128,61,.88);--glass-green-solid-hover:rgba(20,110,53,.93)}.hidden{display:none!important}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-tap-highlight-color:transparent}.view{display:none;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(130px + env(safe-area-inset-bottom))}.view.active{display:flex;flex-direction:column;animation:view-in var(--dur-3) var(--ease-out) both}@keyframes view-in{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}@keyframes item-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.group-row,.notif-item{animation:item-in var(--dur-3) var(--ease-out) both}.group-row:first-child,.notif-item:first-child{animation-delay:0ms}.group-row:nth-child(2),.notif-item:nth-child(2){animation-delay:35ms}.group-row:nth-child(3),.notif-item:nth-child(3){animation-delay:70ms}.group-row:nth-child(4),.notif-item:nth-child(4){animation-delay:105ms}.group-row:nth-child(5),.notif-item:nth-child(5){animation-delay:.14s}.group-row:nth-child(6),.notif-item:nth-child(n+6){animation-delay:175ms}.progress-wrap{padding:26px 16px 6px}.progress-track{height:8px;border-radius:999px;background:#e5e7eb;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--brand);transition:width var(--dur-4) var(--ease-out)}.progress-fill.done{background:#16a34a}.progress-text{text-align:center;font-size:13px;color:#6b7280;margin-top:10px;font-weight:500}.progress-track.mini{height:4px;margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;height:48px;border-radius:var(--r-md);padding:0 var(--sp-5);font-size:15px;font-weight:500;cursor:pointer;border:none;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-1) var(--ease-spring),background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),opacity var(--dur-1) var(--ease-out)}.btn svg{width:18px;height:18px}.btn:active{transform:scale(.97);opacity:.85}.btn:disabled{opacity:.62;pointer-events:none}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-success{background:#16a34a;color:#fff}.btn-success:hover{background:#15803d}.btn-outline{background:hsla(240,3%,49%,.12);color:#374151}.btn-outline:hover{background:hsla(240,3%,49%,.19)}.btn-danger{background:rgba(220,38,38,.11);color:#b91c1c}.btn-danger:hover{background:rgba(220,38,38,.17)}#view-iot .btn,#view-timesheet .btn{-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:.5px solid hsla(0,0%,100%,.6)}#view-iot .btn-primary,#view-timesheet .btn-primary{background:var(--glass-blue-solid);color:#fff}#view-iot .btn-primary:hover,#view-timesheet .btn-primary:hover{background:var(--glass-blue-solid-hover)}#view-iot .btn-outline,#view-timesheet .btn-outline{background:var(--glass-white);color:#374151;border-color:var(--glass-border)}#view-iot .btn-outline:hover,#view-timesheet .btn-outline:hover{background:var(--glass-white-strong);color:var(--glass-blue-text)}#view-iot .btn-success,#view-timesheet .btn-success{background:var(--glass-green-solid);color:#fff}#view-iot .btn-success:hover,#view-timesheet .btn-success:hover{background:var(--glass-green-solid-hover)}.wallpaper-bg{position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;z-index:-1;pointer-events:none;-o-object-fit:cover;object-fit:cover;transform:translateZ(0);will-change:transform}.bottom-nav{left:50%;bottom:calc(54px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;gap:4px;-webkit-backdrop-filter:var(--mat-thin-blur);backdrop-filter:var(--mat-thin-blur);border-radius:var(--r-full);padding:5px;border:1px solid hsla(0,0%,100%,.55);box-shadow:var(--sh-3)}.bottom-nav,.icp-footer{position:fixed;display:flex;background:var(--mat-thin-bg)}.icp-footer{left:0;right:0;bottom:0;z-index:40;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:5px 12px calc(5px + env(safe-area-inset-bottom));font-size:11px;line-height:1.5;color:var(--label-3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center}.icp-footer a{color:var(--label-3);text-decoration:none}.icp-footer a:hover{color:var(--label-2);text-decoration:underline}.icp-copy{color:var(--label-3)}.icp-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 12px}.icp-police{display:inline-flex;align-items:center}.icp-police-icon{width:14px;height:16px;margin-right:4px;vertical-align:-2px;display:inline-block}.nav-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 18px;border-radius:999px;border:none;background:transparent;font-size:13px;font-weight:500;color:#6b7280;cursor:pointer;transition:color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring),opacity var(--dur-1) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.nav-btn svg{width:17px;height:17px}.nav-btn:hover{color:var(--brand)}.nav-btn:active{transform:scale(.94);opacity:.8}.nav-btn.active{color:var(--brand);background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.1)}.app-bar{z-index:60;flex-shrink:0;flex-direction:column;align-items:stretch;padding-top:env(safe-area-inset-top);background:var(--mat-thin-bg);-webkit-backdrop-filter:var(--mat-thin-blur);backdrop-filter:var(--mat-thin-blur)}.app-bar,.app-bar-tools{position:relative;display:flex}.app-bar-tools{align-items:center;justify-content:space-between;height:46px;padding:0 12px}.app-title{position:absolute;left:50%;transform:translateX(-50%);font-size:17px;font-weight:600;color:var(--label-1);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease-out)}.app-bar.compact .app-title{opacity:1}.app-bar-large{display:flex;align-items:center;height:42px;padding:0 var(--sp-4);font-size:26px;font-weight:600;color:var(--label-1);white-space:nowrap;overflow:hidden;transition:height var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}.app-bar.compact .app-bar-large{height:0;opacity:0}.app-bar-btn{width:36px;height:36px;border-radius:50%;border:1px solid hsla(0,0%,100%,.6);background:hsla(0,0%,100%,.75);color:#374151;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--sh-1);transition:transform var(--dur-1) var(--ease-spring),color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out),opacity var(--dur-1) var(--ease-out)}.app-bar-btn svg{width:19px;height:19px}.app-bar-btn:hover{color:var(--brand)}.app-bar-btn:active{transform:scale(.9);opacity:.8}.views-wrap{flex:1;min-height:0;display:flex;flex-direction:column;transition:transform var(--dur-3) var(--ease-out),border-radius var(--dur-3) var(--ease-out);will-change:transform}.views-wrap.shift-left{transform:translateX(-12%)}.views-wrap.shift-right{transform:translateX(12%)}.drawer-scrim{position:fixed;inset:0;z-index:40;background:transparent;display:none}.drawer-scrim.show{display:block}.drawer-layer{position:fixed;top:0;left:0;width:100%;height:100%;height:100dvh;z-index:50;pointer-events:none}.drawer{position:absolute;top:0;height:100%;width:82%;max-width:360px;background:rgba(251,251,253,.98);display:flex;flex-direction:column;padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));transition:transform var(--dur-3) var(--ease-out);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;pointer-events:auto}.drawer-layer.left .drawer{left:0;transform:translateX(-100%);border-radius:0 var(--r-xl) var(--r-xl) 0;box-shadow:8px 0 24px rgba(0,0,0,.1)}.drawer-layer.left.open .drawer{transform:translateX(0)}.drawer-layer.right .drawer{right:0;transform:translateX(100%);border-radius:var(--r-xl) 0 0 var(--r-xl);box-shadow:-8px 0 24px rgba(0,0,0,.1)}.drawer-layer.right.open .drawer{transform:translateX(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:10px;border-bottom:1px solid rgba(0,0,0,.06)}.drawer-title{font-size:18px;font-weight:600;color:#111827}.drawer-close{width:32px;height:32px;border-radius:50%;border:none;background:#f1f5f9;color:#475569;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--dur-1) var(--ease-spring),background-color var(--dur-2) var(--ease-out)}.drawer-close svg{width:16px;height:16px}.drawer-close:active{transform:scale(.9);opacity:.8}.wall-section-title{font-size:12px;font-weight:500;color:#6b7280;margin:var(--sp-5) 0 var(--sp-2) 2px}.wall-section-title:first-of-type{margin-top:0}.wall-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wall-opt{border:2px solid transparent;border-radius:var(--r-md);padding:6px;background:transparent;cursor:pointer;text-align:center;transition:border-color .15s,transform .15s,background-color .15s}.wall-opt:active{transform:scale(.96)}.wall-opt.selected{border-color:var(--brand);background:rgba(37,99,235,.06)}.wall-thumb{display:block;width:100%;aspect-ratio:9/16;border-radius:var(--r-sm);overflow:hidden;background:#e5e7eb;position:relative}.wall-thumb img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.wall-thumb.landscape{aspect-ratio:16/9}.wall-thumb.blank{background:#f3f4f6}.wall-thumb.blank:after{content:"";position:absolute;inset:8px;border:2px dashed #d1d5db;border-radius:6px}.wall-name{display:block;font-size:12px;color:#6b7280;margin-top:6px;font-weight:500}.wall-opt.selected .wall-name{color:var(--brand)}.wall-opt.selected .wall-thumb{outline:2px solid var(--brand);outline-offset:-2px}.version-tag{margin-top:auto;text-align:center;font-size:11px;color:#b6c2cf;padding-top:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.build-info{display:block;font-size:10px;color:#cbd5e1;margin-top:3px;letter-spacing:.01em}.build-info:empty{display:none}.notif-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.notif-item{background:#fff;border-radius:var(--r-md);padding:12px 14px;margin-bottom:10px;box-shadow:var(--sh-1)}.notif-title{font-size:14px;font-weight:600;color:var(--label-1);margin-bottom:4px}.notif-pin{display:inline-block;font-size:10px;font-weight:600;color:#fff;background:var(--brand);border-radius:4px;padding:1px 5px;margin-right:6px;vertical-align:1px}.notif-content{font-size:13px;color:#4b5563;line-height:1.6;white-space:pre-wrap;word-break:break-word}.notif-time{font-size:11px;color:#9ca3af;margin-top:6px}.notify-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid rgba(0,0,0,.05)}.notify-write{display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;border:none;border-radius:var(--r-sm);padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:transform .15s,background-color .15s}.notify-write svg{width:15px;height:15px}.notify-write:hover{background:var(--brand-dark)}.notify-write:active{transform:scale(.95)}.notify-footer-actions{display:flex;gap:8px}.notify-manage{display:inline-flex;align-items:center;gap:6px;background:hsla(240,3%,49%,.12);color:#374151;border:none;border-radius:var(--r-sm);padding:8px 14px;font-size:13px;font-weight:500;cursor:pointer;transition:transform .15s,background-color .15s,color .15s}.notify-manage svg{width:15px;height:15px}.notify-manage:hover{background:hsla(240,3%,49%,.19)}.notify-manage:active{transform:scale(.95)}.notify-manage.active{background:rgba(220,38,38,.11);color:#b91c1c}.notif-actions{display:flex;gap:8px;margin-top:10px}.notif-act{display:inline-flex;align-items:center;gap:4px;background:hsla(240,3%,49%,.11);border:none;border-radius:var(--r-sm);padding:6px 10px;font-size:12px;font-weight:500;color:#4b5563;cursor:pointer;transition:transform .15s,background-color .15s,color .15s}.notif-act svg{width:13px;height:13px}.notif-act:hover{background:rgba(37,99,235,.13);color:#1d4ed8}.notif-act:active{transform:scale(.94)}.notif-act.danger{color:#b91c1c;background:rgba(220,38,38,.1)}.notif-act.danger:hover{background:rgba(220,38,38,.16);color:#b91c1c}.notif-act.active{background:rgba(37,99,235,.15);color:#1d4ed8}.toast{position:fixed;left:50%;bottom:110px;transform:translateX(-50%) translateY(12px);background:rgba(17,24,39,.88);color:#fff;padding:10px 18px;border-radius:var(--r-full);font-size:14px;z-index:80;pointer-events:none;opacity:0;white-space:nowrap;box-shadow:var(--sh-3);transition:opacity var(--dur-3) var(--ease-out),transform var(--dur-3) var(--ease-spring)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.modal-layer{position:fixed;inset:0;z-index:70;background:rgba(17,24,39,.45);display:none;align-items:center;justify-content:center;padding:24px}.modal-layer.show{display:flex;animation:modal-scrim-in var(--dur-2) var(--ease-out) both}@keyframes modal-scrim-in{0%{opacity:0}to{opacity:1}}.modal-layer.show .modal-card{animation:modal-card-in var(--dur-3) var(--ease-spring) both}@keyframes modal-card-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.modal-card{width:100%;max-width:360px;background:#fff;border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--sh-4)}.modal-title{font-size:17px;font-weight:600;color:var(--label-1);margin-bottom:4px}.modal-desc{font-size:12px;color:var(--label-3);margin-bottom:12px}.modal-actions{display:flex;gap:10px;margin-top:var(--sp-4)}.task-btn{display:flex;align-items:center;gap:var(--sp-4);width:100%;background:#fff;border:none;border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-4);text-align:left;cursor:pointer;box-shadow:var(--sh-2);transition:transform var(--dur-1) var(--ease-spring),box-shadow var(--dur-2) var(--ease-out)}.task-btn:hover{box-shadow:var(--sh-3)}.task-btn:active{transform:scale(.975);opacity:.9}.task-icon{width:60px;height:60px;border-radius:var(--r-md)}.task-icon svg{width:30px;height:30px}.task-btn.timesheet .task-icon{background:#e3f2fd;color:#1565c0}.task-btn.iot .task-icon{background:#fce4ec;color:#c62828}.task-btn.powercycle .task-icon{background:#fef3c7;color:#b45309}.task-btn .arrow{color:#d1d5db;flex-shrink:0;display:flex}.task-btn .arrow svg{width:20px;height:20px}.group{background:#fff;border-radius:var(--r-lg);box-shadow:var(--sh-2);overflow:hidden}.group-row{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-3) var(--sp-4);background:transparent;border:none;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background-color var(--dur-2) var(--ease-out);-webkit-tap-highlight-color:transparent}.group-row+.group-row{border-top:.5px solid var(--sep)}.group-row:active{background:rgba(0,0,0,.045)}.row-title{font-size:15px;font-weight:500;color:var(--label-1)}.row-sub{font-size:12px;color:var(--label-3);margin-top:2px}.row-arrow{color:#c7c7cc;flex-shrink:0;display:flex}.row-arrow svg{width:18px;height:18px}.group-icon{width:44px;height:44px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center}.group-icon svg{width:22px;height:22px}.group-icon.timesheet{background:#e3f2fd;color:#1565c0}.group-icon.iot{background:#fce4ec;color:#c62828}.group-icon.powercycle{background:#fef3c7;color:#b45309}.group-glass{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.group-glass .group-row+.group-row{border-top-color:rgba(0,0,0,.1)}.group-glass .group-row:active{background:hsla(0,0%,100%,.45)}.group-glass .row-sub{color:#374151}.group-glass .row-arrow{color:#4b5563}.group-glass .group-icon{background:rgba(219,234,254,.8);border:1px solid hsla(0,0%,100%,.85);color:#1d4ed8}.group-glass .group-icon.iot{background:rgba(252,228,236,.8);color:#b91c1c}.group-glass .group-icon.powercycle{background:hsla(48,96%,89%,.8);color:#92400e}.group-caption{font-size:12px;font-weight:500;color:#6b7280;padding:0 var(--sp-1);margin:0 0 var(--sp-2)}.group-field{padding:var(--sp-3) var(--sp-4)}.group-field+.group-field{border-top:.5px solid rgba(0,0,0,.1)}.group-field input{width:100%;border:none;outline:none;background:transparent;font-size:15px;color:var(--label-1);padding:0;font-family:inherit}.group-field input::-moz-placeholder{color:#4b5563}.group-field input::placeholder{color:#4b5563}.step-card{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-lg);padding:var(--sp-4);margin-top:var(--sp-3);box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.step-card .upload-area{background:hsla(0,0%,100%,.44)}.step-card .group,.step-card .upload-area{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.step-card .group{background:hsla(0,0%,100%,.42)}.step-card .file-item{background:hsla(0,0%,100%,.46);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.step-head{gap:var(--sp-2);margin-bottom:var(--sp-3)}.step-badge,.step-head{display:flex;align-items:center}.step-badge{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:var(--glass-blue);color:var(--glass-blue-text);font-size:12px;font-weight:600;justify-content:center}.step-title{font-size:14px;font-weight:500;color:var(--label-1)}.task-card{position:relative;background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85);display:flex;flex-direction:column;min-height:196px;transition:box-shadow var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}.task-card:hover{box-shadow:0 12px 36px rgba(15,23,42,.26),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.task-card.selected{box-shadow:0 0 0 3px rgba(59,130,246,.22),0 8px 32px rgba(15,23,42,.2),inset 0 1px 0 hsla(0,0%,100%,.85)}.task-card-main{display:flex;align-items:flex-start;gap:11px}.task-icon{width:42px;height:42px;border-radius:13px;flex-shrink:0;background:hsla(0,0%,100%,.72);border:1px solid hsla(0,0%,100%,.8);display:flex;align-items:center;justify-content:center}.task-icon svg{width:19px;height:19px}.task-icon.timesheet{color:#1565c0}.task-icon.iot_card{color:#c62828}.task-info{min-width:0;flex:1}.task-name{font-size:14px;font-weight:500;color:#111827;line-height:1.35}.task-name,.task-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-sub{font-size:12px;color:#374151;margin-top:3px}.task-status-line{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;margin-top:5px;max-width:100%;color:#1f2937}.task-status-line>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.task-card[data-status=pending] .status-dot{background:#92400e}.task-card[data-status=processing] .status-dot{background:#1d4ed8}.task-card[data-status=done] .status-dot{background:#166534}.task-card[data-status=error] .status-dot{background:#b91c1c}.task-progress{height:8px;border-radius:var(--r-full);margin-top:auto;overflow:hidden;background:hsla(0,0%,100%,.72);border:1px solid hsla(0,0%,100%,.8)}.task-progress .bar{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,#3b82f6,#6366f1);transition:width var(--dur-4) var(--ease-out)}.task-error{margin-top:auto;border-radius:12px;padding:8px 11px;font-size:12px;line-height:1.45;color:#b91c1c;background:hsla(0,0%,100%,.7);border:1px solid hsla(0,91%,71%,.4)}.task-actions{display:flex;gap:9px;margin-top:auto;padding-top:14px}.task-btn-primary{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#fff;font-size:13px;font-weight:500;text-decoration:none;background:linear-gradient(135deg,#3b82f6,#6366f1);border:1px solid hsla(0,0%,100%,.42);border-radius:13px;padding:10px;box-shadow:0 4px 18px rgba(59,130,246,.42);transition:transform var(--dur-1) var(--ease-spring),opacity var(--dur-1) var(--ease-out)}.task-btn-primary:hover{opacity:.92}.task-btn-primary:active{transform:scale(.97);opacity:.85}.task-btn-primary svg{width:15px;height:15px}.task-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:5px;color:#374151;font-size:12px;font-weight:500;text-decoration:none;white-space:nowrap;background:hsla(0,0%,100%,.7);border:1px solid hsla(0,0%,100%,.82);border-radius:13px;padding:10px 13px;transition:background-color var(--dur-2) var(--ease-out)}.task-btn-ghost:hover{background:hsla(0,0%,100%,.88)}.task-btn-ghost svg{width:14px;height:14px}.task-check-wrap{width:42px;height:42px;border-radius:13px;flex-shrink:0;cursor:pointer;background:hsla(0,0%,100%,.72);border:1px solid hsla(0,0%,100%,.8);display:flex;align-items:center;justify-content:center}.task-check{width:20px;height:20px;margin:0}.task-del-btn{position:absolute;top:10px;right:10px;z-index:2;width:30px;height:30px;border-radius:50%;cursor:pointer;background:hsla(0,0%,100%,.75);border:1px solid hsla(0,0%,100%,.85);color:#b91c1c;display:flex;align-items:center;justify-content:center;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}.task-del-btn:hover{background:hsla(0,93%,94%,.95)}.task-del-btn:active{transform:scale(.9)}.task-del-btn svg{width:14px;height:14px}.task-card.has-del .task-info{padding-right:34px}.folder-card{position:relative;width:100%;text-align:left;font:inherit;cursor:pointer;background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-lg);padding:var(--sp-4);box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85);display:flex;flex-direction:column;min-height:196px;transition:box-shadow var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}.folder-card:hover{box-shadow:0 12px 36px rgba(15,23,42,.26),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.folder-card:active{transform:scale(.985)}.folder-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;flex:1}.folder-mini{position:relative;border-radius:11px;background:hsla(0,0%,100%,.74);border:1px solid hsla(0,0%,100%,.84);padding:8px;display:flex;flex-direction:column;justify-content:space-between;gap:7px}.folder-mini-top{display:flex;gap:6px;align-items:flex-start}.folder-mini-ico{width:16px;height:16px;border-radius:5px;background:rgba(59,130,246,.24);flex-shrink:0}.folder-mini-lines{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;padding-top:1px}.folder-mini-l1{height:3px;border-radius:2px;background:rgba(15,23,42,.24);width:90%}.folder-mini-l2{height:3px;border-radius:2px;background:rgba(15,23,42,.13);width:60%}.folder-mini-btn{height:6px;border-radius:3px;background:linear-gradient(90deg,#3b82f6,#6366f1);opacity:.9}.folder-mini:nth-child(2) .folder-mini-l1{width:76%}.folder-mini:nth-child(2) .folder-mini-l2{width:46%}.folder-mini:nth-child(3) .folder-mini-l1{width:94%}.folder-mini:nth-child(3) .folder-mini-l2,.folder-mini:nth-child(4) .folder-mini-l1{width:68%}.folder-mini:nth-child(4) .folder-mini-l2{width:52%}.folder-more{position:absolute;right:7px;bottom:7px;font-size:11px;font-weight:500;color:#374151;background:hsla(0,0%,100%,.92);border:1px solid hsla(0,0%,100%,.95);padding:1px 7px;border-radius:var(--r-full)}.folder-foot{display:flex;align-items:center;justify-content:space-between;padding-top:13px}.folder-name{font-size:14px;font-weight:500;color:#111827}.folder-count{font-size:11px;font-weight:500;color:#4b5563;background:rgba(0,0,0,.07);padding:2px 9px;border-radius:var(--r-full)}.month-panel{position:fixed;inset:0;z-index:75;background:rgba(15,23,42,.35);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px}.month-panel.show{display:flex;animation:modal-scrim-in var(--dur-2) var(--ease-out) both}.month-panel-card{width:100%;max-width:720px;max-height:84vh;background:hsla(0,0%,100%,.9);border:1px solid hsla(0,0%,100%,.78);border-radius:var(--r-xl);box-shadow:0 24px 64px rgba(15,23,42,.35),inset 0 1px 0 hsla(0,0%,100%,.9);display:flex;flex-direction:column;overflow:hidden}.month-panel.show .month-panel-card{animation:modal-card-in var(--dur-3) var(--ease-spring) both;will-change:transform,opacity}.month-panel-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);flex-shrink:0}.month-panel-heading{display:flex;align-items:baseline;gap:8px;min-width:0}.month-panel-title{font-size:17px;font-weight:500;color:#111827}.month-panel-count{font-size:12px;color:#374151}.month-panel-close{width:30px;height:30px;border-radius:50%;flex-shrink:0;cursor:pointer;background:hsla(0,0%,100%,.8);border:1px solid hsla(0,0%,100%,.9);color:#374151;display:flex;align-items:center;justify-content:center;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring)}.month-panel-close:hover{background:#fff}.month-panel-close:active{transform:scale(.9)}.month-panel-close svg{width:14px;height:14px}.month-panel-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:0 var(--sp-5) var(--sp-4)}.month-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}@media (max-width:620px){.month-panel-grid{grid-template-columns:minmax(0,1fr)}}.month-panel-grid .task-card{min-height:0;-webkit-backdrop-filter:none;backdrop-filter:none;background:hsla(0,0%,100%,.72);animation:item-in var(--dur-3) var(--ease-out) both}.month-panel-grid .task-card:first-child{animation-delay:40ms}.month-panel-grid .task-card:nth-child(2){animation-delay:75ms}.month-panel-grid .task-card:nth-child(3){animation-delay:.11s}.month-panel-grid .task-card:nth-child(4){animation-delay:145ms}.month-panel-grid .task-card:nth-child(5){animation-delay:.18s}.month-panel-grid .task-card:nth-child(n+6){animation-delay:215ms}.download-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:var(--brand);color:#fff;text-decoration:none;padding:12px;border-radius:var(--r-md);font-size:15px;font-weight:500;margin-top:auto;transition:background-color var(--dur-2) var(--ease-out),transform var(--dur-1) var(--ease-spring),opacity var(--dur-1) var(--ease-out)}.download-btn:hover{background:var(--brand-dark)}.download-btn:active{transform:scale(.975);opacity:.88}.download-btn svg{width:16px;height:16px}.download-btn.secondary{background:#fff;color:#374151;border:1.5px solid #d1d5db;margin-top:8px}.download-btn.secondary:hover{background:#fff;border-color:#93c5fd;color:var(--brand)}.lib-admin-bar.hidden{display:none}.lib-admin-bar{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.lib-admin-bar:not(.hidden)~.lib-manage-btn{margin-left:0}.lib-manage-btn,.lib-pill{display:inline-flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-radius:var(--r-full);font-size:12px;font-weight:500;white-space:nowrap;cursor:pointer;background:hsla(0,0%,100%,.55);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:.5px solid hsla(0,0%,100%,.7);color:#4b5563;transition:background-color .15s,color .15s,border-color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.lib-manage-btn{margin-left:auto}.lib-manage-btn:hover,.lib-pill:hover{background:hsla(0,0%,100%,.78)}.lib-manage-btn.active{color:#dc2626}.lib-pill input[type=checkbox]{width:13px;height:13px;margin:0;flex-shrink:0;accent-color:var(--brand);cursor:pointer}.lib-pill-danger:disabled{background:hsla(0,0%,100%,.35);color:#9ca3af;border-color:hsla(0,0%,100%,.5);cursor:default}.lib-pill-danger:not(:disabled){background:rgba(220,38,38,.14);color:#dc2626;border-color:rgba(220,38,38,.25)}.lib-pill-danger:not(:disabled):hover{background:rgba(220,38,38,.22)}.task-check{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}.task-card.selected{border-color:var(--brand);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.lib-delete-btn{background:rgba(220,38,38,.1);color:#b91c1c;border:none;margin-top:8px}.lib-delete-btn:hover{background:rgba(220,38,38,.16)}.filter-tabs{display:flex;gap:6px}.filter-tab{flex:1;padding:11px 0;border-radius:var(--r-md);border:.5px solid var(--glass-border);background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);color:#374151;font-size:14px;font-weight:500;cursor:pointer;-webkit-appearance:none;transition:background-color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out)}.filter-tab.active{background:var(--glass-blue);border-color:var(--glass-blue-border);color:var(--glass-blue-text);font-weight:600}#libMore{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:.5px solid var(--glass-border);color:#374151}#libMore:hover{background:var(--glass-white-strong);color:var(--glass-blue-text)}.upload-area{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:2px dashed rgba(75,85,99,.42);border-radius:var(--r-lg);padding:46px 20px;min-height:200px;text-align:center;cursor:pointer;box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85);transition:border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap}.upload-area:hover{border-color:rgba(59,130,246,.75)}.upload-area:active{border-color:var(--brand);background:hsla(0,0%,100%,.8)}.upload-area .icon{font-size:40px;margin-bottom:14px;display:flex;justify-content:center;color:#4b5563}.upload-area .icon svg{width:54px;height:54px}.upload-area .text{font-size:16px;color:#111827;font-weight:500}.upload-area .hint{font-size:13px;color:#374151;margin-top:10px}.file-list{margin-top:12px;display:flex;flex-direction:column;gap:8px}.file-item{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-sm);padding:14px 16px;display:flex;align-items:center;gap:10px;box-shadow:0 4px 16px rgba(15,23,42,.16),0 1px 3px rgba(15,23,42,.08),inset 0 1px 0 hsla(0,0%,100%,.85)}.file-item .file-icon{flex-shrink:0;color:#4b5563;display:flex}.file-item .file-icon svg{width:18px;height:18px}.file-item .file-name{flex:1;font-size:13px;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item .file-remove{background:none;border:none;color:#991b1b;font-size:18px;cursor:pointer;padding:4px 8px}.file-item .file-size{flex-shrink:0;font-size:12px;color:#4b5563}.task-icon.repair{color:#0f766e}.task-card[data-status=file] .status-dot{background:#4b5563}.repair-msg{margin-top:10px;border-radius:var(--r-sm);padding:10px 13px;font-size:12px;line-height:1.7;background:hsla(0,93%,94%,.78);border:1px solid hsla(0,94%,82%,.62);color:#7f1d1d}.input-field{width:100%;padding:14px 16px;border:1.5px solid #d1d5db;border-radius:var(--r-md);font-size:15px;outline:none;background:#fff;color:var(--label-1);transition:border-color .15s,box-shadow .15s}.input-field:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(37,99,235,.12)}.input-field::-moz-placeholder{color:var(--label-3)}.input-field::placeholder{color:var(--label-3)}.choice-box{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-lg);padding:var(--sp-6);margin-top:12px;box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.choice-box h3{font-size:16px;color:var(--label-1);margin-bottom:18px;text-align:center;font-weight:600}.choice-options{display:flex;flex-direction:column;gap:12px}.choice-btn{background:hsla(0,0%,100%,.52);border:1px solid hsla(0,0%,100%,.85);border-radius:var(--r-md);padding:var(--sp-5);text-align:center;cursor:pointer;transition:transform var(--dur-1) var(--ease-spring),border-color var(--dur-2) var(--ease-out),background-color var(--dur-2) var(--ease-out)}.choice-btn:active{transform:scale(.98)}.choice-btn.selected{border-color:var(--brand);background:var(--glass-blue)}.choice-btn .icon{font-size:30px;margin-bottom:10px;display:flex;justify-content:center;color:#4b5563}.choice-btn .icon svg{width:34px;height:34px}.choice-btn .title{font-size:15px;font-weight:500;color:#111827}.choice-btn .desc{font-size:13px;color:#374151;margin-top:5px}.seg-tabs{display:flex;gap:0;padding:4px;border-radius:var(--r-md);background:var(--mat-reg-bg);border:.5px solid var(--glass-border);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur)}.seg-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;text-align:center;padding:11px 8px;border-radius:var(--r-sm);font-size:14px;font-weight:500;color:#374151;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),font-weight var(--dur-2) var(--ease-out);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.filter-tab.active,.seg-tab.active{animation:tab-pop var(--dur-2) var(--ease-spring) both}@keyframes tab-pop{0%{transform:scale(.96)}to{transform:scale(1)}}.seg-tab.active{background:var(--glass-blue);color:var(--glass-blue-text);font-weight:600}.seg-tab.done{background:var(--glass-green);color:var(--glass-green-text);font-weight:600}.seg-tab-static{cursor:default}.seg-tab .seg-num{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:600;background:hsla(0,0%,100%,.6);color:#4b5563;flex-shrink:0}.seg-tab .seg-num svg{width:12px;height:12px;display:block}.seg-tab:not(.active):not(.done) .seg-num{background:hsla(0,0%,100%,.55);color:#4b5563}.seg-tab.active .seg-num{background:hsla(0,0%,100%,.75);color:var(--glass-blue-text)}.seg-tab.done .seg-num{background:hsla(0,0%,100%,.75);color:var(--glass-green-text)}.year-wheel-container{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:1px solid hsla(0,0%,100%,.72);border-radius:var(--r-lg);padding:var(--sp-6);margin-top:12px;text-align:center;box-shadow:0 8px 32px rgba(15,23,42,.2),0 2px 8px rgba(15,23,42,.1),inset 0 1px 0 hsla(0,0%,100%,.85)}.year-wheel-title{font-size:14px;color:var(--label-1);margin-bottom:var(--sp-4);font-weight:500}.year-wheel{height:200px;overflow-y:scroll;position:relative;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;mask-image:linear-gradient(180deg,transparent 0,#000 25%,#000 75%,transparent);-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 25%,#000 75%,transparent)}.year-wheel::-webkit-scrollbar{display:none}.year-item{height:40px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#6b7280;transition:color .3s var(--ease-out)}.year-num{display:inline-block;transition:transform .32s var(--ease-out);will-change:transform}.year-item.selected{color:var(--label-1);font-weight:600}.year-item.selected .year-num{transform:scale(1.25)}.year-item.near{color:#374151}.year-item.near .year-num{transform:scale(1.08)}.year-spacer{height:80px}.year-indicator{position:absolute;left:16px;right:16px;top:50%;transform:translateY(-50%);height:40px;border-top:2px solid var(--brand);border-bottom:2px solid var(--brand);pointer-events:none;border-radius:4px}.year-display{font-size:32px;font-weight:600;color:var(--brand);margin-top:var(--sp-4)}.year-display .suffix{font-size:16px;color:#374151;font-weight:400}.section-title{margin:var(--sp-5) 0 var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.section-title-text{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-full);background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:.5px solid var(--glass-border);font-size:13px;font-weight:500;color:#374151}.section-title .count{font-size:11px;background:rgba(0,0,0,.07);color:#4b5563;padding:1px 7px;border-radius:var(--r-full)}.page-tip{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:.5px solid var(--glass-border);font-size:12px;line-height:1.6;color:#374151}.empty{text-align:center;color:#d1d5db;font-size:13px;padding:20px}#libGrid .empty{background:var(--mat-reg-bg);-webkit-backdrop-filter:var(--mat-reg-blur);backdrop-filter:var(--mat-reg-blur);border:.5px solid var(--glass-border);border-radius:var(--r-lg);color:#374151;padding:var(--sp-6)}.spinner{display:inline-block;width:14px;height:14px;border:2px solid #e5e7eb;border-top:2px solid var(--brand);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(1turn)}}.result-icon{width:48px;height:48px;border-radius:50%;margin:0 auto;display:flex;align-items:center;justify-content:center}.result-icon svg{width:26px;height:26px}.result-icon.ok{background:#dcfce7;color:#16a34a}.result-icon.err{background:#fee2e2;color:#ef4444}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (min-width:640px){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}