/* =============================================
   InvenTrack v2.0 — Extended Modules Styles
   ============================================= */

/* ===== Sidebar Section Labels ===== */
.nav-section-label {
    display: block; padding: 16px 20px 6px; font-size: .65rem; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary);
    user-select: none; white-space: nowrap; overflow: hidden;
}
.sidebar.collapsed .nav-section-label { display: none; }

/* ===== Tools Grid ===== */
.tools-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 20px;
}
.tool-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 24px; transition: box-shadow var(--duration) var(--ease), border-color var(--duration) var(--ease);
}
.tool-card:hover { border-color: var(--brand-400); box-shadow: var(--shadow-md); }
.tool-card h3 { font-size: 1rem; font-weight: 600; margin-bottom: 4px; display: flex; align-items: center; gap: 8px; }
.tool-card h3 i { color: var(--brand-500); }
.tool-card p { font-size: .82rem; color: var(--text-secondary); margin-bottom: 16px; }
.tool-card .tool-body { display: flex; flex-direction: column; gap: 12px; }
.tool-card .tool-body input,
.tool-card .tool-body select { width: 100%; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); color: var(--text-primary); font-size: .85rem; }
.tool-card .tool-body input:focus,
.tool-card .tool-body select:focus { border-color: var(--border-focus); outline: none; box-shadow: 0 0 0 3px rgba(14,165,233,.15); }

.tool-row { display: flex; gap: 8px; align-items: end; }
.tool-row > * { flex: 1; }

.tool-result {
    background: var(--surface-secondary); border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 14px; font-size: .82rem; min-height: 44px; word-break: break-all;
}
.tool-result-grid {
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px;
}
.tool-result-grid dt { font-weight: 600; color: var(--text-secondary); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.tool-result-grid dd { color: var(--text-primary); font-family: 'JetBrains Mono', monospace; font-size: .82rem; }

.checkbox-label {
    display: flex; align-items: center; gap: 8px; font-size: .82rem; cursor: pointer;
}
.checkbox-label input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--brand-500); }

#qrOutput canvas, #barcodeOutput svg, #barcodeOutput canvas { max-width: 100%; margin-top: 8px; }

/* ===== Password Strength Bar ===== */
.pw-input-wrap { display: flex; gap: 4px; }
.pw-input-wrap input { flex: 1; }
.pw-toggle-btn, .pw-gen-inline-btn {
    width: 36px; height: 36px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface-secondary); color: var(--text-secondary); cursor: pointer;
    display: flex; align-items: center; justify-content: center; transition: all var(--duration) var(--ease);
}
.pw-toggle-btn:hover, .pw-gen-inline-btn:hover { background: var(--brand-50); color: var(--brand-600); border-color: var(--brand-300); }

.pw-strength-bar {
    width: 100%; height: 6px; background: var(--surface-tertiary); border-radius: 3px; margin: 8px 0 2px; overflow: hidden;
}
.pw-strength-fill { height: 100%; border-radius: 3px; transition: width .3s var(--ease), background .3s var(--ease); width: 0; }
.pw-strength-text { font-size: .72rem; color: var(--text-secondary); margin-bottom: 8px; }

/* ===== Password Overview Cards ===== */
.pw-overview, .contract-summary { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; margin-bottom: 20px; }
.pw-overview-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 16px; text-align: center;
}
.pw-overview-card .pw-ov-number { font-size: 2rem; font-weight: 700; color: var(--brand-600); }
.pw-overview-card .pw-ov-label { font-size: .75rem; color: var(--text-secondary); margin-top: 4px; }

.pw-strength-dot {
    display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px;
}
.pw-strength-dot.strong { background: var(--success-500); }
.pw-strength-dot.medium { background: var(--warning-500); }
.pw-strength-dot.weak { background: var(--danger-500); }

/* ===== Document Grid ===== */
.doc-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px;
}
.doc-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 20px; cursor: pointer; transition: all var(--duration) var(--ease);
    display: flex; flex-direction: column;
}
.doc-card:hover { border-color: var(--brand-400); box-shadow: var(--shadow); transform: translateY(-2px); }
.doc-card-icon { width: 44px; height: 44px; border-radius: var(--radius-sm); display: flex; align-items: center; justify-content: center; font-size: 1.2rem; margin-bottom: 12px; }
.doc-card-icon.form { background: var(--info-50); color: var(--info-500); }
.doc-card-icon.config { background: var(--success-50); color: var(--success-500); }
.doc-card-icon.license { background: var(--warning-50); color: var(--warning-500); }
.doc-card-icon.contract { background: var(--danger-50); color: var(--danger-500); }
.doc-card-icon.default { background: var(--brand-50); color: var(--brand-500); }
.doc-card h4 { font-size: .9rem; font-weight: 600; margin-bottom: 4px; }
.doc-card .doc-type-badge { font-size: .7rem; color: var(--text-secondary); margin-bottom: 8px; }
.doc-card .doc-excerpt { font-size: .78rem; color: var(--text-secondary); flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.doc-card .doc-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--border); font-size: .72rem; color: var(--text-tertiary); }
.doc-card .doc-tags { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 8px; }
.doc-card .doc-tag { font-size: .65rem; background: var(--brand-50); color: var(--brand-600); padding: 2px 8px; border-radius: 99px; }

