/* ============================================================
   BASE — Variables, Reset, Layout, Sidebar, Topbar
   ============================================================ */
:root {
  --ink:     #1a1a1a;
  --ink2:    #4a4a4a;
  --ink3:    #8a8a8a;
  --paper:   #fafaf7;
  --paper2:  #f2f1ec;
  --paper3:  #e8e7e0;
  --gold:    #d4820a;
  --gold2:   #e8960f;
  --gold-a:  rgba(212,130,10,.1);
  --red:     #c41e3a;
  --red-a:   rgba(196,30,58,.08);
  --green:   #1a7a4a;
  --green-a: rgba(26,122,74,.1);
  --blue:    #1a4a8a;
  --blue-a:  rgba(26,74,138,.08);
  --shadow:  0 2px 12px rgba(0,0,0,.08);
  --shadow2: 0 8px 32px rgba(0,0,0,.12);
  --r: 10px; --r2: 6px;
  --nav-w: 220px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'Outfit',sans-serif;background:var(--paper);color:var(--ink);overflow:hidden}
@media(max-height:700px),screen and (max-width:1200px){.view.scroll{overflow-y:auto!important}.view.active{overflow-y:auto!important}}
@media(max-width:900px){html,body{overflow:auto;height:auto}#app{height:auto;min-height:100vh}#sidebar{position:fixed;height:100vh}#main{margin-left:220px;min-height:100vh;overflow:visible}.view.active{overflow:visible;height:auto}.scroll{overflow:visible}}

/* ANIMATIONS */
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes pop{0%{opacity:0;transform:scale(.95)}100%{opacity:1;transform:scale(1)}}
@keyframes spin{to{transform:rotate(360deg)}}
.fade{animation:fadeIn .3s ease}

/* SCROLLABLE */
.scroll{overflow-y:auto;flex:1;min-height:0;scrollbar-width:thin;scrollbar-color:var(--paper3) transparent}
.scroll::-webkit-scrollbar{width:4px}
.scroll::-webkit-scrollbar-thumb{background:var(--paper3);border-radius:2px}

/* APP SHELL */
#app{height:100vh;display:flex}

/* SIDEBAR */
#sidebar{
  width:var(--nav-w);flex-shrink:0;background:var(--ink);
  display:flex;flex-direction:column;
  position:relative;z-index:10;
}
.sidebar-logo{padding:24px 20px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-logo h1{font-family:'Fraunces',serif;font-size:22px;font-weight:700;color:#fff;letter-spacing:-.3px;line-height:1}
.sidebar-logo h1 span{color:var(--gold)}
.sidebar-logo p{font-size:11px;color:rgba(255,255,255,.4);margin-top:4px}
.sidebar-user{padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:10px}
.sidebar-av{width:32px;height:32px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--ink);flex-shrink:0}
.sidebar-uinfo{flex:1;min-width:0}
.sidebar-uname{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-urole{font-size:10px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.5px}
.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}
.nav-section{font-size:9px;font-weight:600;color:rgba(255,255,255,.25);text-transform:uppercase;letter-spacing:.8px;padding:12px 20px 4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 20px;font-size:13px;font-weight:500;color:rgba(255,255,255,.55);cursor:pointer;transition:all .18s;border-left:3px solid transparent}
.nav-item:hover{color:rgba(255,255,255,.9);background:rgba(255,255,255,.05)}
.nav-item.active{color:#fff;background:rgba(212,130,10,.15);border-left-color:var(--gold)}
.nav-item .ni{font-size:15px;width:20px;text-align:center}
.sidebar-foot{padding:14px 20px;border-top:1px solid rgba(255,255,255,.06)}
.sidebar-foot button{width:100%;padding:8px;border-radius:var(--r2);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.6);font-size:12px;cursor:pointer;transition:all .18s;font-family:'Outfit',sans-serif}
.sidebar-foot button:hover{background:rgba(255,255,255,.12);color:#fff}

/* MAIN */
#main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}
.topbar{background:var(--paper);border-bottom:1px solid var(--paper3);padding:0 28px;height:52px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.topbar-title{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--ink)}
.topbar-sub{font-size:12px;color:var(--ink3);margin-top:1px}

/* VIEWS */
#view-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.view{display:none;flex:1;overflow:hidden;min-height:0}
.view.active{display:flex;flex-direction:column;animation:fadeIn .25s ease;overflow:hidden;height:100%}
.content{padding:24px 28px;max-width:1000px;width:100%;margin:0 auto}

/* HAMBURGER */
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;font-size:22px;color:var(--ink);line-height:1}

/* MOBILE */
@media(max-width:768px){
  #app{overflow-x:hidden}
  #main{width:100%;margin-left:0!important}
  #sidebar{position:fixed;left:-240px;width:220px;top:0;height:100vh;transition:left .25s ease;z-index:300;overflow-y:auto}
  #sidebar.open{left:0;box-shadow:4px 0 20px rgba(0,0,0,.3)}
  #sidebar-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:299;display:none}
  #sidebar-overlay.visible{display:block}
  .hamburger{display:flex!important}
  .topbar{padding:0 12px}
  .content{padding:16px 14px 80px}
}
