
/* ============================================================
   C-GESTUS APM · v2.0.0
   Camada visual final e responsiva
   ============================================================ */

:root{
    --v2-blue:#158fd0;
    --v2-blue-2:#2672b8;
    --v2-blue-soft:#eef8fd;
    --v2-navy:#102532;
    --v2-charcoal:#35454c;
    --v2-bg:#f3f5f4;
    --v2-card:#ffffff;
    --v2-line:#dfe6e6;
    --v2-line-strong:#cad6d9;
    --v2-muted:#6e7a7d;
    --v2-shadow:0 14px 40px rgba(16,37,50,.065);
    --v2-shadow-soft:0 7px 22px rgba(16,37,50,.045);
    --v2-radius:16px;
    --v2-radius-small:11px;
    --v2-safe-bottom:env(safe-area-inset-bottom,0px);
}

html{
    background:var(--v2-bg);
    scroll-padding-top:88px
}

body{
    background:
        radial-gradient(circle at 100% -10%,rgba(21,143,208,.07),transparent 28rem),
        var(--v2-bg);
    color:var(--v2-navy);
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility
}

body.v2-menu-open{
    overflow:hidden
}

::selection{
    background:rgba(21,143,208,.18)
}

.v2-skip-link{
    position:fixed;
    left:12px;
    top:10px;
    z-index:500;
    transform:translateY(-140%);
    padding:9px 12px;
    border-radius:9px;
    background:var(--v2-navy);
    color:#fff;
    font-weight:800;
    transition:transform .15s ease
}
.v2-skip-link:focus{
    transform:translateY(0)
}

/* Focus acessível */
:focus-visible{
    outline:3px solid rgba(21,143,208,.35);
    outline-offset:2px
}
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible){
    outline:none
}

/* Topbar */
.v2-topbar{
    min-height:68px;
    gap:10px;
    padding:
        0
        max(14px,env(safe-area-inset-right))
        0
        max(14px,env(safe-area-inset-left));
    background:rgba(255,255,255,.93);
    border-bottom:1px solid rgba(202,214,217,.85);
    box-shadow:0 5px 18px rgba(16,37,50,.035);
    backdrop-filter:blur(16px) saturate(1.15)
}

.v2-brand{
    flex:0 0 auto;
    gap:8px;
    min-width:132px;
    letter-spacing:0
}
.v2-brand img{
    width:38px;
    height:38px;
    object-fit:contain
}
.v2-brand-copy{
    display:grid;
    line-height:1
}
.v2-brand-copy strong{
    color:var(--v2-charcoal);
    font-size:13px;
    letter-spacing:.105em
}
.v2-brand-copy small{
    margin-top:4px;
    color:var(--v2-blue-2);
    font-size:8px;
    font-weight:900;
    letter-spacing:.22em
}

.v2-primary-nav{
    display:flex;
    flex:1 1 auto;
    justify-content:center;
    align-items:center;
    gap:3px;
    min-width:0
}
.v2-primary-nav>a,
.v2-more-button{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:0 10px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:#526166;
    font-size:12px;
    font-weight:760;
    white-space:nowrap
}
.v2-primary-nav>a:hover,
.v2-more-button:hover{
    background:#f1f6f8;
    color:var(--v2-navy)
}
.v2-primary-nav>a[aria-current="page"]{
    background:var(--v2-blue-soft);
    color:#176b9a
}
.v2-primary-nav>a[aria-current="page"]::before{
    content:"";
    width:5px;
    height:5px;
    border-radius:50%;
    background:var(--v2-blue)
}
.v2-more-button{
    cursor:pointer
}

.v2-clock{
    min-width:78px;
    text-align:right
}
.v2-clock strong{
    display:block;
    color:var(--v2-navy);
    font-size:12px;
    font-variant-numeric:tabular-nums
}
.v2-clock span{
    display:block;
    margin-top:2px;
    color:#879296;
    font-size:8px
}

.v2-network-pill{
    flex:0 0 auto;
    padding:4px 7px;
    border:1px solid #efbd9d;
    border-radius:999px;
    background:#fff7ef;
    color:#94501f;
    font-size:8px;
    font-weight:850
}