/* ===== Notes Grid ===== */
.notes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.note-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 20px; cursor: pointer; transition: all var(--duration) var(--ease);
    position: relative;
}
.note-card:hover { border-color: var(--brand-400); box-shadow: var(--shadow); }
.note-card .note-priority {
    position: absolute; top: 12px; right: 12px; width: 8px; height: 8px; border-radius: 50%;
}
.note-card .note-priority.high { background: var(--danger-500); }
.note-card .note-priority.normal { background: var(--brand-500); }
.note-card .note-priority.low { background: var(--n-300); }
.note-card h4 { font-size: .9rem; font-weight: 600; margin-bottom: 4px; padding-right: 20px; }
.note-card .note-type-badge { font-size: .7rem; color: var(--text-secondary); margin-bottom: 8px; }
.note-card .note-excerpt { font-size: .78rem; color: var(--text-secondary); display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.note-card .note-footer { display: flex; justify-content: space-between; margin-top: 12px; font-size: .72rem; color: var(--text-tertiary); }

/* ===== Task Board (Kanban) ===== */
.task-board { display: flex; gap: 16px; overflow-x: auto; padding-bottom: 8px; min-height: 400px; }
.task-column {
    min-width: 280px; flex: 1; background: var(--surface-secondary); border-radius: var(--radius);
    padding: 12px; display: flex; flex-direction: column;
}
.task-column-header {
    display: flex; justify-content: space-between; align-items: center; padding: 8px; margin-bottom: 8px;
    font-weight: 600; font-size: .85rem;
}
.task-column-header .task-count {
    background: var(--surface-tertiary); padding: 2px 8px; border-radius: 99px; font-size: .72rem;
    font-weight: 500; color: var(--text-secondary);
}
.task-list { flex: 1; display: flex; flex-direction: column; gap: 8px; min-height: 100px; }
.task-card {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 12px; cursor: pointer; transition: all var(--duration) var(--ease);
}
.task-card:hover { box-shadow: var(--shadow-sm); border-color: var(--brand-300); }
.task-card h5 { font-size: .82rem; font-weight: 600; margin-bottom: 6px; }
.task-card .task-meta { display: flex; justify-content: space-between; align-items: center; font-size: .72rem; color: var(--text-secondary); }
.task-card .task-priority-badge { padding: 2px 6px; border-radius: 4px; font-size: .65rem; font-weight: 600; }
.task-priority-badge.urgent { background: var(--danger-50); color: var(--danger-600); }
.task-priority-badge.high { background: var(--warning-50); color: var(--warning-600); }
.task-priority-badge.normal { background: var(--info-50); color: var(--info-500); }
.task-priority-badge.low { background: var(--surface-tertiary); color: var(--text-secondary); }
.task-card .task-assignee { display: flex; align-items: center; gap: 4px; }

/* ===== Wider Modal for Notes/Articles ===== */
.modal-wide { max-width: 800px !important; }

/* ===== Filter Bar (for docs, passwords, IP list) ===== */
.filter-bar {
    display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
    padding: 14px 16px; background: var(--surface); border: 1px solid var(--border);
    border-radius: var(--radius); margin-bottom: 16px;
}
.filter-bar input, .filter-bar select {
    padding: 7px 12px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface-secondary); color: var(--text-primary); font-size: .82rem;
}
.filter-bar input { min-width: 200px; flex: 1; }
.filter-bar input:focus, .filter-bar select:focus { border-color: var(--border-focus); outline: none; }

/* ===== IP Subnet Calculator Result ===== */
.subnet-result { margin-top: 12px; }
.subnet-result table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.subnet-result td { padding: 6px 10px; border-bottom: 1px solid var(--border); }
.subnet-result td:first-child { font-weight: 600; color: var(--text-secondary); width: 45%; }

