:root{--bg:#0b0f15;--panel:#111721;--panel2:#171f2b;--panel3:#1d2734;--line:#273241;--text:#eef3f9;--muted:#8d9aae;--accent:#7c5cff;--accent2:#5ba7ff;--green:#32d583;--yellow:#fdb022;--red:#f97066;--purple:#a48cff;--shadow:0 22px 70px rgba(0,0,0,.28);--radius:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.small{font-size:12px}.muted{color:var(--muted)}
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 0%,rgba(124,92,255,.15),transparent 32%),var(--bg)}.auth-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:26px;padding:30px}.auth-card h1{font-size:30px;letter-spacing:-1px;margin:28px 0 10px}.auth-card p{color:var(--muted);line-height:1.6;margin-bottom:24px}.auth-card label{display:grid;gap:7px;font-size:12px;color:var(--muted);margin:13px 0}.auth-card input,.field{width:100%;border:1px solid var(--line);background:var(--panel2);color:var(--text);padding:11px 12px;border-radius:12px;outline:none}.auth-card input:focus,.field:focus{border-color:var(--accent)}
.brand{display:flex;align-items:center;gap:11px}.brand.big{font-size:18px}.brand span{display:block;color:var(--muted);font-size:11px;margin-top:2px}.logo{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent2));box-shadow:0 10px 28px rgba(124,92,255,.28)}
.app{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--panel);border-right:1px solid var(--line);padding:22px 15px;display:flex;flex-direction:column}.sidebar>.brand{padding:6px 9px 22px}.sidebar nav{display:grid;gap:7px}.sidebar nav button{border:0;background:transparent;color:var(--muted);padding:12px 13px;border-radius:13px;cursor:pointer;display:flex;gap:12px;align-items:center;text-align:left}.sidebar nav button:hover,.sidebar nav button.active{background:var(--panel2);color:var(--text)}.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.sync{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);padding:0 8px}.sync i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(50,213,131,.08)}.sync.busy i{background:var(--yellow)}.sync.error i{background:var(--red)}
.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:17px 25px;background:rgba(11,15,21,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.top-title,.modal-title-wrap{display:flex;gap:10px;align-items:center}.topbar h2{font-size:20px;margin:0}.topbar p{font-size:12px;color:var(--muted);margin:4px 0 0}.top-actions{display:flex;gap:9px;align-items:center}
.btn,.icon-btn{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:12px;cursor:pointer;transition:.16s}.btn{padding:10px 13px}.btn:hover,.icon-btn:hover{transform:translateY(-1px);border-color:#3a485b}.btn.primary{border:0;color:#fff;font-weight:750;background:linear-gradient(135deg,var(--accent),var(--accent2))}.btn.danger{color:var(--red)}.btn.ghost{background:transparent}.wide{width:100%}.icon-btn{width:38px;height:38px;display:grid;place-items:center;font-size:18px}
.content{padding:24px 25px 45px;max-width:1600px;margin:0 auto}.grid{display:grid;gap:15px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:17px;box-shadow:var(--shadow)}.clickable{cursor:pointer;transition:.18s}.clickable:hover{transform:translateY(-3px);border-color:rgba(124,92,255,.52)}.metric{min-height:130px;display:flex;flex-direction:column;justify-content:space-between}.metric small{color:var(--muted)}.metric strong{font-size:31px;letter-spacing:-1px}.metric .go{color:var(--purple);font-size:12px}
.section{margin-top:18px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.section-head h3{margin:0;font-size:15px}.section-head small{color:var(--muted)}.split{display:grid;grid-template-columns:1.35fr .8fr;gap:15px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px}table{border-collapse:collapse;width:100%;min-width:820px;background:var(--panel)}th,td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}th{background:var(--panel2);color:var(--muted);font-weight:650}tbody tr{cursor:pointer}tbody tr:hover{background:var(--panel2)}tbody tr:last-child td{border-bottom:0}
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid var(--line);border-radius:999px;font-size:11px;white-space:nowrap}.dot{width:7px;height:7px;border-radius:50%;background:var(--muted)}.editing .dot{background:var(--accent2)}.review .dot{background:var(--yellow)}.correction .dot{background:var(--red)}.client .dot{background:var(--purple)}.approved .dot,.delivered .dot{background:var(--green)}.deadline.late{color:var(--red);font-weight:800}.deadline.soon{color:var(--yellow);font-weight:800}.deadline.good{color:var(--green);font-weight:700}
.filters{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:9px;margin-bottom:12px}.filter-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;background:rgba(124,92,255,.08);border:1px solid rgba(124,92,255,.24);padding:10px 12px;border-radius:13px;margin-bottom:12px}.editor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.editor-top{display:flex;justify-content:space-between;align-items:flex-start}.editor-name{display:flex;gap:11px;align-items:center}.avatar{width:43px;height:43px;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;font-weight:900}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.stat{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:10px}.stat b{display:block;font-size:18px}.stat small{color:var(--muted)}
.work-row{padding:10px;border-radius:12px;cursor:pointer}.work-row:hover{background:var(--panel2)}.progress{height:7px;background:var(--panel3);border-radius:99px;overflow:hidden;margin-top:7px}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2))}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.dow{font-size:11px;color:var(--muted);text-align:center;padding:7px}.day{min-height:105px;background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:8px}.day.out{opacity:.35}.day-num{font-size:11px;color:var(--muted)}.event-chip{margin-top:6px;border:1px solid var(--line);background:var(--panel2);padding:6px 7px;border-radius:8px;font-size:10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:pointer}
.modal-layer{position:fixed;inset:0;background:rgba(0,0,0,.62);backdrop-filter:blur(5px);z-index:50;display:grid;place-items:center;padding:18px}.modal{width:min(980px,98vw);max-height:93vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:0 35px 110px rgba(0,0,0,.55)}.modal-head{position:sticky;top:0;z-index:3;background:var(--panel);display:flex;justify-content:space-between;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line)}.modal-body{padding:20px}.project-head h3{margin:0 0 5px}.project-head small{color:var(--muted)}.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.kv>div{background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:11px}.kv small{display:block;color:var(--muted);margin-bottom:4px}.timeline{display:grid;gap:8px}.timeline-item{border-left:2px solid var(--accent);padding:6px 0 6px 12px}.timeline-item small{display:block;color:var(--muted);margin-top:3px}
.project-list{display:grid;gap:9px}.project-row{border:1px solid var(--line);border-left:5px solid var(--yellow);background:var(--panel2);border-radius:14px;padding:13px;cursor:pointer}.project-row.finished{border-left-color:var(--green)}.project-row.late{border-left-color:var(--red)}.project-row-top{display:flex;justify-content:space-between;gap:10px}.state{font-size:10px;font-weight:850;padding:6px 8px;border-radius:99px}.state.finished{color:var(--green);background:rgba(50,213,131,.09)}.state.production{color:var(--yellow);background:rgba(253,176,34,.09)}.state.late{color:var(--red);background:rgba(249,112,102,.09)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:11px}.full{grid-column:1/-1}textarea.field{min-height:95px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.workflow{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.empty{text-align:center;color:var(--muted);padding:30px}.drive-box{margin-top:14px;border:1px solid var(--line);border-radius:14px;padding:13px;background:var(--panel2)}.drive-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.file-list{display:grid;gap:7px;margin-top:10px}.file-item{display:flex;justify-content:space-between;gap:10px;padding:9px 10px;background:var(--panel);border:1px solid var(--line);border-radius:10px}.file-item a{color:var(--accent2);text-decoration:none}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);padding:12px 15px;border-radius:12px}.mobile-only{display:none}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.editor-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.filters{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:760px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;z-index:40;width:245px;transition:.2s}.sidebar.open{left:0}.mobile-only{display:grid}.content{padding:16px}.topbar{padding:13px 15px}.metrics,.editor-grid,.kv,.form-grid{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.topbar p{display:none}.calendar-grid{gap:3px}.day{min-height:82px;padding:5px}.event-chip{padding:5px}.modal-body{padding:14px}.top-actions .btn:not(.primary){display:none}}

