*{box-sizing:border-box}body{margin:0;font:15px system-ui,-apple-system,Segoe UI,sans-serif;color:#e7eaf2;background:#11151c}a{color:#b8a6ff;text-decoration:none}a:hover{text-decoration:underline}button,.button{cursor:pointer}button,input,select,textarea{font:inherit}button{border:1px solid #414957;border-radius:8px;background:#252c39;color:#e7eaf2;padding:10px 13px}button:hover{background:#363f50}.primary{background:#7760dc;border:0;color:#fff;padding:11px 16px;border-radius:8px;display:inline-block}.primary:hover{background:#8975ed;text-decoration:none}.app{min-height:100vh;display:grid;grid-template-columns:236px minmax(0,1fr)}aside{background:#161b24;border-right:1px solid #2d3542;padding:27px 18px;display:flex;flex-direction:column}aside small,header small,.stat small{color:#929eae;font-size:11px;letter-spacing:1px}aside nav{margin-top:40px;display:grid;gap:8px}aside nav a,aside .logout button{display:block;color:#b8c0ce;padding:12px;border-radius:9px}aside nav a.active,aside nav a:hover{background:#292b46;color:#e0d8ff;text-decoration:none}.logout{margin-top:auto}.logout button{background:none;border:0;text-align:left;width:100%}.brand{font-size:23px;font-weight:750;letter-spacing:.2px;color:#c1b2ff}.content{padding:38px clamp(18px,4vw,55px)}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}h1{font-size:32px;line-height:1.15;margin:7px 0}h2{margin:0 0 25px}.user-chip,.tag{color:#b7f2d1;background:#20392f;border-radius:30px;padding:7px 12px;font-size:12px}.panel{background:#1a202b;border:1px solid #2f3846;border-radius:12px}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:22px}.stat{padding:23px}.stat strong{display:block;font-size:30px;margin-top:7px}.toolbar{display:flex;justify-content:space-between;gap:15px;padding:20px}.toolbar form{flex:1}.toolbar input{max-width:440px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:940px;text-align:left}th{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#a6b0bf;border-bottom:1px solid #36404f;padding:15px 18px}td{border-bottom:1px solid #2b3442;padding:18px;vertical-align:middle}td small{color:#94a0ae}.path{max-width:210px;overflow-wrap:anywhere;color:#aab3c3;font-size:12px}.actions,.inline,.form-actions{display:flex;align-items:center;gap:12px}.actions button{border:0;padding:0;background:none;color:#f49aa7}.pager{display:flex;justify-content:space-between;padding:20px;color:#a6b0bf}.pager a{margin-left:20px}input,textarea,select{background:#111823;color:#f0f2f8;border:1px solid #404958;border-radius:8px;padding:12px;width:100%;outline:none}input:focus,textarea:focus,select:focus{border-color:#987fff}.form-panel{max-width:750px;padding:28px}.form-panel label,.auth label{display:block;margin-bottom:20px;font-weight:600}.form-panel label input,.form-panel label textarea,.form-panel label select,.auth label input{margin-top:9px}.form-panel label small{display:block;margin-top:6px;color:#99a4b5;font-weight:400}.form-actions{justify-content:flex-end;margin-top:20px}.inline input{flex:1}.alert{background:#48202a;color:#ffb0b8;border:1px solid #873a4c;border-radius:8px;padding:12px;margin-bottom:20px}.login{min-height:100vh;display:grid;place-items:center;padding:18px}.auth{width:min(440px,100%);padding:35px}.auth p{color:#a7b0c0}.auth .primary{width:100%}dialog{width:min(550px,92vw);max-height:75vh;background:#202735;border:1px solid #495162;color:white;border-radius:14px;padding:24px}dialog::backdrop{background:#020409b8}.dialog-head{display:flex;justify-content:space-between;align-items:center}.hint{color:#aeb8c6;font-size:13px}.folder-item{width:100%;display:block;text-align:left;margin:5px 0}#folder-list{max-height:340px;overflow:auto;min-height:80px}[hidden]{display:none!important}@media(max-width:780px){.app{grid-template-columns:1fr}aside{padding:12px 17px}aside nav{margin:12px 0;display:flex}aside .logout{position:absolute;right:15px;top:22px}.content{padding:22px 14px}.user-chip{display:none}.toolbar{flex-wrap:wrap}.stats{gap:8px}}

/* Aparência: escuro (padrão) e claro; persistida na conta do usuário. */
:root{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
html[data-theme="light"] body{background:#f5f7fb;color:#172033}
html[data-theme="light"] aside{background:#ffffff;border-color:#dce3ed}
html[data-theme="light"] .panel{background:#ffffff;border-color:#d9e1ed}
html[data-theme="light"] input,html[data-theme="light"] textarea,html[data-theme="light"] select{background:#fff;color:#172033;border-color:#b8c3d2}
html[data-theme="light"] button:not(.primary):not(.danger){background:#edf1f8;color:#243044;border-color:#cbd5e1}
html[data-theme="light"] .brand,html[data-theme="light"] a{color:#5a40b3}
html[data-theme="light"] aside nav a{color:#344054}
html[data-theme="light"] aside nav a.active,html[data-theme="light"] aside nav a:hover{background:#ebe5ff;color:#4c359f}
html[data-theme="light"] th,html[data-theme="light"] td{border-color:#e2e8f0}
html[data-theme="light"] th,html[data-theme="light"] td small,html[data-theme="light"] .path,html[data-theme="light"] .pager,html[data-theme="light"] aside small,html[data-theme="light"] header small,html[data-theme="light"] .stat small,html[data-theme="light"] .hint{color:#526071}
html[data-theme="light"] .tag,html[data-theme="light"] .user-chip{background:#dcfce7;color:#166534}
html[data-theme="light"] .alert{background:#fff2f2;color:#a42332;border-color:#f5acb4}
html[data-theme="light"] dialog{background:#ffffff;border-color:#cbd5e1;color:#172033}
html[data-theme="light"] .auth p{color:#526071}
.header-actions,.auth-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.theme-toggle{white-space:nowrap;font-size:13px}
.launch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:16px;padding:20px}
.launch-card{background:rgba(125,114,180,.07);border:1px solid var(--launch-border,#3a4354);border-radius:13px;padding:20px;min-width:0}
html[data-theme="light"] .launch-card{--launch-border:#dce3ed;background:#f8faff}
.launch-card h3{margin:10px 0}.launch-card p,.workspace-intro p{color:#9daabb;line-height:1.5}
html[data-theme="light"] .launch-card p,html[data-theme="light"] .workspace-intro p{color:#536175}
.launch-kind{font-size:11px;letter-spacing:1px;color:#b0a0ff}.launch-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 10px}
.launch-url{color:#9ca9ba;word-break:break-all}.workspace-intro{padding:22px;margin-bottom:20px}.workspace-intro h2{margin:0 0 10px}.alt{font-size:13px}
@media(max-width:780px){.header-actions{flex-wrap:wrap}.auth-top{flex-wrap:wrap}aside .logout{top:18px}header h1{font-size:25px}}

/* v1.0.1: melhorias mobile, acessibilidade e telas pequenas */
html{scroll-behavior:smooth}body{min-width:300px}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ac98ff;outline-offset:2px}button,.button{min-height:42px}img{max-width:100%}.auth code{overflow-wrap:anywhere}.auth .brand small{font-size:12px}.auth p{line-height:1.6}.header-actions button{white-space:nowrap}.tablewrap{-webkit-overflow-scrolling:touch}.empty{padding:24px}.launch-card{overflow:hidden}
@media(max-width:780px){.app{display:block}aside{position:relative;display:block;border-bottom:1px solid #2d3542}aside nav{flex-wrap:wrap;gap:4px;padding-right:0}aside nav a{padding:11px 9px;font-size:13px}aside .logout{right:12px;top:10px}.logout button{width:auto}header{align-items:flex-start;gap:12px;flex-wrap:wrap}.header-actions{gap:6px}header h1{font-size:clamp(22px,6vw,29px)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:15px}.stat strong{font-size:23px}.toolbar{padding:14px}.toolbar form,.toolbar input{width:100%;max-width:none}.toolbar .button{width:100%;text-align:center}.form-panel{padding:18px}.pager{align-items:center;gap:8px;flex-wrap:wrap}.launch-grid{grid-template-columns:1fr;padding:12px}.theme-toggle{font-size:12px}.user-chip{display:none}.auth{padding:24px}.content{padding:20px 12px}}
@media(max-width:420px){.stats{grid-template-columns:1fr}.inline{flex-wrap:wrap}.inline input{flex-basis:100%}.actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
