/* shared.css — DayBlocks platform shared tokens + components */

:root{
  --accent:#34d399;
  --accent-dark:#10b981;
  --accent-light:#6ee7b7;
  --on-accent:#fff;
  --bg:#0c0c0e;
  --bg2:#18181b;
  --bg3:#27272a;
  --bg4:#3f3f46;
  --text:#fafafa;
  --text2:#a1a1aa;
  --text3:#71717a;
  --border:#27272a;
  --danger:#f87171;
  --warn:#fb923c;
  --success:#34d399;
  --sidebar-w:56px;
  --sidebar-expanded:180px;
  --toparea-h:92px;
  --radius:10px;
  --shadow:0 8px 32px rgba(0,0,0,.6);
  --font:'Inter',system-ui,sans-serif;
}
[data-theme="light"]{
  --bg:#fafafa;--bg2:#ffffff;--bg3:#f4f4f5;--bg4:#e4e4e7;
  --text:#18181b;--text2:#3f3f46;--text3:#71717a;--border:#e4e4e7;
  --shadow:0 4px 16px rgba(0,0,0,.10);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--font);background:var(--bg);color:var(--text);padding-left:var(--sidebar-w);padding-top:var(--toparea-h);min-height:100dvh;transition:padding .2s;}
body.sidebar-open{padding-left:var(--sidebar-expanded);}

/* ── Top area ── */
#topArea{position:fixed;top:0;left:0;right:0;z-index:220;background:var(--bg2);}

/* ── Sidebar ── */
#sidebar{position:fixed;left:0;top:var(--toparea-h);bottom:0;width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:200;transition:width .2s,transform .25s;overflow:hidden;}
body.sidebar-open #sidebar{width:var(--sidebar-expanded);}
.sb-logo{display:flex;align-items:center;gap:10px;padding:14px 12px;border-bottom:1px solid var(--border);min-height:56px;}
.sb-logo-icon{width:32px;height:32px;border-radius:8px;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.sb-logo-text{font-weight:700;font-size:15px;color:var(--accent);white-space:nowrap;opacity:0;transition:opacity .15s;}
body.sidebar-open .sb-logo-text{opacity:1;}
.sb-toggle{position:absolute;right:-13px;top:18px;width:26px;height:26px;border-radius:50%;background:var(--bg3);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text2);z-index:201;transition:transform .2s;}
body.sidebar-open .sb-toggle{transform:rotate(180deg);}
.sb-nav{flex:1;overflow-y:auto;padding:8px 0;}
.sb-section{padding:4px 0;}
.sb-section-label{font-size:10px;font-weight:600;color:var(--text3);padding:6px 14px 2px;white-space:nowrap;opacity:0;transition:opacity .15s;text-transform:uppercase;letter-spacing:.8px;}
body.sidebar-open .sb-section-label{opacity:1;}
.sb-item{display:flex;align-items:center;gap:12px;padding:9px 14px;cursor:pointer;border-radius:8px;margin:1px 6px;color:var(--text2);transition:background .15s,color .15s;white-space:nowrap;}
.sb-item:hover{background:var(--bg3);color:var(--text);}
.sb-item.active{background:var(--accent);color:var(--on-accent);}
.sb-item-icon{font-size:18px;flex-shrink:0;width:22px;text-align:center;}
.sb-item-label{font-size:13px;font-weight:500;opacity:0;transition:opacity .15s;overflow:hidden;}
body.sidebar-open .sb-item-label{opacity:1;}
.sb-bottom{padding:8px 0;border-top:1px solid var(--border);}
.sb-account{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;}
.sb-avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--on-accent);flex-shrink:0;}
.sb-account-info{opacity:0;transition:opacity .15s;overflow:hidden;}
body.sidebar-open .sb-account-info{opacity:1;}
.sb-account-name{font-size:12px;font-weight:600;white-space:nowrap;}
.sb-account-email{font-size:10px;color:var(--text3);white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis;}
.sb-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:214;opacity:0;transition:opacity .25s;pointer-events:none;}
.sb-backdrop.visible{opacity:1;pointer-events:all;}
.sb-mobile-btn{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:var(--bg3);color:var(--text2);border-radius:8px;font-size:1.1rem;cursor:pointer;flex-shrink:0;}
@media(min-width:1024px){
  body{padding-left:var(--sidebar-expanded)!important;}
  #sidebar{width:var(--sidebar-expanded)!important;}
  #sidebar .sb-item-label,#sidebar .sb-section-label,#sidebar .sb-logo-text,#sidebar .sb-account-info{opacity:1!important;}
  .sb-toggle{display:none;}
}
@media(max-width:640px){
  body{padding-left:0!important;}
  #sidebar{transform:translateY(-100%);width:var(--sidebar-expanded)!important;z-index:215;}
  #sidebar .sb-item-label,#sidebar .sb-section-label,#sidebar .sb-logo-text,#sidebar .sb-account-info{opacity:1!important;}
  #sidebar.mobile-open{transform:translateY(0);}
  .sb-backdrop{display:block;}
  .sb-toggle{display:none;}
  .sb-mobile-btn{display:flex;}
}

