:root{--ink:#1a1a1a;--bg-page:#fff5f5;--card:#fff;--card-soft:snow;--brand:#e11a1f;--brand-deep:#b31217;--brand-deeper:#8c0d12;--brand-light:#f2444a;--brand-tint:#fff0ef;--brand-tint-deep:#ffe0de;--brand-tint-press:#f7cfcd;--on-color:#fff;--ink-muted:#8a8a8a;--ink-faint:silver;--chip-amber:#d46b08;--chip-amber-tint:#fff7e6;--chip-green:#389e0d;--chip-green-tint:#f6ffed;--chip-pink:#c41d7f;--chip-pink-tint:#fff0f6;--chip-gray:#6b6b6b;--chip-gray-tint:#f2f2f2;--bd:2px;--bd-thick:3px;--r-card:16px;--r-ctrl:12px;--r-pill:999px;--hard-xs:2px 2px 0 var(--ink);--hard-sm:3px 3px 0 var(--ink);--hard-md:4px 4px 0 var(--ink);--hard-lg:6px 6px 0 var(--ink);--ease-pop:transform .15s ease, box-shadow .15s ease, background .15s ease}.memphis-bg{background-color:var(--bg-page);background-image:radial-gradient(#e11a1f1a 1.5px,#0000 1.5px);background-size:18px 18px}.m-sticker{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm)}.m-press:active{box-shadow:none;transform:translate(3px,3px)}@media (hover:hover){.m-float:hover{box-shadow:var(--hard-md);transform:translate(-2px,-2px)}}.m-chip{border:1.5px solid var(--ink);border-radius:var(--r-pill);font-weight:700}.m-bar{border-left:4px solid var(--ink);padding-left:10px}.timer-card{background:var(--card);border-radius:var(--r-card);border:var(--bd) solid var(--ink);box-shadow:var(--hard-sm);cursor:pointer;flex-direction:column;min-height:120px;padding:14px;transition:transform .15s,box-shadow .15s,background .15s;display:flex;position:relative;overflow:visible}.timer-card:active{box-shadow:none;transform:translate(3px,3px)}@media (hover:hover){.timer-card:hover{box-shadow:var(--hard-md);transform:translate(-2px,-2px)}}.card-idle{background:var(--card)}.card-running{background:var(--brand-tint)}.card-paused,.card-paused.card-running{background:var(--chip-gray-tint)}.card-warning{background:var(--chip-amber-tint)}.card-pending{background:var(--brand-tint)}.card-overtime{background:var(--brand-tint-deep)}.card-editmode{border-color:var(--brand);background:var(--card);border-style:dashed}.card-header{justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.status-badge{border:1.5px solid var(--ink);border-radius:var(--r-pill);letter-spacing:.5px;white-space:nowrap;padding:3px 9px;font-size:11px;font-weight:800}.status-badge.status-idle{background:var(--ink-faint);color:var(--ink)}.status-badge.status-running{background:var(--brand);color:var(--on-color)}.status-badge.status-paused{background:var(--chip-gray);color:var(--on-color)}.status-badge.status-warning{background:var(--chip-amber);color:var(--on-color)}.status-badge.status-pending{background:var(--brand-light);color:var(--on-color)}.status-badge.status-overtime{background:var(--brand-deeper);color:var(--on-color)}.timer-name{color:var(--ink);font-size:20px;font-weight:800}.name-editable{cursor:pointer;border-bottom:2px dashed #0000;border-radius:8px;padding:2px 6px;transition:background .15s}.name-editable:hover{background:var(--brand-tint);border-bottom-color:var(--ink)}.name-edit-input{color:var(--ink);border:var(--bd) solid var(--ink);background:var(--card);text-transform:uppercase;border-radius:10px;outline:none;width:80px;padding:2px 8px;font-size:18px;font-weight:800}.card-body{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;min-height:60px;margin:8px 0;display:flex}.time-display{font-variant-numeric:tabular-nums;letter-spacing:1px;font-size:28px;font-weight:800}.time-placeholder{color:var(--ink-faint);font-size:14px}.idle-text{color:var(--chip-gray)}.running-text{color:var(--brand)}.pending-text{color:var(--brand-light)}.warning-text{color:var(--chip-amber)}.overtime-text{color:var(--brand-deeper);animation:1s ease-in-out infinite pulse}.paused-text{color:var(--chip-gray)}.countup-text{color:var(--chip-green)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.card-tags{flex-wrap:wrap;justify-content:center;gap:4px;display:flex}.card-actions{border-top:var(--bd) solid var(--ink);flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:10px;display:flex}.action-btn{border:1.5px solid var(--ink);border-radius:var(--r-ctrl);cursor:pointer;min-width:0;box-shadow:1.5px 1.5px 0 var(--ink);white-space:nowrap;flex:1;padding:7px 0;font-size:12px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.action-btn:active{box-shadow:none;transform:translate(1.5px,1.5px)}.btn-end{background:var(--brand-tint-deep);color:var(--brand-deep)}.btn-end:active{background:var(--brand-tint-press)}.btn-pause{background:var(--chip-amber-tint);color:var(--chip-amber)}.btn-pause:active{background:var(--chip-amber-tint)}.btn-resume{background:var(--brand-tint);color:var(--brand)}.btn-resume:active{background:var(--brand-tint-press)}.btn-extend{background:var(--brand-tint);color:var(--brand-deep)}.btn-extend:active{background:var(--brand-tint-press)}.extend-wrapper{flex:100%;position:relative}.extend-popup{background:var(--card);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);z-index:10;border-radius:14px;flex-wrap:wrap;gap:6px;min-width:200px;margin-bottom:6px;padding:10px;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.extend-option{border:1.5px solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);min-width:80px;color:var(--ink);cursor:pointer;box-shadow:1.5px 1.5px 0 var(--ink);text-align:center;flex:calc(50% - 3px);padding:10px 8px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s}.extend-option:active{box-shadow:none;background:var(--brand);color:var(--on-color);transform:translate(1.5px,1.5px)}.extend-cancel{border:none;border-top:2px solid var(--ink);width:100%;color:var(--chip-gray);cursor:pointer;background:0 0;margin-top:4px;padding:6px;font-size:12px;font-weight:600}.extend-cancel:active{background:var(--chip-gray-tint)}.card-delete-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand-deep);width:100%;color:var(--on-color);cursor:pointer;box-shadow:var(--hard-xs);margin-top:10px;padding:9px 0;font-size:13px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.card-delete-btn:active{box-shadow:none;background:var(--brand-deeper);transform:translate(2px,2px)}.detail-overlay{z-index:1001;background:#00000080;justify-content:center;align-items:flex-end;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-content{background:var(--card);border:var(--bd-thick) solid var(--ink);border-bottom:none;border-radius:24px 24px 0 0;width:100%;max-width:500px;max-height:92vh;padding:24px 20px 34px;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.detail-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.detail-header h2{color:var(--ink);margin:4px 0 0;font-size:22px;font-weight:800}.detail-close{border:var(--bd) solid var(--ink);background:var(--card);width:36px;height:36px;color:var(--ink);cursor:pointer;box-shadow:var(--hard-xs);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:22px;transition:transform .15s,box-shadow .15s;display:flex}.detail-close:active{box-shadow:none;transform:translate(2px,2px)}.detail-badge{border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:4px 12px;font-size:13px;font-weight:800}.badge-running{background:var(--brand);color:var(--on-color)}.badge-paused{background:var(--chip-gray);color:var(--on-color)}.badge-pending{background:var(--brand-light);color:var(--on-color)}.badge-warning{background:var(--chip-amber);color:var(--on-color)}.badge-overtime{background:var(--brand-deeper);color:var(--on-color)}.detail-time-display{text-align:center;font-variant-numeric:tabular-nums;letter-spacing:2px;background:0 0;padding:28px 0;font-size:48px;font-weight:800}.detail-time-display.status-running{color:var(--brand)}.detail-time-display.status-paused{color:var(--chip-gray)}.detail-time-display.status-pending{color:var(--brand-light)}.detail-time-display.status-warning{color:var(--chip-amber)}.detail-time-display.status-overtime{color:var(--brand-deeper);animation:1s ease-in-out infinite pulse}.progress-bar-container{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-pill);height:12px;margin-bottom:20px;overflow:hidden}.progress-bar{border-radius:var(--r-pill);height:100%;transition:width 1s linear}.progress-running{background:var(--brand)}.progress-paused{background:var(--chip-gray)}.progress-warning{background:var(--chip-amber)}.progress-overtime{background:var(--brand-deeper)}.info-list{margin-bottom:18px}.info-item{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.info-label{color:var(--chip-gray);font-size:14px;font-weight:600}.info-value{color:var(--ink);font-size:14px;font-weight:700}.detail-actions{gap:10px;margin-bottom:16px;display:flex}.detail-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-card);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:13px 0;font-size:15px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.detail-btn:active{box-shadow:none;transform:translate(2px,2px)}.detail-btn-end{background:var(--brand-tint-deep);color:var(--brand-deep)}.detail-btn-end:active{background:var(--brand-tint-press)}.detail-btn-pause{background:var(--chip-amber-tint);color:var(--chip-amber)}.detail-btn-pause:active{background:var(--chip-amber-tint)}.detail-btn-resume{background:var(--brand-tint);color:var(--brand)}.detail-btn-resume:active{background:var(--brand-tint-press)}.detail-btn-extend{background:var(--brand-tint);color:var(--brand-deep);width:100%;margin-top:8px}.detail-btn-extend:active{background:var(--brand-tint-press)}.extend-section{margin-bottom:18px}.extend-options-inline{flex-wrap:wrap;gap:8px;display:flex}.extend-opt-btn{border:1.5px solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);min-width:80px;color:var(--ink);cursor:pointer;text-align:center;box-shadow:1.5px 1.5px 0 var(--ink);flex:calc(50% - 4px);padding:11px 8px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s,color .15s}.extend-opt-btn:active{box-shadow:none;background:var(--brand);color:var(--on-color);transform:translate(1.5px,1.5px)}.extend-cancel-btn{border:none;border-top:2px solid var(--ink);width:100%;color:var(--chip-gray);cursor:pointer;background:0 0;margin-top:4px;padding:7px;font-size:12px;font-weight:600}.extend-cancel-btn:active{background:var(--chip-gray-tint)}.detail-section{margin-bottom:20px}.section-label{color:var(--ink);border-left:4px solid var(--brand);margin-bottom:12px;padding-left:9px;font-size:15px;font-weight:800;line-height:1.2}.mode-toggle{gap:10px;display:flex}.mode-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-card);background:var(--card);cursor:pointer;box-shadow:var(--hard-xs);flex-direction:column;flex:1;align-items:center;gap:4px;padding:14px 12px;transition:transform .15s,box-shadow .15s,background .15s;display:flex}.mode-btn:active{box-shadow:none;transform:translate(2px,2px)}.mode-title{color:var(--chip-gray);font-size:16px;font-weight:800}.mode-desc{color:var(--ink-muted);font-size:12px}.mode-active{border-color:var(--brand);background:var(--brand-tint)}.mode-active .mode-title{color:var(--brand-deep)}.mode-active .mode-desc{color:var(--brand-light)}.package-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.package-card{border:var(--bd) solid var(--ink);border-radius:var(--r-card);background:var(--card);cursor:pointer;box-shadow:var(--hard-xs);flex-direction:column;align-items:center;gap:4px;padding:14px 12px;transition:transform .15s,box-shadow .15s,background .15s;display:flex;position:relative}.package-card:active{box-shadow:none;transform:translate(2px,2px)}.pkg-selected{border-color:var(--brand);background:var(--brand-tint);box-shadow:var(--hard-sm)}.pkg-badge{background:var(--brand);color:var(--on-color);border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:2px 9px;font-size:10px;font-weight:800;position:absolute;top:-9px;right:8px}.pkg-name{color:var(--brand-deep);text-align:center;font-size:14px;font-weight:800;line-height:1.3}.pkg-selected .pkg-name{color:var(--brand-deeper)}.pkg-duration{color:var(--chip-gray);font-size:12px}.pkg-price{color:var(--brand);font-size:15px;font-weight:800}.countup-hint{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);color:var(--chip-gray);border-left:6px solid var(--brand);padding:14px;font-size:13px;line-height:1.5}.overtime-plan{background:var(--chip-green-tint);border:1.5px solid var(--ink);border-radius:var(--r-ctrl);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.plan-name{color:var(--chip-green);font-size:15px;font-weight:800}.plan-type{color:var(--chip-gray);font-size:13px}.plan-action{color:var(--chip-green);font-size:13px;font-weight:700}.delay-row{gap:10px;display:flex}.delay-opt-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-card);background:var(--card);color:var(--brand-deep);cursor:pointer;text-align:center;box-shadow:var(--hard-xs);flex:1;padding:13px 8px;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.delay-opt-btn:active{box-shadow:none;background:var(--brand-tint);transform:translate(2px,2px)}.start-confirm-btn{border:var(--bd-thick) solid var(--ink);border-radius:var(--r-card);background:var(--brand);width:100%;color:var(--on-color);cursor:pointer;letter-spacing:2px;box-shadow:var(--hard-sm);margin-top:6px;padding:15px 0;font-size:17px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.start-confirm-btn:active{box-shadow:none;background:var(--brand-deep);transform:translate(3px,3px)}.tag-edit-row{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.tag-chip{border-radius:var(--r-pill);background:var(--brand-tint);color:var(--brand-deep);border:1.5px solid var(--ink);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:2px 9px;font-size:11px;font-weight:700;overflow:hidden}.tag-removable{cursor:pointer;align-items:center;gap:2px;display:inline-flex}.tag-x{font-size:13px;font-weight:800}.tag-empty{color:var(--ink-faint);font-size:13px}.tag-input-row{gap:8px;display:flex}.tag-input{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);outline:none;flex:1;min-width:0;padding:9px 12px;font-size:14px}.tag-input:focus{border-color:var(--brand)}.tag-add-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand);color:var(--on-color);cursor:pointer;box-shadow:var(--hard-xs);padding:0 16px;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s}.tag-add-btn:active{box-shadow:none;transform:translate(2px,2px)}.tag-suggestions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.sug-label{color:var(--chip-gray);font-size:12px}.tag-sug{cursor:pointer;background:var(--card);color:var(--chip-gray);border-color:var(--ink)}.tag-sug:active{background:var(--brand-tint)}.note-textarea{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);resize:none;box-sizing:border-box;background:var(--card);outline:none;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.note-textarea:focus{border-color:var(--brand)}.confirm-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;animation:.2s confirmFadeIn;display:flex;position:fixed;inset:0}.confirm-content{background:var(--card);border:var(--bd-thick) solid var(--ink);box-shadow:var(--hard-lg);border-radius:20px;width:85%;max-width:320px;padding:24px 20px 20px;animation:.25s confirmPop}.confirm-title{color:var(--ink);text-align:center;margin-bottom:12px;font-size:17px;font-weight:800}.confirm-message{color:var(--chip-gray);text-align:center;word-break:break-word;margin-bottom:20px;font-size:14px;line-height:1.6}.confirm-actions{gap:10px;display:flex}.confirm-cancel{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:12px 0;font-size:15px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.confirm-cancel:active{background:var(--chip-gray-tint);box-shadow:none;transform:translate(2px,2px)}.confirm-ok{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand);color:var(--on-color);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:12px 0;font-size:15px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.confirm-ok:active{box-shadow:none;background:var(--brand-deep);transform:translate(2px,2px)}.confirm-ok-danger{background:var(--brand-deep)}.confirm-ok-danger:active{background:var(--brand-deeper)}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes confirmPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow-x:hidden}body{background-color:var(--bg-page);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background-image:radial-gradient(#e11a1f1a 1.5px,#0000 1.5px);background-size:18px 18px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Helvetica Neue,Helvetica,Arial,sans-serif}.app{background-color:var(--bg-page);background-image:radial-gradient(#e11a1f1a 1.5px,#0000 1.5px);background-size:18px 18px;max-width:600px;min-height:100vh;margin:0 auto;position:relative}.app-header{background:linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%);z-index:100;border-bottom:var(--bd-thick) solid var(--ink);justify-content:space-between;align-items:center;padding:14px 16px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:10px;display:flex}.header-actions{align-items:center;gap:8px;display:flex}.app-title{color:var(--on-color);letter-spacing:1px;text-shadow:1.5px 1.5px #00000038;border-left:4px solid #ffffffe6;padding-left:10px;font-size:18px;font-weight:800}.edit-btn,.add-btn{background:var(--card);border:var(--bd) solid var(--ink);color:var(--brand-deep);border-radius:var(--r-pill);cursor:pointer;box-shadow:var(--hard-xs);padding:7px 16px;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.edit-btn:hover,.add-btn:hover:not(:disabled){background:var(--brand-tint)}.edit-btn-active{background:var(--brand-deep);border-color:var(--ink);color:var(--on-color);box-shadow:2px 2px #ffffff8c}.edit-btn-active:hover{background:var(--brand-deeper)}.add-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.edit-btn:active,.add-btn:active:not(:disabled){background:var(--card);box-shadow:none;transform:translate(2px,2px)}.edit-btn-active:active{background:var(--brand-deep)}.edit-tip{background:var(--chip-amber-tint);color:var(--chip-amber);text-align:center;border-bottom:var(--bd) solid var(--ink);padding:8px 16px;font-size:12px;font-weight:700}.stats-bar{background:var(--card);color:var(--ink-muted);border-bottom:2px solid var(--ink);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:flex}.stats-bar strong{color:var(--brand);font-weight:700}.overtime-count,.overtime-count strong{color:var(--brand-deep)}.toolbar{background:var(--card);border-bottom:2px solid var(--ink);align-items:center;gap:10px;padding:10px 16px;display:flex}.filter-tag{background:var(--brand);color:var(--on-color);border:var(--bd) solid var(--ink);border-radius:var(--r-pill);white-space:nowrap;box-shadow:var(--hard-xs);padding:5px 14px;font-size:13px;font-weight:800}.search-input{border:var(--bd) solid var(--ink);border-radius:var(--r-pill);background:var(--card);outline:none;flex:1;min-width:0;padding:8px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #e11a1f29}.sort-label{color:var(--ink-muted);white-space:nowrap;font-size:13px}.timer-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:14px 16px;display:grid}.empty-state{text-align:center;color:var(--chip-gray);background:var(--card);border:var(--bd) dashed var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);grid-column:1/-1;padding:44px 20px}.empty-icon{margin-bottom:12px;font-size:56px;line-height:1}.empty-state p{color:var(--ink);margin-bottom:4px;font-size:16px;font-weight:700}.empty-hint{color:var(--chip-gray)!important;font-size:13px!important;font-weight:500!important}.bottom-spacer{height:24px}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--ink-faint);border-radius:2px}@supports (padding-top:env(safe-area-inset-top)){.app-header{padding-top:calc(14px + env(safe-area-inset-top))}.bottom-spacer{height:calc(24px + env(safe-area-inset-bottom))}}.add-modal-overlay{z-index:1002;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.add-modal-content{background:var(--card);border:var(--bd-thick) solid var(--ink);width:85%;max-width:340px;box-shadow:var(--hard-lg);border-radius:20px;padding:24px 20px 20px;animation:.25s modalIn}@keyframes modalIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.add-modal-title{color:var(--ink);text-align:center;margin-bottom:18px;font-size:18px;font-weight:800}.add-modal-field{margin-bottom:16px}.add-modal-label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.add-modal-input{border:var(--bd-thick) solid var(--brand);border-radius:var(--r-ctrl);text-transform:uppercase;text-align:center;letter-spacing:2px;width:100%;color:var(--brand-deep);background:var(--card);outline:none;padding:12px 14px;font-size:20px;font-weight:800}.add-modal-input::placeholder{color:var(--ink-faint);letter-spacing:0;font-weight:400}.add-modal-hint{color:var(--chip-gray);text-align:center;margin-top:6px;font-size:12px;display:block}.add-modal-actions{gap:10px;margin-top:8px;display:flex}.add-modal-cancel{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:12px 0;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s}.add-modal-cancel:active{box-shadow:none;transform:translate(2px,2px)}.add-modal-confirm{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand);color:var(--on-color);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:12px 0;font-size:15px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.add-modal-confirm:active{box-shadow:none;background:var(--brand-deep);transform:translate(2px,2px)}@media (width<=380px){.timer-grid{gap:10px;padding:10px}.time-display{font-size:22px!important}.timer-name{font-size:17px!important}}.page{display:none}.page-active{display:block}.app{padding-bottom:calc(56px + env(safe-area-inset-bottom))}.bp-subbar{background:var(--card);border-bottom:var(--bd) solid var(--ink);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.bp-segment{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-pill);gap:3px;padding:3px;display:flex}.bp-seg-btn{border-radius:var(--r-pill);color:var(--chip-gray);cursor:pointer;background:0 0;border:none;padding:6px 18px;font-size:14px;font-weight:700;transition:all .15s}.bp-seg-active{background:var(--brand);color:var(--on-color);font-weight:800}.bp-count{color:var(--ink);background:var(--card);border:1.5px solid var(--ink);border-radius:var(--r-pill);white-space:nowrap;padding:2px 10px;font-size:12px;font-weight:700}.bp-search{padding:8px 16px 4px}.bp-search-input{box-sizing:border-box;border:var(--bd) solid var(--ink);border-radius:var(--r-pill);background:var(--card);width:100%;color:var(--ink);outline:none;padding:9px 16px;font-size:14px;transition:border-color .15s,box-shadow .15s}.bp-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.bp-chip-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:6px 16px;display:flex;overflow-x:auto}.bp-chip-row::-webkit-scrollbar{display:none}.bp-chip{border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;box-shadow:1.5px 1.5px 0 var(--ink);white-space:nowrap;flex:none;padding:5px 14px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s}.bp-chip:active{box-shadow:none;transform:translate(1.5px,1.5px)}.bp-chip-on{background:var(--brand);border-color:var(--ink);color:var(--on-color);font-weight:800}.bp-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:14px 16px;display:grid}.bp-card{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);flex-direction:column;transition:transform .15s,box-shadow .15s;display:flex;overflow:hidden}.bp-card:active{box-shadow:none;transform:translate(3px,3px)}.bp-thumb{aspect-ratio:1;background:var(--bg-page);border-bottom:var(--bd) solid var(--ink);justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.bp-thumb img{object-fit:cover;width:100%;height:100%}.bp-thumb-ph{opacity:.5;font-size:40px}.bp-done-badge{background:var(--chip-green);color:var(--on-color);border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:2px 9px;font-size:11px;font-weight:800;position:absolute;top:8px;left:8px}.bp-info{padding:8px 10px 4px}.bp-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}.bp-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;display:flex}.bp-src{border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:1px 8px;font-size:11px;font-weight:700}.bp-src-upload{background:var(--brand-tint);color:var(--brand-deep)}.bp-src-xiaohongshu{background:var(--chip-pink-tint);color:var(--chip-pink)}.bp-src-douyin{background:var(--ink);color:var(--card)}.bp-note{color:var(--chip-gray);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:11px;overflow:hidden}.bp-spent{border-radius:var(--r-pill);background:var(--chip-green-tint);border:1.5px solid var(--ink);color:var(--chip-green);white-space:nowrap;padding:1px 8px;font-size:11px;font-weight:800}.bp-actions{flex-wrap:wrap;gap:6px;margin-top:auto;padding:8px 10px 10px;display:flex}.bp-act{white-space:nowrap;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:var(--r-ctrl);cursor:pointer;box-shadow:1.5px 1.5px 0 var(--ink);flex:auto;padding:6px 0;font-size:12px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.bp-act:active{box-shadow:none;background:var(--brand-tint);transform:translate(1.5px,1.5px)}.bp-act-open{padding:6px 10px}.bp-act-open.bp-act-open-xhs{background:var(--chip-pink-tint);color:var(--chip-pink)}.bp-act-open.bp-act-open-douyin{background:var(--ink);color:var(--card)}.bp-act-open:active{background:var(--brand-tint-press);color:var(--ink)}.bp-act-del{background:var(--brand-tint);color:var(--brand-deep);padding:6px 10px}.bp-act-del:active{background:var(--card)}.bp-name-input{text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;font-size:16px!important;font-weight:600!important}.bp-link-input{text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;text-align:left!important;font-size:14px!important;font-weight:500!important}.bp-src-toggle{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);gap:3px;padding:3px;display:flex}.bp-src-opt{color:var(--chip-gray);cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;padding:9px 0;font-size:14px;font-weight:700;transition:all .15s}.bp-src-opt-active{background:var(--brand);color:var(--on-color)}.bp-preview{object-fit:contain;border-radius:var(--r-ctrl);border:var(--bd) solid var(--ink);width:100%;max-height:200px;margin-top:10px}.add-modal-field input[type=file]{width:100%;color:var(--ink);font-size:13px}.bp-thumb{cursor:pointer}.bp-fab{right:20px;bottom:calc(56px + env(safe-area-inset-bottom) + 20px);border:2.5px solid var(--ink);background:var(--brand);width:56px;height:56px;color:var(--on-color);box-shadow:4px 4px 0 var(--ink);cursor:pointer;z-index:300;border-radius:50%;justify-content:center;align-items:center;font-size:32px;font-weight:400;line-height:1;transition:transform .15s,box-shadow .15s,background .15s;display:flex;position:fixed}.bp-fab:active{box-shadow:none;background:var(--brand-deep);transform:translate(4px,4px)}.src-picker{background:var(--card);border:var(--bd-thick) solid var(--ink);box-shadow:var(--hard-lg);border-radius:20px;width:85%;max-width:340px;padding:24px 20px 16px;animation:.25s modalIn}.src-pick-card{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);cursor:pointer;text-align:left;width:100%;box-shadow:var(--hard-xs);flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:12px;padding:16px;transition:transform .15s,box-shadow .15s,background .15s;display:flex}.src-pick-card:active{box-shadow:none;background:var(--brand-tint);transform:translate(2px,2px)}.src-pick-icon{margin-bottom:4px;font-size:28px}.src-pick-label{color:var(--ink);font-size:16px;font-weight:800}.src-pick-desc{color:var(--chip-gray);font-size:12px}.src-pick-cancel{width:100%;color:var(--chip-gray);cursor:pointer;background:0 0;border:none;padding:8px 0 2px;font-size:14px;font-weight:700}.src-back{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--brand);border-radius:var(--r-pill);cursor:pointer;transition:var(--ease-pop);margin:0 auto 14px;padding:6px 14px;font-size:13px;font-weight:600;display:block}.src-back:active{box-shadow:none;transform:translate(2px,2px)}.bp-fetch-btn{border:var(--bd) dashed var(--ink);width:100%;box-shadow:var(--hard-xs);background:var(--brand-tint);color:var(--brand-deep);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);padding:10px 0;font-size:13px;font-weight:600}.bp-fetch-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-fetch-btn:disabled{opacity:.6;cursor:not-allowed}.bp-lightbox{z-index:1003;background:#000000eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.bp-lightbox-bar{z-index:2;gap:8px;display:flex;position:absolute;top:12px;right:12px}.bp-lightbox-bar button{border:var(--bd) solid var(--ink);background:var(--card);width:40px;height:40px;color:var(--ink);cursor:pointer;box-shadow:3px 3px 0 var(--brand);border-radius:50%;font-size:20px;font-weight:800;transition:transform .15s,box-shadow .15s}.bp-lightbox-bar button:active{box-shadow:none;transform:translate(3px,3px)}.bp-lightbox-img{border-radius:var(--r-ctrl);border:var(--bd-thick) solid var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;max-width:92%;max-height:88%}.bp-diff{border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:1px 8px;font-size:11px;font-weight:700}.bp-diff-easy{background:var(--chip-green-tint);color:var(--chip-green)}.bp-diff-medium{background:var(--chip-amber-tint);color:var(--chip-amber)}.bp-diff-hard{background:var(--brand-tint);color:var(--brand-deep)}.bp-diff-none{background:var(--chip-gray-tint);color:var(--chip-gray)}.bp-ip{border:1.5px solid var(--ink);border-radius:var(--r-pill);background:var(--brand-tint);color:var(--brand-deep);padding:1px 8px;font-size:11px;font-weight:700}.bp-diff-chips{gap:8px;display:flex}.bp-diff-chip{border:var(--bd) solid var(--ink);background:var(--card);color:var(--ink);border-radius:var(--r-ctrl);cursor:pointer;box-shadow:var(--hard-xs);flex:1;padding:8px 0;font-size:13px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.bp-diff-chip:active{box-shadow:none;transform:translate(2px,2px)}.bp-diff-chip.bp-diff-easy.bp-diff-on{background:var(--chip-green);color:var(--on-color)}.bp-diff-chip.bp-diff-medium.bp-diff-on{background:var(--chip-amber);color:var(--on-color)}.bp-diff-chip.bp-diff-hard.bp-diff-on{background:var(--brand-deep);color:var(--on-color)}.bp-diff-chip.bp-diff-none.bp-diff-on{background:var(--chip-gray);color:var(--on-color)}.bp-detail{background:var(--bg-page);z-index:1002;flex-direction:column;animation:.22s modalIn;display:flex;position:fixed;inset:0}.bp-detail-head{background:var(--card);border-bottom:var(--bd-thick) solid var(--ink);justify-content:center;align-items:center;padding:12px 16px;display:flex;position:relative}.bp-detail-close{border:var(--bd) solid var(--ink);background:var(--card);width:34px;height:34px;color:var(--ink);cursor:pointer;box-shadow:2px 2px 0 var(--ink);border-radius:50%;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:transform .15s,box-shadow .15s;display:flex;position:absolute;left:12px}.bp-detail-close:active{box-shadow:none;transform:translate(2px,2px)}.bp-detail-title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;max-width:70%;margin:0;font-size:16px;font-weight:800;overflow:hidden}.bp-detail-body{flex:1;padding:16px;overflow-y:auto}.bp-detail-img{aspect-ratio:1;background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);width:100%;max-height:320px;box-shadow:var(--hard-sm);cursor:pointer;justify-content:center;align-items:center;margin-bottom:18px;display:flex;position:relative;overflow:hidden}.bp-detail-img img{object-fit:contain;width:100%;height:100%}.bp-detail-img-hint{background:var(--card);color:var(--ink);border:1.5px solid var(--ink);border-radius:var(--r-pill);padding:2px 9px;font-size:11px;font-weight:700;position:absolute;bottom:8px;right:8px}.bp-detail-row{align-items:center;gap:12px;margin-bottom:14px;display:flex}.bp-detail-label{color:var(--chip-gray);flex:0 0 64px;font-size:13px;font-weight:700}.bp-detail-input{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);color:var(--ink);outline:none;flex:1;padding:9px 12px;font-size:14px;text-transform:none!important;letter-spacing:0!important}.bp-detail-input:focus{border-color:var(--brand)}.bp-grid-inputs{flex:1;align-items:center;gap:8px;display:flex}.bp-grid-in{text-align:center;flex:0 0 70px;width:70px}.bp-grid-x{color:var(--chip-gray);font-weight:800}.bp-beads{color:var(--brand);white-space:nowrap;font-size:13px;font-weight:800}.bp-detail-timer{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);text-align:center;margin-bottom:16px;padding:16px}.bp-timer-label{color:var(--chip-gray);margin-bottom:6px;font-size:13px;font-weight:600}.bp-timer-display{color:var(--brand);font-variant-numeric:tabular-nums;margin-bottom:12px;font-size:32px;font-weight:800}.bp-timer-btns{justify-content:center;gap:10px;display:flex}.bp-timer-btn{border:var(--bd) solid var(--ink);background:var(--card);max-width:120px;color:var(--ink);border-radius:var(--r-ctrl);cursor:pointer;white-space:nowrap;box-shadow:var(--hard-xs);flex:1;padding:9px 0;font-size:14px;font-weight:800;transition:transform .15s,box-shadow .15s,background .15s}.bp-timer-btn.bp-timer-start{background:var(--card);color:var(--ink)}.bp-timer-btn.bp-timer-start:active{background:var(--brand-tint);color:var(--ink)}.bp-timer-btn.bp-timer-finish{background:var(--brand);color:var(--on-color)}.bp-timer-btn.bp-timer-finish:active{background:var(--brand-deep);color:var(--on-color)}.bp-timer-btn:disabled{opacity:.45;cursor:default}.bp-timer-btn:disabled:active{box-shadow:var(--hard-xs);transform:none}.bp-timer-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-detail-spent{background:var(--card);border:var(--bd) solid var(--ink);box-shadow:var(--hard-sm);border-radius:var(--r-card);text-align:left;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;display:flex}.bp-spent-medal{background:var(--chip-green);border:var(--bd) solid var(--ink);width:44px;height:44px;box-shadow:var(--hard-xs);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:21px;line-height:1;display:flex}.bp-spent-text{min-width:0}.bp-spent-value{font-variant-numeric:tabular-nums;align-items:baseline;gap:7px;display:flex}.bp-spent-label{color:var(--ink-muted);flex:none;font-size:12px;font-weight:700}.bp-spent-num{color:var(--chip-green);font-size:20px;font-weight:800}.bp-spent-none{color:var(--ink-muted);font-size:16px;font-weight:800}.bp-spent-sub{color:var(--ink-muted);margin-top:3px;font-size:12px;font-weight:600}.bp-detail-actions{gap:10px;display:flex}.bp-detail-done{border:var(--bd) solid var(--ink);box-shadow:var(--hard-sm);background:var(--brand);color:var(--on-color);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);flex:1;padding:12px 0;font-size:15px;font-weight:700}.bp-detail-done:active{box-shadow:none;transform:translate(3px,3px)}.bp-detail-open{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);flex:none;padding:12px 14px;font-size:14px;font-weight:600}.bp-detail-open.bp-detail-open-xhs{background:var(--chip-pink-tint);color:var(--chip-pink)}.bp-detail-open.bp-detail-open-douyin{background:var(--ink);color:var(--card)}.bp-detail-open:active{box-shadow:none;transform:translate(2px,2px)}.bp-detail-del{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--brand-deep);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);flex:none;padding:12px 14px;font-size:14px;font-weight:600}.bp-detail-del:active{box-shadow:none;transform:translate(2px,2px)}.bp-cover-edit{margin-bottom:16px;position:relative}.bp-cover-edit-btn{border:var(--bd) dashed var(--ink);width:100%;box-shadow:var(--hard-xs);background:var(--brand-tint);color:var(--brand-deep);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);padding:9px 0;font-size:13px;font-weight:600}.bp-cover-edit-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-cover-edit-menu{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-md);flex-direction:column;gap:8px;margin-top:8px;padding:10px;display:flex}.bp-cover-edit-item{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--ink);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);padding:11px 0;font-size:14px;font-weight:600}.bp-cover-edit-item:active{box-shadow:none;background:var(--brand-tint);transform:translate(2px,2px)}.bp-cover-edit-cancel{color:var(--chip-gray);background:var(--chip-gray-tint)}.bp-cover-edit-item:disabled{opacity:.6;cursor:not-allowed}.bp-menu-btn{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--ink);cursor:pointer;border-radius:var(--r-ctrl);transition:var(--ease-pop);padding:3px 8px;font-size:19px;line-height:1}.bp-menu-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-drawer-mask{z-index:900;background:#00000073;animation:.2s maskIn;position:fixed;inset:0}@keyframes maskIn{0%{opacity:0}to{opacity:1}}.bp-drawer{background:var(--card);z-index:901;width:78%;max-width:320px;box-shadow:4px 0 0 var(--ink);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.bp-drawer.open{transform:translate(0)}.bp-drawer-head{color:var(--ink);border-bottom:var(--bd-thick) solid var(--ink);justify-content:space-between;align-items:center;padding:16px 16px 12px;font-size:17px;font-weight:700;display:flex}.bp-drawer-close{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--ink);cursor:pointer;border-radius:var(--r-pill);width:30px;height:30px;transition:var(--ease-pop);font-size:15px;line-height:1}.bp-drawer-close:active{box-shadow:none;transform:translate(2px,2px)}.bp-std-tabs{border-bottom:var(--bd-thick) solid var(--ink);gap:6px;padding:12px 16px;display:flex}.bp-std-btn{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--card);color:var(--chip-gray);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);flex:1;padding:8px 0;font-size:13px;font-weight:600}.bp-std-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-std-on{background:var(--brand);border-color:var(--ink);color:var(--on-color)}.bp-drawer-list{flex:1;padding:8px 10px 16px;overflow-y:auto}.cat-row{background:var(--card);border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);border-radius:var(--r-card);cursor:pointer;align-items:center;gap:8px;margin:4px 0;padding:13px 12px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.cat-row:active{box-shadow:none;transform:translate(2px,2px)}.cat-row.cat-on{background:var(--brand-tint);border-color:var(--brand)}.cat-row.dragging{opacity:.55;box-shadow:var(--hard-md)}.cat-row.drag-over{border-top:var(--bd) solid var(--brand)}.cat-handle{color:var(--chip-gray);opacity:.65;letter-spacing:-2px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;padding:0 2px;font-size:18px}.cat-name{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;flex:1;padding:0;font-size:15px;font-weight:600}.cat-count{text-align:center;min-width:26px;color:var(--brand);background:var(--brand-tint);border:1.5px solid var(--ink);border-radius:var(--r-pill);flex:none;padding:2px 8px;font-size:12px;font-weight:700}.cat-del{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--brand-tint);color:var(--brand-deep);border-radius:var(--r-ctrl);cursor:pointer;width:28px;height:28px;transition:var(--ease-pop);flex:none;font-size:15px;line-height:1}.cat-del:active{box-shadow:none;transform:translate(2px,2px)}.cat-add-row{gap:8px;margin-top:12px;display:flex}.cat-add-input{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);color:var(--ink);outline:none;flex:1;padding:9px 12px;font-size:14px}.cat-add-input:focus{border-color:var(--brand)}.cat-add-btn{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);background:var(--brand);color:var(--on-color);border-radius:var(--r-ctrl);cursor:pointer;transition:var(--ease-pop);flex:none;padding:0 16px;font-size:14px;font-weight:600}.cat-add-btn:active{box-shadow:none;transform:translate(2px,2px)}.bp-drawer-hint{text-align:center;color:var(--chip-gray);margin-top:20px;padding:0 16px;font-size:13px}.add-modal-select,.bp-detail-select{box-sizing:border-box;border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);width:100%;color:var(--ink);outline:none;flex:1;padding:9px 12px;font-size:14px}.add-modal-select:focus,.bp-detail-select:focus{border-color:var(--brand)}.save-modal-content{background:var(--card);border:var(--bd-thick) solid var(--ink);box-shadow:var(--hard-lg);border-radius:var(--r-card);flex-direction:column;gap:12px;width:92vw;max-width:480px;max-height:86vh;padding:18px;display:flex;overflow:hidden}.save-modal-title{color:var(--ink);text-align:center;margin:0;font-size:17px;font-weight:700}.save-modal-status{color:var(--chip-gray);text-align:center;min-height:18px;font-size:13px}.save-modal-progress{color:var(--chip-gray);text-align:center;font-size:13px}.save-modal-list{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.save-modal-empty{text-align:center;color:var(--chip-gray);padding:24px 0;font-size:14px}.save-cand-toolbar{justify-content:flex-end;align-items:center;padding-bottom:2px;display:flex}.save-cand-all{color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.save-cand-check,.save-cand-all input{width:20px;height:20px;accent-color:var(--brand);cursor:pointer;flex:none;margin:0}.save-cand-check:disabled,.save-cand-all input:disabled{cursor:default}.save-cand{border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);border-radius:var(--r-ctrl);background:var(--card);cursor:pointer;transition:var(--ease-pop);align-items:center;gap:10px;padding:10px;display:flex}.save-cand:active{box-shadow:none;transform:translate(2px,2px)}.save-cand.save-cand-on{border-color:var(--brand);background:var(--brand-tint)}.save-cand-thumb{border-radius:var(--r-ctrl);background:var(--card);border:var(--bd) solid var(--ink);flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex;overflow:hidden}.save-cand-thumb img{object-fit:cover;width:100%;height:100%}.save-cand-thumb-fallback{color:var(--chip-gray);text-align:center;padding:0 4px;font-size:11px}.save-cand-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.save-cand-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.save-cand-score{color:var(--brand);font-size:13px;font-weight:700}.save-cand-badge{border:1.5px solid var(--ink);border-radius:var(--r-pill);background:var(--brand);color:var(--on-color);padding:2px 6px;font-size:11px;font-weight:700}.save-cand-badge-muted{background:var(--chip-gray-tint);color:var(--chip-gray)}.save-cand-reasons{color:var(--chip-gray);font-size:11px;line-height:1.4}.save-modal-actions{gap:10px;display:flex}.save-modal-actions button{border-radius:var(--r-ctrl);border:var(--bd) solid var(--ink);box-shadow:var(--hard-xs);cursor:pointer;transition:var(--ease-pop);flex:1;padding:11px 0;font-size:14px;font-weight:600}.save-modal-actions button:active{box-shadow:none;transform:translate(2px,2px)}.save-modal-cancel{background:var(--chip-gray-tint);color:var(--chip-gray)}.save-modal-confirm{background:var(--brand);color:var(--on-color)}.save-modal-confirm:disabled,.save-modal-cancel:disabled{opacity:.5}.bp-detail-extract{border:var(--bd) solid var(--ink);width:100%;box-shadow:var(--hard-sm);border-radius:var(--r-ctrl);background:var(--brand);color:var(--on-color);cursor:pointer;transition:var(--ease-pop);padding:11px 0;font-size:14px;font-weight:600}.bp-detail-extract:active{box-shadow:none;transform:translate(3px,3px)}.bp-detail-extract-hint{color:var(--chip-gray);margin-top:6px;font-size:11px;line-height:1.5;display:block}.info-page{min-height:100%}.info-chip-row{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:8px;padding:8px 16px 4px;display:flex;overflow-x:auto}.info-chip-row::-webkit-scrollbar{display:none}.info-chip{border:1.5px solid var(--ink);background:var(--card);color:var(--ink);border-radius:var(--r-pill);cursor:pointer;box-shadow:1.5px 1.5px 0 var(--ink);white-space:nowrap;flex:none;padding:6px 16px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s}.info-chip:active{box-shadow:none;transform:translate(1.5px,1.5px)}.info-chip-on{background:var(--brand);color:var(--on-color);font-weight:800}.info-body{padding:12px 16px 16px}.info-empty{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);text-align:center;padding:28px 20px}.info-empty-icon{margin-bottom:10px;font-size:44px;line-height:1}.info-empty-title{color:var(--ink);font-size:15px;font-weight:800}.info-empty-hint{color:var(--chip-gray);margin:8px 0 0;font-size:12px;line-height:1.7}.info-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.info-card{background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);flex-direction:column;padding:10px;display:flex}.info-card-thumb{border:1.5px solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand-tint);justify-content:center;align-items:center;height:96px;font-size:30px;display:flex;overflow:hidden}.info-card-thumb img{object-fit:cover;width:100%;height:100%;display:block}.info-card-title{color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:13px;font-weight:800;display:-webkit-box;overflow:hidden}.info-card-desc{color:var(--chip-gray);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:3px;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.lvg-overlay{z-index:1100;background:#00000080;justify-content:center;align-items:center;animation:.2s lvgFadeIn;display:flex;position:fixed;inset:0}.lvg-content{background:var(--card);border:var(--bd-thick) solid var(--ink);box-shadow:var(--hard-lg);border-radius:20px;flex-direction:column;width:88%;max-width:330px;max-height:82vh;padding:18px 16px 14px;animation:.25s lvgPop;display:flex}.lvg-head{flex:none;align-items:center;gap:10px;display:flex}.lvg-title{color:var(--ink);margin:0;font-size:17px;font-weight:800}.lvg-close{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);width:30px;height:30px;color:var(--ink);cursor:pointer;box-shadow:var(--hard-xs);transition:var(--ease-pop);flex:none;justify-content:center;align-items:center;margin-left:auto;font-size:14px;font-weight:800;line-height:1;display:flex}.lvg-close:active{box-shadow:none;background:var(--brand-tint-press);transform:translate(2px,2px)}.lvg-sub{color:var(--chip-gray);flex:none;margin:6px 0 10px;font-size:12px}.lvg-list{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.lvg-row{border-radius:10px;grid-template-columns:16px 34px 1fr auto;align-items:center;gap:6px;padding:7px 8px;font-size:13px;display:grid}.lvg-check{color:var(--chip-green);text-align:center;font-size:12px;font-weight:800}.lvg-lv{color:var(--chip-gray);font-variant-numeric:tabular-nums;font-size:11px;font-weight:800}.lvg-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.lvg-row-done .lvg-name{color:var(--chip-gray)}.lvg-req{color:var(--chip-gray);white-space:nowrap;font-size:11px;font-weight:700}.lvg-row-cur{background:var(--brand-tint);box-shadow:inset 3px 0 0 var(--brand)}.lvg-row-cur .lvg-name,.lvg-row-cur .lvg-lv,.lvg-row-cur .lvg-req{color:var(--brand);font-weight:800}.lvg-now{border-top:var(--bd) dashed var(--brand-tint);color:var(--ink);flex:none;margin-top:10px;padding-top:10px;font-size:12px;font-weight:700;line-height:1.5}.lvg-note{color:var(--chip-amber);flex:none;margin-top:6px;font-size:11px;line-height:1.5}@keyframes lvgFadeIn{0%{opacity:0}to{opacity:1}}@keyframes lvgPop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.mine-page{padding:0}.mine-body{padding:16px 16px 24px}.mine-section-title{background:var(--ink);color:var(--on-color);letter-spacing:1px;border-radius:var(--r-pill);margin-bottom:8px;padding:2px 10px;font-size:11px;font-weight:800;display:inline-block}.mine-card{background:var(--card);border:var(--bd-thick) solid var(--ink);border-radius:var(--r-card);box-shadow:var(--hard-sm);margin-bottom:16px;padding:14px}.mine-card:last-child{margin-bottom:0}.mine-app-card{align-items:center;gap:14px;display:flex}.mine-logo{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--brand-tint);width:62px;height:62px;box-shadow:var(--hard-xs);flex:none;justify-content:center;align-items:center;display:flex;overflow:hidden}.mine-logo img{width:100%;height:100%;display:block}.mine-logo-emoji{font-size:32px;line-height:1}.mine-app-info{min-width:0}.mine-app-name{color:var(--ink);margin:0 0 5px;font-size:17px;font-weight:800}.mine-app-version{color:var(--ink);background:var(--card);border:var(--bd) solid var(--ink);border-radius:var(--r-pill);margin-bottom:6px;padding:1px 9px;font-size:11px;font-weight:700;display:inline-block}.mine-app-desc{color:var(--chip-gray);margin:0;font-size:12px;line-height:1.5}.mine-stats{grid-template-columns:1fr 1fr;gap:10px;display:grid}.mine-stat{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);box-shadow:var(--hard-xs);background:var(--card-soft);padding:10px 12px}.mine-stat-num{font-variant-numeric:tabular-nums;font-size:21px;font-weight:800;line-height:1.2}.mine-stat-duration .mine-stat-num{font-size:17px}.mine-stat-label{color:var(--chip-gray);margin-top:3px;font-size:11px;font-weight:700}.mine-stat-brand{background:var(--brand-tint)}.mine-stat-brand .mine-stat-num{color:var(--brand)}.mine-stat-green{background:var(--chip-green-tint)}.mine-stat-green .mine-stat-num{color:var(--chip-green)}.mine-stat-amber{background:var(--chip-amber-tint)}.mine-stat-amber .mine-stat-num{color:var(--chip-amber)}.mine-stat-gray{background:var(--chip-gray-tint)}.mine-stat-gray .mine-stat-num{color:var(--chip-gray)}.mine-stat-level{background:var(--card);cursor:pointer;transition:var(--ease-pop);grid-column:1/-1}.mine-stat-level:active{box-shadow:none;background:var(--brand-tint);transform:translate(2px,2px)}.mine-level-head{align-items:center;gap:8px;display:flex}.mine-level-badge{background:var(--brand);color:var(--on-color);border:1.5px solid var(--ink);border-radius:var(--r-pill);letter-spacing:.02em;flex:none;padding:2px 8px;font-size:12px;font-weight:800}.mine-level-title{color:var(--ink);white-space:nowrap;font-size:15px;font-weight:800}.mine-level-remain{min-width:0;color:var(--chip-gray);text-align:right;white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:11px;font-weight:700;overflow:hidden}.mine-level-bar{border:var(--bd) solid var(--ink);border-radius:var(--r-pill);background:var(--chip-gray-tint);height:12px;margin-top:8px;overflow:hidden}.mine-level-fill{background:var(--brand);border-radius:var(--r-pill);height:100%;transition:width .35s;display:block}.mine-level-foot{color:var(--ink-muted);align-items:center;margin-top:6px;font-size:11px;font-weight:600;display:flex}.mine-level-chevron{color:var(--brand);margin-left:auto;font-size:15px;font-weight:800;line-height:1}.mine-backup-desc{color:var(--chip-gray);margin:0 0 12px;font-size:12px;line-height:1.6}.mine-btn-row{gap:10px;display:flex}.mine-btn{border:var(--bd) solid var(--ink);border-radius:var(--r-ctrl);background:var(--card);color:var(--ink);cursor:pointer;box-shadow:var(--hard-xs);transition:var(--ease-pop);flex:1;padding:12px 0;font-size:14px;font-weight:800}.mine-btn:active{box-shadow:none;background:var(--brand-tint-press);transform:translate(2px,2px)}.mine-btn-primary{background:var(--brand);color:var(--on-color)}.mine-btn-primary:active{background:var(--brand-deep)}.mine-btn:disabled{opacity:.55;cursor:not-allowed}.mine-btn:disabled:active{box-shadow:var(--hard-xs);background:var(--card);transform:none}.mine-btn-primary:disabled:active{background:var(--brand)}.bottom-tab-bar{background:var(--card);border-top:var(--bd-thick) solid var(--ink);z-index:200;width:100%;max-width:600px;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-item{cursor:pointer;color:var(--chip-gray);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 0 6px;font-size:11px;transition:color .15s,background .15s;display:flex;position:relative}.tab-item+.tab-item:before{content:"";width:var(--bd);background:var(--ink);position:absolute;top:0;bottom:0;left:0}.tab-item-active{color:var(--brand);background:var(--brand-tint);box-shadow:inset 0 3px 0 var(--ink)}.tab-item:active{background:var(--brand-tint)}.tab-item:active .tab-icon{transform:scale(.86)}.tab-icon{font-size:22px;line-height:1;transition:transform .12s}.tab-label{font-weight:700}
