/* Dairino UI System ---------------------------------------------------------
   Reusable primitives for theme templates and independent Dairino plugins.
   Prefix all new components with d- to avoid collisions with WordPress/plugins.
---------------------------------------------------------------------------- */

/* Buttons */
.d-btn,.btn,.wp-block-button__link{appearance:none;border:1px solid transparent;border-radius:var(--d-button-radius,12px);min-height:var(--d-button-height,44px);padding:9px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:750;line-height:1.2;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease;color:var(--d-text)}
.d-btn:hover,.btn:hover,.wp-block-button__link:hover{transform:translateY(-1px)}
.d-btn:focus-visible,.btn:focus-visible,.wp-block-button__link:focus-visible{outline:3px solid color-mix(in srgb,var(--d-green) 20%,transparent);outline-offset:2px}
.d-btn--primary,.btn--primary,.wp-block-button__link{background:var(--d-green);color:#fff;box-shadow:0 8px 22px color-mix(in srgb,var(--d-green) 18%,transparent)}
.d-btn--secondary{background:var(--d-green-2);color:#fff}.d-btn--soft,.btn--soft{background:color-mix(in srgb,var(--d-green) 9%,#fff);color:var(--d-green)}
.d-btn--ghost,.btn--ghost{background:var(--d-paper);border-color:var(--d-line);color:var(--d-green)}
.d-btn--danger{background:var(--d-danger);color:#fff}.d-btn--link{background:transparent;color:var(--d-green);padding-inline:4px;min-height:auto}.d-btn--icon{width:var(--d-button-height);padding:0}
.d-btn--sm,.btn--small{min-height:36px;padding:7px 13px;font-size:.86rem}.d-btn--lg{min-height:52px;padding:12px 24px;font-size:1rem}.d-btn--block,.btn--wide{width:100%}
.d-btn[disabled],.d-btn.is-disabled{opacity:.48;cursor:not-allowed;transform:none;box-shadow:none}

/* Cards */
.d-card{background:var(--d-paper);border:1px solid var(--d-line);border-radius:var(--d-radius);padding:24px;box-shadow:var(--d-shadow)}
.d-card--flat{box-shadow:none}.d-card--cream{background:var(--d-cream-2)}.d-card__head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.d-card__title{margin:0;font-size:1.05rem}.d-card__meta{color:var(--d-muted);font-size:.78rem}

/* Tabs */
.d-tabs__nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:14px}.d-tabs__button{border:0;background:transparent;color:var(--d-muted);font-weight:750;padding:9px 13px;min-height:40px;border-radius:var(--d-radius-sm);position:relative}
.d-tabs__button.is-active{color:var(--d-green);background:color-mix(in srgb,var(--d-green) 9%,transparent)}
.d-tabs[data-style="underline"] .d-tabs__button,.dairino-tab-style-underline .d-tabs__button{border-radius:0;background:transparent}
.d-tabs[data-style="underline"] .d-tabs__button.is-active:after,.dairino-tab-style-underline .d-tabs__button.is-active:after{content:"";position:absolute;right:10px;left:10px;bottom:0;height:2px;background:var(--d-green);border-radius:2px}
.d-tabs__panel{padding-top:4px}.d-tabs__panel[hidden]{display:none!important}

/* Menus */
.d-menu{list-style:none;margin:0;padding:0}.d-menu--horizontal{display:flex;align-items:center;gap:24px}.d-menu--vertical{display:grid;gap:4px}.d-menu a,.d-menu button{border-radius:10px;transition:.16s ease}.d-menu--vertical a,.d-menu--vertical button{padding:10px 12px}.d-menu .is-current>a,.d-menu .current-menu-item>a{color:var(--d-green)}
.primary-nav__list .menu-item{position:relative}.primary-nav__list .sub-menu{position:absolute;right:0;top:calc(100% + 12px);min-width:210px;list-style:none;padding:8px;margin:0;background:var(--d-paper);border:1px solid var(--d-line);border-radius:14px;box-shadow:var(--d-shadow);opacity:0;visibility:hidden;transform:translateY(6px);transition:.16s ease}.primary-nav__list .menu-item:hover>.sub-menu,.primary-nav__list .menu-item:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none}.primary-nav__list .sub-menu a{display:block;padding:9px 11px;border-radius:9px}.primary-nav__list .sub-menu a:hover{background:color-mix(in srgb,var(--d-green) 7%,transparent)}

/* Form controls */
.d-field{display:grid;gap:7px}.d-label{font-size:.86rem;font-weight:750}.d-input,.d-select,.d-textarea,.entry-content input:not([type=submit]):not([type=button]),.entry-content select,.entry-content textarea{width:100%;border:1px solid var(--d-line);background:var(--d-paper);color:var(--d-text);border-radius:var(--d-radius-sm);padding:var(--d-control-py,12px) 12px;outline:none;transition:.16s ease}.d-input:focus,.d-select:focus,.d-textarea:focus,.entry-content input:focus,.entry-content select:focus,.entry-content textarea:focus{border-color:color-mix(in srgb,var(--d-green) 45%,var(--d-line));box-shadow:0 0 0 3px color-mix(in srgb,var(--d-green) 9%,transparent)}.d-help{color:var(--d-muted);font-size:.76rem}.d-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}