/* ── Top bar ── */
#topbar{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg2);border-bottom:1px solid var(--border);}
#topbar h1{font-size:18px;font-weight:700;color:var(--accent);flex:1;}
.tb-btn{background:var(--bg3);border:1px solid var(--border);color:var(--text2);border-radius:8px;padding:7px 13px;font-size:0.78rem;cursor:pointer;display:flex;align-items:center;gap:6px;font-family:var(--font);}
.tb-btn:hover{background:var(--bg4);color:var(--text);}
.tb-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;}
.tb-btn.primary:hover{background:var(--accent-dark);}

/* ── View tabs ── */
#viewTabs{display:flex;justify-content:center;gap:4px;padding:10px 16px;background:var(--bg2);border-bottom:1px solid var(--border);overflow-x:auto;}
.view-tab{flex-shrink:0;padding:7px 14px;border-radius:20px;font-size:0.78rem;font-weight:500;cursor:pointer;border:1px solid var(--border);color:var(--text2);background:transparent;transition:all .15s;font-family:var(--font);}
.view-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;}
.view-tab:hover:not(.active){background:var(--bg3);}

/* ── Group bar ── */
#groupBar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border);overflow-x:auto;}
#groupBarLabel{font-size:11px;color:var(--text3);white-space:nowrap;}
.group-chip{flex-shrink:0;padding:5px 12px;border-radius:16px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);color:var(--text3);background:var(--bg2);transition:all .15s;}
.group-chip.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.group-chip:hover:not(.active){border-color:var(--accent);color:var(--accent);}

/* ── Main content ── */
#mainContent{padding:16px;max-width:900px;margin:0 auto;}

/* ── Stats bar ── */
#statsBar{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.stat-chip{flex:1;min-width:90px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:2px;}
.stat-chip .stat-val{font-size:22px;font-weight:700;color:var(--accent);}
.stat-chip .stat-label{font-size:11px;color:var(--text3);}
.stat-chip.warn .stat-val{color:var(--warn);}
.stat-chip.danger .stat-val,.stat-chip.red .stat-val{color:var(--danger);}
.stat-chip.green .stat-val{color:var(--success);}

/* ── Empty state ── */
.empty-state{text-align:center;padding:40px 20px;color:var(--text3);}
.empty-state .es-icon{font-size:40px;margin-bottom:10px;}
.empty-state p{font-size:14px;}