.v2-icon-action,
.v2-menu-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border:1px solid transparent;
    border-radius:11px;
    background:transparent;
    color:var(--v2-charcoal);
    font-size:17px
}
.v2-icon-action:hover,
.v2-menu-icon:hover{
    border-color:var(--v2-line);
    background:#f7f9f9
}

.v2-capture-action{
    width:39px;
    height:39px;
    flex:0 0 39px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:linear-gradient(145deg,var(--v2-blue),var(--v2-blue-2));
    color:#fff;
    font-size:23px;
    line-height:1;
    box-shadow:0 6px 16px rgba(21,143,208,.22)
}
.v2-capture-action:hover{
    transform:translateY(-1px)
}
.v2-install-action{
    flex:0 0 auto;
    padding:8px 10px
}
.v2-menu-icon{
    display:none;
    cursor:pointer
}

/* Conteúdo */
.v2-shell{
    width:min(1360px,calc(100% - 34px));
    padding-top:26px;
    padding-bottom:96px
}
.v2-shell .hero{
    padding-top:17px
}
.v2-shell .hero h1{
    color:var(--v2-navy);
    font-size:clamp(30px,4vw,52px);
    letter-spacing:-.035em
}
.v2-shell .hero p{
    color:var(--v2-muted);
    font-size:15px
}
.v2-shell .eyebrow{
    color:#718086;
    font-size:9px;
    letter-spacing:.18em
}

.card,
.panel,
.login-card{
    border-color:var(--v2-line);
    border-radius:var(--v2-radius);
    box-shadow:none
}
.card{
    background:rgba(255,255,255,.96)
}
.card:hover{
    border-color:var(--v2-line-strong);
    box-shadow:var(--v2-shadow-soft);
    transform:translateY(-1px)
}
.panel{
    background:rgba(255,255,255,.97)
}
.stat-card strong{
    color:var(--v2-navy);
    font-size:30px;
    letter-spacing:-.025em
}

.button{
    min-height:40px;
    border-radius:10px;
    background:var(--v2-navy);
    font-size:12px
}
.button:hover{
    filter:brightness(1.06)
}
.button.secondary{
    border-color:var(--v2-line-strong);
    color:var(--v2-navy)
}
.button.compact{
    min-height:34px
}

input,
select,
textarea{
    accent-color:var(--v2-blue)
}
.form-grid input,
.form-grid select,
.form-grid textarea,
.filter-form input,
.filter-form select{
    border-color:var(--v2-line-strong)
}
input:focus,
select:focus,
textarea:focus{
    border-color:#7bbde0!important;
    box-shadow:0 0 0 3px rgba(21,143,208,.09)
}

.notice,
.alert{
    border-radius:12px
}

/* Menu lateral universal */
.v2-menu-backdrop{
    position:fixed;
    inset:0;
    z-index:199;
    background:rgba(13,29,38,.38);
    backdrop-filter:blur(2px)
}
.v2-app-menu{
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    z-index:200;
    width:min(420px,calc(100% - 28px));
    padding:
        max(16px,env(safe-area-inset-top))
        14px
        calc(18px + env(safe-area-inset-bottom))
        14px;
    overflow:auto;
    background:#fff;
    box-shadow:-22px 0 60px rgba(10,28,38,.15)
}
.v2-app-menu>header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:3px 4px 15px;
    border-bottom:1px solid var(--v2-line)
}
.v2-app-menu>header>div{
    display:flex;
    align-items:center;
    gap:10px
}
.v2-app-menu>header img{
    object-fit:contain
}
.v2-app-menu>header strong,
.v2-app-menu>header small{
    display:block
}
.v2-app-menu>header strong{
    color:var(--v2-charcoal);
    font-size:12px;
    letter-spacing:.09em
}
.v2-app-menu>header small{
    margin-top:4px;
    color:#899599;
    font-size:8px
}
.v2-app-menu>header>button{
    width:38px;
    height:38px;
    border:0;
    border-radius:10px;
    background:#f1f4f4;
    color:#4e5b60;
    font-size:22px
}

