@import"https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&family=Noto+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.notifications-root{position:relative}.notifications-bell-btn{position:relative;width:36px;height:36px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;overflow:visible;z-index:1}.notifications-bell-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.notifications-bell-btn.has-unread{color:#059669}.notifications-bell-btn.is-shake{animation:notifications-bell-shake .32s ease}@keyframes notifications-bell-shake{0%{transform:rotate(0)}25%{transform:rotate(-9deg)}50%{transform:rotate(8deg)}75%{transform:rotate(-6deg)}to{transform:rotate(0)}}.notifications-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;line-height:18px;padding:0 4px;text-align:center;z-index:6;pointer-events:none}.notifications-badge.is-bump{animation:notifications-badge-pop .26s cubic-bezier(.4,0,.2,1)}@keyframes notifications-badge-pop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}.notifications-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;border:none;opacity:0;transition:opacity .15s ease}.notifications-overlay.is-desktop{background:#00000014}.notifications-overlay.is-mobile{background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.notifications-overlay.is-open{opacity:1}.notifications-overlay.is-closing{opacity:0}.notifications-panel{z-index:1000;background:#fff;border:1px solid #e5e7eb;overflow:hidden}.notifications-panel.is-desktop{position:absolute;top:calc(100% + 8px);right:0;width:360px;max-height:480px;border-radius:12px;box-shadow:0 8px 24px #00000026}.notifications-panel.is-mobile{position:fixed;top:0;right:0;bottom:0;left:0;border:none;border-radius:0;display:flex;flex-direction:column}.notifications-panel.is-desktop.is-open{animation:notifications-desktop-in .2s ease-out forwards}.notifications-panel.is-desktop.is-closing{animation:notifications-desktop-out .15s ease-in forwards}@keyframes notifications-desktop-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes notifications-desktop-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.notifications-panel.is-mobile.is-open{animation:notifications-mobile-in .3s cubic-bezier(.4,0,.2,1) forwards}.notifications-panel.is-mobile.is-closing{animation:notifications-mobile-out .2s ease-in forwards}@keyframes notifications-mobile-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes notifications-mobile-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}.notifications-header{min-height:64px;padding:16px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:10px}.notifications-header h3{margin:0;font-size:18px;font-weight:700;color:#111827}.notifications-header-right{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.notifications-mark-all-btn,.notifications-enable-btn,.notifications-close-mobile{border:1px solid #e5e7eb;background:#fff;color:#6b7280;border-radius:8px;min-height:30px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px;cursor:pointer}.notifications-mark-all-btn{color:#059669;border-color:#d1fae5;background:#ecfdf5}.notifications-enabled{font-size:12px;color:#059669;font-weight:600}.notifications-list{overflow-y:auto;padding:8px;max-height:400px}.notifications-panel.is-mobile .notifications-list{flex:1;max-height:none}.notifications-empty{min-height:160px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#6b7280;font-size:14px;text-align:center}.notifications-empty-icon{margin:0;font-size:48px}.notifications-item{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;text-align:left;padding:12px;margin:4px 0;min-height:64px;display:flex;align-items:flex-start;gap:10px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.notifications-item:hover{background:#f9fafb;border-color:#e5e7eb}.notifications-item.is-unread{background:#f0fdf4}.notifications-item-icon{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;background:#f3f4f6}.notifications-item-icon.type-warning,.notifications-item-icon.type-sensor{background:#fff7ed}.notifications-item-icon.type-success{background:#ecfdf5}.notifications-item-icon.type-message{background:#eff6ff}.notifications-item-content{min-width:0;flex:1}.notifications-item-title{font-size:14px;font-weight:600;color:#111827}.notifications-item-message{margin-top:3px;font-size:13px;color:#4b5563;line-height:1.35}.notifications-item-time{margin-top:6px;font-size:12px;color:#9ca3af}.notifications-item-dot{width:8px;height:8px;border-radius:999px;background:#059669;margin-top:6px;flex-shrink:0}@media (max-width: 768px){.notifications-header-right .notifications-enable-btn,.notifications-header-right .notifications-enabled{display:none}}html.dark .notifications-bell-btn{background:#1f2937;border-color:#ffffff1f;color:#d1d5db}html.dark .notifications-bell-btn:hover{background:#111827}html.dark .notifications-panel{background:#1f2937;border-color:#ffffff1a}html.dark .notifications-header{border-color:#ffffff1a}html.dark .notifications-header h3,html.dark .notifications-item-title{color:#f9fafb}html.dark .notifications-item-message{color:#d1d5db}html.dark .notifications-item-time,html.dark .notifications-empty{color:#9ca3af}html.dark .notifications-item:hover{background:#ffffff0a;border-color:#ffffff1a}html.dark .notifications-item.is-unread{background:#065f4633}html.dark .notifications-item-icon{background:#ffffff14}html.dark .notifications-mark-all-btn,html.dark .notifications-enable-btn,html.dark .notifications-close-mobile{background:#111827;border-color:#ffffff24;color:#d1d5db}html.dark .notifications-mark-all-btn{color:#34d399;border-color:#34d39959;background:#10b98133}.chat-root{position:relative}.chat-bell-btn{position:relative;width:36px;height:36px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#374151;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;overflow:visible;z-index:1}.chat-bell-btn:hover{background:#f9fafb;border-color:#d1d5db;color:#111827}.chat-bell-badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#059669;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;z-index:6;pointer-events:none}.chat-bell-badge.is-bump{animation:chat-bell-bump .26s cubic-bezier(.4,0,.2,1)}@keyframes chat-bell-bump{0%{transform:scale(.8)}60%{transform:scale(1.15)}to{transform:scale(1)}}.chat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;border:none;background:transparent}.chat-panel{position:absolute;top:44px;right:0;width:min(94vw,400px);height:min(82vh,620px);background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 20px 40px #0f172a2e;z-index:40;overflow:hidden;display:flex;flex-direction:column}.chat-panel.chat-panel--page{position:relative;top:0;right:0;width:100%;height:calc(100vh - 130px);max-height:none;border-radius:16px;box-shadow:0 10px 28px #0f172a14}.chat-panel-header{padding:12px 14px;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.chat-panel-header h3{margin:0;font-size:14px;font-weight:600;color:#111827}.chat-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;border-bottom:1px solid #f3f4f6}.chat-tab{height:32px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#6b7280;font-size:12px;font-weight:600;cursor:pointer}.chat-tab:hover{border-color:#d1d5db;color:#111827}.chat-tab.is-active{border-color:#059669;background:#ecfdf5;color:#065f46}.chat-search-row{margin:10px 12px;height:34px;border:1px solid #e5e7eb;border-radius:8px;display:flex;align-items:center;gap:6px;padding:0 10px;color:#9ca3af;background:#fff}.chat-search-row:focus-within{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.chat-search-row input{width:100%;border:none;outline:none;background:transparent;font-size:12px;color:#111827}.chat-search-row input::placeholder{color:#9ca3af}.chat-search-row.is-compact{margin:0}.chat-active-strip{padding:0 12px 10px}.chat-active-strip p{margin:0 0 8px;font-size:11px;text-transform:uppercase;font-weight:700;color:#6b7280;letter-spacing:.04em}.chat-active-list{display:flex;flex-wrap:wrap;gap:6px;max-height:72px;overflow-y:auto}.chat-active-pill{border:1px solid #d1fae5;background:#ecfdf5;color:#065f46;border-radius:999px;height:28px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.chat-active-pill:hover{background:#d1fae5}.chat-active-empty{font-size:12px;color:#9ca3af}.chat-online-dot{width:8px;height:8px;border-radius:999px;background:#22c55e;flex-shrink:0}.chat-group-actions{padding:0 12px 8px}.chat-create-group-btn{width:100%;height:32px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#374151;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}.chat-create-group-btn:hover{border-color:#059669;color:#065f46}.chat-group-create{margin:0 12px 10px;padding:10px;border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb;display:flex;flex-direction:column;gap:8px}.chat-group-create>input{height:34px;border:1px solid #d1d5db;border-radius:8px;padding:0 10px;font-size:12px;outline:none}.chat-group-create>input:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.chat-group-member-list{border:1px solid #e5e7eb;border-radius:8px;background:#fff;max-height:160px;overflow-y:auto}.chat-group-member-item{display:flex;align-items:center;gap:8px;min-height:32px;padding:0 8px;border-bottom:1px solid #f3f4f6;font-size:12px;color:#374151}.chat-group-member-item:last-child{border-bottom:none}.chat-group-member-item input[type=checkbox]{width:14px;height:14px}.chat-group-member-item .chat-online-dot{margin-left:auto}.chat-create-submit{height:34px;border:none;border-radius:8px;background:#059669;color:#fff;font-size:12px;font-weight:700;cursor:pointer}.chat-create-submit:hover{background:#047857}.chat-create-submit:disabled{background:#d1d5db;cursor:not-allowed}.chat-close-btn,.chat-back-btn{width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:#6b7280;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.chat-close-btn:hover,.chat-back-btn:hover{background:#f3f4f6;color:#111827}.chat-list{overflow-y:auto;flex:1}.chat-empty{padding:28px 16px;text-align:center;color:#6b7280;font-size:13px}.chat-list-item{width:100%;border:none;border-bottom:1px solid #f3f4f6;background:#fff;text-align:left;padding:12px 14px;cursor:pointer;transition:background .12s ease}.chat-list-item:hover{background:#f9fafb}.chat-list-item.is-unread{background:#ecfdf5;border-left:3px solid #10b981;padding-left:11px}.chat-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.chat-list-user{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#111827}.chat-item-badge{min-width:18px;height:18px;border-radius:999px;background:#059669;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;padding:0 4px}.chat-list-content{margin:5px 0 0;font-size:13px;color:#4b5563;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-list-time{margin:6px 0 0;font-size:11px;color:#9ca3af}.chat-conversation{height:100%;display:flex;flex-direction:column}.chat-peer-meta{flex:1;min-width:0}.chat-peer-name{margin:0;font-size:13px;font-weight:600;color:#111827}.chat-peer-email{margin:3px 0 0;font-size:11px;color:#9ca3af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#fff}.chat-day-separator{margin:8px auto;padding:2px 8px;border-radius:999px;background:#f3f4f6;color:#6b7280;font-size:11px}.chat-message-row{display:flex}.chat-message-row.is-mine{justify-content:flex-end}.chat-message-row.is-theirs{justify-content:flex-start}.chat-bubble{max-width:80%;border-radius:10px;padding:8px 10px}.chat-bubble.is-mine{background:#059669;color:#fff}.chat-bubble.is-theirs{background:#f3f4f6;color:#111827}.chat-bubble p{margin:0;font-size:13px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.chat-group-sender{display:block;margin:0 0 4px;font-size:11px;color:#065f46}.chat-bubble span{display:block;margin-top:4px;font-size:10px;opacity:.85}.chat-input-row{border-top:1px solid #e5e7eb;padding:10px;display:flex;align-items:center;gap:8px;background:#fff;flex-shrink:0}.chat-input-row input{flex:1;height:36px;border:1px solid #d1d5db;border-radius:8px;padding:0 10px;font-size:13px;outline:none}.chat-input-row input:focus{border-color:#10b981;box-shadow:0 0 0 2px #10b98126}.chat-input-row button{width:36px;height:36px;border:none;border-radius:8px;background:#059669;color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.chat-input-row button:hover{background:#047857}.chat-input-row button:disabled{background:#d1d5db;cursor:not-allowed}@media (max-width: 768px){.chat-panel{position:fixed;right:8px;left:8px;top:72px;width:auto;height:calc(100vh - 88px);max-height:none}.chat-panel.chat-panel--page{position:relative;right:auto;left:auto;top:auto;width:100%;height:calc(100vh - 180px);border-radius:14px}}.daily-report-lock-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#11182794;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px}.daily-report-lock-modal{width:min(1080px,100%);max-height:calc(100vh - 40px);overflow:hidden;border-radius:14px;background:#fff;border:1px solid #dbe2ea;box-shadow:0 22px 40px #0f172a40;display:flex;flex-direction:column}.daily-report-lock-header{padding:18px 20px;border-bottom:1px solid #e5e7eb;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.daily-report-lock-title{display:inline-flex;align-items:flex-start;gap:10px;color:#111827}.daily-report-lock-title h2{margin:0;font-size:20px;line-height:1.2}.daily-report-lock-title p{margin:4px 0 0;font-size:13px;color:#6b7280}.daily-report-lock-badge{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;font-size:12px;padding:5px 10px;border-radius:999px;font-weight:600;white-space:nowrap}.daily-report-lock-content{overflow-y:auto;padding:18px 20px;display:flex;flex-direction:column;gap:16px}.daily-report-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.daily-report-kpi{border:1px solid #e5e7eb;border-radius:10px;background:#f9fafb;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.daily-report-kpi span{font-size:11px;text-transform:uppercase;letter-spacing:.35px;color:#6b7280}.daily-report-kpi strong{font-size:20px;color:#111827}.daily-report-kpi small{font-size:12px;color:#6b7280}.daily-report-sections{display:grid;grid-template-columns:1fr 1fr;gap:12px}.daily-report-panel{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:12px}.daily-report-panel-full{grid-column:1 / -1}.daily-report-panel h3{margin:0 0 10px;font-size:13px;color:#374151;text-transform:uppercase;letter-spacing:.35px;display:inline-flex;align-items:center;gap:8px}.daily-report-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}.daily-report-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid #edf1f6;border-radius:8px;padding:8px 10px;font-size:13px}.daily-report-list li span{color:#374151}.daily-report-list li strong{color:#111827;font-size:12px}.daily-report-empty{margin:0;color:#9ca3af;font-size:13px}.daily-report-panel textarea{width:100%;min-height:110px;border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;font-size:13px;color:#1f2937;resize:vertical}.daily-report-panel textarea:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #05966924}.daily-report-subtitle{margin:10px 0 6px;font-size:12px;color:#6b7280;font-weight:600}.daily-report-highlight-list{margin:0;padding-left:18px;color:#4b5563;font-size:13px;display:grid;gap:4px}.daily-report-lock-footer{border-top:1px solid #e5e7eb;background:#f9fafb;padding:14px 20px 16px}.daily-report-error{margin:0 0 8px;color:#b91c1c;font-size:12px;font-weight:600}.daily-report-validate-btn{width:100%;border:1px solid #047857;background:#059669;color:#fff;padding:13px 16px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background-color .12s ease}.daily-report-validate-btn:hover:enabled{background:#047857}.daily-report-validate-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1100px){.daily-report-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 768px){.daily-report-lock-overlay{padding:8px}.daily-report-lock-modal{max-height:calc(100vh - 16px)}.daily-report-lock-header{flex-direction:column;align-items:flex-start}.daily-report-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-report-sections{grid-template-columns:1fr}}.install-prompt{position:fixed;bottom:20px;left:20px;right:20px;max-width:400px;background:#fff;border-radius:12px;box-shadow:0 8px 24px #00000026;border:2px solid #059669;padding:20px;z-index:1000;animation:pwa-slide-up .3s ease}@keyframes pwa-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.install-prompt .close-btn{position:absolute;top:12px;right:12px;background:none;border:none;color:#9ca3af;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.install-prompt .close-btn:hover{color:#6b7280}.install-prompt .content{display:flex;flex-direction:column;gap:16px}.install-prompt .icon{width:56px;height:56px;background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#059669}.install-prompt .text h3{font-size:18px;font-weight:600;color:#1f2937;margin:0 0 8px}.install-prompt .text p{font-size:14px;color:#6b7280;margin:0;line-height:1.4}.install-prompt .actions{display:flex;gap:12px}.install-prompt .btn-install{flex:1;background:#059669;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-weight:600;font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.install-prompt .btn-install:hover{background:#047857}.install-prompt .btn-later{background:none;border:1px solid #e5e7eb;color:#6b7280;padding:12px 20px;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s}.install-prompt .btn-later:hover{background:#f9fafb}.offline-indicator{position:fixed;top:20px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;z-index:1100;box-shadow:0 4px 12px #00000026;animation:pwa-slide-down .3s ease}.offline-indicator.offline{background:#dc2626;color:#fff}.offline-indicator.online{background:#059669;color:#fff}@keyframes pwa-slide-down{0%{opacity:0;transform:translate(-50%,-20px)}to{opacity:1;transform:translate(-50%)}}@media (min-width: 768px){.install-prompt{left:auto;right:20px}}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:env(safe-area-inset-bottom);z-index:110;padding:8px 12px;background:linear-gradient(to top,#ffffffeb,#ffffffc7 80%,#fff0);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(15,23,42,.08);transform:translateY(100%);animation:mobile-nav-slide-up .32s cubic-bezier(.4,0,.2,1) forwards}.mobile-bottom-nav__inner{max-width:600px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:6px}.mobile-bottom-nav__tab{flex:1;min-height:56px;border:none;background:transparent;color:#9ca3af;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px;font-size:11px;font-weight:500;transition:transform .18s cubic-bezier(.4,0,.2,1),color .18s cubic-bezier(.4,0,.2,1),background .18s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent;overflow:visible}.mobile-bottom-nav__tab:active{transform:scale(.92)}.mobile-bottom-nav__tab.is-active{color:#059669;transform:translateY(-2px);font-weight:700;background:#05966914}.mobile-bottom-nav__icon-wrap{position:relative;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;overflow:visible}.mobile-bottom-nav__label{line-height:1}.mobile-bottom-nav__badge{position:absolute;top:-6px;right:-10px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#dc2626;color:#fff;font-size:10px;font-weight:700;line-height:18px;text-align:center;transform-origin:center;animation:mobile-nav-badge-pop .26s cubic-bezier(.4,0,.2,1);z-index:6;pointer-events:none}@keyframes mobile-nav-badge-pop{0%{transform:scale(0)}60%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes mobile-nav-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width: 769px){.mobile-bottom-nav{display:none}}:root.dark .mobile-bottom-nav,:root[data-theme=dark] .mobile-bottom-nav{background:linear-gradient(to top,#ffffffeb,#ffffffc7 80%,#fff0);border-top-color:#0f172a14}.mobile-menu-page{width:100%;max-width:720px;margin:0 auto;padding:16px;padding-bottom:calc(86px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:24px}.mobile-menu-header{display:flex;align-items:center;gap:14px;padding:20px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-bg-secondary)}.mobile-menu-header__meta{min-width:0}.mobile-menu-header__meta h1{margin:0;font-size:17px;font-weight:700;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-header__meta p{margin:2px 0 0;font-size:12px;color:var(--color-text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-header__domaine{display:inline-flex;margin-top:6px;font-size:11px;font-weight:600;color:#047857;background:#d1fae5;padding:3px 8px;border-radius:999px}.mobile-menu-section{display:flex;flex-direction:column;gap:8px}.mobile-menu-section__title{margin:0;font-size:12px;font-weight:700;color:var(--color-text-tertiary);letter-spacing:.05em;text-transform:uppercase}.mobile-menu-list{display:flex;flex-direction:column;gap:6px}.mobile-menu-item{min-height:64px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-secondary);display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;transition:transform .14s ease,background-color .14s ease,border-color .14s ease;-webkit-tap-highlight-color:transparent}.mobile-menu-item:hover{background:var(--color-bg-tertiary)}.mobile-menu-item:active{transform:scale(.98)}.mobile-menu-item.is-danger{border-color:#fecaca;background:#fef2f2}.mobile-menu-item__icon{width:40px;height:40px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-menu-item__icon.is-zones{background:#fed7aa;color:#9a3412}.mobile-menu-item__icon.is-iot{background:#dbeafe;color:#1d4ed8}.mobile-menu-item__icon.is-members{background:#e9d5ff;color:#7e22ce}.mobile-menu-item__icon.is-reports{background:#d1fae5;color:#047857}.mobile-menu-item__icon.is-settings{background:#e5e7eb;color:#4b5563}.mobile-menu-item__icon.is-help{background:#bfdbfe;color:#1d4ed8}.mobile-menu-item__icon.is-logout{background:#fee2e2;color:#b91c1c}.mobile-menu-item__label{flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-item.is-danger .mobile-menu-item__label{color:#b91c1c}.mobile-menu-item__right{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.mobile-menu-item__chevron{color:var(--color-text-tertiary)}.mobile-menu-item__badge{min-width:20px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;background:#dc2626;box-shadow:0 2px 6px #dc262659}.mobile-menu-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#11182794;display:flex;align-items:center;justify-content:center;padding:16px}.mobile-menu-modal{width:min(100%,420px);border-radius:14px;border:1px solid var(--color-border);background:var(--color-bg-secondary);overflow:hidden}.mobile-menu-modal--confirm{width:min(100%,360px)}.mobile-menu-modal__head{padding:14px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:10px}.mobile-menu-modal__head h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.mobile-menu-modal__close{width:28px;height:28px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-secondary);background:transparent;display:inline-flex;align-items:center;justify-content:center}.mobile-menu-modal__body{padding:14px 16px}.mobile-menu-modal__body p{margin:0;font-size:14px;color:var(--color-text-secondary)}.mobile-menu-modal__body ul{margin:0;padding-left:18px;display:grid;gap:8px;color:var(--color-text-secondary);font-size:14px}.mobile-menu-modal__actions{padding:12px 16px 16px;display:flex;gap:10px;justify-content:flex-end}.mobile-menu-btn{min-width:110px;height:38px;border-radius:10px;padding:0 14px;font-size:13px;font-weight:600;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center}.mobile-menu-btn--ghost{border-color:var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary)}.mobile-menu-btn--danger{border-color:#ef4444;background:#dc2626;color:#fff}@media (min-width: 769px){.mobile-menu-page{padding-bottom:24px}}.messages-list-page,.messages-thread-page{width:100%;max-width:880px;margin:0 auto;min-height:0;background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:14px;border:1px solid var(--color-border);overflow:hidden}.messages-list-page{min-height:calc(100vh - 90px);display:flex;flex-direction:column}.messages-thread-page{display:flex;flex-direction:column;height:100%;max-height:100%}.messages-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--color-border);background:var(--color-bg-primary)}.messages-list-header h1{margin:0;font-size:24px;font-weight:700;line-height:1.1}.messages-list-header p{margin:4px 0 0;font-size:13px;color:var(--color-text-tertiary)}.messages-new-btn{width:40px;height:40px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center}.messages-search{margin:12px 16px;height:42px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-secondary);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--color-text-tertiary)}.messages-search input{width:100%;border:none;outline:none;background:transparent;font-size:15px;color:var(--color-text-primary)}.messages-search input::placeholder{color:var(--color-text-tertiary)}.messages-list{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;max-height:none}.messages-item{width:100%;min-height:72px;border:none;border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);padding:12px 16px;display:flex;align-items:center;gap:12px;text-align:left}.messages-item.is-unread{background:color-mix(in srgb,var(--color-success) 10%,var(--color-bg-primary))}.messages-avatar{width:48px;height:48px;border-radius:999px;background:linear-gradient(140deg,#10b981,#4a7c45);color:#fff;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-avatar.is-group{background:linear-gradient(140deg,#4b5563,#1f2937)}.messages-item-main{min-width:0;flex:1}.messages-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.messages-item-name{margin:0;font-size:16px;font-weight:700;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-item-time{font-size:12px;color:var(--color-text-tertiary);white-space:nowrap}.messages-item-preview{margin:3px 0 0;font-size:14px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-item-sub{margin:2px 0 0;font-size:12px;color:var(--color-text-tertiary)}.messages-item-badge{min-width:20px;height:20px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}.messages-empty{min-height:220px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;color:var(--color-text-tertiary);padding:16px}.messages-empty-icon{margin:0;font-size:56px}.messages-empty h3{margin:0;font-size:17px;color:var(--color-text-primary)}.messages-thread-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-primary)}.messages-icon-btn{width:36px;height:36px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-thread-user{min-width:0;flex:1;display:flex;align-items:center;gap:10px}.messages-thread-name{margin:0;font-size:16px;font-weight:700;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages-thread-subtitle{margin:2px 0 0;font-size:12px;color:var(--color-text-tertiary)}.messages-thread-body{padding:14px 10px 10px;flex:1;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;background:var(--color-bg-primary)}.messages-bubble-list{display:flex;flex-direction:column;gap:6px}.messages-day-separator{margin:8px auto;border-radius:999px;background:var(--color-bg-secondary);color:var(--color-text-tertiary);font-size:11px;padding:3px 10px;width:fit-content}.messages-row{display:flex;gap:8px;align-items:flex-end}.messages-row.is-theirs{justify-content:flex-start}.messages-row.is-mine{justify-content:flex-end}.messages-row.with-avatar{margin-top:8px}.messages-avatar-small{width:26px;height:26px;border-radius:999px;background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-bubble-wrap{max-width:75%;display:flex;flex-direction:column}.messages-bubble-wrap.is-mine{align-items:flex-end}.messages-bubble-wrap.is-theirs{align-items:flex-start}.messages-sender-name{margin:0 0 4px;font-size:11px;color:var(--color-text-tertiary)}.messages-bubble{border-radius:18px;padding:12px 16px;font-size:15px;line-height:1.38;white-space:pre-wrap;word-break:break-word}.messages-bubble.is-mine{background:#10b981;color:#fff}.messages-bubble.is-theirs{background:#e5e7eb;color:#111827}html.dark .messages-bubble.is-theirs{background:#374151;color:#f9fafb}.messages-bubble-time{margin:0 2px 4px;font-size:11px;color:var(--color-text-tertiary);line-height:1}.messages-bubble-time:before{content:"•";display:inline-block;margin-right:4px}.messages-input-bar{position:relative;bottom:auto;z-index:10;border-top:1px solid var(--color-border);background:var(--color-bg-primary);padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:flex-end;gap:8px;flex-shrink:0}.messages-input-bar textarea{flex:1;min-height:42px;max-height:120px;resize:none;border:1px solid transparent;border-radius:24px;background:#f3f4f6;color:#111827;padding:11px 14px;font-size:16px;line-height:1.35;overflow-y:auto}.messages-input-bar textarea:focus{border-color:#10b981}html.dark .messages-input-bar textarea{background:#374151;color:#f9fafb}.messages-send-btn{width:40px;height:40px;border:none;border-radius:999px;background:#10b981;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.messages-send-btn:disabled{background:#9ca3af;color:#fff}.messages-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0f172a80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center}.messages-sheet{width:100%;max-width:540px;max-height:86vh;overflow:auto;border-radius:16px 16px 0 0;border:1px solid var(--color-border);background:var(--color-bg-primary);padding:14px}.messages-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.messages-sheet-head h3{margin:0;font-size:18px;font-weight:700}.messages-sheet-content p{margin:0 0 8px}.messages-member-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}.messages-member-item{display:flex;align-items:center;gap:8px}.messages-member-item p{margin:0;font-size:14px;color:var(--color-text-primary)}.messages-member-item small{color:var(--color-text-tertiary)}.messages-avatar-mini{width:30px;height:30px;border-radius:999px;background:var(--color-bg-tertiary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.messages-secondary-btn,.messages-primary-btn,.messages-danger-btn{width:100%;min-height:40px;border-radius:10px;font-size:14px;font-weight:600;border:1px solid var(--color-border);margin-top:8px}.messages-secondary-btn{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.messages-primary-btn{background:#10b981;color:#fff;border:none}.messages-danger-btn{background:#7f1d1d;color:#fecaca;border:none}.messages-group-form{margin-top:10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-secondary);padding:10px;display:flex;flex-direction:column;gap:8px}.messages-group-form input{height:40px;border-radius:10px}.messages-group-list,.messages-compose-list{max-height:220px;overflow:auto;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-primary)}.messages-group-member,.messages-compose-item{width:100%;min-height:48px;padding:8px 10px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--color-border);text-align:left}.messages-group-member:last-child,.messages-compose-item:last-child{border-bottom:none}.messages-group-member span,.messages-compose-item p{margin:0;font-size:14px;color:var(--color-text-primary)}.messages-group-member small,.messages-compose-item small{color:var(--color-text-tertiary)}.messages-compose-item{border:none;background:var(--color-bg-primary)}@media (max-width: 768px){.content-area.content-area--messages{padding:0!important;overflow:hidden!important}.messages-list-page,.messages-thread-page{width:100%;margin:0;max-width:none;min-height:100%;height:100%;border-radius:0;border:none}.messages-list-page{min-height:100%}.messages-thread-page{height:100%;max-height:100%}.messages-list{max-height:none;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.messages-thread-body{min-height:0;max-height:none;padding:10px;padding-bottom:calc(136px + env(safe-area-inset-bottom))}.messages-input-bar{position:fixed;left:0;right:0;bottom:calc(71px + env(safe-area-inset-bottom));z-index:90;border-top:none;border-radius:0;padding:10px 12px;box-shadow:0 -1px 0 var(--color-border)}}.messages-bubble-time:before{content:"•"}.mobile-premium-shell{position:relative}.ptr-indicator{position:sticky;top:0;z-index:35;height:0;pointer-events:none}.ptr-indicator-inner{margin:0 auto;width:40px;height:40px;border-radius:999px;border:1px solid rgba(5,150,105,.22);background:#ffffffeb;display:flex;align-items:center;justify-content:center;color:#059669;transform-origin:center;box-shadow:0 8px 24px #0f172a14}.ptr-indicator-inner .is-spinning{animation:ptr-spin .8s linear infinite}.ptr-indicator-inner .is-success{color:#059669}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mobile-skeleton-list{display:flex;flex-direction:column;gap:12px;width:min(100%,980px);margin:0 auto}.mobile-skeleton-card{border:1px solid #e5e7eb;border-radius:12px;background:#fff;padding:14px;display:flex;flex-direction:column;gap:10px}.mobile-skeleton-card.is-compact{padding:10px}.mobile-skeleton-line,.mobile-skeleton-circle{background:linear-gradient(90deg,#e5e7eb,#f3f4f6,#e5e7eb);background-size:200% 100%;animation:mobile-skeleton-shimmer 1.5s linear infinite}.mobile-skeleton-line{height:12px;border-radius:999px}.mobile-skeleton-line.is-title{width:78%}.mobile-skeleton-line.is-subtitle{width:58%}.mobile-skeleton-line.is-meta{width:48%}.mobile-skeleton-circle{width:18px;height:18px;border-radius:999px}.mobile-skeleton-row{display:flex;align-items:center;gap:8px}@keyframes mobile-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.swipeable-card{position:relative;overflow:hidden;border-radius:12px}.swipeable-card-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:0 16px;font-size:13px;font-weight:700;letter-spacing:.01em;opacity:0;transition:opacity .14s ease}.swipeable-card-bg-right{justify-content:flex-start;color:#fff;background:linear-gradient(90deg,#047857,#059669 70%)}.swipeable-card-bg-left{justify-content:flex-end;color:#fff;background:linear-gradient(90deg,#dc2626,#b91c1c 80%)}.swipeable-card-bg-icon{display:inline-flex;align-items:center;justify-content:center;transform:scale(.95);transition:opacity .14s ease,transform .14s ease}.swipeable-card-bg-label{margin:0 8px;opacity:.92}.swipeable-card-content{position:relative;transition:transform .23s cubic-bezier(.34,1.56,.64,1);will-change:transform}.swipeable-card-content.is-processing{opacity:.82}.swipe-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1600;background:#11182759;display:flex;align-items:flex-end;justify-content:center;padding:16px}.swipe-confirm-sheet{width:min(100%,520px);background:#fff;border-radius:16px;box-shadow:0 24px 60px #0f172a2e;padding:16px;animation:swipe-sheet-in .22s ease-out}.swipe-confirm-title{display:flex;align-items:center;gap:8px;font-weight:600;color:#111827}.swipe-confirm-actions{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.swipe-confirm-btn{border:1px solid #d1d5db;border-radius:10px;padding:10px 12px;font-weight:600;background:#fff}.swipe-confirm-btn.is-danger{border-color:#dc2626;background:#dc2626;color:#fff}@keyframes swipe-sheet-in{0%{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}.mobile-toast{position:fixed;top:calc(20px + env(safe-area-inset-top));left:50%;transform:translate(-50%,-120%);width:min(92vw,520px);display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:10px;border-radius:12px;color:#fff;padding:12px 14px;z-index:1700;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .26s ease;box-shadow:0 10px 24px #02061740}.mobile-toast.is-visible{transform:translate(-50%);opacity:1}.mobile-toast-success{background:#059669}.mobile-toast-error{background:#dc2626}.mobile-toast-info{background:#3b82f6}.mobile-toast-warning{background:#f59e0b;color:#111827}.mobile-toast-icon{display:inline-flex;align-items:center;justify-content:center}.mobile-toast-message{margin:0;font-size:14px;font-weight:500}.mobile-toast-action,.mobile-toast-close{border:none;background:transparent;color:inherit;font-weight:700;font-size:12px;cursor:pointer}.mobile-toast-close{display:inline-flex;align-items:center;justify-content:center}button,.btn,[role=button]{-webkit-tap-highlight-color:transparent;transition:transform .1s ease-out,box-shadow .18s ease-out,filter .18s ease-out}button:active,.btn:active,[role=button]:active{transform:scale(.95)}.btn-primary:active,.planning-btn-primary:active,.dashboard-v2-action:active,.btn-new-task-field:active{box-shadow:0 0 0 6px #05966924;filter:brightness(.98)}:root.dark .ptr-indicator-inner,:root[data-theme=dark] .ptr-indicator-inner{background:#111827eb;color:#34d399;border-color:#34d3994d}:root.dark .mobile-skeleton-card,:root[data-theme=dark] .mobile-skeleton-card{background:#111827;border-color:#1f2937}:root.dark .mobile-skeleton-line,:root[data-theme=dark] .mobile-skeleton-line,:root.dark .mobile-skeleton-circle,:root[data-theme=dark] .mobile-skeleton-circle{background:linear-gradient(90deg,#1f2937,#374151,#1f2937);background-size:200% 100%}:root.dark .swipe-confirm-sheet,:root[data-theme=dark] .swipe-confirm-sheet{background:#111827;color:#f9fafb}:root.dark .swipe-confirm-btn,:root[data-theme=dark] .swipe-confirm-btn{border-color:#374151;background:#111827;color:#f9fafb}:root{--anim-fast: .15s;--anim-normal: .3s;--anim-slow: .5s;--anim-ease-out: cubic-bezier(0, 0, .2, 1);--anim-ease-in: cubic-bezier(.4, 0, 1, 1);--anim-ease-in-out: cubic-bezier(.4, 0, .2, 1);--anim-spring: cubic-bezier(.34, 1.56, .64, 1);--anim-bounce: cubic-bezier(.68, -.55, .265, 1.55)}.content-area{position:relative;overflow-x:clip}.page-transition-shell{min-height:100%;will-change:transform,opacity;transform:translateZ(0)}.page-transition-shell.direction-forward{animation:page-enter-forward var(--anim-normal) var(--anim-ease-out) both}.page-transition-shell.direction-back{animation:page-enter-back var(--anim-normal) var(--anim-ease-out) both}.page-transition-shell.direction-none{animation:app-fade-in .18s var(--anim-ease-out) both}.modal-overlay,.planning-overlay,.dash-sensor-modal-overlay,.daily-report-lock-overlay,.chat-overlay,.notifications-overlay{animation:overlay-fade-in .22s var(--anim-ease-out) both}.modal,.planning-dialog,.dash-sensor-modal,.daily-report-lock-modal,.chat-panel,.notifications-panel{animation:app-scale-in var(--anim-normal) var(--anim-spring) both;transform-origin:center;will-change:transform,opacity}@media (max-width: 768px){.modal,.planning-dialog,.dash-sensor-modal,.daily-report-lock-modal,.chat-panel,.notifications-panel{animation:app-slide-in-up var(--anim-normal) var(--anim-spring) both}}@media (hover: hover) and (pointer: fine){.card,.dash-card,.task-card,.planning-card,.planning-day-cell,.planning-day-task-card,.stats-card,.notifications-item,.chat-list-item,.zone-card{transition:transform var(--anim-fast) var(--anim-ease-out),box-shadow var(--anim-fast) var(--anim-ease-out),border-color var(--anim-fast) var(--anim-ease-out)}.card:hover,.dash-card:hover,.task-card:hover,.planning-card:hover,.planning-day-cell:hover,.planning-day-task-card:hover,.stats-card:hover,.notifications-item:hover,.chat-list-item:hover,.zone-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a14}}@media (hover: none) and (pointer: coarse){.card:active,.dash-card:active,.task-card:active,.planning-card:active,.planning-day-cell:active,.planning-day-task-card:active,.stats-card:active,.notifications-item:active,.chat-list-item:active,.dashboard-mobile-task-card:active,.zone-card:active{transform:scale(.985)}}button,.btn,.planning-btn,.action-btn,.dashboard-mobile-fab{position:relative;overflow:hidden;transition:transform .1s ease-out,box-shadow .18s var(--anim-ease-out),filter .18s var(--anim-ease-out)}button:focus-visible,.btn:focus-visible,.planning-btn:focus-visible,.action-btn:focus-visible,.dashboard-mobile-fab:focus-visible{outline:none;box-shadow:0 0 0 2px #059669,0 0 0 4px #05966929}button:active,.btn:active,.planning-btn:active,.action-btn:active,.dashboard-mobile-fab:active{transform:scale(.96)}button:after,.btn:after,.planning-btn:after,.action-btn:after,.dashboard-mobile-fab:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;opacity:0;transform:scale(.2);background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 60%)}button:active:after,.btn:active:after,.planning-btn:active:after,.action-btn:active:after,.dashboard-mobile-fab:active:after{animation:ripple-wave .6s var(--anim-ease-out) forwards}input,textarea,select,.form-input,.stats-select,.filter-select,.chat-input-row input{transition:border-color var(--anim-fast) var(--anim-ease-out),box-shadow var(--anim-fast) var(--anim-ease-out),background-color var(--anim-fast) var(--anim-ease-out),transform var(--anim-fast) var(--anim-ease-out)}input:focus,textarea:focus,select:focus,.form-input:focus,.stats-select:focus,.filter-select:focus,.chat-input-row input:focus{transform:translateY(-1px)}.chat-list>.chat-list-item,.notifications-list>.notifications-item,.stats-activity-list>.stats-activity-row,.stats-daily-history-list>.stats-daily-history-item{animation:list-item-enter .32s var(--anim-ease-out) both}.chat-list>.chat-list-item:nth-child(2),.notifications-list>.notifications-item:nth-child(2),.stats-activity-list>.stats-activity-row:nth-child(2),.stats-daily-history-list>.stats-daily-history-item:nth-child(2){animation-delay:40ms}.chat-list>.chat-list-item:nth-child(3),.notifications-list>.notifications-item:nth-child(3),.stats-activity-list>.stats-activity-row:nth-child(3),.stats-daily-history-list>.stats-daily-history-item:nth-child(3){animation-delay:80ms}.chat-list>.chat-list-item:nth-child(4),.notifications-list>.notifications-item:nth-child(4),.stats-activity-list>.stats-activity-row:nth-child(4),.stats-daily-history-list>.stats-daily-history-item:nth-child(4){animation-delay:.12s}.mobile-toast{overflow:hidden;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.mobile-toast.is-visible.mobile-toast-error{animation:toast-error-pop .42s var(--anim-spring)}.mobile-toast-progress{position:absolute;left:0;right:0;bottom:0;height:3px;background:#ffffffbf;transform-origin:left center;animation-name:toast-progress;animation-timing-function:linear;animation-fill-mode:forwards}.mobile-toast-warning .mobile-toast-progress{background:#11182780}.mobile-toast.is-paused .mobile-toast-progress{animation-play-state:paused}.mobile-bottom-nav__tab.is-active .mobile-bottom-nav__icon-wrap{transform:translateY(-2px) scale(1.04);transition:transform var(--anim-fast) var(--anim-ease-out)}.mobile-bottom-nav__tab,.mobile-bottom-nav__icon-wrap,.chat-bell-btn,.notifications-bell-btn{overflow:visible}.mobile-bottom-nav__badge,.chat-bell-badge,.notifications-badge{z-index:6}.mobile-bottom-nav__badge.is-bump,.chat-bell-badge.is-bump,.notifications-badge.is-bump{animation:badge-pop-strong .42s var(--anim-spring)}.chat-bell-btn,.notifications-bell-btn{transition:transform var(--anim-fast) var(--anim-ease-out),box-shadow var(--anim-fast) var(--anim-ease-out),border-color var(--anim-fast) var(--anim-ease-out)}.chat-bell-btn:focus-visible,.notifications-bell-btn:focus-visible{border-color:#059669}.stats-chart-wrap,.dash-sensor-chart,.recharts-wrapper{animation:app-fade-in .42s var(--anim-ease-out) both}.dashboard-mobile-progress span,.progress-fill{transform-origin:left center;animation:progress-grow .85s var(--anim-ease-out) both}@keyframes page-enter-forward{0%{opacity:0;transform:translate3d(22px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes page-enter-back{0%{opacity:0;transform:translate3d(-22px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ripple-wave{0%{opacity:.45;transform:scale(.2)}to{opacity:0;transform:scale(2.2)}}@keyframes list-item-enter{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes toast-error-pop{0%{transform:translate(-50%,-14px) scale(.95)}35%{transform:translate(-50%) scale(1.02)}55%{transform:translate(calc(-50% - 3px)) scale(1)}75%{transform:translate(calc(-50% + 3px)) scale(1)}to{transform:translate(-50%) scale(1)}}@keyframes toast-progress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes badge-pop-strong{0%{transform:scale(.2) rotate(-12deg)}55%{transform:scale(1.2) rotate(4deg)}to{transform:scale(1) rotate(0)}}@keyframes app-fade-in{0%{opacity:0}to{opacity:1}}@keyframes app-fade-out{0%{opacity:1}to{opacity:0}}@keyframes app-slide-in-up{0%{opacity:0;transform:translate3d(0,20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes app-slide-in-down{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes app-slide-in-left{0%{opacity:0;transform:translate3d(-24px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes app-slide-in-right{0%{opacity:0;transform:translate3d(24px,0,0)}to{opacity:1;transform:translateZ(0)}}@keyframes app-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes app-scale-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}@keyframes app-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}}@keyframes app-pulse{0%,to{opacity:1}50%{opacity:.65}}@keyframes app-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes app-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root.dark body,:root[data-theme=dark] body{background:var(--color-bg-primary);color:var(--color-text-primary)}:root.dark .app-header,:root[data-theme=dark] .app-header{background:#111827d1;border-bottom-color:var(--color-border);backdrop-filter:blur(14px) saturate(165%);-webkit-backdrop-filter:blur(14px) saturate(165%)}:root.dark .sidebar,:root[data-theme=dark] .sidebar{background:linear-gradient(180deg,#0f172a,#111827);box-shadow:var(--elevation-4)}:root.dark .card,:root[data-theme=dark] .card,:root.dark .dash-card,:root[data-theme=dark] .dash-card,:root.dark .planning-card,:root[data-theme=dark] .planning-card,:root.dark .stats-card,:root[data-theme=dark] .stats-card,:root.dark .task-card,:root[data-theme=dark] .task-card,:root.dark .zone-card,:root[data-theme=dark] .zone-card,:root.dark .mobile-menu-card,:root[data-theme=dark] .mobile-menu-card,:root.dark .mobile-menu-header,:root[data-theme=dark] .mobile-menu-header,:root.dark .dashboard-mobile-section,:root[data-theme=dark] .dashboard-mobile-section,:root.dark .dashboard-mobile-urgency-item,:root[data-theme=dark] .dashboard-mobile-urgency-item,:root.dark .dashboard-mobile-weather-main,:root[data-theme=dark] .dashboard-mobile-weather-main,:root.dark .dashboard-mobile-forecast-item,:root[data-theme=dark] .dashboard-mobile-forecast-item,:root.dark .dashboard-mobile-week-item,:root[data-theme=dark] .dashboard-mobile-week-item,:root.dark .dashboard-mobile-task-card,:root[data-theme=dark] .dashboard-mobile-task-card,:root.dark .daily-report-kpi,:root[data-theme=dark] .daily-report-kpi,:root.dark .daily-report-panel,:root[data-theme=dark] .daily-report-panel,:root.dark .settings-card,:root[data-theme=dark] .settings-card{background:var(--color-bg-secondary);border-color:var(--color-border);box-shadow:var(--elevation-1)}:root.dark .chat-panel,:root[data-theme=dark] .chat-panel,:root.dark .notifications-panel,:root[data-theme=dark] .notifications-panel,:root.dark .modal,:root[data-theme=dark] .modal,:root.dark .planning-dialog,:root[data-theme=dark] .planning-dialog,:root.dark .dash-sensor-modal,:root[data-theme=dark] .dash-sensor-modal,:root.dark .daily-report-lock-modal,:root[data-theme=dark] .daily-report-lock-modal,:root.dark .profile-crop-modal,:root[data-theme=dark] .profile-crop-modal{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text-primary);box-shadow:var(--elevation-3)}:root.dark .modal-overlay,:root[data-theme=dark] .modal-overlay,:root.dark .planning-overlay,:root[data-theme=dark] .planning-overlay,:root.dark .dash-sensor-modal-overlay,:root[data-theme=dark] .dash-sensor-modal-overlay,:root.dark .daily-report-lock-overlay,:root[data-theme=dark] .daily-report-lock-overlay,:root.dark .chat-overlay,:root[data-theme=dark] .chat-overlay,:root.dark .notifications-overlay,:root[data-theme=dark] .notifications-overlay,:root.dark .profile-crop-overlay,:root[data-theme=dark] .profile-crop-overlay{background:#000000b8}:root.dark .mobile-bottom-nav,:root[data-theme=dark] .mobile-bottom-nav{background:linear-gradient(to top,#ffffffeb,#ffffffc7 80%,#fff0);border-top-color:#0f172a14;box-shadow:var(--elevation-2)}:root.dark .mobile-bottom-nav__tab,:root[data-theme=dark] .mobile-bottom-nav__tab{color:#9ca3af}:root.dark .mobile-bottom-nav__tab.is-active,:root[data-theme=dark] .mobile-bottom-nav__tab.is-active{color:#059669;background:#05966914}:root.dark .mobile-toast,:root[data-theme=dark] .mobile-toast{border:1px solid rgba(255,255,255,.14)}:root.dark .mobile-toast-success,:root[data-theme=dark] .mobile-toast-success{background:#065f46}:root.dark .mobile-toast-error,:root[data-theme=dark] .mobile-toast-error{background:#7f1d1d}:root.dark .mobile-toast-info,:root[data-theme=dark] .mobile-toast-info{background:#1e3a8a}:root.dark .mobile-toast-warning,:root[data-theme=dark] .mobile-toast-warning{background:#78350f;color:#fde68a}:root.dark .mobile-menu-logout,:root[data-theme=dark] .mobile-menu-logout{background:#7f1d1d;border-color:#ef4444;color:#fecaca}:root.dark .btn-secondary,:root[data-theme=dark] .btn-secondary,:root.dark .planning-btn-secondary,:root[data-theme=dark] .planning-btn-secondary,:root.dark .stats-btn-secondary,:root[data-theme=dark] .stats-btn-secondary,:root.dark .chat-bell-btn,:root[data-theme=dark] .chat-bell-btn,:root.dark .notifications-bell-btn,:root[data-theme=dark] .notifications-bell-btn{background:var(--color-bg-tertiary);border-color:var(--color-border);color:var(--color-text-primary)}:root.dark .btn-primary,:root[data-theme=dark] .btn-primary,:root.dark .planning-btn-primary,:root[data-theme=dark] .planning-btn-primary,:root.dark .stats-btn-primary,:root[data-theme=dark] .stats-btn-primary,:root.dark .chat-input-row button,:root[data-theme=dark] .chat-input-row button{background:var(--color-leaf);border-color:var(--color-leaf);color:#052e1b}:root.dark .btn-primary:hover,:root[data-theme=dark] .btn-primary:hover,:root.dark .planning-btn-primary:hover,:root[data-theme=dark] .planning-btn-primary:hover{background:#34d399}:root.dark input,:root[data-theme=dark] input,:root.dark textarea,:root[data-theme=dark] textarea,:root.dark select,:root[data-theme=dark] select,:root.dark .form-input,:root[data-theme=dark] .form-input,:root.dark .stats-select,:root[data-theme=dark] .stats-select{background:var(--color-bg-tertiary);border-color:var(--color-border);color:var(--color-text-primary)}:root.dark input::placeholder,:root[data-theme=dark] input::placeholder,:root.dark textarea::placeholder,:root[data-theme=dark] textarea::placeholder{color:var(--color-text-tertiary)}:root.dark .text-secondary,:root[data-theme=dark] .text-secondary,:root.dark p,:root[data-theme=dark] p,:root.dark .dash-subtitle,:root[data-theme=dark] .dash-subtitle,:root.dark .task-meta-item,:root[data-theme=dark] .task-meta-item,:root.dark .stats-header p,:root[data-theme=dark] .stats-header p{color:var(--color-text-secondary)}:root.dark .dash-title,:root[data-theme=dark] .dash-title,:root.dark .planning-header h1,:root[data-theme=dark] .planning-header h1,:root.dark .stats-header h1,:root[data-theme=dark] .stats-header h1,:root.dark .mobile-menu-header__meta h1,:root[data-theme=dark] .mobile-menu-header__meta h1,:root.dark .chat-panel-header h3,:root[data-theme=dark] .chat-panel-header h3,:root.dark .notifications-header h3,:root[data-theme=dark] .notifications-header h3{color:var(--color-text-primary)}:root.dark .planning-day-cell,:root[data-theme=dark] .planning-day-cell,:root.dark .planning-week-card,:root[data-theme=dark] .planning-week-card,:root.dark .planning-day-task-chip,:root[data-theme=dark] .planning-day-task-chip,:root.dark .stats-activity-row,:root[data-theme=dark] .stats-activity-row,:root.dark .stats-daily-history-item,:root[data-theme=dark] .stats-daily-history-item,:root.dark .chat-list-item,:root[data-theme=dark] .chat-list-item,:root.dark .notifications-item,:root[data-theme=dark] .notifications-item{background:var(--color-bg-secondary);border-color:var(--color-border)}:root.dark .chat-list-item.is-unread,:root[data-theme=dark] .chat-list-item.is-unread{background:#10b98121;border-left-color:#10b981}:root.dark .notifications-item.is-unread,:root[data-theme=dark] .notifications-item.is-unread{background:#3b82f621;border-left-color:#3b82f6}:root.dark .dash-sensor-bar-track,:root[data-theme=dark] .dash-sensor-bar-track,:root.dark .dashboard-v2-mini-bar-track,:root[data-theme=dark] .dashboard-v2-mini-bar-track{background:#ffffff14}:root.dark .mobile-skeleton-card,:root[data-theme=dark] .mobile-skeleton-card{background:var(--color-bg-secondary);border-color:var(--color-border)}:root.dark .recharts-cartesian-grid-horizontal line,:root[data-theme=dark] .recharts-cartesian-grid-horizontal line,:root.dark .recharts-cartesian-grid-vertical line,:root[data-theme=dark] .recharts-cartesian-grid-vertical line{stroke:#ffffff14}:root.dark .recharts-text,:root[data-theme=dark] .recharts-text{fill:#9ca3af}:root.dark .stats-activity-list,:root[data-theme=dark] .stats-activity-list,:root.dark .notifications-list,:root[data-theme=dark] .notifications-list,:root.dark .chat-list,:root[data-theme=dark] .chat-list{scrollbar-color:var(--color-scroll-thumb) var(--color-scroll-track)}:root.dark .dashboard-mobile-section,:root[data-theme=dark] .dashboard-mobile-section,:root.dark .dashboard-mobile-task-card,:root[data-theme=dark] .dashboard-mobile-task-card,:root.dark .dashboard-mobile-weather-main,:root[data-theme=dark] .dashboard-mobile-weather-main,:root.dark .dashboard-mobile-forecast-item,:root[data-theme=dark] .dashboard-mobile-forecast-item,:root.dark .dashboard-mobile-week-item,:root[data-theme=dark] .dashboard-mobile-week-item,:root.dark .dashboard-mobile-mini-btn,:root[data-theme=dark] .dashboard-mobile-mini-btn,:root.dark .dashboard-mobile-sensor-row,:root[data-theme=dark] .dashboard-mobile-sensor-row,:root.dark .dashboard-mobile-fab-actions button,:root[data-theme=dark] .dashboard-mobile-fab-actions button,:root.dark .planning-card,:root[data-theme=dark] .planning-card,:root.dark .planning-tabs,:root[data-theme=dark] .planning-tabs,:root.dark .planning-day-cell,:root[data-theme=dark] .planning-day-cell,:root.dark .planning-day-task-chip,:root[data-theme=dark] .planning-day-task-chip,:root.dark .planning-week-card,:root[data-theme=dark] .planning-week-card,:root.dark .planning-dialog,:root[data-theme=dark] .planning-dialog,:root.dark .planning-weather-column,:root[data-theme=dark] .planning-weather-column,:root.dark .planning-day-task-card,:root[data-theme=dark] .planning-day-task-card,:root.dark .zone-card,:root[data-theme=dark] .zone-card,:root.dark .zone-task-toggle,:root[data-theme=dark] .zone-task-toggle,:root.dark .sub-zone-task-toggle,:root[data-theme=dark] .sub-zone-task-toggle,:root.dark .zone-task-row,:root[data-theme=dark] .zone-task-row,:root.dark .sub-zone-item,:root[data-theme=dark] .sub-zone-item,:root.dark .zone-inherited-color,:root[data-theme=dark] .zone-inherited-color,:root.dark .color-option,:root[data-theme=dark] .color-option,:root.dark .team-card,:root[data-theme=dark] .team-card,:root.dark .team-member-card,:root[data-theme=dark] .team-member-card,:root.dark .team-member-icon,:root[data-theme=dark] .team-member-icon,:root.dark .team-stat-item,:root[data-theme=dark] .team-stat-item,:root.dark .team-role-select,:root[data-theme=dark] .team-role-select,:root.dark .team-modal,:root[data-theme=dark] .team-modal,:root.dark .team-input,:root[data-theme=dark] .team-input,:root.dark .arrosage-sensor-card,:root[data-theme=dark] .arrosage-sensor-card,:root.dark .arrosage-filter-input,:root[data-theme=dark] .arrosage-filter-input,:root.dark .arrosage-details-btn,:root[data-theme=dark] .arrosage-details-btn,:root.dark .arrosage-empty,:root[data-theme=dark] .arrosage-empty,:root.dark .arrosage-modal,:root[data-theme=dark] .arrosage-modal,:root.dark .arrosage-form-input,:root[data-theme=dark] .arrosage-form-input,:root.dark .stats-header,:root[data-theme=dark] .stats-header{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text-primary);border-radius:12px;box-shadow:0 2px 8px #0000004d;transition:all .2s cubic-bezier(.4,0,.2,1)}:root.dark .dash-card:hover,:root[data-theme=dark] .dash-card:hover,:root.dark .planning-card:hover,:root[data-theme=dark] .planning-card:hover,:root.dark .zone-card:hover,:root[data-theme=dark] .zone-card:hover,:root.dark .team-member-card:hover,:root[data-theme=dark] .team-member-card:hover,:root.dark .arrosage-sensor-card:hover,:root[data-theme=dark] .arrosage-sensor-card:hover{background:#374151;border-color:#ffffff26;box-shadow:0 4px 12px #0006}:root.dark .dash-card.dash-overview,:root[data-theme=dark] .dash-card.dash-overview{background:#fff;border-color:#e5e7eb;color:#111827}:root.dark .dash-card.dash-overview .dash-title,:root[data-theme=dark] .dash-card.dash-overview .dash-title{color:#111827}:root.dark .dash-card.dash-overview .dash-subtitle,:root[data-theme=dark] .dash-card.dash-overview .dash-subtitle{color:#4b5563}:root.dark .dash-section-caption,:root[data-theme=dark] .dash-section-caption,:root.dark .dashboard-mobile-section-head h3,:root[data-theme=dark] .dashboard-mobile-section-head h3,:root.dark .dashboard-mobile-collapse-trigger,:root[data-theme=dark] .dashboard-mobile-collapse-trigger,:root.dark .planning-section-title,:root[data-theme=dark] .planning-section-title,:root.dark .team-section-head h2,:root[data-theme=dark] .team-section-head h2,:root.dark .team-stats-title,:root[data-theme=dark] .team-stats-title,:root.dark .zone-type-option,:root[data-theme=dark] .zone-type-option,:root.dark .arrosage-sensor-info-row span,:root[data-theme=dark] .arrosage-sensor-info-row span{color:#d1d5db}:root.dark .dash-title,:root[data-theme=dark] .dash-title,:root.dark .arrosage-header h1,:root[data-theme=dark] .arrosage-header h1,:root.dark .team-header h1,:root[data-theme=dark] .team-header h1,:root.dark .zone-page-head h1,:root[data-theme=dark] .zone-page-head h1,:root.dark .planning-header h1,:root[data-theme=dark] .planning-header h1{color:#f9fafb}:root.dark .dash-subtitle,:root[data-theme=dark] .dash-subtitle,:root.dark .arrosage-subtitle,:root[data-theme=dark] .arrosage-subtitle,:root.dark .zone-page-subtitle,:root[data-theme=dark] .zone-page-subtitle,:root.dark .planning-header p,:root[data-theme=dark] .planning-header p,:root.dark .team-header p,:root[data-theme=dark] .team-header p{color:#9ca3af}@layer reset,variables,base,layout,components,utilities;@layer reset{*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{width:100%;height:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{width:100%;min-height:100vh;margin:0;padding:0;overflow-x:hidden;position:relative;line-height:1.5}html.app-shell-locked,body.app-shell-locked{width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root{isolation:isolate;min-height:100vh;width:100%;max-width:100%}table{width:100%;table-layout:fixed}}@layer variables{:root{--color-earth-dark: #2c2419;--color-earth: #4a3f2f;--color-earth-light: #6b5d47;--color-leaf-dark: #2d4a2b;--color-leaf: #4a7c45;--color-leaf-light: #6b9b67;--color-stone: #5d6569;--color-stone-light: #8a9296;--color-accent-warm: #d4855f;--color-accent-fresh: #7fba6c;--color-accent-flower: #c2896f;--color-bg-primary: #fafaf8;--color-bg-secondary: #f0f0ed;--color-bg-tertiary: #e5e5e0;--color-text-primary: #2c2419;--color-text-secondary: #4a3f2f;--color-text-tertiary: #6b5d47;--color-border: #d5d3cc;--color-border-hover: #b8b5aa;--color-success: #4a7c45;--color-warning: #d4855f;--color-error: #b84a3f;--color-info: #5d6569;--font-display: "Libre Baskerville", "Georgia", serif;--font-body: "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--line-height-tight: 1.25;--line-height-base: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(44, 36, 25, .08);--shadow-md: 0 4px 8px rgba(44, 36, 25, .12);--shadow-lg: 0 8px 16px rgba(44, 36, 25, .16);--shadow-xl: 0 20px 25px rgba(44, 36, 25, .15), 0 10px 10px rgba(44, 36, 25, .04);--elevation-1: 0 1px 3px rgba(0, 0, 0, .12), 0 1px 2px rgba(0, 0, 0, .08);--elevation-2: 0 4px 6px rgba(0, 0, 0, .07), 0 2px 4px rgba(0, 0, 0, .05);--elevation-3: 0 10px 15px rgba(0, 0, 0, .1), 0 4px 6px rgba(0, 0, 0, .05);--elevation-4: 0 20px 25px rgba(0, 0, 0, .15), 0 10px 10px rgba(0, 0, 0, .04);--color-scroll-track: #f3f4f6;--color-scroll-thumb: #d1d5db;--color-scroll-thumb-hover: #9ca3af;--focus-ring: #059669;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .35s ease;--sidebar-width: 280px;--header-height: 64px;--max-content-width: 1400px;color-scheme:light}:root.dark,:root[data-theme=dark]{--color-earth-dark: #0b1220;--color-earth: #111827;--color-earth-light: #1f2937;--color-leaf-dark: #059669;--color-leaf: #10b981;--color-leaf-light: #34d399;--color-stone: #9ca3af;--color-stone-light: #6b7280;--color-accent-warm: #f59e0b;--color-accent-fresh: #22c55e;--color-accent-flower: #ef4444;--color-bg-primary: #111827;--color-bg-secondary: #1f2937;--color-bg-tertiary: #374151;--color-text-primary: #f9fafb;--color-text-secondary: #d1d5db;--color-text-tertiary: #9ca3af;--color-border: rgba(255, 255, 255, .12);--color-border-hover: rgba(255, 255, 255, .2);--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .6), 0 4px 6px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .7), 0 10px 10px rgba(0, 0, 0, .6);--elevation-1: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--elevation-2: 0 4px 6px rgba(0, 0, 0, .5), 0 2px 4px rgba(0, 0, 0, .4);--elevation-3: 0 10px 15px rgba(0, 0, 0, .6), 0 4px 6px rgba(0, 0, 0, .5);--elevation-4: 0 20px 25px rgba(0, 0, 0, .7), 0 10px 10px rgba(0, 0, 0, .6);--color-scroll-track: #1f2937;--color-scroll-thumb: #4b5563;--color-scroll-thumb-hover: #6b7280;--focus-ring: #10b981;color-scheme:dark}}@layer base{*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a,button{-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);transition:background-color .3s ease,color .3s ease}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:clamp(1.75rem,3vw,2rem);letter-spacing:-.02em}h2{font-size:clamp(1.5rem,2.4vw,1.75rem);letter-spacing:-.02em}h3{font-size:clamp(1.25rem,2vw,1.5rem)}h4{font-size:clamp(1.125rem,1.8vw,1.25rem)}h5{font-size:1.125rem}h6{font-size:var(--font-size-base)}a{color:var(--color-leaf);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-leaf-dark)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.skip-link{position:fixed;left:12px;top:10px;z-index:3000;background:var(--color-bg-primary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px;transform:translateY(-150%);transition:transform .18s ease;box-shadow:var(--elevation-3)}.skip-link:focus{transform:translateY(0)}.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}button{cursor:pointer;border:none;background:none;transition:all var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.5}input,textarea,select{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast),background-color .3s ease,color .3s ease}input,select,textarea,button{font-size:16px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-leaf)}::selection{background:#d1fae5;color:#065f46}:root.dark ::selection,:root[data-theme=dark] ::selection{background:#065f46;color:#d1fae5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-scroll-track)}::-webkit-scrollbar-thumb{background:var(--color-scroll-thumb);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-scroll-thumb-hover)}.section-title,.section-heading,.page-section-title{color:var(--color-text-secondary)}@media (max-width: 768px){body{padding-bottom:calc(70px + env(safe-area-inset-bottom))}body.app-shell-locked{padding-bottom:0}*::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}}}@layer layout{.app-container{display:flex;min-height:100dvh;height:100dvh;width:100%;max-width:100%;overflow-x:hidden;overflow-y:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--color-earth-dark);color:var(--color-bg-primary);display:flex;flex-direction:column;position:fixed;height:100dvh;left:0;top:0;z-index:100;box-shadow:var(--elevation-4);transition:background-color .3s ease,border-color .3s ease}.sidebar-header{padding:var(--space-xl) var(--space-lg);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--space-lg)}.sidebar-footer{padding:var(--space-lg);border-top:1px solid rgba(255,255,255,.1)}.sidebar-version{margin-top:var(--space-sm);font-size:10px;line-height:1;letter-spacing:.3px;color:#ffffff85;text-align:left;-webkit-user-select:none;user-select:none}.main-content{margin-left:var(--sidebar-width);flex:1;display:flex;flex-direction:column;min-height:100dvh;height:100dvh;min-width:0;max-width:100%;overflow:hidden}.app-header{height:var(--header-height);background-color:var(--color-bg-primary);border-bottom:1px solid var(--color-border);display:flex;align-items:center;padding:0 var(--space-xl);position:sticky;top:0;z-index:120;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);flex-shrink:0;box-shadow:var(--elevation-1);transition:background-color .3s ease,border-color .3s ease}.content-area{flex:1;padding:var(--space-xl);padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom));max-width:var(--max-content-width);margin:0 auto;width:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.stack{display:flex;flex-direction:column;gap:var(--space-md)}.stack-sm{gap:var(--space-sm)}.stack-lg{gap:var(--space-lg)}.stack-xl{gap:var(--space-xl)}@media (max-width: 1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform var(--transition-base)}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}.app-header{top:0;height:calc(var(--header-height) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.content-area{padding:16px;padding-bottom:calc(86px + env(safe-area-inset-bottom))}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}}@layer components{.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:all var(--transition-fast);cursor:pointer;border:none}.btn-primary{background-color:var(--color-leaf);color:#fff}.btn-primary:hover{background-color:var(--color-leaf-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover{background-color:var(--color-bg-tertiary);border-color:var(--color-border-hover)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background-color:var(--color-bg-secondary)}.card{background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-fast);box-shadow:var(--elevation-1)}.card-hover:hover{border-color:var(--color-border-hover);box-shadow:var(--elevation-2);transform:translateY(-2px)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.card-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.card-body{color:var(--color-text-secondary)}.nav-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-md);color:#ffffffb3;transition:all var(--transition-fast);cursor:pointer}.nav-item:hover{background-color:#ffffff0d;color:#fff}.nav-item.active{background-color:var(--color-leaf);color:#fff}.nav-icon{width:20px;height:20px}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.badge-success{background-color:var(--color-success);color:#fff}.badge-warning{background-color:var(--color-warning);color:#fff}.badge-error{background-color:var(--color-error);color:#fff}.badge-info{background-color:var(--color-info);color:#fff}.stat-card{background:linear-gradient(135deg,var(--color-earth) 0%,var(--color-earth-light) 100%);color:#fff;padding:var(--space-xl);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.stat-value{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xs)}.stat-label{font-size:var(--font-size-sm);opacity:.9}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.form-input{width:100%;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--color-leaf);box-shadow:0 0 0 3px #4a7c451a}.form-error{color:var(--color-error);font-size:var(--font-size-sm);margin-top:var(--space-xs)}.breadcrumb{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.breadcrumb-item{display:flex;align-items:center;gap:var(--space-sm)}.breadcrumb-separator{color:var(--color-border-hover)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:var(--space-md);background-color:var(--color-bg-secondary);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-md);border-bottom:1px solid var(--color-border)}.table tr:hover{background-color:var(--color-bg-secondary)}}@layer utilities{.m-0{margin:0}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.w-full{width:100%}.w-auto{width:auto}.cursor-pointer{cursor:pointer}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}}.calendar-container{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.calendar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.calendar-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.calendar-nav{display:flex;gap:var(--space-sm)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day-header{padding:var(--space-md);text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.calendar-day{min-height:120px;padding:var(--space-sm);border:1px solid var(--color-border);position:relative;cursor:pointer;transition:background-color var(--transition-fast)}.calendar-day:hover{background-color:var(--color-bg-secondary)}.calendar-day-number{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.calendar-day.today{background-color:#4a7c450d}.calendar-day.today .calendar-day-number{background-color:var(--color-leaf);color:#fff;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%}.calendar-day.other-month{opacity:.4}.calendar-tasks{display:flex;flex-direction:column;gap:4px;margin-top:var(--space-xs)}.calendar-task{font-size:var(--font-size-xs);padding:2px 6px;border-radius:var(--radius-sm);background-color:var(--color-leaf-light);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-task.priority-high{background-color:var(--color-error)}.calendar-task.priority-urgent{background-color:var(--color-warning)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#2c241980;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:600px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{padding:var(--space-xl);border-bottom:1px solid var(--color-border)}.modal-title{font-family:var(--font-display);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold)}.modal-body{padding:var(--space-xl)}.modal-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--color-border);display:flex;gap:var(--space-md);justify-content:flex-end}.loading{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);color:var(--color-text-tertiary)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center}.empty-state-icon{width:64px;height:64px;color:var(--color-border-hover);margin-bottom:var(--space-lg)}.empty-state-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.empty-state-description{color:var(--color-text-tertiary);max-width:400px}
