@import"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap";:root{--sylva-forest-dark: #1B4332;--sylva-forest: #2D6A4F;--sylva-forest-light: #40916C;--sylva-sage: #52B788;--sylva-mint: #74C69D;--sylva-glow: rgba(45, 106, 79, .35);--sylva-primary: var(--sylva-forest);--sylva-primary-light: var(--sylva-sage);--sylva-primary-dark: var(--sylva-forest-dark);--sylva-primary-glow: var(--sylva-glow);--sylva-accent: #D4A373;--sylva-accent-light: #E9C46A;--sylva-accent-dark: #BC6C25;--bg-base: #0D1117;--bg-body: #161B22;--bg-surface: #1C2128;--bg-card: #22272E;--bg-elevated: #2D333B;--bg-hover: rgba(255, 255, 255, .06);--text-primary: #F0F6FC;--text-secondary: #D0D7DE;--text-muted: #A8B3BE;--text-disabled: #7D8590;--border-subtle: rgba(255, 255, 255, .08);--border-default: rgba(255, 255, 255, .12);--border-strong: rgba(255, 255, 255, .18);--border-focus: var(--sylva-sage);--status-success: #4ADE80;--status-success-bg: rgba(74, 222, 128, .18);--status-warning: #FBBF24;--status-warning-bg: rgba(251, 191, 36, .18);--status-danger: #F87171;--status-danger-bg: rgba(248, 113, 113, .18);--status-info: #60A5FA;--status-info-bg: rgba(96, 165, 250, .18);--status-neutral: #9CA3AF;--status-neutral-bg: rgba(156, 163, 175, .18);--green: var(--sylva-sage);--blue: var(--status-info);--amber: var(--status-warning);--red: var(--status-danger);--purple: #A371F7;--text: var(--text-primary);--border: var(--border-default);--font-display: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 8px -1px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 20px -3px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 30px -5px rgba(0, 0, 0, .4);--shadow-glow: 0 0 24px var(--sylva-glow);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--sidebar-width: 260px;--sidebar-collapsed: 72px;--header-height: 64px;--content-max-width: 1400px;--mobile-header-height: 56px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth;overflow-x:hidden;width:100%}body{font-family:var(--font-body);font-size:var(--text-base);line-height:1.65;color:var(--text-primary);background:var(--bg-body);min-height:100vh;min-height:100dvh;overflow-x:hidden;width:100%;overscroll-behavior-y:contain}#root{min-height:100vh;min-height:100dvh;width:100%;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.35;color:var(--text-primary);letter-spacing:-.02em}h1{font-size:var(--text-3xl);font-weight:700}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-base)}h6{font-size:var(--text-sm)}p{color:var(--text-secondary);line-height:1.7}a{color:var(--sylva-sage);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--sylva-mint)}code,.mono{font-family:var(--font-mono);font-size:.9em;background:var(--bg-elevated);padding:.2em .5em;border-radius:var(--radius-sm);color:var(--sylva-mint)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);min-height:44px;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;line-height:1;text-decoration:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;-webkit-tap-highlight-color:transparent}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--sylva-forest) 0%,var(--sylva-forest-dark) 100%);color:#fff;border-color:var(--sylva-forest);box-shadow:0 2px 8px #2d6a4f4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--sylva-forest-light) 0%,var(--sylva-forest) 100%);box-shadow:0 4px 16px #2d6a4f66;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--status-danger);color:#fff;border-color:var(--status-danger)}.btn-danger:hover:not(:disabled){background:#e5534b;box-shadow:0 4px 12px #f8514959}.btn-success{background:var(--status-success);color:#fff;border-color:var(--status-success)}.btn-success:hover:not(:disabled){background:#2ea043}.btn-sm{padding:var(--space-2) var(--space-3);min-height:36px;font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-6);min-height:52px;font-size:var(--text-base)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-base)}.card:hover{border-color:var(--border-default)}.card-elevated{background:var(--bg-elevated);box-shadow:var(--shadow-md)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;gap:var(--space-3)}.card-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:var(--space-2)}.card-description{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);margin-bottom:var(--space-2)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);min-height:44px;font-family:var(--font-body);font-size:var(--text-base);color:var(--text-primary);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-appearance:none}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--sylva-sage);box-shadow:0 0 0 3px var(--sylva-glow)}.form-input::placeholder{color:var(--text-muted)}.form-select{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238B949E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10)}.form-textarea{min-height:120px;resize:vertical}.form-hint{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-2)}.form-error{font-size:var(--text-xs);color:var(--status-danger);margin-top:var(--space-2)}.form-checkbox,.form-radio{width:20px;height:20px;accent-color:var(--sylva-forest);cursor:pointer}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.badge-primary{background:#52b78833;color:#6ee7b7;border:1px solid rgba(82,183,136,.4)}.badge-success,.badge-green{background:var(--status-success-bg);color:var(--status-success);border:1px solid rgba(74,222,128,.4)}.badge-warning,.badge-amber{background:var(--status-warning-bg);color:var(--status-warning);border:1px solid rgba(251,191,36,.4)}.badge-danger,.badge-red{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid rgba(248,113,113,.4)}.badge-info,.badge-blue{background:var(--status-info-bg);color:var(--status-info);border:1px solid rgba(96,165,250,.4)}.badge-neutral,.badge-gray{background:var(--status-neutral-bg);color:#d1d5db;border:1px solid rgba(156,163,175,.4)}.badge-purple{background:#a78bfa33;color:#c4b5fd;border:1px solid rgba(167,139,250,.4)}.badge-neutral{background:var(--status-neutral-bg);color:var(--text-secondary);border:1px solid rgba(139,148,158,.35)}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}table{width:100%;border-collapse:collapse;min-width:600px}th{text-align:left;padding:var(--space-3) var(--space-4);font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-surface);border-bottom:1px solid var(--border-default);white-space:nowrap}td{padding:var(--space-4);font-size:var(--text-sm);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}tr:last-child td{border-bottom:none}tr:hover td{background:var(--bg-hover)}.alert{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm)}.alert-success{background:var(--status-success-bg);border:1px solid rgba(63,185,80,.35);color:var(--status-success)}.alert-warning{background:var(--status-warning-bg);border:1px solid rgba(210,153,34,.35);color:var(--status-warning)}.alert-danger{background:var(--status-danger-bg);border:1px solid rgba(248,81,73,.35);color:var(--status-danger)}.alert-info{background:var(--status-info-bg);border:1px solid rgba(88,166,255,.35);color:var(--status-info)}.stat-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);transition:all var(--transition-base)}.stat-card-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.stat-card-clickable:hover{border-color:var(--sylva-forest);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.stat-card-clickable:active{transform:translateY(0)}.stat-card-active{border-color:var(--sylva-forest);box-shadow:0 0 0 2px #2d6a4f33,var(--shadow-glow);background:linear-gradient(135deg,var(--bg-card),rgba(45,106,79,.05))}.stat-card:not(.stat-card-clickable):hover{border-color:var(--sylva-forest);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.stat-card-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);margin-bottom:var(--space-3)}.stat-card-value{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;color:var(--text-primary);line-height:1.2}.stat-card-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.stat-card-trend{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);font-weight:600;margin-top:var(--space-2)}.stat-card-trend.up{color:var(--status-success)}.stat-card-trend.down{color:var(--status-danger)}.progress{height:8px;background:var(--bg-elevated);border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--sylva-forest-dark),var(--sylva-sage));border-radius:var(--radius-full);transition:width var(--transition-slow)}.spin,.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-card) 50%,var(--bg-elevated) 75%);background-size:200% 100%;animation:skeleton 1.5s ease infinite;border-radius:var(--radius-md)}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.page-content{max-width:var(--content-max-width);margin:0 auto;padding:var(--space-6)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}@media(min-width:641px){.page-header{gap:var(--space-4);margin-bottom:var(--space-6)}}.page-header h1,.page-title{font-size:var(--text-lg);margin-bottom:var(--space-1);line-height:1.3}@media(min-width:641px){.page-header h1,.page-title{font-size:var(--text-2xl)}}.page-header p,.page-subtitle{font-size:var(--text-xs);color:var(--text-muted)}@media(min-width:641px){.page-header p,.page-subtitle{font-size:var(--text-sm)}}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-4)}.flex-between{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}@media(max-width:640px){.flex-between{flex-direction:column;align-items:stretch}.flex-between .btn,.flex-between .btn-group{width:100%;justify-content:center}}.flex-center{display:flex;align-items:center;justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--status-success)}.text-warning{color:var(--status-warning)}.text-danger{color:var(--status-danger)}.text-info{color:var(--status-info)}.text-sylva{color:var(--sylva-sage)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-center{text-align:center}.text-right{text-align:right}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-surface)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full);border:2px solid var(--bg-surface)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--sylva-forest);color:#fff}:focus-visible{outline:2px solid var(--sylva-sage);outline-offset:2px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--space-4);color:var(--text-muted);padding:var(--space-6)}.loading-container svg{color:var(--sylva-sage)}.empty-state{text-align:center;padding:var(--space-12) var(--space-6)}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--space-4);color:var(--text-muted);opacity:.5}.empty-state h3{font-size:var(--text-lg);margin-bottom:var(--space-2)}.empty-state p{font-size:var(--text-sm);color:var(--text-muted);max-width:400px;margin:0 auto var(--space-4)}@media(max-width:640px){:root{--text-3xl: 1.5rem;--text-2xl: 1.25rem;--text-xl: 1.125rem;--space-6: 1rem;--space-5: .875rem}body{font-size:.9375rem}.page-content{padding:var(--space-3);padding-bottom:calc(var(--space-3) + 80px)}.page-header{flex-direction:column;align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-4)}.page-header h1{font-size:var(--text-lg)}.page-header p{font-size:var(--text-xs)}.form-grid{grid-template-columns:1fr;gap:var(--space-3)}.form-group{margin-bottom:var(--space-3)}.form-label{font-size:var(--text-xs)}.card{padding:var(--space-3);border-radius:var(--radius-md)}.card-header{flex-direction:column;align-items:flex-start;gap:var(--space-2);padding-bottom:var(--space-3);margin-bottom:var(--space-3)}.card-title{font-size:var(--text-base)}.stat-card{padding:var(--space-3)}.stat-card-value{font-size:var(--text-xl)}.stat-card-label{font-size:var(--text-xs)}.stat-card-icon{width:40px;height:40px}.btn{min-height:48px;font-size:var(--text-sm)}.btn-group,.page-header .btn-group{flex-direction:column;width:100%}.btn-group .btn{width:100%;justify-content:center}.table-container{border:none;border-radius:0;margin:0 calc(var(--space-3) * -1);width:calc(100% + var(--space-3) * 2)}table{font-size:var(--text-xs);min-width:500px}th,td{padding:var(--space-2)}th{font-size:.65rem}.badge{font-size:.65rem;padding:2px var(--space-2)}.alert{padding:var(--space-3);font-size:var(--text-xs)}.empty-state{padding:var(--space-6) var(--space-4)}.empty-state-icon{width:48px;height:48px}.empty-state h3{font-size:var(--text-base)}.loading-container{min-height:300px;padding:var(--space-4)}.hide-mobile{display:none!important}.show-mobile{display:block!important}.show-mobile-flex{display:flex!important}}@media(max-width:375px){:root{--text-3xl: 1.375rem;--text-2xl: 1.125rem}.page-content{padding:var(--space-2);padding-bottom:calc(var(--space-2) + 80px)}.card{padding:var(--space-2)}.btn{padding:var(--space-2) var(--space-3)}}@media(min-width:641px)and (max-width:1024px){.page-content{padding:var(--space-5)}.form-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1025px){.hide-desktop{display:none!important}}@media(hover:none)and (pointer:coarse){.btn:hover{transform:none}.card:hover{transform:none;border-color:var(--border-subtle)}.stat-card:hover{transform:none}.nav-link{min-height:48px}.table-container{-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(max-width:896px)and (orientation:landscape){.page-content{padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-3) + 70px)}.modal{max-height:85vh}}@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.card,.btn,.form-input{border-width:.5px}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-4px);padding:var(--space-2) var(--space-3);background:var(--bg-elevated);color:var(--text-primary);font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--transition-fast);z-index:1000;box-shadow:var(--shadow-lg);pointer-events:none}[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(-8px)}@media(hover:none){[data-tooltip]:after{display:none}}@supports (padding: env(safe-area-inset-bottom)){.sidebar{padding-bottom:env(safe-area-inset-bottom)}.mobile-header{padding-top:env(safe-area-inset-top)}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:var(--space-4);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:560px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideUp .25s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);background:var(--bg-surface)}.modal-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin:0}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-body{padding:var(--space-6);overflow-y:auto;flex:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);background:var(--bg-surface)}.modal.modal-wide{max-width:800px}.modal.modal-full{max-width:1000px}.modal.modal-large{max-width:900px;width:95%;max-height:85vh}.modal.modal-large .modal-body{overflow-y:auto;max-height:calc(85vh - 140px);-webkit-overflow-scrolling:touch}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}.modal-grid>div:first-child{max-height:calc(85vh - 180px);overflow-y:auto;padding-right:var(--space-2)}.modal-grid>div:last-child{position:sticky;top:0}@media(max-width:768px){.modal-grid{grid-template-columns:1fr;gap:var(--space-4)}.modal.modal-large{max-width:100%;max-height:90vh}.modal.modal-large .modal-body{max-height:calc(90vh - 140px)}.modal-grid>div:first-child{max-height:none;overflow-y:visible;padding-right:0}.modal-grid>div:last-child{position:static}}.modal-grid.drawing-mode{grid-template-columns:1fr 2fr}@media(max-width:768px){.modal-grid.drawing-mode{grid-template-columns:1fr}}.map-preview-container.fullscreen{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;z-index:9999!important;background:var(--bg-primary)!important}@media(max-width:640px){.modal-overlay{padding:0;align-items:flex-end}.modal{max-height:92vh;max-width:100%;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideUpMobile .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--space-3) var(--space-4);position:sticky;top:0;z-index:10}.modal-header:before{content:"";position:absolute;top:8px;left:50%;transform:translate(-50%);width:36px;height:4px;background:var(--border-strong);border-radius:2px}.modal-title{font-size:var(--text-base);padding-top:var(--space-2)}.modal-body{padding:var(--space-4);padding-bottom:var(--space-6);-webkit-overflow-scrolling:touch}.modal-footer{padding:var(--space-3) var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));flex-direction:column-reverse;gap:var(--space-2);position:sticky;bottom:0;background:var(--bg-card)}.modal-footer .btn{width:100%;justify-content:center;min-height:48px}.modal-footer .btn-primary{order:-1}.modal.modal-wide,.modal.modal-full{max-width:100%}}.clickable-name{color:var(--text-primary);transition:color var(--transition-fast)}.clickable-name:hover{color:var(--sylva-sage);text-decoration:underline}.stats-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:480px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.stats-grid{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}@media(min-width:1024px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:768px){.dashboard-grid{grid-template-columns:2fr 1fr;gap:var(--space-6)}}.dashboard-grid-reverse{display:grid;grid-template-columns:1fr;gap:var(--space-4)}@media(min-width:768px){.dashboard-grid-reverse{grid-template-columns:1fr 2fr;gap:var(--space-6)}}.grid-cols-2{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:480px){.grid-cols-2{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}}.grid-cols-3{display:grid;grid-template-columns:1fr;gap:var(--space-3)}@media(min-width:480px){.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px){.grid-cols-3{grid-template-columns:repeat(3,1fr);gap:var(--space-4)}}.grid-cols-4{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}@media(min-width:768px){.grid-cols-4{grid-template-columns:repeat(4,1fr);gap:var(--space-4)}}.task-item{padding:var(--space-3);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3)}@media(min-width:640px){.task-item{flex-direction:row;align-items:center;justify-content:space-between;padding:var(--space-4)}}.task-item-content{display:flex;align-items:flex-start;gap:var(--space-3);flex:1;min-width:0}@media(min-width:640px){.task-item-content{align-items:center}}.task-item-action{width:100%}@media(min-width:640px){.task-item-action{width:auto;flex-shrink:0}}.quick-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}@media(max-width:640px){.quick-actions{flex-direction:column}.quick-actions .btn{width:100%;justify-content:center}}.compliance-circle{width:100px;height:100px;margin:0 auto}@media(min-width:640px){.compliance-circle{width:120px;height:120px}}.page-header-responsive{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}@media(min-width:640px){.page-header-responsive{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}}.page-header-responsive h1{font-size:var(--text-xl);margin-bottom:var(--space-1)}@media(min-width:640px){.page-header-responsive h1{font-size:var(--text-2xl)}}.data-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-3)}.data-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.data-card-title{font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.data-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}.data-card-field{display:flex;flex-direction:column;gap:var(--space-1)}.data-card-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.data-card-value{font-size:var(--text-sm);color:var(--text-primary)}.data-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.mobile-scroll-x{display:flex;gap:var(--space-3);overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:var(--space-2);margin-bottom:calc(var(--space-2) * -1)}.mobile-scroll-x>*{flex-shrink:0;scroll-snap-align:start}.mobile-scroll-x::-webkit-scrollbar{display:none}.stack-mobile{display:flex;flex-direction:column;gap:var(--space-3)}@media(min-width:641px){.stack-mobile{flex-direction:row;align-items:center}}.action-row{display:flex;gap:var(--space-2);flex-wrap:wrap}@media(max-width:640px){.action-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2);margin:0 calc(var(--space-3) * -1);padding-left:var(--space-3);padding-right:var(--space-3)}.action-row>.btn{flex-shrink:0;width:auto}}.filter-pills{display:flex;gap:var(--space-2);flex-wrap:wrap}@media(max-width:640px){.filter-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2)}.filter-pills>*{flex-shrink:0}}.pull-indicator{text-align:center;padding:var(--space-2);color:var(--text-muted);font-size:var(--text-xs)}.mobile-card-list{display:flex;flex-direction:column;gap:var(--space-2)}.mobile-card-list .card{padding:var(--space-3)}.fab{position:fixed;bottom:calc(80px + var(--space-4) + env(safe-area-inset-bottom,0px));right:var(--space-4);width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--sylva-forest) 0%,var(--sylva-forest-dark) 100%);color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #2d6a4f66;cursor:pointer;z-index:100;transition:all .2s ease}.fab:active{transform:scale(.95)}@media(min-width:1025px){.fab{display:none}}@keyframes swipeHint{0%,to{transform:translate(0)}50%{transform:translate(-8px)}}.swipe-hint{animation:swipeHint 1.5s ease-in-out 2}.touch-feedback{-webkit-tap-highlight-color:transparent;transition:background .15s ease}.touch-feedback:active{background:var(--bg-hover)}.map-preview-container{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-surface);border:1px solid var(--border-default)}.map-preview-container .leaflet-container{font-family:var(--font-body);background:var(--bg-surface)}.map-preview-container .leaflet-control-attribution{background:#0009!important;color:#ffffffb3!important;font-size:9px!important;padding:2px 5px!important}.map-preview-container .leaflet-control-zoom{border:none!important;box-shadow:0 2px 8px #0003!important}.map-preview-container .leaflet-control-zoom a{background:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border-default)!important;width:32px!important;height:32px!important;line-height:32px!important}.map-preview-container .leaflet-control-zoom a:hover{background:var(--bg-hover)!important}