.v2-menu-section{
    padding:14px 3px 0
}
.v2-menu-label{
    display:block;
    margin:0 5px 7px;
    color:#93a0a3;
    font-size:8px;
    font-weight:850;
    letter-spacing:.16em;
    text-transform:uppercase
}
.v2-menu-section nav{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:5px
}
.v2-menu-section nav>a{
    min-height:43px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:7px;
    padding:8px 10px;
    border:1px solid transparent;
    border-radius:10px;
    color:#46565b;
    font-size:10px;
    font-weight:740
}
.v2-menu-section nav>a:hover{
    border-color:var(--v2-line);
    background:#f7f9f9
}
.v2-menu-section nav>a[aria-current="page"]{
    border-color:#cce6f3;
    background:var(--v2-blue-soft);
    color:#176b9a
}
.v2-menu-section nav>a small{
    color:#2286bd;
    font-size:7px
}
.v2-menu-quick{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px
}
.v2-menu-quick>a{
    min-height:68px;
    display:grid;
    place-items:center;
    align-content:center;
    gap:4px;
    padding:7px 4px;
    border:1px solid var(--v2-line);
    border-radius:11px;
    background:#fbfcfc;
    text-align:center
}
.v2-menu-quick strong{
    font-size:20px;
    line-height:1
}
.v2-menu-quick span{
    color:#5c6a6e;
    font-size:8px;
    font-weight:750
}
.v2-app-menu>footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
    margin-top:18px;
    padding:14px 5px 2px;
    border-top:1px solid var(--v2-line)
}
.v2-app-menu>footer strong,
.v2-app-menu>footer small{
    display:block
}
.v2-app-menu>footer strong{
    max-width:210px;
    overflow:hidden;
    color:#4f5d61;
    font-size:9px;
    text-overflow:ellipsis;
    white-space:nowrap
}
.v2-app-menu>footer small{
    margin-top:2px;
    color:#9aa3a5;
    font-size:7px
}

/* Dock móvel */
.v2-mobile-dock{
    display:none
}

/* Login v2 */
.cgestus-login-card{
    border:0;
    box-shadow:var(--v2-shadow);
    text-align:left
}
.cgestus-login-logo{
    display:block;
    max-width:210px;
    height:auto;
    margin:0 auto 18px
}
.login-wrap{
    min-height:calc(100vh - 40px)
}

/* Calendários e tabelas mais legíveis */
.calendar-day,
.week-column,
.timeline-day{
    border-color:var(--v2-line)
}
.calendar-day.today{
    background:#f7fcff
}
.calendar-day.today header span{
    background:var(--v2-blue-2)
}
.task-scope-bar a.active,
.agenda-viewbar a.active{
    background:var(--v2-navy);
    border-color:var(--v2-navy)
}
.calendar-item{
    border:1px solid rgba(0,0,0,.025)
}
.calendar-item.event{
    background:#edf7fd
}
.calendar-item.task{
    background:#f3f4f2
}

/* Progressos sem style inline, compatíveis com CSP */
.p140-progress-track span,
.r170-category-track span,
.r170-project-progress i{
    transition:width .2s ease
}
.r170-bar{
    transition:height .2s ease
}

/* Estado do sistema v2 */
.v2-health-hero{
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:flex-end
}
.v2-health-score{
    min-width:128px;
    display:grid;
    place-items:center;
    align-content:center;
    padding:16px;
    border:1px solid var(--v2-line);
    border-radius:16px;
    background:#fff
}
.v2-health-score strong{
    font-size:31px;
    letter-spacing:-.04em
}
.v2-health-score span{
    color:var(--v2-muted);
    font-size:8px
}
.v2-health-score.good strong{
    color:#27763b
}
.v2-health-score.warn strong{
    color:#9a6b17
}
.v2-health-score.bad strong{
    color:#a13f38
}
.v2-health-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px
}
.v2-health-card{
    min-height:115px;
    display:grid;
    align-content:start;
    gap:6px;
    padding:12px;
    border:1px solid var(--v2-line);
    border-radius:12px;
    background:#fff
}
.v2-health-card header{
    display:flex;
    justify-content:space-between;
    gap:8px
}
.v2-health-card h3{
    margin:0;
    font-size:10px
}
.v2-health-card p{
    margin:0;
    color:var(--v2-muted);
    font-size:8px;
    line-height:1.45
}
.v2-health-status{
    width:8px;
    height:8px;
    flex:0 0 8px;
    border-radius:50%;
    background:#9ca6a8
}
.v2-health-card.good .v2-health-status{
    background:#42a05a
}
.v2-health-card.warn .v2-health-status{
    background:#d69c34
}
.v2-health-card.bad .v2-health-status{
    background:#c9554d
}
.v2-health-meta{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px
}
.v2-health-meta>div{
    padding:10px;
    border:1px solid var(--v2-line);
    border-radius:10px;
    background:#fafcfc
}
.v2-health-meta span,
.v2-health-meta strong{
    display:block
}
.v2-health-meta span{
    color:var(--v2-muted);
    font-size:7px
}
.v2-health-meta strong{
    margin-top:3px;
    overflow-wrap:anywhere;
    font-size:9px
}
.v2-release-integrity{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:9px
}
.v2-release-integrity span{
    padding:4px 7px;
    border-radius:999px;
    background:#f0f3f3;
    color:#637074;
    font-size:7px
}

