:root{--bg-app: #F5F4EF;--bg-card: #FFFFFF;--bg-card-hover: #FBFBFA;--bg-subtle: #E8F0E9;--bg-subtle-hover: #DDE9DF;--color-ink: #243C36;--color-ink-light: #5A7067;--color-ink-muted: #84968F;--border-color: #E2DFD8;--border-focus: #27634D;--primary: #27634D;--primary-hover: #1E4F3D;--primary-text: #FFFFFF;--badge-amber: #805321;--badge-amber-bg: #FDF4E7;--badge-danger: #9D3931;--badge-danger-bg: #FBECEB;--badge-blue: #1D5C8A;--badge-blue-bg: #EAF3FA;--badge-work: #27634D;--badge-work-bg: #E8F0E9;--badge-personal: #7B3482;--badge-personal-bg: #F7EDF8;--shadow-sm: 0 1px 3px rgba(36, 60, 54, .06);--shadow-md: 0 4px 12px rgba(36, 60, 54, .08);--shadow-lg: 0 12px 28px rgba(36, 60, 54, .12);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-app);color:var(--color-ink);line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:0 1.5rem;height:57px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.25rem;color:var(--primary);text-decoration:none}.nav-links{display:flex;align-items:center;gap:.5rem}.nav-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .85rem;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-ink-light);font-weight:500;cursor:pointer;transition:all .15s ease}.nav-btn:hover{background:var(--bg-subtle);color:var(--primary)}.nav-btn.active{background:var(--bg-subtle);color:var(--primary);font-weight:600}.header-actions{display:flex;align-items:center;gap:.75rem}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--primary);color:var(--primary-text);border:none;border-radius:var(--radius-sm);padding:.5rem 1rem;font-weight:600;cursor:pointer;transition:background-color .15s ease}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:var(--color-ink);border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.5rem .85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover);border-color:var(--color-ink-muted)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-subtle{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;background:var(--bg-subtle);color:var(--primary);border:none;border-radius:var(--radius-sm);padding:.35rem .65rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:background-color .15s ease}.btn-subtle:hover:not(:disabled){background:var(--bg-subtle-hover)}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;background:var(--badge-danger-bg);color:var(--badge-danger);border:1px solid rgba(157,57,49,.2);border-radius:var(--radius-sm);padding:.35rem .65rem;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-danger:hover{background:#f8d8d6}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-ink-light);cursor:pointer;transition:all .15s ease}.btn-icon:hover{background:var(--bg-subtle);color:var(--primary)}.main-content{flex:1;padding:1.5rem;max-width:1440px;margin:0 auto;width:100%}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:600;line-height:1.2}.badge-work{background:var(--badge-work-bg);color:var(--badge-work)}.badge-personal{background:var(--badge-personal-bg);color:var(--badge-personal)}.badge-general{background:#eceae4;color:var(--color-ink-light)}.badge-mandatory{background:var(--badge-amber-bg);color:var(--badge-amber);border:1px solid rgba(128,83,33,.25)}.badge-goal{background:var(--bg-subtle);color:var(--primary)}.badge-high{background:var(--badge-danger-bg);color:var(--badge-danger)}.badge-due{background:#f0efea;color:var(--color-ink-light)}.badge-m365{background:var(--badge-blue-bg);color:var(--badge-blue)}.task-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.85rem 1rem;display:flex;align-items:flex-start;gap:.75rem;box-shadow:var(--shadow-sm);transition:all .15s ease}.task-card:hover{border-color:#d2cdc3;box-shadow:var(--shadow-md)}.task-card.completed{opacity:.65;background:#fafaf8}.task-card.completed .task-title{text-decoration:line-through;color:var(--color-ink-light)}.task-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid var(--color-ink-muted);border-radius:4px;margin-top:2px;cursor:pointer;display:grid;place-content:center;flex-shrink:0;transition:all .15s ease}.task-checkbox:checked{background:var(--primary);border-color:var(--primary)}.task-checkbox:checked:after{content:"";width:5px;height:9px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg);margin-bottom:2px}.task-card-content{flex:1;min-width:0}.task-title{font-size:.95rem;font-weight:600;color:var(--color-ink);word-break:break-word}.task-description{font-size:.85rem;color:var(--color-ink-light);margin-top:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}.task-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem;align-items:center}.task-actions{display:flex;align-items:center;gap:.25rem;opacity:.6;transition:opacity .15s ease}.task-card:hover .task-actions{opacity:1}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#243c3666;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal-content{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;border:1px solid var(--border-color)}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.15rem;font-weight:700;color:var(--color-ink)}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.75rem;background:#faf9f6;border-bottom-left-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-label{font-size:.85rem;font-weight:600;color:var(--color-ink-light)}.form-input,.form-textarea,.form-select{width:100%;padding:.6rem .75rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#fff;color:var(--color-ink);transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px #27634d26}.segmented-group{display:flex;background:#efece6;border-radius:var(--radius-sm);padding:3px;gap:3px}.segmented-btn{flex:1;padding:.45rem .5rem;font-size:.85rem;font-weight:500;border:none;background:transparent;color:var(--color-ink-light);border-radius:4px;cursor:pointer;text-align:center;transition:all .15s ease}.segmented-btn.active{background:#fff;color:var(--primary);font-weight:600;box-shadow:0 1px 3px #00000014}.chip-group{display:flex;flex-wrap:wrap;gap:.5rem}.chip-btn{padding:.35rem .7rem;font-size:.8rem;font-weight:500;border:1px solid var(--border-color);border-radius:9999px;background:#fff;color:var(--color-ink-light);cursor:pointer;transition:all .15s ease}.chip-btn:hover{background:var(--bg-subtle);color:var(--primary);border-color:var(--primary)}.chip-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.chat-panel{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);height:calc(100vh - 120px);position:sticky;top:5rem;overflow:hidden}.chat-header{padding:.85rem 1.25rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;background:#faf9f6}.chat-title-wrap{display:flex;align-items:center;gap:.5rem}.chat-title{font-size:.95rem;font-weight:700;color:var(--color-ink)}.chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.chat-bubble{width:100%;max-width:100%;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.9rem;line-height:1.45;word-break:break-word;box-sizing:border-box}.chat-bubble.user{align-self:stretch;background:var(--primary);color:#fff}.chat-bubble.assistant{align-self:stretch;background:#f3f1ec;color:var(--color-ink)}.chat-markdown{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;line-height:1.5;color:inherit}.chat-markdown .chat-p{margin:0;line-height:1.55;word-break:break-word}.chat-markdown .chat-h1,.chat-markdown .chat-h2,.chat-markdown .chat-h3,.chat-markdown .chat-h4{font-weight:700;color:var(--color-ink);margin-top:.4rem;margin-bottom:.15rem;line-height:1.3}.chat-markdown .chat-h1{font-size:1.15rem}.chat-markdown .chat-h2{font-size:1.05rem}.chat-markdown .chat-h3{font-size:.95rem;color:var(--primary)}.chat-markdown .chat-h4{font-size:.9rem}.chat-markdown .chat-ul,.chat-markdown .chat-ol{margin:.2rem 0;padding-left:1.35rem;display:flex;flex-direction:column;gap:.25rem}.chat-markdown .chat-li{line-height:1.5;word-break:break-word}.chat-markdown .chat-inline-code{background:#243c3614;color:#1a4d3b;padding:.15rem .35rem;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.85em;font-weight:500;border:1px solid rgba(36,60,54,.12)}.chat-markdown .chat-code-block{background:#243c36;color:#e8f0e9;border-radius:var(--radius-sm);overflow:hidden;margin:.4rem 0;border:1px solid rgba(36,60,54,.2)}.chat-markdown .chat-code-lang{background:#00000040;color:#a3b8b0;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.2rem .6rem;font-weight:600}.chat-markdown .chat-code-block pre{margin:0;padding:.6rem .8rem;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.82rem;line-height:1.45}.chat-markdown .chat-blockquote{border-left:3px solid var(--primary);background:#27634d0f;padding:.4rem .75rem;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:.3rem 0;color:var(--color-ink-light);font-style:italic}.chat-markdown .chat-blockquote p{margin:0}.chat-markdown .chat-hr{border:none;border-top:1px solid var(--border-color);margin:.5rem 0}.chat-markdown .chat-link{color:var(--primary);text-decoration:underline;text-underline-offset:2px;word-break:break-all}.chat-markdown .chat-link:hover{color:var(--primary-hover)}.chat-receipts{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem}.receipt-chip{display:flex;align-items:center;gap:.4rem;background:#fff;border:1px solid rgba(39,99,77,.2);border-radius:var(--radius-sm);padding:.3rem .6rem;font-size:.8rem;color:var(--primary);font-weight:500}.receipt-chip.error{border-color:#9d39314d;color:var(--badge-danger);background:var(--badge-danger-bg)}.chat-footer{padding:.85rem 1rem;border-top:1px solid var(--border-color);background:#fff}.chat-input-form{display:flex;gap:.5rem}.app-workspace-layout{display:flex;min-height:calc(100vh - 57px);position:relative;width:100%}@media(min-width:1025px){.app-workspace-layout{width:calc(100% - 380px);margin-right:380px;display:flex;justify-content:center;min-height:calc(100vh - 57px);box-sizing:border-box;transition:width .2s ease,margin-right .2s ease}.app-workspace-layout.assistant-wide{width:calc(100% - 540px);margin-right:540px}.app-workspace-layout.assistant-collapsed{width:calc(100% - 48px);margin-right:48px}.main-content{margin:0 auto;width:100%;max-width:1080px;padding:1.5rem 2rem;box-sizing:border-box;min-width:0}.main-content.calendar-mode{max-width:1560px;padding:1.25rem}.app-assistant-dock{position:fixed;top:57px;right:0;bottom:0;width:380px;z-index:35;background:var(--bg-card);border-left:1px solid var(--border-color);box-shadow:-2px 0 12px #243c360f;display:flex;flex-direction:column;transition:width .2s ease}.app-assistant-dock.wide{width:540px}.app-assistant-dock.collapsed{width:48px;align-items:center;background:#faf9f6;overflow:hidden}.app-assistant-dock .chat-panel{height:100%;position:static;border:none;border-radius:0;box-shadow:none}}@media(max-width:1024px){.app-workspace-layout{flex-direction:column}.main-content{margin-right:0;width:100%;padding:1.25rem;box-sizing:border-box}.app-assistant-dock{width:100%;padding:1rem 1.25rem;box-sizing:border-box}.app-assistant-dock .chat-panel{height:500px;position:static}}.task-card[draggable=true]{cursor:grab}.task-card[draggable=true]:active{cursor:grabbing}.task-card.dragging{opacity:.45;transform:scale(.98);border:1px dashed var(--primary)}.task-drag-handle{display:flex;align-items:center;justify-content:center;color:var(--color-ink-muted);cursor:grab;padding:.2rem .1rem;border-radius:var(--radius-sm);margin-right:.25rem;transition:color .15s ease,background-color .15s ease}.task-card:hover .task-drag-handle{color:var(--primary);background-color:var(--bg-subtle)}.section-block.drop-zone{border-radius:var(--radius-md);transition:all .2s ease;position:relative}.section-block.drop-zone.drag-active{outline:2px dashed rgba(39,99,77,.35);outline-offset:4px;border-radius:var(--radius-md)}.section-block.drop-zone.drag-over{outline:2px solid var(--primary);outline-offset:4px;background-color:#27634d0f;border-radius:var(--radius-md)}.section-block{margin-bottom:1.5rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.section-title{font-size:1rem;font-weight:700;color:var(--color-ink);display:flex;align-items:center;gap:.5rem}.task-list{display:flex;flex-direction:column;gap:.5rem}.empty-state{background:var(--bg-card);border:1px dashed var(--border-color);border-radius:var(--radius-md);padding:1.5rem;text-align:center;color:var(--color-ink-muted);font-size:.9rem}.calendar-view-root{width:100%;min-width:0}.calendar-layout{display:flex;gap:.85rem;align-items:flex-start;width:100%;min-width:0}.calendar-sidebar{width:240px;flex-shrink:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.85rem;box-sizing:border-box;max-height:calc(100vh - 160px);display:flex;flex-direction:column;position:sticky;top:75px;transition:all .2s ease}.calendar-sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.35rem}.calendar-sidebar-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:.4rem;padding-right:.2rem}.calendar-main{flex:1;min-width:0;overflow-x:auto;padding-bottom:.25rem}.calendar-task-item{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.4rem .5rem;display:flex;align-items:flex-start;gap:.35rem;cursor:grab;transition:all .15s ease}.calendar-task-item:hover{border-color:#d2cdc3;box-shadow:var(--shadow-sm)}.calendar-task-item.dragging{opacity:.4;transform:scale(.98);border:1px dashed var(--primary)}.calendar-task-title{font-size:.8rem;font-weight:600;color:var(--color-ink);word-break:break-word;line-height:1.3}.calendar-sidebar.drag-active{outline:2px dashed rgba(39,99,77,.35);outline-offset:3px}.calendar-sidebar.drag-over{outline:2px solid var(--primary);outline-offset:3px;background-color:#27634d0d}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:.5rem;width:100%}@media(max-width:1100px){.calendar-layout{flex-direction:column}.calendar-sidebar{width:100%;position:static;max-height:340px}.week-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}.day-column{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.6rem .5rem;display:flex;flex-direction:column;gap:.5rem;min-height:480px;min-width:0;box-sizing:border-box}.day-column.drop-zone{transition:all .15s ease}.day-column.drop-zone.drag-active{outline:2px dashed rgba(39,99,77,.3);outline-offset:2px}.day-column.drop-zone.drag-over{outline:2px solid var(--primary);outline-offset:2px;background-color:#27634d14}.day-column.today{border-color:var(--primary);background:#fafbf9}.day-column-header{border-bottom:1px solid var(--border-color);padding-bottom:.5rem;text-align:center}.day-name{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-light)}.day-date{font-size:1.1rem;font-weight:700;color:var(--color-ink)}.alert-banner{padding:.75rem 1rem;border-radius:var(--radius-sm);display:flex;align-items:center;gap:.75rem;font-size:.9rem;margin-bottom:1rem}.alert-info{background:var(--badge-blue-bg);color:var(--badge-blue);border:1px solid rgba(29,92,138,.2)}.alert-warning{background:var(--badge-amber-bg);color:var(--badge-amber);border:1px solid rgba(128,83,33,.2)}.alert-error{background:var(--badge-danger-bg);color:var(--badge-danger);border:1px solid rgba(157,57,49,.2)}.alert-success{background:var(--bg-subtle);color:var(--primary);border:1px solid rgba(39,99,77,.2)}
