:root{--gdn-green:#01bf5f;--gdn-deep:#004522;--gdn-ink:#17332a;--gdn-paper:#f5f7f4;--gdn-line:#dfe8e1;--gdn-white:#fff;--gdn-muted:#68776e}
.gdn-portal-app,.gdn-login-wrap{font-family:Montserrat,Arial,sans-serif;color:var(--gdn-ink)}
.gdn-portal-app *,.gdn-login-wrap *{box-sizing:border-box}.gdn-portal-app a{text-decoration:none}
.gdn-login-wrap{min-height:80vh;background:radial-gradient(circle at 80% 20%,rgba(1,191,95,.18),transparent 32%),var(--gdn-paper);display:grid;place-items:center;padding:50px 20px}
.gdn-login-card{width:min(520px,100%);background:#fff;border:1px solid var(--gdn-line);border-radius:30px;padding:42px;box-shadow:0 30px 80px rgba(0,69,34,.12)}
.gdn-login-logo{width:240px;max-width:70%;height:auto}.gdn-kicker{font-size:.7rem;font-weight:800;letter-spacing:.14em;color:var(--gdn-green)}
.gdn-login-card h1{font-size:2.1rem;line-height:1.12;margin:18px 0 12px;color:var(--gdn-deep)}.gdn-login-card p{color:var(--gdn-muted);line-height:1.6}
.gdn-login-card label{font-weight:700;font-size:.85rem}.gdn-login-card input[type=text],.gdn-login-card input[type=password]{width:100%;border:1px solid var(--gdn-line);border-radius:12px;padding:13px;margin-top:7px}.gdn-login-card input[type=submit]{width:100%;border:0;border-radius:999px;background:var(--gdn-green);color:var(--gdn-deep);font-weight:800;padding:14px;cursor:pointer}.gdn-forgot{display:inline-block;margin-top:12px;color:var(--gdn-deep);font-weight:700;font-size:.85rem}
.gdn-portal-app{min-height:100vh;background:var(--gdn-paper);display:grid;grid-template-columns:250px 1fr}.gdn-sidebar{background:var(--gdn-deep);color:#fff;min-height:100vh;padding:28px 18px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;z-index:20}.gdn-sidebar-brand img{width:180px;max-width:90%;height:auto;margin:0 10px 34px}.gdn-sidebar nav{display:grid;gap:5px}.gdn-sidebar nav a{padding:12px 14px;border-radius:12px;color:#c9ddd1;font-weight:650;font-size:.9rem}.gdn-sidebar nav a:hover,.gdn-sidebar nav a.active{background:rgba(255,255,255,.1);color:#fff}.gdn-sidebar nav a.active{box-shadow:inset 3px 0 var(--gdn-green)}.gdn-sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:18px;display:flex;align-items:center;gap:10px}.gdn-avatar{width:38px;height:38px;border-radius:50%;background:var(--gdn-green);color:var(--gdn-deep);display:grid;place-items:center;font-weight:900}.gdn-sidebar-user strong,.gdn-sidebar-user small{display:block}.gdn-sidebar-user small{color:#adc5b7;font-size:.7rem;margin-top:3px}.gdn-logout{color:#adc5b7;margin:14px 0 0 48px;font-size:.75rem;font-weight:700}
.gdn-main{min-width:0}.gdn-topbar{height:82px;background:rgba(255,255,255,.92);border-bottom:1px solid var(--gdn-line);display:flex;align-items:center;justify-content:space-between;padding:0 36px;position:sticky;top:0;z-index:10;backdrop-filter:blur(10px)}.gdn-topbar>div strong{display:block;color:var(--gdn-deep);margin-top:3px}.gdn-admin-link{background:var(--gdn-deep);color:#fff;padding:10px 15px;border-radius:999px;font-size:.78rem;font-weight:800}.gdn-menu-toggle{display:none;border:0;background:transparent;font-size:1.6rem}.gdn-content{padding:38px;max-width:1500px;width:100%;margin:0 auto}.gdn-page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.gdn-page-head h1{font-size:clamp(2rem,3vw,3.1rem);line-height:1.08;color:var(--gdn-deep);margin:8px 0}.gdn-page-head p{color:var(--gdn-muted);margin:0;line-height:1.6}
.gdn-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:24px}.gdn-metrics article{background:#fff;border:1px solid var(--gdn-line);border-radius:20px;padding:22px}.gdn-metrics article span,.gdn-metrics article small{display:block;color:var(--gdn-muted)}.gdn-metrics article span{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.gdn-metrics article strong{display:block;font-size:2.5rem;color:var(--gdn-deep);margin:13px 0 6px}.gdn-metrics .gdn-date-metric{font-size:2rem}.gdn-metrics article small{font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gdn-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.gdn-panel{background:#fff;border:1px solid var(--gdn-line);border-radius:24px;padding:24px}.gdn-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}.gdn-panel-head h2{margin:5px 0 0;color:var(--gdn-deep);font-size:1.35rem}.gdn-panel-head>a{color:var(--gdn-deep);font-size:.78rem;font-weight:800}.gdn-list{display:grid}.gdn-list-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:15px 0;border-top:1px solid var(--gdn-line)}.gdn-list-row strong,.gdn-list-row small{display:block}.gdn-list-row small{color:var(--gdn-muted);font-size:.72rem;margin-top:4px}
.gdn-status{display:inline-flex;padding:7px 10px;border-radius:999px;font-size:.64rem;font-weight:800;white-space:nowrap;background:#edf3ef;color:var(--gdn-deep)}.status-pending,.status-client_approval{background:#fff2cf;color:#805b00}.status-approved,.status-published,.status-done{background:#dcf8e8;color:#006a34}.status-changes_requested{background:#ffe3e1;color:#a42920}.status-production{background:#e7f0ff;color:#244f92}.status-internal_review{background:#efe7ff;color:#664093}
.gdn-project-grid,.gdn-approval-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.gdn-project-card,.gdn-approval-card{background:#fff;border:1px solid var(--gdn-line);border-radius:22px;padding:22px}.gdn-project-top{display:flex;justify-content:space-between;gap:12px;align-items:center;color:var(--gdn-muted);font-size:.7rem;font-weight:700}.gdn-project-card h2,.gdn-approval-card h2{color:var(--gdn-deep);font-size:1.25rem;line-height:1.25;margin:18px 0 10px}.gdn-project-card p,.gdn-approval-card p{color:var(--gdn-muted);line-height:1.6;font-size:.86rem}.gdn-project-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--gdn-line);margin-top:20px;padding-top:15px;color:var(--gdn-muted);font-size:.7rem}.gdn-project-meta strong{color:var(--gdn-ink);font-size:.82rem}.gdn-asset-link{display:inline-flex;margin:8px 0 18px;color:var(--gdn-deep);font-weight:800;font-size:.8rem}.gdn-approval-actions{display:flex;gap:8px;flex-wrap:wrap}.gdn-btn{padding:10px 14px;border-radius:999px;font-size:.75rem;font-weight:800}.gdn-btn-primary{background:var(--gdn-green);color:var(--gdn-deep)}.gdn-btn-secondary{background:#eef2ef;color:var(--gdn-deep)}.gdn-reviewed{display:block;color:var(--gdn-muted);margin-top:14px}
.gdn-kanban{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;overflow-x:auto;padding-bottom:10px}.gdn-kanban-col{background:#eaf0ec;border:1px solid var(--gdn-line);border-radius:18px;min-height:500px;padding:12px}.gdn-kanban-col>header{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 12px;color:var(--gdn-deep);font-size:.8rem}.gdn-kanban-col>header span{background:#fff;border-radius:999px;min-width:25px;height:25px;display:grid;place-items:center}.gdn-kanban-items{display:grid;gap:9px}.gdn-task-card{background:#fff;border-radius:14px;padding:14px;border:1px solid #dde7e0;box-shadow:0 4px 16px rgba(0,69,34,.03)}.gdn-task-card small{color:var(--gdn-muted);font-size:.63rem}.gdn-task-card h3{font-size:.88rem;color:var(--gdn-deep);line-height:1.35;margin:7px 0 14px}.gdn-task-card time,.gdn-assignee{display:block;color:var(--gdn-muted);font-size:.66rem;margin-top:5px}.gdn-inline-action{display:inline-block;margin-top:12px;font-size:.7rem;font-weight:800;color:var(--gdn-deep)}
.gdn-timeline{display:grid;gap:10px}.gdn-timeline article{display:grid;grid-template-columns:72px 1fr;gap:18px;background:#fff;border:1px solid var(--gdn-line);border-radius:18px;padding:18px;align-items:center}.gdn-timeline time{text-align:center;border-right:1px solid var(--gdn-line)}.gdn-timeline time strong{display:block;font-size:1.7rem;color:var(--gdn-deep)}.gdn-timeline time span{font-size:.65rem;color:var(--gdn-muted);font-weight:800}.gdn-timeline h3{margin:5px 0 10px;font-size:1rem;color:var(--gdn-deep)}.gdn-timeline small{color:var(--gdn-muted)}
.gdn-activity-list{background:#fff;border:1px solid var(--gdn-line);border-radius:22px;padding:10px 24px}.gdn-activity-list article{display:grid;grid-template-columns:18px 1fr;gap:12px;padding:18px 0;border-bottom:1px solid var(--gdn-line)}.gdn-activity-list article:last-child{border-bottom:0}.gdn-activity-dot{width:10px;height:10px;border-radius:50%;background:var(--gdn-green);margin-top:6px}.gdn-activity-list p{margin:4px 0;color:var(--gdn-muted)}.gdn-activity-list time{font-size:.68rem;color:#91a096}.gdn-empty{color:var(--gdn-muted);padding:20px 0}.gdn-access-denied{max-width:700px;margin:70px auto;padding:35px;background:#fff;border:1px solid var(--gdn-line);border-radius:24px}
@media(max-width:1100px){.gdn-metrics{grid-template-columns:repeat(2,1fr)}.gdn-project-grid,.gdn-approval-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.gdn-portal-app{grid-template-columns:1fr}.gdn-sidebar{position:fixed;left:-270px;width:250px;transition:left .25s ease}.gdn-portal-app.menu-open .gdn-sidebar{left:0}.gdn-menu-toggle{display:block}.gdn-topbar{padding:0 18px}.gdn-topbar>div{margin-right:auto;margin-left:12px}.gdn-admin-link{display:none}.gdn-content{padding:24px 16px}.gdn-grid-2,.gdn-project-grid,.gdn-approval-grid{grid-template-columns:1fr}.gdn-page-head h1{font-size:2rem}}
@media(max-width:520px){.gdn-metrics{grid-template-columns:1fr 1fr;gap:10px}.gdn-metrics article{padding:16px}.gdn-metrics article strong{font-size:2rem}.gdn-login-card{padding:28px 22px}}

/* v0.2 — colaboração */
.gdn-front-notice{background:#e3f8eb;border:1px solid #b9e8ca;color:#005c2e;border-radius:14px;padding:12px 16px;margin-bottom:20px;font-size:.82rem;font-weight:750}
.gdn-detail-panel{background:#fff;border:1px solid var(--gdn-line);border-radius:26px;padding:26px;margin-bottom:28px;box-shadow:0 16px 45px rgba(0,69,34,.06)}
.gdn-detail-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.gdn-detail-head h2{color:var(--gdn-deep);font-size:1.65rem;line-height:1.2;margin:7px 0 10px}.gdn-detail-head p{color:var(--gdn-muted);line-height:1.65;margin:0;max-width:820px}.gdn-close-detail{color:var(--gdn-deep);font-weight:800;font-size:.78rem;white-space:nowrap}
.gdn-detail-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}.gdn-detail-meta>span{background:var(--gdn-paper);border:1px solid var(--gdn-line);border-radius:14px;padding:13px;color:var(--gdn-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.gdn-detail-meta strong{display:block;color:var(--gdn-ink);font-size:.82rem;text-transform:none;letter-spacing:0;margin-top:6px}
.gdn-collab-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.gdn-collab-block{border:1px solid var(--gdn-line);border-radius:20px;padding:20px;background:#fbfcfb}.gdn-collab-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.gdn-collab-head h3{margin:4px 0 0;color:var(--gdn-deep);font-size:1.05rem}.gdn-count-pill{background:#e8f0ea;color:var(--gdn-deep);border-radius:999px;padding:5px 9px;font-size:.65rem;font-weight:850}
.gdn-comments{display:grid;gap:10px;max-height:330px;overflow:auto;padding-right:4px}.gdn-comment{display:grid;grid-template-columns:32px 1fr;gap:10px;background:#fff;border:1px solid var(--gdn-line);border-radius:14px;padding:12px}.gdn-avatar-small{width:32px;height:32px;font-size:.72rem}.gdn-comment-meta{display:flex;justify-content:space-between;gap:12px}.gdn-comment-meta strong{font-size:.78rem}.gdn-comment-meta time{font-size:.62rem;color:var(--gdn-muted)}.gdn-comment p{margin:5px 0 0;color:var(--gdn-muted);font-size:.78rem;line-height:1.55}
.gdn-collab-form{display:grid;gap:10px;margin-top:14px}.gdn-collab-form label{font-size:.72rem;color:var(--gdn-ink);font-weight:800}.gdn-collab-form textarea,.gdn-collab-form input[type=text],.gdn-collab-form input[type=file],.gdn-collab-form select,.gdn-decision-form textarea{width:100%;margin-top:6px;border:1px solid var(--gdn-line);border-radius:11px;background:#fff;padding:10px;font:inherit;color:var(--gdn-ink)}.gdn-collab-form input[type=file]{font-size:.72rem}.gdn-collab-form .gdn-btn{border:0;cursor:pointer;justify-self:start}.gdn-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gdn-form-grid-3{grid-template-columns:1.1fr 1fr 1fr}.gdn-form-help{color:var(--gdn-muted);font-size:.65rem;line-height:1.5}
.gdn-file-list{display:grid;gap:8px;max-height:310px;overflow:auto}.gdn-file-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;background:#fff;border:1px solid var(--gdn-line);border-radius:12px;color:var(--gdn-ink)}.gdn-file-row strong,.gdn-file-row small{display:block}.gdn-file-row strong{font-size:.76rem}.gdn-file-row strong span{color:var(--gdn-green)}.gdn-file-row small,.gdn-file-row time{color:var(--gdn-muted);font-size:.62rem}.gdn-empty-compact{padding:8px 0;margin:0}
.gdn-inline-muted{margin-left:10px;color:var(--gdn-muted)}.gdn-asset-hero{display:inline-flex;background:var(--gdn-deep);color:#fff;padding:11px 15px;border-radius:999px;font-size:.76rem;font-weight:800;margin:0 0 16px}.gdn-review-note{background:#fff8e8;border:1px solid #f0ddb3;border-radius:14px;padding:14px;margin:4px 0 16px}.gdn-review-note strong{font-size:.75rem;color:#6f5200}.gdn-review-note p{margin:6px 0 0;color:#7c6830;font-size:.8rem}.gdn-decision-form{background:#f7faf7;border:1px solid var(--gdn-line);padding:16px;border-radius:16px;margin:6px 0 18px}.gdn-decision-form label{font-size:.72rem;font-weight:800}.gdn-decision-form .gdn-btn{border:0;cursor:pointer}
.gdn-file-upload-panel{margin-bottom:18px}.gdn-files-library{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gdn-library-card{display:grid;grid-template-columns:42px 1fr;gap:12px;background:#fff;border:1px solid var(--gdn-line);border-radius:18px;padding:18px}.gdn-library-icon{width:42px;height:42px;border-radius:12px;background:#e5f7ec;color:var(--gdn-deep);display:grid;place-items:center;font-weight:900}.gdn-library-card small{color:var(--gdn-muted);font-size:.62rem}.gdn-library-card h3{margin:5px 0;color:var(--gdn-deep);font-size:.95rem}.gdn-library-card h3 span{color:var(--gdn-green);font-size:.72rem}.gdn-library-card p{margin:0;color:var(--gdn-muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gdn-library-meta{color:#8d9b92;font-size:.62rem;margin:8px 0}.gdn-library-card a{color:var(--gdn-deep);font-size:.72rem;font-weight:800}
@media(max-width:1100px){.gdn-collab-grid{grid-template-columns:1fr}.gdn-files-library{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.gdn-detail-head{flex-direction:column}.gdn-detail-meta{grid-template-columns:1fr 1fr}.gdn-form-grid,.gdn-form-grid-3{grid-template-columns:1fr}.gdn-files-library{grid-template-columns:1fr}}
@media(max-width:520px){.gdn-detail-meta{grid-template-columns:1fr}.gdn-comment-meta{flex-direction:column;gap:2px}.gdn-file-row{align-items:flex-start;flex-direction:column}}