/* Área técnica monoespaçada */
.v2-code{
    display:block;
    overflow:auto;
    padding:10px;
    border-radius:9px;
    background:#10212a;
    color:#dcecf4;
    font:8px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;
    white-space:nowrap
}

/* Aviso de snapshot estável */
.v2-release-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:5px 8px;
    border:1px solid #c9e4f1;
    border-radius:999px;
    background:#f4fbfe;
    color:#27739a;
    font-size:8px;
    font-weight:850
}

/* Melhorias gerais de toque */
@media(pointer:coarse){
    .button,
    .task-scope-bar a,
    .agenda-viewbar a{
        min-height:44px
    }
    .v2-menu-section nav>a{
        min-height:48px
    }
}

/* Tablet */
@media(max-width:1120px){
    .v2-brand{
        min-width:auto
    }
    .v2-brand-copy small{
        display:none
    }
    .v2-primary-nav>a{
        padding:0 7px;
        font-size:10px
    }
    .v2-clock{
        display:none
    }
    .v2-health-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

/* Mobile */
@media(max-width:820px){
    html{
        scroll-padding-top:70px
    }
    body{
        padding-bottom:calc(72px + var(--v2-safe-bottom))
    }
    .v2-topbar{
        min-height:62px;
        padding-left:max(10px,env(safe-area-inset-left));
        padding-right:max(10px,env(safe-area-inset-right))
    }
    .v2-primary-nav,
    .v2-install-action{
        display:none!important
    }
    .v2-brand{
        margin-right:auto
    }
    .v2-brand img{
        width:35px;
        height:35px
    }
    .v2-icon-action{
        width:36px;
        height:36px;
        flex-basis:36px
    }
    .v2-menu-icon{
        display:grid
    }
    .v2-capture-action{
        display:none
    }
    .v2-shell{
        width:min(100% - 18px,1360px);
        padding-top:13px;
        padding-bottom:36px
    }
    .v2-shell .hero{
        padding-top:10px
    }
    .v2-shell .hero h1{
        font-size:clamp(28px,9vw,40px)
    }
    .v2-shell .hero p{
        font-size:13px
    }
    .card,
    .panel{
        border-radius:13px
    }
    .card,
    .panel,
    .login-card{
        padding:15px
    }

    .v2-mobile-dock{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        z-index:90;
        height:calc(62px + var(--v2-safe-bottom));
        display:grid;
        grid-template-columns:repeat(5,1fr);
        padding:
            5px
            max(5px,env(safe-area-inset-right))
            calc(5px + var(--v2-safe-bottom))
            max(5px,env(safe-area-inset-left));
        border-top:1px solid rgba(202,214,217,.92);
        background:rgba(255,255,255,.96);
        box-shadow:0 -8px 30px rgba(16,37,50,.075);
        backdrop-filter:blur(16px)
    }
    .v2-mobile-dock>a,
    .v2-mobile-dock>button{
        display:grid;
        place-items:center;
        align-content:center;
        gap:2px;
        border:0;
        border-radius:10px;
        background:transparent;
        color:#667579
    }
    .v2-mobile-dock span{
        font-size:18px;
        line-height:1
    }
    .v2-mobile-dock small{
        font-size:7px;
        font-weight:800
    }
    .v2-mobile-dock [aria-current="page"]{
        background:var(--v2-blue-soft);
        color:#176d9c
    }
    .v2-mobile-dock .v2-mobile-capture{
        width:52px;
        height:52px;
        align-self:center;
        justify-self:center;
        margin-top:-17px;
        border-radius:17px;
        background:linear-gradient(145deg,var(--v2-blue),var(--v2-blue-2));
        color:#fff;
        box-shadow:0 8px 20px rgba(21,143,208,.25)
    }
    .v2-mobile-dock .v2-mobile-capture span{
        font-size:26px
    }
    .v2-mobile-dock .v2-mobile-capture small{
        color:#fff
    }

    .search120-palette{
        padding-bottom:calc(70px + var(--v2-safe-bottom))
    }

    .pwa-banner{
        bottom:calc(72px + var(--v2-safe-bottom))
    }

    .v2-health-hero{
        align-items:stretch;
        flex-direction:column
    }
    .v2-health-score{
        min-width:0
    }
    .v2-health-meta{
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
}

/* Telefone estreito */
@media(max-width:520px){
    .v2-brand-copy strong{
        font-size:11px
    }
    .notification-bell{
        margin:0
    }
    .v2-app-menu{
        width:100%;
        max-width:none
    }
    .v2-menu-section nav{
        grid-template-columns:1fr 1fr
    }
    .v2-menu-quick{
        grid-template-columns:repeat(4,1fr)
    }
    .v2-health-grid,
    .v2-health-meta{
        grid-template-columns:1fr
    }
}

/* Movimento reduzido */
@media(prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto
    }
    *,
    *::before,
    *::after{
        scroll-behavior:auto!important;
        transition-duration:.001ms!important;
        animation-duration:.001ms!important;
        animation-iteration-count:1!important
    }
}

/* Impressão */
@media print{
    .topbar,
    .v2-mobile-dock,
    .v2-app-menu,
    .v2-menu-backdrop,
    .pwa-banner,
    .search120-palette{
        display:none!important
    }
    body{
        padding:0!important;
        background:#fff!important
    }
    .v2-shell{
        width:100%!important;
        max-width:none!important;
        padding:0!important
    }
}

/* Classes de progresso 0..100 para CSP estrito */
.v2-w0{width:0%}
.v2-w1{width:1%}
.v2-w2{width:2%}
.v2-w3{width:3%}
.v2-w4{width:4%}
.v2-w5{width:5%}
.v2-w6{width:6%}
.v2-w7{width:7%}
.v2-w8{width:8%}
.v2-w9{width:9%}
.v2-w10{width:10%}
.v2-w11{width:11%}
.v2-w12{width:12%}
.v2-w13{width:13%}
.v2-w14{width:14%}
.v2-w15{width:15%}
.v2-w16{width:16%}
.v2-w17{width:17%}
.v2-w18{width:18%}
.v2-w19{width:19%}
.v2-w20{width:20%}
.v2-w21{width:21%}
.v2-w22{width:22%}
.v2-w23{width:23%}
.v2-w24{width:24%}
.v2-w25{width:25%}
.v2-w26{width:26%}
.v2-w27{width:27%}
.v2-w28{width:28%}
.v2-w29{width:29%}
.v2-w30{width:30%}
.v2-w31{width:31%}
.v2-w32{width:32%}
.v2-w33{width:33%}
.v2-w34{width:34%}
.v2-w35{width:35%}
.v2-w36{width:36%}
.v2-w37{width:37%}
.v2-w38{width:38%}
.v2-w39{width:39%}
.v2-w40{width:40%}
.v2-w41{width:41%}
.v2-w42{width:42%}
.v2-w43{width:43%}
.v2-w44{width:44%}
.v2-w45{width:45%}
.v2-w46{width:46%}
.v2-w47{width:47%}
.v2-w48{width:48%}
.v2-w49{width:49%}
.v2-w50{width:50%}
.v2-w51{width:51%}
.v2-w52{width:52%}
.v2-w53{width:53%}
.v2-w54{width:54%}
.v2-w55{width:55%}
.v2-w56{width:56%}
.v2-w57{width:57%}
.v2-w58{width:58%}
.v2-w59{width:59%}
.v2-w60{width:60%}
.v2-w61{width:61%}
.v2-w62{width:62%}
.v2-w63{width:63%}
.v2-w64{width:64%}
.v2-w65{width:65%}
.v2-w66{width:66%}
.v2-w67{width:67%}
.v2-w68{width:68%}
.v2-w69{width:69%}
.v2-w70{width:70%}
.v2-w71{width:71%}
.v2-w72{width:72%}
.v2-w73{width:73%}
.v2-w74{width:74%}
.v2-w75{width:75%}
.v2-w76{width:76%}
.v2-w77{width:77%}
.v2-w78{width:78%}
.v2-w79{width:79%}
.v2-w80{width:80%}
.v2-w81{width:81%}
.v2-w82{width:82%}
.v2-w83{width:83%}
.v2-w84{width:84%}
.v2-w85{width:85%}
.v2-w86{width:86%}
.v2-w87{width:87%}
.v2-w88{width:88%}
.v2-w89{width:89%}
.v2-w90{width:90%}
.v2-w91{width:91%}
.v2-w92{width:92%}
.v2-w93{width:93%}
.v2-w94{width:94%}
.v2-w95{width:95%}
.v2-w96{width:96%}
.v2-w97{width:97%}
.v2-w98{width:98%}
.v2-w99{width:99%}
.v2-w100{width:100%}
.v2-h0{height:0%}
.v2-h1{height:1%}
.v2-h2{height:2%}
.v2-h3{height:3%}
.v2-h4{height:4%}
.v2-h5{height:5%}
.v2-h6{height:6%}
.v2-h7{height:7%}
.v2-h8{height:8%}
.v2-h9{height:9%}
.v2-h10{height:10%}
.v2-h11{height:11%}
.v2-h12{height:12%}
.v2-h13{height:13%}
.v2-h14{height:14%}
.v2-h15{height:15%}
.v2-h16{height:16%}
.v2-h17{height:17%}
.v2-h18{height:18%}
.v2-h19{height:19%}
.v2-h20{height:20%}
.v2-h21{height:21%}
.v2-h22{height:22%}
.v2-h23{height:23%}
.v2-h24{height:24%}
.v2-h25{height:25%}
.v2-h26{height:26%}
.v2-h27{height:27%}
.v2-h28{height:28%}
.v2-h29{height:29%}
.v2-h30{height:30%}
.v2-h31{height:31%}
.v2-h32{height:32%}
.v2-h33{height:33%}
.v2-h34{height:34%}
.v2-h35{height:35%}
.v2-h36{height:36%}
.v2-h37{height:37%}
.v2-h38{height:38%}
.v2-h39{height:39%}
.v2-h40{height:40%}
.v2-h41{height:41%}
.v2-h42{height:42%}
.v2-h43{height:43%}
.v2-h44{height:44%}
.v2-h45{height:45%}
.v2-h46{height:46%}
.v2-h47{height:47%}
.v2-h48{height:48%}
.v2-h49{height:49%}
.v2-h50{height:50%}
.v2-h51{height:51%}
.v2-h52{height:52%}
.v2-h53{height:53%}
.v2-h54{height:54%}
.v2-h55{height:55%}
.v2-h56{height:56%}
.v2-h57{height:57%}
.v2-h58{height:58%}
.v2-h59{height:59%}
.v2-h60{height:60%}
.v2-h61{height:61%}
.v2-h62{height:62%}
.v2-h63{height:63%}
.v2-h64{height:64%}
.v2-h65{height:65%}
.v2-h66{height:66%}
.v2-h67{height:67%}
.v2-h68{height:68%}
.v2-h69{height:69%}
.v2-h70{height:70%}
.v2-h71{height:71%}
.v2-h72{height:72%}
.v2-h73{height:73%}
.v2-h74{height:74%}
.v2-h75{height:75%}
.v2-h76{height:76%}
.v2-h77{height:77%}
.v2-h78{height:78%}
.v2-h79{height:79%}
.v2-h80{height:80%}
.v2-h81{height:81%}
.v2-h82{height:82%}
.v2-h83{height:83%}
.v2-h84{height:84%}
.v2-h85{height:85%}
.v2-h86{height:86%}
.v2-h87{height:87%}
.v2-h88{height:88%}
.v2-h89{height:89%}
.v2-h90{height:90%}
.v2-h91{height:91%}
.v2-h92{height:92%}
.v2-h93{height:93%}
.v2-h94{height:94%}
.v2-h95{height:95%}
.v2-h96{height:96%}
.v2-h97{height:97%}
.v2-h98{height:98%}
.v2-h99{height:99%}
.v2-h100{height:100%}
.timeline-grid.v2-tl-days-7{grid-template-columns:70px repeat(7,160px)}
.timeline-grid.v2-tl-days-31{grid-template-columns:70px repeat(31,160px)}