/* Tables */
.d-table-wrap,.entry-content .wp-block-table{width:100%;overflow:auto;border:1px solid var(--d-line);border-radius:var(--d-radius-sm);background:var(--d-paper)}
.d-table,.entry-content table{width:100%;border-collapse:collapse;border-spacing:0;min-width:620px}.d-table th,.d-table td,.entry-content table th,.entry-content table td{padding:var(--d-control-py,12px) 13px;border-bottom:1px solid var(--d-line);text-align:right;vertical-align:middle}.d-table th,.entry-content table th{font-size:.78rem;color:var(--d-muted);font-weight:800;background:color-mix(in srgb,var(--d-cream) 22%,#fff);white-space:nowrap}.d-table td,.entry-content table td{font-size:.86rem}.d-table tr:last-child td,.entry-content table tr:last-child td{border-bottom:0}.d-table--compact th,.d-table--compact td{padding:7px 10px}.d-table--hover tbody tr:hover{background:color-mix(in srgb,var(--d-green) 4%,transparent)}.d-table__actions{display:flex;align-items:center;gap:6px}

/* Badges and alerts */
.d-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 9px;font-size:.72rem;font-weight:800;background:#edf2ef;color:var(--d-muted)}.d-badge--success{background:color-mix(in srgb,var(--d-success) 12%,#fff);color:var(--d-success)}.d-badge--warning{background:color-mix(in srgb,var(--d-warning) 13%,#fff);color:var(--d-warning)}.d-badge--danger{background:color-mix(in srgb,var(--d-danger) 12%,#fff);color:var(--d-danger)}.d-badge--info{background:color-mix(in srgb,var(--d-info) 12%,#fff);color:var(--d-info)}
.d-alert{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:13px 15px;border:1px solid var(--d-line);border-radius:var(--d-radius-sm);background:var(--d-paper)}.d-alert--success{border-color:color-mix(in srgb,var(--d-success) 24%,var(--d-line));background:color-mix(in srgb,var(--d-success) 5%,#fff)}.d-alert--warning{border-color:color-mix(in srgb,var(--d-warning) 24%,var(--d-line));background:color-mix(in srgb,var(--d-warning) 5%,#fff)}.d-alert--danger{border-color:color-mix(in srgb,var(--d-danger) 24%,var(--d-line));background:color-mix(in srgb,var(--d-danger) 5%,#fff)}

/* KPI / stat cards */
.d-kpi{background:var(--d-paper);border:1px solid var(--d-line);border-radius:var(--d-radius-sm);padding:18px}.d-kpi__label{color:var(--d-muted);font-size:.78rem}.d-kpi__value{font-size:1.75rem;font-weight:850;line-height:1.35;margin-top:5px}.d-kpi__delta{font-size:.72rem;color:var(--d-muted);margin-top:4px}.d-kpi__delta.is-positive{color:var(--d-success)}.d-kpi__delta.is-negative{color:var(--d-danger)}

/* Charts - dependency free SVG runtime in main.js */
.d-chart{margin:0;background:var(--d-paper);border:1px solid var(--d-line);border-radius:var(--d-radius);padding:18px;min-width:0}.d-chart__title{font-weight:800;margin-bottom:10px}.d-chart__canvas{height:var(--d-chart-height,280px);min-height:160px;position:relative}.d-chart__canvas svg{display:block;width:100%;height:100%;overflow:visible}.d-chart__grid{stroke:var(--d-chart-grid,#e7ece9);stroke-width:1}.d-chart__line{fill:none;stroke:var(--d-green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.d-chart__area{fill:color-mix(in srgb,var(--d-green) 10%,transparent)}.d-chart__point{fill:var(--d-paper);stroke:var(--d-green);stroke-width:2}.d-chart__bar{fill:var(--d-green)}.d-chart__axis-label{fill:var(--d-muted);font-size:11px;font-family:inherit}.d-chart__donut-track{fill:none;stroke:color-mix(in srgb,var(--d-line) 80%,#fff);stroke-width:18}.d-chart__donut-value{fill:none;stroke:var(--d-green);stroke-width:18;stroke-linecap:round}.d-chart__donut-text{fill:var(--d-text);font-size:24px;font-weight:800;text-anchor:middle}.d-chart__legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;color:var(--d-muted);font-size:.72rem}

/* Pagination */
.d-pagination{display:flex;gap:6px;align-items:center}.d-pagination a,.d-pagination span{min-width:38px;height:38px;padding:0 10px;display:grid;place-items:center;border:1px solid var(--d-line);border-radius:10px}.d-pagination .is-current,.d-pagination .current{background:var(--d-green);color:#fff;border-color:var(--d-green)}

/* Authentication pages */
.auth-page{min-height:calc(100vh - 76px);padding:58px 0;background:linear-gradient(135deg,var(--d-cream-2),var(--d-cream))}.auth-page__grid{display:grid;grid-template-columns:minmax(0,1fr) 470px;gap:44px;align-items:center}.auth-page__intro{max-width:620px}.auth-page__intro h1{font-size:clamp(2.2rem,4vw,4.4rem);line-height:1.3;margin:6px 0 16px}.auth-page__intro p{color:color-mix(in srgb,var(--d-text) 68%,transparent);max-width:58ch}.auth-page__logo{width:310px;max-height:150px;object-fit:contain;object-position:right center;margin-bottom:22px}.auth-page__card{background:var(--d-paper);border:1px solid var(--d-line);border-radius:calc(var(--d-radius) + 4px);padding:30px;box-shadow:var(--d-shadow)}.auth-page__card h2{margin:0 0 6px}.auth-page__card>p{margin:0 0 22px;color:var(--d-muted)}.auth-page__footer-link{display:block;text-align:center;margin-top:16px;color:var(--d-green);font-weight:750}