/* ── Modals ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:400;align-items:center;justify-content:center;padding:16px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:14px;width:100%;max-width:460px;max-height:90dvh;overflow-y:auto;box-shadow:var(--shadow);}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg2);z-index:1;}
.modal-title{font-size:16px;font-weight:700;}
.modal-close{background:none;border:none;color:var(--text3);font-size:20px;cursor:pointer;line-height:1;padding:2px 6px;}
.modal-close:hover{color:var(--text);}
.modal-body{padding:16px 18px;}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px 16px;border-top:1px solid var(--border);}

/* ── Forms ── */
.form-group{margin-bottom:12px;}
.form-label{display:block;font-size:12px;font-weight:500;color:var(--text2);margin-bottom:4px;}
.form-input,.form-select,.form-textarea{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 11px;font-size:13px;font-family:var(--font);}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);}
.form-input::placeholder{color:var(--text3);}
.form-textarea{resize:vertical;min-height:60px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.form-hint{font-size:11px;color:var(--text3);margin-top:3px;}
.btn{padding:9px 18px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--border);font-family:var(--font);transition:all .15s;}
.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-dark);}
.btn-secondary{background:var(--bg3);color:var(--text2);}
.btn-secondary:hover{background:var(--bg4);color:var(--text);}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff;}
.btn-danger:hover{filter:brightness(.9);}

/* ── Auth screen ── */
#authScreen{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:20px;}
.auth-card{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:32px;width:100%;max-width:380px;}
.auth-logo{text-align:center;margin-bottom:24px;}
.auth-logo-icon{font-size:48px;display:block;margin-bottom:8px;}
.auth-logo h1{font-size:24px;font-weight:800;color:var(--accent);}
.auth-logo p{font-size:13px;color:var(--text3);margin-top:4px;}
.auth-tabs{display:flex;margin-bottom:20px;background:var(--bg3);border-radius:8px;padding:3px;}
.auth-tab{flex:1;text-align:center;padding:7px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text3);transition:all .15s;}
.auth-tab.active{background:var(--accent);color:var(--on-accent);font-weight:600;}
.auth-error{background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.35);color:#f87171;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px;display:none;}
.auth-info{background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.3);color:#6ee7b7;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px;display:none;}
.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--text3);font-size:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.dayblocks-link{display:flex;align-items:center;justify-content:center;gap:8px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px;cursor:pointer;font-size:13px;color:var(--text2);transition:all .15s;text-decoration:none;margin-top:12px;}
.dayblocks-link:hover{border-color:var(--accent);color:var(--accent);}
.auth-sub{font-size:13px;color:var(--text3);margin-top:4px;text-align:center;}
.auth-input{width:100%;background:var(--bg3);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:9px 11px;font-size:13px;font-family:var(--font);margin-bottom:10px;}
.auth-input:focus{outline:none;border-color:var(--accent);}
.auth-input::placeholder{color:var(--text3);}
.auth-btn{width:100%;padding:10px;border-radius:8px;border:none;font-family:var(--font);font-size:13px;font-weight:600;cursor:pointer;background:var(--accent);color:var(--on-accent);margin-top:4px;transition:opacity .15s;}
.auth-btn:hover{opacity:0.88;}
.auth-toggle{font-size:12px;color:var(--text3);margin-top:14px;text-align:center;}
.auth-toggle a{color:var(--accent);text-decoration:none;}
.auth-toggle a:hover{text-decoration:underline;}

/* ── Toast ── */
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%) translateY(60px);background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:10px 18px;font-size:13px;color:var(--text);z-index:999;transition:transform .25s;pointer-events:none;white-space:nowrap;}
#toast.show{transform:translateX(-50%) translateY(0);}
#toast.success{border-color:var(--success);color:var(--success);}
#toast.error{border-color:var(--danger);color:var(--danger);}
#toast.warn{border-color:var(--warn);color:var(--warn);}

/* ── Loader ── */
.loader{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
#loadingScreen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:999;flex-direction:column;gap:14px;}
#loadingScreen p{color:var(--text3);font-size:14px;}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--bg4);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--text3);}

@media(max-width:520px){
  .form-row{grid-template-columns:1fr;}
  #statsBar{gap:6px;}
  .stat-chip{min-width:80px;}
}
