@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&family=Mulish:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--brand:#1a1a1a;--accent:#8b6f47;--accent-lt:#d4b896;--accent-xlt:#f5ede3;--blue:#2c4a6e;--blue-lt:#e8eef5;--green:#2d6a4f;--green-lt:#d8f3dc;--amber:#b45309;--amber-lt:#fef3c7;--red:#991b1b;--red-lt:#fee2e2;--sidebar-bg:#1a1a1a;--sidebar-w:260px;--bg:#f9f7f4;--surface:#fff;--border:#e5ddd4;--text:#2d2d2d;--muted:#8a7a6e;--radius:8px;--shadow:0 1px 3px #00000014, 0 4px 16px #0000000a;--fase1:#6b7280;--fase1-lt:#f3f4f6;--fase2:#b45309;--fase2-lt:#fef3c7;--fase3:#2d6a4f;--fase3-lt:#d8f3dc;--fase4:#5b21b6;--fase4-lt:#ede9fe;--fase5:#c2410c;--fase5-lt:#ffedd5;--fase6:#065f46;--fase6-lt:#d1fae5}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Mulish,sans-serif;font-size:14px}#app{min-height:100vh;display:flex}.btn{border-radius:var(--radius);cursor:pointer;border:none;align-items:center;gap:6px;padding:8px 16px;font-family:Mulish,sans-serif;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#7a5f38}.btn-ghost{color:var(--muted);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--bg);color:var(--text)}.btn-sm{padding:5px 12px;font-size:12px}.btn-danger{background:var(--red);color:#fff}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:18px 22px 14px;display:flex}.card-title{color:var(--brand);font-family:Playfair Display,serif;font-size:16px;font-weight:500}.card-body{padding:20px 22px}.badge{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:20px;align-items:center;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge-green{background:var(--green-lt);color:var(--green)}.badge-amber{background:var(--amber-lt);color:var(--amber)}.badge-red{background:var(--red-lt);color:var(--red)}.badge-blue{background:var(--blue-lt);color:var(--blue)}.badge-gray{color:#6b7280;background:#f3f4f6}.badge-accent{background:var(--accent-xlt);color:var(--accent)}.form-group{margin-bottom:16px}.form-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.form-input{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);background:var(--surface);outline:none;padding:9px 12px;font-family:Mulish,sans-serif;font-size:13px;transition:border-color .15s}.form-input:focus{border-color:var(--accent)}.two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}.three-col{grid-template-columns:1fr 1fr 1fr;gap:24px;display:grid}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page{padding:32px;animation:.2s fadeIn}#app.is-mobile{text-align:left!important;border-inline:none!important;flex-direction:column!important;width:100%!important;max-width:100%!important;display:flex!important}.mobile-shell{--mobile-nav-h:64px;--mobile-header-h:52px;--sidebar-w:0;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;text-align:left;font-size:15px}.mobile-shell button,.mobile-shell a,.mobile-shell .tap-target{min-width:44px;min-height:44px}.mobile-shell input,.mobile-shell select,.mobile-shell textarea{border:1px solid var(--border);border-radius:var(--radius,6px);background:var(--surface,var(--bg));min-height:44px;color:var(--text);box-sizing:border-box;width:100%;padding:10px 14px;font-size:16px}.mobile-shell input:focus,.mobile-shell select:focus,.mobile-shell textarea:focus{border-color:var(--accent);outline:none}.m-btn{border-radius:var(--radius,6px);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.m-btn:active{opacity:.7}.m-btn-primary{background:var(--accent);color:#fff}.m-btn-ghost{color:var(--accent);border:1px solid var(--border);background:0 0}.m-btn-sm{min-height:36px;padding:6px 14px;font-size:13px}.m-btn-block{width:100%}.m-btn:disabled{opacity:.5;pointer-events:none}.m-card{background:var(--surface,var(--bg));border:1px solid var(--border);border-radius:10px;padding:16px}.m-badge{color:#fff;background:var(--accent);border-radius:10px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.m-badge-sm{min-width:16px;height:16px;padding:0 4px;font-size:10px}.m-chip{white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.m-fase-1{--fase-color:var(--fase1);--fase-bg:var(--fase1-lt)}.m-fase-2{--fase-color:var(--fase2);--fase-bg:var(--fase2-lt)}.m-fase-3{--fase-color:var(--fase3);--fase-bg:var(--fase3-lt)}.m-fase-4{--fase-color:var(--fase4);--fase-bg:var(--fase4-lt)}.m-fase-5{--fase-color:var(--fase5);--fase-bg:var(--fase5-lt)}.m-fase-6{--fase-color:var(--fase6);--fase-bg:var(--fase6-lt)}.m-fab{right:20px;bottom:calc(var(--mobile-nav-h) + 20px + env(safe-area-inset-bottom,0px));background:var(--accent);color:#fff;cursor:pointer;z-index:50;border:none;border-radius:28px;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;transition:transform .15s;display:flex;position:fixed;box-shadow:0 4px 12px #00000040}.m-fab:active{transform:scale(.9)}.m-empty{text-align:center;color:var(--muted,var(--text));padding:48px 24px;font-size:14px}.m-empty-ikon{opacity:.5;margin-bottom:12px;font-size:40px}.m-loading{text-align:center;color:var(--muted,var(--text));padding:48px 24px;font-size:14px}.m-accordion{border:1px solid var(--border);border-radius:10px;overflow:hidden}.m-accordion+.m-accordion{margin-top:8px}.m-accordion-header{background:var(--surface,var(--bg));text-align:left;width:100%;color:var(--text-h);cursor:pointer;border:none;align-items:center;gap:10px;padding:14px 16px;font-family:inherit;font-size:14px;font-weight:600;display:flex}.m-accordion-header:after{content:"›";color:var(--muted,var(--text));margin-left:auto;font-size:18px;transition:transform .2s}.m-accordion.open .m-accordion-header:after{transform:rotate(90deg)}.m-accordion-body{padding:0 16px 16px}.m-panel-overlay{z-index:100;background:#0006;align-items:flex-end;display:flex;position:fixed;inset:0}.m-panel{background:var(--bg);width:100%;max-height:90vh;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;animation:.25s ease-out m-slide-up;overflow-y:auto}@keyframes m-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.m-panel-handle{background:var(--border);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.m-overdue{color:#dc2626}.m-success{color:#16a34a}.m-warning{color:#d97706}.m-content-padded{padding-bottom:calc(var(--mobile-nav-h) + env(safe-area-inset-bottom,0px) + 16px)}.m-carousel{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:0;display:flex;overflow-x:auto}.m-carousel::-webkit-scrollbar{display:none}.m-carousel-slide{scroll-snap-align:start;flex:0 0 100%}.m-dots{justify-content:center;gap:6px;padding:10px 0;display:flex}.m-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s}.m-dot.active{background:var(--accent)}.m-form-group{margin-bottom:16px}.m-form-label{color:var(--text-h,var(--text));text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.m-section-header{justify-content:space-between;align-items:center;padding:16px 0 8px;display:flex}.m-section-title{color:var(--text-h);font-size:16px;font-weight:600}.m-separator{background:var(--border);height:1px;margin:12px 0}.m-slide-enter-active,.m-slide-leave-active{transition:transform .25s ease-out}.m-slide-enter-from,.m-slide-leave-to{transform:translateY(100%)}
