:root{--bg-soft: #f7f7f8;--bg-card: #ffffff;--text-main: #1f2329;--text-muted: #6c7482;--border: #e9ebef;--primary: #5b8def;--primary-weak: #eef4ff;--danger-weak: #ffecec;--radius-card: 12px;--radius-input: 20px;--shadow-soft: 0 6px 18px rgba(37, 68, 120, .08)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:linear-gradient(180deg,#f4f6fb,#f7f7f8 42%,#fafafa);color:var(--text-main);font-family:SF Pro Text,PingFang SC,Noto Sans CJK SC,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.shell-bg{min-height:100vh;display:flex;justify-content:center;padding:12px}.mobile-shell{width:min(100%,430px);height:calc(100vh - 24px);min-height:calc(100vh - 24px);border:1px solid var(--border);background:var(--bg-soft);border-radius:20px;overflow:hidden;position:relative;display:flex;flex-direction:column}.shell-header{height:98px;padding:16px;border-bottom:1px solid var(--border);background:#fff;display:flex;align-items:flex-start;justify-content:space-between}.brand-subtitle{margin:0;color:var(--text-muted);font-size:12px}.brand-title{margin:4px 0 0;font-size:18px;font-weight:600}.header-actions{display:flex;align-items:center;gap:8px}.header-user{font-size:12px;color:var(--text-muted)}.header-link{font-size:12px;color:var(--text-muted);padding:2px 4px}.header-link.active{color:var(--primary);font-weight:600}.shell-main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 16px 140px}.bottom-nav{position:absolute;bottom:0;left:0;right:0;height:58px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);background:#fff}.pwa-install-card{position:absolute;left:12px;right:12px;bottom:70px;border:1px solid var(--border);border-radius:14px;background:#fffffffa;box-shadow:var(--shadow-soft);padding:12px;display:grid;gap:10px;z-index:11}.pwa-install-title{margin:0;font-size:14px;font-weight:600}.pwa-install-desc{margin:6px 0 0;font-size:12px;color:var(--text-muted)}.pwa-install-actions{display:flex;justify-content:flex-end;gap:8px}.nav-link{display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-muted)}.nav-link.active{color:var(--primary);font-weight:600}.page{display:grid;gap:14px}.summary-header{background:#fff;border:1px solid var(--border);border-radius:var(--radius-card);padding:12px 14px}.greeting{margin:0;font-size:13px;color:var(--text-muted)}.summary-header h2{margin:6px 0;font-size:20px}.meta-line{margin:0;font-size:13px;color:var(--text-muted)}.section-block{display:grid;gap:8px}.section-title{margin:0;font-size:15px;font-weight:600}.section-head-inline{display:flex;align-items:center;justify-content:space-between}.task-list,.project-list,.asset-list,.notification-list{display:grid;gap:8px}.task-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:12px;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}.task-card.urgent{background:var(--danger-weak)}.task-card.done{opacity:.6}.task-title{margin:0;font-size:14px;text-decoration:none}.task-card.done .task-title{text-decoration:line-through}.task-meta{margin:4px 0 0;font-size:12px;color:var(--text-muted)}.task-check{width:28px;height:28px;border:1px solid var(--border);border-radius:50%;background:#fff}.project-tag{font-size:12px;padding:3px 8px;border-radius:999px;background:var(--primary-weak);color:var(--primary);white-space:nowrap}.task-title-link{min-width:0}.ai-input-wrap{position:fixed;left:50%;transform:translate(-50%);bottom:72px;width:min(calc(100% - 32px),398px);display:grid;grid-template-columns:1fr auto;gap:8px;background:#ffffffeb;border:1px solid var(--border);border-radius:999px;padding:8px;box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ai-input{border:none;outline:none;padding:0 10px;background:transparent}.ai-chat{position:fixed;left:50%;top:0;bottom:0;transform:translate(-50%) translateY(100%);width:min(100%,430px);background:#f5f5f7;display:flex;flex-direction:column;transition:transform .22s ease;z-index:20}.ai-chat.open{transform:translate(-50%) translateY(0)}.ai-chat-head{height:52px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:#fff}.ai-chat-body{flex:1;overflow-y:auto;padding:14px 12px 10px;display:flex;flex-direction:column;gap:10px}.ai-chat-input{border-top:1px solid var(--border);padding:8px 10px;background:#fff;display:flex;gap:8px;align-items:flex-end}.ai-chat-input textarea{flex:1;min-height:42px;max-height:140px;resize:none;border:1px solid var(--border);border-radius:16px;padding:10px 12px;line-height:1.45;margin:0}.send-btn{border-radius:999px;padding-inline:14px;min-width:68px}.chat-row{display:flex;align-items:flex-end;gap:8px}.chat-row.me{justify-content:flex-end}.chat-row.ai{justify-content:flex-start}.avatar{width:28px;height:28px;border-radius:50%;background:#dfe9ff;color:#3f6fda;border:1px solid #cddcff;display:grid;place-items:center;font-size:11px;font-weight:700;flex-shrink:0}.avatar-spacer{width:28px;flex-shrink:0}.bubble{max-width:calc(100% - 46px);border-radius:14px;border:1px solid var(--border);padding:10px 12px;box-shadow:0 4px 12px #2544780f}.bubble-ai{background:#fff}.bubble-me{background:#ebf2ff;border-color:#d4e3ff}.bubble-text{margin:0;font-size:14px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble-actions{display:flex;gap:8px;margin-top:10px}.bubble-auto-actions{margin-top:10px;display:grid;gap:8px}.bubble-inline-edit{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.bubble-edit{margin-top:10px;display:grid;gap:6px}.bubble-edit-label{font-size:12px;color:var(--text-muted)}.bubble-edit-input{width:100%;border:1px solid var(--border);border-radius:10px;padding:8px 10px;background:#fff}textarea.bubble-edit-input{resize:vertical;min-height:72px;line-height:1.45}select.bubble-edit-input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.bubble-note{margin:8px 0 0;font-size:12px;color:var(--text-muted)}.ai-panel{display:none}.chip-row{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:5px 10px;font-size:12px}.chip.active{border-color:var(--primary);color:var(--primary);background:var(--primary-weak)}.panel-submit{width:100%;margin-bottom:10px}.suggestion-card{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fcfdff}.suggestion-card pre{background:#f4f6fb;border-radius:8px;padding:8px;font-size:12px;overflow:auto}.suggestion-type{margin:0;color:var(--primary);font-size:12px;font-weight:600}.row-actions{display:flex;gap:8px;margin-top:8px}.suggestion-list{margin-top:10px;flex:1;overflow-y:auto;display:grid;gap:8px}.chat-message.ai{align-self:flex-start}.suggestion-meta{display:flex;gap:6px;align-items:center;margin-bottom:6px;font-size:12px;color:var(--text-muted)}.suggestion-badge{padding:2px 8px;border-radius:999px;background:var(--primary-weak);color:var(--primary)}.suggestion-source{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion-text{margin:0;font-size:13px;line-height:1.5}.highlight{color:var(--primary);font-weight:500}.suggestion-list-bullets{margin:6px 0 0;padding-left:18px;font-size:13px}.primary-btn,.ghost-btn{border-radius:999px;padding:8px 14px;border:1px solid var(--border);cursor:pointer}.primary-btn{background:var(--primary);border-color:var(--primary);color:#fff}.primary-btn.block,.ghost-btn.block{width:100%}.ghost-btn{background:#fff;color:var(--text-main)}.notification-card,.project-card,.asset-card,.login-card,.subtask-item,textarea{border:1px solid var(--border);border-radius:10px;background:#fff}.notification-card.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.notification-card.clickable:hover{transform:translateY(-1px);box-shadow:0 2px 8px #2544781f}.notification-card.clickable:active{transform:translateY(0)}.notification-card,.project-card,.asset-card,.login-card{padding:12px}.notification-title,.asset-title{margin:0;font-size:14px;font-weight:600}.notification-msg,.asset-content,.empty-text,.error-text{margin:4px 0 0;font-size:13px}.notification-time{margin:6px 0 0;font-size:12px;color:var(--text-muted)}.project-line{display:flex;justify-content:space-between;align-items:center}.project-line h3{margin:0;font-size:15px}.center-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(92vw,360px);display:grid;gap:10px}.mode-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mode-btn{border:1px solid var(--border);background:#fff;color:var(--text-muted);border-radius:999px;padding:6px 8px;font-size:12px}.mode-btn.active{border-color:var(--primary);color:var(--primary);background:var(--primary-weak);font-weight:600}.inline-input-action{margin-top:6px;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.inline-input-action input{margin-top:0}.profile-card{width:100%;max-width:none}.profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.profile-stat-card{border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px}.profile-stat-value{margin:6px 0 0;font-size:22px;font-weight:600}.login-card input,.login-card textarea{margin-top:6px;width:100%;border:1px solid var(--border);border-radius:var(--radius-input);padding:10px 12px}.section-block textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:#fff}.subtask-list{display:grid;gap:8px}.subtask-item{padding:10px;text-align:left}.subtask-item.done{opacity:.65;text-decoration:line-through}.task-advice-panel{display:grid;gap:10px}.task-advice-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.advice-kpi{border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px}.advice-kpi span{display:block;font-size:12px;color:var(--text-muted)}.advice-kpi strong{display:block;margin-top:2px;font-size:18px}.advice-kpi p{margin:4px 0 0;font-size:12px;color:var(--text-muted);line-height:1.45}.advice-kpi.danger{background:#ffecec;border-color:#ffd6d6}.advice-kpi.warning{background:#fff8e8;border-color:#ffe8b8}.advice-kpi.safe{background:#eef7f0;border-color:#d9eddf}.advice-block{border:1px solid var(--border);border-radius:10px;background:#fff;padding:10px}.advice-block h4{margin:0;font-size:13px}.advice-list{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}.advice-list li{font-size:13px;line-height:1.4}.advice-quote{margin:8px 0 0;border-left:3px solid var(--primary);padding-left:8px;font-size:13px;line-height:1.5}.advice-add-row{margin-top:8px;display:grid;grid-template-columns:1fr auto;gap:8px}.suggested-input-list{display:grid;gap:8px;margin-top:8px}.suggested-input-item{border:1px solid var(--border);border-radius:10px;padding:8px;background:#f9fbff;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.suggested-input-item.done{background:#eef7f0;border-color:#d9eddf}.suggested-input-item input{border:1px solid var(--border);border-radius:10px;padding:9px 10px}.advice-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.advice-chip{border:1px solid var(--border);background:var(--primary-weak);color:var(--primary);border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.advice-add-row input{border:1px solid var(--border);border-radius:12px;padding:10px 12px}.reminder-panel .row-actions{margin-top:4px}.reminder-detail-layout,.reminder-scroll-area{display:grid;gap:10px}.reminder-bottom-bar{position:sticky;bottom:70px;z-index:4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:8px;background:linear-gradient(180deg,#f7f7f873,#f7f7f8f2 35%,#f7f7f8);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(max-width:380px){.task-advice-kpis{grid-template-columns:1fr}}.timeline{list-style:none;padding:0;margin:0;display:grid;gap:8px}.timeline li{border-left:2px solid var(--border);padding-left:10px}.back-link{color:var(--primary);font-size:13px}.error-text{color:#d14343}.asset-card.selectable{display:flex;gap:8px;align-items:flex-start}@media(min-width:700px){.shell-main{padding-bottom:120px}.ai-input-wrap{bottom:66px}}
