/** * Tools1984 Design System * Apple-style minimal,professional,corporate UI * Version:2.0.0 */ /* ===================================================== CSS VARIABLES - Design Tokens ===================================================== */:root{/* Primary Colors - Deep Purple */ --t84-primary:#4C1D95;--t84-primary-hover:#3B1473;--t84-primary-soft:#F3EEFF;--t84-primary-soft-hover:#EBE4FF;/* Neutral Grays */ --t84-bg:#F5F6F7;--t84-bg-alt:#EBEDEF;--t84-surface:#FFFFFF;--t84-surface-hover:#FAFAFA;/* Borders */ --t84-border:#E3E7EC;--t84-border-light:#EEF1F4;--t84-border-focus:#4C1D95;/* Text Colors */ --t84-text:#111827;--t84-text-secondary:#4B5563;--t84-text-muted:#6B7280;--t84-text-light:#9CA3AF;/* Status Colors - Only for alerts/toasts/badges/validation */ --t84-success:#059669;--t84-success-bg:#ECFDF5;--t84-success-border:#A7F3D0;--t84-warning:#D97706;--t84-warning-bg:#FFFBEB;--t84-warning-border:#FDE68A;--t84-error:#DC2626;--t84-error-bg:#FEF2F2;--t84-error-border:#FECACA;--t84-info:#2563EB;--t84-info-bg:#EFF6FF;--t84-info-border:#BFDBFE;/* Shadows - Minimal */ --t84-shadow-xs:0 1px 2px rgba(0,0,0,0.04);--t84-shadow-sm:0 1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04);--t84-shadow-md:0 4px 6px -1px rgba(0,0,0,0.06),0 2px 4px -1px rgba(0,0,0,0.04);--t84-shadow-lg:0 10px 15px -3px rgba(0,0,0,0.06),0 4px 6px -2px rgba(0,0,0,0.03);--t84-shadow-dropdown:0 4px 16px rgba(0,0,0,0.08),0 1px 3px rgba(0,0,0,0.04);/* Spacing - 8px scale */ --t84-space-1:4px;--t84-space-2:8px;--t84-space-3:12px;--t84-space-4:16px;--t84-space-5:20px;--t84-space-6:24px;--t84-space-8:32px;--t84-space-10:40px;--t84-space-12:48px;--t84-space-16:64px;/* Border Radius */ --t84-radius-sm:8px;--t84-radius-md:12px;--t84-radius-lg:16px;--t84-radius-xl:20px;--t84-radius-full:9999px;/* Typography */ --t84-font-sans:-apple-system,BlinkMacSystemFont,'SF Pro Display','SF Pro Text',system-ui,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;--t84-font-mono:'SF Mono',SFMono-Regular,ui-monospace,Menlo,Monaco,'Cascadia Mono','Segoe UI Mono','Roboto Mono',monospace;/* Font Sizes */ --t84-text-xs:12px;--t84-text-sm:13px;--t84-text-base:15px;--t84-text-md:16px;--t84-text-lg:18px;--t84-text-xl:20px;--t84-text-2xl:24px;--t84-text-3xl:30px;--t84-text-4xl:36px;/* Line Heights */ --t84-leading-tight:1.25;--t84-leading-snug:1.375;--t84-leading-normal:1.5;--t84-leading-relaxed:1.625;/* Transitions */ --t84-transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--t84-transition-base:200ms cubic-bezier(0.4,0,0.2,1);--t84-transition-slow:300ms cubic-bezier(0.4,0,0.2,1);/* Layout */ --t84-container-sm:640px;--t84-container-md:768px;--t84-container-lg:1024px;--t84-container-xl:1200px;--t84-container-2xl:1280px;/* Z-Index Scale */ --t84-z-dropdown:100;--t84-z-sticky:200;--t84-z-modal:300;--t84-z-toast:400;/* Safe Areas */ --t84-safe-top:env(safe-area-inset-top,0px);--t84-safe-bottom:env(safe-area-inset-bottom,0px);--t84-safe-left:env(safe-area-inset-left,0px);--t84-safe-right:env(safe-area-inset-right,0px)}/* ===================================================== BASE RESET & DEFAULTS ===================================================== */ .t84-ds *,.t84-ds *::before,.t84-ds *::after{box-sizing:border-box;margin:0;padding:0}.t84-ds{font-family:var(--t84-font-sans);font-size:var(--t84-text-base);line-height:var(--t84-leading-normal);color:var(--t84-text);background:var(--t84-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}/* ===================================================== LAYOUT - Container & Grid ===================================================== */ .t84-container{width:100%;max-width:var(--t84-container-xl);margin:0 auto;padding-left:calc(var(--t84-space-4) + var(--t84-safe-left));padding-right:calc(var(--t84-space-4) + var(--t84-safe-right))}.t84-container-sm{max-width:var(--t84-container-sm)}.t84-container-md{max-width:var(--t84-container-md)}.t84-container-lg{max-width:var(--t84-container-lg)}/* 12 Column Grid */ .t84-grid{display:grid;gap:var(--t84-space-4)}.t84-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.t84-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.t84-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.t84-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.t84-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.t84-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}@media (min-width:640px){.t84-sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.t84-sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.t84-md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.t84-md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.t84-md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.t84-lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.t84-lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}/* Flexbox Utilities */ .t84-flex{display:flex}.t84-flex-col{flex-direction:column}.t84-flex-wrap{flex-wrap:wrap}.t84-items-center{align-items:center}.t84-items-start{align-items:flex-start}.t84-items-end{align-items:flex-end}.t84-justify-center{justify-content:center}.t84-justify-between{justify-content:space-between}.t84-justify-end{justify-content:flex-end}.t84-gap-1{gap:var(--t84-space-1)}.t84-gap-2{gap:var(--t84-space-2)}.t84-gap-3{gap:var(--t84-space-3)}.t84-gap-4{gap:var(--t84-space-4)}.t84-gap-6{gap:var(--t84-space-6)}.t84-gap-8{gap:var(--t84-space-8)}/* ===================================================== TYPOGRAPHY ===================================================== */ .t84-h1{font-size:var(--t84-text-3xl);font-weight:700;line-height:var(--t84-leading-tight);color:var(--t84-text);letter-spacing:-0.02em}.t84-h2{font-size:var(--t84-text-2xl);font-weight:600;line-height:var(--t84-leading-tight);color:var(--t84-text);letter-spacing:-0.01em}.t84-h3{font-size:var(--t84-text-xl);font-weight:600;line-height:var(--t84-leading-snug);color:var(--t84-text)}.t84-h4{font-size:var(--t84-text-lg);font-weight:600;line-height:var(--t84-leading-snug);color:var(--t84-text)}.t84-body{font-size:var(--t84-text-base);font-weight:450;line-height:var(--t84-leading-relaxed);color:var(--t84-text)}.t84-body-sm{font-size:var(--t84-text-sm);font-weight:450;line-height:var(--t84-leading-normal);color:var(--t84-text-secondary)}.t84-caption{font-size:var(--t84-text-xs);font-weight:500;line-height:var(--t84-leading-normal);color:var(--t84-text-muted)}.t84-label{font-size:var(--t84-text-sm);font-weight:500;line-height:var(--t84-leading-normal);color:var(--t84-text)}/* ===================================================== HEADER - Sticky Navigation ===================================================== */ .t84-header{position:sticky;top:0;z-index:var(--t84-z-sticky);background:var(--t84-surface);border-bottom:1px solid var(--t84-border);padding-top:var(--t84-safe-top)}.t84-header-inner{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:var(--t84-container-xl);margin:0 auto;padding:0 var(--t84-space-4)}/* Header Logo */ .t84-header-logo{display:flex;align-items:center;gap:var(--t84-space-3);text-decoration:none;flex-shrink:0}.t84-header-logo img,.t84-header-logo svg{height:32px;width:auto}.t84-header-logo-text{font-size:var(--t84-text-lg);font-weight:600;color:var(--t84-text)}/* Header Search */ .t84-header-search{flex:1;max-width:480px;margin:0 var(--t84-space-6)}.t84-header-search-box{position:relative;display:flex;align-items:center}.t84-header-search-icon{position:absolute;left:var(--t84-space-4);width:18px;height:18px;color:var(--t84-text-muted);pointer-events:none}.t84-header-search-input{width:100%;height:40px;padding:0 var(--t84-space-4) 0 44px;background:var(--t84-bg);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);font-size:var(--t84-text-sm);color:var(--t84-text);transition:var(--t84-transition-base)}.t84-header-search-input::placeholder{color:var(--t84-text-muted)}.t84-header-search-input:hover{border-color:#D1D5DB}.t84-header-search-input:focus{outline:none;border-color:var(--t84-primary);box-shadow:0 0 0 3px var(--t84-primary-soft);background:var(--t84-surface)}/* Header Nav */ .t84-header-nav{display:flex;align-items:center;gap:var(--t84-space-1)}.t84-header-link{display:flex;align-items:center;gap:var(--t84-space-2);padding:var(--t84-space-2) var(--t84-space-3);font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);text-decoration:none;border-radius:var(--t84-radius-sm);transition:var(--t84-transition-fast)}.t84-header-link:hover{color:var(--t84-text);background:var(--t84-bg)}.t84-header-link.active{color:var(--t84-primary)}/* Header Actions */ .t84-header-actions{display:flex;align-items:center;gap:var(--t84-space-2);margin-left:var(--t84-space-4)}/* Header Dropdown */ .t84-dropdown{position:relative}.t84-dropdown-menu{position:absolute;top:calc(100% + var(--t84-space-2));right:0;min-width:200px;background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);box-shadow:var(--t84-shadow-dropdown);padding:var(--t84-space-2);opacity:0;visibility:hidden;transform:translateY(-8px);transition:var(--t84-transition-fast);z-index:var(--t84-z-dropdown)}.t84-dropdown.open .t84-dropdown-menu,.t84-dropdown:focus-within .t84-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.t84-dropdown-item{display:flex;align-items:center;gap:var(--t84-space-3);padding:var(--t84-space-2) var(--t84-space-3);font-size:var(--t84-text-sm);color:var(--t84-text-secondary);text-decoration:none;border-radius:var(--t84-radius-sm);transition:var(--t84-transition-fast)}.t84-dropdown-item:hover{background:var(--t84-bg);color:var(--t84-text)}.t84-dropdown-divider{height:1px;background:var(--t84-border);margin:var(--t84-space-2) 0}/* ===================================================== BUTTONS ===================================================== */ .t84-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--t84-space-2);padding:var(--t84-space-3) var(--t84-space-5);font-family:var(--t84-font-sans);font-size:var(--t84-text-sm);font-weight:500;line-height:1;text-decoration:none;border:none;border-radius:var(--t84-radius-md);cursor:pointer;transition:var(--t84-transition-base);white-space:nowrap}.t84-btn:focus{outline:none}.t84-btn:disabled{opacity:0.5;cursor:not-allowed}.t84-btn svg{width:18px;height:18px;flex-shrink:0}/* Primary Button */ .t84-btn-primary{background:var(--t84-primary);color:#FFFFFF}.t84-btn-primary:hover:not(:disabled){background:var(--t84-primary-hover)}.t84-btn-primary:focus{box-shadow:0 0 0 3px var(--t84-primary-soft)}/* Secondary Button */ .t84-btn-secondary{background:var(--t84-surface);color:var(--t84-text);border:1px solid var(--t84-border)}.t84-btn-secondary:hover:not(:disabled){background:var(--t84-bg);border-color:#D1D5DB}.t84-btn-secondary:focus{border-color:var(--t84-primary);box-shadow:0 0 0 3px var(--t84-primary-soft)}/* Tertiary Button (Link style) */ .t84-btn-tertiary{background:transparent;color:var(--t84-primary);padding:var(--t84-space-2) var(--t84-space-3)}.t84-btn-tertiary:hover:not(:disabled){background:var(--t84-primary-soft)}/* Soft Button */ .t84-btn-soft{background:var(--t84-primary-soft);color:var(--t84-primary)}.t84-btn-soft:hover:not(:disabled){background:var(--t84-primary-soft-hover)}/* Button Sizes */ .t84-btn-sm{padding:var(--t84-space-2) var(--t84-space-3);font-size:var(--t84-text-xs)}.t84-btn-sm svg{width:16px;height:16px}.t84-btn-lg{padding:var(--t84-space-4) var(--t84-space-6);font-size:var(--t84-text-base)}.t84-btn-lg svg{width:20px;height:20px}.t84-btn-block{width:100%}/* Icon Button */ .t84-btn-icon{padding:var(--t84-space-2);width:40px;height:40px}.t84-btn-icon.t84-btn-sm{width:32px;height:32px}.t84-btn-icon.t84-btn-lg{width:48px;height:48px}/* ===================================================== CARDS ===================================================== */ .t84-card{background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg);overflow:hidden}.t84-card-body{padding:var(--t84-space-6)}.t84-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--t84-space-4) var(--t84-space-6);border-bottom:1px solid var(--t84-border)}.t84-card-title{font-size:var(--t84-text-md);font-weight:600;color:var(--t84-text)}.t84-card-footer{padding:var(--t84-space-4) var(--t84-space-6);border-top:1px solid var(--t84-border);background:var(--t84-bg)}/* ===================================================== TOOL CARDS - Homepage Grid ===================================================== */ .t84-tool-card{display:flex;flex-direction:column;background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg);padding:var(--t84-space-5);text-decoration:none;transition:var(--t84-transition-base)}.t84-tool-card:hover{border-color:#D1D5DB;box-shadow:var(--t84-shadow-sm);transform:translateY(-2px)}.t84-tool-card-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--t84-primary-soft);border-radius:var(--t84-radius-md);margin-bottom:var(--t84-space-4)}.t84-tool-card-icon svg{width:22px;height:22px;color:var(--t84-primary)}.t84-tool-card-icon.gray{background:var(--t84-bg)}.t84-tool-card-icon.gray svg{color:var(--t84-text-muted)}.t84-tool-card-title{font-size:var(--t84-text-base);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-2);line-height:var(--t84-leading-snug)}.t84-tool-card-desc{font-size:var(--t84-text-sm);font-weight:450;color:var(--t84-text-secondary);line-height:var(--t84-leading-normal);margin-bottom:var(--t84-space-4);flex-grow:1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.t84-tool-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto}.t84-tool-card-badges{display:flex;gap:var(--t84-space-2)}.t84-tool-card-action{font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);display:flex;align-items:center;gap:var(--t84-space-1)}.t84-tool-card:hover .t84-tool-card-action{color:var(--t84-primary)}.t84-tool-card-action svg{width:16px;height:16px;transition:var(--t84-transition-fast)}.t84-tool-card:hover .t84-tool-card-action svg{transform:translateX(2px)}/* ===================================================== BADGES ===================================================== */ .t84-badge{display:inline-flex;align-items:center;gap:var(--t84-space-1);padding:3px var(--t84-space-2);font-size:11px;font-weight:600;line-height:1.4;border-radius:var(--t84-radius-sm);white-space:nowrap}.t84-badge-neutral{background:var(--t84-bg);color:var(--t84-text-secondary)}.t84-badge-primary{background:var(--t84-primary-soft);color:var(--t84-primary)}.t84-badge-success{background:var(--t84-success-bg);color:var(--t84-success)}.t84-badge-warning{background:var(--t84-warning-bg);color:var(--t84-warning)}.t84-badge-error{background:var(--t84-error-bg);color:var(--t84-error)}.t84-badge-new{background:#DBEAFE;color:#1D4ED8}.t84-badge-premium{background:var(--t84-primary-soft);color:var(--t84-primary)}/* ===================================================== FORM ELEMENTS ===================================================== */ .t84-form-group{margin-bottom:var(--t84-space-5)}.t84-form-label{display:block;font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text);margin-bottom:var(--t84-space-2)}.t84-form-label-required::after{content:' *';color:var(--t84-error)}.t84-form-helper{font-size:var(--t84-text-xs);color:var(--t84-text-muted);margin-top:var(--t84-space-1)}/* Input */ .t84-input{width:100%;padding:var(--t84-space-3) var(--t84-space-4);font-family:var(--t84-font-sans);font-size:var(--t84-text-base);font-weight:450;color:var(--t84-text);background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);transition:var(--t84-transition-base)}.t84-input::placeholder{color:var(--t84-text-light)}.t84-input:hover{border-color:#D1D5DB}.t84-input:focus{outline:none;border-color:var(--t84-primary);box-shadow:0 0 0 3px var(--t84-primary-soft)}.t84-input:disabled{background:var(--t84-bg);color:var(--t84-text-muted);cursor:not-allowed}/* Input Error State */ .t84-input-error{border-color:var(--t84-error)}.t84-input-error:focus{box-shadow:0 0 0 3px var(--t84-error-bg)}.t84-form-error{font-size:var(--t84-text-xs);color:var(--t84-error);margin-top:var(--t84-space-1);display:flex;align-items:center;gap:var(--t84-space-1)}.t84-form-error svg{width:14px;height:14px;flex-shrink:0}/* Textarea */ .t84-textarea{width:100%;min-height:120px;padding:var(--t84-space-3) var(--t84-space-4);font-family:var(--t84-font-sans);font-size:var(--t84-text-base);font-weight:450;color:var(--t84-text);background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);resize:vertical;transition:var(--t84-transition-base)}.t84-textarea:focus{outline:none;border-color:var(--t84-primary);box-shadow:0 0 0 3px var(--t84-primary-soft)}/* Select */ .t84-select{width:100%;padding:var(--t84-space-3) var(--t84-space-4);padding-right:40px;font-family:var(--t84-font-sans);font-size:var(--t84-text-base);font-weight:450;color:var(--t84-text);background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:var(--t84-transition-base)}.t84-select:focus{outline:none;border-color:var(--t84-primary);box-shadow:0 0 0 3px var(--t84-primary-soft)}/* Checkbox */ .t84-checkbox{display:flex;align-items:flex-start;gap:var(--t84-space-3);cursor:pointer}.t84-checkbox-input{width:18px;height:18px;margin-top:2px;accent-color:var(--t84-primary);cursor:pointer;flex-shrink:0}.t84-checkbox-label{font-size:var(--t84-text-sm);color:var(--t84-text);line-height:var(--t84-leading-normal)}/* Radio */ .t84-radio{display:flex;align-items:flex-start;gap:var(--t84-space-3);cursor:pointer}.t84-radio-input{width:18px;height:18px;margin-top:2px;accent-color:var(--t84-primary);cursor:pointer;flex-shrink:0}.t84-radio-label{font-size:var(--t84-text-sm);color:var(--t84-text)}/* Toggle Switch */ .t84-toggle{display:flex;align-items:center;gap:var(--t84-space-3);cursor:pointer}.t84-toggle-input{position:absolute;opacity:0;width:0;height:0}.t84-toggle-switch{position:relative;width:44px;height:24px;background:var(--t84-border);border-radius:var(--t84-radius-full);transition:var(--t84-transition-base)}.t84-toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--t84-surface);border-radius:50%;box-shadow:var(--t84-shadow-sm);transition:var(--t84-transition-base)}.t84-toggle-input:checked + .t84-toggle-switch{background:var(--t84-primary)}.t84-toggle-input:checked + .t84-toggle-switch::after{left:22px}.t84-toggle-label{font-size:var(--t84-text-sm);color:var(--t84-text)}/* ===================================================== FILE UPLOAD ===================================================== */ .t84-file-upload{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--t84-space-10) var(--t84-space-6);background:var(--t84-surface);border:2px dashed var(--t84-border);border-radius:var(--t84-radius-lg);cursor:pointer;transition:var(--t84-transition-base);text-align:center}.t84-file-upload:hover{border-color:var(--t84-primary);background:var(--t84-primary-soft)}.t84-file-upload.dragover{border-color:var(--t84-primary);background:var(--t84-primary-soft)}.t84-file-upload input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}.t84-file-upload-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--t84-primary-soft);border-radius:var(--t84-radius-lg);margin-bottom:var(--t84-space-4)}.t84-file-upload-icon svg{width:28px;height:28px;color:var(--t84-primary)}.t84-file-upload-text{font-size:var(--t84-text-base);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-1)}.t84-file-upload-hint{font-size:var(--t84-text-sm);color:var(--t84-text-muted)}/* ===================================================== ALERTS & TOASTS ===================================================== */ .t84-alert{display:flex;align-items:flex-start;gap:var(--t84-space-3);padding:var(--t84-space-4);border-radius:var(--t84-radius-md);font-size:var(--t84-text-sm);line-height:var(--t84-leading-normal)}.t84-alert-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0;margin-top:1px}.t84-alert-icon svg{width:16px;height:16px}.t84-alert-content{flex:1}.t84-alert-title{font-weight:600;margin-bottom:var(--t84-space-1)}.t84-alert-success{background:var(--t84-success-bg);color:var(--t84-success);border:1px solid var(--t84-success-border)}.t84-alert-warning{background:var(--t84-warning-bg);color:var(--t84-warning);border:1px solid var(--t84-warning-border)}.t84-alert-error{background:var(--t84-error-bg);color:var(--t84-error);border:1px solid var(--t84-error-border)}.t84-alert-info{background:var(--t84-info-bg);color:var(--t84-info);border:1px solid var(--t84-info-border)}/* Toast */ .t84-toast{position:fixed;bottom:calc(var(--t84-space-6) + var(--t84-safe-bottom));left:50%;transform:translateX(-50%) translateY(100px);padding:var(--t84-space-3) var(--t84-space-5);background:var(--t84-text);color:var(--t84-surface);font-size:var(--t84-text-sm);font-weight:500;border-radius:var(--t84-radius-md);box-shadow:var(--t84-shadow-lg);z-index:var(--t84-z-toast);opacity:0;visibility:hidden;transition:var(--t84-transition-slow)}.t84-toast.show{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}/* ===================================================== CHIPS & FILTERS ===================================================== */ .t84-chip{display:inline-flex;align-items:center;gap:var(--t84-space-2);padding:var(--t84-space-2) var(--t84-space-3);background:var(--t84-bg);border:1px solid var(--t84-border);border-radius:var(--t84-radius-full);font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);cursor:pointer;transition:var(--t84-transition-fast)}.t84-chip:hover{background:var(--t84-bg-alt);border-color:#D1D5DB}.t84-chip.active{background:var(--t84-primary-soft);border-color:var(--t84-primary-soft);color:var(--t84-primary)}.t84-chip-remove{display:flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:var(--t84-space-1);background:transparent;border:none;cursor:pointer;opacity:0.6}.t84-chip-remove:hover{opacity:1}/* Segmented Control */ .t84-segmented{display:inline-flex;padding:3px;background:var(--t84-bg);border-radius:var(--t84-radius-md)}.t84-segmented-btn{padding:var(--t84-space-2) var(--t84-space-4);background:transparent;border:none;border-radius:var(--t84-radius-sm);font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);cursor:pointer;transition:var(--t84-transition-fast)}.t84-segmented-btn:hover{color:var(--t84-text)}.t84-segmented-btn.active{background:var(--t84-surface);color:var(--t84-primary);box-shadow:var(--t84-shadow-sm)}/* ===================================================== SIDEBAR ===================================================== */ .t84-sidebar{width:260px;background:var(--t84-surface);border-right:1px solid var(--t84-border);height:100%;overflow-y:auto}.t84-sidebar-nav{padding:var(--t84-space-4)}.t84-sidebar-section{margin-bottom:var(--t84-space-6)}.t84-sidebar-section-title{font-size:var(--t84-text-xs);font-weight:600;color:var(--t84-text-muted);text-transform:uppercase;letter-spacing:0.05em;padding:0 var(--t84-space-3);margin-bottom:var(--t84-space-2)}.t84-sidebar-item{display:flex;align-items:center;gap:var(--t84-space-3);padding:var(--t84-space-2) var(--t84-space-3);font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);text-decoration:none;border-radius:var(--t84-radius-sm);transition:var(--t84-transition-fast)}.t84-sidebar-item:hover{background:var(--t84-bg);color:var(--t84-text)}.t84-sidebar-item.active{background:var(--t84-primary-soft);color:var(--t84-primary)}.t84-sidebar-item svg{width:18px;height:18px;flex-shrink:0}/* ===================================================== TABLES ===================================================== */ .t84-table-wrapper{overflow-x:auto;border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg)}.t84-table{width:100%;border-collapse:collapse}.t84-table th{padding:var(--t84-space-3) var(--t84-space-4);text-align:left;font-size:var(--t84-text-xs);font-weight:600;color:var(--t84-text);text-transform:uppercase;letter-spacing:0.05em;background:var(--t84-bg);border-bottom:1px solid var(--t84-border)}.t84-table td{padding:var(--t84-space-4);font-size:var(--t84-text-sm);color:var(--t84-text);border-bottom:1px solid var(--t84-border);vertical-align:middle}.t84-table tbody tr:last-child td{border-bottom:none}.t84-table tbody tr:hover{background:var(--t84-bg)}/* ===================================================== FOOTER ===================================================== */ .t84-footer{background:var(--t84-surface);border-top:1px solid var(--t84-border);padding-top:var(--t84-space-12);padding-bottom:calc(var(--t84-space-8) + var(--t84-safe-bottom))}.t84-footer-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--t84-space-8);margin-bottom:var(--t84-space-10)}.t84-footer-title{font-size:var(--t84-text-sm);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-4)}.t84-footer-links{list-style:none;padding:0;margin:0}.t84-footer-link{display:block;padding:var(--t84-space-1) 0;font-size:var(--t84-text-sm);color:var(--t84-text-secondary);text-decoration:none;transition:var(--t84-transition-fast)}.t84-footer-link:hover{color:var(--t84-text)}.t84-footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:var(--t84-space-6);border-top:1px solid var(--t84-border)}.t84-footer-copyright{font-size:var(--t84-text-sm);color:var(--t84-text-muted)}.t84-footer-social{display:flex;gap:var(--t84-space-3)}.t84-footer-social a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--t84-text-muted);border-radius:var(--t84-radius-sm);transition:var(--t84-transition-fast)}.t84-footer-social a:hover{background:var(--t84-bg);color:var(--t84-text)}.t84-footer-social svg{width:18px;height:18px}/* ===================================================== AUTH PAGES - Login/Register/Forgot ===================================================== */ .t84-auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--t84-space-6);background:var(--t84-bg)}.t84-auth-card{width:100%;max-width:400px;background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-xl);padding:var(--t84-space-10)}.t84-auth-header{text-align:center;margin-bottom:var(--t84-space-8)}.t84-auth-logo{display:inline-block;margin-bottom:var(--t84-space-4)}.t84-auth-logo img,.t84-auth-logo svg{height:40px;width:auto}.t84-auth-title{font-size:var(--t84-text-2xl);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-2)}.t84-auth-subtitle{font-size:var(--t84-text-sm);color:var(--t84-text-secondary)}.t84-auth-form{margin-bottom:var(--t84-space-6)}.t84-auth-footer{text-align:center;padding-top:var(--t84-space-5);border-top:1px solid var(--t84-border)}.t84-auth-footer-text{font-size:var(--t84-text-sm);color:var(--t84-text-secondary)}.t84-auth-footer-text a{color:var(--t84-primary);font-weight:500;text-decoration:none}.t84-auth-footer-text a:hover{text-decoration:underline}.t84-auth-divider{display:flex;align-items:center;gap:var(--t84-space-4);margin:var(--t84-space-6) 0}.t84-auth-divider::before,.t84-auth-divider::after{content:'';flex:1;height:1px;background:var(--t84-border)}.t84-auth-divider span{font-size:var(--t84-text-sm);color:var(--t84-text-muted)}.t84-auth-social{display:flex;gap:var(--t84-space-3)}.t84-auth-social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--t84-space-2);padding:var(--t84-space-3);background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-md);font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text);cursor:pointer;transition:var(--t84-transition-fast)}.t84-auth-social-btn:hover{background:var(--t84-bg)}.t84-auth-social-btn svg{width:18px;height:18px}.t84-auth-trust{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--t84-space-4);margin-top:var(--t84-space-6);font-size:var(--t84-text-xs);color:var(--t84-text-muted)}.t84-auth-trust-item{display:flex;align-items:center;gap:var(--t84-space-1)}.t84-auth-trust-item svg{width:14px;height:14px}/* ===================================================== PRICING / MEMBERSHIP ===================================================== */ .t84-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--t84-space-6);max-width:1000px;margin:0 auto}.t84-pricing-card{background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-xl);padding:var(--t84-space-8);text-align:center;position:relative}.t84-pricing-card.featured{border-color:var(--t84-primary);background:linear-gradient(to bottom,var(--t84-primary-soft),var(--t84-surface) 50px)}.t84-pricing-card.featured::before{content:'Popüler';position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:var(--t84-primary);color:white;font-size:var(--t84-text-xs);font-weight:600;padding:var(--t84-space-1) var(--t84-space-3);border-radius:var(--t84-radius-full)}.t84-pricing-name{font-size:var(--t84-text-lg);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-2)}.t84-pricing-desc{font-size:var(--t84-text-sm);color:var(--t84-text-secondary);margin-bottom:var(--t84-space-6)}.t84-pricing-price{margin-bottom:var(--t84-space-6)}.t84-pricing-amount{font-size:var(--t84-text-4xl);font-weight:700;color:var(--t84-text)}.t84-pricing-currency{font-size:var(--t84-text-lg);font-weight:600;vertical-align:top;margin-right:2px}.t84-pricing-period{font-size:var(--t84-text-sm);color:var(--t84-text-muted);margin-left:var(--t84-space-1)}.t84-pricing-features{list-style:none;padding:0;margin:0 0 var(--t84-space-8);text-align:left}.t84-pricing-feature{display:flex;align-items:flex-start;gap:var(--t84-space-3);padding:var(--t84-space-2) 0;font-size:var(--t84-text-sm);color:var(--t84-text-secondary)}.t84-pricing-feature svg{width:18px;height:18px;color:var(--t84-success);flex-shrink:0;margin-top:1px}.t84-pricing-card.featured .t84-btn-primary{width:100%}.t84-pricing-card:not(.featured) .t84-btn{width:100%}/* ===================================================== DASHBOARD / PANEL ===================================================== */ .t84-dashboard{display:flex;min-height:100vh}.t84-dashboard-sidebar{width:240px;background:var(--t84-surface);border-right:1px solid var(--t84-border);padding:var(--t84-space-4);position:fixed;top:0;left:0;height:100vh;overflow-y:auto}.t84-dashboard-main{flex:1;margin-left:240px;background:var(--t84-bg)}.t84-dashboard-topbar{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 var(--t84-space-6);background:var(--t84-surface);border-bottom:1px solid var(--t84-border);position:sticky;top:0;z-index:var(--t84-z-sticky)}.t84-dashboard-topbar-title{font-size:var(--t84-text-lg);font-weight:600;color:var(--t84-text)}.t84-dashboard-content{padding:var(--t84-space-6)}/* Stats Cards */ .t84-stat-card{background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg);padding:var(--t84-space-5)}.t84-stat-label{font-size:var(--t84-text-sm);font-weight:500;color:var(--t84-text-secondary);margin-bottom:var(--t84-space-1)}.t84-stat-value{font-size:var(--t84-text-2xl);font-weight:700;color:var(--t84-text)}.t84-stat-change{display:inline-flex;align-items:center;gap:var(--t84-space-1);font-size:var(--t84-text-xs);font-weight:600;margin-top:var(--t84-space-2)}.t84-stat-change.positive{color:var(--t84-success)}.t84-stat-change.negative{color:var(--t84-error)}/* ===================================================== TOOL DETAIL PAGE ===================================================== */ .t84-tool-page{padding:var(--t84-space-6) 0}.t84-tool-breadcrumb{display:flex;align-items:center;gap:var(--t84-space-2);font-size:var(--t84-text-sm);color:var(--t84-text-muted);margin-bottom:var(--t84-space-4)}.t84-tool-breadcrumb a{color:var(--t84-text-secondary);text-decoration:none}.t84-tool-breadcrumb a:hover{color:var(--t84-primary)}.t84-tool-breadcrumb span{color:var(--t84-text)}.t84-tool-header{margin-bottom:var(--t84-space-8)}.t84-tool-title{font-size:var(--t84-text-2xl);font-weight:700;color:var(--t84-text);margin-bottom:var(--t84-space-2)}.t84-tool-subtitle{font-size:var(--t84-text-base);color:var(--t84-text-secondary);max-width:600px}.t84-tool-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--t84-space-6)}.t84-tool-input-panel,.t84-tool-output-panel{background:var(--t84-surface);border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg)}.t84-tool-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--t84-space-4) var(--t84-space-5);border-bottom:1px solid var(--t84-border)}.t84-tool-panel-title{font-size:var(--t84-text-md);font-weight:600;color:var(--t84-text)}.t84-tool-panel-body{padding:var(--t84-space-6)}.t84-tool-actions{display:flex;gap:var(--t84-space-3);padding:var(--t84-space-4) var(--t84-space-5);border-top:1px solid var(--t84-border);background:var(--t84-bg);border-radius:0 0 var(--t84-radius-lg) var(--t84-radius-lg)}/* Result Actions */ .t84-result-actions{display:flex;gap:var(--t84-space-2)}/* ===================================================== PROGRESS & LOADING ===================================================== */ .t84-progress{height:6px;background:var(--t84-bg);border-radius:var(--t84-radius-full);overflow:hidden}.t84-progress-bar{height:100%;background:var(--t84-primary);border-radius:var(--t84-radius-full);transition:width 0.3s ease}.t84-spinner{width:24px;height:24px;border:2px solid var(--t84-border);border-top-color:var(--t84-primary);border-radius:50%;animation:t84-spin 0.8s linear infinite}@keyframes t84-spin{to{transform:rotate(360deg)}}.t84-skeleton{background:linear-gradient(90deg,var(--t84-bg) 25%,var(--t84-border-light) 50%,var(--t84-bg) 75%);background-size:200% 100%;animation:t84-skeleton 1.5s ease-in-out infinite;border-radius:var(--t84-radius-sm)}@keyframes t84-skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}/* ===================================================== MODALS ===================================================== */ .t84-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;padding:var(--t84-space-4);z-index:var(--t84-z-modal);opacity:0;visibility:hidden;transition:var(--t84-transition-base)}.t84-modal-overlay.open{opacity:1;visibility:visible}.t84-modal{width:100%;max-width:500px;max-height:90vh;background:var(--t84-surface);border-radius:var(--t84-radius-xl);overflow:hidden;transform:scale(0.95) translateY(10px);transition:var(--t84-transition-base)}.t84-modal-overlay.open .t84-modal{transform:scale(1) translateY(0)}.t84-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--t84-space-5) var(--t84-space-6);border-bottom:1px solid var(--t84-border)}.t84-modal-title{font-size:var(--t84-text-lg);font-weight:600;color:var(--t84-text)}.t84-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--t84-radius-sm);color:var(--t84-text-muted);cursor:pointer;transition:var(--t84-transition-fast)}.t84-modal-close:hover{background:var(--t84-bg);color:var(--t84-text)}.t84-modal-body{padding:var(--t84-space-6);overflow-y:auto}.t84-modal-footer{display:flex;justify-content:flex-end;gap:var(--t84-space-3);padding:var(--t84-space-4) var(--t84-space-6);border-top:1px solid var(--t84-border);background:var(--t84-bg)}/* ===================================================== EMPTY STATES ===================================================== */ .t84-empty-state{text-align:center;padding:var(--t84-space-16) var(--t84-space-6)}.t84-empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--t84-bg);border-radius:var(--t84-radius-lg);margin:0 auto var(--t84-space-5)}.t84-empty-icon svg{width:32px;height:32px;color:var(--t84-text-muted)}.t84-empty-title{font-size:var(--t84-text-lg);font-weight:600;color:var(--t84-text);margin-bottom:var(--t84-space-2)}.t84-empty-desc{font-size:var(--t84-text-sm);color:var(--t84-text-secondary);max-width:400px;margin:0 auto var(--t84-space-6)}/* ===================================================== HERO SECTION ===================================================== */ .t84-hero{text-align:center;padding:var(--t84-space-16) var(--t84-space-4);background:var(--t84-surface);border-bottom:1px solid var(--t84-border)}.t84-hero-title{font-size:var(--t84-text-4xl);font-weight:700;color:var(--t84-text);margin-bottom:var(--t84-space-4);letter-spacing:-0.02em}.t84-hero-subtitle{font-size:var(--t84-text-lg);color:var(--t84-text-secondary);max-width:600px;margin:0 auto var(--t84-space-8)}.t84-hero-search{max-width:560px;margin:0 auto var(--t84-space-6)}.t84-hero-search-box{position:relative;display:flex;align-items:center}.t84-hero-search-icon{position:absolute;left:var(--t84-space-5);width:22px;height:22px;color:var(--t84-text-muted);pointer-events:none}.t84-hero-search-input{width:100%;height:56px;padding:0 var(--t84-space-5) 0 56px;font-size:var(--t84-text-md);background:var(--t84-bg);border:1px solid var(--t84-border);border-radius:var(--t84-radius-lg);transition:var(--t84-transition-base)}.t84-hero-search-input:focus{outline:none;border-color:var(--t84-primary);box-shadow:0 0 0 4px var(--t84-primary-soft);background:var(--t84-surface)}.t84-hero-cta{margin-top:var(--t84-space-8)}/* ===================================================== RESPONSIVE - Mobile First ===================================================== */ @media (max-width:1023px){.t84-footer-grid{grid-template-columns:repeat(2,1fr)}.t84-pricing-grid{grid-template-columns:1fr;max-width:400px}.t84-tool-layout{grid-template-columns:1fr}.t84-dashboard-sidebar{display:none}.t84-dashboard-main{margin-left:0}}@media (max-width:767px){:root{--t84-text-3xl:26px;--t84-text-4xl:32px}.t84-container{padding-left:calc(var(--t84-space-4) + var(--t84-safe-left));padding-right:calc(var(--t84-space-4) + var(--t84-safe-right))}.t84-header-inner{height:56px}.t84-header-search{display:none}.t84-header-nav{display:none}.t84-footer-grid{grid-template-columns:1fr;gap:var(--t84-space-6)}.t84-footer-bottom{flex-direction:column;gap:var(--t84-space-4);text-align:center}.t84-auth-card{padding:var(--t84-space-6)}.t84-hero{padding:var(--t84-space-10) var(--t84-space-4)}.t84-hero-search-input{height:50px;font-size:16px;/* iOS zoom prevention */}.t84-card-body{padding:var(--t84-space-4)}.t84-tool-panel-body{padding:var(--t84-space-4)}}@media (max-width:479px){.t84-btn{padding:var(--t84-space-3) var(--t84-space-4)}.t84-auth-social{flex-direction:column}.t84-result-actions{flex-direction:column}.t84-result-actions .t84-btn{width:100%}}/* ===================================================== DARK MODE SUPPORT (Optional - For Future) ===================================================== */ @media (prefers-color-scheme:dark){.t84-ds.auto-theme{--t84-bg:#0F0F0F;--t84-bg-alt:#1A1A1A;--t84-surface:#1F1F1F;--t84-surface-hover:#2A2A2A;--t84-border:#2D2D2D;--t84-border-light:#252525;--t84-text:#F9FAFB;--t84-text-secondary:#A1A1AA;--t84-text-muted:#71717A;--t84-text-light:#52525B;--t84-primary-soft:rgba(76,29,149,0.2)}}/* ===================================================== UTILITY CLASSES ===================================================== */ /* Spacing */ .t84-mt-0{margin-top:0}.t84-mt-2{margin-top:var(--t84-space-2)}.t84-mt-4{margin-top:var(--t84-space-4)}.t84-mt-6{margin-top:var(--t84-space-6)}.t84-mt-8{margin-top:var(--t84-space-8)}.t84-mb-0{margin-bottom:0}.t84-mb-2{margin-bottom:var(--t84-space-2)}.t84-mb-4{margin-bottom:var(--t84-space-4)}.t84-mb-6{margin-bottom:var(--t84-space-6)}.t84-mb-8{margin-bottom:var(--t84-space-8)}.t84-p-4{padding:var(--t84-space-4)}.t84-p-6{padding:var(--t84-space-6)}.t84-p-8{padding:var(--t84-space-8)}/* Text alignment */ .t84-text-left{text-align:left}.t84-text-center{text-align:center}.t84-text-right{text-align:right}/* Display */ .t84-hidden{display:none}.t84-block{display:block}.t84-inline-block{display:inline-block}/* Width */ .t84-w-full{width:100%}/* Overflow */ .t84-overflow-hidden{overflow:hidden}.t84-overflow-auto{overflow:auto}/* Position */ .t84-relative{position:relative}.t84-absolute{position:absolute}/* Animation */ .t84-fade-in{animation:t84-fade-in 0.3s ease}@keyframes t84-fade-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.t84-slide-up{animation:t84-slide-up 0.3s ease}@keyframes t84-slide-up{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}