*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#1a1a2e;color:#eee;min-height:100vh}#app{max-width:1400px;margin:0 auto;padding:20px}nav{display:flex;gap:20px;padding:15px 0;border-bottom:1px solid #333;margin-bottom:20px}nav a{color:#88f;text-decoration:none;font-weight:500}nav a:hover{text-decoration:underline}nav a.active{color:#fff;border-bottom:2px solid #88f;padding-bottom:2px}h1{font-size:1.8rem;margin-bottom:20px}h2{font-size:1.4rem;margin-bottom:15px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:30px}.stat-card{background:#16213e;padding:20px;border-radius:8px;text-align:center}.stat-card .number{font-size:3rem;font-weight:700;color:#00d9ff}.stat-card .label{color:#888;margin-top:5px}.upload-area{border:2px dashed #444;border-radius:8px;padding:40px;text-align:center;cursor:pointer;transition:border-color .2s;margin-bottom:30px}.upload-area:hover{border-color:#88f}.upload-area input{display:none}.upload-hint{color:#666;font-size:.85rem;margin-top:10px}.btn{display:inline-block;padding:10px 20px;background:#4a5568;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:1rem;text-decoration:none}.btn:hover{background:#5a6578}.btn-primary{background:#3182ce}.btn-primary:hover{background:#4192de}.btn-success{background:#38a169}.btn-success:hover{background:#48b179}.btn-danger{background:#e53e3e}.btn-danger:hover{background:#f54e4e}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.photo-card{background:#16213e;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s}.photo-card:hover{transform:translateY(-3px)}.photo-card .thumbnail{height:150px;display:flex;align-items:center;justify-content:center;background:#0d1525}.photo-card .thumbnail img{max-width:100%;max-height:100%;object-fit:contain}.photo-card .info{padding:10px}.photo-card .filename{font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card .date{font-size:.8rem;color:#888}.photo-card .badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.75rem;margin-top:5px}.badges{display:flex;gap:5px}.badge-edited{background:#38a169}.badge-starred{background:#f59e0b}.photo-detail{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}.photo-detail .main-image-area{display:flex;flex-direction:column}.photo-detail .main-image{background:#16213e;border-radius:8px;padding:20px}.photo-detail .main-image img{max-width:100%;height:auto;display:block;margin:0 auto}.photo-detail .sidebar{display:flex;flex-direction:column;gap:15px}.panel{background:#16213e;border-radius:8px;padding:15px}.panel h3{font-size:1rem;margin-bottom:10px;color:#aaa}textarea{width:100%;min-height:100px;background:#1a1a2e;border:1px solid #333;border-radius:5px;color:#eee;padding:10px;resize:vertical}input[type=text],input[type=number]{width:100%;background:#1a1a2e;border:1px solid #333;border-radius:5px;color:#eee;padding:8px 10px}.editor-top-bar{display:flex;align-items:center;gap:20px;margin-bottom:15px}.editor-top-bar h2{flex:1;margin:0}.editor-top-bar .back-link{margin-bottom:0}.editor-top-actions{display:flex;gap:10px}.editor-container{display:grid;grid-template-columns:1fr 350px;gap:20px;height:calc(100vh - 160px)}.editor-canvas-area{background:#16213e;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.editor-canvas-area canvas{max-width:100%;max-height:100%}.editor-sidebar{display:flex;flex-direction:column;gap:15px;overflow-y:auto}.overhead-preview{position:relative;border:1px solid #333;border-radius:5px;overflow:hidden;cursor:crosshair}.overhead-preview img{width:100%;display:block}.marker{position:absolute;width:60px;height:60px;transform:translate(-50%,-50%);pointer-events:none}.marker svg{width:100%;height:100%;fill:#0f0}.text-overlay-list{display:flex;flex-direction:column;gap:10px}.text-overlay-item{background:#1a1a2e;padding:10px;border-radius:5px}.text-overlay-item input{margin-bottom:5px}.color-row{display:flex;gap:10px;align-items:center}.color-row input[type=color]{width:40px;height:30px;border:none;cursor:pointer}.direction-control{display:flex;align-items:center;gap:10px}.direction-control input[type=range]{flex:1}.button-row{display:flex;gap:10px;flex-wrap:wrap}.tabs{display:flex;gap:5px;margin-bottom:15px}.tab{padding:8px 15px;background:#1a1a2e;border:1px solid #333;border-radius:5px;cursor:pointer;color:#888;text-decoration:none}.tab.active{background:#3182ce;border-color:#3182ce;color:#fff}.tab-link{color:#88f;text-decoration:none}.tab-link:hover{text-decoration:underline}.back-link{display:inline-flex;align-items:center;gap:5px;color:#88f;text-decoration:none;margin-bottom:15px}.back-link:hover{text-decoration:underline}.loading{text-align:center;padding:40px;color:#888}.empty-state{text-align:center;padding:60px 20px;color:#888}.image-tabs{display:flex;gap:10px;margin-bottom:10px}.date-groups{display:flex;flex-direction:column;gap:30px}.date-group{border-top:1px solid #333;padding-top:20px}.date-group:first-child{border-top:none;padding-top:0}.date-header{font-size:1.3rem;margin-bottom:15px;color:#eee}.date-header .count{font-size:1rem;color:#888;font-weight:400}.pdf-upload-area{border:2px dashed #444;border-radius:8px;padding:30px;text-align:center;cursor:pointer;transition:border-color .2s;margin-bottom:20px}.pdf-upload-area:hover{border-color:#88f}.pdf-upload-area input{display:none}.pdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.pdf-card{background:#16213e;border-radius:8px;padding:20px;cursor:pointer;transition:transform .2s;display:flex;align-items:center;gap:15px}.pdf-card:hover{transform:translateY(-3px)}.pdf-card .pdf-icon{background:#e74c3c;color:#fff;font-weight:700;font-size:.9rem;padding:15px 12px;border-radius:5px}.pdf-card .info{flex:1}.pdf-card .filename{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:5px}.pdf-card .meta{font-size:.85rem;color:#888}.pdf-header{margin-bottom:20px}.pdf-header h1{margin-bottom:5px}.pdf-meta{color:#888;font-size:.95rem}.pdf-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:15px}.pdf-page-card{background:#16213e;border-radius:8px;overflow:hidden;cursor:pointer;transition:transform .2s}.pdf-page-card:hover{transform:translateY(-3px)}.pdf-page-card .page-number{background:#0d1525;padding:8px;font-size:.85rem;color:#888;text-align:center}.pdf-page-card .thumbnail{height:150px;display:flex;align-items:center;justify-content:center;background:#0d1525}.pdf-page-card .thumbnail img{max-width:100%;max-height:100%;object-fit:contain}.pdf-page-card .info{padding:10px;display:flex;justify-content:space-between;align-items:center}.pdf-page-card .date{font-size:.85rem;color:#888}.btn-warning{background:#f59e0b!important;color:#000}.review-queue{display:flex;flex-direction:column;height:calc(100vh - 100px);gap:10px}.review-header{text-align:center;flex-shrink:0}.review-header h1{margin-bottom:5px}.review-progress{color:#888;font-size:1.1rem}.review-main{display:flex;align-items:center;gap:15px;flex:1;min-height:0}.review-nav{background:#16213e;border:none;color:#88f;font-size:2rem;padding:20px 25px;border-radius:8px;cursor:pointer;transition:background .2s;flex-shrink:0}.review-nav:hover:not(:disabled){background:#1f2d4d}.review-nav:disabled{opacity:.3;cursor:not-allowed}.review-image-container{flex:1;background:#16213e;border-radius:8px;padding:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;height:100%}.review-image{max-width:100%;max-height:calc(100% - 40px);object-fit:contain}.review-info{margin-top:10px;display:flex;justify-content:center;gap:15px;align-items:center;flex-shrink:0}.review-date{color:#888;font-size:1rem}.review-actions{display:flex;gap:15px;justify-content:center;flex-shrink:0}.review-help{color:#666;font-size:.9rem;text-align:center}.review-help strong{color:#88f}.present-mode{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;z-index:1000}.present-image{max-width:100%;max-height:100%;object-fit:contain;z-index:1}.present-tap{position:absolute;top:0;bottom:0;width:30%;cursor:pointer;z-index:2}.present-tap-left{left:0}.present-tap-right{right:0}.present-exit{position:absolute;top:20px;right:20px;background:#ffffff1a;border:none;color:#fff;font-size:2rem;width:50px;height:50px;border-radius:50%;cursor:pointer;transition:background .2s}.present-exit:hover{background:#fff3}.present-progress{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#ffffff80;font-size:1rem}@media(max-width:768px){.editor-container{display:flex;flex-direction:column;height:auto;min-height:calc(100vh - 120px)}.editor-canvas-area{min-height:50vh}.editor-sidebar{padding-bottom:20px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}nav{flex-wrap:wrap;gap:5px}nav a{padding:8px 12px;font-size:.9rem}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px}.login-box{background:#1a1a2e;padding:40px;border-radius:12px;text-align:center;max-width:400px;width:100%}.login-box h1{margin:0 0 10px;font-size:2rem}.login-box p{color:#888;margin:0 0 30px}.login-box form{display:flex;flex-direction:column;gap:15px}.login-box input{padding:15px;font-size:1rem;border:1px solid #333;border-radius:8px;background:#16213e;color:#fff;text-align:center}.login-box input:focus{outline:none;border-color:#4a9eff}.login-box button{padding:15px;font-size:1rem;background:#4a9eff;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background .2s}.login-box button:hover{background:#3a8eef}.login-error{color:#ff6b6b;margin-top:15px;min-height:20px}
