:root{--color-primary:#ca0d23;--color-primary-hover:#a80a1c;--color-text:#3f3f3f;--color-background:#fff;--color-surface:#fafafa;--color-border:#e2e2e2;--color-success:#1f9d55;--color-success-bg:#eaf7ef;--color-error:#c2410c;--color-error-bg:#fdf1ea;--page-max-width:1280px;--card-shadow:0 1px 2px #1414140a, 0 2px 8px #1414140d}*{box-sizing:border-box}html,body,#root{height:100%}body{color:var(--color-text);background:var(--color-surface);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}h1{color:var(--color-text);margin:0 0 1.5rem;font-size:1.5rem}.page-center{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.card{background:var(--color-background);border:1px solid var(--color-border);width:100%;max-width:380px;box-shadow:var(--card-shadow);border-radius:8px;padding:2rem}.auth-page-content{flex-direction:column;align-items:center;width:100%;max-width:380px;display:flex}.auth-logo{object-fit:contain;width:100%;max-width:220px;height:auto;margin-bottom:1.5rem;display:block}form{flex-direction:column;gap:.25rem;display:flex}label{margin-top:.75rem;font-size:.875rem;font-weight:600}input{border:1px solid var(--color-border);color:var(--color-text);border-radius:4px;padding:.5rem .625rem;font-family:inherit;font-size:1rem}input:focus{outline:2px solid var(--color-primary);outline-offset:1px}button{color:#fff;background:var(--color-primary);cursor:pointer;border:none;border-radius:4px;margin-top:1.5rem;padding:.625rem 1rem;font-size:1rem;font-weight:600}button:hover:not(:disabled){background:var(--color-primary-hover)}button:disabled{opacity:.6;cursor:not-allowed}button.secondary{color:var(--color-primary);border:1px solid var(--color-primary);background:0 0}button.secondary:hover:not(:disabled){background:var(--color-surface)}button.danger{background:var(--color-error)}button.danger:hover:not(:disabled){background:#9a350a}button.neutral{color:#55565c;background:0 0;border:1px solid #c6c7cb}button.neutral:hover:not(:disabled){background:var(--color-surface);color:var(--color-text);border-color:#a9aab0}.alert{border-radius:4px;margin:.75rem 0 0;padding:.5rem .75rem;font-size:.875rem}.alert-error{color:var(--color-error);background:var(--color-error-bg)}.alert-success{color:var(--color-success);background:var(--color-success-bg)}.alert-info{color:#1d4ed8;background:#eaf1fd}.text-error{color:var(--color-error);font-weight:600}.form-footer{margin-top:1rem;font-size:.875rem}.form-footer a{color:var(--color-primary)}.role-badge{color:var(--color-primary);background:#fbeaec;border-radius:999px;margin-bottom:1.5rem;padding:.25rem .625rem;font-size:.8rem;font-weight:600;display:inline-block}.admin-page{max-width:var(--page-max-width);margin:0 auto;padding:2rem 1.5rem 3rem}.admin-card{max-width:none;margin-bottom:1.5rem}.admin-card h2{margin:0 0 .5rem;font-size:1.1rem}textarea{border:1px solid var(--color-border);color:var(--color-text);resize:vertical;border-radius:4px;padding:.5rem .625rem;font-family:inherit;font-size:1rem}select{border:1px solid var(--color-border);color:var(--color-text);background:var(--color-background);border-radius:4px;padding:.5rem .625rem;font-family:inherit;font-size:1rem}select:focus{outline:2px solid var(--color-primary);outline-offset:1px}fieldset{border:none;margin:.75rem 0 0;padding:0}fieldset legend{padding:0;font-size:.875rem;font-weight:600}.checkbox-list{border:1px solid var(--color-border);border-radius:4px;flex-direction:column;gap:.375rem;max-height:220px;margin-top:.5rem;padding:.75rem;display:flex;overflow-y:auto}.checkbox-row{align-items:center;gap:.5rem;margin-top:0;font-size:.9rem;font-weight:400;display:flex}.checkbox-row input{width:auto}.table-scroll{width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.9rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.625rem .75rem}.title-cell{white-space:nowrap;text-overflow:ellipsis;max-width:280px;overflow:hidden}@media (width<=640px){.responsive-table thead{display:none}.responsive-table,.responsive-table tbody,.responsive-table tr,.responsive-table td{width:100%;display:block}.responsive-table tr{border:1px solid var(--color-border);border-radius:8px;margin-bottom:1rem;padding:.875rem 1rem;box-shadow:0 1px 3px #0000000f}.responsive-table tr:last-child{margin-bottom:0}.responsive-table td{border-bottom:none;padding:.3rem 0}.responsive-table tr td:first-child{white-space:normal;overflow-wrap:break-word;word-break:break-word;border-bottom:1px solid var(--color-border);max-width:none;margin-bottom:.375rem;padding-bottom:.5rem;font-size:1.05rem;font-weight:700;overflow:visible}.responsive-table td[data-label]{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.responsive-table td[data-label]:before{content:attr(data-label) ":";opacity:.65;flex-shrink:0;font-size:.8rem;font-weight:600}.responsive-table td.actions-cell{display:block}.responsive-table td.actions-cell:before{content:attr(data-label) ":";opacity:.65;margin-bottom:.375rem;font-size:.8rem;font-weight:600;display:block}}button.sortable-header{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:.3rem;margin:0;padding:0;font-weight:600;display:inline-flex}button.sortable-header:hover{color:var(--color-primary);background:0 0}.sort-indicator{font-size:.7rem}.status-badge{border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.status-open,.status-active{color:var(--color-success);background:var(--color-success-bg)}.status-ended,.status-cancelled,.status-draft,.status-inactive{color:#52525b;background:#e4e4e7}.status-pending{color:#92610a;background:#fdf3d9}.status-scheduled{color:#1d4ed8;background:#eaf1fd}.bid-row-highlight td:first-child{border-left:3px solid var(--color-success);padding-left:calc(.5rem - 3px);font-weight:600}.result-won{color:var(--color-success);font-weight:600}.token-box{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;margin-top:1rem;padding:.75rem}.token-box p{margin:0 0 .5rem;font-size:.875rem}.token-value{word-break:break-all;background:var(--color-background);border:1px solid var(--color-border);border-radius:4px;width:100%;margin-bottom:.5rem;padding:.5rem .625rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;display:block}.token-box button{margin-top:0}.card-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.card-header h2{margin:0}.icon-button{border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;margin-top:0;padding:0;font-size:1.5rem;line-height:1;display:inline-flex}.modal-backdrop{z-index:100;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--color-background);border-radius:8px;width:100%;max-width:520px;max-height:calc(100vh - 2rem);padding:1.75rem;overflow-y:auto;box-shadow:0 12px 32px #00000040}.modal-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.modal-header h2{margin:0}.modal-dialog button.modal-close{color:var(--color-text);cursor:pointer;background:0 0;border:none;margin-top:0;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.modal-dialog button.modal-close:hover{color:var(--color-primary);background:0 0}.modal-actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.modal-actions button{margin-top:0}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-background);border-bottom:1px solid var(--color-border);z-index:10;position:sticky;top:0}.app-header-inner{max-width:var(--page-max-width);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:0 auto;padding:.875rem 1.5rem;display:flex}.app-logo{object-fit:contain;width:auto;max-height:40px;display:block}.app-header-user{flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.875rem;display:flex}.app-header-email{color:var(--color-text)}.app-header-user .role-badge{margin-bottom:0}button.small{white-space:nowrap;margin-top:0;padding:.375rem .75rem;font-size:.8rem}button.table-action{text-align:center;min-width:8.5rem}.table-actions{flex-wrap:wrap;gap:.5rem;display:flex}.list-toolbar{margin-bottom:.75rem}.list-toolbar .search-input{width:100%;max-width:320px}.pagination{justify-content:center;align-items:center;gap:1rem;margin-top:1rem;display:flex}.pagination-status{color:var(--color-text);opacity:.75;font-size:.85rem}.app-nav{border-top:1px solid var(--color-border);overflow-x:auto}.app-nav-inner{max-width:var(--page-max-width);gap:1.5rem;margin:0 auto;padding:0 1.5rem;display:flex}.app-nav-link{color:var(--color-text);white-space:nowrap;border-bottom:2px solid #0000;padding:.75rem .125rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.app-nav-link:hover{color:var(--color-primary)}.app-nav-link.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.app-main{flex:1;width:100%}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:1.5rem;display:grid}.dashboard-card{flex-direction:column;display:flex}.dashboard-card h2{margin:0;font-size:1.1rem}.dashboard-card-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.dashboard-card-icon{width:2.5rem;height:2.5rem;color:var(--color-primary);background:#fbeaec;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dashboard-card-icon svg{width:1.25rem;height:1.25rem}.dashboard-highlight{color:var(--color-primary);margin:0 0 .25rem;font-size:1.75rem;font-weight:700}.stat-list{margin:.75rem 0 0}.stat-list div{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:.375rem 0;font-size:.9rem;display:flex}.stat-list dt{color:var(--color-text);opacity:.75}.stat-list dd{margin:0;font-weight:600}.open-auction-list{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.open-auction-item{border-bottom:1px solid var(--color-border);border-radius:6px;justify-content:space-between;align-items:center;gap:1rem;padding:.625rem .5rem;transition:background-color .15s;display:flex}.open-auction-item:hover{background:var(--color-surface)}.open-auction-item:last-child{border-bottom:none}.open-auction-info{min-width:0}.open-auction-title{overflow-wrap:break-word;word-break:break-word;margin:0;font-weight:600}.open-auction-meta{opacity:.75;margin:.125rem 0 0;font-size:.85rem}.button-link{color:#fff;background:var(--color-primary);text-align:center;border-radius:4px;margin-top:1rem;padding:.625rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-block}.button-link:hover{background:var(--color-primary-hover)}.button-link.secondary{color:var(--color-primary);border:1px solid var(--color-primary);background:0 0}.button-link.secondary:hover{background:var(--color-surface)}.button-link.small{white-space:nowrap;flex-shrink:0;margin-top:0;padding:.4rem .75rem;font-size:.85rem}@media (width<=480px){.app-header-inner{text-align:center;justify-content:center}.app-nav-inner{justify-content:center}}@media (width<=640px){.admin-page{padding:1.25rem 1rem 2rem}.card{padding:1.5rem}.modal-dialog,.auction-hero{padding:1.25rem}.auction-tabs{padding:1.25rem 1.25rem 1.5rem}}.auction-hero{background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:minmax(220px,380px) 1fr;gap:2rem;margin-bottom:1.5rem;padding:2rem;display:grid}.auction-hero-image img,.auction-hero-image-placeholder{aspect-ratio:4/3;border:1px solid var(--color-border);border-radius:8px;width:100%}.auction-hero-image img{object-fit:cover;display:block}.auction-hero-image-placeholder{background:var(--color-surface);color:var(--color-text);opacity:.45;justify-content:center;align-items:center;font-size:.875rem;display:flex}.auction-hero-info h1{overflow-wrap:break-word;word-break:break-word;margin:.75rem 0 .25rem}.auction-admin-actions{gap:.75rem;margin-top:.75rem;display:flex}.auction-admin-actions button{margin-top:0;padding:.5rem .875rem;font-size:.85rem}.starting-price-pending{color:var(--color-text);opacity:.75;margin:0 0 .25rem;font-size:1rem;font-weight:600}.back-link-top{margin-top:0;margin-bottom:1rem}.bullet-list{margin:.75rem 0;padding-left:1.25rem;font-size:.95rem}.bullet-list li{margin-bottom:.25rem}.document-list{margin:1rem 0}.document-list h3{text-transform:uppercase;letter-spacing:.03em;opacity:.7;margin:0 0 .375rem;font-size:.8rem;font-weight:600}.document-list ul{flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.document-list a{color:var(--color-primary);font-size:.9rem;text-decoration:none}.document-list a:hover{text-decoration:underline}.bid-form{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}.auction-tabs{background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem 2rem 2rem}.tab-buttons{border-bottom:1px solid var(--color-border);gap:1.5rem;margin-bottom:1.25rem;display:flex}.auction-tabs button.tab-button{color:var(--color-text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-top:0;padding:.75rem .125rem;font-size:.95rem;font-weight:600}.auction-tabs button.tab-button:hover:not(:disabled){color:var(--color-primary);background:0 0}.auction-tabs button.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.full-description{white-space:pre-wrap;font-size:.95rem;line-height:1.5}@media (width<=720px){.auction-hero{grid-template-columns:1fr}.auction-hero-image img,.auction-hero-image-placeholder{aspect-ratio:16/9}}