.auth-switch{margin-top:14px;text-align:center;color:var(--muted);font-size:12px}
.link-btn{border:0;background:transparent;color:var(--accent2);font-weight:700;cursor:pointer;padding:4px}
.link-btn:hover{text-decoration:underline}
.approval-view{text-align:center}
.approval-view h1{margin-top:16px}
.approval-icon{width:66px;height:66px;border-radius:22px;margin:26px auto 0;display:grid;place-items:center;font-size:28px;font-weight:900;color:var(--yellow);background:rgba(253,176,34,.1);border:1px solid rgba(253,176,34,.25)}
.approval-email{padding:10px 12px;margin:15px 0;border-radius:12px;background:var(--panel2);border:1px solid var(--line);font-size:12px;color:var(--muted)}
.approval-view .btn{margin-top:9px}
.team-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}
.team-tabs{display:flex;gap:7px;flex-wrap:wrap}
.team-tab{border:1px solid var(--line);background:var(--panel2);color:var(--muted);padding:8px 11px;border-radius:10px;cursor:pointer}
.team-tab.active{background:var(--accent);color:white;border-color:transparent}
.member-list{display:grid;gap:10px}
.member-card{display:grid;grid-template-columns:1.5fr .8fr .8fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:13px 14px}
.member-person{display:flex;align-items:center;gap:11px;min-width:0}.member-person .avatar{flex:0 0 auto}.member-person b,.member-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.role-select{min-width:125px}
.member-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750}.member-status i{width:8px;height:8px;border-radius:50%}.member-status.pending{color:var(--yellow)}.member-status.pending i{background:var(--yellow)}.member-status.approved{color:var(--green)}.member-status.approved i{background:var(--green)}.member-status.rejected,.member-status.disabled{color:var(--red)}.member-status.rejected i,.member-status.disabled i{background:var(--red)}
.invite-box{display:grid;grid-template-columns:1.2fr 1.7fr .8fr auto;gap:9px;align-items:end;margin-bottom:17px}
.invite-box label{display:grid;gap:6px;color:var(--muted);font-size:11px}
@media(max-width:900px){.member-card{grid-template-columns:1fr 1fr}.member-actions{justify-content:flex-start}.invite-box{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.member-card,.invite-box{grid-template-columns:1fr}.team-toolbar{align-items:flex-start;flex-direction:column}}

.remember-row{display:flex!important;align-items:center;gap:9px!important;margin:10px 0 14px!important;color:var(--text)!important;font-size:13px!important;cursor:pointer}
.remember-row input{width:18px!important;height:18px!important;accent-color:var(--accent);margin:0!important;flex:0 0 auto}
.remember-row span{color:var(--muted)}

/* ===== StudioFlow 3.3 — Responsive mobile-first refinements ===== */
.mobile-nav{display:none}
.mobile-project-list,.mobile-agenda{display:none}

@media(max-width:760px){
  html,body{width:100%;overflow-x:hidden}
  body{padding-bottom:env(safe-area-inset-bottom)}
  .app{display:block;min-height:100%}
  main{width:100%;min-width:0}
  .sidebar{display:none!important}

  .topbar{
    position:sticky;top:0;z-index:25;
    padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
    min-height:66px;background:rgba(11,15,21,.95)
  }
  .top-title{min-width:0;flex:1}
  .top-title>div{min-width:0}
  .topbar h2{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar p{display:none}
  .top-actions{gap:7px}
  #menuBtn,#refreshBtn{display:none!important}
  #newProjectBtn{
    width:44px;height:44px;padding:0;border-radius:14px;
    font-size:0;display:grid;place-items:center
  }
  #newProjectBtn::after{content:"+";font-size:25px;line-height:1;color:white}
  #backBtn{display:grid}
  #backBtn.hidden{display:none!important}

  .content{
    padding:14px 12px calc(92px + env(safe-area-inset-bottom));
    width:100%;max-width:none
  }

  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .metric{min-height:108px;padding:14px}
  .metric strong{font-size:28px}
  .metric .go{font-size:11px}
  .section{margin-top:12px}
  .split{grid-template-columns:1fr;gap:12px}
  .card{padding:14px;border-radius:16px;box-shadow:none}
  .section-head{gap:10px;align-items:flex-start}
  .section-head h3{font-size:14px}
  .section-head small{font-size:10px;text-align:right}

  /* On phones, wide desktop tables become tappable cards. */
  .desktop-only-table{display:none!important}
  .mobile-project-list{display:grid;gap:9px}
  .mobile-project-card{
    background:var(--panel);border:1px solid var(--line);
    border-radius:15px;padding:13px;cursor:pointer;min-width:0
  }
  .mobile-project-card:active{background:var(--panel2)}
  .mobile-project-card.late-card{border-left:4px solid var(--red)}
  .mobile-project-card.soon-card{border-left:4px solid var(--yellow)}
  .mobile-project-card.done-card{border-left:4px solid var(--green)}
  .mobile-project-head{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;min-width:0}
  .mobile-project-title{min-width:0}
  .mobile-project-title b{display:block;font-size:14px;line-height:1.25;overflow-wrap:anywhere}
  .mobile-project-title small{display:block;margin-top:4px}
  .mobile-project-meta{
    display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;margin-top:11px
  }
  .mobile-project-meta>div{
    min-width:0;background:var(--panel2);border-radius:10px;padding:8px
  }
  .mobile-project-meta small{display:block;color:var(--muted);font-size:9px;margin-bottom:3px}
  .mobile-project-meta b,.mobile-project-meta span{font-size:11px;overflow-wrap:anywhere}
  .mobile-next{
    margin-top:9px;padding-top:9px;border-top:1px solid var(--line);
    font-size:11px;color:var(--muted)
  }
  .mobile-next b{color:var(--text)}

  .filters{
    grid-template-columns:1fr 1fr;gap:8px;
    padding:0;margin-bottom:10px
  }
  .filters #q{grid-column:1/-1}
  .field{min-height:44px;font-size:16px}
  .filter-banner{font-size:12px;align-items:center}

  .editor-grid{grid-template-columns:1fr;gap:10px}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stat{padding:9px}
  .stat b{font-size:17px}
  .work-row{padding:11px 8px}

  /* Full-screen project/editor view on iPhone. */
  .modal-layer{
    padding:0;align-items:stretch;background:var(--bg)
  }
  .modal{
    width:100%;height:100%;max-height:none;border:0;border-radius:0;
    box-shadow:none;overflow:auto;padding-bottom:env(safe-area-inset-bottom)
  }
  .modal-head{
    padding:calc(10px + env(safe-area-inset-top)) 12px 10px;
    min-height:64px
  }
  .modal-title-wrap{min-width:0;flex:1}
  #modalTitle{min-width:0}
  .project-head{min-width:0}
  .project-head h3{
    font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
  }
  .modal-body{padding:12px 12px 30px}
  .kv{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kv>div{padding:10px;min-width:0}
  .kv small{font-size:9px}
  .kv b{font-size:11px;overflow-wrap:anywhere}
  .workflow{display:grid;grid-template-columns:1fr;gap:8px}
  .workflow .btn{width:100%;min-height:46px}
  .drive-actions{display:grid;grid-template-columns:1fr}
  .drive-actions .btn{width:100%;min-height:44px;text-align:center}
  .file-item{align-items:center;min-width:0}
  .file-item span{min-width:0;overflow-wrap:anywhere}

  .form-grid{grid-template-columns:1fr}
  .form-grid .full{grid-column:1}
  .form-actions{
    position:sticky;bottom:0;background:var(--panel);
    margin:16px -12px -30px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr
  }
  .form-actions .btn{min-height:46px}

  .project-row{padding:12px}
  .project-row-top{align-items:flex-start}
  .state{flex:0 0 auto}
  .timeline-item{font-size:12px}

  /* Calendar changes from cramped month grid to agenda cards on phones. */
  .desktop-calendar{display:none!important}
  .mobile-agenda{display:grid;gap:8px}
  .agenda-day{
    display:grid;grid-template-columns:52px 1fr;gap:10px;
    background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px
  }
  .agenda-date{
    text-align:center;border-right:1px solid var(--line);padding-right:10px
  }
  .agenda-date b{font-size:20px;display:block}
  .agenda-date small{font-size:9px;color:var(--muted);text-transform:uppercase}
  .agenda-items{display:grid;gap:7px;min-width:0}
  .agenda-item{
    border:0;background:var(--panel2);color:var(--text);text-align:left;
    border-radius:10px;padding:9px;min-height:44px
  }
  .agenda-item b{display:block;font-size:12px}
  .agenda-item small{display:block;color:var(--muted);margin-top:3px}

  .member-card{grid-template-columns:1fr!important;gap:9px}
  .member-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .member-actions .btn{min-height:44px}
  .role-select{width:100%}
  .invite-box{grid-template-columns:1fr!important}

  .grid[style*="grid-template-columns:repeat(2"]{grid-template-columns:1fr!important}

  .mobile-nav{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;
    height:calc(68px + env(safe-area-inset-bottom));
    padding:6px 4px env(safe-area-inset-bottom);
    background:rgba(17,23,33,.97);backdrop-filter:blur(18px);
    border-top:1px solid var(--line)
  }
  .mobile-nav button{
    flex:1;min-width:0;border:0;background:transparent;color:var(--muted);
    padding:4px 2px;border-radius:10px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:3px;font-size:9px;cursor:pointer
  }
  .mobile-nav button.active{color:var(--text);background:var(--panel2)}
  .mobile-nav .nav-ico{font-size:19px;line-height:1}
  .toast{left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));text-align:center}
}

@media(min-width:761px){
  .mobile-nav{display:none!important}
  .mobile-project-list,.mobile-agenda{display:none!important}
}