/* ===== Zimmet (Custody) Form Print ===== */
.zimmet-form-preview {
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius);
    padding: 30px; max-width: 800px; margin: 12px auto;
}
.zimmet-form-preview h3 { text-align: center; margin-bottom: 20px; font-size: 1.1rem; }
.zimmet-form-preview table { width: 100%; border-collapse: collapse; margin-bottom: 20px; }
.zimmet-form-preview th, .zimmet-form-preview td {
    border: 1px solid var(--n-300); padding: 8px 12px; text-align: left; font-size: .85rem;
}
.zimmet-form-preview th { background: var(--surface-secondary); font-weight: 600; }
.zimmet-signature-row { display: flex; justify-content: space-between; margin-top: 40px; }
.zimmet-signature-box { text-align: center; width: 200px; }
.zimmet-signature-box .line { border-top: 1px solid var(--n-600); margin-top: 60px; padding-top: 6px; font-size: .82rem; }

/* ===== Searchable Select Component ===== */
.searchable-select { position: relative; width: 100%; }
.searchable-select-input {
    width: 100%; padding: 8px 32px 8px 12px; border: 1px solid var(--border);
    border-radius: var(--radius-sm); background: var(--surface); color: var(--text-primary);
    font-size: .85rem; outline: none; transition: border-color var(--duration) var(--ease), box-shadow var(--duration) var(--ease);
}
.searchable-select-input:focus { border-color: var(--border-focus); box-shadow: 0 0 0 3px rgba(14,165,233,.15); }
.searchable-select::after {
    content: '\f078'; font-family: 'Font Awesome 6 Free'; font-weight: 900; font-size: .7rem;
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    color: var(--text-tertiary); pointer-events: none;
}
.searchable-select-dropdown {
    display: none; position: absolute; top: calc(100% + 4px); left: 0; right: 0;
    max-height: 280px; overflow-y: auto; z-index: 200;
    background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm);
    box-shadow: var(--shadow-lg, 0 10px 25px rgba(0,0,0,.15));
}
.searchable-select-dropdown.open { display: block; }
.searchable-select-group-label {
    padding: 8px 12px 4px; font-size: .7rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: .05em; color: var(--text-tertiary); background: var(--surface-secondary);
    position: sticky; top: 0; z-index: 1;
}
.searchable-select-item {
    padding: 8px 12px; font-size: .84rem; cursor: pointer; display: flex; align-items: center; gap: 8px;
    color: var(--text-primary); transition: background var(--duration) var(--ease);
}
.searchable-select-item:hover, .searchable-select-item.highlighted { background: var(--brand-50, rgba(14,165,233,.08)); }
.searchable-select-item-sub { font-size: .75rem; color: var(--text-secondary); margin-left: auto; white-space: nowrap; }
.searchable-select-empty { padding: 16px 12px; text-align: center; font-size: .82rem; color: var(--text-tertiary); }

@media print {
    body * { visibility: hidden !important; }
    .zimmet-form-preview, .zimmet-form-preview * { visibility: visible !important; }
    .zimmet-form-preview { position: fixed; left: 0; top: 0; width: 100%; margin: 0; padding: 30px; border: none; box-shadow: none; }
}

/* ===== Zimmet Module ===== */
.zimmet-product-controls {
    display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap;
}
.zimmet-device-select {
    flex: 1; min-width: 200px; padding: 7px 12px; border: 1px solid var(--border);
    border-radius: var(--radius-sm); background: var(--surface-secondary); color: var(--text-primary);
    font-size: .82rem; font-family: var(--font);
}
.zimmet-items-table { margin-top: 0; }
.zimmet-items-table input {
    width: 100%; padding: 5px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface-secondary); color: var(--text-primary); font-size: .8rem; font-family: var(--font);
}
.zimmet-items-table input:focus { border-color: var(--brand-500); outline: none; }
.field-hint { font-size: .75rem; color: var(--text-tertiary); margin: 2px 0 6px; }

/* ===== Password Gen Options ===== */
.pw-gen-options {
    display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px;
}
.pw-gen-result {
    background: var(--surface-secondary); border: 1px solid var(--border); border-radius: var(--radius-sm);
    padding: 14px; font-family: 'JetBrains Mono', monospace; font-size: 1.1rem; text-align: center;
    word-break: break-all; letter-spacing: .5px; margin-top: 8px; user-select: all; cursor: pointer;
    min-height: 44px; display: flex; align-items: center; justify-content: center;
}

/* ===== Cabinet Visualization ===== */
.cabinet-visual {
    display: flex; align-items: stretch; gap: 12px;
}
.cabinet-rack {
    width: 60px; background: var(--n-700); border-radius: 4px; position: relative;
    display: flex; flex-direction: column-reverse; overflow: hidden;
}
.cabinet-rack-used { background: var(--brand-500); transition: height .4s var(--ease); }
.cabinet-rack-free { background: var(--n-600); flex: 1; }
.cabinet-info-col { flex: 1; }

