/* Nova Creator Program - Frontend CSS - Dark Theme */

:root {
    --ncp-bg:           #1a1a1a;
    --ncp-bg-card:      #242424;
    --ncp-bg-input:     #2e2e2e;
    --ncp-border:       #3a3a3a;
    --ncp-text:         #f0f0f0;
    --ncp-text-muted:   #999;
    --ncp-text-label:   #ccc;
    --ncp-primary:      #e63946;
    --ncp-primary-hover:#c1121f;
    --ncp-success:      #2dc653;
    --ncp-success-dark: #1a7a32;
    --ncp-warning:      #f4a261;
    --ncp-danger:       #e63946;
    --ncp-gold:         #f4a261;
    --ncp-blue:         #4361ee;
    --ncp-radius:       10px;
}

.ncp-wrap { max-width: 860px; margin: 0 auto; font-family: inherit; color: var(--ncp-text); }

/* -------------------------------------------------------------------------
   NOTICES
------------------------------------------------------------------------- */
.ncp-notice {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 14px;
    line-height: 1.5;
}
.ncp-notice--info    { background: #1a2a3a; border-left: 4px solid #4361ee; color: #90b4d4; }
.ncp-notice--success { background: #1a2e1a; border-left: 4px solid var(--ncp-success); color: #7dca8a; }
.ncp-notice--warning { background: #2e2010; border-left: 4px solid var(--ncp-warning); color: var(--ncp-warning); }
.ncp-notice--error   { background: #2e1010; border-left: 4px solid var(--ncp-danger); color: #e08080; }
.ncp-notice--pending { background: #2e2010; border-left: 4px solid var(--ncp-warning); color: var(--ncp-warning); }
.ncp-notice--approved{ background: #1a2e1a; border-left: 4px solid var(--ncp-success); color: #7dca8a; }

/* -------------------------------------------------------------------------
   CARDS
------------------------------------------------------------------------- */
.ncp-card {
    background: var(--ncp-bg-card);
    border: 1px solid var(--ncp-border);
    border-radius: var(--ncp-radius);
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: 0 2px 12px rgba(0,0,0,.4);
}
.ncp-card h3 { margin: 0 0 16px; font-size: 16px; font-weight: 700; color: var(--ncp-text); }
.ncp-card--balances { border-top: 3px solid var(--ncp-success); }

/* -------------------------------------------------------------------------
   BUTTONS
------------------------------------------------------------------------- */
.ncp-btn {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    text-decoration: none;
    transition: background .15s, opacity .15s;
    line-height: 1.4;
}
.ncp-btn--primary { background: var(--ncp-primary); color: #fff; }
.ncp-btn--primary:hover { background: var(--ncp-primary-hover); color: #fff; }
.ncp-btn--success { background: var(--ncp-success); color: #fff; }
.ncp-btn--success:hover { background: var(--ncp-success-dark); color: #fff; }
.ncp-btn--copy { background: #333; color: var(--ncp-text); border: 1px solid var(--ncp-border); }
.ncp-btn--copy:hover { background: #444; }
.ncp-btn--sm { padding: 4px 10px; font-size: 12px; }
.ncp-btn--large { padding: 14px 28px; font-size: 16px; }

/* -------------------------------------------------------------------------
   FORMS
------------------------------------------------------------------------- */
.ncp-form { }
.ncp-form-row { margin-bottom: 16px; }
.ncp-form-row--half { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .ncp-form-row--half { grid-template-columns: 1fr; } }

.ncp-form-group { margin-bottom: 16px; }
.ncp-form-group label {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    font-size: 14px;
    color: var(--ncp-text-label);
}
.ncp-form-group input[type="text"],
.ncp-form-group input[type="email"],
.ncp-form-group input[type="url"],
.ncp-form-group input[type="number"],
.ncp-form-group textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--ncp-border);
    border-radius: 8px;
    font-size: 14px;
    box-sizing: border-box;
    transition: border-color .15s;
    background: var(--ncp-bg-input);
    color: var(--ncp-text);
}
.ncp-form-group input::placeholder,
.ncp-form-group textarea::placeholder { color: #666; }
.ncp-form-group input:focus,
.ncp-form-group textarea:focus {
    border-color: var(--ncp-primary);
    outline: none;
    box-shadow: 0 0 0 2px rgba(230,57,70,.2);
}
.ncp-form-group--checkbox label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-weight: 400;
    cursor: pointer;
    color: var(--ncp-text-label);
}
.ncp-form-group--checkbox input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    accent-color: var(--ncp-primary);
}
.ncp-form-msg {
    padding: 12px 16px;
    border-radius: 8px;
    margin-bottom: 12px;
    font-size: 14px;
}
.ncp-form-msg--success { background: #1a2e1a; color: #7dca8a; border: 1px solid var(--ncp-success); }
.ncp-form-msg--error   { background: #2e1010; color: #e08080; border: 1px solid var(--ncp-danger); }

/* -------------------------------------------------------------------------
   DASHBOARD HEADER
------------------------------------------------------------------------- */
.ncp-dashboard__header { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.ncp-dashboard__header h2 { margin: 0; color: var(--ncp-text); }

/* -------------------------------------------------------------------------
   REFERRAL BOX
------------------------------------------------------------------------- */
.ncp-referral-box {
    background: #1e1e1e;
    border: 1px solid var(--ncp-border);
    border-radius: 8px;
    padding: 16px;
}
.ncp-referral-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--ncp-border);
    border-radius: 8px;
    font-size: 13px;
    font-family: monospace;
    box-sizing: border-box;
    background: var(--ncp-bg-input);
    color: var(--ncp-text);
}
.ncp-referral-link-wrap { display: flex; gap: 8px; }
.ncp-referral-link-wrap .ncp-referral-input { flex: 1; }
.ncp-referral-code-wrap { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.ncp-referral-code-wrap code { font-size: 15px; font-weight: 700; color: var(--ncp-primary); }

/* -------------------------------------------------------------------------
   STATS GRID
------------------------------------------------------------------------- */
.ncp-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 12px;
}
.ncp-stat {
    text-align: center;
    padding: 12px 8px;
    background: #1e1e1e;
    border-radius: 8px;
    border: 1px solid var(--ncp-border);
}
.ncp-stat__value { display: block; font-size: 28px; font-weight: 700; color: var(--ncp-text); }
.ncp-stat__label { display: block; font-size: 11px; color: var(--ncp-text-muted); margin-top: 4px; text-transform: uppercase; }
.ncp-stat--success .ncp-stat__value { color: var(--ncp-success); }
.ncp-stat--pending .ncp-stat__value { color: var(--ncp-warning); }
.ncp-stat--danger  .ncp-stat__value { color: var(--ncp-danger); }

/* -------------------------------------------------------------------------
   BALANCES
------------------------------------------------------------------------- */
.ncp-balances-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    margin: 16px 0;
}
.ncp-balance {
    text-align: center;
    padding: 16px 12px;
    border-radius: 8px;
    background: #1e1e1e;
    border: 1px solid var(--ncp-border);
}
.ncp-balance__amount { display: block; font-size: 22px; font-weight: 700; color: var(--ncp-text); }
.ncp-balance__label  { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--ncp-text-muted); margin-top: 4px; }
.ncp-balance__desc   { display: block; font-size: 11px; color: #555; margin-top: 3px; }
.ncp-balance--approved .ncp-balance__amount { color: var(--ncp-success); }
.ncp-balance--paid     .ncp-balance__amount { color: var(--ncp-blue); }
.ncp-balance--pending  .ncp-balance__amount { color: var(--ncp-warning); }
.ncp-balance--blocked  .ncp-balance__amount { color: var(--ncp-danger); }

/* -------------------------------------------------------------------------
   PROGRESS
------------------------------------------------------------------------- */
.ncp-progress-wrap { margin-top: 8px; }
.ncp-progress-label { font-size: 13px; color: var(--ncp-text-muted); margin-bottom: 6px; }
.ncp-progress { height: 8px; background: #333; border-radius: 4px; overflow: hidden; }
.ncp-progress__bar { height: 100%; background: var(--ncp-primary); border-radius: 4px; transition: width .4s; }
.ncp-progress__bar--green { background: var(--ncp-success); }
.ncp-progress__bar--gold  { background: var(--ncp-gold); }

/* -------------------------------------------------------------------------
   BADGES
------------------------------------------------------------------------- */
.ncp-badge {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.ncp-badge--estimated        { background: #333; color: #aaa; }
.ncp-badge--pending          { background: #3a2800; color: var(--ncp-warning); }
.ncp-badge--approved         { background: #0a2e0a; color: var(--ncp-success); }
.ncp-badge--rejected         { background: #2e0a0a; color: #e08080; }
.ncp-badge--blocked          { background: #2a2a2a; color: #aaa; }
.ncp-badge--paid             { background: #0a1a3a; color: #7ab0e0; }
.ncp-badge--level-base       { background: #2a2a2a; color: #aaa; }
.ncp-badge--level-silver     { background: #2a2a2a; color: #ddd; }
.ncp-badge--level-gold       { background: #2e2000; color: var(--ncp-gold); }
.ncp-badge--level-platinum   { background: #0a2a2e; color: #7ad4e0; }
.ncp-badge--lg { font-size: 14px; padding: 5px 14px; }
.ncp-badge--dim { opacity: .4; }

/* -------------------------------------------------------------------------
   LEVEL PROGRESS
------------------------------------------------------------------------- */
.ncp-level-badges { display: flex; align-items: center; gap: 12px; }
.ncp-level-arrow  { font-size: 20px; color: #555; }

/* -------------------------------------------------------------------------
   EVENTS TABLE
------------------------------------------------------------------------- */
.ncp-events-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ncp-events-table th,
.ncp-events-table td {
    padding: 8px 10px;
    border-bottom: 1px solid var(--ncp-border);
    text-align: left;
    color: var(--ncp-text);
}
.ncp-events-table th { font-weight: 600; color: var(--ncp-text-muted); background: #1e1e1e; }

/* -------------------------------------------------------------------------
   LEADERBOARD
------------------------------------------------------------------------- */
.ncp-leaderboard-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ncp-leaderboard-table th,
.ncp-leaderboard-table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--ncp-border);
    color: var(--ncp-text);
}
.ncp-leaderboard-table th { background: #1e1e1e; font-weight: 600; color: var(--ncp-text-muted); }
.ncp-rank-1 td { background: #2a2000; font-weight: 700; }
.ncp-rank-2 td { background: #222; }
.ncp-rank-3 td { background: #1e1a10; }

/* -------------------------------------------------------------------------
   DOCS LIST (accettazione)
------------------------------------------------------------------------- */
.ncp-docs-list { margin: 20px 0; }
.ncp-doc-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 0;
    border-bottom: 1px solid var(--ncp-border);
}
.ncp-doc-icon { font-size: 20px; }
.ncp-doc-link { font-weight: 600; color: var(--ncp-primary); text-decoration: none; }
.ncp-doc-link:hover { text-decoration: underline; color: var(--ncp-primary-hover); }
.ncp-doc-link--missing { color: #666; font-weight: 400; }
.ncp-doc-ext { font-size: 12px; color: #555; }

/* -------------------------------------------------------------------------
   ACCETTAZIONE CHECKBOXES
------------------------------------------------------------------------- */
.ncp-acceptance .ncp-form-group--checkbox {
    padding: 12px 16px;
    background: #1e1e1e;
    border: 1px solid var(--ncp-border);
    border-radius: 8px;
    margin-bottom: 10px;
}

/* -------------------------------------------------------------------------
   UTILITY
------------------------------------------------------------------------- */
.ncp-text--muted  { color: var(--ncp-text-muted); }
.ncp-text--sm     { font-size: 12px; }

/* -------------------------------------------------------------------------
   MOBILE
------------------------------------------------------------------------- */
@media (max-width: 600px) {
    .ncp-balances-grid { grid-template-columns: repeat(2, 1fr); }
    .ncp-stats-grid    { grid-template-columns: repeat(2, 1fr); }
    .ncp-btn--large    { width: 100%; text-align: center; }
}
