:root {
            --bg-page:        #F7F6F3;
            --bg-card:        #FFFFFF;
            --bg-card-dark:   #2C1810;
            --text-primary:   #1A1A1A;
            --text-secondary: #6B6B6B;
            --text-muted:     #9A9A9A;
            --text-label:     #9A9A9A;
            --text-on-dark:   #FFFFFF;
            --accent-red:     #E8593C;
            --accent-red-soft:#FFF0ED;
            --accent-amber:   #D4912A;
            --accent-amber-soft:#FEF3DC;
            --accent-green:   #4A8C5C;
            --accent-green-soft:#EBF5EE;
            --accent-blue:    #3B7DD8;
            --accent-blue-soft:#EBF2FD;
            --border:         #EBEBEB;
            --border-light:   #F3F2EF;
            --nav-indicator:  #E8593C;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }
        body { background-color: var(--bg-page); color: var(--text-primary); -webkit-font-smoothing: antialiased; }
        
        .topnav { background-color: #000000; border-bottom: 1px solid rgba(255, 255, 255, 0.15); height: 64px; position: sticky; top: 0; z-index: 100; width: 100%; }
        .topnav-container { max-width: 1280px; width: 100%; margin: 0 auto; padding: 0 40px; height: 100%; display: flex; align-items: center; justify-content: space-between; position: relative; }
        .logo { font-size: 18px; letter-spacing: -0.5px; display: flex; align-items: baseline; }
        .logo img { /* original colors preserved */ }
        .logo-bold { font-weight: 600; }
        .logo-light { font-weight: 400; margin-left: 6px; font-size: 14px; }
        
        .topnav-center { display: flex; gap: 32px; height: 100%; position: absolute; left: 50%; transform: translateX(-50%); }
        .nav-item { color: rgba(255, 255, 255, 0.65); text-decoration: none; font-size: 15px; font-weight: 400; height: 100%; display: flex; align-items: center; position: relative; cursor: pointer; transition: color 0.2s ease; }
        .nav-item:hover { color: #FFFFFF; }
        .nav-item.active { color: #FFFFFF; font-weight: 500; }
        .nav-item.active::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background-color: var(--nav-indicator); border-radius: 2px 2px 0 0; }
        
        .topnav-right { display: flex; align-items: center; gap: 24px; }
        .icon-btn { background: none; border: none; cursor: pointer; color: rgba(255, 255, 255, 0.65); display: flex; }
        .icon-btn:hover { color: #FFFFFF; }
        .avatar { width: 32px; height: 32px; border-radius: 50%; background-color: #FFFFFF; color: #000000; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 600; letter-spacing: 0.5px; }
        
        .container { max-width: 1280px; margin: 0 auto; padding: 40px; }
        
        .page { display: none; }
        .page.active { display: block; animation: fadeIn 0.3s ease; }
        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

        .header-section { margin-bottom: 32px; display: flex; justify-content: space-between; align-items: flex-end; }
        .super-title { font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-muted); font-weight: 400; margin-bottom: 8px; }
        .page-title { font-size: 40px; font-weight: 700; color: var(--text-primary); letter-spacing: -1px; line-height: 1; }
        
        .btn { padding: 10px 20px; border-radius: 10px; font-size: 14px; font-weight: 500; cursor: pointer; border: none; transition: background 0.2s; white-space: nowrap; }
        .btn-primary { background: var(--text-primary); color: white; }
        .btn-primary:hover { background: #000; }
        .btn-secondary { background: white; border: 1px solid var(--border); color: var(--text-secondary); }
        .btn-secondary:hover { background: #f9f9f9; }

        /* Dashboard specific */
        .metrics-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin-bottom: 24px; }
        .card { background-color: var(--bg-card); border-radius: 16px; border: 1px solid var(--border); padding: 28px; }
        .card-p-0 { padding: 0; }
        .card.dark { background-color: var(--bg-card-dark); border-color: var(--bg-card-dark); color: var(--text-on-dark); }
        .metric-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-label); font-weight: 500;}
        .card.dark .metric-header { color: #A09692; }
        .metric-value { font-size: 44px; font-weight: 500; margin-bottom: 4px; line-height: 1; letter-spacing: -1px; }
        .metric-sub { font-size: 13px; color: var(--text-secondary); }
        .card.dark .metric-sub { color: #A09692; }
        .value-red { color: var(--accent-red); }
        
        .lower-grid { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
        .section-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 32px; padding: 28px 28px 0 28px;}
        .section-title { font-size: 18px; font-weight: 600; margin-bottom: 4px; }
        .section-desc { font-size: 13px; color: var(--text-secondary); }
        
        /* Alerts */
        .alert-header-top { padding: 24px 24px 16px 24px; border-bottom: 1px solid var(--border-light); display: flex; justify-content: space-between; align-items: center; }
        .alert-title-main { font-size: 18px; font-weight: 600; }
        .alert-count-badge { background-color: var(--accent-red-soft); color: var(--accent-red); padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600; display: none; }
        .alerts-wrapper { display: flex; flex-direction: column; flex: 1; overflow-y: auto; max-height: 400px; }
        .alert-item { display: flex; gap: 12px; padding: 16px 24px; border-bottom: 1px solid var(--border-light); transition: background 0.2s; }
        .alert-item:hover { background-color: #FAFAF8; }
        .alert-icon { color: var(--accent-amber); font-size: 16px; margin-top: 2px; }
        .alert-content { flex: 1; }
        .alert-title { font-size: 13px; font-weight: 600; color: var(--text-primary); margin-bottom: 4px; text-transform: uppercase; }
        .alert-desc { font-size: 12px; color: var(--text-secondary); line-height: 1.4; }
        .alert-action { font-size: 11px; text-transform: uppercase; color: var(--text-muted); cursor: pointer; border: none; background: none; font-weight: 600; letter-spacing: 1px; }

        /* Projetos specific */
        .filter-tabs { display: flex; gap: 8px; margin-bottom: 24px; overflow-x: auto; }
        .filter-tab { padding: 6px 16px; border-radius: 20px; font-size: 13px; font-weight: 500; background: transparent; color: var(--text-secondary); border: 1px solid transparent; cursor: pointer; }
        .filter-tab:hover { background: white; border-color: var(--border); }
        .filter-tab.active { background: var(--text-primary); color: white; border-color: var(--text-primary); }
        
        .table-container { background: var(--bg-card); border-radius: 16px; border: 1px solid var(--border); overflow-x: auto; padding: 24px; }
        .data-table { width: 100%; border-collapse: collapse; min-width: 700px; }
        .data-table th { text-align: left; padding: 0 16px 16px 16px; border-bottom: 1px solid var(--border-light); font-size: 11px; text-transform: uppercase; letter-spacing: 1px; color: var(--text-label); font-weight: 500; }
        .data-table td { padding: 16px; border-bottom: 1px solid var(--border-light); font-size: 14px; color: var(--text-primary); font-weight: 400; vertical-align: middle; }
        .data-table tr:hover { background: #FAFAF8; }
        .data-table tr:last-child td { border-bottom: none; }
        .td-bold { font-weight: 600 !important; }
        .td-sub { font-size: 13px; color: var(--text-secondary); margin-top: 4px; }
        
        .link-action { color: var(--text-muted); text-decoration: none; font-size: 13px; cursor: pointer; border: none; background: none; font-family: inherit; font-weight: 500; }
        .link-action:hover { color: var(--text-primary); }

        .badge { padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: 500; display: inline-block; white-space: nowrap; }
        .badge.em_producao { background: var(--accent-red-soft); color: var(--accent-red); }
        .badge.montagem { background: var(--accent-amber-soft); color: #A06B1A; }
        .badge.planejamento { background: var(--accent-blue-soft); color: #2B5FAD; }
        .badge.entregue { background: var(--accent-green-soft); color: #2E6B40; }
        .badge.default { background: var(--border-light); color: var(--text-secondary); }

        /* Kanban specific */
        .kanban-board { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 16px; height: calc(100vh - 220px); min-height: 500px; }
        .kanban-col { flex: 1; min-width: 300px; display: flex; flex-direction: column; background: var(--bg-page); border-radius: 16px; border: 1px solid var(--border); overflow: hidden; }
        .kanban-header { background: white; border-bottom: 1px solid var(--border-light); }
        .kanban-header .k-border { height: 4px; width: 100%; }
        .kanban-header .k-border.bg-gray { background: #9A9A9A; }
        .kanban-header .k-border.bg-amber { background: var(--accent-amber); }
        .kanban-header .k-border.bg-blue { background: var(--accent-blue); }
        .kanban-header .k-border.bg-green { background: var(--accent-green); }
        .kanban-header .k-title { padding: 16px; font-size: 13px; font-weight: 700; color: var(--text-primary); display: flex; justify-content: space-between; align-items: center; }
        .kanban-header .k-count { background: #F3F2EF; padding: 2px 8px; border-radius: 12px; font-size: 11px; }

        .kanban-content { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px; }
        .k-card { background: white; border: 1px solid var(--border); border-radius: 12px; padding: 16px; position: relative; }
        .k-card-title { font-weight: 600; font-size: 14px; margin-bottom: 4px; padding-right: 24px; word-break: break-word; line-height: 1.2;}
        .k-card-project { font-size: 12px; font-weight: 500; color: var(--text-secondary); margin-bottom: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
        .k-card-details { font-size: 12px; color: var(--text-muted); margin-bottom: 16px; }
        .k-card-details span { font-weight: 500; color: var(--text-secondary); }
        .k-card-footer { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border-light); padding-top: 12px; margin-top: auto; }
        .k-card-resp { font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 500; letter-spacing: 1px; }
        .k-card-next { background: #F3F2EF; border: none; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--text-primary); transition: background 0.2s; }
        .k-card-next:hover { background: #EBEBEB; }

        /* Modals & Drawers */
        .overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 1000; display: none; align-items: center; justify-content: center; backdrop-filter: blur(2px); }
        .overlay.active { display: flex; }
        .modal { background: white; border-radius: 20px; width: 100%; max-width: 500px; max-height: 90vh; overflow-y: auto; padding: 32px; box-shadow: 0 10px 40px -10px rgba(0,0,0,0.1); }
        .modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; }
        .modal-title { font-size: 20px; font-weight: 600; }
        .form-group { margin-bottom: 16px; }
        .form-group label { display: block; font-size: 12px; font-weight: 500; color: var(--text-secondary); margin-bottom: 8px; }
        .form-control { width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: 8px; font-size: 14px; outline: none; }
        .form-control:focus { border-color: var(--text-primary); }
        .modal-footer { display: flex; justify-content: flex-end; gap: 12px; margin-top: 32px; }

        .drawer-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); z-index: 900; display: none; }
        .drawer-overlay.active { display: block; }

        /* ── MENU LATERAL MOBILE (dark) ── */
        .ml-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1100; display: none; backdrop-filter: blur(2px); }
        .ml-overlay.active { display: block; }

        .menu-lateral {
            position: fixed; top: 0; right: -105%; width: 82%; max-width: 360px;
            height: 100dvh; background: #0a0a0a; z-index: 1200;
            transition: right 0.32s cubic-bezier(0.4,0,0.2,1);
            display: flex; flex-direction: column; overflow: hidden;
            border-left: 1px solid rgba(255,255,255,0.06);
        }
        .menu-lateral.open { right: 0; }

        .ml-profile {
            display: flex; align-items: center; gap: 14px;
            padding: 56px 24px 24px 24px;
            border-bottom: 1px solid rgba(255,255,255,0.08);
            flex-shrink: 0;
        }
        .ml-avatar {
            width: 48px; height: 48px; border-radius: 50%;
            background: linear-gradient(135deg, #C9A227, #8B6914);
            color: #000; font-size: 16px; font-weight: 800;
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0; letter-spacing: 0.5px;
        }
        .ml-user-name { font-size: 16px; font-weight: 700; color: #fff; line-height: 1.2; }
        .ml-user-role { font-size: 12px; color: rgba(255,255,255,0.45); margin-top: 2px; }

        .ml-scroll { flex: 1; overflow-y: auto; padding: 8px 0 env(safe-area-inset-bottom,20px); }
        .ml-scroll::-webkit-scrollbar { display: none; }

        .ml-section-label {
            font-size: 10px; font-weight: 700; letter-spacing: 1.5px;
            color: rgba(255,255,255,0.3); text-transform: uppercase;
            padding: 20px 24px 8px 24px;
        }

        .ml-group { display: flex; flex-direction: column; }

        .ml-item {
            display: flex; align-items: center; gap: 14px;
            padding: 15px 20px 15px 24px; cursor: pointer;
            border-bottom: 1px solid rgba(255,255,255,0.05);
            transition: background 0.15s;
        }
        .ml-item:active { background: rgba(255,255,255,0.06); }
        .ml-item:last-child { border-bottom: none; }

        .ml-icon {
            width: 36px; height: 36px; border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0; color: #fff;
        }
        .ml-icon--chart { background: #1A3A2A; color: #4CAF80; }
        .ml-icon--proj   { background: #1A1A2E; color: #8B9FF0; }
        .ml-icon--prod   { background: #2A1A10; color: #D4845A; }
        .ml-icon--shop   { background: #2A2A10; color: #D4C45A; }
        .ml-icon--fin    { background: #102A1A; color: #50C878; }
        .ml-icon--stock  { background: #1A2A2A; color: #5AC8C8; }
        .ml-icon--rep    { background: #2A1A2A; color: #C878C8; }
        .ml-icon--hist   { background: #1A1A1A; color: rgba(255,255,255,0.55); }
        .ml-icon--key    { background: #2A2010; color: #C9A227; }
        .ml-icon--out    { background: #2A1010; color: #E05555; }

        .ml-label {
            flex: 1; font-size: 15px; font-weight: 500;
            color: rgba(255,255,255,0.88);
        }
        .ml-item--danger .ml-label { color: #E05555; }

        .ml-chevron { color: rgba(255,255,255,0.2); flex-shrink: 0; }
        .drawer { position: fixed; top: 0; right: -500px; width: 480px; max-width: 100vw; height: 100vh; background: var(--bg-page); z-index: 950; transition: right 0.3s ease; display: flex; flex-direction: column; border-left: 1px solid var(--border); }
        .drawer.open { right: 0; }
        .drawer-header { background: white; padding: 24px 32px 0 32px; border-bottom: 1px solid var(--border); }
        .drawer-title { font-size: 24px; font-weight: 700; color: var(--text-primary); line-height: 1.2; }
        .drawer-tabs { display: flex; gap: 24px; margin-top: 24px; }
        .drawer-tab { padding-bottom: 12px; font-size: 13px; font-weight: 500; color: var(--text-secondary); cursor: pointer; position: relative; border-bottom: 2px solid transparent; }
        .drawer-tab.active { color: var(--text-primary); border-bottom-color: var(--text-primary); }
        .drawer-content { padding: 32px; overflow-y: auto; flex: 1; }
        .drawer-panel { display: none; }
        .drawer-panel.active { display: block; }

        .etapas-wrapper { background: white; border-radius: 12px; border: 1px solid var(--border); padding: 20px; margin-bottom: 24px; }
        .etapas-bar { display: flex; gap: 4px; height: 8px; margin-bottom: 24px; }
        .etapa-step { flex: 1; background: var(--border-light); border-radius: 4px; }
        .etapa-step.done { background: var(--accent-green); }

        .drawer-section-title { font-size: 11px; text-transform: uppercase; color: var(--text-muted); font-weight: 500; letter-spacing: 1px; margin-bottom: 12px; }

        .inline-edit-input::-webkit-outer-spin-button,
        .inline-edit-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
        .inline-edit-input { -moz-appearance: textfield; border-bottom: 2px dashed transparent !important; transition: border-color 0.2s; }
        .inline-edit-input:hover, .inline-edit-input:focus { border-bottom: 2px dashed var(--border) !important; }
        @media (min-width: 1024px) { .est-grid { grid-template-columns: repeat(4, 1fr); } }
        @media (min-width: 768px) and (max-width: 1023px) { .est-grid { grid-template-columns: repeat(2, 1fr); } }
        @media (max-width: 767px) { .est-grid { grid-template-columns: 1fr; } }

        /* ================================================
           LOGIN PAGE — CINEMATIC BACKGROUND
           ================================================ */

        @keyframes bgDepthDrift {
            0%   { transform: scale(1.00) translate(0px,   0px);    filter: brightness(0.62); }
            20%  { transform: scale(1.10) translate(-28px, -14px);  filter: brightness(0.56); }
            45%  { transform: scale(1.22) translate(-12px,  22px);  filter: brightness(0.50); }
            65%  { transform: scale(1.28) translate( 20px,  10px);  filter: brightness(0.48); }
            82%  { transform: scale(1.18) translate( 14px, -18px);  filter: brightness(0.53); }
            100% { transform: scale(1.00) translate(0px,   0px);    filter: brightness(0.62); }
        }

        @keyframes amberGlowPulse {
            0%, 100% { opacity: 0.30; }
            50%       { opacity: 0.52; }
        }

        @keyframes dustFloat1 {
            0%   { transform: translate(0px, 0px)   scale(1);    opacity: 0; }
            15%  { opacity: 0.7; }
            85%  { opacity: 0.5; }
            100% { transform: translate(-40px, -120px) scale(1.3); opacity: 0; }
        }
        @keyframes dustFloat2 {
            0%   { transform: translate(0px, 0px)   scale(0.8); opacity: 0; }
            20%  { opacity: 0.6; }
            80%  { opacity: 0.4; }
            100% { transform: translate(60px, -100px) scale(1.2); opacity: 0; }
        }
        @keyframes dustFloat3 {
            0%   { transform: translate(0, 0)  scale(1);   opacity: 0; }
            10%  { opacity: 0.8; }
            90%  { opacity: 0.3; }
            100% { transform: translate(-20px, -90px) scale(0.7); opacity: 0; }
        }
        @keyframes dustFloat4 {
            0%   { transform: translate(0, 0)  scale(1.2); opacity: 0; }
            25%  { opacity: 0.5; }
            75%  { opacity: 0.4; }
            100% { transform: translate(30px, -80px) scale(0.9); opacity: 0; }
        }

        @keyframes loginCardIn {
            0%   { opacity: 0; transform: translateY(24px) scale(0.97); }
            100% { opacity: 1; transform: translateY(0)   scale(1); }
        }

        #page-login {
            position: fixed;
            top: 0; left: 0;
            width: 100vw; height: 100vh;
            z-index: 9999;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            overflow: hidden;
        }

        /* Background image with depth drift animation */
        #login-bg-image {
            position: absolute;
            inset: -15%;
            width: 130%;
            height: 130%;
            background-image: url('../images/fundo.png');
            background-size: cover;
            background-position: center center;
            animation: bgDepthDrift 36s ease-in-out infinite;
            transform-origin: center center;
            will-change: transform, filter;
            z-index: 1;
        }

        /* Dark overlay over the background video */
        #login-overlay {
            position: absolute;
            inset: 0;
            background: rgba(0, 0, 0, 0.55);
            z-index: 2;
        }

        /* Dark vignette overlay */
        #login-vignette {
            position: absolute;
            inset: 0;
            background: radial-gradient(
                ellipse at 60% 45%,
                rgba(0,0,0,0) 0%,
                rgba(0,0,0,0.55) 55%,
                rgba(0,0,0,0.88) 100%
            );
            z-index: 3;
        }

        /* Amber backlight that breathes */
        #login-glow {
            position: absolute;
            inset: 0;
            background: radial-gradient(
                ellipse at 65% 45%,
                rgba(185, 100, 20, 0.65) 0%,
                rgba(140, 60, 0, 0.30) 40%,
                transparent 70%
            );
            animation: amberGlowPulse 4.5s ease-in-out infinite;
            mix-blend-mode: screen;
            z-index: 4;
        }

        /* Dust particles container */
        #login-dust {
            position: absolute;
            inset: 0;
            pointer-events: none;
            z-index: 5;
        }

        .dust-particle {
            position: absolute;
            border-radius: 50%;
            background: rgba(255, 200, 100, 0.85);
            box-shadow: 0 0 4px 1px rgba(255, 200, 80, 0.6);
        }

        .dust-particle:nth-child(1)  { width:3px; height:3px; left:28%; top:62%; animation: dustFloat1 7s  3.0s ease-in-out infinite; }
        .dust-particle:nth-child(2)  { width:2px; height:2px; left:55%; top:70%; animation: dustFloat2 9s  0.5s ease-in-out infinite; }
        .dust-particle:nth-child(3)  { width:4px; height:4px; left:70%; top:55%; animation: dustFloat3 11s 1.5s ease-in-out infinite; }
        .dust-particle:nth-child(4)  { width:2px; height:2px; left:42%; top:75%; animation: dustFloat4 8s  4.0s ease-in-out infinite; }
        .dust-particle:nth-child(5)  { width:3px; height:3px; left:62%; top:65%; animation: dustFloat1 10s 2.0s ease-in-out infinite; }
        .dust-particle:nth-child(6)  { width:2px; height:2px; left:35%; top:58%; animation: dustFloat2 12s 0.0s ease-in-out infinite; }
        .dust-particle:nth-child(7)  { width:4px; height:4px; left:78%; top:72%; animation: dustFloat3 9s  5.0s ease-in-out infinite; }
        .dust-particle:nth-child(8)  { width:2px; height:2px; left:20%; top:68%; animation: dustFloat4 7s  1.0s ease-in-out infinite; }
        .dust-particle:nth-child(9)  { width:3px; height:3px; left:48%; top:80%; animation: dustFloat1 11s 3.5s ease-in-out infinite; }
        .dust-particle:nth-child(10) { width:2px; height:2px; left:88%; top:60%; animation: dustFloat2 8s  2.5s ease-in-out infinite; }
        .dust-particle:nth-child(11) { width:3px; height:3px; left:15%; top:50%; animation: dustFloat3 13s 0.8s ease-in-out infinite; }
        .dust-particle:nth-child(12) { width:2px; height:2px; left:72%; top:45%; animation: dustFloat4 6s  4.5s ease-in-out infinite; }

        /* Login card — translucent glow glass */
        @keyframes cardGlow {
            0%, 100% { box-shadow: 0 8px 60px rgba(0,0,0,0.40), 0 0 50px rgba(220, 160, 60, 0.15), inset 0 1px 0 rgba(255,255,255,0.60); }
            50%       { box-shadow: 0 8px 60px rgba(0,0,0,0.40), 0 0 90px rgba(220, 160, 60, 0.30), inset 0 1px 0 rgba(255,255,255,0.60); }
        }

        .login-card {
            position: relative;
            z-index: 10;
            background: rgba(255, 248, 235, 0.60);
            backdrop-filter: blur(32px) saturate(1.8) brightness(1.15);
            -webkit-backdrop-filter: blur(32px) saturate(1.8) brightness(1.15);
            padding: 44px 40px;
            border-radius: 28px;
            border: 1px solid rgba(255, 220, 140, 0.35);
            width: 100%;
            max-width: 420px;
            text-align: center;
            animation: loginCardIn 0.8s 0.3s cubic-bezier(0.22, 1, 0.36, 1) both,
                       cardGlow 4s 1.1s ease-in-out infinite;
        }

        /* Subtle inner light rim at top */
        .login-card::before {
            content: '';
            position: absolute;
            inset: 0;
            border-radius: 28px;
            border-top: 1px solid rgba(255, 240, 180, 0.55);
            pointer-events: none;
        }

        .login-logo { font-size: 24px; margin-bottom: 32px; font-weight: 700; letter-spacing: -0.5px; }
        .login-logo span { font-weight: 300; }
        .login-input {
            width: 100%;
            padding: 14px 16px;
            border: 1px solid rgba(180, 140, 80, 0.25);
            border-radius: 14px;
            margin-bottom: 14px;
            font-size: 15px;
            background: rgba(255, 255, 255, 0.55);
            color: #2a1f0e;
            outline: none;
            box-sizing: border-box;
            transition: border-color 0.2s, background 0.2s;
        }
        .login-input::placeholder { color: rgba(80, 60, 30, 0.45); }
        .login-input:focus {
            border-color: rgba(180, 120, 30, 0.55);
            background: rgba(255, 255, 255, 0.75);
        }
        .login-btn {
            width: 100%;
            padding: 15px;
            background: rgba(28, 20, 10, 0.88);
            color: white;
            border: none;
            border-radius: 14px;
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
            margin-top: 10px;
            letter-spacing: 0.3px;
            transition: background 0.2s, transform 0.1s;
        }
        .login-btn:hover { background: rgba(10, 6, 2, 1); transform: translateY(-1px); }
        .login-btn:active { transform: translateY(0); }

        .bottom-nav { display: none; position: fixed; bottom: 0; left: 0; width: 100%; height: 70px; background: white; border-top: 1px solid var(--border-light); z-index: 100; justify-content: space-around; align-items: center; padding-bottom: env(safe-area-inset-bottom); }
        .bottom-nav-item { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--text-muted); font-size: 10px; font-weight: 600; text-transform: uppercase; cursor: pointer; }
        .bottom-nav-item.active { color: var(--nav-indicator); }
        .bottom-nav-icon { font-size: 20px; }

        @media (max-width: 768px) {
            .topnav { display: none; }
            .container { padding: 16px; padding-bottom: 90px; }
            .metrics-grid { grid-template-columns: 1fr 1fr; }
            .lower-grid { grid-template-columns: 1fr; }
            .page-title { font-size: 32px; }
            .header-section { flex-direction: column; align-items: flex-start; gap: 16px; }
            .bottom-nav { display: flex; }

            /* Login card — 20% menor no mobile com respiro nas bordas */
            #page-login { padding: 0 10%; }
            .login-card {
                max-width: 100%;
                padding: 32px 28px;
                border-radius: 22px;
            }
        }

        @media print {
            body { background: white; }
            .topnav, .bottom-nav, .filter-tabs, .btn, .header-section button { display: none !important; }
            .container { padding: 0; margin: 0; max-width: 100%; }
            .modal { box-shadow: none; padding: 0; max-width: 100%; overflow: visible; border: none; border-radius: 0; }
            .overlay { position: static; background: white; backdrop-filter: none; display: block; height: auto; }
            .modal-header .close-btn { display: none; }
            #app-content { display: none !important; } /* Hide background app when printing modal */
        }

        /* ================================================
           MODAL NOVA NECESSIDADE — ESTILOS
           ================================================ */

        .nc-step-label {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: 0.8px;
            color: var(--text-secondary);
            margin-bottom: 14px;
            text-transform: uppercase;
        }

        .nc-pills {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .nc-pill {
            padding: 8px 18px;
            border-radius: 100px;
            border: 1.5px solid var(--border);
            background: white;
            font-size: 13px;
            font-weight: 500;
            color: var(--text-secondary);
            cursor: pointer;
            transition: all 0.15s;
        }

        .nc-pill:hover { border-color: var(--text-primary); color: var(--text-primary); }
        .nc-pill.nc-pill--active {
            background: var(--text-primary);
            border-color: var(--text-primary);
            color: white;
            font-weight: 600;
        }

        .nc-specs-box {
            background: #F7F6F3;
            border-radius: 14px;
            padding: 20px;
            margin-bottom: 20px;
        }

        .nc-spec-field { margin-bottom: 16px; }
        .nc-spec-field label {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
            display: block;
            margin-bottom: 8px;
        }

        .nc-custom-input {
            width: 100%;
            padding: 12px 14px;
            border-radius: 10px;
            border: 1.5px solid var(--border);
            background: white;
            font-size: 14px;
            font-family: inherit;
            color: var(--text-primary);
            transition: border-color 0.15s;
        }

        .nc-custom-input:focus {
            outline: none;
            border-color: var(--text-primary);
        }

        .nc-custom-input::placeholder { color: var(--text-muted); }

        /* ================================================
           MÓDULO DE COMPRAS — ESTILOS
           ================================================ */

        .compras-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 28px;
            align-items: start;
        }

        .compras-col-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
        }

        .compras-col-title {
            font-size: 13px;
            font-weight: 700;
            color: var(--text-primary);
            letter-spacing: 0.8px;
        }

        .compras-col-count {
            font-size: 13px;
            font-weight: 500;
            color: var(--text-muted);
            margin-left: 4px;
        }

        .compra-card {
            background: white;
            border: 1px solid var(--border-light);
            border-radius: 16px;
            padding: 20px;
            display: flex;
            flex-direction: column;
            gap: 8px;
            transition: box-shadow 0.15s;
        }

        .compra-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.07); }

        .compra-card-tags {
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 6px;
            margin-bottom: 2px;
        }

        .compra-tag {
            font-size: 10px;
            font-weight: 700;
            padding: 3px 9px;
            border-radius: 6px;
            background: #F0F0F0;
            color: var(--text-secondary);
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }

        .compra-tag--cat {
            background: #FFF0E0;
            color: #C05C00;
        }

        .compra-tag--proj {
            background: #F0F0F0;
            color: var(--text-secondary);
        }

        .compra-tag--urg-urgente  { background: #FFEBEE; color: #C62828; }
        .compra-tag--urg-semana   { background: #FFF3E0; color: #E65100; }
        .compra-tag--urg-normal   { background: #F0F0F0; color: var(--text-muted); }

        .compra-card-title {
            font-size: 16px;
            font-weight: 700;
            color: var(--text-primary);
            line-height: 1.3;
        }

        .compra-card-meta {
            font-size: 12px;
            color: var(--text-muted);
            line-height: 1.5;
        }

        .compra-card-footer {
            display: flex;
            justify-content: space-between;
            align-items: center;
            border-top: 1px solid var(--border-light);
            padding-top: 12px;
            margin-top: 4px;
        }

        .compra-card-price {
            font-size: 18px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .compra-icon-btns {
            display: flex;
            gap: 4px;
        }

        .compra-icon-btn {
            background: none;
            border: none;
            cursor: pointer;
            padding: 6px 8px;
            border-radius: 8px;
            color: var(--text-muted);
            font-size: 14px;
            transition: background 0.15s;
        }

        .compra-icon-btn:hover { background: #F0F0F0; }

        @media (max-width: 900px) {
            .compras-grid { grid-template-columns: 1fr; }
        }

        /* ================================================
           LANÇAMENTOS FINANCEIROS — ESTILOS
           ================================================ */

        /* Tab switcher da seção de lançamentos */
        .lanc-tabs {
            display: flex;
            border-bottom: 1px solid var(--border-light);
            background: var(--bg-light, #F7F6F3);
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
        }
        .lanc-tab-btn {
            flex: 1;
            min-width: 110px;
            padding: 14px 12px;
            background: none;
            border: none;
            border-bottom: 3px solid transparent;
            font-size: 12px;
            font-weight: 600;
            color: var(--text-muted);
            cursor: pointer;
            text-align: center;
            letter-spacing: 0.3px;
            text-transform: uppercase;
            transition: color 0.2s, border-color 0.2s;
            white-space: nowrap;
        }
        .lanc-tab-btn:hover { color: var(--text-primary); }
        .lanc-tab-btn.active {
            color: var(--text-primary);
            border-bottom-color: var(--text-primary);
            background: white;
        }
        .lanc-tab-content { display: none; padding: 24px; }
        .lanc-tab-content.lanc-active { display: block; }

        /* Calendário semanal */
        .semana-cal-grid {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 10px;
        }
        .semana-cal-dia {
            background: #F7F6F3;
            border-radius: 14px;
            padding: 14px 8px 10px;
            text-align: center;
            border: 1.5px solid transparent;
            cursor: default;
            transition: box-shadow 0.15s;
        }
        .semana-cal-dia.hoje {
            background: #1A1A1A;
            border-color: #1A1A1A;
        }
        .semana-cal-dia.tem-evento {
            border-color: var(--border);
            box-shadow: 0 2px 8px rgba(0,0,0,0.06);
        }
        .semana-cal-dia-nome {
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            color: var(--text-muted);
            margin-bottom: 4px;
        }
        .semana-cal-dia.hoje .semana-cal-dia-nome { color: rgba(255,255,255,0.6); }
        .semana-cal-dia-num {
            font-size: 22px;
            font-weight: 700;
            color: var(--text-primary);
            line-height: 1.1;
        }
        .semana-cal-dia.hoje .semana-cal-dia-num { color: white; }
        .semana-cal-dots {
            display: flex;
            gap: 4px;
            justify-content: center;
            margin-top: 8px;
            min-height: 10px;
        }
        .semana-cal-dot {
            width: 7px; height: 7px;
            border-radius: 50%;
            display: inline-block;
        }
        .semana-cal-eventos-count {
            font-size: 9px;
            color: var(--text-muted);
            margin-top: 3px;
        }
        .semana-cal-dia.hoje .semana-cal-eventos-count { color: rgba(255,255,255,0.5); }

        /* Cards de resumo semanal */
        .lanc-resumo-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 12px;
            margin-bottom: 20px;
        }
        .lanc-resumo-card {
            border-radius: 12px;
            padding: 14px 16px;
            text-align: center;
        }
        .lanc-resumo-label {
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 4px;
        }
        .lanc-resumo-valor {
            font-size: 18px;
            font-weight: 700;
            line-height: 1.2;
        }

        /* Itens de lançamento */
        .lanc-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 14px;
            border-radius: 12px;
            border: 1px solid var(--border-light);
            margin-bottom: 8px;
            background: white;
            transition: box-shadow 0.15s;
        }
        .lanc-item:hover { box-shadow: 0 2px 10px rgba(0,0,0,0.06); }
        .lanc-item-icon {
            width: 38px; height: 38px;
            border-radius: 10px;
            display: flex; align-items: center; justify-content: center;
            font-size: 15px;
            flex-shrink: 0;
            margin-right: 12px;
        }
        .lanc-item-info { flex: 1; min-width: 0; }
        .lanc-item-nome {
            font-weight: 600;
            font-size: 13px;
            color: var(--text-primary);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .lanc-item-meta {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 2px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .lanc-item-right { text-align: right; flex-shrink: 0; margin-left: 12px; }
        .lanc-item-valor {
            font-weight: 700;
            font-size: 14px;
        }
        .lanc-status-badge {
            font-size: 10px;
            padding: 2px 8px;
            border-radius: 10px;
            font-weight: 600;
            display: inline-block;
            margin-top: 3px;
        }

        /* Compras futuras */
        .compra-futura-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 14px;
            border-radius: 12px;
            border: 1px solid var(--border-light);
            margin-bottom: 8px;
            background: white;
            transition: opacity 0.2s;
        }
        .compra-futura-item.concluida { opacity: 0.5; }
        .cf-checkbox {
            width: 22px; height: 22px;
            border-radius: 7px;
            border: 2px solid var(--border);
            background: white;
            cursor: pointer;
            display: flex; align-items: center; justify-content: center;
            flex-shrink: 0;
            transition: background 0.15s, border-color 0.15s;
        }
        .cf-checkbox.checked {
            background: #4CAF50;
            border-color: #4CAF50;
        }

        /* Lembretes */
        .lembrete-item {
            display: flex;
            align-items: center;
            gap: 14px;
            padding: 12px 16px;
            border-radius: 12px;
            border: 1.5px solid var(--border-light);
            margin-bottom: 8px;
            background: white;
        }
        .lembrete-data-box {
            width: 46px; height: 46px;
            border-radius: 12px;
            background: #F0F0F0;
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            flex-shrink: 0;
        }
        .lembrete-data-box.hoje-box { background: #C9A227; }
        .lembrete-data-box.vencido-box { background: #FFEBEE; }
        .lembrete-data-dia { font-size: 16px; font-weight: 700; line-height: 1; color: var(--text-primary); }
        .lembrete-data-mes { font-size: 9px; text-transform: uppercase; color: var(--text-muted); }
        .lembrete-data-box.hoje-box .lembrete-data-dia,
        .lembrete-data-box.hoje-box .lembrete-data-mes { color: white; }
        .lembrete-data-box.vencido-box .lembrete-data-dia,
        .lembrete-data-box.vencido-box .lembrete-data-mes { color: #C62828; }

        /* Botão ação pequeno */
        .lanc-btn-acao {
            background: none;
            border: none;
            border-radius: 8px;
            padding: 5px 10px;
            cursor: pointer;
            font-size: 11px;
            font-weight: 600;
        }

        @media (max-width: 768px) {
            .lanc-resumo-grid { grid-template-columns: 1fr; gap: 8px; }
            .semana-cal-grid { gap: 6px; }
            .semana-cal-dia { padding: 10px 4px 8px; }
            .semana-cal-dia-num { font-size: 18px; }
            .lanc-tab-btn { min-width: 90px; font-size: 10px; }
            .lanc-tab-content { padding: 16px; }
        }

        /* ================================================
           LINHA DE PRODUÇÃO — KANBAN TIMELINE
           ================================================ */

        /* Container de scrolling horizontal */
        .prod-kanban-wrap {
            overflow-x: auto;
            overflow-y: visible;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 16px;
        }

        .prod-kanban {
            display: flex;
            gap: 14px;
            min-width: max-content;
            align-items: flex-start;
        }

        /* Coluna do kanban */
        .prod-col {
            width: 210px;
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
        }

        .prod-col-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 14px;
            border-radius: 12px 12px 0 0;
            background: white;
            border: 1px solid var(--border-light);
            border-bottom: none;
            margin-bottom: 0;
        }

        .prod-col-num {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 700;
            color: white;
            flex-shrink: 0;
        }

        .prod-col-title {
            font-size: 11px;
            font-weight: 700;
            color: var(--text-primary);
            text-transform: uppercase;
            letter-spacing: 0.3px;
            line-height: 1.2;
            flex: 1;
        }

        .prod-col-count {
            font-size: 11px;
            font-weight: 700;
            background: var(--border-light);
            color: var(--text-muted);
            padding: 2px 7px;
            border-radius: 10px;
            flex-shrink: 0;
        }

        .prod-col-body {
            background: #F7F6F3;
            border: 1px solid var(--border-light);
            border-top: none;
            border-radius: 0 0 12px 12px;
            padding: 10px;
            min-height: 160px;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        /* Card de projeto dentro do kanban */
        .prod-proj-card {
            background: white;
            border: 1.5px solid var(--border-light);
            border-radius: 12px;
            padding: 14px;
            cursor: pointer;
            transition: box-shadow 0.15s, border-color 0.15s;
        }

        .prod-proj-card:hover {
            box-shadow: 0 4px 16px rgba(0,0,0,0.10);
            border-color: var(--border);
        }

        .prod-proj-nome {
            font-weight: 700;
            font-size: 13px;
            color: var(--text-primary);
            line-height: 1.3;
            margin-bottom: 2px;
        }

        .prod-proj-cliente {
            font-size: 11px;
            color: var(--text-muted);
            margin-bottom: 10px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        /* Dots de progresso (10 bolinhas) */
        .prod-dots {
            display: flex;
            gap: 3px;
            margin-bottom: 6px;
            flex-wrap: wrap;
        }

        .prod-dot {
            width: 14px;
            height: 14px;
            border-radius: 50%;
            border: 2px solid #E0E0E0;
            background: white;
            transition: background 0.2s;
            flex-shrink: 0;
        }

        .prod-dot.done    { background: #4CAF50; border-color: #4CAF50; }
        .prod-dot.current { background: white; border-color: var(--text-primary); border-width: 2.5px; }

        .prod-prog-label {
            font-size: 10px;
            color: var(--text-muted);
            font-weight: 600;
            margin-bottom: 8px;
        }

        .prod-card-resp {
            font-size: 10px;
            color: var(--text-muted);
            margin-bottom: 8px;
        }

        .prod-avancar-btn {
            width: 100%;
            background: #1A1A1A;
            color: white;
            border: none;
            border-radius: 8px;
            padding: 7px 10px;
            font-size: 11px;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.15s;
        }

        .prod-avancar-btn:hover { background: #333; }
        .prod-avancar-btn:disabled { background: #C8E6C9; color: #2E7D32; cursor: default; }

        /* Stats bar */
        .prod-stats {
            display: flex;
            gap: 16px;
            margin-bottom: 24px;
            flex-wrap: wrap;
        }

        .prod-stat {
            background: white;
            border: 1px solid var(--border-light);
            border-radius: 12px;
            padding: 12px 20px;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .prod-stat-num {
            font-size: 22px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .prod-stat-label {
            font-size: 11px;
            color: var(--text-muted);
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.3px;
        }

        /* Drawer de timeline */
        .prod-drawer-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.35);
            z-index: 400;
            display: none;
            backdrop-filter: blur(2px);
        }

        .prod-drawer-overlay.open { display: block; }

        .prod-drawer {
            position: fixed;
            top: 0;
            right: 0;
            bottom: 0;
            width: 420px;
            max-width: 95vw;
            background: white;
            z-index: 401;
            box-shadow: -8px 0 40px rgba(0,0,0,0.12);
            display: flex;
            flex-direction: column;
            transform: translateX(100%);
            transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
        }

        .prod-drawer-overlay.open .prod-drawer {
            transform: translateX(0);
        }

        .prod-drawer-header {
            padding: 20px 24px;
            border-bottom: 1px solid var(--border-light);
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            flex-shrink: 0;
        }

        .prod-drawer-body {
            flex: 1;
            overflow-y: auto;
            padding: 24px;
        }

        /* Timeline dentro do drawer */
        .prod-timeline-item {
            display: flex;
            gap: 14px;
            margin-bottom: 4px;
            position: relative;
        }

        .prod-timeline-left {
            display: flex;
            flex-direction: column;
            align-items: center;
            flex-shrink: 0;
            width: 32px;
        }

        .prod-tl-circle {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            border: 2.5px solid #E0E0E0;
            background: white;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 13px;
            font-weight: 700;
            color: var(--text-muted);
            flex-shrink: 0;
            transition: all 0.2s;
        }

        .prod-tl-circle.done    { background: #4CAF50; border-color: #4CAF50; color: white; }
        .prod-tl-circle.current { background: #1A1A1A; border-color: #1A1A1A; color: white; }

        .prod-tl-line {
            width: 2px;
            flex: 1;
            min-height: 24px;
            background: #E0E0E0;
            margin: 4px 0;
        }

        .prod-tl-line.done { background: #4CAF50; }

        .prod-timeline-content {
            flex: 1;
            padding-bottom: 24px;
        }

        .prod-tl-label {
            font-size: 13px;
            font-weight: 700;
            color: var(--text-primary);
            margin-bottom: 2px;
        }

        .prod-tl-label.muted { color: var(--text-muted); font-weight: 500; }

        .prod-tl-date {
            font-size: 11px;
            color: var(--text-muted);
            margin-bottom: 6px;
        }

        .prod-tl-box {
            background: #F7F6F3;
            border-radius: 10px;
            padding: 14px;
            margin-top: 8px;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .prod-tl-field label {
            font-size: 11px;
            font-weight: 600;
            color: var(--text-secondary);
            text-transform: uppercase;
            letter-spacing: 0.4px;
            display: block;
            margin-bottom: 6px;
        }

        .prod-gaiola-pills { display: flex; gap: 8px; }

        .prod-gaiola-pill {
            width: 42px;
            height: 36px;
            border-radius: 8px;
            border: 2px solid var(--border);
            background: white;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.15s;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .prod-gaiola-pill.active {
            background: #1A1A1A;
            border-color: #1A1A1A;
            color: white;
        }

        .prod-checklist-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 0;
            border-bottom: 1px solid var(--border-light);
            cursor: pointer;
        }

        .prod-checklist-item:last-child { border-bottom: none; }

        .prod-check-box {
            width: 20px;
            height: 20px;
            border-radius: 5px;
            border: 2px solid var(--border);
            background: white;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: all 0.15s;
        }

        .prod-check-box.checked {
            background: #4CAF50;
            border-color: #4CAF50;
            color: white;
        }

        .prod-concluir-btn {
            width: 100%;
            background: #1A1A1A;
            color: white;
            border: none;
            border-radius: 10px;
            padding: 12px;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
            margin-top: 12px;
            transition: background 0.15s;
        }

        .prod-concluir-btn:hover { background: #333; }
        .prod-concluir-btn.green { background: #2E7D32; }

        /* Vazio */
        .prod-col-empty {
            text-align: center;
            padding: 24px 8px;
            color: var(--text-muted);
            font-size: 11px;
        }

        /* DnD drop zone highlight */
        .prod-col-body.dnd-over {
            background: #E8F5E9;
            border: 2px dashed #4CAF50;
            border-radius: 12px;
        }

        .prod-proj-card.dragging {
            opacity: 0.4;
            transform: rotate(2deg);
        }

        /* Etapas concluídas — expansível */
        .prod-tl-concluida-toggle {
            background: none;
            border: none;
            cursor: pointer;
            font-size: 11px;
            font-weight: 600;
            color: var(--text-muted);
            padding: 2px 6px;
            border-radius: 6px;
            margin-left: 4px;
            transition: background 0.15s;
        }

        .prod-tl-concluida-toggle:hover {
            background: var(--border-light);
            color: var(--text-primary);
        }

        .prod-tl-edit-box {
            background: #F7F6F3;
            border-radius: 10px;
            padding: 14px;
            margin-top: 8px;
            display: none;
            flex-direction: column;
            gap: 10px;
            border: 1px solid var(--border-light);
        }

        .prod-tl-edit-box.open { display: flex; }

        .prod-retroceder-btn {
            background: none;
            border: 1.5px solid var(--accent-red);
            color: var(--accent-red);
            border-radius: 8px;
            padding: 8px 12px;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            transition: background 0.15s;
        }

        .prod-retroceder-btn:hover {
            background: var(--accent-red-soft);
        }

        @media (max-width: 768px) {
            .prod-col { width: 180px; }
            .prod-drawer { width: 100vw; }
            .prod-stats { gap: 8px; }
            .prod-stat { padding: 10px 14px; }
        }

        /* ================================================
           PROJETOS — KANBAN TIMELINE
           ================================================ */

        .proj-kanban-wrap {
            overflow-x: auto;
            overflow-y: visible;
            -webkit-overflow-scrolling: touch;
            padding-bottom: 16px;
            margin-top: 16px;
        }

        .proj-kanban {
            display: flex;
            gap: 14px;
            min-width: max-content;
            align-items: flex-start;
        }

        .proj-col {
            width: 260px;
            flex-shrink: 0;
            display: flex;
            flex-direction: column;
        }

        .proj-col-header {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 12px 14px;
            border-radius: 12px 12px 0 0;
            background: white;
            border: 1px solid var(--border-light);
            border-bottom: none;
            margin-bottom: 0;
        }

        .proj-col-title {
            font-size: 13px;
            font-weight: 700;
            color: var(--text-primary);
            text-transform: capitalize;
            letter-spacing: 0.3px;
            flex: 1;
        }

        .proj-col-count {
            font-size: 11px;
            font-weight: 700;
            background: var(--border-light);
            color: var(--text-muted);
            padding: 2px 7px;
            border-radius: 10px;
        }

        .proj-col-body {
            background: #F7F6F3;
            border: 1px solid var(--border-light);
            border-top: none;
            border-radius: 0 0 12px 12px;
            padding: 10px;
            min-height: 200px;
            display: flex;
            flex-direction: column;
            gap: 10px;
            transition: background 0.2s, border-color 0.2s;
        }

        .proj-col-body.dnd-over {
            background: #E8F5E9;
            border: 2px dashed #4CAF50;
            border-radius: 0 0 12px 12px;
        }

        .proj-card {
            background: white;
            border: 1.5px solid var(--border-light);
            border-radius: 12px;
            padding: 14px;
            cursor: grab;
            transition: box-shadow 0.15s, border-color 0.15s, opacity 0.2s, transform 0.2s;
        }

        .proj-card:active {
            cursor: grabbing;
        }

        .proj-card.dragging {
            opacity: 0.5;
            transform: rotate(2deg);
            cursor: grabbing;
        }

        .proj-card:hover {
            box-shadow: 0 4px 16px rgba(0,0,0,0.10);
            border-color: var(--border);
        }

        .proj-card-nome {
            font-weight: 700;
            font-size: 14px;
            color: var(--text-primary);
            line-height: 1.3;
            margin-bottom: 4px;
        }

        .proj-card-cliente {
            font-size: 12px;
            color: var(--text-muted);
            margin-bottom: 12px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .proj-card-info {
            display: flex;
            justify-content: space-between;
            font-size: 11px;
            color: var(--text-secondary);
            border-top: 1px solid var(--border-light);
            padding-top: 8px;
            margin-top: 8px;
        }

        .proj-col-empty {
            text-align: center;
            padding: 24px 8px;
            color: var(--text-muted);
            font-size: 11px;
        }
/* ================================================
           TELA DE BOAS VINDAS — RESPONSIVO MOBILE
           ================================================ */

        @media (max-width: 768px) {
            #welcome-card {
                flex-direction: column !important;
                gap: 20px !important;
                padding: 20px !important;
                text-align: center;
            }
            #welcome-photo-wrap {
                width: 180px !important;
                height: 200px !important;
            }
            #welcome-initials {
                font-size: 72px !important;
            }
            #welcome-period {
                font-size: 22px !important;
            }
            #welcome-name {
                font-size: 38px !important;
                margin-bottom: 20px !important;
            }
            #welcome-message {
                font-size: 16px !important;
            }
            #welcome-card > div:first-child {
                top: 16px !important;
                right: 16px !important;
            }
            #welcome-card > div:first-child img {
                height: 24px !important;
            }
        }