/* Cabinet detail expandable row */
.cab-row { cursor: pointer; }
.cab-row:hover { background: var(--n-750, rgba(255,255,255,.03)); }
.cab-detail-row td { padding: 0 !important; border-top: none !important; }
.cab-detail-panel {
    display: flex; gap: 24px; padding: 20px; background: var(--n-800, #1a2332);
    border: 1px solid var(--border); border-radius: 8px; margin: 8px 12px 16px;
}
.cab-detail-left {
    flex: 0 0 280px; display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.cab-detail-img {
    width: 100%; max-height: 320px; object-fit: contain; border-radius: 8px;
    border: 1px solid var(--border);
}
.cab-detail-img-empty {
    width: 100%; min-height: 200px; display: flex; flex-direction: column;
    align-items: center; justify-content: center; gap: 8px;
    background: var(--n-750, #151e2b); border: 2px dashed var(--border);
    border-radius: 8px; color: var(--text-secondary); font-size: .85rem;
}
.cab-detail-img-empty i { font-size: 2rem; opacity: .5; }
.cab-detail-right { flex: 1; min-width: 0; }
.cab-detail-right h4 {
    margin: 0 0 12px; font-size: .95rem; color: var(--text-primary);
    display: flex; align-items: center; gap: 8px;
}
.cab-equip-inner-table { font-size: .82rem; }
.cab-equip-inner-table th { font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; }

/* Cabinet modal — image upload & equipment table */
.file-upload-area {
    border: 2px dashed var(--border); border-radius: 8px; padding: 12px;
    cursor: pointer; transition: border-color .2s, background .2s;
}
.file-upload-area:hover, .file-upload-area.drag-over {
    border-color: var(--brand-500); background: rgba(14, 165, 233, .05);
}
.file-input-hidden { display: none; }
.cab-image-preview-area {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 6px; min-height: 80px; color: var(--text-secondary); font-size: .85rem;
}
.cab-image-preview-area i { font-size: 1.5rem; opacity: .5; }
.form-section-title {
    display: flex; align-items: center; gap: 10px; font-weight: 600;
    font-size: .9rem; color: var(--text-primary); margin: 16px 0 8px;
    padding-top: 12px; border-top: 1px solid var(--border);
}
.form-section-title .btn { margin-left: auto; }
.cab-equip-table-wrapper { max-height: 250px; overflow-y: auto; }
.form-input-sm {
    width: 100%; padding: 4px 8px; font-size: .82rem; border-radius: 4px;
    border: 1px solid var(--border); background: var(--n-750, #1a2332);
    color: var(--text-primary);
}
.form-input-sm:focus { border-color: var(--brand-500); outline: none; }
.table-sm td { padding: 4px 6px !important; }
.table-sm th { padding: 6px !important; font-size: .75rem; }
.btn-sm { padding: 4px 10px; font-size: .78rem; }

/* ===== DNS Lookup Result ===== */
.dns-result { margin-top: 12px; }
.dns-result .dns-record {
    display: flex; justify-content: space-between; padding: 8px 12px;
    border-bottom: 1px solid var(--border); font-size: .82rem;
}
.dns-result .dns-record:last-child { border-bottom: none; }
.dns-record-type { font-weight: 600; color: var(--brand-600); min-width: 60px; }

/* ===== Responsive Adjustments ===== */
@media (max-width: 1024px) {
    .tools-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
    .doc-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
    .notes-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}

@media (max-width: 768px) {
    /* Grids to single column */
    .tools-grid { grid-template-columns: 1fr; gap: 14px; }
    .doc-grid { grid-template-columns: 1fr; gap: 12px; }
    .notes-grid { grid-template-columns: 1fr; gap: 12px; }
    .pw-overview, .contract-summary { grid-template-columns: 1fr 1fr; gap: 10px; }
    .pw-gen-options { grid-template-columns: 1fr; }
    .tool-result-grid { grid-template-columns: 1fr; }

    /* Kanban board — stack columns vertically on mobile */
    .task-board { flex-direction: column; gap: 12px; min-height: auto; padding-bottom: 0; }
    .task-column { min-width: unset; }

    /* Tool cards compact padding */
    .tool-card { padding: 16px; }
    .tool-card h3 { font-size: .92rem; }
    .tool-card p { font-size: .78rem; margin-bottom: 12px; }
    .tool-row { flex-direction: column; gap: 8px; }
    .tool-row > * { flex: none; width: 100%; }
    .tool-result { padding: 10px; font-size: .8rem; }

    /* Document & note cards compact */
    .doc-card { padding: 16px; }
    .doc-card h4 { font-size: .88rem; }
    .note-card { padding: 16px; }
    .note-card h4 { font-size: .88rem; }

    /* Task cards */
    .task-card { padding: 10px; }
    .task-column-header { padding: 6px 8px; font-size: .82rem; }

    /* Filter bar stack */
    .filter-bar { flex-direction: column; padding: 12px; gap: 8px; }
    .filter-bar input { min-width: unset; width: 100%; }
    .filter-bar select { width: 100%; }

    /* Password input touch-friendly */
    .pw-toggle-btn, .pw-gen-inline-btn { width: 42px; height: 42px; }

    /* Cabinet visualization responsive */
    .cabinet-visual { flex-direction: column; align-items: stretch; }
    .cabinet-rack { width: 100%; height: 40px; flex-direction: row; }
    .cabinet-rack-used { transition: width .4s var(--ease); }
    .cab-detail-panel { flex-direction: column; gap: 16px; padding: 12px; }
    .cab-detail-left { flex: none; width: 100%; }
    .cab-detail-img { max-height: 200px; }
    .cabinet-table th:nth-child(5), .cabinet-table td:nth-child(5),
    .cabinet-table th:nth-child(6), .cabinet-table td:nth-child(6),
    .cabinet-table th:nth-child(7), .cabinet-table td:nth-child(7) { display: none; }

    /* Zimmet module */
    .zimmet-device-select { min-width: 0; width: 100%; }
    .zimmet-product-controls { flex-direction: column; }
    .zimmet-items-table { font-size: .75rem; }
    .zimmet-items-table input { padding: 4px 6px; font-size: .75rem; }
    .zimmet-items-table th, .zimmet-items-table td { padding: 6px 4px; }

    /* Zimmet form preview mobile */
    .zimmet-form-preview { padding: 16px; }
    .zimmet-form-preview th, .zimmet-form-preview td { padding: 6px 8px; font-size: .78rem; }
    .zimmet-signature-row { flex-direction: column; gap: 30px; align-items: center; }
    .zimmet-signature-box { width: 100%; }

    /* Subnet result */
    .subnet-result table { font-size: .78rem; }
    .subnet-result td { padding: 5px 6px; }
    .subnet-result td:first-child { width: 40%; }

    /* DNS result */
    .dns-result .dns-record { flex-direction: column; gap: 2px; padding: 6px 10px; }
    .dns-record-type { min-width: unset; }

    /* Password overview compact */
    .pw-overview-card { padding: 12px; }
    .pw-overview-card .pw-ov-number { font-size: 1.5rem; }
}

@media (max-width: 480px) {
    /* Overview cards single column */
    .pw-overview, .contract-summary { grid-template-columns: 1fr; gap: 8px; }

    /* Tool cards even more compact */
    .tool-card { padding: 14px; }
    .tool-card .tool-body input,
    .tool-card .tool-body select { padding: 10px 12px; font-size: 16px; } /* prevent iOS zoom */

    /* QR/barcode output contained */
    #qrOutput canvas, #barcodeOutput svg, #barcodeOutput canvas { max-width: 100%; height: auto; }

    /* Document cards compact */
    .doc-card .doc-footer { flex-direction: column; gap: 4px; align-items: flex-start; }

    /* Password gen result */
    .pw-gen-result { font-size: .95rem; padding: 12px; }

    /* Checkbox labels touch-friendly */
    .checkbox-label { min-height: 40px; font-size: .85rem; }
    .checkbox-label input[type="checkbox"] { width: 20px; height: 20px; }

    /* Zimmet items: hide less important cols on very small screens */
    .zimmet-items-table th:nth-child(5),
    .zimmet-items-table td:nth-child(5) { display: none; } /* serial col */

    /* Task board compact */
    .task-column { padding: 8px; }
    .task-card h5 { font-size: .8rem; }
    .task-card .task-meta { font-size: .68rem; }
}

/* Touch device adjustments for modules */
@media (pointer: coarse) {
    .pw-toggle-btn, .pw-gen-inline-btn { width: 44px; height: 44px; }
    .tool-card .tool-body input,
    .tool-card .tool-body select { min-height: 44px; }
    .filter-bar input, .filter-bar select { min-height: 44px; }
    .doc-card, .note-card, .task-card { min-height: 44px; }
    .tag-remove { padding: 4px 8px; min-width: 32px; min-height: 32px; display: flex; align-items: center; justify-content: center; }
}
