:root{--mint:#86D9C1;--mint-ink:#285E50;--mint-soft:#EAF6F0;--peach:#FFB98A;--paper:#FAFAF7;--ink:#333333;--muted:#6F7974;--line:#E5EAE4;--soft-shadow:0 8px 30px rgba(57,85,68,.05);--ease:cubic-bezier(.22,.61,.36,1)}
body{background:var(--paper)!important;color:var(--ink);font-family:ui-rounded,-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans SC",sans-serif;font-weight:400}
body::before,body::after,.sidebar::before,.sidebar::after,.goal-card::before,.goal-card::after,.focus-card::before,.focus-card::after,.stat-card::before,.stat-card::after{display:none!important}
.sidebar{width:240px;background:rgba(250,250,247,.85);border-right:1px solid var(--line);box-shadow:none!important}
.main{margin-left:0;padding:44px 48px;max-width:1420px;min-width:0}
.logo-icon,.auth-logo,.logo-icon:hover,.fab,.fab-desktop{background:var(--mint)!important;color:var(--mint-ink)!important;box-shadow:none!important;border-radius:18px}
.logo-text,.auth-title{background:none!important;-webkit-text-fill-color:var(--ink);color:var(--ink);font-weight:600}
.logo-sub,.page-subtitle,.form-hint,.goal-phases,.task-time,.stat-label,.cal-weekdays,.empty-text{color:var(--muted)!important}
.page-title{font-weight:600;letter-spacing:-.5px;color:var(--ink);font-size:28px}
.nav-item{border-radius:16px;color:var(--muted);font-weight:400}
.nav-item.active{background:var(--mint-soft);color:var(--mint-ink)}
.nav-item.active::before{background:var(--mint);border-radius:10px}
.nav-item:hover{background:#F0F5EE;transform:none}
.user-card,.auth-card,.goal-card,.stat-card,.chart-card,.task-panel,.modal{background:#FFFFFF;border:1px solid var(--line);border-radius:24px;box-shadow:var(--soft-shadow)!important}
.auth-card{backdrop-filter:blur(14px)}
.page-header{margin-bottom:28px}
.btn-primary,.task-action-btn.start{background:var(--mint)!important;color:var(--mint-ink)!important;border:1px solid transparent;border-radius:16px;box-shadow:none!important;font-weight:600;min-height:44px}
.btn-primary:hover{background:#A0E1CE!important;transform:translateY(-1px);box-shadow:var(--soft-shadow)!important}
.btn-secondary,.btn-light,.goal-more-btn,.modal-close{background:#F2F5F0!important;color:var(--mint-ink)!important;border-radius:16px}
button,[role=button],[role=checkbox]{transition:transform .2s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease)}
button:active,[role=button]:active{transform:scale(.96)!important}
:focus-visible{outline:2px solid var(--mint-ink)!important;outline-offset:4px}
.form-input,.form-textarea,.home-goal-input{background:#FDFEFC;border:1px solid #DBE5DD!important;border-radius:18px;color:var(--ink);box-shadow:none}
.form-input:focus,.form-textarea:focus,.home-goal-input:focus{border-color:#65AE98!important;box-shadow:0 0 0 5px rgba(134,217,193,.15)!important;outline:none}
.form-label{font-weight:500;color:var(--ink)}
.goal-home{min-height:calc(100dvh - 130px);display:flex;flex-direction:column;justify-content:center;align-items:center;max-width:650px;margin:auto;padding:32px 0;text-align:center}
.eyebrow{font-size:12px;letter-spacing:3px;color:var(--mint-ink);margin-bottom:20px}
.home-puzzle{width:64px;height:64px;margin-bottom:20px;background:var(--mint-soft);display:grid;place-items:center;border-radius:24px}
.home-puzzle .puzzle-icon{width:42px;height:42px}
.goal-home h1{font-size:clamp(30px,4vw,44px);font-weight:500;line-height:1.4;letter-spacing:-1px;margin-bottom:16px}
.goal-home p{color:var(--muted);line-height:1.9;font-size:15px;margin-bottom:30px}
.home-goal-input{width:100%;min-height:150px;padding:24px;font:inherit;line-height:1.8;resize:vertical;margin-bottom:16px;transition:box-shadow .4s,border-color .4s}
.home-generate{width:100%;justify-content:center;min-height:56px;font-size:15px}
.history-entry{border:0;background:transparent!important;margin-top:24px;color:var(--muted);font-size:13px;min-height:44px}
.focus-card{background:#EDF6EF!important;box-shadow:none!important;border:1px solid #DDEBE0;color:var(--ink);border-radius:28px;padding:28px;margin-bottom:28px}
.focus-greeting,.focus-task-name{color:var(--ink);font-weight:500}
.focus-subtitle,.focus-progress-text,.focus-task-meta,.focus-task-label,.focus-task-empty .text{color:var(--muted)!important}
.focus-task{background:rgba(255,255,255,.7);border:1px solid #DFEBDD;backdrop-filter:blur(10px);border-radius:22px;box-shadow:none}
.focus-streak-badge,.focus-task-goal,.focus-task-meta .time-badge{background:#FBE9DC;color:#765441;border:0}
.focus-start-btn{background:var(--mint)!important;color:var(--mint-ink)!important;border-radius:16px;box-shadow:none}
.focus-progress-bar,.goal-progress-bar,.cat-bar{background:#E7EDE6}
.focus-progress-fill,.goal-progress-fill,.cat-bar-fill{background:var(--mint)!important;transition:width .7s var(--ease)}
.task-panel{margin-bottom:20px;overflow:hidden}
.panel-header{padding:24px;gap:16px}
.panel-icon,.goal-emoji,.cat-icon{background:#F2F7F0!important;color:var(--mint-ink);border-radius:16px}
.panel-title{font-weight:500}
.panel-stats .num,.goal-progress-text,.stat-value,.orange,.blue,.green,.purple{color:var(--mint-ink)!important}
.panel-body{padding:0 20px 20px}
.task-item{position:relative;background:#FFFFFF;border:1px solid var(--line);border-radius:20px;padding:20px;gap:16px;margin-bottom:16px;box-shadow:0 4px 20px rgba(57,85,68,.025);transition:background .6s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease);overflow:hidden}
.task-item:hover{transform:translateY(-2px);border-color:#CEE5D8;box-shadow:var(--soft-shadow)}
.task-puzzle{width:36px;flex-shrink:0;transition:transform .4s var(--ease);color:#90BFAE}
.task-item:hover .task-puzzle{transform:scale(1.05) rotate(5deg)}
.puzzle-icon{width:100%;height:100%;display:block;overflow:visible}
.puzzle-icon path{stroke:currentColor;stroke-width:1.3;fill:none;stroke-linejoin:round;transition:fill .5s,stroke .5s}
.puzzle-icon.filled path,.lit .puzzle-icon path,.task-item.done .puzzle-icon path{fill:var(--mint);stroke:#65A58F}
.task-name{font-weight:500;color:var(--ink);line-height:1.65}
.task-meta{gap:6px}
.tag{background:#F2F5F0!important;color:#637269!important;font-weight:400;padding:3px 8px;border-radius:12px}
.urgent-high{background:#F9EBDD!important;color:#7B5D4C!important}
.task-duration{color:var(--mint-ink);font-size:12px;padding:6px 10px;background:var(--mint-soft);border-radius:12px;white-space:nowrap}
.task-checkbox{width:28px;height:28px;border-color:#C6D9CD;order:5}
.task-item.done{opacity:1;background:#EEF8F1;border-color:#D1EADC}
.task-item::after{content:'';position:absolute;inset:0;background:rgba(134,217,193,.1);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);pointer-events:none}
.task-item.done::after{transform:scaleX(1)}
.task-item>*{position:relative;z-index:1}
.task-item.done .task-name{color:#708A7B;text-decoration-color:#8EB9A3}
.task-item.done .task-checkbox{background:#86D9C1;border-color:#86D9C1}
.task-item.done .task-checkbox::after{color:var(--mint-ink)}
.task-action-btn.delete,.danger{background:#FBEFEC!important;color:#886662!important}
.goal-card{padding:24px;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.goal-card:hover{transform:translateY(-2px);border-color:#D2E6DB;box-shadow:var(--soft-shadow)}
.goal-name{font-weight:500;font-size:16px;line-height:1.6}
.goal-ring-wrap{display:none}
.goal-progress-bar{height:5px;margin-top:18px}
.goal-tab.active,.tab.active,.unit-option.active,.plan-option.active{background:#FFFFFF!important;color:var(--mint-ink)!important;box-shadow:0 2px 9px rgba(57,85,68,.04)!important}
.goal-footer{font-size:12px;color:var(--muted)}
.growth-links{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.growth-links button{padding:10px 18px;font-size:13px;min-height:44px}
.puzzle-growth{padding:16px 0 24px}
.puzzle-board{display:grid;grid-template-columns:repeat(var(--puzzle-columns),minmax(0,1fr));gap:0;max-width:390px;margin:0 auto;padding:16px;background:#F4F7F1;border-radius:24px;color:#CDDAD0}
.puzzle-cell{display:block;aspect-ratio:1;animation:piece-in .5s var(--ease) both;animation-delay:var(--piece-delay)}
.puzzle-cell.lit{color:#73B69F}
.compact.puzzle-growth{padding:8px 0 0}
.compact .puzzle-board{padding:8px;background:transparent;max-width:240px;margin:0}
.compact .puzzle-cell{max-width:32px}
.growth-caption{text-align:center;color:var(--muted);font-size:14px;margin:20px 0}
.growth-numbers{display:flex;justify-content:center;gap:28px;color:var(--muted);font-size:12px}
.growth-numbers strong{display:block;font-size:22px;font-weight:500;color:var(--mint-ink);margin-bottom:8px}
.complete .puzzle-board{box-shadow:0 0 0 8px rgba(134,217,193,.08);animation:gentle-glow 1.8s ease-out}
.info-modal section{border-top:1px solid var(--line);padding:20px 0}
.info-modal li{line-height:1.8;margin:10px 0;color:var(--muted)}
.flying-piece{position:fixed;width:30px;height:30px;color:var(--mint-ink);pointer-events:none;z-index:20000}
.mobile-nav{background:rgba(250,250,247,.92);backdrop-filter:blur(18px);border-top:1px solid var(--line);box-shadow:none;padding-bottom:env(safe-area-inset-bottom)}
.mobile-nav-inner{max-width:560px;margin:auto;position:relative}
.mobile-nav-item{flex:1;color:var(--muted);position:relative;min-height:66px;border-radius:16px}
.mobile-nav-item.active{color:var(--mint-ink)}
.mobile-nav-item.active::after{content:'';position:absolute;bottom:8px;left:calc(50% - 8px);width:16px;height:3px;background:var(--mint);border-radius:8px}
.mobile-nav-icon{width:22px;height:22px;margin:auto auto 4px;transition:transform .3s var(--ease)}
.mobile-nav-item.active .mobile-nav-icon{transform:translateY(-1px)}
.mobile-nav-icon svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.5;fill:none;stroke-linecap:round;stroke-linejoin:round}
.mobile-nav-item.active svg{fill:#E1F2E9}
.mobile-nav-label{font-size:11px}
.mobile-nav-item.active::after{display:none}
.nav-indicator{position:absolute;bottom:8px;left:0;width:33.333%;height:3px;transition:transform .3s var(--ease);pointer-events:none}
.nav-indicator span{display:block;width:16px;height:3px;border-radius:8px;background:var(--mint);margin:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.result-piece{display:inline-block;width:26px;height:26px;flex-shrink:0;color:#8BBAA7;margin-right:10px}
.phase-task{display:flex;gap:8px;align-items:center;padding:16px;background:#F8FAF5;border-radius:18px;margin-bottom:12px}
.phase-task .task-duration{margin-left:auto}
.phase-num,.result-stat .num{background:var(--mint-soft);color:var(--mint-ink)!important;border-radius:16px}
.phase-title,.result-stat .label{color:var(--ink);font-weight:500}
.stat-trend,.panel-subtitle,.panel-stat .label,.form-group [style*="color"],.form-group [style*="font-size:11px"]{color:var(--muted)!important}
.goal-home .home-puzzle{color:var(--mint-ink)}
.project-slogan{letter-spacing:1px;line-height:1.8;font-size:13px;max-width:100%;text-wrap:balance}
.logo-sub{max-width:158px;white-space:normal;line-height:1.7;font-size:11px;margin-top:6px}
.auth-subtitle{line-height:1.8;text-wrap:balance}
.auth-logo{background:var(--mint-soft)!important;color:var(--mint-ink)!important}
.user-avatar{background:var(--mint-soft)!important;color:var(--mint-ink)!important}
.nav-item.active{box-shadow:none!important}
.logo-icon svg{width:26px;height:26px}
.fab-desktop{width:48px;height:48px;background:var(--mint-soft)!important}
.modal-overlay{background:rgba(57,74,62,.22);backdrop-filter:blur(5px);transition:opacity .3s var(--ease)}
.modal-overlay.show .modal{animation:dialog-in .3s var(--ease)}
.modal-title{font-weight:500}
.modal-header{border-bottom-color:var(--line)}
.mode-card{border-radius:20px;border-color:var(--line);background:#FCFDFB;box-shadow:none}
.mode-card.active{border-color:#9CCEB7;background:var(--mint-soft);box-shadow:none}
.analyzing-icon{animation:none!important;width:60px;height:60px;margin:0 auto 24px;color:var(--mint-ink)}
.analyzing-title{font-weight:500}
.analyzing{padding:40px 8px}
.analyzing-particles{position:relative;height:38px;width:200px;margin:0 auto;overflow:hidden}
.analyzing-particles span{position:absolute;left:var(--dot-x);top:5px;width:4px;height:4px;background:#9BCDAD;border-radius:50%;animation:gather-dot 3s var(--ease) infinite;animation-delay:var(--dot-delay)}
@keyframes gather-dot{0%{opacity:0;transform:translate(0,0)}30%{opacity:.65}85%,100%{opacity:0;transform:translate(var(--dot-move),25px) scale(.3)}}
.soft-loading{height:6px;border-radius:20px;max-width:260px;margin:24px auto;background:linear-gradient(90deg,#EAF6F0,#86D9C1,#FFDECA,#EAF6F0);background-size:250% 100%;animation:soft-flow 3s ease-in-out infinite}
.analyzing-step.active .step-dot{animation:none;background:var(--mint)}
.analyzing-step.done,.analyzing-step.active{color:var(--mint-ink)}
.empty-icon{width:48px;height:48px;margin:0 auto 14px;color:#99BAA9;animation:soft-breathe 4s ease-in-out infinite}
.toast{border-radius:18px;background:#E8F3EB!important;color:var(--mint-ink);border:1px solid #D3E5D8;box-shadow:var(--soft-shadow);font-size:14px;transition:transform .4s var(--ease);max-width:calc(100vw - 40px)}
.toast.error{background:#FAEDEA!important;color:#80605C;border-color:#EEDCD6}
.timer-modal .modal{background:var(--paper)!important;border-color:var(--line)}
.timer-modal .modal *{color:var(--ink)}
.timer-circle-bg{stroke:#E4EDE5}.timer-circle-fill{stroke:var(--mint)}
.timer-btn,.timer-btn.primary,.timer-action-btn{background:var(--mint-soft)!important;color:var(--mint-ink)!important;box-shadow:none!important;border-color:var(--line)!important;border-radius:18px}
.stat-card{padding:24px}.stat-value{font-family:inherit;font-size:32px;font-weight:500}.dot-number{display:none}
.week-bar-fill{background:var(--mint)!important}.week-bar.today .week-bar-fill{background:var(--peach)!important}
.week-bar-label{color:var(--muted)}.chart-card{box-shadow:none!important}.week-chart{height:130px}
.cal-day.today{background:var(--mint-soft);color:var(--mint-ink)}.cal-day.selected{background:var(--mint);color:var(--mint-ink)}
@keyframes piece-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes dialog-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
@keyframes soft-flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes soft-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes gentle-glow{from{box-shadow:0 0 0 0 rgba(134,217,193,.15)}to{box-shadow:0 0 0 14px rgba(134,217,193,0)}}
@media(max-width:767px){.main{margin-left:0;padding:28px 20px 100px}.page-title{font-size:24px}.goal-home{min-height:calc(100dvh - 160px);padding:24px 0}.home-goal-input{min-height:160px;padding:20px}.focus-card{padding:20px}.panel-header{padding:20px}.panel-body{padding:0 12px 12px}.task-item{grid-template-columns:32px minmax(0,1fr) 28px;padding:16px;gap:12px}.task-puzzle{grid-column:1;grid-row:1;width:32px}.task-info{grid-column:2;grid-row:1}.task-checkbox{grid-column:3;grid-row:1;align-self:center}.task-duration{grid-column:2;grid-row:2;width:max-content}.task-actions{grid-column:2 / 4;grid-row:3}.goal-card{padding:20px}.goal-header{grid-template-columns:36px minmax(0,1fr) 36px}.goal-emoji{width:36px;height:36px}.goal-footer{gap:8px}.growth-numbers{gap:20px}.stats-layout{grid-template-columns:1fr}.modal{border-radius:24px}.goal-phases{font-size:12px}.fab-desktop{display:none!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.flying-piece{display:none}}
